dnl Process this file with autoconf to produce a configure script. dnl automake complains about $OUTPUTS. I have patched automake... dnl dnl (C)Copyright 1999, 2000 by Hiroshi Takekawa dnl Last Modified: Sun Jan 28 20:54:18 2001. dnl $Id: configure.in,v 1.76 2001/01/28 12:02:34 sian Exp $ AC_INIT(enfle.c) dnl use config.h AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(enfle, 20010130) AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL dnl Checks for programs. AC_PROG_CC AC_PROG_CXX AC_PROG_CPP AC_PROG_AWK AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PROG_LN_S dnl AC_PROG_RANLIB dnl some has stupid include files... GIVENCFLAGS="-Wall -Wno-implicit-int -pipe $CFLAGS" dnl Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(sys/time.h unistd.h) LDFLAGS="$LDFLAGS -L/usr/local/lib" CPPFLAGS="$CPPFLAGS -I/usr/local/include" dnl Checks for X libraries. AC_PATH_X INCLUDES="$INCLUDES -I$x_includes" CPPFLAGS="$CPPFLAGS -I$x_includes" LDFLAGS="$LDFLAGS -L$x_libraries" AC_CHECK_LIB(X11, XOpenDisplay) available_dlopen=no AC_CHECK_LIB(dl, dlopen, [ available_dlopen=yes; LIBS="-ldl $LIBS" ], AC_CHECK_LIB(c, dlopen, available_dlopen=yes,,)) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_BIGENDIAN AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME dnl Checks for library functions. AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_CHECK_FUNCS(memcpy mkdir mkstemp select strdup) dnl with dmalloc AM_WITH_DMALLOC dnl debug option AC_ARG_ENABLE(debug, [ --enable-debug Build a debugging version.], [ enable_debug=$enableval ], [ enable_debug=no ]) if test "$enable_debug" = yes; then AC_DEFINE(DEBUG) OPTFLAG=${OPTFLAG-"-g"} fi dnl shape extension AC_ARG_ENABLE(shape, [ --enable-shape Enable shape extension.], [ enable_shape=$enableval ], [ enable_shape=yes ]) if test "$enable_shape" = yes; then AC_CHECK_HEADER(X11/extensions/shape.h, AC_CHECK_LIB(Xext, XShapeCombineMask, [ AC_DEFINE(SHAPE) ], [ echo "*** NO enough shape support. Shape extension DISABLED"; enable_shape=no ])) fi if test "$enable_shape" = yes; then LIBS="-lXext $LIBS" fi dnl threshold AC_ARG_ENABLE(threshold, [ --enable-threshold Specify default threshold.], [ x_threshold=$enableval; y_threshold=$enableval ], [ x_threshold=0; y_threshold=0 ]) if test "$x_threshold" = "yes"; then x_threshold=32 y_threshold=32 fi AC_DEFINE_UNQUOTED(X_THRESHOLD, $x_threshold) AC_DEFINE_UNQUOTED(Y_THRESHOLD, $y_threshold) dnl variables enfle_LIBS="" OUTPUTS="plugins/Makefile" Plugins_dirs="loader saver archiver" dnl static linked plugin related LINKED_PLUGINS="" PROTO_LINKED_PLUGINS="" dnl available plugins Plugins="" dnl compiled plugins Compiled_plugins="" Static_plugins="" loader_dirs="" saver_dirs="" archiver_dirs="" dnl installed paths related Enfle_dir="${libdir}/$PACKAGE" Plugins_dir="$Enfle_dir/plugins" Plugins_loader_dir="$Plugins_dir/loader" Plugins_saver_dir="$Plugins_dir/saver" Plugins_archiver_dir="$Plugins_dir/archiver" dnl some external libraries are needed, to be checked available_loader_jpeg=no available_loader_png=no available_loader_mng=no available_loader_ungif=no available_loader_djvu=no available_saver_jpeg=no available_saver_png=no available_archiver_gz=no available_archiver_bz2=no available_archiver_libarc=no dnl check headers and libraries AC_CHECK_HEADER(jpeglib.h, AC_CHECK_LIB(jpeg, jpeg_finish_decompress, [ available_loader_jpeg=yes; available_saver_jpeg=yes ])) AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, gzseek, [ available_archiver_gz=yes ])) AC_CHECK_HEADER(bzlib.h, AC_CHECK_LIB(bz2, bzopen, [ available_archiver_bz2=yes ], AC_CHECK_LIB(bz2, BZ2_bzopen, [ available_archiver_bz2=yes; AC_DEFINE(BZAPI_NEEDS_PREFIX) ]))) AC_CHECK_HEADER(libarc/arc.h, AC_CHECK_LIB(arc, expand_archive_names, [ available_archiver_libarc=yes ])) LIBS_TMP=$LIBS AC_CHECK_HEADER(png.h, AC_CHECK_LIB(m, pow, [ LIBS="$LIBS -lm"; AC_CHECK_LIB(z, deflate, [ LIBS="$LIBS -lz"; AC_CHECK_LIB(png, png_set_IHDR, [ available_loader_png=yes; available_saver_png=yes ]) ]) ])) LIBS=$LIBS_TMP LIBS_TMP=$LIBS AC_CHECK_HEADER(libmng.h, AC_CHECK_LIB(z, deflate, [ LIBS="$LIBS -lz"; AC_CHECK_LIB(jpeg, jpeg_finish_decompress, [ LIBS="$LIBS -ljpeg"; AC_CHECK_LIB(mng, mng_initialize, [ available_loader_mng=yes; ]) ]) ]) ) LIBS=$LIBS_TMP AC_CHECK_HEADER(gif_lib.h, AC_CHECK_LIB(ungif, DGifOpen, [ available_loader_ungif=yes; ])) DJVUDIR=/usr/src/libdjvu++-2.1 if test -f $DJVUDIR/libdjvu++.so.2; then TMP_CPPFLAGS=$CPPFLAGS CPPFLAGS="-I$DJVUDIR $CPPFLAGS" AC_CHECK_HEADER(DjVuImage.h, [ available_loader_djvu=yes; enfle_LIBS="$enfle_LIBS -rpath $DJVUDIR"; AC_SUBST(DJVUDIR) ], echo "No enough djvu support") CPPFLAGS=$TMP_CPPFLAGS fi dnl recognize available plugins echo -n "checking for available plugins... " search_topdir="$srcdir/plugins" for kind in $Plugins_dirs; do ENFLE_APPEND(OUTPUTS, plugins/$kind/Makefile) search_dir="$search_topdir/$kind" for plugin_dir in $search_dir/*; do plugin=`basename $plugin_dir` makefileam="$plugin_dir/Makefile.am" if test -d "$plugin_dir" -a -f $makefileam ; then if eval "test \"\$available_${kind}_${plugin}\" != \"no\""; then if test "${plugin}" != "ungif"; then ENFLE_APPEND(Plugins, "${kind}/${plugin}") fi eval "exists_${kind}_${plugin}=YES" ENFLE_APPEND(OUTPUTS, "plugins/$kind/$plugin/Makefile") libs=`grep '^LIBS' $makefileam | sed 's/LIBS *= *//'` eval "Libs_${kind}_${plugin}=\"$libs\"" else echo -n "-${kind}/${plugin} " fi fi done done echo "$Plugins" dnl feature selection AC_ARG_ENABLE(plugins-dir, [ --enable-plugins-dir Enable default plugin search path. ], [ if test "$enableval" = "yes"; then AC_DEFINE(PLUGIN_DEFAULT_SEARCH_PATH) else AC_DEFINE_UNQUOTED(PLUGIN_SEARCH_PATH, "$enableval") fi ]) AC_ARG_ENABLE(all-plugins, [ --enable-all-plugins Enable all plugins.], [ for p in $Plugins; do kind=`echo $p | sed 's/\/.*$//'` p=`echo $p | sed 's/^.*\///'` ENFLE_PLUGIN_ENABLE(Compiled_plugins, $p, $kind) done], [ Compiled_plugins="" ]) AC_ARG_ENABLE(all-static, [ --enable-all-static Link all plugins statically.], [ for p in $Plugins; do kind=`echo $p | sed 's/\/.*$//'` p=`echo $p | sed 's/^.*\///'` ENFLE_PLUGIN_ENABLE(Static_plugins, $p, $kind) done], [ Static_plugins=""]) ENFLE_PLUGIN_NORMAL_ENABLER(loader, [ ]) ENFLE_PLUGIN_NORMAL_ENABLER(saver, [ ]) ENFLE_PLUGIN_NORMAL_ENABLER(archiver, [ ]) ENFLE_PLUGIN_STATIC_ENABLER(loader, [ ]) ENFLE_PLUGIN_STATIC_ENABLER(saver, [ ]) ENFLE_PLUGIN_STATIC_ENABLER(archiver, []) dnl delete duplicated plugins ENFLE_REMOVE_DUP(Compiled_plugins) ENFLE_REMOVE_DUP(Static_plugins) All_plugins="$Compiled_plugins $Static_plugins" ENFLE_REMOVE_DUP(All_plugins) test "$All_plugins" = "" && echo "*** No plugin is specified" Plugins_dirs="" test 0$count_loader -gt 0 && ENFLE_APPEND(Plugins_dirs, loader) test 0$count_saver -gt 0 && ENFLE_APPEND(Plugins_dirs, saver) test 0$count_archiver -gt 0 && ENFLE_APPEND(Plugins_dirs, archiver) dnl plugin enabler for plugin in $All_plugins; do kind=`echo $plugin | sed 's/\/.*$//'` plugin=`echo $plugin | sed 's/^.*\///'` eval "exists=\$exists_${kind}_${plugin}" if test "$exists" = "YES"; then eval "${kind}_dirs=\"\$${kind}_dirs $plugin\"" echo "Enabled: $kind: $plugin" else echo "*** $plugin not exists" fi done for plugin in $Static_plugins; do kind=`echo $plugin | sed 's/\/.*$//'` plugin=`echo $plugin | sed 's/^.*\///'` eval "exists=\$exists_${kind}_${plugin}" if test "$exists" = "YES"; then enfle_LIBS="$enfle_LIBS plugins/$kind/$plugin/.libs/${kind}_${plugin}.a" LINKED_PLUGINS="$LINKED_PLUGINS _REGISTER_LINKED_PLUGIN(${kind}_${plugin}_get_plugininfo);" PROTO_LINKED_PLUGINS="$PROTO_LINKED_PLUGINS int ${kind}_${plugin}_get_plugininfo(PluginInfo *);" echo -n "Static: $kind: $plugin" eval "libs=\$Libs_${kind}_${plugin}" if test ! -z "$libs" ; then echo -n " requires $libs" enfle_LIBS="$enfle_LIBS $libs" fi echo else echo "*** $plugin not exists" fi done CFLAGS=$GIVENCFLAGS AC_DEFINE_UNQUOTED(LINKED_PLUGINS, $LINKED_PLUGINS) AC_DEFINE_UNQUOTED(PROTO_LINKED_PLUGINS, $PROTO_LINKED_PLUGINS) echo "Plugins_dirs = $Plugins_dirs" echo "loader_dirs = $loader_dirs" echo "saver_dirs = $saver_dirs" echo "archiver_dirs = $archiver_dirs" INCLUDES="-I. -I\$(top_srcdir) $INCLUDES" AC_SUBST(INCLUDES) AC_SUBST(OPTFLAG) AC_SUBST(enfle_LIBS) AC_SUBST(Plugins_dirs) AC_SUBST(loader_dirs) AC_SUBST(saver_dirs) AC_SUBST(archiver_dirs) AC_SUBST(Enfle_dir) AC_SUBST(Plugins_dir) AC_SUBST(Plugins_loader_dir) AC_SUBST(Plugins_saver_dir) AC_SUBST(Plugins_archiver_dir) AC_OUTPUT(Makefile $OUTPUTS)