Files
pcas/configure/RULES.Db
2001-07-26 20:27:16 +00:00

256 lines
6.7 KiB
Plaintext

#RULES.Db
##################################################### vpath
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)
##################################################### dbdflags
# dbExpand
INSTALL_DBDFLAGS += -I $(INSTALL_LOCATION)/dbd
DBDFLAGS = $(USR_DBDFLAGS) -I . -I .. $(INSTALL_DBDFLAGS)
##################################################### Targets
# Following line added for backward compatibilty
DBD += $(DBDNAME)
DBD += $(addsuffix .dbd,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
INC += $(addsuffix .h,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
INSTALL_DBDS += $(DBD:%= $(INSTALL_DBD)/%)
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) )
DBDDEPENDS_FILES += $(subst .dbd,$(DEP),$(COMMON_DBDS))
INSTALL_DBS += $(addprefix $(INSTALL_DB)/,$(notdir $(DB)))
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) )
DBDEPENDS_FILES += $(subst .db,$(DEP),$(COMMON_DBS))
COMMONS = $(COMMON_DIR)/*.dbd $(COMMON_DIR)/*.db $(COMMON_DIR)/*.h $(COMMON_DIR)/*.substitutions $(COMMON_DIR)/*.template
#####################################################
ifndef T_A
COMMON_DIR = .
INSTALL_DBDS =
INSTALL_DBS =
COMMON_DBDS = $(DBD)
COMMON_DBS = $(DB)
COMMONS = $(DBD) $(DB)
-include $(TOP)/configure/O.$(EPICS_HOST_ARCH)/CONFIG_APP_INCLUDE
all: install
buildInstall : build
install: buildInstall
rebuild: clean install
.PHONY: all inc build install clean rebuild buildInstall
endif # T_A defined
##################################################### build dependancies, clean rule
inc : $(COMMON_INC) $(INSTALL_INC)
build : $(COMMON_DBDS) $(COMMON_DBS) \
$(INSTALL_DBDS) $(INSTALL_DBS)
clean::
@$(RM) $(COMMONS) $(DBDDEPENDS_FILES) $(DBDEPENDS_FILES)
@$(RM) *_registerRecordDeviceDriver.cpp
##################################################### "Foreign" templates
TEMPLATE_LINKS = $(filter-out $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
TEMPLATE_FILES = $(filter $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
COMMON_TEMPLATES=$(addsuffix $(COMMON_DIR)/,$(notdir $(TEMPLATE_LINKS)))
ifneq '$(TEMPLATE_LINKS)' ''
build: $(notdir $(TEMPLATE_LINKS))
endif
build: $(TEMPLATE_FILES)
$(COMMON_TEMPLATES): $(COMMON_DIR)/%.template:
ifndef WIN32
@$(RM) $(notdir $(TEMPLATE_LINKS))
ln -s $(TEMPLATE_LINKS)
else
@$(RM) $(notdir $(TEMPLATE_LINKS))
$(CP) $(TEMPLATE_LINKS)
endif
##################################################### CapFast filter
$(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
#$(COMMON_DIR)/%.substitutions: ../%.substitutions $(COMMON_DIR)/%.template
# @$(CP) $< $@
# WARNING: CREATESUBSTITUTIONS script need output dir on command line
ifdef CREATESUBSTITUTIONS
$(COMMON_DIR)/%.substitutions:
@$(CREATESUBSTITUTIONS) $(COMMON_DIR)/$*
endif
.PRECIOUS: $(DB:%.db=$(COMMON_DIR)/%.substitutions)
##################################################### Template files
#$(COMMON_DIR)/%.template: ../%.template
# @$(CP) $< $@
$(COMMON_DIR)/%.template:
@$(TOUCH) $@
$(COMMON_DIR)/%.template: $(COMMON_DIR)/%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
@$(REPLACEVAR) < $@.VAR > $@
@$(RM) $@.VAR
$(COMMON_DIR)/%.template: ../%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
@$(REPLACEVAR) < $@.VAR > $@
@$(RM) $@.VAR
.PRECIOUS: $(DB:%.db=$(COMMON_DIR)/%.template)
##################################################### INC files
$(COMMON_DIR)/%Record.h: ../%Record.dbd
@$(RM) $@
$(DBTORECORDTYPEH) $(DBDFLAGS) $< $@
$(COMMON_DIR)/menu%.h: ../menu%.dbd
@$(RM) $@
$(DBTOMENUH) $< $@
$(COMMON_DIR)/%Record.h: %Record.dbd
@$(RM) $@
$(DBTORECORDTYPEH) $(DBDFLAGS) $< $@
$(COMMON_DIR)/menu%.h: menu%.dbd
@$(RM) $@
$(DBTOMENUH) $< $@
##################################################### DBD files
ifneq (,$(strip $(DBDDEPENDS_FILES)))
-include $(DBDDEPENDS_FILES)
endif
$(COMMON_DIR)/bpt%.dbd: ../bpt%.data
$(RM) $@
$(MAKEBPT) $< $@
$(COMMON_DIR)/bpt%.dbd: bpt%.data
$(RM) $@
$(MAKEBPT) $< $@
$(COMMON_DIR)/%.dbd: ../%Include.dbd
@$(MAKEDBDDEPENDS) $(DBDFLAGS) $(COMMON_DIR)/$*.dbd $< > $(COMMON_DIR)/$*$(DEP)
@echo "Expanding dbd"
$(RM) $@
$(DBEXPAND) $(DBDFLAGS) $< > $@
$(COMMON_DIR)/%.dbd: %Include.dbd
@$(MAKEDBDDEPENDS) $(DBDFLAGS) $(COMMON_DIR)/$*.dbd $< > $(COMMON_DIR)/$*$(DEP)
@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
ifneq (,$(strip $(DBDEPENDS_FILES)))
-include $(DBDEPENDS_FILES)
endif
$(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 $<"
@$(MAKEDBDEPENDS) $@ $< $(COMMON_DIR)/$*$(DEP)
@$(RM) $@
$(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
$(INSTALL_DB)/%: $(COMMON_DIR)/%
@echo "Installing db file $@"
@$(INSTALL) -d -m 644 $< $(@D)
.PRECIOUS: $(COMMON_DBS)
##################################################### register record,device,driver support
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $< > $@
%_registerRecordDeviceDriver.cpp: ../%.dbd
$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $< > $@
##################################################### END OF FILE