[Prev][Next][Index][Thread]

Re: proposal for adding 'oskit-config' script



Hello,

In my previous patch, there was some misstakes and the patch was
not good. So I created a new one. The oskit-config file is based on
the gnome-config file and therefor there are some specific gnome things
which do not have a meaning in oskit. I left allmost everything as it
was in this file, because I don't know what is not needed. Deleting 
is much more easier :) (e.g. --libs-only-l has no output because I 
think it makes no sense to load a default set of libraries from 
oskit or do I be completly wrong here?)

wagi


-- 
Daniel Wagner
email: wagi@gmx.ch

GnuPG: 1024D/DCDE890A (public key available on any keyserver)
diff -urN -X ignore-oskit oskit-20000505.orig/GNUmakefile.in oskit-20000505/GNUmakefile.in
--- oskit-20000505.orig/GNUmakefile.in	Fri May 14 01:40:12 1999
+++ oskit-20000505/GNUmakefile.in	Sun Jul 30 17:59:40 2000
@@ -47,7 +47,7 @@
 
 distclean: distclean-subdirs
 	rm -rf lib GNUmakefile Makeconf config.status config.cache config.log \
-		$(addsuffix /GNUmakefile,$(SUBDIRS)) boot/bsd/mkbsdimage
+		gnome-config $(addsuffix /GNUmakefile,$(SUBDIRS)) boot/bsd/mkbsdimage
 
 
 # For testing
@@ -73,3 +73,4 @@
 
 debug:
 	@echo SUBDIRS = $(SUBDIRS)
+
diff -urN -X ignore-oskit oskit-20000505.orig/GNUmakerules oskit-20000505/GNUmakerules
--- oskit-20000505.orig/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,
diff -urN -X ignore-oskit oskit-20000505.orig/configure.in oskit-20000505/configure.in
--- oskit-20000505.orig/configure.in	Fri Mar  3 22:26:16 2000
+++ oskit-20000505/configure.in	Wed Aug  2 20:54:37 2000
@@ -22,6 +22,19 @@
 # on the command line via DEFS.
 AC_CONFIG_HEADER(oskit/config.h)
 
+dnl These definitions are expanded in make and oskit-config
+VERSION=2000505
+PACKAGE=oskit
+OSKIT_LIBDIR='-L${libdir}'
+OSKIT_INCLUDEDIR='-I${includedir}'
+OSKIT_LIBS=""
+
+AC_SUBST(VERSION)
+AC_SUBST(PACKAGE)
+AC_SUBST(OSKIT_LIBDIR)
+AC_SUBST(OSKIT_INCLUDEDIR)
+AC_SUBST(OSKIT_LIBS)
+
 AC_SUBST(OSKIT_DEFS)
 AC_SUBST(oskit_options)
 oskit_options=""
@@ -593,5 +606,12 @@
 for d in $oskit_subdirs; do
 	outfiles="$outfiles $d/GNUmakefile"
 done
+
+
+dnl These definitions are expanded in oskit-config
+OSKIT_LIBDIR='-L${libdir}'
+OSKIT_INCLUDEDIR='-I${includedir}'
+
+outfiles="$outfiles oskit-config"
 
 AC_OUTPUT($outfiles)
diff -urN -X ignore-oskit oskit-20000505.orig/oskit-config.in oskit-20000505/oskit-config.in
--- oskit-20000505.orig/oskit-config.in	Thu Jan  1 01:00:00 1970
+++ oskit-20000505/oskit-config.in	Tue Aug  1 16:47:04 2000
@@ -0,0 +1,237 @@
+#!/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
+
+Known values for LIBRARY are:
+
+    oskit
+
+If LIBRARY is none of these,
+    
+    ${libdir}/<LIBRARY>Conf.sh
+
+is looked in for the necessary information.  Those currently installed 
+appear to be:
+
+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@"
+	;;
+    *)
+        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

References: