91 lines
2.6 KiB
Plaintext
91 lines
2.6 KiB
Plaintext
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.<WIN32, sun4, hp700, ... whatever you are using>:
|
|
|
|
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)
|
|
|