fixed install outside base
This commit is contained in:
10
Makefile
10
Makefile
@@ -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)
|
||||
|
||||
@@ -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
|
||||
#
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)%)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user