# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
-AC_INIT([lttv], [0.12.25-16122009], [ltt-dev@lists.casi.polymtl.ca])
-AM_INIT_AUTOMAKE
-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_INIT([lttv], [0.12.38-21032011], [yannick.brosseau@gmail.com])
+AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_MACRO_DIR([config])
+AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip])
+AM_SILENT_RULES([yes])
+AC_CONFIG_HEADERS([config.h])
+LT_INIT
# 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"])
+#TODO ybrosseau 2012-03-13: Remove this when babeltrace port is complete
+#Force GUI disabling while we port babeltrace
+#with_lttv_gui="no"
-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)
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_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]),
+])
-# 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]))
# 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`
- CFLAGS+=" "
- 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
-
-
# 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
+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"])
-if test "$with_jni_interface" = "yes"; then
- AC_CHECK_HEADERS([jni.h],,AC_MSG_ERROR([
-missing jni.h
-Make sure Sun Java or GJC 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")
+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 CFLAGS=-I/path/ to specify a non-standard path or disable 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])
+])
+
+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 $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS"
-PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -Wall -Wformat"
+# Todo add test for babeltrace pkg-config
+BABELTRACE_LIBS="-lbabeltrace -lbabeltrace-ctf"
+
+LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS $BABELTRACE_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])
# 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]]]),
+ [lttvstatic="$enableval"],
+ [lttvstatic="no"])
+AM_CONDITIONAL([LTTVSTATIC], [ test "x$lttvstatic" = "xyes" ] )
+
lttvlibdir="${libdir}/lttv"
lttvplugindir="${lttvlibdir}/plugins"
#lttlibdir="${libdir}/ltt"
lttvwindowincludedir="${includedir}/lttvwindow"
lttctlincludedir="${includedir}/liblttctl"
-AC_SUBST([POPT_LIBS])
-AC_SUBST([UTIL_LIBS])
AC_SUBST(lttvlibdir)
AC_SUBST(lttvplugindir)
#AC_SUBST(lttlibdir)
AC_SUBST(lttvwindowincludedir)
AC_SUBST(lttctlincludedir)
- #lttv/modules/gui/tutorial/Makefile
- #lttv/modules/gui/diskperformance/Makefile
+# ltt/Makefile
+
AC_CONFIG_FILES([Makefile
- lttv/Makefile
- lttv/lttv/Makefile
- lttv/modules/Makefile
- lttv/modules/text/Makefile
- lttv/modules/gui/Makefile
- lttv/modules/gui/lttvwindow/Makefile
- lttv/modules/gui/interrupts/Makefile
- lttv/modules/gui/lttvwindow/lttvwindow/Makefile
- lttv/modules/gui/lttvwindow/pixmaps/Makefile
- lttv/modules/gui/controlflow/Makefile
- lttv/modules/gui/detailedevents/Makefile
- lttv/modules/gui/statistics/Makefile
- lttv/modules/gui/histogram/Makefile
- lttv/modules/gui/filter/Makefile
- lttv/modules/gui/tracecontrol/Makefile
- lttv/modules/gui/resourceview/Makefile
- ltt/Makefile
- doc/Makefile
- doc/developer/Makefile
- doc/developer/developer_guide/Makefile
- doc/developer/developer_guide/docbook/Makefile
- doc/developer/developer_guide/html/Makefile
- doc/user/Makefile
- doc/user/user_guide/Makefile
- doc/user/user_guide/docbook/Makefile
- doc/user/user_guide/html/Makefile])
+ lttv/Makefile
+ lttv/lttv/Makefile
+ lttv/lttv/sync/Makefile
+ lttv/modules/Makefile
+ lttv/modules/text/Makefile
+ lttv/modules/gui/Makefile
+ lttv/modules/gui/lttvwindow/Makefile
+ lttv/modules/gui/interrupts/Makefile
+ lttv/modules/gui/lttvwindow/lttvwindow/Makefile
+ lttv/modules/gui/lttvwindow/pixmaps/Makefile
+ lttv/modules/gui/controlflow/Makefile
+ lttv/modules/gui/detailedevents/Makefile
+ lttv/modules/gui/statistics/Makefile
+ lttv/modules/gui/histogram/Makefile
+ lttv/modules/gui/filter/Makefile
+ lttv/modules/gui/tracecontrol/Makefile
+ lttv/modules/gui/resourceview/Makefile
+ doc/Makefile
+ doc/developer/Makefile
+ doc/developer/developer_guide/Makefile
+ doc/developer/developer_guide/docbook/Makefile
+ doc/developer/developer_guide/html/Makefile
+ doc/user/Makefile
+ doc/user/user_guide/Makefile
+ doc/user/user_guide/docbook/Makefile
+ doc/user/user_guide/html/Makefile])
+
AC_OUTPUT
+
+# Report on what will be built
+AS_ECHO()
+AS_ECHO("The following components will be built:")
+AS_ECHO("LTT trace reading library: Enabled") # It's always enabled!
+
+AS_ECHO_N("LTTV command line tool: ")
+AS_IF([test "x$with_lttv" = "xyes"],[AS_ECHO("Enabled")],[AS_ECHO("Disabled")])
+
+AS_ECHO_N("LTTV graphical interface: ")
+AS_IF([test "x$with_lttv_gui" = "xyes"],[AS_ECHO("Enabled")],[AS_ECHO("Disabled")])
+
+AS_ECHO_N("Trace synchronization: ")
+AS_IF([test "x$with_trace_sync" = "xyes"],[AS_ECHO("Enabled")],[AS_ECHO("Disabled")])
+
+AS_ECHO_N("Java (JNI) interface: ")
+AS_IF([test "x$with_jni_interface" = "xyes"],[AS_ECHO("Enabled")],[AS_ECHO("Disabled")])
+
+AS_ECHO()
+AS_ECHO_N("Statically linked executable: ")
+AS_IF([test "x$lttvstatic" = "xyes"],[AS_ECHO("Yes")],[AS_ECHO("No")])
+
+AS_ECHO()
+AS_ECHO("Type 'make' to build LTTV.")
+