summaryrefslogtreecommitdiff
path: root/ffbuild/pkgconfig_generate.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ffbuild/pkgconfig_generate.sh')
-rwxr-xr-xffbuild/pkgconfig_generate.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/ffbuild/pkgconfig_generate.sh b/ffbuild/pkgconfig_generate.sh
new file mode 100755
index 0000000000..e5de6716d2
--- /dev/null
+++ b/ffbuild/pkgconfig_generate.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+. ffbuild/config.sh
+
+if test "$shared" = "yes"; then
+ shared=true
+else
+ shared=false
+fi
+
+shortname=$1
+name=lib${shortname}
+fullname=${name}${build_suffix}
+comment=$2
+libs=$(eval echo \$extralibs_${shortname})
+deps=$(eval echo \$${shortname}_deps)
+
+for dep in $deps; do
+ depname=lib${dep}
+ fulldepname=${depname}${build_suffix}
+ . ${depname}/${depname}.version
+ depversion=$(eval echo \$${depname}_VERSION)
+ requires="$requires ${fulldepname} >= ${depversion}, "
+done
+requires=${requires%, }
+
+version=$(grep ${name}_VERSION= $name/${name}.version | cut -d= -f2)
+
+cat <<EOF > $name/$fullname.pc
+prefix=$prefix
+exec_prefix=\${prefix}
+libdir=$libdir
+includedir=$incdir
+
+Name: $fullname
+Description: $comment
+Version: $version
+Requires: $($shared || echo $requires)
+Requires.private: $($shared && echo $requires)
+Conflicts:
+Libs: -L\${libdir} $rpath -l${fullname#lib} $($shared || echo $libs)
+Libs.private: $($shared && echo $libs)
+Cflags: -I\${includedir}
+EOF
+
+mkdir -p doc/examples/pc-uninstalled
+includedir=${source_path}
+[ "$includedir" = . ] && includedir="\${pcfiledir}/../../.."
+ cat <<EOF > doc/examples/pc-uninstalled/${name}-uninstalled.pc
+prefix=
+exec_prefix=
+libdir=\${pcfiledir}/../../../$name
+includedir=${source_path}
+
+Name: $fullname
+Description: $comment
+Version: $version
+Requires: $requires
+Conflicts:
+Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${fullname#lib} $($shared || echo $libs)
+Cflags: -I\${includedir}
+EOF