[Prev][Next][Index][Thread]
proposal for adding 'oskit-config' script
-
To: oskit-users mailing list <oskit-users@cs.utah.edu>
-
Subject: proposal for adding 'oskit-config' script
-
From: Daniel Wagner <wagi@gmx.ch>
-
Date: Mon, 31 Jul 2000 09:45:26 +0200
-
Mail-Followup-To: Daniel Wagner <wagi@gmx.ch>, oskit-users mailing list <oskit-users@cs.utah.edu>
-
Sender: owner-oskit-users@fast.cs.utah.edu
-
User-Agent: Mutt/1.2i
Hello,
I propose adding a 'oskit-config' script like the Gnome people have added
to there project. This script returns for example the library path. I ask
you to add this because I always strungle with the LD_LIBRARY_PATH. With
this script the users could have the options, how they find the libraries.
The added patches are just a quick and dirty test but it works :)
thanks in advanced
wagi
--
Daniel Wagner
email: wagi@gmx.ch
GnuPG: 1024D/DCDE890A (public key available on any keyserver)
--- hurd/oskit-20000505/GNUmakerules Fri Mar 10 10:37:01 2000
+++ oskit-20000505/GNUmakerules Sun Jul 30 19:12:03 2000
@@ -173,7 +173,8 @@
$(INSTALL) $< $@
# Always fully build everything before trying to install anything
-install: all
+install: all
+ $(INSTALL) ${OBJDIR}/oskit-config ${prefix}/bin
# Get rid of a bunch of nasty built-in implicit rules,
--- hurd/oskit-20000505/configure.in Sun Jul 30 19:18:26 2000
+++ oskit-20000505/configure.in Sun Jul 30 16:50:41 2000
@@ -595,4 +595,10 @@
done
+dnl These definitions are expanded in oskit-config
+OSKIT_LIBDIR='-L${libdir}'
+OSKIT_INCLUDEDIR='-I${includedir}'
+
+outfiles="oskit-config"
+
AC_OUTPUT($outfiles)
#!/bin/sh
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libexecdir=@libexecdir@
datadir=@datadir@
sysconfdir=@sysconfdir@
sharedstatedir=@sharedstatedir@
localstatedir=@localstatedir@
libdir=@libdir@
infodir=@infodir@
mandir=@mandir@
includedir=@includedir@
pkgdatadir=${datadir}/@PACKAGE@
pkglibdir=${libdir}/@PACKAGE@
pkgincludedir=${includedir}/@PACKAGE@
MODULE_VERSION=@PACKAGE@-@VERSION@
module_dirs="$libdir"
# stolen from autoconf
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
ac_n= ac_c='
' ac_t=' '
else
ac_n=-n ac_c= ac_t=
fi
else
ac_n= ac_c='\c' ac_t=
fi
for extra in `echo $OSKIT_PATH | sed 's/:/ /g'`; do
module_dirs="$extra/lib:$module_dirs"
done
for extra in `echo $OSKIT_LIBCONFIG_PATH | sed 's/:/ /g'`; do
module_dirs="$extra:$module_dirs"
done
usage()
{
exit_code=$1
cat <<EOF
Usage: oskit-config [OPTION]... [LIBRARY]...
Generic options
--version output oskit version information.
--modversion output the module version information.
--help display this help and exit.
Compilation support options
--cflags print pre-processor and compiler flags
--libs print library linking information
--libs-only-L only print the -L/-R part of --libs
--libs-only-l only print the -l part of --libs
Install directories oskit-libs was configured to
--prefix --exec-prefix --bindir --sbindir --libexecdir --datadir
--sysconfdir --sharedstatedir --localstatedir --libdir --infodir
--mandir --includedir
EOF
for dir in `echo $module_dirs | sed 's/:/ /g'`; do
conf_shs=`cd $dir; echo *Conf.sh`
if test "x$conf_shs" = x || test "x$conf_shs" = 'x*Conf.sh'; then :
else
set oskitConf.sh $conf_shs
for i
do
case "$i" in
oskitConf.sh) ;;
*Conf.sh) echo $ac_n "$i $ac_c";;
*) echo "*** ERROR: What is this? $i" 1>&2; exit 2 ;;
esac
done
fi
done | sed -e 's/Conf\.sh /, /g' -e 's/, $//' | fmt
exit $exit_code
}
if test $# -eq 0; then
usage 1
fi
cflags=false
libs_L=false
libs_l=false
modversion=false
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--version)
echo @PACKAGE@ @VERSION@
exit 0
;;
--exec-prefix)
echo $exec_prefix
exit 0
;;
--prefix)
echo $prefix
exit 0
;;
--*dir)
dirname=\$`echo $1 | sed -e 's,^--,,'`
dirname=`eval echo $dirname`
test -z "$dirname" && exit 1
echo $dirname
exit 0
;;
--help)
usage 0
;;
--cflags)
cflags=true
;;
--libs)
libs_L=true
libs_l=true
;;
--libs-only-L)
libs_L=true
;;
--libs-only-l)
libs_l=true
;;
--modversion)
modversion=true
;;
--*)
usage 1
;;
oskit)
the_libs="$the_libs @OSKIT_LIBDIR@ @OSKIT_LIBS@"
the_flags="$the_flags @OSKIT_INCLUDEDIR@ @OSKIT_CFLAGS@"
;;
*)
error=true
for dir in `echo $module_dirs | sed 's/:/ /g'`; do
cnf_sh=${dir}/${1}Conf.sh
if test -f ${cnf_sh}; then
. ${cnf_sh}
up_name=`echo $1 | tr [a-z] [A-Z]`
cnf_libdir=\$${up_name}_LIBDIR
cnf_libs=\$${up_name}_LIBS
cnf_flags=\$${up_name}_INCLUDEDIR
the_libs="$the_libs `eval echo $cnf_libdir` `eval echo $cnf_libs`"
the_flags="$the_flags `eval echo $cnf_flags`"
error=false
break
fi
done
if $error; then
echo Unknown library \`$1\' 1>&2
fi
;;
esac
shift
done
if $cflags; then
all_flags="$the_flags"
fi
if $libs_L || $libs_l; then
all_flags="$all_flags $the_libs"
fi
if $modversion; then
echo $MODULE_VERSION
exit 0
fi
if test -z "$all_flags" || test "x$all_flags" = "x "; then
exit 1
fi
# Straight out any possible duplicates, but be careful to
# get `-lfoo -lbar -lbaz' for `-lfoo -lbaz -lbar -lbaz'
other_flags=
lib_L_flags=
rev_libs=
for i in $all_flags; do
case "$i" in
# a library, save it for later, in reverse order
-l*) rev_libs="$i $rev_libs" ;;
-L*|-R*)
if $libs_L; then
case " $lib_L_flags " in
*\ $i\ *) ;; # already there
*) lib_L_flags="$lib_L_flags $i" ;; # add it to output
esac
fi;;
*)
case " $other_flags " in
*\ $i\ *) ;; # already there
*) other_flags="$other_flags $i" ;; # add it to output
esac ;;
esac
done
ord_libs=
if $libs_l; then
for i in $rev_libs; do
case " $ord_libs " in
*\ $i\ *) ;; # already there
*) ord_libs="$i $ord_libs" ;; # add it to output in reverse order
esac
done
fi
echo $other_flags $lib_L_flags $ord_libs
exit 0
Follow-Ups: