Modernize configure.ac
authorAlexandre Montplaisir <alexandre.montplaisir@gmail.com>
Wed, 8 Feb 2012 21:34:48 +0000 (16:34 -0500)
committerYannick Brosseau <yannick.brosseau@gmail.com>
Sat, 11 Feb 2012 03:04:40 +0000 (22:04 -0500)
Replace the old, very long autogen.sh with a 3-line bootstrap.
Use Autoconf portable macros where applicable.

This also makes the bootstrap fail right away when trying to compile on
a system without libgtk/glib, instead of throwing an obscure error at
configure time.

Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir@gmail.com>
Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Makefile.am
autogen.sh [deleted file]
bootstrap [new file with mode: 0755]
configure.ac

index 9f817965b9c72ba56a81961e788ba708fba30d7e..fd556a5a4ab979f37b5b5d54608ba2c5d0ae0285 100644 (file)
@@ -1,3 +1,5 @@
+ACLOCAL_AMFLAGS = -I config
+
 # WARNING : ltt must come before lttv, so that the traceread library is
 # up to date
 
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755 (executable)
index cc7edfd..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-DIE=0
-
-if [ -n "$GNOME2_DIR" ]; then
-       ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
-       LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
-       PATH="$GNOME2_DIR/bin:$PATH"
-       export PATH
-       export LD_LIBRARY_PATH
-fi
-
-(test -f $srcdir/configure.ac) || {
-    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
-    echo " top-level package directory"
-    exit 1
-}
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`autoconf' installed."
-  echo "Download the appropriate package for your distribution,"
-  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-(grep "^AC_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && {
-  (intltoolize --version) < /dev/null > /dev/null 2>&1 || {
-    echo 
-    echo "**Error**: You must have \`intltool' installed."
-    echo "You can get it from:"
-    echo "  ftp://ftp.gnome.org/pub/GNOME/"
-    DIE=1
-  }
-}
-
-(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.ac >/dev/null) && {
-  (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`xml-i18n-toolize' installed."
-    echo "You can get it from:"
-    echo "  ftp://ftp.gnome.org/pub/GNOME/"
-    DIE=1
-  }
-}
-
-(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
-  (libtool --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`libtool' installed."
-    echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
-    DIE=1
-  }
-}
-
-(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.ac >/dev/null) && {
-  (grep "sed.*POTFILES" $srcdir/configure.ac) > /dev/null || \
-  (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`glib' installed."
-    echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
-    DIE=1
-  }
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`automake' installed."
-  echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-  NO_AUTOMAKE=yes
-}
-
-
-# if no automake, don't bother testing for aclocal
-test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
-  echo "installed doesn't appear recent enough."
-  echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-if test "$DIE" -eq 1; then
-  exit 1
-fi
-
-if test -z "$*"; then
-  echo "**Warning**: I am going to run \`configure' with no arguments."
-  echo "If you wish to pass any to it, please specify them on the"
-  echo \`$0\'" command line."
-  echo
-fi
-
-case $CC in
-xlc )
-  am_opt=--include-deps;;
-esac
-
-for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.ac -print`
-do 
-  dr=`dirname $coin`
-  if test -f $dr/NO-AUTO-GEN; then
-    echo skipping $dr -- flagged as no auto-gen
-  else
-    echo processing $dr
-    ( cd $dr
-
-      aclocalinclude="$ACLOCAL_FLAGS"
-
-      if grep "^AM_GLIB_GNU_GETTEXT" configure.ac >/dev/null; then
-       echo "Creating $dr/aclocal.m4 ..."
-       test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
-       echo "Running glib-gettextize...  Ignore non-fatal messages."
-       echo "no" | glib-gettextize --force --copy
-       echo "Making $dr/aclocal.m4 writable ..."
-       test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
-      fi
-      if grep "^AC_PROG_INTLTOOL" configure.ac >/dev/null; then
-        echo "Running intltoolize..."
-       intltoolize --copy --force --automake
-      fi
-      if grep "^AM_PROG_XML_I18N_TOOLS" configure.ac >/dev/null; then
-        echo "Running xml-i18n-toolize..."
-       xml-i18n-toolize --copy --force --automake
-      fi
-      if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then
-       if test -z "$NO_LIBTOOLIZE" ; then 
-         echo "Running libtoolize..."
-         libtoolize --force --copy
-       fi
-      fi
-      echo "Running aclocal $aclocalinclude ..."
-      aclocal $aclocalinclude
-      if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then
-       echo "Running autoheader..."
-       autoheader
-      fi
-      echo "Running automake --gnu $am_opt ..."
-      automake --add-missing --gnu $am_opt
-      echo "Running autoconf ..."
-      autoconf
-    )
-  fi
-done
-
-#if [ -a "$srcdir/include" ]; then
-#      echo -n Removing old system include behavior emulation... 
-#      rm -rf $srcdir/include
-#      echo done.
-#fi
-#echo -n Creating the system include behavior emulation... 
-#mkdir $srcdir/include
-#mkdir $srcdir/include/ltt
-#ln -sf ../../LibLTT/ltt.h $srcdir/include/ltt/ltt.h
-#mkdir $srcdir/include/lttv
-#ln -sf ../../lttv/module.h $srcdir/include/lttv/module.h
-#ln -sf ../../lttv/hook.h $srcdir/include/lttv/hook.h
-#ln -sf ../../lttv/traceWindow.h $srcdir/include/lttv/traceWindow.h
-#echo done.
-
-
-
-if test x$NOCONFIGURE = x; then
-  echo Running $srcdir/configure $conf_flags "$@" ...
-  $srcdir/configure $conf_flags "$@" \
-  && echo Now type \`make\' to compile. || exit 1
-else
-  echo Skipping configure process.
-fi
diff --git a/bootstrap b/bootstrap
new file mode 100755 (executable)
index 0000000..ddf4314
--- /dev/null
+++ b/bootstrap
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+set -x
+if [ ! -e config ]; then
+       mkdir config
+fi
+autoreconf -i
+
index f8f49e9ee5e0fc7d3602064901b84ad35ed76692..416cd86187db5109a9586878e977fc71608210d9 100644 (file)
 
 AC_PREREQ(2.57)
 AC_INIT([lttv], [0.12.38-21032011], [yannick.brosseau@gmail.com])
-AM_INIT_AUTOMAKE
+AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_MACRO_DIR([config])
+AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip])
 AM_SILENT_RULES([yes])
-AM_CONFIG_HEADER(config.h)
-AM_PROG_LIBTOOL
-
-# If requested, only build LTT library part
-AC_ARG_WITH(lttv, [  --with-lttv             build whole LTTV system, as opposd to only the trace reading library
-                         [[default=yes]]])
-if test -z "$with_lttv"; then
-        with_lttv=${with_lttv_default-yes}
-else
-       if test "$with_lttv" = "no"; then
-               # Requesting lib-only turn off the lttv-gui building as well
-               with_lttv_gui="no"
-       fi
-fi
-AM_CONDITIONAL(BUILD_LIB_ONLY, test "$with_lttv" = "no")
+AC_CONFIG_HEADERS([config.h])
+LT_INIT
+
+# If requested, only build the ltt trace reading library
+AC_ARG_WITH(lttv,
+       AS_HELP_STRING([--with-lttv],
+       [build whole LTTV system, as opposd to only the trace reading library [[default=yes]]]),
+       [with_lttv="$withval"],
+       [with_lttv="yes"])
+
+# If we've requested the lib only, turn off the lttv-gui building as well
+AS_IF([test "x$with_lttv" = "xno"], [with_lttv_gui="no"])
+
+AM_CONDITIONAL([BUILD_LIB_ONLY], [ test "x$with_lttv" = "xno" ])
 
 
 # If requested, avoid building LTTV part
-AC_ARG_WITH(lttv-gui, [  --with-lttv-gui         build LTTV gui, as opposed to only build textmode LTTV
-                         [[default=yes]]])
+AC_ARG_WITH(lttv-gui,
+       AS_HELP_STRING([--with-lttv-gui],
+       [build LTTV gui, as opposed to only build textmode LTTV [[default=yes]]]),
+       [with_lttv_gui="$withval"],
+       [with_lttv_gui="yes"])
 
-if test -z "$with_lttv_gui"; then
-        with_lttv_gui=${with_lttv_gui_default-yes}
-fi
-AM_CONDITIONAL(BUILD_LTTV_GUI, test "$with_lttv_gui" = "yes")
+AM_CONDITIONAL([BUILD_LTTV_GUI], [ test "x$with_lttv_gui" = "xyes" ])
 
-AM_PATH_GLIB_2_0(2.4.0, ,AC_MSG_ERROR([glib is required in order to compile LinuxTraceToolkit - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule)
+AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR([glib is required in order to compile LTTV]) , gmodule)
 
 # GTK is only needed by the GUI
-if test "$with_lttv_gui" = "yes" ; then
-        AM_PATH_GTK_2_0(2.4.0, ,AC_MSG_ERROR([gtk is required in order to compile GUI - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule)
-fi
+AS_IF([test "x$with_lttv_gui" = "xyes"],[
+       AM_PATH_GTK_2_0(2.4.0, , AC_MSG_ERROR([GTK 2 is required in order to compile the LTTV GUI]) , gmodule)
+])
 
 AC_PATH_PROGS(BASH, bash)
 
@@ -65,103 +66,90 @@ AC_SYS_LARGEFILE
 AC_PROG_CC
 
 # Checks for libraries.
-AC_CHECK_LIB([popt], [poptGetNextOpt], POPT_LIBS="-lpopt",
-       AC_MSG_ERROR([libpopt is required in order to compile LinuxTraceToolkit]))
-AC_CHECK_LIB([m], [round], M_LIBS="-lm",
-       AC_MSG_ERROR([Mathematical libraries are missing.]))
-AC_CHECK_LIB([util], [forkpty], UTIL_LIBS="-lutil",
-       AC_MSG_ERROR([libutil is required in order to compile LinuxTraceToolkit]))
-
-AC_ARG_WITH([glpk],
-       [AS_HELP_STRING([--with-glpk@<:@=DIR@:>@],
-               [support trace synchronization accuracy calculation (needs glpk)
-                       @<:@default=check@:>@])],
-       [],
-       [with_glpk=check])
-
-GLPK_LIBS=
-       AS_IF([test "x$with_glpk" != xno],
-               [if test "x$with_glpk" != xyes -a -d "$with_glpk"; then
-                       LDFLAGS="$LDFLAGS -L$with_glpk"
-               fi
-               AC_CHECK_LIB([glpk], [glp_create_prob],
-                       [AC_SUBST([GLPK_LIBS], ["-lglpk"])
-                       AC_DEFINE([HAVE_LIBGLPK], [1], [Define if you have libglpk])],
-                       [if test "x$with_glpk" != xcheck; then
-                               AC_MSG_FAILURE(
-                                       [--with-glpk was given, but test for glpk failed])
-                       fi],
-               -lm)])
-
-# pthread for gdb with dlopen().
-AC_CHECK_LIB(pthread, pthread_join, [], AC_MSG_ERROR([LinuxThreads is required in order to make sure gdb works fine with lttv-gui]))
+AC_CHECK_LIB([popt], [poptGetNextOpt], [],
+       AC_MSG_ERROR([libpopt is required in order to compile LTTV])
+)
+AC_CHECK_LIB([m], [round], [],
+       AC_MSG_ERROR([Mathematical libraries are missing.])
+)
+AC_CHECK_LIB([util], [forkpty], [],
+       AC_MSG_ERROR([libutil is required in order to compile LTTV])
+)
+
+# Trace synchronization feature, which requires libglpk
+AC_ARG_WITH([trace-sync],
+       AS_HELP_STRING([--with-trace-sync],
+       [support trace synchronization accuracy calculation (needs libglpk) [default=no]]),
+       [with_trace_sync="$withval"],
+       [with_trace_sync="no"])
+
+AS_IF([test "x$with_trace_sync" = "xyes"],[
+       AC_CHECK_LIB([glpk], [glp_create_prob], [], [
+               AC_MSG_ERROR([The trace synchronization feature requires libglpk, please install it first.])
+       ])
+       AC_DEFINE([HAVE_LIBGLPK], [1], [Define if you have libglpk]),
+])
+
 
 # Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h pthread.h])
 
 # Set compile flags to java include files if given
-AC_ARG_WITH(java_jdk, [  --with-java-jdk=DIR     use java jdk from DIR. Ex : $JAVA_HOME.], JAVA_SDK=$withval,)
-if test $JAVA_SDK; then
-        if test -d $JAVA_SDK; then
-                AC_MSG_RESULT([using java include in $JAVA_SDK])
-                SUBDIRS=`find $JAVA_SDK/include -type d`
+AC_ARG_WITH([java-jdk],
+       AS_HELP_STRING([--with-java-jdk=DIR],
+       [use java jdk from DIR. Ex : $JAVA_HOME.]),
+       [JAVA_SDK=$withval],
+       [])
+
+AS_IF([test $JAVA_SDK],[
+       AS_IF([test -d $JAVA_SDK],[
+               AC_MSG_RESULT([using java include in $JAVA_SDK])
+               SUBDIRS=`find $JAVA_SDK/include -type d`
                CFLAGS+=" "
-                CFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done`
+               CFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done`
                CFLAGS+=" "
-        else
-                AC_MSG_ERROR(Unable to find java include file in $JAVA_JDK)
-        fi
-fi
+        ],[
+                AC_MSG_ERROR([Unable to find Java include files in $JAVA_JDK])
+        ])
+])
 
 
 # Check for JNI header files if requested
-AC_ARG_WITH(jni-interface, [  --with-jni-interface    build JNI interface between C and java. Need java include files.
-                         [[default=no]]])
-
-if test -z "$with_jni_interface"; then
-        with_jni_interface=${with_jni_interface_default-no}
-fi
-
-if test "$with_jni_interface" = "yes"; then
-        AC_CHECK_HEADERS([jni.h],,AC_MSG_ERROR([
-missing jni.h
+AC_ARG_WITH(jni-interface,
+       AS_HELP_STRING([--with-jni-interface],
+       [build JNI interface between C and Java. Needs JNI header file. [[default=no]]]),
+       [with_jni_interface="$withval"],
+       [with_jni_interface="no"])
+
+AS_IF([test "x$with_jni_interface" = "xyes"],[
+        AC_CHECK_HEADERS([jni.h], [], AC_MSG_ERROR([missing jni.h
 Make sure Sun Java or OpenJDK or GCJ is installed and that this header file exists in the system path.
-Use --with-java-jdk=DIR flag to point to your java include files or desactivate the JNI interface.]))
-fi
-AM_CONDITIONAL(BUILD_JNI_INTERFACE, test "$with_jni_interface" = "yes")
+Use --with-java-jdk=DIR flag to point to your java include files or deactivate the JNI interface.]))
+])
+AM_CONDITIONAL([BUILD_JNI_INTERFACE], [ test "$with_jni_interface" = "yes" ] )
 
 
-AC_ISC_POSIX
-AC_PROG_CC
-AM_PROG_CC_STDC
-AC_HEADER_STDC
-
 # If we want the gui, we need additionnal flags for GTK
-if test "$with_lttv_gui" = "yes" ; then
-        pkg_modules="gtk+-2.0 >= 2.0.0"
-        PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
-        PACKAGE_CFLAGS="-Wall -Wformat"
-        AC_SUBST(PACKAGE_CFLAGS)
-        AC_SUBST(PACKAGE_LIBS)
-# Else, we still have a dependency on gmodule
-# We will add flags for gmodule alone
-else
-        pkg_modules="gmodule-2.0 >= 2.0.0"
-        PKG_CHECK_MODULES(GMODULE, [$pkg_modules])
-        PACKAGE_CFLAGS="-Wall -Wformat"
-        AC_SUBST(PACKAGE_CFLAGS)
-        AC_SUBST(PACKAGE_LIBS)
-fi
+AS_IF([test "x$with_lttv_gui" = "xyes"],[
+       pkg_modules="gtk+-2.0 >= 2.0.0"
+       PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
+],[
+       # Else, we still have a dependency on gmodule
+       # We will add flags for gmodule alone
+       pkg_modules="gmodule-2.0 >= 2.0.0"
+       PKG_CHECK_MODULES(GMODULE, [$pkg_modules])
+])
 
 pkg_modules="gobject-2.0 >= 2.0.0"
 PKG_CHECK_MODULES(GOBJECT, [$pkg_modules])
 
-LIBS="$LIBS $M_LIBS $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS"
-PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -Wall -Wformat"
+LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS"
+PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -Wall -Wformat-security"
 MODULE_CFLAGS="$PACKAGE_CFLAGS -fvisibility=hidden"
 MODULE_LDFLAGS="-module -avoid-version"
 AC_SUBST([PACKAGE_CFLAGS])
+AC_SUBST(PACKAGE_LIBS)
 AC_SUBST([MODULE_CFLAGS])
 AC_SUBST([MODULE_LDFLAGS])
 
@@ -175,18 +163,16 @@ AC_HEADER_TIME
 
 # Checks for library functions.
 AC_FUNC_ERROR_AT_LINE
-#AC_FUNC_MALLOC
 AC_FUNC_SELECT_ARGTYPES
 AC_CHECK_FUNCS([select])
 
-#CPPFLAGS="$CPPFLAGS -I"
-
 AC_ARG_ENABLE(lttvstatic,
-       AC_HELP_STRING( [--enable-lttvstatic],
-               [build a statically linked executable @<:@default=no@:>@]),
-               [with_lttvstatic="yes"],
-               [with_lttvstatic="no"])
-AM_CONDITIONAL(LTTVSTATIC, test "x$with_lttvstatic" = "xyes")
+       AS_HELP_STRING([--enable-lttvstatic],
+       [build a statically linked executable [[default=no]]]),
+       [with_lttvstatic="$withval"],
+       [with_lttvstatic="no"])
+AM_CONDITIONAL([LTTVSTATIC], [ test "x$with_lttvstatic" = "xyes" ] )
+
 lttvlibdir="${libdir}/lttv"
 lttvplugindir="${lttvlibdir}/plugins"
 #lttlibdir="${libdir}/ltt"
@@ -200,8 +186,6 @@ lttvincludedir="${includedir}/lttv"
 lttvwindowincludedir="${includedir}/lttvwindow"
 lttctlincludedir="${includedir}/liblttctl"
 
-AC_SUBST([POPT_LIBS])
-AC_SUBST([UTIL_LIBS])
 AC_SUBST(lttvlibdir)
 AC_SUBST(lttvplugindir)
 #AC_SUBST(lttlibdir)
@@ -213,8 +197,6 @@ AC_SUBST(lttvincludedir)
 AC_SUBST(lttvwindowincludedir)
 AC_SUBST(lttctlincludedir)
 
-                #lttv/modules/gui/tutorial/Makefile
-                #lttv/modules/gui/diskperformance/Makefile
 AC_CONFIG_FILES([Makefile
        lttv/Makefile
        lttv/lttv/Makefile
@@ -243,4 +225,6 @@ AC_CONFIG_FILES([Makefile
        doc/user/user_guide/Makefile
        doc/user/user_guide/docbook/Makefile
        doc/user/user_guide/html/Makefile])
+
 AC_OUTPUT
+
This page took 0.029231 seconds and 4 git commands to generate.