Merged the gen-pkg-config branch
This commit is contained in:
@@ -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)))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) $< $@
|
||||
|
||||
|
||||
41
src/tools/epics-base-arch.pc@
Normal file
41
src/tools/epics-base-arch.pc@
Normal 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
29
src/tools/epics-base.pc@
Normal 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@
|
||||
@@ -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!
|
||||
|
||||
Reference in New Issue
Block a user