dnl Process this file with autoconf to produce a configure script. ############### # Sanity checks ############### # require autoconf 2.54 AC_PREREQ(2.54) AC_INIT(app/core/gimp.c) ############ # Versioning ############ GLIB_REQUIRED_VERSION=2.2.0 GTK_REQUIRED_VERSION=$GLIB_REQUIRED_VERSION PANGOFT2_REQUIRED_VERSION=1.2.0 GTKDOC_REQUIRED_VERSION=1.0 GTKHTML2_REQUIRED_VERSION=1.99.5 GIMPPRINT_REQUIRED_VERSION=4.2.0 GIMPPRINT_TOONEW_VERSION=4.3.0 # # Making releases: # GIMP_MICRO_VERSION += 1; # GIMP_INTERFACE_AGE += 1; # GIMP_BINARY_AGE += 1; # if any functions have been added, set GIMP_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set GIMP_BINARY_AGE and GIMP_INTERFACE_AGE to 0. # GIMP_MAJOR_VERSION=1 GIMP_MINOR_VERSION=3 GIMP_MICRO_VERSION=19 GIMP_INTERFACE_AGE=0 GIMP_BINARY_AGE=0 GIMP_VERSION=$GIMP_MAJOR_VERSION.$GIMP_MINOR_VERSION.$GIMP_MICRO_VERSION AC_SUBST(GIMP_MAJOR_VERSION) AC_SUBST(GIMP_MINOR_VERSION) AC_SUBST(GIMP_MICRO_VERSION) AC_SUBST(GIMP_VERSION) dnl libtool versioning LT_RELEASE=$GIMP_MAJOR_VERSION.$GIMP_MINOR_VERSION LT_CURRENT=`expr $GIMP_MICRO_VERSION - $GIMP_INTERFACE_AGE` LT_REVISION=$GIMP_INTERFACE_AGE LT_AGE=`expr $GIMP_BINARY_AGE - $GIMP_INTERFACE_AGE` LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` AC_SUBST(LT_RELEASE) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) AC_SUBST(LT_CURRENT_MINUS_AGE) ##################### # Initialize automake ##################### VERSION=$GIMP_VERSION PACKAGE=gimp AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) dnl Specify a configuration file AM_CONFIG_HEADER(config.h) dnl Initialize maintainer mode AM_MAINTAINER_MODE # Honor aclocal flags ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" #################### # Initialize libtool #################### dnl Initialize libtool AC_PROG_CC AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL ########################### # Check target architecture ########################### AC_MSG_CHECKING([for target architecture]) case x"$target" in xNONE | x) target_or_host="$host" ;; *) target_or_host="$target" ;; esac AC_MSG_RESULT([$target_or_host]) case "$target_or_host" in i*86-*-*) have_x86=yes AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.]) ;; ppc-*-linux* | powerpc-*) have_ppc=yes AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.]) ;; *) ;; esac ################# # Check for Win32 ################# AC_MSG_CHECKING([for some Win32 platform]) case "$target_or_host" in *-*-mingw* | *-*-cygwin*) platform_win32=yes ;; *) platform_win32=no ;; esac AC_MSG_RESULT([$platform_win32]) AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") AC_MSG_CHECKING([for native Win32]) case "$target_or_host" in *-*-mingw*) os_win32=yes PATHSEP=';' ;; *) os_win32=no PATHSEP=':' ;; esac AC_MSG_RESULT([$os_win32]) AC_SUBST(PATHSEP) AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") if test "$os_win32" = "yes"; then AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) ############### # Generic stuff ############### dnl Checks for programs. AC_ISC_POSIX AM_PROG_CC_STDC AM_PROG_AS AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_CPP dnl Large file support for the swap file AC_SYS_LARGEFILE AC_MSG_CHECKING([whether to turn on debugging]) AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging (default=no)], if eval "test x$enable_debug = xyes"; then DEBUGFLAG="-g" fi) if test -n "$DEBUGFLAG"; then AC_MSG_RESULT([yes]) CFLAGS="$DEBUGFLAG $CFLAGS" else AC_MSG_RESULT([no]) fi AC_MSG_CHECKING([whether to turn on profiling]) AC_ARG_ENABLE(profile, [ --enable-profile turn on profiling (default=no)], if eval "test x$enable_profile = xyes"; then PROFFLAG="-pg" fi) if test -n "$PROFFLAG"; then AC_MSG_RESULT([yes]) CFLAGS="$PROFFLAG $CFLAGS" else AC_MSG_RESULT([no]) fi AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi (default=no)],, enable_ansi=no) if eval "test x$GCC = xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac if test "x$enable_ansi" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) CFLAGS="$CFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) CFLAGS="$CFLAGS -pedantic" ;; esac fi fi # Ensure MSVC-compatible struct packing convention is used when # compiling for Win32 with gcc. # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while # gcc2 uses "-fnative-struct". if test x"$os_win32" = xyes; then if test x"$GCC" = xyes; then msnative_struct='' AC_MSG_CHECKING([how to get MSVC-compatible struct packing]) if test -z "$ac_cv_prog_CC"; then our_gcc="$CC" else our_gcc="$ac_cv_prog_CC" fi case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in 2.) if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then msnative_struct='-fnative-struct' fi ;; *) if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then msnative_struct='-mms-bitfields' fi ;; esac if test x"$msnative_struct" = x ; then AC_MSG_RESULT([no way]) AC_MSG_WARN([build will be incompatible with GTK+ DLLs]) else CFLAGS="$CFLAGS $msnative_struct" AC_MSG_RESULT([${msnative_struct}]) fi fi fi AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS(sys/param.h sys/time.h sys/times.h sys/wait.h unistd.h) AC_TYPE_PID_T AC_TYPE_SIGNAL AC_FUNC_VPRINTF AC_FUNC_ALLOCA dnl check some more funcs AC_CHECK_FUNCS(difftime putenv mmap) ###################### # Internationalisation ###################### GETTEXT_PACKAGE=gimp20 AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The prefix for our gettext translation domains.]) ALL_LINGUAS="ca cs da de el en_GB es fi fr ga gl he hu hr id it ja ko nl no pl pt pt_BR ro ru sk sv tr uk vi yi zh_CN zh_TW" AC_PROG_INTLTOOL AM_GLIB_GNU_GETTEXT ############################### # Checks for required libraries ############################### AM_PATH_GLIB_2_0($GLIB_REQUIRED_VERSION,, AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.), gobject) PKG_CHECK_MODULES(GMODULE, gmodule-2.0) AC_SUBST(GMODULE_CFLAGS) AC_SUBST(GMODULE_LIBS) dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in. gimp_save_LIBS=$LIBS LIBS="$LIBS $GLIB_LIBS" AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS=$gimp_save_LIBS AC_PATH_XTRA dnl Additional test for GTK+ 2.2.2. We want to avoid bug reports dnl related to XInput support (known to be broken in 2.2.1) but we do dnl not want to make the upgrade mandatory yet. The extra test can dnl be removed once GTK+ 2.2.2 or later becomes mandatory (this is dnl planned for the next stable release). AM_PATH_GTK_2_0(2.2.2,gimp_broken_gtk=no,gimp_broken_gtk=yes) if test x$gimp_broken_gtk = xyes; then AM_PATH_GTK_2_0($GTK_REQUIRED_VERSION, AC_MSG_WARN([Please upgrade your GTK+ installation! *** The GTK+ version you are using is too old. *** Please upgrade to GTK+ version 2.2.2 or better *** or your extended input devices (tablets) will not *** work at all!]), AC_MSG_ERROR(Test for GTK failed. See the file 'INSTALL' for help.)) fi AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no) if test x$GDK_PIXBUF_CSOURCE = xno; then AC_MSG_ERROR(Could not find gdk-pixbuf-csource in your PATH) fi PKG_CHECK_MODULES(LIBART, libart-2.0) AC_SUBST(LIBART_CFLAGS) AC_SUBST(LIBART_LIBS) PKG_CHECK_MODULES(PANGOFT2, pangoft2 >= $PANGOFT2_REQUIRED_VERSION,, AC_MSG_ERROR([Test for PangoFT2 failed. *** We require Pango with the optional support for FreeType2 compiled in. *** See the file 'INSTALL' for more help.])) AC_SUBST(PANGOFT2_CFLAGS) AC_SUBST(PANGOFT2_LIBS) PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 1.0.1, have_fontconfig=true, :) AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) if test "x$FREETYPE_CONFIG" != "xno" ; then AC_MSG_CHECKING(FREETYPE_LIBS) FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` AC_MSG_RESULT($FREETYPE_LIBS) fi AC_SUBST(FREETYPE_LIBS) ########################################## # Check for some special functions we need ########################################## AC_CHECK_HEADERS(math.h ieeefp.h) dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R) AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) gimp_save_LIBS=$LIBS LIBS="$LIBS -lm" AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], AC_MSG_RESULT(none needed), gimp_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -std1" AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], AC_MSG_RESULT(-std1), AC_MSG_RESULT() CFLAGS=$gimp_save_CFLAGS AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)]), AC_MSG_RESULT), AC_MSG_RESULT()) dnl Check for finite or isfinite AC_CHECK_FUNCS(finite, , [ AC_MSG_CHECKING(for finite in ) AC_TRY_LINK([#include ], [double f = 0.0; finite (f)], [ AC_DEFINE(HAVE_FINITE, 1) AC_MSG_RESULT(yes)], [ AC_MSG_RESULT(no) AC_MSG_CHECKING(for isfinite in ) AC_TRY_LINK([#include ], [float f = 0.0; isfinite(f)], [ AC_DEFINE(HAVE_ISFINITE, 1, [Define to 1 if you have the isfinite function.]) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) AC_SUBST(HAVE_FINITE) AC_SUBST(HAVE_ISFINITE) LIBS=$gimp_save_LIBS dnl NeXTStep cc seems to need this AC_MSG_CHECKING([for extra flags for POSIX compliance]) AC_TRY_COMPILE([#include ], [DIR *dir;], AC_MSG_RESULT(none needed), gimp_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -posix" AC_TRY_COMPILE([#include ], [DIR *dir;], AC_MSG_RESULT(-posix), AC_MSG_RESULT() CFLAGS=$gimp_save_CFLAGS AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)]))) dnl check for rint AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT, 1, [Define to 1 if you have the rint function.]), [ AC_CHECK_LIB(m, rint, [ AC_DEFINE(HAVE_RINT)])]) ###################################################### # Check for extra libs needed for inet_ntoa and socket ###################################################### gimp_save_LIBS=$LIBS LIBS="" AC_CHECK_FUNCS(inet_ntoa, , AC_CHECK_LIB(nsl, inet_ntoa)) AC_CHECK_LIB(socket, socket) SOCKET_LIBS="$LIBS" LIBS=$gimp_save_LIBS AC_SUBST(SOCKET_LIBS) ######################## # Check for MMX assembly ######################## AC_ARG_ENABLE(mmx, [ --enable-mmx enable MMX support (default=auto)],, enable_mmx=$have_x86) AC_ARG_ENABLE(sse, [ --enable-sse enable SSE support (default=auto)],, enable_sse=$enable_mmx) if test "x$enable_mmx" = xyes; then AC_MSG_CHECKING(whether we can compile MMX code) AC_COMPILE_IFELSE([asm ("movq 0, %mm0");], AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.]) AC_MSG_RESULT(yes) if test "x$enable_sse" = xyes; then AC_MSG_CHECKING(whether we can compile SSE code) AC_COMPILE_IFELSE([asm ("movntps %xmm0, 0");], AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.]) AC_MSG_RESULT(yes) , enable_sse=no AC_MSG_RESULT(no) AC_MSG_WARN([The assembler does not support the SSE command set.]) ) fi , enable_mmx=no AC_MSG_RESULT(no) AC_MSG_WARN([The assembler does not support the MMX command set.]) ) fi ############################ # Check for Altivec assembly ############################ AC_ARG_ENABLE(altivec, [ --enable-altivec enable Altivec support (default=auto)],, enable_altivec=$have_ppc) if test "x$enable_altivec" = xyes; then AC_MSG_CHECKING(whether we can compile Altivec code) AC_COMPILE_IFELSE([asm ("vand %v0, %v0, %v0");], AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if Altivec assembly is available.]) AC_MSG_RESULT(yes) , enable_altivec=no AC_MSG_RESULT(no) AC_MSG_WARN([The assembler does not support the Altivec command set.]) ) fi ################################### # Checks for shared memory handling ################################### dnl MacOS X has broken SysV shm case "$host_os" in darwin* | rhapsody* | machten*) # We can put something else here when something that works is implemented shmdefault=none ;; *) shmdefault=sysv ;; esac shmtype=auto AC_ARG_WITH(shm, [ --with-shm=none|sysv|auto shared memory transport type (default=auto)], shmtype=$with_shm) case $shmtype in none|sysv) ;; auto) shmtype=$shmdefault ;; *) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, or auto.]);; esac if test "x$shmtype" = "xsysv"; then AC_CHECK_HEADER(sys/ipc.h, [AC_DEFINE(HAVE_IPC_H, 1, [Define to 1 if you have the heacder file.])], no_sys_ipc=yes) AC_CHECK_HEADER(sys/shm.h, [AC_DEFINE(HAVE_SHM_H, 1, [Define to 1 if you have the header file.])], no_sys_shm=yes) if test "$ac_cv_header_sys_shm_h" = "yes"; then AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches) AC_TRY_RUN([ #include #include #include int main() { int id; char *shmaddr; id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600); if (id == -1) exit (2); shmaddr = shmat (id, 0, 0); shmctl (id, IPC_RMID, 0); if ((char*) shmat (id, 0, 0) == (char*) -1) { shmdt (shmaddr); exit (1); } shmdt (shmaddr); shmdt (shmaddr); exit (0); } ], AC_DEFINE(IPC_RMID_DEFERRED_RELEASE, 1, [Define to 1 if shared memory segments are released deferred.]) AC_MSG_RESULT(yes), AC_MSG_RESULT(no), AC_MSG_RESULT(assuming no)) fi fi ################################## # Check for regex support in glibc ################################## AC_MSG_CHECKING(checking for regex in glibc) AC_TRY_RUN([ #include #include #include int main() { #if __GLIBC__ >= 2 return (0); #else return (1); #endif }], AC_DEFINE(HAVE_GLIBC_REGEX, 1, [Define to 1 if glibc has regex support.]) have_glibc_regex=yes AC_MSG_RESULT(yes), AC_MSG_RESULT(no), AC_MSG_RESULT(assuming no)) AM_CONDITIONAL(HAVE_GLIBC_REGEX, test x$have_glibc_regex = xyes) AC_SUBST(HAVE_GLIBC_REGEX) ############################ # Check for select and fdset ############################ AC_MSG_CHECKING([fd_set and sys/select]) AC_TRY_COMPILE([#include ], [fd_set readMask, writeMask;], gimp_ok=yes, gimp_ok=no) if test $gimp_ok = no; then AC_EGREP_HEADER(fd_mask, sys/select.h, gimp_ok=yes) if test $gimp_ok = yes; then AC_DEFINE(HAVE_SYS_SELECT_H, 1, [Define to 1 if you have the header.]) fi fi AC_MSG_RESULT($gimp_ok) if test $gimp_ok = no; then AC_DEFINE(NO_FD_SET, 1, [Define to 1 if you don't have the fd_set function.]) fi ############################# # Threads and multi processor ############################# dnl AC_ARG_ENABLE(threads, [ --enable-threads support POSIX threading (default=no)]) dnl if test "x$enable_threads" = "xyes"; then dnl AC_CHECK_LIB(pthread, pthread_attr_init, dnl [AC_DEFINE(USE_PTHREADS) dnl GIMP_THREAD_LIBS="-lpthread" dnl GIMP_THREAD_FLAGS="-D_REENTRANT"], dnl # AIX has libpthreads, cause they're special. Special friends (TM) dnl AC_CHECK_LIB(pthreads, pthread_attr_init, dnl [AC_DEFINE(USE_PTHREADS) dnl GIMP_THREAD_LIBS="-lpthreads" dnl GIMP_THREAD_FLAGS="-D_REENTRANT -D_THREAD_SAFE"])) dnl fi AC_SUBST(GIMP_THREAD_FLAGS) AC_SUBST(GIMP_THREAD_LIBS) AC_ARG_ENABLE(mp, [ --enable-mp support multiple processors (default=no)]) if test "x$enable_mp" = "xyes"; then AC_CHECK_LIB(pthread, pthread_attr_init, [AC_DEFINE(ENABLE_MP, 1, [Define to 1 to enable support for multiple processors.]) GIMP_MP_LIBS="-lpthread" GIMP_MP_FLAGS="-D_REENTRANT"], # AIX has libpthreads, cause they're special. Special friends (TM) AC_CHECK_LIB(pthreads, pthread_attr_init, [AC_DEFINE(ENABLE_MP) GIMP_MP_LIBS="-lpthreads" GIMP_MP_FLAGS="-D_REENTRANT -D_THREAD_SAFE"])) fi AC_SUBST(GIMP_MP_FLAGS) AC_SUBST(GIMP_MP_LIBS) ################################ # Some plug-ins are X11 specific ################################ dnl Check if building for GTK+-X11 gdk_target=`$PKG_CONFIG --variable=target gtk+-2.0` if test "$gdk_target" = x11; then dnl Test for Xmu if test -z "$LIBXMU"; then gimp_save_CFLAGS="$CFLAGS" gimp_save_LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS $X_CFLAGS" LDFLAGS="$LDFLAGS $X_LIBS" AC_CHECK_LIB(Xmu, XmuClientWindow, [AC_CHECK_HEADER(X11/Xmu/WinUtil.h, GIMP_REMOTE='gimp-remote-1.3'; have_libxmu=yes LIBXMU="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt", [AC_MSG_WARN(*** webbrowser plug-in and gimp-remote will not be built (XMU header file not found) ***)])], [AC_CHECK_LIB(Xmu, XmuUpdateMapHints, [AC_CHECK_HEADER(X11/Xmu/WinUtil.h, GIMP_REMOTE='gimp-remote-1.3'; have_libxmu=yes LIBXMU="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt", [AC_MSG_WARN(*** webbrowser plug-in and gimp-remote will not be built (XMU header file not found) ***)])], AC_MSG_WARN(*** webbrowser plug-in and gimp-remote will not be built (XMU library not found) ***), -lXt)], -lXt) CFLAGS="$gimp_save_CFLAGS" LDFLAGS="$gimp_save_LDFLAGS" fi fi AC_SUBST(LIBXMU) AC_SUBST(GIMP_REMOTE) ## webbrowser has ifdefs for Win32 AM_CONDITIONAL(BUILD_WEBBROWSER, test x"$have_libxmu" = xyes || test x"$os_win32" = xyes) ################### # Check for libtiff ################### AC_ARG_WITH(libtiff, [ --without-libtiff build without TIFF support]) if test x$with_libtiff != xno && test -z "$LIBTIFF"; then AC_CHECK_LIB(tiff, TIFFReadScanline, [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff', [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])], [AC_CHECK_LIB(tiff, TIFFWriteScanline, [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz', [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])], [AC_CHECK_LIB(tiff34, TIFFFlushData, [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz', [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])], [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***)], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm) fi if test x$with_libtiff != xno && test -z "$LIBTIFF"; then AC_MSG_ERROR([ *** Checks for TIFF libary failed. You can build without it by passing *** --without-libtiff to configure but you won't be able to use TIFFs then.]) fi AC_SUBST(TIFF) AC_SUBST(LIBTIFF) ################### # Check for libjpeg ################### AC_ARG_WITH(libjpeg, [ --without-libjpeg build without JPEG support]) if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, jpeg_ok=yes, [jpeg_ok=no AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG library not found) ***) AC_MSG_WARN(*** XJT plug-in will not be built (JPEG library not found) ***)]) if test "$jpeg_ok" = yes; then AC_MSG_CHECKING([for jpeglib.h]) AC_TRY_CPP([ #include #undef HAVE_STDDEF_H #undef HAVE_STDLIB_H #undef PACKAGE #undef VERSION #include ], jpeg_ok=yes, jpeg_ok=no) AC_MSG_RESULT($jpeg_ok) if test "$jpeg_ok" = yes; then JPEG='jpeg'; LIBJPEG='-ljpeg' AC_CHECK_LIB(jpeg, jpeg_simple_progression, AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1, [Define to 1 if jpeglib supports progressive JPEG.]), AC_MSG_WARN(JPEG library does not support progressive saving.)) else AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG header file not found) ***) AC_MSG_WARN(*** XJT plug-in will not be built (JPEG header file not found) ***) fi fi fi if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then AC_MSG_ERROR([ *** Checks for JPEG library failed. You can build without it by passing *** --without-libjpeg to configure but you won't be able to use JPEGs then.]) fi AC_SUBST(JPEG) AC_SUBST(LIBJPEG) ## xjt does build, but it is more confusing than useful on Win32, ## as it wants to run tar, mv and bzip2, which seldom are available AM_CONDITIONAL(BUILD_XJT, test x$jpeg_ok = xyes && test x"$os_win32" = xno) ################ # Check for libz ################ if test -z "$LIBZ"; then AC_CHECK_LIB(z, gzsetparams, [AC_CHECK_HEADER(zlib.h, PSP='psp'; LIBZ='-lz', [AC_MSG_WARN(*** PSP and PNG plug-ins will not be built (ZLIB header files not found) ***)])], [AC_MSG_WARN(*** PSP and PNG plug-ins will not be built (ZLIB library not found) ***)]) fi AC_SUBST(LIBZ) AC_SUBST(PSP) ################## # Check for libpng ################## AC_ARG_WITH(libpng, [ --without-libpng build without PNG support]) if test x$with_libpng != xno && test -z "$LIBPNG" && test -n "$LIBZ"; then AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, png_ok=yes, png_ok=no)], [AC_MSG_WARN(*** PNG plug-in will not be built (PNG library not found) ***)], -lz -lm) if test "$png_ok" = yes; then AC_MSG_CHECKING([for png_structp in png.h]) AC_TRY_COMPILE([#include ], [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;], png_ok=yes, png_ok=no) AC_MSG_RESULT($png_ok) if test "$png_ok" = yes; then PNG='png'; LIBPNG="-lpng $LIBZ" else AC_MSG_WARN(*** PNG plug-in will not be built (PNG library is too old) ***) fi else AC_MSG_WARN(*** PNG plug-in will not be built (PNG header file not found) ***) fi fi if test x$with_libpng != xno && test -z "$LIBPNG"; then AC_MSG_ERROR([ *** Checks for PNG library failed. You can build without it by passing *** --without-libpng to configure but you won't be able to use PNGs then.]) fi AC_SUBST(PNG) AC_SUBST(LIBPNG) ################## # Check for libmng ################## AC_ARG_WITH(libmng, [ --without-libmng build without MNG support]) if test x$with_libmng != xno && test -z "$LIBMNG" && test -n "$LIBPNG" && test -n "$LIBJPEG" && test -n "$LIBZ"; then AC_CHECK_LIB(mng, mng_create, [AC_CHECK_HEADER(libmng.h, mng_ok=yes)], [AC_MSG_WARN(*** MNG plug-in will not be built (MNG library not found) ***)], -lz -lm) if test "$mng_ok" = yes; then MNG='mng'; LIBMNG="-lmng $LIBJPEG $LIBPNG" else AC_MSG_WARN(*** MNG plug-in will not be built (MNG header file not found) ***) fi fi AC_SUBST(MNG) AC_SUBST(LIBMNG) ############################################################ # libexif: Library to allow exif tags to be read from, and # saved to, jpeg files. Currently, this permits exif data to # avoid destruction, but no data modification is performed. ############################################################ AC_ARG_WITH(libexif, [ --without-libexif build without EXIF support]) if test x$with_libexif != xno && test -z "$LIBEXIF" && test -n "$LIBJPEG"; then PKG_CHECK_MODULES(EXIF, libexif, AC_DEFINE(HAVE_EXIF, 1, "Define to 1 if libexif is available"), AC_MSG_WARN([libexif not found! EXIF support will not be built into the JPEG plug-in. libexif is available from http://www.sourceforge.net/projects/libexif])) fi ################# # Check for libaa ################# AC_ARG_WITH(aa, [ --without-aa do not build the AA plug-in]) if test x$with_aa != xno && test -z "$LIBAA"; then AC_CHECK_LIB(aa, aa_printf, [AC_CHECK_HEADER(aalib.h, AA='aa'; LIBAA='-laa', [AC_MSG_WARN(*** AA plug-in will not be built (AA header file not found) ***)])], [AC_MSG_WARN(*** AA plug-in will not be built (AA library not found) ***)]) fi AC_SUBST(AA) AC_SUBST(LIBAA) ################## # Check for libxpm ################## gimp_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $X_CFLAGS" gimp_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $X_LIBS" if test "$gdk_target" = x11; then lib_X11=-lX11 fi if test -z "$LIBXPM"; then AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage, [AC_CHECK_HEADER(X11/xpm.h, XPM='xpm'; LIBXPM="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm", [AC_MSG_WARN(*** XPM plug-in will not be built (XPM header file not found) ***)])], [AC_MSG_WARN(*** XPM plug-in will not be built (XPM library not found) ***)], $X_PRE_LIBS $lib_X11) fi CFLAGS="$gimp_save_CFLAGS" LDFLAGS="$gimp_save_LDFLAGS" AC_SUBST(XPM) AC_SUBST(LIBXPM) #################### # Check for gtkhtml2 #################### PKG_CHECK_MODULES(GTKHTML2, libgtkhtml-2.0 >= $GTKHTML2_REQUIRED_VERSION, have_gtkhtml2=yes, AC_MSG_WARN([*** Help browser plug-in will not be built (GtkHtml2 not found) ***])) AC_SUBST(GTKHTML2_CFLAGS) AC_SUBST(GTKHTML2_LIBS) AM_CONDITIONAL(BUILD_HELPBROWSER, test x$have_gtkhtml2 = xyes) ###################### # Check for gimp-print ###################### AC_ARG_ENABLE(print, [ --disable-print build without print support (requires libgimpprint)]) if test "x$enable_print" != "xno"; then AC_PATH_PROG(PRINT_CONFIG, gimpprint-config, no) if test "x$PRINT_CONFIG" != "xno"; then AC_MSG_CHECKING(for appropriate gimpprint library) print_version=`$PRINT_CONFIG --version` if expr $print_version \>= $GIMPPRINT_REQUIRED_VERSION >/dev/null; then if expr $print_version \< $GIMPPRINT_TOONEW_VERSION >/dev/null; then AC_MSG_RESULT([yes (version $print_version)]) have_gimp_print=yes PRINT_LIBS=`$PRINT_CONFIG --libs` PRINT_CFLAGS=`$PRINT_CONFIG --cflags` else AC_MSG_WARN([ *** libgimpprint version $print_version is too new. *** It is likely an unstable development version. *** You need a version before $GIMPPRINT_TOONEW_VERSION.]) fi else AC_MSG_WARN([ *** libgimpprint version $print_version is too old. *** You need at least version $GIMPPRINT_REQUIRED_VERSION.]) fi fi fi if test x$enable_print != xno && test x$have_gimp_print != xyes; then AC_MSG_ERROR([ *** Check for libgimpprint failed. You can download it from *** http://gimp-print.sourceforge.net/ or you can build without it by passing *** --disable-print to configure (but you won't be able to print then).]) fi AC_SUBST(PRINT_LIBS) AC_SUBST(PRINT_CFLAGS) AM_CONDITIONAL(BUILD_PRINT, test x$enable_print != xno && test x$have_gimp_print = xyes) ############################################################ # GIF compression: Allow builder to specify at compile time # which compression style she wants to use for GIFs. # LZW: Unisys patented Lempel-Ziff encoding. # RLE: Runlength encoding (produces files about twice as big # as the LZW compressed equivalent). # None: Raw data. ############################################################ AC_ARG_WITH(gif-compression, [ --with-gif-compression=lzw|rle|none GIF compression style (default=lzw)]) case x"$with_gif_compression" in xnone) AC_DEFINE(GIF_UN, 1, [Define to 1 for no GIF compression]) ;; xrle) AC_DEFINE(GIF_RLE, 1, [Define to 1 for RLE GIF compression]) ;; esac #################### # Check for sendmail #################### AC_ARG_WITH(sendmail,[ --with-sendmail=DIR set sendmail command location]) if test "x$with_sendmail" != "x"; then sendmail_path=$with_sendmail else sendmail_path=$PATH:/usr/sbin:/usr/lib fi AC_PATH_PROG(SENDMAIL, sendmail, , $sendmail_path) if test "x$SENDMAIL" != "x"; then AC_DEFINE_UNQUOTED(SENDMAIL, "$SENDMAIL", [The MTA used by the mail plug-in.]) fi ################ # Check for perl ################ AC_ARG_WITH(pdbgen, [ --with-pdbgen use 'pdbgen' code generation tool],, with_pdbgen=$enable_maintainer_mode) if test "x$with_pdbgen" = xyes ; then AC_PATH_PROGS(PERL,perl5 perl perl5.005 perl5.004,perl) fi AM_CONDITIONAL(WITH_PDBGEN, test x$with_pdbgen = xyes) AM_CONDITIONAL(WITH_AUTHORSGEN, test x$enable_maintainer_mode = xyes) ################## # Check for python ################## dnl Pygimp configure stuff ... AC_ARG_ENABLE(python, AC_HELP_STRING([--enable-python], [build python extension (by default disabled)]),, [enable_python=no]) if test "x$enable_python" != xno; then dnl check for Python AM_PATH_PYTHON(2.2) AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) dnl check for PyGTK PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= 1.99.12) AC_SUBST(PYGTK_CFLAGS) fi AM_CONDITIONAL(BUILD_PYTHON, test "x$enable_python" != xno) ########################################################### # Some plug-ins don't build on Win32, others are Win32-only ########################################################### if test x"$os_win32" = xyes; then WINCLIPBOARD='winclipboard' WINPRINT='winprint' else BZ2='bz2' MAIL='mail' SCREENSHOT='screenshot' URL='url' fi AC_SUBST(BZ2) AC_SUBST(MAIL) AC_SUBST(SCREENSHOT) AC_SUBST(URL) AC_SUBST(WINCLIPBOARD) AC_SUBST(WINPRINT) ########################################################## # Determine where to install the desktop & mime info files ########################################################## AC_ARG_WITH(desktop-dir, [ --with-desktop-dir=PATH where to install desktop files (default=PREFIX/share)]) if test "x$with_desktop_dir" != x; then DESKTOP_DATADIR=$with_desktop_dir else DESKTOP_DATADIR="$datadir" fi AM_CONDITIONAL(DESKTOP_DATADIR, test "x$with_desktop_dir" != xno) AC_SUBST(DESKTOP_DATADIR) ###################################### # Checks for gtk-doc and docbook-tools ###################################### AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) if test "x$with_html_dir" = "x" ; then HTML_DIR='${datadir}/gtk-doc/html' else HTML_DIR=$with_html_dir fi AC_SUBST(HTML_DIR) AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false) if $GTKDOC ; then gtk_doc_version=`gtkdoc-mkdb --version` AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $GTKDOC_REQUIRED_VERSION]) IFS="${IFS= }"; gimp_save_IFS="$IFS"; IFS="." set $gtk_doc_version for min in $gtk_doc_min_version ; do cur=$1; shift if test -z $min ; then break; fi if test -z $cur ; then GTKDOC=false; break; fi if test $cur -gt $min ; then break ; fi if test $cur -lt $min ; then GTKDOC=false; break ; fi done IFS="$gimp_save_IFS" if $GTKDOC ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) GTKDOC=false fi fi dnl Make people enable the gtk-doc stuff explicitely. AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc use gtk-doc to build documentation (default=no)], enable_gtk_doc="$enableval", enable_gtk_doc=auto) if test x$enable_gtk_doc = xyes ; then if test x$GTKDOC != xtrue ; then enable_gtk_doc=no fi fi dnl NOTE: We need to use a separate automake conditional for this dnl to make this work with the tarballs. AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) ######################################### # Allow to configure the gimp environment ######################################### AC_ARG_ENABLE(default-binary, [ --enable-default-binary install this as the default gimp binary (default=no)], , enable_default_binary=no) AM_CONDITIONAL(DEFAULT_BINARY, test x$enable_default_binary = xyes) dnl Possibly change default gimpdir from .gimp-major.minor gimpdir=.$PACKAGE-$GIMP_MAJOR_VERSION.$GIMP_MINOR_VERSION AC_ARG_ENABLE(gimpdir, [ --enable-gimpdir=DIR change default gimpdir from .gimp-1.3 to DIR], if eval "test x$enable_gimpdir != x"; then if eval "test x$enable_gimpdir != xyes"; then gimpdir=$enable_gimpdir fi fi) gimpdatadir=$datadir/$PACKAGE/$GIMP_MAJOR_VERSION.$GIMP_MINOR_VERSION gimpplugindir=$libdir/$PACKAGE/$GIMP_MAJOR_VERSION.$GIMP_MINOR_VERSION gimpsysconfdir=$sysconfdir/$PACKAGE/$GIMP_MAJOR_VERSION.$GIMP_MINOR_VERSION localedir='${prefix}/${DATADIRNAME}/locale' AC_SUBST(gimpdir) AC_SUBST(gimpdatadir) AC_SUBST(gimpplugindir) AC_SUBST(gimpsysconfdir) AC_SUBST(localedir) ############################ # Some defines for the build ############################ GIMPINSTALL= if test "$INSTALL" = "$ac_install_sh"; then GIMPINSTALL="gimpinstall-1.3" fi AC_SUBST(GIMPINSTALL) AM_CONDITIONAL(STATICLIBS, test x$enable_static = xyes) dnl a tuned version of glib-mkenums GIMP_MKENUMS="\$(top_srcdir)/tools/gimp-mkenums" AC_SUBST(GIMP_MKENUMS) ########################################## # Default to disable deprecated GTK+ stuff ########################################## CPPFLAGS="${CPPFLAGS} -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" ################## # configure output ################## dnl easy way to skip the plug-in build GIMP_PLUGINS=plug-ins GIMP_MODULES=modules AC_SUBST(GIMP_PLUGINS) AC_SUBST(GIMP_MODULES) AC_CONFIG_COMMANDS([libgimp/gimpversion.h], [ outfile=gimpversion.h-tmp cat > $outfile <<\_______EOF /* gimpversion.h * * This is a generated file. Please modify 'configure.in' */ #ifndef __GIMP_VERSION_H__ #define __GIMP_VERSION_H__ G_BEGIN_DECLS _______EOF cat >>$outfile <<_______EOF #define GIMP_MAJOR_VERSION ($gimp_major_ver) #define GIMP_MINOR_VERSION ($gimp_minor_ver) #define GIMP_MICRO_VERSION ($gimp_micro_ver) #define GIMP_VERSION "$gimp_ver" _______EOF cat >>$outfile <<\_______EOF #define GIMP_CHECK_VERSION(major, minor, micro) \ (GIMP_MAJOR_VERSION > (major) || \ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \ GIMP_MICRO_VERSION >= (micro))) G_END_DECLS #endif /* __GIMP_VERSION_H__ */ _______EOF if cmp -s $outfile libgimpbase/gimpversion.h; then AC_MSG_NOTICE([libgimpbase/gimpversion.h is unchanged]) rm -f $outfile else mv $outfile libgimpbase/gimpversion.h fi ],[ gimp_major_ver="$GIMP_MAJOR_VERSION" gimp_minor_ver="$GIMP_MINOR_VERSION" gimp_micro_ver="$GIMP_MICRO_VERSION" gimp_ver="$GIMP_VERSION" ]) AC_CONFIG_FILES([ gimptool-win32.c tools/Makefile tools/authorsgen/Makefile tools/pdbgen/Makefile regexrepl/Makefile libgimp/Makefile libgimpbase/Makefile libgimpcolor/Makefile libgimpmath/Makefile libgimpmodule/Makefile libgimpwidgets/Makefile app/Makefile app/base/Makefile app/config/Makefile app/core/Makefile app/display/Makefile app/file/Makefile app/gui/Makefile app/paint/Makefile app/paint-funcs/Makefile app/composite/Makefile app/pdb/Makefile app/plug-in/Makefile app/text/Makefile app/tools/Makefile app/vectors/Makefile app/widgets/Makefile app/xcf/Makefile plug-ins/Makefile plug-ins/libgck/Makefile plug-ins/libgck/gck/Makefile plug-ins/dbbrowser/Makefile plug-ins/script-fu/Makefile plug-ins/script-fu/scripts/Makefile plug-ins/webbrowser/Makefile plug-ins/xjt/Makefile plug-ins/FractalExplorer/Makefile plug-ins/FractalExplorer/fractalexplorer-examples/Makefile plug-ins/Lighting/Makefile plug-ins/MapObject/Makefile plug-ins/bmp/Makefile plug-ins/common/Makefile plug-ins/faxg3/Makefile plug-ins/fits/Makefile plug-ins/flame/Makefile plug-ins/fp/Makefile plug-ins/gfig/Makefile plug-ins/gfig/gfig-examples/Makefile plug-ins/gfig/images/Makefile plug-ins/gflare/Makefile plug-ins/gflare/gflares/Makefile plug-ins/gfli/Makefile plug-ins/gimpressionist/Makefile plug-ins/gimpressionist/Brushes/Makefile plug-ins/gimpressionist/Paper/Makefile plug-ins/gimpressionist/Presets/Makefile plug-ins/helpbrowser/Makefile plug-ins/ifscompose/Makefile plug-ins/imagemap/Makefile plug-ins/maze/Makefile plug-ins/mosaic/Makefile plug-ins/pagecurl/Makefile plug-ins/print/Makefile plug-ins/pygimp/Makefile plug-ins/pygimp/doc/Makefile plug-ins/pygimp/plug-ins/Makefile plug-ins/rcm/Makefile plug-ins/sel2path/Makefile plug-ins/sgi/Makefile plug-ins/twain/Makefile plug-ins/winsnap/Makefile modules/Makefile devel-docs/Makefile devel-docs/app/Makefile devel-docs/app/version.xml devel-docs/libgimp/Makefile devel-docs/libgimp/version.xml devel-docs/libgimpbase/Makefile devel-docs/libgimpbase/version.xml devel-docs/libgimpcolor/Makefile devel-docs/libgimpcolor/version.xml devel-docs/libgimpmath/Makefile devel-docs/libgimpmath/version.xml devel-docs/libgimpmodule/Makefile devel-docs/libgimpmodule/version.xml devel-docs/libgimpwidgets/Makefile devel-docs/libgimpwidgets/version.xml docs/Makefile docs/gimp-1.3.1 docs/gimprc-1.3.5 docs/gimptool-1.3.1 docs/gimp-remote-1.3.1 tips/Makefile cursors/Makefile themes/Makefile themes/Default/Makefile themes/Default/images/Makefile themes/Default/images/preferences/Makefile data/Makefile data/environ/Makefile data/misc/Makefile data/misc/gimp.desktop.in data/images/Makefile data/brushes/Makefile data/gradients/Makefile data/palettes/Makefile data/patterns/Makefile etc/Makefile m4macros/Makefile po/Makefile.in po-libgimp/Makefile.in po-plug-ins/Makefile.in po-script-fu/Makefile.in gimptool-1.3 gimp-1.3.pc gimpui-1.3.pc gimp.spec Makefile ]) AC_CONFIG_COMMANDS([chmod-scripts], [chmod +x gimptool-1.3]) AC_CONFIG_COMMANDS([sed-po-makefiles], [sed -e "/POTFILES =/r po-libgimp/POTFILES" po-libgimp/Makefile.in > po-libgimp/Makefile sed -e "/POTFILES =/r po-plug-ins/POTFILES" po-plug-ins/Makefile.in > po-plug-ins/Makefile sed -e "/POTFILES =/r po-script-fu/POTFILES" po-script-fu/Makefile.in > po-script-fu/Makefile]) AC_OUTPUT