![Albrecht Schlosser](/assets/img/avatar_default.png)
First step towards a hopefully clean creation of FL/abi-version.h for all Windows (Visual Studio) and maybe also Xcode projects (if necessary) in order to "simulate" configure and CMake methods to create this file. I could only modify the VisualC2008 and VisualC2010 project files, because I don't have VisualC6 and/or Xcode. Help needed... To do for remaining <ide> directories (ide/VisualC6 and maybe ide/Xcode4): (1) Remove <ide>/FL folders including <ide>/FL/abi-version.h. (2) Add a Pre-Build event or equivalent on project 'fltk' for all potential build configurations (Debug, Release, ...) (3) Maybe add project dependencies to ensure that the Pre-Build event of project 'fltk' is executed before all other projects. Notes: (a) Command line for Pre-Build events of VS2008/2010: "copy /Y $(SolutionDir)..\..\abi-version.ide $(SolutionDir)..\..\FL\abi-version.h" Something similar should work for VC6 as well. (b) While building the projects I found some wrong output settings in zlib projects. These have been fixed in this commit as well (unrelated). (c) .gitignore has been extended to ignore all intermediate build files of VS2008/VS2010 ide projects. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11010 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
405 lines
8.7 KiB
Bash
405 lines
8.7 KiB
Bash
#!/bin/sh
|
|
#
|
|
# "$Id$"
|
|
#
|
|
# FLTK configuration utility.
|
|
#
|
|
# Copyright 2000-2015 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. Distribution and use rights are outlined in
|
|
# the file "COPYING" which should have been included with this file. If this
|
|
# file is missing or damaged, see the license at:
|
|
#
|
|
# http://www.fltk.org/COPYING.php
|
|
#
|
|
# 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
|
|
includedir=@includedir@
|
|
libdir=@libdir@
|
|
srcdir=@srcdir@
|
|
|
|
# BINARY_DIR - used only for CMake builds in local (binary) directory
|
|
BINARY_DIR=@BINARY_DIR@
|
|
|
|
# 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
|
|
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 "$BINARY_DIR" != ""; then
|
|
includes="-I$BINARY_DIR $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" <<EOF
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<plist version="0.9">
|
|
<dict>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>$post</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>org.fltk.$id</string>
|
|
<key>CFBundleName</key>
|
|
<string>$post</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>NSHighResolutionCapable</key>
|
|
<true/>
|
|
</dict>
|
|
</plist>
|
|
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$".
|
|
#
|