#include <gtk/gtk.h>
#include <gtk/gtkfeatures.h>
#include <stdio.h>
+#include <stdlib.h>
int
main ()
mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
])
+dnl this macro checks for a three-valued command line --with argument:
+dnl possible arguments are 'yes', 'no', or 'sys'
+dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
+AC_DEFUN(WX_ARG_SYS_WITH,
+ [
+ AC_MSG_CHECKING("for --with-$1")
+ no_cache=0
+ AC_ARG_WITH($1, $2,
+ [
+ if test "$withval" = yes; then
+ ac_cv_use_$1='$3=yes'
+ elif test "$withval" = no; then
+ ac_cv_use_$1='$3=no'
+ elif test "$withval" = sys; then
+ ac_cv_use_$1='$3=sys'
+ else
+ AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
+ fi
+ ],
+ [
+ LINE=`grep "$3" ${wx_arg_cache_file}`
+ if test "x$LINE" != x ; then
+ eval "DEFAULT_$LINE"
+ else
+ no_cache=1
+ fi
+
+ ac_cv_use_$1='$3='$DEFAULT_$3
+ ])
+
+ eval "$ac_cv_use_$1"
+ if test "$no_cache" != 1; then
+ echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
+ fi
+
+ if test "$$3" = yes; then
+ AC_MSG_RESULT(yes)
+ elif test "$$3" = no; then
+ AC_MSG_RESULT(no)
+ elif test "$$3" = sys; then
+ AC_MSG_RESULT(system version)
+ else
+ AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
+ fi
+ ])
+
dnl this macro checks for a command line argument and caches the result
dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
AC_DEFUN(WX_ARG_WITH,
dnl the file passed to AC_INIT should be specific to our package
AC_INIT(wx-config.in)
+dnl sets build, host, target variables and the same with _alias
AC_CANONICAL_SYSTEM
dnl When making releases do:
AC_ARG_WITH(gtk-exec-prefix, [ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed],
gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
-WX_ARG_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG)
-WX_ARG_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
-WX_ARG_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF)
+WX_ARG_SYS_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG)
+WX_ARG_SYS_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
+WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF)
WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
fi
dnl for GUI only
WX_ARG_WITH(dmalloc, [ --with-dmalloc use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
-WX_ARG_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB)
+WX_ARG_SYS_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB)
WX_ARG_WITH(odbc, [ --with-odbc use the IODBC and wxODBC classes], wxUSE_ODBC)
dnl ====================
WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
-dnl can't use sockets without GUI so far
-if test "$wxUSE_GUI" = "yes"; then
WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
-else
-wxUSE_SOCKETS=no
-fi
WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER)
WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
dnl cross-compiling support: we're cross compiling if the build system is
dnl different from the target one (assume host and target be always the same)
-if eval "test $host != $build"; then
- if eval "test $host_alias != NONE"; then
+if test "$build" != "$host" ; then
CC=$host_alias-gcc
CXX=$host_alias-c++
AR=$host_alias-ar
RANLIB=$host_alias-ranlib
DLLTOOL=$host_alias-dlltool
+ RESCOMP=$host_alias-windres
LD=$host_alias-ld
NM=$host_alias-nm
STRIP=$host_alias-strip
- fi
fi
dnl C-compiler checks
if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
if test "$cross_compiling" = "yes" ; then
- AC_MSG_WARN(Cross compiling --- skipping windows.h check)
+ dnl mingw32 will find them even if they're not in one of standard paths
+ AC_MSG_WARN(skipping windows.h check for cross-compilation)
else
AC_MSG_CHECKING(for Windows headers)
WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
dnl --- This will bloat the executable, but it'll work for now...
LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
+ 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
if test "$wxUSE_MINGW" = 1; then
LDFLAGS="$LDFLAGS -mwindows"
GENERICOBJS="\$(MSW_GENERICOBJS)"
UNIXOBJS=
GUIDIST=MSW_DIST
+
+ dnl we should calculate these
+ RCINCSWITCH="--include-dir"
+ RCDEFSWITCH="--define"
+ RCPREPROCESSOR="--preprocessor \"\$(CC) -c -E -xc-header -DRC_INVOKED\""
+ RCINPUTSWITCH="-i"
+ RCOUTPUTSWITCH="-o"
+ RESFLAGS="$RCPREPROCESSOR $RCINCSWITCH \$(top_srcdir)/include $RCINCSWITCH \$(top_srcdir)/\$(program_dir) $RCDEFSWITCH __WIN32__ $RCDEFSWITCH __WIN95__ $RCDEFSWITCH __GNUWIN32__"
+
+ dnl set optinal RES_PROGRAM_OPT to RES_PROGRAM
+ RESPROGRAM="\$(RES_PROGRAM)"
+
fi
if test "$wxUSE_GTK" = 1; then
fi
WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl"
WX_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_DIR}_gl.sl"
- WX_ALL=${WX_LIBRARY_NAME_SHARED}
+ if test "$wxUSE_OPENGL" = "yes"; then
+ WX_ALL="${WX_LIBRARY_NAME_SHARED} ${WX_LIBRARY_NAME_SHARED_GL}"
+ else
+ WX_ALL="${WX_LIBRARY_NAME_SHARED}"
+ fi
;;
dnl in fact, these settings are for any platform using gcc
BURNT_LIBRARY_NAME="-Wl,-soname,${WX_LIBRARY_LINK1}"
BURNT_LIBRARY_NAME_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}"
fi
- WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
- WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ if test "$wxUSE_OPENGL" = "yes"; then
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+ WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ else
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+ WX_ALL="CREATE_LINKS"
+ fi
;;
*-*-irix5* | *-*-irix6* )
if test "$GCC" = yes ; then
else
SHARED_LD="${CXX} -shared -o"
fi
- WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
- WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ if test "$wxUSE_OPENGL" = "yes"; then
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+ WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ else
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+ WX_ALL="CREATE_LINKS"
+ fi
;;
*-*-solaris2* )
if test "$GCC" = yes ; then
SHARED_LD="${CXX} -G -o"
PIC_FLAG="-KPIC"
fi
- WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
- WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ if test "$wxUSE_OPENGL" = "yes"; then
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+ WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ else
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+ WX_ALL="CREATE_LINKS"
+ fi
;;
*-*-sunos4* )
SHARED_LD="${CC} -shared -o"
AC_CHECK_HEADERS(fnmatch.h)
if test "$wxUSE_GUI" = "yes"; then
- dnl defines HAVE_X11_XKBLIB_H
- AC_CHECK_HEADERS(X11/XKBlib.h)
+ if test "$wxUSE_UNIX" = "yes"; then
+ dnl defines HAVE_X11_XKBLIB_H
+ AC_CHECK_HEADERS(X11/XKBlib.h)
+ fi
fi
dnl ---------------------------------------------------------------------------
dnl check for uname (POSIX) and gethostname (BSD)
AC_CHECK_FUNCS(uname gethostname, break)
-dnl check for MT-safe version of strtok
+dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
+dnl but not for C++ one - hence change language)
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
AC_CHECK_FUNCS(strtok_r)
+AC_LANG_RESTORE
+
dnl check for inet_addr and inet_aton (these may live either in libc, or in
dnl libnsl or libresolv)
INET_LINK=
dnl ---------------------------------------------------------------------------
ZLIB_INCLUDE=
-if test "$wxUSE_ZLIB" = "yes" ; then
+if test "$wxUSE_ZLIB" = "yes" -o "$wxUSE_ZLIB" = "sys" ; then
AC_DEFINE(wxUSE_ZLIB)
- ZLIB_INCLUDE="-I\${top_srcdir}/src/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" ; then
+if test "$wxUSE_LIBPNG" = "yes" -o "$wxUSE_LIBPNG" = "sys" ; then
AC_DEFINE(wxUSE_LIBPNG)
- PNG_INCLUDE="-I\${top_srcdir}/src/png"
+ 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" ; then
+if test "$wxUSE_LIBJPEG" = "yes" -o "$wxUSE_LIBJPEG" = "sys" ; then
AC_DEFINE(wxUSE_LIBJPEG)
- JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
+ if test "$wxUSE_LIBJPEG" = "yes" ; then
+ JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
+ else
+ JPEG_LINK=
+ AC_CHECK_HEADER(jpeglib.h, AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg"))
+ 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" ; then
+if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then
AC_DEFINE(wxUSE_LIBTIFF)
- TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
+ 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
if test "$wxUSE_OPENGL" = "yes"; then
dnl get the string with OS info - used by wxGetOsDescription()
dnl ---------------------------------------------------------------------------
-OSINFO=`uname -s -r -m`
-OSINFO="\"$OSINFO\""
+if test "$cross_compiling" = "yes"; then
+ dnl Use best guess from host as we can't use uname when cross compiling
+ OSINFO="\"$host\""
+else
+ dnl attualy work out OS version
+ OSINFO=`uname -s -r -m`
+ OSINFO="\"$OSINFO\""
+fi
+
AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
dnl ---------------------------------------------------------------------------
GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $TOOLKIT_LINK"
dnl all additional libraries (except wxWindows itself) we link with
-EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK"
+EXTRA_LIBS="$LIBS $ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK"
if test "$wxUSE_GUI" = "yes"; then
- EXTRA_LIBS="$EXTRA_LIBS $GUILIBS"
+ EXTRA_LIBS="$EXTRA_LIBS $GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK"
fi
dnl all the libraries needed to link wxWindows programs when using the
dnl TODO some samples are never built so far:
dnl ipc, mfc, nativdlg, oleauto, ownerdrw, proplist
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag drawing dynamic \
- font fractal image minimal richedit"
+ font fractal image menu minimal richedit"
dnl this is needed to be able to find AFM files
CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
AC_SUBST(LIBS)
AC_SUBST(LD_LIBS)
+dnl additional resurces settings
+AC_SUBST(RCINPUTSWITCH)
+AC_SUBST(RCOUTPUTSWITCH)
+AC_SUBST(RESPROGRAM)
+AC_SUBST(RESCOMP)
+AC_SUBST(RESFLAGS)
+
+dnl These seam to be missing
+AC_SUBST(DLLTOOL)
+AC_SUBST(AS)
+AC_SUBST(NM)
+AC_SUBST(LD)
+AC_SUBST(MAKEINFO)
+
+
dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am
dnl - and we do use it)
dnl some more GUI only things
if test "$wxUSE_GUI" = "yes"; then
- dnl we need to pass SAMPLES_SUBDIRS to the configure in
+ dnl we need to pass SAMPLES_SUBDIRS (and some other) to the configure in
dnl samples and the only way to do it is, again, use the cache
wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS
- AC_CONFIG_SUBDIRS(demos samples utils)
+ wx_cv_path_ifs=$PATH_IFS
+ wx_cv_program_ext=$PROGRAM_EXT
+ wx_cv_target_library=$WX_TARGET_LIBRARY
+ AC_CONFIG_SUBDIRS(demos samples utils contrib)
fi
dnl from wxUSE_GUI