diff --git a/configure/CONFIG b/configure/CONFIG index 64594c272..e37879dd5 100644 --- a/configure/CONFIG +++ b/configure/CONFIG @@ -17,7 +17,7 @@ endif #################################################### include $(CONFIG)/CONFIG_COMMON - + # EPICS-specific build options # include $(CONFIG)/CONFIG_BASE @@ -31,7 +31,7 @@ include $(CONFIG)/CONFIG_SITE # include $(CONFIG)/CONFIG.Host.$(HOST_ARCH) -include $(CONFIG)/CONFIG_SITE.Host.$(HOST_ARCH) - + ifdef T_A # Architecture specific definitions @@ -45,7 +45,7 @@ include $(CONFIG)/CONFIG.Target.$(T_A) -include $(CONFIG)/CONFIG_SITE.Target.$(T_A) # -include $(CONFIG)/CONFIG_SITE.$(HOST_ARCH).$(T_A) - + endif # User specific definitions diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON index be3888c88..51ff1d828 100644 --- a/configure/CONFIG_COMMON +++ b/configure/CONFIG_COMMON @@ -13,18 +13,18 @@ # CROSS1 will be defined only when CROSS_COMPILER_HOST_ARCHS is NOT defined CROSS1 = $(CROSS_COMPILER_TARGET_ARCHS$(word 1,$(CROSS_COMPILER_HOST_ARCHS))) - + # CROSS2 will be defined only when CROSS_COMPILER_HOST_ARCHS is defined # and HOST_ARCH is one of it's words CROSS2 = $(CROSS_COMPILER_TARGET_ARCHS$(filter-out 1,$(words $(filter $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS))))) - + BUILD_ARCHS = $(HOST_ARCH) $(CROSS1) $(CROSS2) #################################################################### #################################################################### INSTALL_LOCATION = $(TOP) - + INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib INSTALL_LOCATION_BIN = $(INSTALL_LOCATION)/bin @@ -153,6 +153,7 @@ USR_CXXFLAGS = USR_LDFLAGS = USR_LDLIBS = USR_CPPFLAGS = +USR_DBDFLAGS = #-------------------------------------------------- # Target specific options @@ -167,18 +168,19 @@ TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS) #-------------------------------------------------- # Depends flag DEPENDS_FLAG = $($(CPLUSPLUS)_DEPENDS_FLAG) - + #-------------------------------------------------- # C++ template flag option TEMPL_INST_CXXFLAG = $($(CPLUSPLUS)_TEMPL_INST_FLAG) - + #-------------------------------------------------- # (CONFIG.Vx will override OS_CLASS) OS_CLASS = $(ARCH_CLASS) #-------------------------------------------------- -# Install includes +# Install includes and dbd directory INSTALL_INCLUDES = -I$(INSTALL_INCLUDE)/os/$(OS_CLASS) -I$(INSTALL_INCLUDE) +INSTALL_DBDFLAGS = -I $(INSTALL_LOCATION)/dbd #-------------------------------------------------- # Warnings flags (CONFIG. will override) @@ -190,18 +192,18 @@ WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$($(BUILD_TYPE)_WARN)) OPT_CFLAGS = $($(ANSI)_OPT_$($(BUILD_TYPE)_OPT)) OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$($(BUILD_TYPE)_OPT)) OPT_LDFLAGS = - + #-------------------------------------------------- # Static build options STATIC_CFLAGS = $($(ANSI)_SFLAGS_$(STATIC_BUILD)) STATIC_CXXCFLAGS = $($(CPLUSPLUS)_SFLAGS_$(STATIC_BUILD)) STATIC_LDFLAGS = $($(ANSI)_SLDFLAGS_$(STATIC_BUILD)) STATIC_LDLIBS = $($(ANSI)_SLIBS_$(STATIC_BUILD)) - + #-------------------------------------------------- # ar definition default ARCMD = $(AR) $(ARFLAGS) $@ - + #-------------------------------------------------- # depends definition DEPENDS_RULE = -$(COMPILE.cc) $(DEPENDS_FLAG) $^ > DEPENDS @@ -232,6 +234,8 @@ CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) CPPSNCFLAGS = $(INCLUDES) +DBDFLAGS = $(USR_DBDFLAGS) -I . -I .. $(INSTALL_DBDFLAGS) + #-------------------------------------------------- # Build compile line here @@ -239,4 +243,3 @@ COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c $(SOURCE_FLAG) COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(SOURCE_CXXFLAG) endif - diff --git a/configure/RELEASE b/configure/RELEASE index 144743b5e..278a6aedc 100644 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -3,5 +3,4 @@ # NOTE: RELEASE.$(HOST_ARCH) files will override # Tornado directory -VX_DIR = /usr/local/vw/tornado101 - +VX_DIR = /opt/csr/vw/tornado101 diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index 682f43ba4..68ab01cbb 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -31,9 +31,9 @@ include $(CONFIG)/RULES_ARCHS ifdef T_A -vpath %.h $(USER_VPATH) vpath %.c $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/$(OS_CLASS) ../os/generic .. vpath %.cc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/$(OS_CLASS) ../os/generic .. +vpath %.C $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/$(OS_CLASS) ../os/generic .. vpath %.rc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic .. # This prevents base/src/include/*.h from being installed. Why?? #vpath %.h ../os/$(ARCH_CLASS) ../os/generic .. @@ -146,7 +146,7 @@ endif ifdef LIBSRCS LIB_OBJS+=$(addsuffix $(OBJ), $(basename $(LIBSRCS))) endif - + IOC_LIBSRCS += $($(addsuffix _SRCS,$(IOC_LIBRARY))) ifneq ($($(addsuffix _SRCS_$(ARCH_CLASS),$(IOC_LIBRARY))),) @@ -162,7 +162,7 @@ endif ifdef IOC_LIBSRCS IOC_LIB_OBJS+=$(addsuffix $(OBJ), $(basename $(IOC_LIBSRCS))) endif - + # compatibility IOC_LIB_OBJS+=$(LIBOBJS) @@ -294,7 +294,7 @@ INSTALL_TEMPLATE = $(addprefix $(INSTALL_TEMPLATES_SUBDIR)/, \ $(subst $(CONFIG),top/configure,$(TEMPLATES))) #INSTALL_TEMPLATE = $($(subst $(CONFIG),top/configure,$(TEMPLATES)):%= $(INSTALL_TEMPLATES_SUBDIR)/%) INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%) - + INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%) INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\ $(RECTYPES:%.h= $(INSTALL_DBD)/%.dbd)\ @@ -420,7 +420,8 @@ ifdef RUNTYPE ifeq ($(strip $(RUNTYPE)),IOC) build:: $(IOC_LIBTARGETS) $(IOC_PROD) $(IOC_SCRIPTS_$(OS_CLASS)) -buildInstall :: $(INSTALL_IOC_PROD) $(INSTALL_IOC_SCRIPTS) +buildInstall :: $(IOC_TARGETS) \ + $(INSTALL_IOC_PROD) $(INSTALL_IOC_SCRIPTS) endif ifeq ($(strip $(RUNTYPE)),NOTIOC) @@ -443,7 +444,11 @@ build:: $(IOC_LIBTARGETS) $(IOC_PROD) $(IOC_SCRIPTS_$(OS_CLASS)) buildInstall :: $(INSTALL_IOC_PROD) $(INSTALL_IOC_SCRIPTS) endif -build:: $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME) +build:: $(MENUS) $(RECTYPES) $(BPTS) + +ifdef DBDEXPAND +build:: $(DBDNAME) +endif inc:: $(INSTALL_INC) $(INSTALL_OSINC) @@ -699,7 +704,7 @@ endif ln -s $< $*.st $(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st @$(RM) $*.st - + # Capfast Rules: %.db: %.edf $(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $< @@ -736,12 +741,12 @@ $(INSTALL_DBD)/%: ../% %Record.h: %Record.dbd $(RM) $@ $(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \ - $(USER_DBDFLAGS) $< + $(DBDFLAGS) $< %Record.h: ../%Record.dbd $(RM) $@ $(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \ - $(USER_DBDFLAGS) $< + $(DBDFLAGS) $< menu%.h: menu%.dbd $(RM) $@ @@ -759,10 +764,12 @@ bpt%.dbd: ../bpt%.data $(RM) $@ $(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $< +ifdef DBDEXPAND $(DBDNAME): ../$(DBDEXPAND) - @echo expanding dbd + @echo Expanding dbd @$(RM) $@ - $(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(USER_DBDFLAGS) $< > $@ + $(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(DBDFLAGS) $< > $@ +endif ifneq (,$(wildcard ../baseLIBOBJS)) $(IOC_LIBNAME): ../baseLIBOBJS @@ -888,9 +895,11 @@ $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: % .PHONY:: all inc depends build install clean rebuild buildInstall binInstalls \ iocBinInstalls - +ifneq (,$(wildcard ../base.dbd)) $(DBDNAME): ../base.dbd $(RECTYPES:%.h=../%.dbd) +else +$(DBDNAME): $(RECTYPES:%.h=../%.dbd) +endif # EOF RULES.Host endif - diff --git a/src/makeBaseApp/top/configure/CONFIG_APP b/src/makeBaseApp/top/configure/CONFIG_APP index 5b6dbd575..0ee3950ea 100644 --- a/src/makeBaseApp/top/configure/CONFIG_APP +++ b/src/makeBaseApp/top/configure/CONFIG_APP @@ -1,29 +1,16 @@ -#CONFIG_APP +# CONFIG_APP + include $(TOP)/configure/RELEASE -include $(TOP)/configure/RELEASE.$(HOST_ARCH) CONFIG=$(EPICS_BASE)/configure -include $(EPICS_BASE)/configure/CONFIG +include $(CONFIG)/CONFIG INSTALL_LOCATION = $(TOP) ifdef INSTALL_LOCATION_APP INSTALL_LOCATION = $(INSTALL_LOCATION_APP) endif -#Other share areas can be added similar to following -#ifdef -#USR_INCLUDES += -I$()/include -#BIN = $()/bin/$(T_A) -#endif - -ifdef SHARE -USR_INCLUDES += -I$(SHARE)/include -SHARE_BIN = $(SHARE)/bin/$(T_A) -USER_DBDFLAGS += -I .. -I $(SHARE)/dbd -I $(EPICS_BASE)/dbd -endif - -#Following only works if host provides soft links -ifdef MASTER_IOCAPPS -USR_INCLUDES += -I$(MASTER_IOCAPPS)/include -MASTER_IOCAPPS_BIN = $(MASTER_IOCAPPS)/bin/$(T_A) +ifdef T_A +-include $(TOP)/configure/O.$(T_A)/CONFIG_APP_INCLUDE endif # Where to install databases @@ -32,4 +19,3 @@ INSTALL_DB = $(INSTALL_LOCATION)/db DB_OPT = NO # May be overridden if not all databases should be installed INSTALLDB = $(DB) -#######include $(TOP)/configure/CONFIG diff --git a/src/makeBaseApp/top/configure/Makefile b/src/makeBaseApp/top/configure/Makefile index 65fd1d270..d231fc116 100644 --- a/src/makeBaseApp/top/configure/Makefile +++ b/src/makeBaseApp/top/configure/Makefile @@ -6,6 +6,7 @@ TOP=.. include $(TOP)/configure/CONFIG TARGETS = CONFIG_APP_INCLUDE +IOC_TARGETS = $(TARGETS) include $(TOP)/configure/RULES_BUILD diff --git a/src/makeBaseApp/top/configure/RULES.registerRecordDeviceDriver b/src/makeBaseApp/top/configure/RULES.registerRecordDeviceDriver index 38178cb0b..5f4a2fafb 100644 --- a/src/makeBaseApp/top/configure/RULES.registerRecordDeviceDriver +++ b/src/makeBaseApp/top/configure/RULES.registerRecordDeviceDriver @@ -1,6 +1,6 @@ registerRecordDeviceDriver.o: registerRecordDeviceDriver.c -registerRecordDeviceDriver.c: $(TOP)/dbd/$(EXPANDED_DBD) +registerRecordDeviceDriver.c: $(TOP)/dbd/$(DBDNAME) $(RM) registerRecordDeviceDriver.c $(EPICS_BASE_HOST_BIN)/registerRecordDeviceDriver.pl \ - $(TOP)/dbd/$(EXPANDED_DBD) > registerRecordDeviceDriver.c + $(TOP)/dbd/$(DBDNAME) > registerRecordDeviceDriver.c diff --git a/src/makeBaseApp/top/configure/makeConfigAppInclude.pl b/src/makeBaseApp/top/configure/makeConfigAppInclude.pl index d83a1870a..eb94b7c97 100644 --- a/src/makeBaseApp/top/configure/makeConfigAppInclude.pl +++ b/src/makeBaseApp/top/configure/makeConfigAppInclude.pl @@ -1,7 +1,7 @@ # $Id$ eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*- - if $running_under_some_shell; # makeIocCdCommands.pl + if $running_under_some_shell; # makeConfigAppInclude.pl use Cwd; @@ -11,7 +11,7 @@ $top = $ARGV[2]; unlink("${outfile}"); open(OUT,">${outfile}") or die "$! opening ${outfile}"; -print OUT "#Do not modify thie file.\n"; +print OUT "#Do not modify this file.\n"; print OUT "#This file is created during the build.\n"; @files =(); @@ -49,10 +49,10 @@ foreach $file (@files) { print OUT "${prefix}_LIB = $post/lib/${arch}\n"; } if ( -d "$post/include") { #check that directory exists - print OUT "USR_INCLUDES += -I$post/include\n"; + print OUT "INSTALL_INCLUDES += -I$post/include\n"; } if ( -d "$post/dbd") { #check that directory exists - print OUT "USER_DBDFLAGS += -I$post/dbd\n"; + print OUT "INSTALL_DBDFLAGS += -I $post/dbd\n"; } } } diff --git a/src/makeBaseApp/top/exampleApp/src/Makefile b/src/makeBaseApp/top/exampleApp/src/Makefile index b5fbe78a0..cfffd482c 100644 --- a/src/makeBaseApp/top/exampleApp/src/Makefile +++ b/src/makeBaseApp/top/exampleApp/src/Makefile @@ -3,7 +3,6 @@ include $(TOP)/configure/CONFIG #---------------------------------------- # ADD MACRO DEFINITIONS AFTER THIS LINE -USER_DBDFLAGS += -I .. -I $(EPICS_BASE)/dbd RECTYPES += xxxRecord.h DBDEXPAND = exampleInclude.dbd DBDNAME = exampleApp.dbd @@ -34,11 +33,10 @@ LIBOBJS += $(EPICS_BASE_BIN)/seq #LIBOBJS += $(EPICS_BASE_BIN)/registerRecordDeviceDriver.o # or -EXPANDED_DBD = exampleApp.dbd -exampleLib_SRCS += registerRecordDeviceDriver.c -#end choices -DBD = exampleApp.dbd +exampleLib_SRCS += registerRecordDeviceDriver.c + +#end choices -include ../baseLIBOBJS