From 92f5e5775d339e780fbb590b5c5baf028c623149 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 19 Sep 2014 16:37:56 -0500 Subject: [PATCH] Restructured patch. * Move the construction of the .pc files into src/tools * Make more use of the built-in rules for variable substitution * Make PKGCONFIG an Makefile variable for installing .pc files * Use EPICS_PATCH_LEVEL for the final digit in the version number --- configure/CONFIG_FILE_TYPE | 3 ++ configure/Makefile | 43 ------------------- configure/RULES_EXPAND | 4 +- src/tools/Makefile | 19 ++++++++ .../tools/epics-base-arch.pc@ | 2 +- .../tools/epics-base.pc@ | 4 +- 6 files changed, 28 insertions(+), 47 deletions(-) rename configure/epics-base-arch.pc.in => src/tools/epics-base-arch.pc@ (97%) rename configure/epics-base.pc.in => src/tools/epics-base.pc@ (90%) diff --git a/configure/CONFIG_FILE_TYPE b/configure/CONFIG_FILE_TYPE index 0501e1949..c15f4b783 100644 --- a/configure/CONFIG_FILE_TYPE +++ b/configure/CONFIG_FILE_TYPE @@ -60,6 +60,9 @@ INSTALL_EDL = $(INSTALL_LOCATION)/edl FILE_TYPE += PERL_MODULES INSTALL_PERL_MODULES = $(INSTALL_LOCATION_LIB)/perl +FILE_TYPE += PKGCONFIG +INSTALL_PKGCONFIG = $(INSTALL_LOCATION_LIB)/pkgconfig + INSTALLS_CFG = $(CFG:%= $(INSTALL_CFG)/%) DIRECTORY_TARGETS += $(foreach type, $(FILE_TYPE),$(INSTALL_$(type))) diff --git a/configure/Makefile b/configure/Makefile index 6c4faf688..86c59048e 100644 --- a/configure/Makefile +++ b/configure/Makefile @@ -23,48 +23,5 @@ CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*)) CONFIGS += $(subst ../,,$(wildcard ../RELEASE*)) CONFIGS += $(subst ../,,$(wildcard ../RULES*)) -ifdef T_A -ifeq ($(BUILD_CLASS)$(POSIX),HOSTYES) - -FINAL_LOCATION ?= $(shell $(PERL) $(TOOLS)/fullPathName.pl $(INSTALL_LOCATION)) - -INSTALL_PC ?= $(INSTALL_LOCATION)/lib/pkgconfig - -DIRECTORY_TARGETS += $(INSTALL_PC) - -C_CFLAGS += $(filter-out -g,$(filter-out -O%,$(filter-out -W%,$(CPPFLAGS)))) -C_CFLAGS += $(filter-out -g,$(filter-out -O%,$(filter-out -W%,$(CFLAGS)))) - -MVARS += FINAL_LOCATION OS_CLASS CMPLR_CLASS C_CFLAGS LDFLAGS LDLIBS -MVARS += EPICS_VERSION EPICS_REVISION EPICS_MODIFICATION EPICS_MODIFICATION - -EXPANDFLAGS += $(foreach var,$(MVARS),-D$(var)="$(strip $($(var)))") - -endif -endif - include $(TOP)/configure/RULES -ifdef T_A -ifeq ($(BUILD_CLASS)$(POSIX),HOSTYES) - -epics-base-$(T_A).pc: ../epics-base-arch.pc.in -epics-base.pc: ../epics-base.pc.in - -epics-base-$(T_A).pc epics-base.pc: - $(ECHO) "Expanding $< to $@" - @$(RM) $@ - @$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@ - -$(INSTALL_PC)/%: % - $(ECHO) "Installing pkgconfig file $@" - @$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D) - -buildInstall: $(INSTALL_PC)/epics-base-$(T_A).pc - -ifeq ($(T_A),$(EPICS_HOST_ARCH)) -buildInstall: $(INSTALL_PC)/epics-base.pc -endif - -endif -endif diff --git a/configure/RULES_EXPAND b/configure/RULES_EXPAND index c103fe95c..5cf24bd06 100644 --- a/configure/RULES_EXPAND +++ b/configure/RULES_EXPAND @@ -2,6 +2,8 @@ ifeq ($(findstring Host,$(VALID_BUILDS)),Host) +vpath %@ $(USR_VPATH) $(ALL_SRC_DIRS) + # Default settings EXPAND_TOOL ?= $(PERL) $(TOOLS)/expandVars.pl @@ -12,7 +14,7 @@ EXPANDED = $(EXPAND:%@=%) buildInstall: $(EXPANDED) -$(EXPANDED): %: ../%@ +$(EXPANDED): %: %@ $(ECHO) "Expanding $< to $@" @$(RM) $@ @$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@ diff --git a/src/tools/Makefile b/src/tools/Makefile index 496b0e4d1..0c7dce2c0 100644 --- a/src/tools/Makefile +++ b/src/tools/Makefile @@ -51,5 +51,24 @@ PERL_SCRIPTS += dbdExpand.pl PERL_SCRIPTS += dbdToHtml.pl PERL_SCRIPTS += registerRecordDeviceDriver.pl +# Build Package Config Files + +FINAL_LOCATION ?= $(shell $(PERL) $(TOOLS)/fullPathName.pl $(INSTALL_LOCATION)) +C_CFLAGS += $(filter-out -g,$(filter-out -O%,$(filter-out -W%,$(CPPFLAGS)))) +C_CFLAGS += $(filter-out -g,$(filter-out -O%,$(filter-out -W%,$(CFLAGS)))) +PKGVARS += FINAL_LOCATION OS_CLASS CMPLR_CLASS C_CFLAGS LDFLAGS LDLIBS +PKGVARS += EPICS_VERSION EPICS_REVISION EPICS_MODIFICATION EPICS_PATCH_LEVEL + +EXPANDFLAGS += $(foreach var,$(PKGVARS),-D$(var)="$(strip $($(var)))") +PKGCONFIG += epics-base.pc +PKGCONFIG += epics-base-$(T_A).pc + +EXPAND += $(PKGCONFIG:%=%@) +CLEANS += epics-base-$(T_A).pc@ + include $(TOP)/configure/RULES +epics-base-$(T_A).pc@: ../epics-base-arch.pc@ + @$(RM) $@ + @$(CP) $< $@ + diff --git a/configure/epics-base-arch.pc.in b/src/tools/epics-base-arch.pc@ similarity index 97% rename from configure/epics-base-arch.pc.in rename to src/tools/epics-base-arch.pc@ index b5807abd9..c75d02684 100644 --- a/configure/epics-base-arch.pc.in +++ b/src/tools/epics-base-arch.pc@ @@ -17,7 +17,7 @@ bindir=${top}/bin/@ARCH@ libdir=${top}/lib/@ARCH@ Name: epics-base-@ARCH@ -Version: @EPICS_VERSION@.@EPICS_REVISION@.@EPICS_MODIFICATION@.@EPICS_MODIFICATION@ +Version: @EPICS_VERSION@.@EPICS_REVISION@.@EPICS_MODIFICATION@.@EPICS_PATCH_LEVEL@ Description: EPICS Base for @ARCH@ Cflags: -I${includedir_osi} -I${includedir_osd} -I${includedir_comp} @C_CFLAGS@ Libs: -L${libdir} @LDFLAGS@ diff --git a/configure/epics-base.pc.in b/src/tools/epics-base.pc@ similarity index 90% rename from configure/epics-base.pc.in rename to src/tools/epics-base.pc@ index 274594a82..08cfdcc33 100644 --- a/configure/epics-base.pc.in +++ b/src/tools/epics-base.pc@ @@ -17,6 +17,6 @@ bindir=${top}/bin/@ARCH@ libdir=${top}/lib/@ARCH@ Name: epics-base -Version: @EPICS_VERSION@.@EPICS_REVISION@.@EPICS_MODIFICATION@.@EPICS_MODIFICATION@ +Version: @EPICS_VERSION@.@EPICS_REVISION@.@EPICS_MODIFICATION@.@EPICS_PATCH_LEVEL@ Description: EPICS Base for the host arch -Requires: epics-base-@ARCH@ = @EPICS_VERSION@.@EPICS_REVISION@.@EPICS_MODIFICATION@.@EPICS_MODIFICATION@ +Requires: epics-base-@ARCH@ = @EPICS_VERSION@.@EPICS_REVISION@.@EPICS_MODIFICATION@.@EPICS_PATCH_LEVEL@