📄 configure.in
字号:
dnl -*- sh -*-
dnl the "configure" script is made from this by running GNU "autoconf"
dnl
dnl "$Id: configure.in,v 1.1.1.1 2003/06/03 22:25:27 agno Exp $"
dnl
dnl Configuration script for the Fast Light Tool Kit (FLTK).
dnl
dnl Copyright 1998-2003 by Bill Spitzak and others.
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl
dnl You should have received a copy of the GNU Library General Public
dnl License along with this library; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
dnl USA.
dnl
dnl Please report all bugs and problems to "fltk-bugs@fltk.org".
dnl
dnl We need at least autoconf 2.13...
AC_PREREQ(2.13)
dnl Required file in package...
AC_INIT(src/Fl.cxx)
dnl FLTK library versions...
FL_MAJOR_VERSION=1
FL_MINOR_VERSION=1
FL_PATCH_VERSION=3
FL_RELEASE_VERSION=
FL_API_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}
AC_SUBST(FL_MAJOR_VERSION)
AC_SUBST(FL_MINOR_VERSION)
AC_SUBST(FL_PATCH_VERSION)
AC_SUBST(FL_RELEASE_VERSION)
AC_SUBST(FL_API_VERSION)
dnl Get the operating system and version number...
uname=`uname`
uversion=`uname -r | sed -e '1,$s/[[^0-9]]//g'`
if test x$uname = xIRIX64; then
uname="IRIX"
fi
if test x$uname = x; then
# MingW doesn't provide any output when uname is run, even with "-s"...
uname="CYGWIN"
fi
dnl Don't automatically add "-g" to compiler options...
CFLAGS="${CFLAGS:=}"
CPPFLAGS="${CPPFLAGS:=}"
CXXFLAGS="${CXXFLAGS:=}"
OPTIM="${OPTIM:=}"
AC_SUBST(OPTIM)
dnl OS-specific pre-tests...
case $uname in
CYGWIN* | MINGW*)
# Handle Cygwin option *first*, before all other tests.
AC_ARG_ENABLE(cygwin, [ --enable-cygwin use the CygWin libraries [default=no]])
if test x$enable_cygwin != xyes; then
CFLAGS="$CFLAGS -mno-cygwin"
CPPFLAGS="$CPPFLAGS -mno-cygwin"
CXXFLAGS="$CXXFLAGS -mno-cygwin"
fi
;;
esac
dnl Define the libraries and link options we'll need.
LINKFLTK="-lfltk"
LINKFLTKGL="-lfltk_gl"
LINKFLTKIMG="-lfltk_images"
GLDEMOS="gldemos"
LIBNAME="../lib/libfltk.a"
FLLIBNAME="../lib/libfltk_forms.a"
GLLIBNAME="../lib/libfltk_gl.a"
IMGLIBNAME="../lib/libfltk_images.a"
AC_SUBST(FLLIBNAME)
AC_SUBST(GLDEMOS)
AC_SUBST(GLLIBNAME)
AC_SUBST(IMGLIBNAME)
AC_SUBST(LIBNAME)
AC_SUBST(LINKFLTK)
AC_SUBST(LINKFLTKGL)
AC_SUBST(LINKFLTKIMG)
dnl Handle compile-time options...
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]])
if test x$enable_debug = xyes; then
DEBUGFLAG="-g "
else
DEBUGFLAG=""
fi
AC_ARG_ENABLE(gl, [ --enable-gl turn on OpenGL support [default=yes]])
AC_ARG_ENABLE(shared, [ --enable-shared turn on shared libraries [default=no]])
if test x$enable_shared = xyes; then
PICFLAG=1
SHAREDSUFFIX=""
FLUID="fluid-shared"
case $uname in
Darwin*)
DSONAME="libfltk.$FL_API_VERSION.dylib"
FLDSONAME="libfltk_forms.$FL_API_VERSION.dylib"
GLDSONAME="libfltk_gl.$FL_API_VERSION.dylib"
IMGDSONAME="libfltk_images.$FL_API_VERSION.dylib"
DSOCOMMAND="ld $DSOFLAGS -dylib /usr/lib/dylib1.o -lc"
if test "$libdir" != "/usr/lib"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
SunOS* | UNIX_S*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o"
if test "$libdir" != "/usr/lib"; then
DSOLINK="-R$libdir"
fi
;;
HP-UX*)
DSONAME="libfltk.sl.$FL_API_VERSION"
FLDSONAME="libfltk_forms.sl.$FL_API_VERSION"
GLDSONAME="libfltk_gl.sl.$FL_API_VERSION"
IMGDSONAME="libfltk_images.sl.$FL_API_VERSION"
DSOCOMMAND="ld -b -z +h \$@ $DEBUGFLAG -o"
if test "$libdir" != "/usr/lib"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
IRIX*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
if test "$libdir" != "/usr/lib" - a "$libdir" != "/usr/lib32"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
OSF1*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
if test "$libdir" != "/usr/lib" - a "$libdir" != "/usr/lib32"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
Linux* | *BSD*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o"
if test "$libdir" != "/usr/lib"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
AIX*)
DSONAME="libfltk_s.a"
FLDSONAME="libfltk_forms_s.a"
GLDSONAME="libfltk_gl_s.a"
IMGDSONAME="libfltk_images_s.a"
DSOCOMMAND="\$(CXX) -Wl,-bexpall,-bM:SRE,-bnoentry -o"
SHAREDSUFFIX="_s"
;;
CYGWIN* | MINGW*)
AC_MSG_WARN(Shared libraries are not supported under CygWin.)
;;
*)
AC_MSG_WARN(Shared libraries may not be supported. Trying -shared option with compiler.)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
;;
esac
LINKSHARED="-L../src -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX"
else
DSOCOMMAND="echo"
DSOLINK=""
DSONAME=""
FLDSONAME=""
GLDSONAME=""
IMGDSONAME=""
PICFLAG=0
SHAREDSUFFIX=""
FLUID="fluid"
LINKSHARED="-L../lib -lfltk_images -lfltk_forms -lfltk"
fi
AC_SUBST(DSOCOMMAND)
AC_SUBST(DSOLINK)
AC_SUBST(DSONAME)
AC_SUBST(FLDSONAME)
AC_SUBST(GLDSONAME)
AC_SUBST(IMGDSONAME)
AC_SUBST(SHAREDSUFFIX)
AC_SUBST(LINKSHARED)
AC_SUBST(FLUID)
AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support])
AC_ARG_WITH(optim, [ --with-optim="flags" use custom optimization flags])
dnl Find commands...
AC_PROG_CC
AC_PROG_CXX
dnl AC_PROG_INSTALL
AC_PATH_PROG(NROFF,nroff)
if test "$NROFF" = ""; then
AC_PATH_PROG(GROFF,groff)
if test "$GROFF" = ""; then
NROFF="echo"
else
NROFF="$GROFF -T ascii"
fi
fi
AC_PATH_PROG(HTMLDOC,htmldoc)
dnl How do we make libraries?
AC_PROG_RANLIB
AC_PATH_PROG(AR, ar)
if test "x$AR" = "x:"; then
AC_MSG_ERROR(Configure could not find the library archiver, aborting.)
fi
if test "x$RANLIB" != "x:"; then
LIBCOMMAND="$AR cr"
else
LIBCOMMAND="$AR crs"
fi
AC_SUBST(LIBCOMMAND)
dnl Architecture checks...
AC_C_BIGENDIAN
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
if test $ac_cv_sizeof_short -eq 2; then
AC_DEFINE(U16,unsigned short)
fi
if test $ac_cv_sizeof_int -eq 4; then
AC_DEFINE(U32,unsigned)
else
if test $ac_cv_sizeof_long -eq 4; then
AC_DEFINE(U32,unsigned long)
fi
fi
if test $ac_cv_sizeof_int -eq 8; then
AC_DEFINE(U64,unsigned)
else
if test $ac_cv_sizeof_long -eq 8; then
AC_DEFINE(U64,unsigned long)
fi
fi
dnl Does the C++ compiler support the bool type?
AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type,
ac_cv_cxx_bool,[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
int f(int x){return 1;}
int f(char x){return 1;}
int f(bool x){return 1;}
],[
bool b = true;
return f(b);
], ac_cv_cxx_bool=yes, ac_cv_cxx_bool=no)
AC_LANG_RESTORE
])
if test "$ac_cv_cxx_bool" != yes; then
CXXFLAGS="-Dbool=char -Dfalse=0 -Dtrue=1 $CXXFLAGS"
fi
dnl Standard headers and functions...
AC_HEADER_DIRENT
AC_CHECK_HEADER(sys/select.h,AC_DEFINE(HAVE_SYS_SELECT_H))
AC_CHECK_HEADER(sys/stdtypes.h,AC_DEFINE(HAVE_SYS_SELECT_H))
AC_CHECK_FUNC(scandir,
if test "$uname" = SunOS -o "$uname" = QNX; then
AC_MSG_WARN(Not using $uname scandir emulation function.)
else
AC_DEFINE(HAVE_SCANDIR)
fi)
AC_CHECK_FUNC(vsnprintf,[
case $uname in
HP-UX*)
if test "$uversion" = "1020"; then
AC_MSG_WARN(Not using built-in vsnprintf function because you are running HP-UX 10.20.)
else
AC_DEFINE(HAVE_VSNPRINTF)
fi
;;
OSF1*)
if test "$uversion" = "40"; then
AC_MSG_WARN(Not using built-in vsnprintf function because you are running Tru64 4.0.)
else
AC_DEFINE(HAVE_VSNPRINTF)
fi
;;
*)
AC_DEFINE(HAVE_VSNPRINTF)
;;
esac])
AC_CHECK_FUNC(snprintf,[
case $uname in
HP-UX*)
if test "$uversion" = "1020"; then
AC_MSG_WARN(Not using built-in snprintf function because you are running HP-UX 10.20.)
else
AC_DEFINE(HAVE_SNPRINTF)
fi
;;
OSF1*)
if test "$uversion" = "40"; then
AC_MSG_WARN(Not using built-in snprintf function because you are running Tru64 4.0.)
else
AC_DEFINE(HAVE_SNPRINTF)
fi
;;
*)
AC_DEFINE(HAVE_SNPRINTF)
;;
esac])
AC_CHECK_HEADER(strings.h, AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_FUNCS(strcasecmp strlcat strlcpy)
dnl FLTK library uses math library functions...
AC_SEARCH_LIBS(pow, m)
dnl Check for image libraries...
SAVELIBS="$LIBS"
IMAGELIBS=""
AC_SUBST(IMAGELIBS)
AC_CHECK_HEADER(jpeglib.h,
AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
AC_DEFINE(HAVE_LIBJPEG)
IMAGELIBS="$IMAGELIBS -ljpeg"))
AC_CHECK_HEADER(zlib.h,
AC_CHECK_LIB(z, gzopen,
AC_DEFINE(HAVE_LIBZ)
IMAGELIBS="$IMAGELIBS -lz"
LIBS="$LIBS -lz"))
AC_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H))
AC_CHECK_HEADER(libpng/png.h, AC_DEFINE(HAVE_LIBPNG_PNG_H))
if test x$ac_cv_header_png_h = xyes -o x$ac_cv_header_libpng_png_h = xyes; then
AC_CHECK_LIB(png, png_read_rows,
AC_DEFINE(HAVE_LIBPNG)
IMAGELIBS="-lpng $IMAGELIBS"
LIBS="-lpng $LIBS"
AC_CHECK_FUNCS(png_get_valid png_set_tRNS_to_alpha))
fi
dnl Restore original LIBS settings...
LIBS="$SAVELIBS"
dnl See if we need a .exe extension on executables...
AC_EXEEXT
dnl Check for pthreads for multi-threaded apps...
have_pthread=no
if test x"$enable_threads" = xyes; then
AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))
AC_CHECK_LIB(pthread, pthread_create)
if test x"$ac_cv_lib_pthread_pthread_create" = xyes -a x$ac_cv_header_pthread_h = xyes; then
have_pthread=yes
else
dnl *BSD uses -pthread option...
AC_MSG_CHECKING([for pthread_create using -pthread])
SAVELIBS="$LIBS"
LIBS="-pthread $LIBS"
AC_TRY_LINK([#include <pthread.h>],
[pthread_create(0, 0, 0, 0);],
LIBS="-pthread $SAVELIBS"
have_pthread=yes,
LIBS="$SAVELIBS")
AC_MSG_RESULT([$have_pthread])
fi
fi
dnl Define OS-specific stuff...
HLINKS=
POSTBUILD=:
THREADS=
case $uname in
CYGWIN* | MINGW*)
dnl Cygwin environment...
CFLAGS="-mwindows -DWIN32 $CFLAGS"
CXXFLAGS="-mwindows -DWIN32 $CXXFLAGS"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -