summaryrefslogtreecommitdiffstats
path: root/tools/gen-dotpc.sh
diff options
context:
space:
mode:
authorPS <p@0x53.net>2026-02-01 12:09:27 +0100
committerPS <p@0x53.net>2026-02-01 12:09:27 +0100
commit570eff1d9e14fc2c3c20f47cc0419064b0eea76d (patch)
tree841a433099df7f04b218c312f0a1824acfa80b59 /tools/gen-dotpc.sh
downloadlinux-supplements-570eff1d9e14fc2c3c20f47cc0419064b0eea76d.tar.gz
linux-supplements-570eff1d9e14fc2c3c20f47cc0419064b0eea76d.tar.bz2
linux-supplements-570eff1d9e14fc2c3c20f47cc0419064b0eea76d.zip
version 0.1.0.0
Diffstat (limited to 'tools/gen-dotpc.sh')
-rwxr-xr-xtools/gen-dotpc.sh101
1 files changed, 101 insertions, 0 deletions
diff --git a/tools/gen-dotpc.sh b/tools/gen-dotpc.sh
new file mode 100755
index 0000000..802c78e
--- /dev/null
+++ b/tools/gen-dotpc.sh
@@ -0,0 +1,101 @@
+#!/bin/sh -e
+
+isunique () {
+ x=$1
+ set -- $2
+ while test "$#" -gt 0 ; do
+ if test "$x" = "$1" ; then
+ return 1
+ fi
+ shift
+ done
+ return 0
+}
+
+uniqit () {
+ res=
+ while test "$#" -gt 0 ; do
+ if isunique "$1" "$res" ; then
+ res="${res}${res:+ }${1}"
+ fi
+ shift
+ done
+ printf %s\\n "$res"
+}
+
+filterout () {
+ res=
+ filter="$1"
+ shift
+ while test "$#" -gt 0 ; do
+ if isunique "$1" "$filter" ; then
+ res="${res}${res:+ }${1}"
+ fi
+ shift
+ done
+ printf %s\\n "$res"
+}
+
+print_requires () {
+ line=
+ oldifs="$IFS"
+ while IFS=" " read condvar usedinlibs pkg ver libs ; do
+ IFS="$oldifs"
+ for h ; do
+ i=lib${h##-l}
+ for j in $libs ; do
+ if test "$i" = "$j" ; then
+ line="${line}${line:+, }${i} >= ${ver}"
+ fi
+ done
+ done
+ done < package/deps-build
+ IFS="$oldifs"
+ echo "Requires: $line"
+}
+
+. package/info
+
+ilist=
+dlist=
+slist=
+
+if test "${includedir}" != /usr/include ; then
+ ilist="-I${includedir}"
+fi
+if test -n "${extra_includedirs}" ; then
+ ilist="${ilist}${ilist:+ }${extra_includedirs}"
+fi
+ilist=`uniqit ${ilist}`
+
+if test "${dynlibdir}" != /usr/lib && test "${dynlibdir}" != /lib ; then
+ dlist="-L${dynlibdir}"
+fi
+
+if test "${libdir}" != /usr/lib && test "${libdir}" != /lib ; then
+ slist="-L${libdir}"
+fi
+if test -n "${extra_libdirs}" ; then
+ slist="${slist}${slist:+ }${extra_libdirs}"
+fi
+slist="$(filterout "${dlist}" $(uniqit ${slist}))"
+
+echo "prefix=${prefix}"
+echo "includedir=${includedir}"
+echo "libdir=${libdir}"
+echo "dynlibdir=${dynlibdir}"
+echo
+echo "Name: lib${library}"
+echo "Version: ${version}"
+echo "Description: ${description:-The ${library} library.}"
+echo "URL: ${url:-https://skarnet.org/software/${package}/}"
+if test -n "${extra_libs}" ; then
+ print_requires ${extra_libs}
+fi
+if test -n "$ilist" ; then
+ echo "Cflags: ${ilist}"
+fi
+echo "Libs: ${dlist}${dlist:+ }-l${library}${ldlibs:+ }${ldlibs}"
+if test -n "${extra_libs}" ; then
+ echo "Libs.private: ${slist}${slist:+ }${extra_libs}"
+fi