#!/bin/sh # # "$Id$" # # FLTK configuration utility. # # Copyright 2000-2010 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=@FL_MAJOR_VERSION@ MINOR_VERSION=@FL_MINOR_VERSION@ PATCH_VERSION=@FL_PATCH_VERSION@ VERSION="$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION" APIVERSION="$MAJOR_VERSION.$MINOR_VERSION" ### BEGIN fltk-config selfdir=`dirname "$0"` prefix=@prefix@ exec_prefix=@exec_prefix@ exec_prefix_set=no bindir=@bindir@ includedir=@includedir@ libdir=@libdir@ srcdir=@srcdir@ # compiler names CC="@CC@" CXX="@CXX@" # flags for C++ compiler: ARCHFLAGS="@ARCHFLAGS@" CFLAGS="@CFLAGS@ @LARGEFILE@ @PTHREAD_FLAGS@" CXXFLAGS="@CXXFLAGS@ @LARGEFILE@ @PTHREAD_FLAGS@" LDFLAGS="@LDFLAGS@" LDLIBS="@LIBS@" OPTIM="@OPTIM@" CAIROFLAGS="@CAIROFLAGS@" # 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 if test -f "$libdir/libfltk_cairo.a"; then CFLAGS="$CAIROFLAGS $CFLAGS" CXXFLAGS="$CAIROFLAGS $CXXFLAGS" fi # libraries to link with: LIBNAME="@LIBNAME@" DSONAME="@DSONAME@" DSOLINK="@DSOLINK@" IMAGELIBS="@IMAGELIBS@" STATICIMAGELIBS="@STATICIMAGELIBS@" CAIROLIBS="@CAIROLIBS@" SHAREDSUFFIX="@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 [--use-cairo] use cairo graphics lib 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 [--prefix] return FLTK install time --prefix directory [--includedir] return FLTK install time include directory Options 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] prepare the program for desktop use " 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 ;; --use-cairo) use_cairo=yes ;; --cflags) echo_cflags=yes ;; --cxxflags) echo_cxxflags=yes ;; --ldflags) echo_ldflags=yes ;; --ldstaticflags) echo_ldstaticflags=yes ;; --libs) echo_libs=yes ;; --prefix) echo_prefix=yes ;; --includedir) echo_includedir=yes ;; -g) debug=-g ;; -D*) CXXFLAGS="$CXXFLAGS $1" ;; --compile) compile="$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 @GLLIB@ $LDLIBS" LDSTATIC="$libdir/libfltk_gl.a @GLLIB@ $LDSTATIC" fi if test x$use_images = xyes; then LDLIBS="-lfltk_images$SHAREDSUFFIX $IMAGELIBS $LDLIBS" LDSTATIC="$libdir/libfltk_images.a $STATICIMAGELIBS $LDSTATIC" fi if test x$use_cairo = xyes; then LDLIBS="-lfltk_cairo$SHAREDSUFFIX $CAIROLIBS $LDLIBS" LDSTATIC="$libdir/libfltk_cairo.a $CAIROLIBS $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 || exit 1 fi if test -n "$post"; then case "`uname`" in Darwin) echo Creating "'$post.app'" bundle for desktop... id=`echo $post | tr ' ' '_'` # Make the bundle directory and move the executable there rm -rf "$post.app/Contents/MacOS" mkdir -p "$post.app/Contents/MacOS" mv "$post" "$post.app/Contents/MacOS" # Make a shell script that runs the bundled executable echo "#!/bin/sh" >"$post" echo 'dir="`dirname '"'"'$0'"'"'`"' >>"$post" echo 'exec "$dir/'"$post.app/Contents/MacOS/$post"'" "$@"' >>"$post" chmod +x "$post" # Make the simplest Info.plist needed for an application cat >"$post.app/Contents/Info.plist" < CFBundleInfoDictionaryVersion 6.0 CFBundleExecutable $post CFBundleIdentifier org.fltk.$id CFBundleName $post CFBundlePackageType APPL EOF ;; esac 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 USELIBS="$libdir/libfltk.a" if test x$use_forms = xyes; then USELIBS="$libdir/libfltk_forms.a $USELIBS" fi if test x$use_gl = xyes; then USELIBS="$libdir/libfltk_gl.a $USELIBS" fi if test x$use_cairo = xyes; then USELIBS="$libdir/libfltk_cairo.a $USELIBS" fi if test x$use_images = xyes; then USELIBS="$libdir/libfltk_images.a $USELIBS" for lib in fltk_jpeg fltk_png fltk_z; do if test -f $libdir/lib$lib.a; then USELIBS="$libdir/lib$lib.a $USELIBS" fi done fi echo $USELIBS fi if test "$echo_prefix" = "yes"; then echo $prefix fi if test "$echo_includedir" = "yes"; then echo $includedir fi # # End of "$Id$". #