From 9e7fc1915b388704e5fd8c45004486bd91999fce Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 3 Mar 2020 01:00:42 -0600 Subject: [PATCH] Add build rules to generate and install *API.h header files --- configure/CONFIG_COMMON | 2 +- configure/RULES_BUILD | 16 ++++++++++++++++ configure/RULES_TARGET | 13 +++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON index b79e15cf5..6c0e11e0d 100644 --- a/configure/CONFIG_COMMON +++ b/configure/CONFIG_COMMON @@ -306,7 +306,7 @@ LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\ CPPFLAGS = $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\ $(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\ $(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\ - $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS) + $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS) $(API_CPPFLAGS) #-------------------------------------------------- # ar definition default diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index 3df3052b4..99bbb0726 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -409,6 +409,22 @@ endif $(PERL) $(TOOLS)/makeTestfile.pl $(T_A) $(EPICS_HOST_ARCH) $@ $< #--------------------------------------------------------------- +# Generate an $(API_HEADER) file on request (%API.h) + +ifdef API_HEADER +# Install it +INC += $(API_HEADER) + +# Ensure we generate it early enough +$(filter-out $(INSTALL_INCLUDE)/$(API_HEADER), $(INSTALL_INC)) $(HDEPENDS_FILES): \ + | $(INSTALL_INCLUDE)/$(API_HEADER) + +# How to make it +$(COMMON_DIR)/$(API_HEADER): + @$(RM) $@ + $(PERL) $(TOOLS)/makeAPIheader.pl -o $@ $(API_HEADER:API.h=) +endif + # Generate header with version number from VCS ifneq ($(GENVERSION),) diff --git a/configure/RULES_TARGET b/configure/RULES_TARGET index e96232876..5d77b105e 100644 --- a/configure/RULES_TARGET +++ b/configure/RULES_TARGET @@ -95,12 +95,20 @@ $(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS), \ $$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS) $$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_DEPLIBS) +ifneq ($$($(1)_API),) +$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX): API_CPPFLAGS += -DBUILDING_$$($(1)_API)_API +endif + ifeq ($$(SHARED_LIBRARIES),YES) ifdef SHRLIB_SUFFIX $$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS) $$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DEPLIBS) $$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS) + +ifneq ($$($(1)_API),) +$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX): API_CPPFLAGS += -DBUILDING_$$($(1)_API)_API +endif endif endif @@ -141,6 +149,11 @@ $(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS),\ $$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS) $$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DEPLIBS) $$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS) + +ifneq ($$($(1)_API),) +$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX): \ + API_CPPFLAGS += -DBUILDING_$$($(1)_API)_API +endif endef $(foreach target, $(LOADABLE_LIBRARY), \