#!/bin/sh
#
# "$Id: fltk-config.in 6032 2008-02-20 18:10:13Z matt $"
# 
# FLTK configuration utility.
#
# Copyright 2000-2007 by Bill Spitzak and others.
# Original version Copyright 2000 by James Dean Palmer
# Adapted by Vincent Penne and Michael Sweet
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
#
# Please report all bugs and problems on the following page:
#
#      http://www.fltk.org/str.php
#

MAJOR_VERSION=1
MINOR_VERSION=1
PATCH_VERSION=9
VERSION="$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION"
APIVERSION="$MAJOR_VERSION.$MINOR_VERSION"

### BEGIN fltk-config
selfdir=`dirname $0`

prefix=/usr
exec_prefix=${prefix}
exec_prefix_set=no
bindir=${exec_prefix}/bin
includedir=${prefix}/include
libdir=${exec_prefix}/lib
srcdir=.

# compiler names
CC="gcc"
CXX="g++"

# post-process command (only needed for MacOS)
POSTBUILD=":"

# flags for C++ compiler:
ARCHFLAGS=""
CFLAGS="-O2 -march=i486 -mtune=i686   -D_THREAD_SAFE -D_REENTRANT"
CXXFLAGS="-I/usr/include/freetype2 -O2 -march=i486 -mtune=i686   -D_THREAD_SAFE -D_REENTRANT"
LDFLAGS=" "
LDLIBS="-lXft -lXinerama -lpthread -ldl -lm  -lXext -lX11 "
OPTIM=" -Os -Wall -Wunused -Wno-format-y2k  -fPIC -fno-exceptions -fno-strict-aliasing"

# Check for local invocation, and update paths accordingly...
if test -f "$selfdir/FL/Fl_Window.H"; then
	bindir="$selfdir/fluid"
	includedir="$selfdir"
	libdir="$selfdir/lib"

	if test -f "$libdir/libfltk_jpeg.a"; then
		CFLAGS="-I$includedir/jpeg $CFLAGS"
		CXXFLAGS="-I$includedir/jpeg $CXXFLAGS"
	fi

	if test -f "$libdir/libfltk_z.a"; then
		CFLAGS="-I$includedir/zlib $CFLAGS"
		CXXFLAGS="-I$includedir/zlib $CXXFLAGS"
	fi

	if test -f "$libdir/libfltk_png.a"; then
		CFLAGS="-I$includedir/png $CFLAGS"
		CXXFLAGS="-I$includedir/png $CXXFLAGS"
	fi
fi

if test -d $includedir/FL/images; then
	CFLAGS="-I$includedir/FL/images $CFLAGS"
	CXXFLAGS="-I$includedir/FL/images $CXXFLAGS"
fi

# libraries to link with:
LIBNAME="../lib/libfltk.a"
DSONAME="libfltk.so.1.1"
DSOLINK="-Wl,-rpath,${exec_prefix}/lib"
IMAGELIBS="-lpng -lz -ljpeg "
SHAREDSUFFIX=""

usage ()
{
    echo "Usage: fltk-config [OPTIONS]
Options:
	[--version]
	[--api-version]

Options telling what we are doing:
	[--use-gl]        use GL
	[--use-images]    use extra image formats (PNG, JPEG)
	[--use-glut]      use glut compatibility layer
	[--use-forms]     use forms compatibility layer

Options telling what information we request:
	[--cc]            return C compiler used to compile FLTK
	[--cxx]           return C++ compiler used to compile FLTK
	[--optim]         return compiler optimization used to compile FLTK
	[--cflags]        return flags to compile C using FLTK
	[--cxxflags]      return flags to compile C++ using FLTK
	[--ldflags]       return flags to link against FLTK
	[--ldstaticflags] return flags to link against static FLTK library
                                          even if there are DSOs installed
	[--libs]          return FLTK libraries full path for dependencies

Option to compile and link an application:
	[-g]              compile the program with debugging information
	[-Dname[=value]]  compile the program with the given define
	[--compile program.cxx]
        [--post program]
"
    exit $1
}

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

no_plugins=no
compile=
post=
debug=

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

    case $1 in
	--version)
	    echo $VERSION
	    ;;
	--api-version)
	    echo $APIVERSION
	    ;;
	--cc)
	    echo $CC
	    ;;
	--cxx)
	    echo $CXX
	    ;;
	--optim)
	    echo_optim=yes
	    ;;
	--use-gl | --use-glut)
	    use_gl=yes
	    ;;
	--use-forms)
	    use_forms=yes
	    ;;
	--use-images)
	    use_images=yes
	    ;;
	--cflags)
	    echo_cflags=yes
	    ;;
	--cxxflags)
	    echo_cxxflags=yes
	    ;;
	--ldflags)
	    echo_ldflags=yes
	    ;;
	--ldstaticflags)
	    echo_ldstaticflags=yes
	    ;;
	--libs)
	    echo_libs=yes
	    ;;
	-g)
	    debug=-g
	    ;;
	-D*)
	    CXXFLAGS="$CXXFLAGS $1"
	    ;;
	--compile)
	    compile=$2
	    post=$2
	    shift
	    ;;
	--post)
	    post=$2
	    shift
	    ;;
	*)
	    echo_help=yes
	    ;;
    esac
    shift
done

if test "$includedir" != /usr/include; then
    includes=-I$includedir
else
    includes=
fi

if test "$libdir" != /usr/lib -a "$libdir" != /usr/lib32; then
    libs=-L$libdir
else
    libs=
fi

# Calculate needed libraries
LDSTATIC="$libdir/libfltk.a $LDLIBS"
LDLIBS="-lfltk$SHAREDSUFFIX $LDLIBS"

if test x$use_forms = xyes; then
    LDLIBS="-lfltk_forms$SHAREDSUFFIX $LDLIBS"
    LDSTATIC="$libdir/libfltk_forms.a $LDSTATIC"
fi
if test x$use_gl = xyes; then
    LDLIBS="-lfltk_gl$SHAREDSUFFIX -lGLU -lGL $LDLIBS"
    LDSTATIC="$libdir/libfltk_gl.a -lGLU -lGL $LDSTATIC"
fi
if test x$use_images = xyes; then
    LDLIBS="-lfltk_images$SHAREDSUFFIX $IMAGELIBS $LDLIBS"
    LDSTATIC="$libdir/libfltk_images.a $IMAGELIBS $LDSTATIC"
fi

LDLIBS="$DSOLINK $LDFLAGS $libs $LDLIBS"
LDSTATIC="$LDFLAGS $LDSTATIC"

# Answer to user requests
if test -n "$echo_help"; then
    usage 1
fi

if test -n "$compile"; then
    case $compile in
        *.cxx)
            prog=`basename $compile .cxx`
	    ;;
        *.cpp)
            prog=`basename $compile .cpp`
	    ;;
        *.cc)
            prog=`basename $compile .cc`
	    ;;
        *.C)
            prog=`basename $compile .C`
	    ;;
	*)
	    echo "ERROR: Unknown/bad C++ source file extension on \"$compile\"!"
	    exit 1
	    ;;
    esac
	    
    post=$prog

    echo $CXX $ARCHFLAGS $includes $CXXFLAGS $debug -o $prog $compile $LDSTATIC
    $CXX $ARCHFLAGS $includes $CXXFLAGS $debug -o $prog $compile $LDSTATIC

    # stop after compilation in case of errors
    err=$?
    if test $err != 0; then
	exit $err
    fi
fi

if test -n "$post" -a "$POSTBUILD" != ":"; then
    echo $POSTBUILD $post $includedir/FL/mac.r
    $POSTBUILD $post $includedir/FL/mac.r
fi

if test "$echo_cflags" = "yes"; then
    echo $includes $CFLAGS
fi

if test "$echo_cxxflags" = "yes"; then
    echo $includes $CXXFLAGS
fi

if test "$echo_optim" = "yes"; then
    echo $OPTIM
fi

if test "$echo_ldflags" = "yes"; then
    my_libs=
    libdirs=$libs

    for i in $LDLIBS ; do
	if test $i != -L$libdir ; then
	    if test -z "$my_libs" ; then
		my_libs="$i"
	    else
		my_libs="$my_libs $i"
	    fi
	fi
    done
    echo $libdirs $my_libs
fi

if test "$echo_ldstaticflags" = "yes"; then
    echo $LDSTATIC
fi

if test "$echo_libs" = "yes"; then
    echo $libdir/libfltk.a

    if test x$use_forms = xyes; then
        echo $libdir/libfltk_forms.a
    fi

    if test x$use_gl = xyes; then
        echo $libdir/libfltk_gl.a
    fi

    if test x$use_images = xyes; then
        echo $libdir/libfltk_images.a

        for lib in fltk_jpeg fltk_png fltk_z; do
            if test -f $libdir/lib$lib.a; then
                echo $libdir/lib$lib.a
            fi
	done
    fi
fi

#
# End of "$Id: fltk-config.in 6032 2008-02-20 18:10:13Z matt $".
#
