O,Common changes. Added all db and dbd defines

This commit is contained in:
Janet B. Anderson
2001-01-12 23:17:58 +00:00
parent ec1aa66cd3
commit 52de8d577a

View File

@@ -1,177 +1,222 @@
#RULES.Db
ifndef T_A
##################################################### vpath
include $(CONFIG)/RULES_ARCHS
vpath %.dbd $(USR_VPATH) $(GENERIC_SRC_DIRS) $(dir $(DBD)) $(COMMON_DIR)
vpath %.db $(USR_VPATH) $(GENERIC_SRC_DIRS) $(dir $(DB)) $(COMMON_DIR)
vpath %.substitutions $(USR_VPATH) $(GENERIC_SRC_DIRS) $(COMMON_DIR)
vpath %.template $(USR_VPATH) $(GENERIC_SRC_DIRS) $(COMMON_DIR)
else #T_A
##################################################### dbdflags
MAKEBPT = $(EPICS_BASE_HOST_BIN)/makeBpt$(HOSTEXE)
DBEXPAND = $(EPICS_BASE_HOST_BIN)/dbExpand$(HOSTEXE)
DBST = dbst
MAKEDBDEPENDS = $(PERL) $(TOOLS)/makeDbDepends.pl
REPLACEVAR = $(PERL) $(TOOLS)/replaceVAR.pl
# dbExpand
INSTALL_DBDFLAGS += -I $(INSTALL_LOCATION)/dbd
USR_DBDFLAGS =
DBDFLAGS = $(USR_DBDFLAGS) -I . -I .. $(INSTALL_DBDFLAGS)
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
INSTALL_DATA=$(INSTALLDB:%=$(INSTALL_DB)/%)
##################################################### Targets
all: install
DBD += $(DBDNAME)
DBD += $(addsuffix .dbd,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
INC += $(addsuffix .h,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
inc: $(INSTALL_DBS)
INSTALL_DBDS += $(DBD:%= $(INSTALL_DBD)/%)
rebuild: clean install
COMMON_DBDS += $(filter $(COMMON_DIR)/%, $(foreach file, $(DBD), \
$(firstword $(SOURCE_DBD) $(COMMON_DIR)/$(file) ) ) )
SOURCE_DBD = $(wildcard $(file) $(SOURCE_DBD_bbb) )
SOURCE_DBD_bbb = $(foreach dir, $(GENERIC_SRC_DIRS), $(SOURCE_DBD_aaa) )
SOURCE_DBD_aaa = $(addsuffix /$(file), $(dir) )
install: inc buildInstall
INSTALL_DBS += $(addprefix $(INSTALL_DB)/,$(notdir $(DB)))
buildInstall: build $(INSTALL_BPTS) $(INSTALL_DATA)
COMMON_DBS += $(filter $(COMMON_DIR)/%, $(foreach file, $(DB), \
$(firstword $(SOURCE_DB) $(COMMON_DIR)/$(file) ) ) )
SOURCE_DB = $(wildcard $(file) $(SOURCE_DB_bbb) )
SOURCE_DB_bbb = $(foreach dir, $(GENERIC_SRC_DIRS), $(SOURCE_DB_aaa) )
SOURCE_DB_aaa = $(addsuffix /$(file), $(dir) )
clean::
@echo "Cleaning"
@$(RM) $(DB) *.template *.substitutions *.db.raw \
*.db-stamp *.edf esiread.cnf
##################################################### build dependancies, clean rule
depends:
inc : $(COMMON_INC) $(INSTALL_INC)
build : $(COMMON_DBDS) $(COMMON_DBS) \
$(INSTALL_DBDS) $(INSTALL_DBS)
clean::
@$(RM) $(COMMON_DIR)/*.dbd
@$(RM) $(COMMON_DIR)/*.db
@$(RM) $(COMMON_DIR)/*.h
@$(RM) *_registerRecordDeviceDriver.cpp
@$(RM) $(COMMON_DIR)/*.substitutions
@$(RM) $(COMMON_DIR)/*.template
##################################################### "Foreign" templates
TEMPLATE_LINKS = $(filter-out $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
TEMPLATE_FILES = $(filter $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
DB_STAMP = $(patsubst %.db, %.db-stamp, $(DB))
DB_REALTARGET = $(patsubst %.db-stamp, %.db, $@)
COMMON_TEMPLATES=$(addsuffix $(COMMON_DIR)/,$(notdir $(TEMPLATE_LINKS)))
ifneq '$(TEMPLATE_LINKS)' ''
build: $(notdir $(TEMPLATE_LINKS))
endif
build: $(INSTALL_DBDNAME) $(TEMPLATE_FILES) $(DB_STAMP)
build: $(TEMPLATE_FILES)
$(notdir $(TEMPLATE_LINKS)): %.template:
$(COMMON_TEMPLATES): $(COMMON_DIR)/%.template:
ifndef WIN32
@$(RM) $(notdir $(TEMPLATE_LINKS))
ln -s $(TEMPLATE_LINKS) .
ln -s $(TEMPLATE_LINKS)
else
@$(RM) $(notdir $(TEMPLATE_LINKS))
$(CP) $(TEMPLATE_LINKS) .
$(CP) $(TEMPLATE_LINKS)
endif
##################################################### Inflated or plain databases
$(INSTALL_DB)/%.db: %.db-stamp
@echo "Installing database $@"
@$(INSTALL) -d -m 644 $(patsubst %.db-stamp, %.db, $<) $(@D)
# Must have DBDNAME defined to use dbst optimization
ifndef DBDNAME
DB_OPT = NO
endif
# dbst based database optimization
ifeq '$(DB_OPT)' 'YES'
.PRECIOUS: %.db.raw
%.db-stamp: %.db.raw $(INSTALL_DBDNAME)
@echo "Optimizing database $@"
$(DBST) $(INSTALL_DBDNAME) $< -d > $(DB_REALTARGET)
@$(TOUCH) $@
%.db-stamp: %.t.db.raw $(INSTALL_DBDNAME)
@echo "Optimizing database $@"
$(DBST) $(INSTALL_DBDNAME) $< -d > $(DB_REALTARGET)
@$(TOUCH) $@
else
# NO optimization => move it and keep a stamp
%.db-stamp: %.db.raw
@$(MV) $< $(DB_REALTARGET)
@$(TOUCH) $@
@$(TOUCH) $<
%.db-stamp: %.t.db.raw
@$(MV) $< $(DB_REALTARGET)
@$(TOUCH) $@
@$(TOUCH) $<
endif
%.t.db.raw: %.substitutions
@echo "Inflating database from $<"
@$(RM) $@
$(MSI) -S $< $*.template > $@
##################################################### CapFast filter
%.edf: ../%.sch $(DEPSCHS)
$(COMMON_DIR)/%.edf: ../%.sch $(DEPSCHS)
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
##################################################### Substitution files
$(INSTALL_DB)/%.substitutions: %.substitutions
@echo "Installing $@"
@$(INSTALL) -d -m 644 $(@F) $(@D)
#$(COMMON_DIR)/%.substitutions: ../%.substitutions $(COMMON_DIR)/%.template
# @$(CP) $< $@
%.substitutions: ../%.substitutions %.template
@$(CP) $< $@
# WARNING: CREATESUBSTITUTIONS script need output dir on command line
ifdef CREATESUBSTITUTIONS
%.substitutions:
@$(CREATESUBSTITUTIONS) $*
$(COMMON_DIR)/%.substitutions:
@$(CREATESUBSTITUTIONS) $(COMMON_DIR)/$*
endif
# Better make it PRECIOUS (to get around make bug)
.PRECIOUS: %.substitutions %.template
.PRECIOUS: $(DB:%.db=$(COMMON_DIR)/%.substitutions)
##################################################### Template databases
##################################################### Template files
# Installed template files (dbLoadTemplate() on IOC side)
$(INSTALL_DB)/%.template: %.template
@echo "Installing $@"
@$(INSTALL) -d -m 644 $(@F) $(@D)
#$(COMMON_DIR)/%.template: ../%.template
# @$(CP) $< $@
%.template: ../%.template
@$(CP) $< $@
%.template:
$(COMMON_DIR)/%.template:
@$(TOUCH) $@
%.template: %.edf
$(COMMON_DIR)/%.template: $(COMMON_DIR)/%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
@$(REPLACEVAR) < $@.VAR > $@
@$(RM) $@.VAR
##################################################### Flat databases
%.db.raw: ../%.db
$(CP) $< $@
%.db.raw: %.edf
$(COMMON_DIR)/%.template: ../%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
@$(REPLACEVAR) < $@.VAR > $@
@$(RM) $@.VAR
##################################################### DBD stuff
.PRECIOUS: $(DB:%.db=$(COMMON_DIR)/%.template)
$(INSTALL_DBD)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
##################################################### INC files
$(INSTALL_DBD)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(COMMON_DIR)/%Record.h: ../%Record.dbd
@$(RM) $@
$(DBTORECORDTYPEH) $(DBDFLAGS) $< $@
$(COMMON_DIR)/menu%.h: ../menu%.dbd
@$(RM) $@
$(DBTOMENUH) $< $@
##################################################### DBD files
$(INSTALL_DBD)/bpt%.dbd: ../bpt%.data
$(COMMON_DIR)/bpt%.dbd: ../bpt%.data
$(RM) $@
$(MAKEBPT) $< $@
ifdef DBDEXPAND
$(INSTALL_DBD)/$(DBDNAME): $(addprefix ../,$(DBDEXPAND))
$(COMMON_DIR)/%.dbd: ../%Include.dbd
@echo "Expanding dbd"
$(RM) $@
$(DBEXPAND) $(DBDFLAGS) $< > $@
$(INSTALL_DBD)/%: $(COMMON_DIR)/%
@echo "Installing dbd file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_DBD)/%: ../%
@echo "Installing dbd file $@"
@$(INSTALL) -d -m 644 $< $(@D)
.PRECIOUS: $(COMMON_DBDS)
##################################################### DB files
$(COMMON_DIR)/%.db$(RAW): ../%.db
$(CP) $< $@
$(COMMON_DIR)/%.db$(RAW): $(COMMON_DIR)/%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
@$(REPLACEVAR) < $@.VAR > $@
@$(RM) $@.VAR
$(COMMON_DIR)/%.db$(RAW): ../%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
@$(REPLACEVAR) < $@.VAR > $@
@$(RM) $@.VAR
$(COMMON_DIR)/%.db$(RAW): %.substitutions %.template
@echo "Inflating database from $<"
@$(RM) $@
$(DBEXPAND) $(USR_DBDFLAGS) $^ > $@
$(MSI) -S $^ > $@
# dbst based database optimization
ifeq '$(DB_OPT)' 'YES'
$(COMMON_DIR)/%.db: $(COMMON_DIR)/%.db$(RAW)
@echo "Optimizing database $@"
$(DBST) . $< -d > $@
RAW=.raw
.PRECIOUS: $(DB:%=$(COMMON_DIR)/%$(RAW))
else
$(INSTALL_DB)/%: %
@echo "Installing db file $@"
@$(INSTALL) -d -m 644 $< $(@D)
endif
##################################################### Dependencies
$(INSTALL_DB)/%: $(COMMON_DIR)/%
@echo "Installing db file $@"
@$(INSTALL) -d -m 644 $< $(@D)
DEPENDS: $(filter $(patsubst %.db, ../%.substitutions, $(DB)), $(wildcard ../*.substitutions))
.PRECIOUS: $(COMMON_DBS)
##################################################### register record,device,driver support
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $< > $@
%_registerRecordDeviceDriver.cpp: ../%.dbd
$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $< > $@
##################################################### DB dependancies
ifneq (,$(COMMON_DBS))
DBDEPENDS: $(COMMON_DBS:$(COMMON_DIR)/%.db=%.substitutions) $(COMMON_DBS:$(COMMON_DIR)/%.db=%.template)
@echo 'Creating DB dependancy file $@'
@echo "Making template database dependencies"
@$(MAKEDBDEPENDS) $^
-include DEPENDS
-include DBDEPENDS
endif
##################################################### DBD dependancies
ifneq (,$(wildcard $(patsubst %.dbd,../%Include.dbd,$(notdir $(COMMON_DBDS)))))
DBDDEPENDS_%: ../%Include.dbd
@echo 'Creating DBD dependancy file $@'
@$(RM) $@
$(MAKEDBDDEPENDS) $(DBDFLAGS) $(COMMON_DIR)/$*.dbd $< > $@
-include $(patsubst ../%Include.dbd,DBDDEPENDS_%,$(wildcard $(patsubst %.dbd,../%Include.dbd,$(notdir $(COMMON_DBDS)))))
endif
##################################################### END OF FILE