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