#!/bin/sh

# this is shamelessly stolen from gnome-config

prefix=/usr/X11R6
exec_prefix=${prefix}

libdir=${exec_prefix}/lib

bindir=${exec_prefix}/bin
pkglibdir=${libdir}/gtkmm

transform=s,x,x,

CFLAGS="-I${pkglibdir}/include"
test "x${prefix}/include" = "x/usr/include" || CFLAGS="${CFLAGS} -I${prefix}/include"
LIBDIRS="-L${exec_prefix}/lib"

gtkmm_libs="$LIBDIRS -lgtkmm -lgdkmm -L/usr/X11R6/lib -L/usr/X11R6/lib -lgtk12 -lgdk12 -L/usr/local/lib -lwrap -lgmodule -lwrap -lglib -lwrap -ldl -lintl -lXi -lXext -lX11 -lm -pthread -L/usr/local/lib -lsigc"
gtkmm_cflags="$CFLAGS -I/usr/X11R6/include/gtk12 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/local/include -I/usr/X11R6/include -I/usr/local/include/sigc++-1.0"

gthread_libs="-lgthread"

usage()
{
    cat <<EOF
Usage: gtkmm-config [OPTION]... [LIBRARY]...

Generic options
  --version     output gtk-- 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

Utilities & Code Generator options
  --proc        print the name of the gtk-- preprocessor
  --procdir     print the path to the preprocessor macros

Known values for LIBRARY are:

    gdk--       
    gtk--       (default, includes gdk--)
    gthread

EOF

    exit $1
}

if test $# -eq 0; then
    usage 1
fi

cflags=false
libs_L=false
libs_l=false

any=no

while test $# -gt 0; do
    case "$1" in
    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
    *) optarg= ;;
    esac

    case $1 in
    --version)
        echo 1.2.8
        exit 0
        ;;
    --help)
        usage 0
        ;;
    --prefix=*)
	prefix=$optarg
        ;;
    --proc)
        echo $prefix/lib/gtkmm/proc/gtkmmproc
        exit 0
        ;;
    --procdir)
        echo $prefix/lib/gtkmm/proc
        exit 0
        ;;
    --cflags)
        cflags=true
        ;;
    --libs)
        libs_L=true
        libs_l=true
        ;;
    --libs-only-L)
        libs_L=true
        ;;
    --libs-only-l)
        libs_l=true
        ;;
    gdk--)
        # -lgtk mustn't be in here, but gtk-config hasn't an option for 
        # gdk only, so we don't provide one for Gdk-- only.
        # (are there Gdk--/gdk only applications? really?)
        the_libs="$the_libs $LIBDIRS -lgdkmm -L/usr/X11R6/lib -L/usr/X11R6/lib -lgtk12 -lgdk12 -L/usr/local/lib -lwrap -lgmodule -lwrap -lglib -lwrap -ldl -lintl -lXi -lXext -lX11 -lm"
        the_flags="$the_flags $CFLAGS -I/usr/X11R6/include/gtk12 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/local/include -I/usr/X11R6/include"
        any=yes
        ;;
    gtk--)
        # defined above to avoid double definiton with default values below
        the_libs="$the_libs $gtkmm_libs"
        the_flags="$the_flags $gtkmm_cflags"
        any=yes
        ;;
    gtk--draw)
        the_libs="$the_libs $LIBDIRS -lgtkmmdraw -lgtkmm -lgdkmm -L/usr/X11R6/lib -L/usr/X11R6/lib -lgtk12 -lgdk12 -L/usr/local/lib -lwrap -lgmodule -lwrap -lglib -lwrap -ldl -lintl -lXi -lXext -lX11 -lm"
        the_flags="$the_flags $CFLAGS -I/usr/X11R6/include/gtk12 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/local/include -I/usr/X11R6/include"
        any=yes
        ;;
    gthread)
        the_libs="$the_libs $gtkmm_libs $gthread_libs"
        the_flags="$the_flags $gtkmm_cflags"
        any=yes
        ;;

    *)
        usage 1
        ;;
    esac
    shift
done

# default to gtk-- for backward compatibility
# (should be removed some time in the future)
if test "x$any" = xno; then
   the_libs="$the_libs $gtkmm_libs"
   the_flags="$the_flags $gtkmm_cflags"
fi

if $cflags; then
    all_flags="$the_flags"
fi

if $libs_L || $libs_l; then
    all_flags="$all_flags $the_libs"
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
