X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12232f37d1c4c8bf97df063bac00f3ac2ab9ba94..180db9083613b9b6eca8451ee19553c6581f5505:/configure.in diff --git a/configure.in b/configure.in index 9d836818f6..7aafc547e2 100644 --- a/configure.in +++ b/configure.in @@ -32,7 +32,7 @@ for ac_dir in $1; ]) dnl --------------------------------------------------------------------------- -dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes +dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries dnl to the full name of the file that was found or leaves it empty if not found dnl --------------------------------------------------------------------------- AC_DEFUN(WX_PATH_FIND_LIBRARIES, @@ -205,7 +205,7 @@ AC_DEFUN(WX_ARG_CACHE_FLUSH, ]) dnl this macro checks for a three-valued command line --with argument: -dnl possible arguments are 'yes', 'no', or 'sys' +dnl possible arguments are 'yes', 'no', 'sys', or 'builtin' dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name) AC_DEFUN(WX_ARG_SYS_WITH, [ @@ -219,8 +219,10 @@ AC_DEFUN(WX_ARG_SYS_WITH, ac_cv_use_$1='$3=no' elif test "$withval" = sys; then ac_cv_use_$1='$3=sys' + elif test "$withval" = builtin; then + ac_cv_use_$1='$3=builtin' else - AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys]) + AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin]) fi ], [ @@ -245,8 +247,10 @@ AC_DEFUN(WX_ARG_SYS_WITH, AC_MSG_RESULT(no) elif test "$$3" = sys; then AC_MSG_RESULT(system version) + elif test "$$3" = builtin; then + AC_MSG_RESULT(builtin version) else - AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys]) + AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin]) fi ]) @@ -366,6 +370,8 @@ WX_RELEASE_NUMBER=2 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER +WX_MSW_VERSION=$WX_MAJOR_VERSION_NUMBER$WX_MINOR_VERSION_NUMBER$WX_RELEASE_NUMBER + WX_CURRENT=1 WX_REVISION=0 WX_AGE=0 @@ -400,8 +406,6 @@ USE_OPENBSD= USE_NETBSD= USE_VMS= USE_ULTRIX= -USE_CYGWIN= -USE_MINGW= USE_DATA_GENERAL= dnl on some platforms xxx_r() functions are declared inside "#ifdef @@ -412,7 +416,7 @@ NEEDS_D_REENTRANT_FOR_R_FUNCS=0 dnl the list of all available toolkits dnl dnl update NUM_TOOLKITS calculation below when adding a new toolkit here! -ALL_TOOLKITS="CYGWIN GTK MAC MGL MINGW MOTIF PM WINE" +ALL_TOOLKITS="GTK MAC MGL MOTIF MSW PM WINE" dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones dnl which are either yes or no @@ -558,7 +562,7 @@ case "${host}" in DEFAULT_DEFAULT_wxUSE_MSW=1 ;; - *-pc-os2_emx ) + *-pc-os2_emx | *-pc-os2-emx ) AC_DEFINE(__EMX__) PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_PM=1 @@ -637,8 +641,8 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_OPTIMISE=no DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no - DEFAULT_wxUSE_NO_RTTI=no - DEFAULT_wxUSE_NO_EXCEPTIONS=no + DEFAULT_wxUSE_NO_RTTI=yes + DEFAULT_wxUSE_NO_EXCEPTIONS=yes DEFAULT_wxUSE_PERMISSIVE=no DEFAULT_wxUSE_DEBUG_FLAG=yes DEFAULT_wxUSE_DEBUG_INFO=yes @@ -799,8 +803,8 @@ else DEFAULT_wxUSE_OPTIMISE=yes DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no - DEFAULT_wxUSE_NO_RTTI=no - DEFAULT_wxUSE_NO_EXCEPTIONS=no + DEFAULT_wxUSE_NO_RTTI=yes + DEFAULT_wxUSE_NO_EXCEPTIONS=yes DEFAULT_wxUSE_PERMISSIVE=no DEFAULT_wxUSE_DEBUG_FLAG=no DEFAULT_wxUSE_DEBUG_INFO=no @@ -988,8 +992,7 @@ AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$wi AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1]) AC_ARG_WITH(wine, [ --with-wine use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(cygwin, [ --with-cygwin use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(mingw, [ --with-mingw use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW TOOLKIT_GIVEN=1]) AC_ARG_WITH(pm, [ --with-pm use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(mgl, [ --with-mgl use SciTech MGL], [wxUSE_MGL="$withval" CACHE_MGL=1 TOOLKIT_GIVEN=1]) @@ -1347,14 +1350,13 @@ if test "$wxUSE_GUI" = "yes"; then dnl we suppose that expr is available (maybe there is a better way to do dnl this? what about using ALL_TOOLKITS? TODO) NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0} \ - + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0} \ - + ${wxUSE_MGL:-0}` + + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0}` dnl Allow wxUSE_PM only for OS/2 with EMX. dnl Path separator; ':' for unix. dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise case "${host}" in - *-pc-os2_emx ) + *-pc-os2_emx | *-pc-os2-emx ) # PATH_IFS is autodetected by OS/2's configure (usually ';') NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}` LEX_STEM="lexyy" @@ -1459,6 +1461,18 @@ AC_CHECK_PROG(AR, ar, ar, ar) dnl install checks dnl defines INSTALL with the appropriate command AC_PROG_INSTALL +case "${host}" in + + dnl The other BSD's should probably go in here too, since this is + dnl to workaround a strange static lib BSDism. + dnl Mac OS X install seems to ignore -p option... + powerpc-*-darwin* ) + INSTALL_PROGRAM="cp -fp" + INSTALL_DATA="cp -fp" + ;; + *) + ;; +esac dnl strip command dnl defines STRIP as strip or nothing if not found @@ -1598,28 +1612,250 @@ dnl ------------------------------------------------------------------------ dnl flush the cache because checking for libraries below might abort AC_CACHE_SAVE +dnl --------------------------------------------------------------------------- +dnl Optional libraries +dnl +dnl --with-=sys +dnl looks for system library and fails if not found +dnl +dnl --with- +dnl --with-=yes +dnl looks for system library and, if not found, prints a warning, +dnl falls back to the builtin wx version, and continues configuration +dnl +dnl --with-=builtin +dnl uses builtin wx version without searching for system library +dnl +dnl --with-=no +dnl --without- +dnl do not use library (neither system nor builtin wx version) +dnl +dnl --------------------------------------------------------------------------- + dnl ------------------------------------------------------------------------ dnl Check for regex libraries dnl ------------------------------------------------------------------------ REGEX_INCLUDE= if test "$wxUSE_REGEX" != "no"; then - dnl according to Unix 98 specs, regcomp() is in libc but I believe that - dnl on some old systems it may be in libregex - check for it too? - AC_CHECK_HEADER(regex.h, AC_CHECK_FUNCS(regcomp)) - - if test "x$ac_cv_func_regcomp" != "xyes"; then - dnl we were asked to use the system version of regex lib only but it - dnl is not available - if test "$wxUSE_REGEX" = "sys"; then - AC_MSG_ERROR([system regex library not found! Use --with-regex to use the built-in regex library.]) + AC_DEFINE(wxUSE_REGEX) + + if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then + dnl according to Unix 98 specs, regcomp() is in libc but I believe that + dnl on some old systems it may be in libregex - check for it too? + AC_CHECK_HEADER(regex.h, AC_CHECK_FUNCS(regcomp)) + + if test "x$ac_cv_func_regcomp" != "xyes"; then + if test "$wxUSE_REGEX" = "sys" ; then + AC_MSG_ERROR([system regex library not found! Use --with-regex to use built-in version]) + else + AC_MSG_WARN([system regex library not found, will use built-in instead]) + wxUSE_REGEX=builtin + fi + else + dnl we are using the system library + wxUSE_REGEX=sys fi + fi - dnl fallback to the built in code + if test "$wxUSE_REGEX" = "builtin" ; then REGEX_INCLUDE="-I\${top_srcdir}/src/regex" fi +fi - AC_DEFINE(wxUSE_REGEX) +dnl ------------------------------------------------------------------------ +dnl Check for zlib compression library +dnl ------------------------------------------------------------------------ + +ZLIB_INCLUDE= +ZLIB_LINK= +if test "$wxUSE_ZLIB" != "no" ; then + AC_DEFINE(wxUSE_ZLIB) + + if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then + AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK="-lz")) + + if test "x$ZLIB_LINK" = "x" ; then + if test "$wxUSE_ZLIB" = "sys" ; then + AC_MSG_ERROR([system zlib compression library not found! Use --with-zlib=builtin to use built-in version]) + else + AC_MSG_WARN([system zlib compression library not found, will use built-in instead]) + wxUSE_ZLIB=builtin + fi + else + dnl we are using the system library + wxUSE_ZLIB=sys + fi + fi + + if test "$wxUSE_ZLIB" = "builtin" ; then + ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl Check for png library +dnl ------------------------------------------------------------------------ + +PNG_INCLUDE= +PNG_LINK= +if test "$wxUSE_LIBPNG" != "no" ; then + AC_DEFINE(wxUSE_LIBPNG) + + dnl for the check below to have a chance to succeed, we must already have + dnl libz somewhere + if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then + AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead]) + wxUSE_LIBPNG=builtin + fi + + if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then + AC_CHECK_HEADER(png.h, + AC_CHECK_LIB(png, png_check_sig, + PNG_LINK="-lpng", + , + [-lz -lm]) + ) + + if test "x$PNG_LINK" = "x" ; then + if test "$wxUSE_LIBPNG" = "sys" ; then + AC_MSG_ERROR([system png library not found! Use --with-libpng=builtin to use built-in version]) + else + AC_MSG_WARN([system png library not found, will use built-in instead]) + wxUSE_LIBPNG=builtin + fi + else + dnl we are using the system library + wxUSE_LIBPNG=yes + fi + fi + + if test "$wxUSE_LIBPNG" = "builtin" ; then + PNG_INCLUDE="-I\${top_srcdir}/src/png" + fi + + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png" +fi + +dnl ------------------------------------------------------------------------ +dnl Check for jpeg library +dnl ------------------------------------------------------------------------ + +JPEG_INCLUDE= +JPEG_LINK= +if test "$wxUSE_LIBJPEG" != "no" ; then + AC_DEFINE(wxUSE_LIBJPEG) + + if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then + dnl can't use AC_CHECK_HEADER as jconfig.h defines things like + dnl HAVE_STDLIB_H which are already defined and this provokes + dnl a compiler warning which configure considers as an error... + AC_MSG_CHECKING(for jpeglib.h) + AC_CACHE_VAL(ac_cv_header_jpeglib_h, + AC_TRY_COMPILE( + [ + #undef HAVE_STDLIB_H + #include + #include + ], + [ + ], + ac_cv_header_jpeglib_h=yes, + ac_cv_header_jpeglib_h=no + ) + ) + AC_MSG_RESULT($ac_cv_header_jpeglib_h) + + if test "$ac_cv_header_jpeglib_h" = "yes"; then + AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg") + fi + + if test "x$JPEG_LINK" = "x" ; then + if test "$wxUSE_LIBJPEG" = "sys" ; then + AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version]) + else + AC_MSG_WARN([system jpeg library not found, will use built-in instead]) + wxUSE_LIBJPEG=builtin + fi + else + dnl we are using the system library + wxUSE_LIBJPEG=sys + fi + fi + + if test "$wxUSE_LIBJPEG" = "builtin" ; then + JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl Check for tiff library +dnl ------------------------------------------------------------------------ + +TIFF_INCLUDE= +TIFF_LINK= +if test "$wxUSE_LIBTIFF" != "no" ; then + AC_DEFINE(wxUSE_LIBTIFF) + + if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then + AC_CHECK_HEADER(tiffio.h, + AC_CHECK_LIB(tiff, TIFFError, + TIFF_LINK="-ltiff", + , + -lm) + ) + + if test "x$TIFF_LINK" = "x" ; then + if test "$wxUSE_LIBTIFF" = "sys" ; then + AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version]) + else + AC_MSG_WARN([system tiff library not found, will use built-in instead]) + wxUSE_LIBTIFF=builtin + fi + else + dnl we are using the system library + wxUSE_LIBTIFF=sys + fi + fi + + if test "$wxUSE_LIBTIFF" = "builtin" ; then + TIFF_INCLUDE="-I\${top_srcdir}/src/tiff" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl Check for freetype library +dnl ------------------------------------------------------------------------ + +FREETYPE_INCLUDE= +FREETYPE_LINK= +if test "$wxUSE_FREETYPE" != "no" ; then + AC_DEFINE(wxUSE_FREETYPE) + + if test "$wxUSE_FREETYPE" = "sys" -o "$wxUSE_FREETYPE" = "yes" ; then + AC_CHECK_HEADER(freetype.h, + AC_CHECK_LIB(freetype, FT_Render_Glyph, + FREETYPE_LINK="-lfreetype", + , + [-lm]) + ) + + if test "x$FREETYPE_LINK" = "x" ; then + if test "$wxUSE_FREETYPE" = "sys" ; then + AC_MSG_ERROR([system freetype library not found! Use --with-freetype=builtin to use built-in version]) + else + AC_MSG_WARN([system freetype library not found, will use built-in instead]) + wxUSE_FREETYPE=builtin + fi + else + dnl we are using the system library + wxUSE_FREETYPE=sys + fi + fi + + if test "$wxUSE_FREETYPE" = "builtin" ; then + FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype" + fi fi dnl ---------------------------------------------------------------- @@ -1641,8 +1877,8 @@ if test "$USE_WIN32" = 1 ; then AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h) ]) - dnl check if can use _WIN_IE macro - AC_CACHE_CHECK([if w32api has good enough MSIE support], wx_cv_w32api_win_ie, + dnl check if can use _WIN32_IE macro + AC_CACHE_CHECK([if w32api has good enough MSIE support], wx_cv_w32api_win32_ie, [ AC_TRY_COMPILE([#include ], [ @@ -1655,36 +1891,31 @@ if test "$USE_WIN32" = 1 ; then #error You need w32api 1.1 or newer #endif ], [ - wx_cv_w32api_win_ie=yes - CPPFLAGS="$CPPFLAGS -D_WIN_IE=0x400" + wx_cv_w32api_win32_ie=yes ], [ - wx_cv_w32api_win_ie=no + wx_cv_w32api_win32_ie=no ]) ]) + if test "$wx_cv_w32api_win32_ie" = "yes" ; then + CPPFLAGS="$CPPFLAGS -D_WIN32_IE=0x400" + fi dnl --- FIXME: This is still a somewhat random list of libs, dnl --- some of them should probably be included conditionally. LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lwsock32" - dnl Cygwin doesn't link these by default - if test "$wxUSE_CYGWIN" = 1; then - LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32" - fi + case "${host}" in + *-*-cygwin* ) + dnl Cygwin doesn't include these by default + LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32" + TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__" + esac dnl add extra odbc libs if we have compiled in odbc if test "$wxUSE_ODBC" = "yes" ; then LIBS="$LIBS -lodbc32 -lole32 -loleaut32" fi - dnl -mwindows is needed to avoid that spawning of a console window - dnl This probably doesn't belong here.. The user may actually *want* - dnl a console window. People should add this to their own app makefiles - dnl instead. Unless someone cries murder about it, expect this to - dnl disappear from here soon. - if test "$wxUSE_MINGW" = 1; then - LDFLAGS="$LDFLAGS -mwindows" - fi - RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__" RESPROGRAMOBJ="\$(PROGRAM)_resources.o" fi @@ -1698,9 +1929,17 @@ if test "$wxUSE_GUI" = "yes"; then WXGTK127= WXGTK20= - if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then + if test "$wxUSE_MSW" = 1 ; then TOOLKIT=MSW GUIDIST=MSW_DIST + + dnl -mwindows causes a heap of other default gui libs to be linked in. + dnl FIXME: If cygwin needs this, please push it above, if not, please + dnl remove this comment :-) + case "${host}" in + *-*-mingw32* ) + EXTRA_LIBS="$EXTRA_LIBS -Wl,--subsystem,windows -mwindows" + esac fi if test "$wxUSE_GTK" = 1; then @@ -1712,7 +1951,7 @@ if test "$wxUSE_GUI" = "yes"; then dnl stupid GTK+ AM macros produce their own messages, so we dnl have to pass to the next line gtk_version_cached=0 - AC_MSG_RESULT("") + AC_MSG_RESULT() wx_cv_lib_gtk= if test "x$wxUSE_GTK2" = "xyes"; then @@ -1788,12 +2027,14 @@ equivalent variable and GTK+ is version 1.2.3 or above. mgl_lib_type="" if test "$wxUSE_DEBUG_FLAG" = yes ; then - if test -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.a ; then + if test -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.a -o \ + -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.so; then mgl_lib_type=debug fi fi if test "x$mgl_lib_type" = x ; then - if test -f $MGL_ROOT/lib/release/$mgl_os/libmgl.a ; then + if test -f $MGL_ROOT/lib/release/$mgl_os/libmgl.a -o \ + -f $MGL_ROOT/lib/release/$mgl_os/libmgl.so; then mgl_lib_type=release else AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.]) @@ -1844,16 +2085,11 @@ equivalent variable and GTK+ is version 1.2.3 or above. TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXWINE__" fi - dnl use standard macros to check for X headers/libs, this brings support - dnl for the standard configure options --x-includes and --x-libraries; - dnl the path to the X headers/libs is not only needed for motif, but also - dnl by the OpenGL and XKBlib.h checks further down - - AC_PATH_XTRA - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - LDFLAGS="$LDFLAGS $X_LIBS" - if test "$wxUSE_MOTIF" = 1; then + dnl use standard macros to check for X headers/libs, this brings support + dnl for the standard configure options --x-includes and --x-libraries + AC_PATH_XTRA + if test "$no_x" = "yes"; then AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options) fi @@ -2012,16 +2248,16 @@ equivalent variable and GTK+ is version 1.2.3 or above. if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" fi - if test "$wxUSE_LIBJPEG" = "yes" ; then + if test "$wxUSE_LIBJPEG" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)" fi - if test "$wxUSE_LIBTIFF" = "yes" ; then + if test "$wxUSE_LIBTIFF" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(TIFFOBJS)" fi - if test "$wxUSE_LIBPNG" = "yes" ; then + if test "$wxUSE_LIBPNG" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)" fi - if test "$wxUSE_FREETYPE" = "yes" ; then + if test "$wxUSE_FREETYPE" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(FREETYPEOBJS)" fi @@ -2060,34 +2296,46 @@ else DISTDIR="wxBase" fi -dnl REGEX_INCLUDE is only set if we want regex support and if we use our -dnl own sources and not the system library -if test "x$REGEX_INCLUDE" != "x" ; then +dnl --------------------------------------------------------------------------- +dnl Optional libraries included when system library is not used +dnl --------------------------------------------------------------------------- +if test "$wxUSE_REGEX" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)" fi -if test "$wxUSE_ZLIB" = "yes" ; then +if test "$wxUSE_ZLIB" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)" fi +dnl --------------------------------------------------------------------------- +dnl OpenGL libraries +dnl --------------------------------------------------------------------------- if test "$wxUSE_OPENGL" = "yes"; then if test "$wxUSE_MAC" = 1; then - AC_DEFINE(wxUSE_OPENGL) - AC_DEFINE(wxUSE_GLCANVAS) OPENGL_LIBS="-framework OpenGL -framework AGL" - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl" else + dnl check for OpenGL libs availability first AC_CHECK_HEADER(GL/gl.h, [ - AC_DEFINE(wxUSE_OPENGL) - AC_DEFINE(wxUSE_GLCANVAS) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl" AC_CHECK_LIB(GL, glFlush, [ OPENGL_LIBS="-lGL -lGLU" - ],[ - AC_CHECK_LIB(MesaGL, glFlush, [ + ], [ + AC_CHECK_LIB(MesaGL, glFlush, [ OPENGL_LIBS="-lMesaGL -lMesaGLU" - ],) - ],) - ],wxUSE_OPENGL=0) + ]) + ]) + ]) + + if test "x$OPENGL_LIBS" = "x"; then + dnl it should be an error and not a warning because OpenGL is not on + dnl by default and so if it had been explicitely requested, we + dnl shouldn't just fall back to compiling the library without it + AC_MSG_ERROR(OpenGL libraries not available) + fi + fi + + if test "$wxUSE_OPENGL" = "yes"; then + AC_DEFINE(wxUSE_OPENGL) + AC_DEFINE(wxUSE_GLCANVAS) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl" fi fi @@ -2100,18 +2348,18 @@ if test -n "$TOOLKIT" ; then TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__" fi -if test "$wxUSE_CYGWIN" = 1 ; then - TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__" +lib_unicode_suffix= +if test "$wxUSE_UNICODE" = "yes"; then + lib_unicode_suffix=u fi lib_debug_suffix= if test "$wxUSE_DEBUG_FLAG" = "yes"; then lib_debug_suffix=d - TOOLCHAIN_NAME="${TOOLCHAIN_NAME}d" fi -TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_debug_suffix}-${WX_RELEASE}" -TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${WIDGET_SET}${lib_debug_suffix}_gl-${WX_RELEASE}" +TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}" +TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}" if test "$cross_compiling" = "yes"; then TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}" @@ -2122,17 +2370,6 @@ dnl library link name WX_LIBRARY="wx_${TOOLCHAIN_NAME}" WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}" -dnl define which libs wx-config should link. -WXCONFIG_LIBS="-l${WX_LIBRARY}" - -if test "$wxUSE_OPENGL" = "yes"; then - WXCONFIG_LIBS_GL="-l${WX_LIBRARY_GL} $OPENGL_LIBS" -fi - -dnl the name of the static library -WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a" -WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY_GL}.a" - dnl the name of the shared library WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" @@ -2147,6 +2384,39 @@ dnl the name of the resources file for wxMac WX_RESOURCES_MACOSX="lib${WX_LIBRARY}.rsrc" WX_RESOURCES_MACOSX_COMPILED="lib${WX_LIBRARY}.r" +case "${host}" in + *-*-cygwin* | *-*-mingw32* ) + + dnl If we are cross compiling we want to use the 'full' unix type name for the + dnl lib, but for a native install use the windows style naming convention. + dnl (excepting again that we strip the ELF style version numbers off it). + + dnl FIXME: is this GL stuff actually even used for wxMSW? should it be?? + + if test "$cross_compiling" != "yes"; then + WX_LIBRARY="wxmsw${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}" + WX_LIBRARY_GL="wxmsw_gl${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}" + WX_LIBRARY_NAME_SHARED="${WX_LIBRARY}.${SO_SUFFIX}" + WX_LIBRARY_NAME_SHARED_GL="${WX_LIBRARY_GL}.${SO_SUFFIX}" + else + WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}" + WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" + fi + +esac + +dnl the name of the static library +WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a" +WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY_GL}.a" + +dnl define which libs wx-config should link. +WXCONFIG_LIBS="-l${WX_LIBRARY}" + +if test "$wxUSE_OPENGL" = "yes"; then + WXCONFIG_LIBS_GL="-l${WX_LIBRARY_GL} $OPENGL_LIBS" +fi + + dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP --- if test "$wxUSE_SHARED" = "yes"; then @@ -2241,9 +2511,13 @@ if test "$wxUSE_SHARED" = "yes"; then ;; *-*-cygwin* | *-*-mingw32* ) - SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_NAME_STATIC} -o" + + WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a" + + SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o" TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -DWXUSINGDLL=1" - WXMSW_DLL_DEFINES="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1" + + PIC_FLAG="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1" dnl install shared libs without symlinks if test "$wxUSE_OPENGL" = "yes"; then @@ -2252,12 +2526,9 @@ if test "$wxUSE_SHARED" = "yes"; then else WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}" fi - dnl -fPIC is not required for mingw build -- all code is already - dnl position independent - PIC_FLAG= ;; - *-pc-os2_emx ) + *-pc-os2_emx | *-pc-os2-emx ) dnl only static for now wxUSE_SHARED=no ;; @@ -2300,6 +2571,10 @@ if test "$wxUSE_SHARED" = "no"; then WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall" fi + if test "$wxUSE_MAC" = 1; then + WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall" + fi + if test "$wxUSE_OPENGL" = "yes"; then WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_gl" WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_STATIC} \$(build_libdir)/${WX_LIBRARY_NAME_STATIC_GL}" @@ -2374,23 +2649,25 @@ dnl defines uid_t and gid_t if not already defined AC_TYPE_UID_T dnl check for wchar_t +dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD) AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t, [ - AC_TRY_COMPILE([#include ], + AC_TRY_COMPILE( + [ + #ifdef HAVE_WCHAR_H + # include + #endif + #ifdef HAVE_STDLIB_H + # include + #endif + ], [ wchar_t wc, *ws; wc = L'a'; ws = L"Hello, world!"; ], wx_cv_type_wchar_t=yes, - AC_TRY_COMPILE([#include ], - [ - wchar_t wc, *ws; - wc = L'a'; - ws = L"Hello, world!"; - ], - wx_cv_type_wchar_t=yes, - wx_cv_type_wchar_t=no) + wx_cv_type_wchar_t=no ) ]) @@ -2495,7 +2772,7 @@ AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 0) dnl we have to do it ourselves because SGI/Irix's stdio.h does not include -dnl wchar_t an AC_CHECK_SIZEOF only includes stdio.h +dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD) AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t, [ @@ -2728,11 +3005,12 @@ fi dnl check for vfork() (even if it's the same as fork() in modern Unices) AC_CHECK_FUNCS(vfork) -dnl get the library function to use for wxGetDiskSpace() +dnl get the library function to use for wxGetDiskSpace(): it is statfs() under +dnl Linux and *BSD and statvfs() under Solaris AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, AC_TRY_COMPILE( [ - #ifdef __BSD__ + #if defined(__BSD__) #include #include #else @@ -2759,7 +3037,33 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, if test "$wx_cv_func_statfs" = "yes"; then AC_DEFINE(HAVE_STATFS) else - AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()]) + AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs, + AC_TRY_COMPILE( + [ + #include + ], + [ + long l; + struct statvfs fs; + statvfs("/", &fs); + l = fs.f_bsize; + l += fs.f_blocks; + l += fs.f_bavail; + ], + [ + wx_cv_func_statvfs=yes + ], + [ + wx_cv_func_statvfs=no + ] + ) + ) + + if test "$wx_cv_func_statvfs" = "yes"; then + AC_DEFINE(HAVE_STATVFS) + else + AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()]) + fi fi dnl check for fcntl() or at least flock() needed by Unix implementation of @@ -3197,124 +3501,6 @@ if test "$WXWIN_COMPATIBILITY_2_2" = "yes"; then AC_DEFINE(WXWIN_COMPATIBILITY_2_2) fi -dnl --------------------------------------------------------------------------- -dnl Optional libraries -dnl --------------------------------------------------------------------------- - -ZLIB_INCLUDE= -if test "$wxUSE_ZLIB" = "yes" -o "$wxUSE_ZLIB" = "sys" ; then - AC_DEFINE(wxUSE_ZLIB) - if test "$wxUSE_ZLIB" = "yes" ; then - ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib" - else - ZLIB_LINK= - AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK="-lz")) - if test "x$ZLIB_LINK" = "x" ; then - AC_MSG_ERROR(system zlib compression library not found! Use --with-zlib=yes to use built-in zlib) - fi - fi -fi - -PNG_INCLUDE= -if test "$wxUSE_LIBPNG" = "yes" -o "$wxUSE_LIBPNG" = "sys" ; then - AC_DEFINE(wxUSE_LIBPNG) - dnl for the check below to have a chance to succeed, we must already have - dnl libz somewhere - if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then - AC_MSG_WARN([--with-libpng=sys doesn't work without --with-zlib=sys, will compile the built-in libpng instead]) - wxUSE_LIBPNG=yes - fi - - if test "$wxUSE_LIBPNG" = "yes" ; then - PNG_INCLUDE="-I\${top_srcdir}/src/png" - else - PNG_LINK= - AC_CHECK_HEADER(png.h, - AC_CHECK_LIB(png, png_check_sig, - PNG_LINK="-lpng", - , - [-lz -lm]) - ) - if test "x$PNG_LINK" = "x" ; then - AC_MSG_ERROR(system png library not found! Use --with-libpng=yes to use the built-in libpng) - fi - fi - - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png" -fi - -JPEG_INCLUDE= -if test "$wxUSE_LIBJPEG" = "yes" -o "$wxUSE_LIBJPEG" = "sys" ; then - AC_DEFINE(wxUSE_LIBJPEG) - if test "$wxUSE_LIBJPEG" = "yes" ; then - JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg" - else - JPEG_LINK= - dnl can't use AC_CHECK_HEADER as jconfig.h defines things like - dnl HAVE_STDLIB_H which are already defined and this provokes - dnl a compiler warning which configure considers as an error... - AC_MSG_CHECKING(for jpeglib.h) - AC_CACHE_VAL(ac_cv_header_jpeglib_h, - AC_TRY_COMPILE( - [ - #undef HAVE_STDLIB_H - #include - #include - ], - [ - ], - ac_cv_header_jpeglib_h=yes, - ac_cv_header_jpeglib_h=no - ) - ) - AC_MSG_RESULT($ac_cv_header_jpeglib_h) - - if test "$ac_cv_header_jpeglib_h" = "yes"; then - AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg") - fi - - if test "x$JPEG_LINK" = "x" ; then - AC_MSG_ERROR(system jpeg library not found! Use --with-libjpeg=yes to use the built-in one) - fi - fi -fi - -TIFF_INCLUDE= -if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then - AC_DEFINE(wxUSE_LIBTIFF) - if test "$wxUSE_LIBTIFF" = "yes" ; then - TIFF_INCLUDE="-I\${top_srcdir}/src/tiff" - else - TIFF_LINK= - AC_CHECK_HEADER(tiffio.h, AC_CHECK_LIB(tiff, TIFFError, - TIFF_LINK="-ltiff", - , - -lm)) - if test "x$TIFF_LINK" = "x" ; then - AC_MSG_ERROR(system tiff library not found! Use --with-libtiff=yes to use the built-in one) - fi - fi -fi - -FREETYPE_INCLUDE= -if test "$wxUSE_FREETYPE" = "yes" -o "$wxUSE_FREETYPE" = "sys" ; then - AC_DEFINE(wxUSE_FREETYPE) - if test "$wxUSE_FREETYPE" = "yes" ; then - FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype" - else - FREETYPE_LINK= - AC_CHECK_HEADER(freetype.h, - AC_CHECK_LIB(freetype, FT_Render_Glyph, - FREETYPE_LINK="-lfreetype", - , - [-lm]) - ) - if test "x$FREETYPE_LINK" = "x" ; then - AC_MSG_ERROR(system freetype library not found! Use --with-freetype=yes to use the built-in freetype) - fi - fi -fi - dnl --------------------------------------------------------------------------- dnl the library may be built without GUI classes at all dnl --------------------------------------------------------------------------- @@ -3871,7 +4057,7 @@ if test "$wxUSE_HELP" = "yes"; then AC_DEFINE(wxUSE_HELP) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help" - if test "$USE_WIN32" = 1; then + if test "$wxUSE_MSW" = 1; then if test "$wxUSE_MS_HTML_HELP" = "yes"; then AC_CHECK_HEADER(htmlhelp.h, [ @@ -3922,9 +4108,9 @@ dnl --------------------------------------------------------------------------- dnl check for ole headers and disable a few features requiring it if not dnl present (earlier versions of mingw32 don't have ole2.h) -if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ - -o "$wxUSE_CLIPBOARD" = "yes" \ - -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then +if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ + -o "$wxUSE_CLIPBOARD" = "yes" \ + -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then AC_CHECK_HEADERS(ole2.h) if test "$ac_cv_header_ole2_h" = "yes" ; then @@ -3946,7 +4132,6 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ wxUSE_DATAOBJ=no fi - dnl this is for MSW only, so we test for it inside "if USE_WIN32" if test "$wxUSE_METAFILE" = "yes"; then AC_DEFINE(wxUSE_METAFILE) @@ -4438,7 +4623,7 @@ dnl all additional libraries (except wxWindows itself) we link with dnl dnl note that we always link with -lm except for Mac OS X dnl extended.c uses floor() and is always linked in -EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" +EXTRA_LIBS="$EXTRA_LIBS $LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" if test "$wxUSE_MAC" = 1 ; then EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System" @@ -4467,7 +4652,7 @@ dnl makefile system without libtool LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS" dnl all -I options we must pass to the compiler -INCLUDES="-I. -I\${top_builddir}/lib/wx/include/${TOOLCHAIN_NAME} -I\${top_srcdir}/include \ +INCLUDES="-I\${top_builddir}/lib/wx/include/${TOOLCHAIN_NAME} -I\${top_srcdir}/include \ $REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE \ $FREETYPE_INCLUDE $TOOLKIT_INCLUDE" @@ -4512,6 +4697,7 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER) AC_SUBST(WX_RELEASE_NUMBER) AC_SUBST(WX_LIBRARY_NAME_STATIC) AC_SUBST(WX_LIBRARY_NAME_SHARED) +AC_SUBST(WX_LIBRARY_IMPORTLIB) AC_SUBST(WX_TARGET_LIBRARY) AC_SUBST(WX_LIBRARY_LINK1) AC_SUBST(WX_LIBRARY_LINK2) @@ -4551,6 +4737,7 @@ AC_SUBST(TOOLCHAIN_NAME) AC_SUBST(TOOLCHAIN_DEFS) dnl wx-config options +AC_SUBST(host_alias) AC_SUBST(cross_compiling) AC_SUBST(WXCONFIG_LIBS) AC_SUBST(WXCONFIG_LIBS_GL) @@ -4576,7 +4763,6 @@ AC_SUBST(OPENGL_LIBS) AC_SUBST(EXTRADEFS) AC_SUBST(LIBS) AC_SUBST(LD_LIBS) -AC_SUBST(WXMSW_DLL_DEFINES) dnl additional resurces settings AC_SUBST(RESCOMP)