fixed install outside base

This commit is contained in:
Jeff Hill
1997-06-25 06:42:38 +00:00
parent 3d1fdefe34
commit d5476089b1
7 changed files with 61 additions and 38 deletions

View File

@@ -18,6 +18,14 @@ include $(TOP)/config/CONFIG_BASE
DIRS = src config
#
# this bootstraps in makeMakefile.pl (and others) so that it can
# be used to create the first O.xxxx/Makefile
#
PERL_BOOTSTRAP_SCRIPTS = $(notdir $(wildcard $(TOP)/src/tools/*.pl))
PERL_BOOTSTRAP_SCRIPTS_INSTALL = $(PERL_BOOTSTRAP_SCRIPTS:%=$(INSTALL_BIN)/%)
all host cross inc rebuild uninstall clean depends buildInstall :: $(PERL_BOOTSTRAP_SCRIPTS_INSTALL)
include $(TOP)/config/RULES_TOP
release:
@@ -28,3 +36,5 @@ built_release:
@echo TOP: Creating Fully Built Release...
@./MakeRelease -b $(INSTALL_LOCATION)
$(INSTALL_BIN)/%.pl: $(TOP)/src/tools/%.pl
$(PERL) $(TOP)/src/tools/installEpics.pl -d -m 555 $< $(INSTALL_BIN)

View File

@@ -6,13 +6,14 @@
# Unix Compiler and other Utilities
OLDINSTALL = echo CONFIG.Vx.486 OLDINSTALL
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
CHMOD=echo
WHAT=echo
CP =$(PERL) $(EPICS_BASE_HSOT_BIN)/cp.pl
MV =$(PERL) $(EPICS_BASE_HOST_BIN)/mv.pl
RM =$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -f
MKDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/mkdir.pl
RMDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -rf
CHMOD=echo
WHAT=echo
ECHO=echo
# overrides defines in CONFIG_SITE that don't fit Tornado
#

View File

@@ -27,19 +27,23 @@ HOME = $(HOMEDRIVE)$(HOMEPATH)
BUILD_TYPE=Host
#
# optimize/debug flags
# global WIN32 optimize/debug flag
# (set this to NO in $(HOME)/EPICS_CONFIG if you need to compile
# in debug info)
#
HOST_OPT = YES
# -Ox : maximum optimizations
# -Wn ; use this warning level (all warnings at level 4)
CXX_OPT_FLAGS_YES = -Ox -W1
CXX_OPT_FLAGS_YES = -Ox -W3
# -Zi : include debugging info in object files
CXX_OPT_FLAGS_NO = -Zi -W1
CXX_OPT_FLAGS_NO = -Zi -W3 -D_DEBUG
CXX_OPT_FLAGS = $(CXX_OPT_FLAGS_$(HOST_OPT))
LINK_OPT_FLAGS_YES =
LINK_OPT_FLAGS_NO = -debug
LINK_OPT_FLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
# to identify the general architecture class:
# should be BSD, SYSV, WIN32, ...
# is: WIN32, sun4, hpux, linux, ...
@@ -55,13 +59,14 @@ WIN32=1
YACC = $(EYACC)
LEX = $(ELEX)
CC = cl -nologo
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
CP = $(PERL) $(INSTALL_BIN)/cp.pl
MV = $(PERL) $(INSTALL_BIN)/mv.pl
RM = $(PERL) $(INSTALL_BIN)/rm.pl -f
MKDIR = $(PERL) $(INSTALL_BIN)/mkdir.pl
RMDIR = $(PERL) $(INSTALL_BIN)/rm.pl -rf
EXE=.exe
OBJ=.obj
ECHO = echo
# Include files
HOST_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(INSTALL_INCLUDE) \
@@ -77,29 +82,32 @@ HOST_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(INSTALL_INCLUDE) \
# -MDd : use MSVCRTD (run-time as DLL, multi-thread support)
# this also calls for _DLL
#
OP_SYS_FLAGS:=-MDd $(CXX_OPT_FLAGS) -VMG -VMV -DWIN32 -D_WIN32 -D_DEBUG -D_WINDOWS \
# Unable to use -Za to turn on __STDC__ because there are
# non-standard constructs in winnt.h etc
#
OP_SYS_FLAGS = -MDd -VMG -VMV -DWIN32 -D_WIN32 -D_WINDOWS \
-D_X86_ -D_NTSDK -D_DLL -D__STDC__=0
HOST_LDLIBS:=user32.lib kernel32.lib wsock32.lib advapi32.lib winmm.lib
HOST_LDFLAGS:=-nologo -libpath:$(EPICS_BASE_LIB)
HOST_LDLIBS = user32.lib kernel32.lib wsock32.lib advapi32.lib winmm.lib
HOST_LDFLAGS = -nologo -libpath:$(EPICS_BASE_LIB)
# Files and flags needed to link DLLs (used in RULES.Host)
#
# Strange but seems to work without: WIN32_DLLFLAGS should contain
# an entry point:
# '-entry:_DllMainCRTStartup$(DLLENTRY)'
DLLENTRY:=@12
DLLENTRY = @12
# yes, for MS it's I386 for 386, 486, Pentium!
# don't mix this with VxWorks which has different BSPs for [34]86 !
WIN32_DLLFLAGS:=$(HOST_LDFLAGS) $(HOST_LDLIBS)\
WIN32_DLLFLAGS = $(HOST_LDFLAGS) $(HOST_LDLIBS)\
-subsystem:windows -dll -incremental:no $(LINK_OPT_FLAGS) -machine:I386
ARCH_DEP_CFLAGS =
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
HOST_CFLAGS = $(HOST_SFLAGS) $(HOST_INCLUDES) $(OP_SYS_FLAGS)
HOST_CFLAGS = $(HOST_SFLAGS) $(HOST_INCLUDES) $(OP_SYS_FLAGS) $(CXX_OPT_FLAGS)
HOST_CXXFLAGS = $(HOST_CFLAGS)
@@ -126,7 +134,7 @@ COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
# Problem: MS Visual C++ does not recognize *.cc as C++ source,
# we have to compile xx.cc using the flag -Tp xx.cc,
# i.e. -Tp has to be immediately before the source file name
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -DEXPL_TEMPL -c -Tp
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -Tp
LINK.c=link $(LINK_OPT_FLAGS) $(LDFLAGS) -out:$@
LINK.cc=$(LINK.c)

View File

@@ -46,10 +46,11 @@ EPICS_BASE = $(INSTALL_LOCATION)
#
# this speeds up the build by turning off implicit rules search
#
.PHONY:: $(EPICS_BASE)/config/CONFIG
.PHONY:: $(EPICS_BASE)/config/CONFIG.* $(EPICS_BASE)/config/CONFIG_*
.PHONY:: $(EPICS_BASE)/config/RULES.* $(EPICS_BASE)/config/RULES_* .DEPENDS
.PHONY:: $(HOME)/.EPICS_CONFIG $(HOME)/.EPICS_CONFIG.$(HOST_ARCH)
# for EPICS Makefiles (which are not created from other files)
.PHONY:: $(TOP)/config/CONFIG
.PHONY:: $(TOP)/config/CONFIG.* $(TOP)/config/CONFIG_*
.PHONY:: $(TOP)/config/RULES.* $(TOP)/config/RULES_* .DEPENDS
.PHONY:: $(HOME)/EPICS_CONFIG $(HOME)/EPICS_CONFIG.$(HOST_ARCH)
.PHONY:: ../Makefile.Vx ../Makefile.Unix ../Makefile.Host Makefile

View File

@@ -38,22 +38,25 @@ EPICS_EXTENSIONS_TEMPLATES = $(EPICS_EXTENSIONS)/templates
DIVIDER = .
EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(HOST_ARCH)
# private versions of lex/yacc from EPICS
EYACC = $(EPICS_BASE)/bin/$(HOST_ARCH)/antelope$(EXE)
ELEX = $(EPICS_BASE)/bin/$(HOST_ARCH)/e_flex$(EXE) -S$(EPICS_BASE_INCLUDE)/flex.skel.static
EYACC = $(EPICS_BASE_HOST_BIN)/antelope$(EXE)
ELEX = $(EPICS_BASE_HOST_BIN)/e_flex$(EXE) -S$(EPICS_BASE_INCLUDE)/flex.skel.static
# Default for perl if it's on the PATH,
# otherwise override this in e.g. CONFIG_SITE
PERL=perl
# install from EPICS
INSTALL = $(PERL) $(EPICS_BASE)/bin/$(HOST_ARCH)/installEpics.pl
INSTALL = $(PERL) $(EPICS_BASE_HOST_BIN)/installEpics.pl
INSTALL_PRODUCT = $(INSTALL)
# dbtools from EPICS
# state notation language compiler (installed from base/src/sequencer)
SNC = $(EPICS_BASE)/bin/$(HOST_ARCH)/snc
SNC = $(EPICS_BASE_HOST_BIN)/snc
# vxWorks definitions
VX_CONFIG_DIR = $(VX_DIR)/config

View File

@@ -2,7 +2,7 @@
# $Id$
#
# EPICS RULES_ARCH
# by Matthew Needes and Mike Bordua and Janet Andersoni and Jeff Hill
# by Matthew Needes and Mike Bordua and Janet Anderson and Jeff Hill
#
all:: install
@@ -51,11 +51,11 @@ $(crossActionArchTargets) :
$(crossArchs) :
endif
$(hostDirs) : $(EPICS_BASE)/config/makeMakefile.pl
$(PERL) $(EPICS_BASE)/config/makeMakefile.pl $@ $(BUILD_TYPE)
$(hostDirs) :
$(PERL) $(INSTALL_BIN)/makeMakefile.pl $@ $(BUILD_TYPE)
$(crossDirs) : $(EPICS_BASE)/config/makeMakefile.pl
$(PERL) $(EPICS_BASE)/config/makeMakefile.pl $@ Vx
$(crossDirs) :
$(PERL) $(INSTALL_BIN)/makeMakefile.pl $@ Vx
#
# host/cross action targets

View File

@@ -30,11 +30,11 @@ rebuild:: clean all
$(DIRS) $(dirActionTargets) $(dirArchTargets)$(dirActionArchTargets) ::
$(MAKE) -C $(dirPart) $(actionArchPart)
$(ARCHS) $(installArchTargets) :%: \
$(ARCHS) $(installArchTargets) ::%: \
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)inc) \
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
$(ACTIONS) $(actionArchTargets) :%: \
$(ACTIONS) $(actionArchTargets) ::%: \
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)