Short Description of the "Host" (vs. "Unix") Build System --------------------------------------------------------- 7-30-96 -kuk- questions/comments please mailto:kasemir@atdiv.lanl.gov To build EPICS on the WIN32 architecture the "old" make-system using Makefile.Unix in each subdir and RULES.Host was not suitable because it is too much Unix-dependent. A "new" system using Makefile.Host and RULES.Host was used instead. This "host" system should work on all other architectures as well. The idea is that ALL architectures should be able to use the "host" system in future because. The syntax of the 'Host' Makefiles is described in 'Sample.Makefile.Host'. Any suggestions for a better syntax (in connection whith ideas how to implement this in RULES.Host!) are very welcome! To use it, only a few changes should be necessary: A) In CONFIG.: 1) Set BUILD_TYPE=Host instead of 'Unix'. This switches you over to using Makefile.Host instead of Makefile.Unix. 2) Set ARCH_CLASS to the correct architecture class. (ARCH_CLASS used to be defined in the past, right now it seems it's only set for VxWorks targets, not hosts). ARCH_CLASS is used to define system-dependent CFLAGS, library contents etc. in Makefile.Host, so it should describe the general architecture, maybe WIN32 : this is the only one really supported in Makefile.Host by now BSD for sun4, SYSV for ??, Maybe this "general arch" is not sufficient, so we will end up using ARCH_CLASS=WIN32, sun4, hp700, .... as it used to be. 3) Make sure that the following (new) macros are defined: CP =$(PERL) $(EPICS_BASE)/src/tools/cp.pl MV =$(PERL) $(EPICS_BASE)/src/tools/mv.pl RM =$(PERL) $(EPICS_BASE)/src/tools/rm.pl -f MKDIR=$(PERL) $(EPICS_BASE)/src/tools/mkdir.pl RMDIR=$(PERL) $(EPICS_BASE)/src/tools/rm.pl -rf or CP=cp MV=mv RM=rm -f MKDIR=mkdir RMDIR=rm -rf EXE= OBJ=.o 4) LINK.c and LINK.cc must now include the target-flag, e.g.: LINK.c = $(CC) $(LDFLAGS) -o $@ because the "-o $@" is also system dependent (it's -Fe$@ for WIN32) 5) The bin directory for the host based epics tools $(EPICS)/base/bin/$(HOST_ARCH) must be in your PATH. B) Adjust Makefile.Host If you are trying to build EPICS now, there might be errors because the Makefile.Host files are only tested on WIN32, yet. If changes are necessare in some base/src/???/Makefile.Host, refer to Sample.Makefile.Host in the base/config dir. The current make-system for WIN32 needs * gnumake (OK, sources for WIN32 are available) * perl (OK, sources for WIN32 are available)