AC_PREREQ(2.52) AC_INIT(src/Makefile.am) ANJUTA_VERSION=1.2.3 GLIB_REQUIRED=2.0.6 GDK_PIXBUF_REQUIRED=2.0.0 GTK_REQUIRED=2.0.8 ORBIT_REQUIRED=2.4.0 LIBGLADE_REQUIRED=2.0.0 GNOME_REQUIRED=2.0.2 GNOME_UI_REQUIRED=2.0.2 GNOME_PRINT_REQUIRED=2.0.1 GNOME_PRINT_UI_REQUIRED=2.0.1 GNOME_VFS_REQUIRED=2.0.2 BONOBO_REQUIRED=2.0.0 BONOBO_UI_REQUIRED=2.0.1 VTE_REQUIRED=0.7.0 VTE_NEW_REQUIRED=0.9.0 LIBXML_REQUIRED=2.4.23 PANGO_REQUIRED=1.1.1 PCRE_REQUIRED=3.9 AC_SUBST(GLIB_REQUIRED) AC_SUBST(GDK_PIXBUF_REQUIRED) AC_SUBST(GTK_REQUIRED) AC_SUBST(ORBIT_REQUIRED) AC_SUBST(LIBGLADE_REQUIRED) AC_SUBST(GNOME_REQUIRED) AC_SUBST(GNOME_UI_REQUIRED) AC_SUBST(GNOME_PRINT_REQUIRED) AC_SUBST(GNOME_PRINT_UI_REQUIRED) AC_SUBST(GNOME_VFS_REQUIRED) AC_SUBST(BONOBO_REQUIRED) AC_SUBST(BONOBO_UI_REQUIRED) AC_SUBST(VTE_REQUIRED) AC_SUBST(LIBXML_REQUIRED) AC_SUBST(PANGO_REQUIRED) AC_SUBST(VTE_NEW_REQUIRED) AC_SUBST(PCRE_REQUIRED) AM_INIT_AUTOMAKE(anjuta, $ANJUTA_VERSION) AM_CONFIG_HEADER(config.h) dnl Define convenience macros dnl ------------------------- dnl CHECK_HEADER_DEFINE(LABEL, HEADER [,ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ] ]) AC_DEFUN(CHECK_HEADER_DEFINE, [ AC_MSG_CHECKING("if $1 is defined in $2") AC_EGREP_CPP(yes, [#include <$2> #ifdef $1 yes #endif ], [ AC_MSG_RESULT(yes) $3 ], [ AC_MSG_RESULT(no) $4 ]) ]) CFLAGS_WARNINGS="-Wall -Wmissing-prototypes -Wparentheses -Wpointer-arith" CFLAGS_DISABLE_CHECKS="-DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" CFLAGS_OPTIMIZE="-Os -s" CXXFLAGS_OPTIMIZE="-Os -s -fno-exceptions -fno-check-new" if test "x$GCC" = xyes; then CFLAGS_WARNINGS="" CFLAGS_OPTIMIZE="" CXXFLAGS_OPTIMIZE="" fi dnl Enable debugging mode AC_ARG_ENABLE(debug, [ --enable-debug Enable debug messages], CFLAGS="$CFLAGS -DDEBUG -O0 -g $CFLAGS_WARNINGS -Wmissing-declarations" CXXFLAGS="$CXXFLAGS -DDEBUG -O0 -g $CFLAGS_WARNINGS") dnl Enable profiling mode AC_ARG_ENABLE(gprof, [ --enable-gprof Enable profiling with gprof], CFLAGS="$CFLAGS -pg" CXXFLAGS="$CXXFLAGS -pg" LDFLAGS="$LDFLAGS -pg") dnl Enable release builds AC_ARG_ENABLE(final, [ --enable-final Build release executables (GCC only)], CFLAGS="$CFLAGS -DNDEBUG -O0 -g" CXXFLAGS="$CXXFLAGS -DNDEBUG -O0 -g") dnl Enable stripped and fully optimized output AC_ARG_ENABLE(optimize, [ --enable-optimize Enable stripped and full optimization], CFLAGS="$CFLAGS -DNDEBUG ${CFLAGS_OPTIMIZE} ${CFLAGS_DISABLE_CHECKS}" CXXFLAGS="$CXXFLAGS -DNDEBUG ${CXXFLAGS_OPTIMIZE} ${CFLAGS_DISABLE_CHECKS}") dnl Enable versioned user preferences directory AC_ARG_WITH(pref-suffix, [ --with-pref-suffix=VALUE Suffix to add to user preferences dir.], PREF_SUFFIX="$withval") AC_SUBST(PREF_SUFFIX) AC_DEFINE_UNQUOTED(PREF_SUFFIX, "${PREF_SUFFIX}", [Suffix to add to preferences directory]) dnl Initialize xml-i18n-tools AC_PROG_INTLTOOL AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_ISC_POSIX AC_HEADER_STDC AM_PROG_LIBTOOL AC_TYPE_SIGNAL dnl *************************************************************************** dnl Check for pkgconfig dnl *************************************************************************** AC_PATH_PROG(PKGCONFIG_CONFIG, pkg-config,no) if test x$PKGCONFIG_CONFIG = xno; then AC_MSG_ERROR(Please install the pkg-config package from http://www.freedesktop.org/software/pkgconfig/) fi PKG_CHECK_MODULES(ANJUTA, \ glib-2.0 >= $GLIB_REQUIRED \ gtk+-2.0 >= $GTK_REQUIRED \ ORBit-2.0 >= $ORBIT_REQUIRED \ libglade-2.0 >= $LIBGLADE_REQUIRED \ libgnome-2.0 >= $GNOME_REQUIRED \ libgnomeui-2.0 >= $GNOME_UI_REQUIRED \ libgnomeprint-2.2 >= $GNOME_PRINT_REQUIRED \ libgnomeprintui-2.2 >= $GNOME_PRINT_UI_REQUIRED \ gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED \ gnome-vfs-module-2.0 >= $GNOME_VFS_REQUIRED \ libbonobo-2.0 >= $BONOBO_REQUIRED \ libbonoboui-2.0 >= $BONOBO_UI_REQUIRED \ vte >= $VTE_REQUIRED \ libxml-2.0 >= $LIBXML_REQUIRED \ pango >= $PANGO_REQUIRED) AC_SUBST(ANJUTA_CFLAGS) AC_SUBST(ANJUTA_LIBS) dnl *************************************************************************** dnl Check for old vte version dnl *************************************************************************** PKG_CHECK_MODULES(VTE, vte >= $VTE_NEW_REQUIRED, OLD_VTE=0, OLD_VTE=1) AC_SUBST(OLD_VTE) AC_DEFINE_UNQUOTED(OLD_VTE, $OLD_VTE, [Old version of vte]) dnl *************************************************************************** dnl Check for separate glib libraries dnl *************************************************************************** PKG_CHECK_MODULES(GLIB, glib-2.0) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) dnl *************************************************************************** dnl Check for separate gtk libraries dnl *************************************************************************** PKG_CHECK_MODULES(GTK, gtk+-2.0) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) dnl *************************************************************************** dnl Check for marshal and enum generators dnl *************************************************************************** GLIB_GENMARSHAL="`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`" AC_SUBST(GLIB_GENMARSHAL) GLIB_MKENUMS="`$PKG_CONFIG --variable=glib_mkenums glib-2.0`" AC_SUBST(GLIB_MKENUMS) dnl *************************************************************************** dnl Internatinalization dnl *************************************************************************** ALL_LINGUAS="az be ca cs da de el en_CA en_GB es fr ga hi hr hu it ja ko mk ml ms nb nl no pl pt pt_BR ru sk sq sr sr@Latn sv tr uk zh_CN zh_TW" GETTEXT_PACKAGE=anjuta AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name]) AM_GLIB_GNU_GETTEXT dnl *************************************************************************** dnl Check for Gnome XML [Is this still required?] dnl *************************************************************************** dnl GNOME_XML_CHECK dnl *************************************************************************** dnl Check for ScrollKeeper [No documentation for now] dnl *************************************************************************** dnl AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no) dnl if test x$SCROLLKEEPER_CONFIG = xno; then dnl AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper package. You can get it from http://scrollkeeper.sourceforge.net/) dnl fi dnl SCROLLKEEPER_REQUIRED=0.1.4 dnl AC_SUBST(SCROLLKEEPER_REQUIRED) dnl *************************************************************************** dnl Checking for scrollkeeper version [No documentation for now] dnl *************************************************************************** dnl AC_MSG_CHECKING(for scrollkeeper version number) dnl if scrollkeeper-config --version > /dev/null 2>&1; then dnl version=`scrollkeeper-config --version`; \ dnl vers=`echo $version | awk 'BEGIN { FS = "."; } { print $1 * 1000 + $2;}'`; \ dnl AC_MSG_RESULT(found $version) dnl SCROLLKEEPER_VERSION_NUM=$vers dnl else dnl AC_MSG_ERROR(Did not find scrollkeeper installed) dnl fi dnl AC_SUBST(SCROLLKEEPER_VERSION_NUM) dnl *************************************************************************** dnl Check for PCRE dnl *************************************************************************** dnl Check for PCRE AC_PATH_PROG(PCRE_CONFIG, pcre-config,no) if test x$PCRE_CONFIG = xno; then AC_MSG_ERROR(Please install the PCRE package from http://www.pcre.org/) fi PCRE_CFLAGS=`pcre-config --cflags` PCRE_LIBS=`pcre-config --libs` AC_SUBST(PCRE_LIBS) AC_SUBST(PCRE_CFLAGS) dnl *************************************************************************** dnl Test whether jw is installed [No documentation for now] dnl *************************************************************************** dnl AC_PATH_PROG(JW,jw,no) dnl if test x$JW = xno; then dnl HAVE_JW="no" dnl else dnl HAVE_JW="yes" dnl fi dnl AM_CONDITIONAL(HAVE_JW, test "x$HAVE_JW" = "xyes") dnl AC_SUBST(HAVE_JW) dnl *************************************************************************** dnl Test for libiconv dnl *************************************************************************** AM_ICONV() dnl *************************************************************************** dnl Tagmanager checks. dnl *************************************************************************** dnl Define convenience macros dnl ------------------------- dnl CHECK_HEADER_DEFINE(LABEL, HEADER [,ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ] ]) AC_DEFUN(CHECK_HEADER_DEFINE, [ AC_MSG_CHECKING("if $1 is defined in $2") AC_EGREP_CPP(yes, [#include <$2> #ifdef $1 yes #endif ], [ AC_MSG_RESULT(yes) $3 ], [ AC_MSG_RESULT(no) $4 ]) ]) dnl Checks for header files. AC_CHECK_HEADERS(dirent.h fcntl.h fnmatch.h stat.h stdlib.h string.h) AC_CHECK_HEADERS(time.h types.h unistd.h) AC_CHECK_HEADERS(sys/dir.h sys/stat.h sys/times.h sys/types.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_OBJEXT AC_EXEEXT AC_TYPE_SIZE_T AC_TYPE_OFF_T AC_MSG_CHECKING("for fpos_t") AC_EGREP_HEADER(fpos_t, stdio.h, AC_MSG_RESULT(yes), [ AC_MSG_RESULT(no) AC_DEFINE(fpos_t, long, [fpos_t is type long]) ]) AC_MSG_CHECKING("for clock_t") AC_EGREP_HEADER(clock_t, time.h, AC_MSG_RESULT(yes), [ AC_MSG_RESULT(no) AC_DEFINE(clock_t, long, [clock_t is type long]) ]) CHECK_HEADER_DEFINE(L_tmpnam, stdio.h,, AC_DEFINE(L_tmpnam, 20, [L_tmpname is 20])) CHECK_HEADER_DEFINE(INT_MAX, limits.h,, CHECK_HEADER_DEFINE(MAXINT, limits.h, AC_DEFINE(INT_MAX, MAXINT, [Maximum int size]), AC_DEFINE(INT_MAX, 32767, [Maximum int size]))) AC_MSG_CHECKING(if struct stat contains st_ino) AC_TRY_COMPILE([#include ], [ struct stat st; stat(".", &st); if (st.st_ino > 0) exit(0); ], have_st_ino=yes, have_st_ino=no) AC_MSG_RESULT($have_st_ino) if test yes = "$have_st_ino"; then AC_DEFINE(HAVE_STAT_ST_INO,,[Have stat st_ino]) fi dnl Checks for library functions. AC_CHECK_FUNCS(fnmatch) AC_CHECK_FUNCS(strstr) AC_CHECK_FUNCS(stricmp) AC_CHECK_FUNCS(strnicmp) AC_CHECK_FUNCS(getline) AC_CHECK_FUNCS(fgetpos, have_fgetpos=yes) dnl SEEK_SET should be in stdio.h, but may be in unistd.h on SunOS 4.1.x if test "$have_fgetpos" != yes ; then CHECK_HEADER_DEFINE(SEEK_SET, stdio.h,, CHECK_HEADER_DEFINE(SEEK_SET, unistd.h,, AC_DEFINE(SEEK_SET, 0, [Seek set 0]))) fi AC_CHECK_FUNCS(mkstemp, have_mkstemp=yes) if test "$have_mkstemp" != yes ; then AC_CHECK_FUNCS(chmod) if test "$tmpdir_specified" = yes ; then AC_MSG_RESULT(use of tmpnam overrides temporary directory selection) fi else AC_MSG_CHECKING(directory to use for temporary files) if test -z "$enable_tmpdir" -o "$enable_tmpdir" = no -o "$enable_tmpdir" = yes ; then tmpdir=/tmp else tmpdir="$enable_tmpdir" fi if test -d $tmpdir ; then AC_MSG_RESULT($tmpdir) AC_DEFINE_UNQUOTED(TMPDIR, "$tmpdir", [Directory for temporary files]) else AC_MSG_WARN($tmpdir does not exist) fi fi AC_CHECK_FUNCS(strerror opendir) AC_CHECK_FUNCS(clock times, break) AC_CHECK_FUNCS(remove, have_remove=yes, CHECK_HEADER_DEFINE(remove, unistd.h,, AC_DEFINE(remove, unlink, [Remove is unlink]))) AC_CHECK_FUNCS(truncate, have_truncate=yes) dnl === Cannot nest AC_CHECK_FUNCS() calls if test "$have_truncate" != yes ; then AC_CHECK_FUNCS(ftruncate, have_ftruncate=yes) if test "$have_ftruncate" != yes ; then AC_CHECK_FUNCS(chsize) fi fi AC_CHECK_FUNCS(setenv, have_setenv=yes) dnl === Cannot nest AC_CHECK_FUNCS() calls if test "$have_setenv" != yes ; then AC_CHECK_FUNCS(putenv, have_putenv=yes) if test "$have_putenv" = yes ; then AC_EGREP_HEADER(putenv, stdlib.h, have_putenv_prototype=yes) if test "$have_putenv_prototype" = yes ; then AC_MSG_CHECKING("putenv prototype") AC_EGREP_HEADER([[^A-Za-zo-9_]putenv[ ]*\(.*const.*\)[ ]*;], stdlib.h, AC_MSG_RESULT(correct), [ AC_MSG_RESULT(no const) AC_DEFINE(NON_CONST_PUTENV_PROTOTYPE,,[putenv has non constant prototype]) ]) fi fi fi dnl dnl if test yes = "$CYGWIN"; then with_posix_regex=no; fi if test no != "$with_posix_regex"; then AC_CHECK_FUNCS(regcomp) AC_MSG_CHECKING(if regcomp works) AC_TRY_RUN([ #include #include main() { regex_t patbuf; exit (regcomp (&patbuf, "/hello/", 0) != 0); }],regcomp_works=yes,regcomp_works=no,AC_DEFINE(CHECK_REGCOMP,,[Check regcomp])) AC_MSG_RESULT($regcomp_works) if test yes != "$regcomp_works"; then AC_DEFINE(REGCOMP_BROKEN,,[Regcomp is broken]) fi fi dnl ----------------------------- dnl Checks for FreeBSD Build dnl ----------------------------- AC_MSG_CHECKING(if building on FreeBSD) if test `uname -s` = "FreeBSD" ; then AC_MSG_RESULT(yes) FREEBSD_BUILD=-DFREEBSD AC_SUBST(FREEBSD_BUILD) AC_PATH_PROG(GMAKE, gmake, no) if test "x$GMAKE" = "xno"; then AC_ERROR(You need gmake installed to build Anjuta!) fi else AC_MSG_RESULT(no) GMAKE="make" fi AC_SUBST(GMAKE) dnl Checks for missing prototypes dnl ----------------------------- AC_CHECKING("for missing prototypes") AC_DEFUN(CHECK_PROTO, [AC_EGREP_HEADER([[^A-Za-z0-9_]$1([ ]+[A-Za-z0-9_]*)?\(], $2,, AC_DEFINE(patsubst([NEED_PROTO_NAME], [NAME], translit($1, [a-z], [A-Z])),,[Do not know]) AC_MSG_RESULT(adding prototype for $1))]) if test "$have_remove" = yes ; then CHECK_PROTO(remove, stdio.h) else CHECK_PROTO(unlink, unistd.h) fi CHECK_PROTO(malloc, stdlib.h) CHECK_PROTO(getenv, stdlib.h) CHECK_PROTO(stat, sys/stat.h) CHECK_PROTO(lstat, sys/stat.h) if test "$have_fgetpos" = yes ; then CHECK_PROTO(fgetpos, stdio.h) fi if test "$have_truncate" = yes ; then CHECK_PROTO(truncate, unistd.h) fi if test "$have_ftruncate" = yes ; then CHECK_PROTO(ftruncate, unistd.h) fi dnl *************************************************************************** dnl Checks for Additional stuffs dnl *************************************************************************** dnl Set PACKAGE_LOCALE_DIR in config.h. if test "x${prefix}" = "xNONE"; then AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale", [Package local directory]) else AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale", [Package local directory]) fi dnl Set PACKAGE SOURCE DIR in config.h. packagesrcdir=`cd $srcdir && pwd` dnl Set PACKAGE PREFIX if test "x${prefix}" = "xNONE"; then packageprefix=${ac_default_prefix} else packageprefix=${prefix} fi dnl Set PACKAGE DATA & DOC DIR systemdatadir=share packagedatadir=share/${PACKAGE} packagedocdir=share/doc/${PACKAGE} packageplugindir=lib/${PACKAGE}/plugins/${VERSION} dnl Set PACKAGE DIRs in config.h. packagepixmapsdir=share/pixmaps/${PACKAGE} packagehelpdir=share/gnome/help/${PACKAGE} packagemenudir=share/gnome/apps packageplugindir=lib/${PACKAGE} dnl Subst PACKAGE_DATA_DIR. NO_PREFIX_PACKAGE_DATA_DIR="${packagedatadir}" AC_SUBST(NO_PREFIX_PACKAGE_DATA_DIR) PACKAGE_DATA_DIR="${packageprefix}/${packagedatadir}" AC_SUBST(PACKAGE_DATA_DIR) SYSTEM_DATA_DIR="${packageprefix}/${systemdatadir}" AC_SUBST(SYSTEM_DATA_DIR) dnl Subst PACKAGE_DOC_DIR. NO_PREFIX_PACKAGE_DOC_DIR="${packagedocdir}" AC_SUBST(NO_PREFIX_PACKAGE_DOC_DIR) PACKAGE_DOC_DIR="${packageprefix}/${packagedocdir}" AC_SUBST(PACKAGE_DOC_DIR) dnl Subst PACKAGE_PIXMAPS_DIR. NO_PREFIX_PACKAGE_PIXMAPS_DIR="${packagepixmapsdir}" AC_SUBST(NO_PREFIX_PACKAGE_PIXMAPS_DIR) PACKAGE_PIXMAPS_DIR="${packageprefix}/${packagepixmapsdir}" AC_SUBST(PACKAGE_PIXMAPS_DIR) dnl Subst PACKAGE_HELP_DIR. NO_PREFIX_PACKAGE_HELP_DIR="${packagehelpdir}" AC_SUBST(NO_PREFIX_PACKAGE_HELP_DIR) PACKAGE_HELP_DIR="${packageprefix}/${packagehelpdir}" AC_SUBST(PACKAGE_HELP_DIR) dnl Subst PACKAGE_MENU_DIR. NO_PREFIX_PACKAGE_MENU_DIR="${packagemenudir}" AC_SUBST(NO_PREFIX_PACKAGE_MENU_DIR) PACKAGE_MENU_DIR="${packageprefix}/${packagemenudir}" AC_SUBST(PACKAGE_MENU_DIR) dnl Subst PACKAGE_PLUGIN_DIR. NO_PREFIX_PACKAGE_PLUGIN_DIR="${packageplugindir}" AC_SUBST(NO_PREFIX_PACKAGE_PLUGIN_DIR) PACKAGE_PLUGIN_DIR="${packageprefix}/${packageplugindir}" AC_SUBST(PACKAGE_PLUGIN_DIR) AC_DEFINE_UNQUOTED(SYSTEM_DATA_DIR, "${packageprefix}/${systemdatadir}", [System data directory]) AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${packageprefix}/${packagedatadir}", [Package data directory]) AC_DEFINE_UNQUOTED(PACKAGE_DOC_DIR, "${packageprefix}/${packagedocdir}", [Package doc directory]) AC_DEFINE_UNQUOTED(PACKAGE_PIXMAPS_DIR, "${packageprefix}/${packagepixmapsdir}", [Package pixmaps directory]) AC_DEFINE_UNQUOTED(PACKAGE_HELP_DIR, "${packageprefix}/${packagehelpdir}", [Package help directory]) AC_DEFINE_UNQUOTED(PACKAGE_MENU_DIR, "${packageprefix}/${packagemenudir}", [Package program menu directory]) AC_DEFINE_UNQUOTED(PACKAGE_PLUGIN_DIR, "${packageprefix}/${packageplugindir}", [Package plugins directory]) AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}", [Package source code directory]) AC_OUTPUT([ Makefile po/Makefile.in tagmanager/Makefile tagmanager/include/Makefile global-tags/Makefile scintilla/Makefile gdl/Makefile widgets/Makefile printing/Makefile scintilla/include/Makefile anjuta.spec src/Makefile pixmaps/Makefile data/Makefile data/welcome.txt data/properties/Makefile doc/anjuta.1 doc/anjuta_launcher.1 doc/Makefile scripts/Makefile scripts/anjuta_import.sh launcher/Makefile plugins/Makefile plugins/sample1/Makefile plugins/class-gen/Makefile plugins/patch/Makefile anjuta.desktop.in manuals/Makefile manuals/C/Makefile manuals/C/anjuta-tutorial/Makefile manuals/C/anjuta-advanced-tutorial/Makefile manuals/C/anjuta-faqs/Makefile manuals/C/anjuta-manual/Makefile manuals/de/Makefile manuals/de/anjuta-tutorial/Makefile manuals/ja/Makefile manuals/ja/anjuta-faqs/Makefile manuals/ja/anjuta-manual/Makefile ])