summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in1
-rw-r--r--sofort/pkgconf.mk40
-rwxr-xr-xsofort/pkgconf.sh92
3 files changed, 133 insertions, 0 deletions
diff --git a/Makefile.in b/Makefile.in
index a58763d..f3f41bf 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -115,6 +115,7 @@ include $(PROJECT_DIR)/project/osforce.mk
include $(PROJECT_DIR)/sofort/defs.mk
include $(PROJECT_DIR)/sofort/version.mk
include $(PROJECT_DIR)/sofort/custom.mk
+include $(PROJECT_DIR)/sofort/pkgconf.mk
include $(PROJECT_DIR)/project/tree.mk
include $(PROJECT_DIR)/project/depends.mk
diff --git a/sofort/pkgconf.mk b/sofort/pkgconf.mk
new file mode 100644
index 0000000..c28eae6
--- /dev/null
+++ b/sofort/pkgconf.mk
@@ -0,0 +1,40 @@
+ifeq ($(PKGCONF),no)
+
+install-pkgconf:
+
+else
+
+PKGCONF_VERSION = $(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)
+
+build/$(PACKAGE).pc: .pkgconf
+
+build/$(PACKAGE).pc:
+ @touch $@
+ @chmod 0644 $@
+ PKGCONF_NAME='$(PKGNAME)' \
+ PKGCONF_DESC='$(PKGDESC)' \
+ PKGCONF_USRC='$(PKGUSRC)' \
+ PKGCONF_REPO='$(PKGREPO)' \
+ PKGCONF_PSRC='$(PKGPSRC)' \
+ PKGCONF_DURL='$(PKGDURL)' \
+ PKGCONF_DEFS='$(PKGDEFS)' \
+ PKGCONF_LIBS='$(PKGLIBS)' \
+ \
+ PKGCONF_EXEC_PREFIX='$(EXEC_PREFIX)' \
+ PKGCONF_PREFIX='$(PREFIX)' \
+ PKGCONF_LIBDIR='$(LIBDIR)' \
+ PKGCONF_INCLUDEDIR='$(INCLUDEDIR)' \
+ PKGCONF_VERSION='$(PKGCONF_VERSION)' \
+ $(PROJECT_DIR)/sofort/pkgconf.sh > $@
+
+install-pkgconf: build/$(PACKAGE).pc
+ mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
+ cp -p build/$(PACKAGE).pc $(DESTDIR)$(LIBDIR)/pkgconfig
+
+package-install-shared: install-pkgconf
+
+package-install-static: install-pkgconf
+
+.PHONY: .pkgconf install-pkgconf
+
+endif
diff --git a/sofort/pkgconf.sh b/sofort/pkgconf.sh
new file mode 100755
index 0000000..a3f8eb0
--- /dev/null
+++ b/sofort/pkgconf.sh
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+# prefix, exec_prefix
+if [ "$PKGCONF_PREFIX" = "$PKGCONF_EXEC_PREFIX" ]; then
+ echo 'prefix='${PKGCONF_PREFIX}
+ echo 'exec_prefix=${prefix}'
+else
+ echo 'prefix='${PKGCONF_PREFIX}
+ echo 'exec_prefix='${PKGCONF_EXEC_PREFIX}
+fi
+
+
+# (relative) includedir
+prefix=`dirname "$PKGCONF_INCLUDEDIR"`
+base=`basename "$PKGCONF_INCLUDEDIR"`
+
+if [ "$prefix/$base" = "$PKGCONF_PREFIX/$base" ]; then
+ echo 'includedir=${prefix}/'${base}
+else
+ echo 'includedir='${PKGCONF_INCLUDEDIR}
+fi
+
+if [ "$prefix/$base" = "$PKGCONF_PREFIX/include" ]; then
+ CFLAGS=
+else
+ CFLAGS='-I{includedir}'
+fi
+
+
+# (relative) libdir
+prefix=`dirname "$PKGCONF_LIBDIR"`
+base=`basename "$PKGCONF_LIBDIR"`
+
+if [ "$prefix/$base" = "$PKGCONF_EXEC_PREFIX/$base" ]; then
+ echo 'libdir=${prefix}/'${base}
+else
+ echo 'libdir='${PKGCONF_LIBDIR}
+fi
+
+if [ "$prefix/$base" = "$PKGCONF_EXEC_PREFIX/lib" ]; then
+ LDFLAGS='-l'${PKGCONF_NAME}
+elif [ "$prefix/$base" = "$PKGCONF_EXEC_PREFIX/lib64" ]; then
+ LDFLAGS='-l'${PKGCONF_NAME}
+else
+ LDFLAGS='-L'${PKGCONF_LIBDIR} '-l'${PKGCONF_NAME}
+fi
+
+
+# name, description, url, version
+echo
+echo 'Name: '${PKGCONF_NAME}
+echo 'Description: '${PKGCONF_DESC}
+echo 'URL: '${PKGCONF_USRC}
+echo 'Version: '${PKGCONF_VERSION}
+
+
+# repo (optional)
+if ! [ -z "$PKGCONF_REPO" ]; then
+ echo 'Repo: '${PKGCONF_REPO}
+fi
+
+
+# patches (optional)
+if ! [ -z "$PKGCONF_PSRC" ]; then
+ echo 'Patches: '${PKGCONF_PSRC}
+fi
+
+
+# disto (optional)
+if ! [ -z "$PKGCONF_DURL" ]; then
+ echo 'Distro: '${PKGCONF_DURL}
+fi
+
+
+# Cflags
+if [ -z "$PKGCONF_DEFS" ] && [ -z "$CFLAGS" ]; then
+ echo 'Cflags:'
+elif [ -z "$PKGCONF_DEFS" ]; then
+ echo 'Cflags: '${CFLAGS}
+elif [ -z "$CFLAGS" ]; then
+ echo 'Cflags: '${PKGCONF_DEFS}
+else
+ echo 'Cflags: '${PKGCONF_DEFS} ${CFLAGS}
+fi
+
+
+# Libs
+if [ -z "$PKGCONF_LIBS" ]; then
+ echo 'Libs: '${LDFLAGS}
+else
+ echo 'Libs: '${PKGCONF_LIBS} ${LDFLAGS}
+fi