From 6c6aba6d4389aa98ce23a3ad09036499fe8f11ec Mon Sep 17 00:00:00 2001 From: Laurence Withers Date: Fri, 8 Dec 2006 15:08:09 +0000 Subject: [PATCH] Use config scripts, not pkgconfig --- scripts/build.lib.c++/build.install-lib | 23 +++--- scripts/build.lib.c++/build.lib | 6 +- scripts/build.lib.c++/config-script | 97 +++++++++++++++++++++++++ scripts/build.lib.c++/instantiate | 4 +- scripts/build.lib.c++/pkgconf.in | 21 ------ scripts/build.lib.c/BottomHeader.h | 2 +- scripts/build.lib.c/TopSource.c | 2 +- scripts/build.lib.c/build.install-lib | 24 +++--- scripts/build.lib.c/build.lib | 6 +- scripts/build.lib.c/config-script | 97 +++++++++++++++++++++++++ scripts/build.lib.c/instantiate | 4 +- scripts/build.lib.c/pkgconf.in | 21 ------ scripts/module-create.sh | 4 +- 13 files changed, 239 insertions(+), 72 deletions(-) create mode 100644 scripts/build.lib.c++/config-script delete mode 100644 scripts/build.lib.c++/pkgconf.in create mode 100644 scripts/build.lib.c/config-script delete mode 100644 scripts/build.lib.c/pkgconf.in diff --git a/scripts/build.lib.c++/build.install-lib b/scripts/build.lib.c++/build.install-lib index 83c6058..a95f944 100644 --- a/scripts/build.lib.c++/build.install-lib +++ b/scripts/build.lib.c++/build.install-lib @@ -2,7 +2,7 @@ build_target @NAME@ # make paths (this is for Gentoo in particular) build_dir_tree "${LIBDIR}" || return 1 -build_dir_tree "${PKGCONFDIR}" || return 1 +build_dir_tree "${BINDIR}" || return 1 build_dir_tree "${INCLUDEDIR}" || return 1 # install library @@ -20,16 +20,19 @@ install_symlink "${BASE}" "${MAJOR}" "${LIBDIR}" echo "Installing header file '${@CNAME@_HEADER}' into ${INCLUDEDIR}" install_header ${@CNAME@_HEADER} ${INCLUDEDIR} 0644 || return 1 -# install pkgconfig file -echo "Installing package config file into ${PKGCONFDIR}" -PKGCONFFILE=${PKGCONFDIR}/@NAME@.pc -do_cmd rm -f ${PKGCONFFILE} -do_cmd_redir ${PKGCONFFILE} sed \ +# install config script +echo "Installing config script into ${PKGCONFDIR}" +CONFFILE="${BINDIR}/@NAME@-config" + +do_cmd rm -f "${CONFFILE}" +do_cmd_redir "${CONFFILE}" sed \ -e "s,@VERSION@,${VERSION}," \ - -e "s,@LIBDIR@,${FINALLIBDIR}," \ - -e "s,@INCLUDEDIR@,${FINALINCLUDEDIR}," \ - src/@NAME@/pkgconf.in -do_cmd chmod 0644 ${PKGCONFFILE} + -e "s,@LIB_DIR@,${FINALLIBDIR}," \ + -e "s,@INCLUDE_DIR@,${FINALINCLUDEDIR}," \ + -e "s,@DEP_CFLAGS@,${@CNAME@_DEP_CFLAGS}," \ + -e "s,@DEP_LIBS@,${@CNAME@_DEP_LIBS}," \ + src/@NAME@/config-script +do_cmd chmod 0644 "${CONFFILE}" print_success "Done" # kate: @KATE_MODELINE@ diff --git a/scripts/build.lib.c++/build.lib b/scripts/build.lib.c++/build.lib index 210b7e0..06949ab 100644 --- a/scripts/build.lib.c++/build.lib +++ b/scripts/build.lib.c++/build.lib @@ -3,6 +3,8 @@ # @CNAME@_BUILT # @CNAME@_HEADER # @CNAME@_BASE +# @CNAME@_DEP_CFLAGS +# @CNAME@_DEP_LIBS if [ -z ${@CNAME@_BUILT} ] then @@ -10,7 +12,9 @@ then source src/@NAME@/soversion @CNAME@="obj/${@CNAME@_BASE}.so.${SOMAJOR}.${SOMINOR}.${SOMICRO}" - SO_EXTRA="-lstdc++ -lc" # @TODO@ libs, cflags + @CNAME@_DEP_CFLAGS="" # @TODO@ cflags + @CNAME@_DEP_LIBS="" # @TODO@ libs + SO_EXTRA="${@CNAME@_DEP_CFLAGS} ${@CNAME@_DEP_LIBS} -lstdc++ -lc" echo "Building library ${@CNAME@}..." diff --git a/scripts/build.lib.c++/config-script b/scripts/build.lib.c++/config-script new file mode 100644 index 0000000..d86f9ca --- /dev/null +++ b/scripts/build.lib.c++/config-script @@ -0,0 +1,97 @@ +#!/bin/bash +# @P@/src/@NAME@/config-script +# +# @NAME@-config template. Variables are finalised at install time. +# +dep_cflags="@DEP_CFLAGS@" +dep_libs="@DEP_LIBS@" +include_dir="@INCLUDE_DIR@" +include_dir_set="no" +lib_dir="@LIB_DIR@" +lib_dir_set="no" + + + +usage() { + cat <&2 + + + +while [ $# -gt 0 ] +do + case "$1" in + -*=*) + optarg="$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//')" + ;; + + *) + optarg="" + ;; + esac + + case "$1" in + --libdir=*) + lib_dir="${optarg}" + lib_dir_set="yes" + ;; + + --libdir) + echo_lib_dir="yes" + ;; + + --includedir=*) + include_dir="${optarg}" + include_dir_set="yes" + ;; + + --includedir) + echo_include_dir="yes" + ;; + + --version) + echo "@VERSION@" + exit 0 + ;; + + --cflags) + [ "${include_dir}" != "/usr/include" ] && includes="-I${include_dir}" + echo_cflags="yes" + ;; + + --libs) + echo_libs="yes" + ;; + + *) + usage 1 1>&2 + ;; + esac + + shift +done + + + +[ "${echo_prefix}" == "yes" ] && echo "${prefix}" +[ "${echo_exec_prefix}" == "yes" ] && echo "${exec_prefix}" +[ "${echo_cflags}" == "yes" ] && echo "${dep_cflags} ${includes}" +[ "${echo_libs}" == "yes" ] && echo "${dep_libs} -L${lib_dir} -l@NAMEMINUSL@" + + + +# vim: @VIM_MODELINE@ +# kate: @KATE_MODELINE@ diff --git a/scripts/build.lib.c++/instantiate b/scripts/build.lib.c++/instantiate index 8915e29..7292843 100644 --- a/scripts/build.lib.c++/instantiate +++ b/scripts/build.lib.c++/instantiate @@ -11,10 +11,10 @@ shift if [ "$(echo ${NAME} | cut -b1-3)" != "lib" ] then echo "Warning: your module name does not begin with 'lib'. You will" - echo "have to fix up your pkgconfig file manually, etc." + echo "have to fix up your -config file manually, etc." NAMEMINUSL="@TODO@" else - NAMEMINUSL="-l$(echo ${NAME} | sed -e 's,^lib,,')" + NAMEMINUSL="$(echo ${NAME} | sed -e 's,^lib,,')" fi do_parameter_subst NAMEMINUSL HEADER_NAME diff --git a/scripts/build.lib.c++/pkgconf.in b/scripts/build.lib.c++/pkgconf.in deleted file mode 100644 index 2e9c46d..0000000 --- a/scripts/build.lib.c++/pkgconf.in +++ /dev/null @@ -1,21 +0,0 @@ -# @P@/src/lib/@NAME@/pkgconf.in -# -# Metadata file for pkg-config -# ( http://www.freedesktop.org/software/pkgconfig/ ) -# -# (c)2006, @AUTHOR@, <@EMAIL@>. -# Released under the GNU GPLv2. See file COPYING or -# http://www.gnu.org/copyleft/gpl.html for details. -# - -# Name, description -Name: @TODO@ -Description: @TODO@ -Version: @VERSION@ - -# Requirements -Requires: - -# Compilation information -Libs: -L@LIBDIR@ @NAMEMINUSL@ -Cflags: -I@INCLUDEDIR@ diff --git a/scripts/build.lib.c/BottomHeader.h b/scripts/build.lib.c/BottomHeader.h index 5295601..2ac14cb 100644 --- a/scripts/build.lib.c/BottomHeader.h +++ b/scripts/build.lib.c/BottomHeader.h @@ -1,4 +1,4 @@ -/* @P@/src/clib/BottomHeader.h +/* @P@/src/@NAME@/BottomHeader.h * * (c)2006, @AUTHOR@, <@EMAIL@>. * Released under the GNU GPLv2. See file COPYING or diff --git a/scripts/build.lib.c/TopSource.c b/scripts/build.lib.c/TopSource.c index 6f3f04b..805648b 100644 --- a/scripts/build.lib.c/TopSource.c +++ b/scripts/build.lib.c/TopSource.c @@ -1,4 +1,4 @@ -/* @P@/src/@NAME@@NAME@/TopSource.c +/* @P@/src/@NAME@/TopSource.c * * (c)2006, @AUTHOR@, <@EMAIL@>. * Released under the GNU GPLv2. See file COPYING or diff --git a/scripts/build.lib.c/build.install-lib b/scripts/build.lib.c/build.install-lib index 83c6058..848d5b4 100644 --- a/scripts/build.lib.c/build.install-lib +++ b/scripts/build.lib.c/build.install-lib @@ -2,7 +2,7 @@ build_target @NAME@ # make paths (this is for Gentoo in particular) build_dir_tree "${LIBDIR}" || return 1 -build_dir_tree "${PKGCONFDIR}" || return 1 +build_dir_tree "${BINDIR}" || return 1 build_dir_tree "${INCLUDEDIR}" || return 1 # install library @@ -20,16 +20,20 @@ install_symlink "${BASE}" "${MAJOR}" "${LIBDIR}" echo "Installing header file '${@CNAME@_HEADER}' into ${INCLUDEDIR}" install_header ${@CNAME@_HEADER} ${INCLUDEDIR} 0644 || return 1 -# install pkgconfig file -echo "Installing package config file into ${PKGCONFDIR}" -PKGCONFFILE=${PKGCONFDIR}/@NAME@.pc -do_cmd rm -f ${PKGCONFFILE} -do_cmd_redir ${PKGCONFFILE} sed \ +# install config script +echo "Installing config script into ${BINDIR}" +CONFFILE="${BINDIR}/@NAME@-config" + +do_cmd rm -f "${CONFFILE}" +do_cmd_redir "${CONFFILE}" sed \ -e "s,@VERSION@,${VERSION}," \ - -e "s,@LIBDIR@,${FINALLIBDIR}," \ - -e "s,@INCLUDEDIR@,${FINALINCLUDEDIR}," \ - src/@NAME@/pkgconf.in -do_cmd chmod 0644 ${PKGCONFFILE} + -e "s,@DEP_CFLAGS@,${@CNAME@_DEP_CFLAGS}," \ + -e "s,@DEP_LIBS@,${@CNAME@_DEP_LIBS}," \ + -e "s,@LIB_DIR@,${FINALLIBDIR}," \ + -e "s,@INCLUDE_DIR@,${FINALINCLUDEDIR}," \ + src/@NAME@/config-script + +do_cmd chmod 0755 "${CONFFILE}" print_success "Done" # kate: @KATE_MODELINE@ diff --git a/scripts/build.lib.c/build.lib b/scripts/build.lib.c/build.lib index 6e83839..0ee113e 100644 --- a/scripts/build.lib.c/build.lib +++ b/scripts/build.lib.c/build.lib @@ -3,6 +3,8 @@ # @CNAME@_BUILT # @CNAME@_HEADER # @CNAME@_BASE +# @CNAME@_DEP_CFLAGS +# @CNAME@_DEP_LIBS if [ -z ${@CNAME@_BUILT} ] then @@ -10,7 +12,9 @@ then source src/@NAME@/soversion @CNAME@="obj/${@CNAME@_BASE}.so.${SOMAJOR}.${SOMINOR}.${SOMICRO}" - SO_EXTRA="-lc" # @TODO@ libs, cflags + @CNAME@_DEP_CFLAGS="" # @TODO@ cflags + @CNAME@_DEP_LIBS="" # @TODO@ libs + SO_EXTRA="${@CNAME@_DEP_CFLAGS} ${@CNAME@_DEP_LIBS} -lc" echo "Building library ${@CNAME@}..." diff --git a/scripts/build.lib.c/config-script b/scripts/build.lib.c/config-script new file mode 100644 index 0000000..d86f9ca --- /dev/null +++ b/scripts/build.lib.c/config-script @@ -0,0 +1,97 @@ +#!/bin/bash +# @P@/src/@NAME@/config-script +# +# @NAME@-config template. Variables are finalised at install time. +# +dep_cflags="@DEP_CFLAGS@" +dep_libs="@DEP_LIBS@" +include_dir="@INCLUDE_DIR@" +include_dir_set="no" +lib_dir="@LIB_DIR@" +lib_dir_set="no" + + + +usage() { + cat <&2 + + + +while [ $# -gt 0 ] +do + case "$1" in + -*=*) + optarg="$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//')" + ;; + + *) + optarg="" + ;; + esac + + case "$1" in + --libdir=*) + lib_dir="${optarg}" + lib_dir_set="yes" + ;; + + --libdir) + echo_lib_dir="yes" + ;; + + --includedir=*) + include_dir="${optarg}" + include_dir_set="yes" + ;; + + --includedir) + echo_include_dir="yes" + ;; + + --version) + echo "@VERSION@" + exit 0 + ;; + + --cflags) + [ "${include_dir}" != "/usr/include" ] && includes="-I${include_dir}" + echo_cflags="yes" + ;; + + --libs) + echo_libs="yes" + ;; + + *) + usage 1 1>&2 + ;; + esac + + shift +done + + + +[ "${echo_prefix}" == "yes" ] && echo "${prefix}" +[ "${echo_exec_prefix}" == "yes" ] && echo "${exec_prefix}" +[ "${echo_cflags}" == "yes" ] && echo "${dep_cflags} ${includes}" +[ "${echo_libs}" == "yes" ] && echo "${dep_libs} -L${lib_dir} -l@NAMEMINUSL@" + + + +# vim: @VIM_MODELINE@ +# kate: @KATE_MODELINE@ diff --git a/scripts/build.lib.c/instantiate b/scripts/build.lib.c/instantiate index 8915e29..b9f8a82 100644 --- a/scripts/build.lib.c/instantiate +++ b/scripts/build.lib.c/instantiate @@ -11,10 +11,10 @@ shift if [ "$(echo ${NAME} | cut -b1-3)" != "lib" ] then echo "Warning: your module name does not begin with 'lib'. You will" - echo "have to fix up your pkgconfig file manually, etc." + echo "have to fix up your -config script manually, etc." NAMEMINUSL="@TODO@" else - NAMEMINUSL="-l$(echo ${NAME} | sed -e 's,^lib,,')" + NAMEMINUSL="$(echo ${NAME} | sed -e 's,^lib,,')" fi do_parameter_subst NAMEMINUSL HEADER_NAME diff --git a/scripts/build.lib.c/pkgconf.in b/scripts/build.lib.c/pkgconf.in deleted file mode 100644 index b450b9f..0000000 --- a/scripts/build.lib.c/pkgconf.in +++ /dev/null @@ -1,21 +0,0 @@ -# @P@/src/lib/clib/pkgconf.in -# -# Metadata file for pkg-config -# ( http://www.freedesktop.org/software/pkgconfig/ ) -# -# (c)2006, @AUTHOR@, <@EMAIL@>. -# Released under the GNU GPLv2. See file COPYING or -# http://www.gnu.org/copyleft/gpl.html for details. -# - -# Name, description -Name: @TODO@ -Description: @TODO@ -Version: @VERSION@ - -# Requirements -Requires: - -# Compilation information -Libs: -L@LIBDIR@ @NAMEMINUSL@ -Cflags: -I@INCLUDEDIR@ diff --git a/scripts/module-create.sh b/scripts/module-create.sh index 6f9a391..4c86416 100755 --- a/scripts/module-create.sh +++ b/scripts/module-create.sh @@ -27,10 +27,10 @@ source scripts/functions.sh || exit 1 if [ $# -lt 3 ] then echo "Usage: scripts/module-create.sh [args]" - echo " available modules:" + echo " available modules:" for i in scripts/build.* do - echo $i | sed "s,scripts/build\.\([^.]*\)\.\(.*\), lang: \1 type: \2," + echo $i | sed "s,scripts/build\.\([^.]*\)\.\(.*\), module: \1 lang: \2," done exit 1 fi