Merged the gen-pkg-config branch

This commit is contained in:
Andrew Johnson
2014-09-26 10:13:01 -05:00
6 changed files with 102 additions and 7 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

@@ -1,6 +1,6 @@
# <top>/configure/RULES_EXPAND
ifeq ($(findstring Host,$(VALID_BUILDS)),Host)
vpath %@ $(USR_VPATH) $(ALL_SRC_DIRS)
# Default settings
EXPAND_TOOL ?= $(PERL) $(TOOLS)/expandVars.pl
@@ -8,11 +8,12 @@ EXPAND_TOOL ?= $(PERL) $(TOOLS)/expandVars.pl
EXPANDFLAGS += -t $(INSTALL_LOCATION) -a $(T_A)
EXPANDFLAGS += $(addprefix -D ,$(EXPAND_VARS))
# The names of files to be expanded must end with '@'
EXPANDED = $(EXPAND:%@=%)
buildInstall: $(EXPANDED)
$(EXPANDED): %: ../%@
$(EXPANDED): %: %@
$(ECHO) "Expanding $< to $@"
@$(RM) $@
@$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
@@ -23,5 +24,3 @@ expand_clean:
@$(RM) $(EXPANDED)
.PHONY : expand_clean
endif

View File

@@ -51,5 +51,28 @@ 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
PKGVARS += CC CCC CPP AR LD
PKGVARS += EPICS_BASE_IOC_LIBS
EXPANDFLAGS += $(foreach var,$(PKGVARS),-D$(var)="$(strip $($(var)))")
PKGCONFIG += epics-base-$(T_A).pc
ifeq ($(T_A),$(EPICS_HOST_ARCH))
PKGCONFIG += epics-base.pc
endif
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

@@ -0,0 +1,41 @@
# standard variables
prefix=@FINAL_LOCATION@
exec_prefix=${prefix}
bindir=${prefix}/bin/@ARCH@
libdir=${prefix}/lib/@ARCH@
# non-standard variables
# EPICS Base install location
FINAL_LOCATION=${prefix}
ARCH=@ARCH@
OS_CLASS=@OS_CLASS@
CMPLR_CLASS=@CMPLR_CLASS@
EPICS_BASE_IOC_LIBS=@EPICS_BASE_IOC_LIBS@
# Directories
includedir_osi=${prefix}/include
includedir_osd=${prefix}/include/os/@OS_CLASS@
includedir_comp=${prefix}/include/compiler/@CMPLR_CLASS@
includedirs=${includedir_osi} ${includedir_osd} ${includedir_comp}
dbddir=${prefix}/dbd
dbdir=${prefix}/db
# Tool chain
CC=@CC@
CXX=@CCC@
CPP=@CPP@
AR=@AR@
LD=@LD@
Name: epics-base-@ARCH@
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@
Libs.private: @LDLIBS@

29
src/tools/epics-base.pc@ Normal file
View File

@@ -0,0 +1,29 @@
# standard variables
prefix=@FINAL_LOCATION@
exec_prefix=${prefix}
bindir=${prefix}/bin/@ARCH@
libdir=${prefix}/lib/@ARCH@
# non-standard variables
# EPICS Base install location
FINAL_LOCATION=${prefix}
ARCH=@ARCH@
OS_CLASS=@OS_CLASS@
CMPLR_CLASS=@CMPLR_CLASS@
# Directories
includedir_osi=${prefix}/include
includedir_osd=${prefix}/include/os/@OS_CLASS@
includedir_comp=${prefix}/include/compiler/@CMPLR_CLASS@
includedirs=${includedir_osi} ${includedir_osd} ${includedir_comp}
dbddir=${prefix}/dbd
dbdir=${prefix}/db
Name: epics-base
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_PATCH_LEVEL@

View File

@@ -49,9 +49,9 @@ expandRelease(\%vars);
$vars{'ARCH'} = $opt_a if $opt_a;
while ($_ = shift @opt_D) {
my ($var, $val) = split /=/;
$vars{$var} = $val;
print "$var = $val\n" if $opt_d;
m/^ (\w+) \s* = \s* (.*) $/x;
$vars{$1} = $2;
print "$1 = $2\n" if $opt_d;
}
# Do it!