From 41bcd2cff505dc132eea703673072705d308fc03 Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Mon, 15 Sep 1997 19:16:46 +0000 Subject: [PATCH] Added capfast changes from Rozelle. --- config/CONFIG | 8 ++++++++ config/CONFIG.Vx.68k | 1 + config/CONFIG.cygwin32 | 40 +++++++++++++++++++--------------------- config/CONFIG_SITE | 3 +++ config/RULES.Db | 38 ++++++++++++++++++++++++++++++++++++-- config/RULES.Host | 23 +++++++++++++++++++---- 6 files changed, 86 insertions(+), 27 deletions(-) diff --git a/config/CONFIG b/config/CONFIG index 807517a2c..37e312ba3 100644 --- a/config/CONFIG +++ b/config/CONFIG @@ -44,3 +44,11 @@ include $(EPICS_BASE)/config/CONFIG.$(T_A) #VX_WARN=YES #etc. # + +#UNIX_OPT_FLAGS = -g +#CMPLR=STRICT +#CPLUSPLUS=G++ +#INSTALL_LOCATION = /home/phoebus/JBA/epics/testinstall + +# OPTIM_YES = -g + diff --git a/config/CONFIG.Vx.68k b/config/CONFIG.Vx.68k index cade49031..6aac907de 100644 --- a/config/CONFIG.Vx.68k +++ b/config/CONFIG.Vx.68k @@ -98,6 +98,7 @@ TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS) TARGET_LDFLAGS = $($(basename $@)_LDFLAGS) TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS) TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS) +TARGET_LDLIBS = $($(basename $@)_LDLIBS) CFLAGS = $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VX_CFLAGS) CXXFLAGS = $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(VX_CXXFLAGS) diff --git a/config/CONFIG.cygwin32 b/config/CONFIG.cygwin32 index e371bb358..fb1f024fa 100755 --- a/config/CONFIG.cygwin32 +++ b/config/CONFIG.cygwin32 @@ -20,10 +20,6 @@ ANSI=GCC STANDARD=GCC CPLUSPLUS=G++ -EXE=.exe - -OBJ=.o - AR = ar _AR = $(AR) $(ARFLAGS) G++_AR = $(_AR) @@ -35,11 +31,14 @@ LEX = $(ELEX) RMDIR = rm -rf MKDIR = mkdir CP=cp -MV=mv +MV = mv RM=rm -f CHMOD = xxxx WHAT = echo +EXE=.exe +OBJ=.o + GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic @@ -62,17 +61,17 @@ LD_FLAGS_ANSI = $($(ANSI)_LD_FLAGS) LD_FLAGS_STRICT = $($(ANSI)_LD_FLAGS) CCOMPILER_LDFLAGS = $(LD_FLAGS_$(CMPLR)) -G++_TEMPL_INST_FLAG = -DEXPL_TEMPL -G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w $(G++_TEMPL_INST_FLAG) -G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall $(G++_TEMPL_INST_FLAG) +G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w +G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \ -Wmissing-prototypes -Woverloaded-virtual \ -Wwrite-strings -Wconversion -Wstrict-prototypes\ - -Wpointer-arith -Winline $(G++_TEMPL_INST_FLAG) - + -Wpointer-arith -Winline +G++_TEMPL_INST_FLAG = -DEXPL_TEMPL CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN)) CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES) +TEMPL_INST_CXXFLAG = $($(CPLUSPLUS)_TEMPL_INST_FLAG) # GNU make likes CXX CXX = $(CXX_$(CXXCMPLR)) @@ -86,11 +85,6 @@ SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD)) SF_STRICT = $(SF_ANSI) UNIX_SFLAGS = $(SF_$(CMPLR)) -SL_OLD = $($(STANDARD)_SLIBS_$(STATIC_BUILD)) -SL_ANSI = $($(ANSI)_SLIBS_$(STATIC_BUILD)) -SL_STRICT = $(SL_ANSI) -UNIX_SLIBS = $(SL_$(CMPLR)) - # Optimization OPTIM_YES = -O OPTIM_NO = @@ -104,14 +98,14 @@ UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(INSTALL_INCLUDE) -I$(EPICS_BASE_INC OP_SYS_FLAGS = -DUNIX UNIX_LDFLAGS = -L$(EPICS_BASE_LIB) $(CCOMPILER_LDFLAGS) -UNIX_LDLIBS = $(UNIX_SLIBS) -lm $(CCOMPILER_LDLIBS) +UNIX_LDLIBS = -lm $(CCOMPILER_LDLIBS) # Architecture specific build flags -ARCH_DEP_CFLAGS = -DCYGWIN32 +#ARCH_DEP_CFLAGS = -DCYGWIN32 +OP_SYS_FLAGS = -DWIN32 -D_WIN32 -D_WINDOWS \ + -D_X86_ -D_NTSDK -D_DLL -D__STDC__=0 + ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS) -I$(CXX_INCLUDES) -#ARCH_DEP_LDLIBS = -lsocket -lnsl -# -lsocket needed by libca.a -# -lnsl needed by libca.a UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS) @@ -126,12 +120,16 @@ TARGET_LDLIBS = $($(basename $@)_LDLIBS) TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS) CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS) -CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS) +CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) \ + $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS) $(TEMPL_INST_CXXFLAG) CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS) LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS) +# Override defaults +COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c +COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c LINK.c = $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) LINK.cc = $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) diff --git a/config/CONFIG_SITE b/config/CONFIG_SITE index eb4f2e338..cf0a51bd5 100644 --- a/config/CONFIG_SITE +++ b/config/CONFIG_SITE @@ -130,3 +130,6 @@ E2DB = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/e2db E2DB_SYSFLAGS = -ate -d $(EPICS_EXTENSIONS)/templates/capfast/edb.def E2DB_FLAGS = +#dbst +DBST = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/dbst + diff --git a/config/RULES.Db b/config/RULES.Db index dc1a98d0f..121b218b6 100644 --- a/config/RULES.Db +++ b/config/RULES.Db @@ -9,7 +9,7 @@ actionArchTargets = $(foreach action, $(ACTIONS) install,\ all install :: inc buildInstall -buildInstall: .DEPENDS dbd $(DBFROMTEMPLATE) $(INDDBFROMTEMPLATE) $(PROD) +buildInstall: .DEPENDS dbd $(DBFROMSCH) $(DBFROMTEMPLATE) $(INDDBFROMTEMPLATE) $(PROD) inc build depends: @@ -21,6 +21,40 @@ ifndef WIN32 ln -s $(TOP)/dbd dbd endif +#### The following section is added to +#### allow optimized databases to be built +#### from capfast schematics +#optimization macro +ifeq '$(DB_OPT)' 'YES' +define DB_OPTIMIZE +@echo "Optimizing database $@" +$(RM) $@.tmp +$(DBST) $(INSTALL_DBD)/$(DBDNAME) $@ -d > $@.tmp +$(RM) $@ +$(MV) $@.tmp $@ +endef +else +define DB_OPTIMIZE +endef +endif + + + +#Creates database in current directory from capfast schematics +$(DBFROMSCH):%.db: %.db.opt + @echo "Installing database $@" + @$(MV) $< $(<:%.opt=%) + +%.db.opt: %.edf + $(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@ $< + $(DB_OPTIMIZE) + -@(echo '1,$$g/VAR(/s/VAR(/$$(/g';echo 'w';echo 'q') | ed $@ + +%.edf: ./%.sch $(DEPSCHS) + @if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi + $(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $< + +######end section added for captast schematics $(DBFROMTEMPLATE):%.db: %.template %.substitutions $(RM) $@ @@ -45,7 +79,7 @@ ifndef WIN32 endif clean:: - @$(RM) dbd $(DBFROMTEMPLATE) $(INDDBFROMTEMPLATE) .DEPENDS $(PROD) + @$(RM) dbd $(DBFROMTEMPLATE) $(DBFROMSCH) $(INDDBFROMTEMPLATE) .DEPENDS $(PROD) $(actionArchTargets) :%: $(MAKE) $(word 1, $(subst $(DIVIDER), ,$@)) diff --git a/config/RULES.Host b/config/RULES.Host index 05e631b3f..2f702c457 100644 --- a/config/RULES.Host +++ b/config/RULES.Host @@ -280,6 +280,12 @@ clean:: @echo "Cleaning" @$(RM) *.i *$(OBJ) *.a $(PROD) $(TESTPROD) $(LIBNAME) $(INC) + +# PROD dependanies +# Do not put dependancy files on an implicit rule line +$(PROD): $(PRODDEPLIBS) + + $(DIRECTORY_TARGETS) : $(MKDIR) $@ @@ -307,7 +313,7 @@ endif PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS))) -$(PROD): $(PROD_OBJS) $(PRODDEPLIBS) +$(PROD): $(PROD_OBJS) @$(RM) $@ $(PROD_LINKER) $(PROD_OBJS) $(LDLIBS) endif @@ -339,12 +345,17 @@ endif # Hint: The $(subst...) construct removes the .c or .cc # as well as the '../' from the filename and adds $(OBJ): # e.g. $< = '../abc.c' -> 'abc.o' -%$(EXE): %.c $(PRODDEPLIBS) +%$(EXE): %.c @$(RM) $@ $(COMPILE.c) $< $(LINK.c) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS) -%$(EXE): %.cc $(PRODDEPLIBS) +%$(EXE): %.cc + @$(RM) $@ + $(COMPILE.cc) $< + $(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS) + +%$(EXE): %.C @$(RM) $@ $(COMPILE.cc) $< $(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS) @@ -357,6 +368,10 @@ endif @$(RM) $@ $(COMPILE.cc) $< +%$(OBJ): %.C + @$(RM) $@ + $(COMPILE.cc) $< + # # rename the y.tab.h file only if we # are creating it @@ -400,7 +415,7 @@ endif %.db: ../%.edf $(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $< -%.edf: ../%.sch $(DEPSCHS) +%.edf: ../%.sch @if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi $(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<