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,
DEFAULT_wxUSE_LIBJPEG=no
DEFAULT_wxUSE_LIBTIFF=no
DEFAULT_wxUSE_ODBC=no
+ DEFAULT_wxUSE_OPENGL=no
DEFAULT_wxUSE_STD_IOSTREAM=no
DEFAULT_wxUSE_FILE=no
DEFAULT_wxUSE_LIBJPEG=yes
DEFAULT_wxUSE_LIBTIFF=yes
DEFAULT_wxUSE_ODBC=no
+ DEFAULT_wxUSE_OPENGL=no
DEFAULT_wxUSE_STD_IOSTREAM=no
DEFAULT_wxUSE_FILE=yes
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_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_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF)
WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
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_LIBRARY="wx_${TOOLKIT_DIR}"
dnl the sources, their dependenices and the headers
- ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS)"
+ ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(OGLOBJS)"
dnl ODBC objects are Unix only
if test "$TOOLKIT" != "MSW"; then
if test "$wxUSE_ZLIB" = "yes" ; then
ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
fi
- ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)"
+ ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS) \$(OGLDEPS)"
PORT_FILES="src/\$(TOOLKITDIR)/files.lst"
RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
dnl the name of the (libtool) library
WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
+WX_LIBRARY_NAME_GL="lib${WX_LIBRARY}_gl.la"
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}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
+WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
dnl the name of the links to the shared library
WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}"
WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.so"
WX_LIBRARY_LINK3="lib${WX_LIBRARY}.so"
+WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}"
+WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so"
+WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.so"
dnl shared library settings
SHARED_LD=
PIC_FLAG="+Z"
fi
WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl"
- WX_ALL=${WX_LIBRARY_NAME_SHARED}
+ WX_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_DIR}_gl.sl"
+ 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
*-*-linux* )
SHARED_LD="${CC} -shared -o"
PIC_FLAG="-fPIC"
- WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
- WX_ALL="CREATE_LINKS"
if test "$wxUSE_BURNT_NAME" = "yes" ; then
BURNT_LIBRARY_NAME="-Wl,-soname,${WX_LIBRARY_LINK1}"
+ BURNT_LIBRARY_NAME_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}"
+ fi
+ 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* )
else
SHARED_LD="${CXX} -shared -o"
fi
- WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
- WX_ALL="CREATE_LINKS"
+ 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"
+ 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"
*-*-cygwin32* )
dnl only static for now
WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+ WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
WX_ALL="${WX_LIBRARY_NAME_STATIC}"
;;
*-*-mingw32* )
dnl only static for now
WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+ WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
WX_ALL="${WX_LIBRARY_NAME_STATIC}"
;;
*-pc-os2_emx )
dnl set target to shared if not explicitly chose static before
if test "x$WX_TARGET_LIBRARY" = "x"; then
WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}"
+ WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_SHARED_GL}"
fi
else
dnl set target to static
WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+ WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
WX_ALL="${WX_LIBRARY_NAME_STATIC}"
fi
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-png=yes to use 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-jpeg=yes to use built-in one)
+ fi
+ fi
fi
TIFF_INCLUDE=
if test "$wxUSE_OPENGL" = "yes"; then
AC_CHECK_HEADER(GL/gl.h, [
- AC_CHECK_LIB(GL, glInitNames, [
+ AC_DEFINE(wxUSE_OPENGL)
+ AC_DEFINE(wxUSE_GLCANVAS)
+ AC_CHECK_LIB(GL, glFlush, [
OPENGL_LINK="-lGL"
- AC_DEFINE(wxUSE_OPENGL)
- UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src"
],[
- AC_CHECK_LIB(MesaGL, glInitNames, [
+ AC_CHECK_LIB(MesaGL, glFlush, [
OPENGL_LINK="-lMesaGL"
- AC_DEFINE(wxUSE_OPENGL)
- UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src"
- ],wxUSE_OPENGL=0)
- ],wxUSE_OPENGL=0)
+ ],)
+ ],)
],wxUSE_OPENGL=0)
fi
dnl Output the makefiles and such from the results found above
dnl ---------------------------------------------------------------------------
-GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK"
+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"
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 drawing dynamic \
- font fractal image minimal richedit"
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag drawing dynamic \
+ font fractal image menu minimal richedit"
dnl this is needed to be able to find AFM files
CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
AC_SUBST(WX_LIBRARY_LINK3)
AC_SUBST(PROGRAM_EXT)
+dnl global gl options
+AC_SUBST(WX_LIBRARY_NAME_GL)
+AC_SUBST(WX_LIBRARY_NAME_STATIC_GL)
+AC_SUBST(WX_LIBRARY_NAME_SHARED_GL)
+AC_SUBST(WX_LIBRARY_GL)
+AC_SUBST(WX_TARGET_LIBRARY_GL)
+AC_SUBST(WX_LIBRARY_LINK1_GL)
+AC_SUBST(WX_LIBRARY_LINK2_GL)
+AC_SUBST(WX_LIBRARY_LINK3_GL)
+
dnl are we supposed to create the links?
AC_SUBST(WX_ALL)
AC_SUBST(WX_ALL_INSTALLED)
AC_SUBST(DEP_INFO_FLAGS)
AC_SUBST(CODE_GEN_FLAGS)
AC_SUBST(BURNT_LIBRARY_NAME)
+AC_SUBST(BURNT_LIBRARY_NAME_GL)
dnl debugging options
AC_SUBST(WXDEBUG_DEFINE)
dnl some more GUI only things
if test "$wxUSE_GUI" = "yes"; then
- AC_CACHE_CHECK([glcanvas subdirectory to use], wx_cv_path_glcanvas,
- [
- dnl Duh! glcanvas/$(TOOLKIT_DIR) doesn't work for msw because some
- dnl genius called it "win"
- if test "${TOOLKIT_DIR}" = "msw" ; then
- wx_cv_path_glcanvas="win"
- else
- wx_cv_path_glcanvas="${TOOLKIT_DIR}"
- fi
- ])
-
- dnl It's needed in glcanvas/Makefile.in so we even have to subst this hack!
- GL_TOOLKIT_DIR=$wx_cv_path_glcanvas
- AC_SUBST(GL_TOOLKIT_DIR)
-
- dnl another hack: we need to pass SAMPLES_SUBDIRS to the configure in
+ dnl we need to pass SAMPLES_SUBDIRS 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)