From 38712ed260ebcb534b90ee4c59344da70f07306f Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Sun, 24 Jan 2016 16:05:55 +0000 Subject: [PATCH] make, scripts: Some additions to package-config creation Signed-off-by: Jan Lindemann --- make/defs-dev.mk | 1 + make/defs-dist.mk | 3 ++- make/make.mk | 10 ++++++++- scripts/create-pkg-config.sh | 42 ++++++++++++++++++++++++++++++------ 4 files changed, 48 insertions(+), 8 deletions(-) diff --git a/make/defs-dev.mk b/make/defs-dev.mk index 8652ad49..ff89cc7e 100644 --- a/make/defs-dev.mk +++ b/make/defs-dev.mk @@ -6,6 +6,7 @@ # -- files #CONTRIBDIR ?= $(TOPDIR)/contrib PROJECT_DIRNAME ?= $(PROJECT) +PROJECT_DIRPATH ?= $(shell readlink -f $(TOPDIR)) PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)-$(VERSION) VAR_PREFIX ?= $(PREFIX)/var DOC_PREFIX ?= $(PREFIX)/doc/$(PROJECT) diff --git a/make/defs-dist.mk b/make/defs-dist.mk index 7237648f..7bc9751e 100644 --- a/make/defs-dist.mk +++ b/make/defs-dist.mk @@ -6,7 +6,8 @@ # -- files #CONTRIBDIR ?= $(TOPDIR)/contrib PROJECT_DIRNAME ?= $(PROJECT) -PREFIX ?= $(ENV_PREFIX)/opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME) +PROJECT_DIRPATH ?= /opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME) +PREFIX ?= $(ENV_PREFIX)$(PROJECT_DIRPATH) VAR_PREFIX ?= $(ENV_PREFIX)/var/$(FLAVOUR_PATH_PREFIX)lib DOC_PREFIX ?= $(ENV_PREFIX)/usr/share/doc/packages/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME) EXE_PREFIX ?= $(PREFIX) diff --git a/make/make.mk b/make/make.mk index 08a0331c..006403d2 100644 --- a/make/make.mk +++ b/make/make.mk @@ -38,10 +38,18 @@ install-links: do-install-links: @$(call install_links,MAKE) +ifeq ($(USE_PROJECT_LIB),true) +CREATE_PKG_CONFIG_OPTS += -V blah=blub +endif + $(LOCAL_PKG_CONFIG): $(PROJECT_DESCR_FILE) $(MODDIR)/make/make.mk $(MOD_SCRIPT_DIR)/create-pkg-config.sh /bin/bash $(MOD_SCRIPT_DIR)/create-pkg-config.sh \ - -d "$(PROJECT_DESCR)" \ -F $< \ + -n $(PROJECT) \ + -v $(DIST_VERSION) \ + -p $(PROJECT_DIRPATH) \ + -V $(shell echo $(PROJECT) | tr a-z- A-Z_)_DIR=$(PROJECT_DIRPATH) \ + $(CREATE_PKG_CONFIG_OPTS) \ > $@.tmp mv $@.tmp $@ diff --git a/scripts/create-pkg-config.sh b/scripts/create-pkg-config.sh index cc95da40..9f899e58 100644 --- a/scripts/create-pkg-config.sh +++ b/scripts/create-pkg-config.sh @@ -1,5 +1,13 @@ #!/bin/bash +try_assign_sec() +{ + local file="$1" + local sec="$2" + local val=`_ytools_cat_section "$file" "$sec"` + [ -n "$val" ] && eval $3=\"$val\" +} + usage() { cat <<- EOT | sed 's/^ *|//' @@ -21,7 +29,7 @@ set -e project_descr_file="$1" myname=`basename $0` -eval set -- `getopt -- F:d: "$@"` +eval set -- `getopt -- hF:d:n:s:p:v:V: "$@"` while [ "$1" != -- ]; do case $1 in @@ -35,6 +43,26 @@ case $1 in description="$2" shift ;; + -n) + name="$2" + shift + ;; + -s) + summary="$2" + shift + ;; + -p) + prefix="$2" + shift + ;; + -v) + version="$2" + shift + ;; + -V) + variables="$variables$2\n" + shift + ;; *) usage 1;; esac @@ -44,18 +72,20 @@ shift [ -r "$project_descr_file" ] && { . ytools-functions.sh - descr=`_ytools_cat_section "$project_descr_file" description` + try_assign_sec $project_descr_file description descr + try_assign_sec $project_descr_file summary summary } +[ "$variables" ] && echo -e "$variables" cat <<-EOT -prefix=/usr +prefix=$prefix exec_prefix=\${prefix} includedir=\${prefix}/include libdir=\${exec_prefix}/lib -Name: foo -Description: $descr -Version: 1.0.0 +Name: $name +Description: $summary +Version: $version Cflags: -I\${includedir}/foo Libs: -L\${libdir} -lfoo EOT