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
This commit is contained in:
Andrew Johnson
2014-09-19 16:37:56 -05:00
parent 7f5fc4356b
commit 92f5e5775d
6 changed files with 28 additions and 47 deletions

View File

@@ -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)))

View File

@@ -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

View File

@@ -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) $< $@

View File

@@ -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) $< $@

View File

@@ -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@

View File

@@ -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@