X-Git-Url: https://git.lttng.org/?p=lttv.git;a=blobdiff_plain;f=configure.ac;h=02ae6853fbbaa198be2df94a5911635a595600df;hp=1164a6ae43d5a42aced5488b5cb67a078d09c322;hb=HEAD;hpb=c7c71374e52e7b834d338cb0efeb3780bb2dbcf1 diff --git a/configure.ac b/configure.ac index 1164a6ae..02ae6853 100644 --- a/configure.ac +++ b/configure.ac @@ -21,40 +21,32 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) -AC_INIT([lttv], [0.12.18-16092009], [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], [1.5], [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 +#Always build basic command line modules +with_lttv="yes" # 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) @@ -64,82 +56,72 @@ 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([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]), +]) -AC_CHECK_LIB([util], [forkpty], UTIL_LIBS="-lutil", AC_MSG_ERROR([ -libutil is required in order to compile LinuxTraceToolkit])) - - -# 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 - -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") - - -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" +PKG_CHECK_MODULES(BABELTRACE, [babeltrace >= 1.1.0], [], + [AC_CHECK_LIB([babeltrace], [bt_context_create], [], + [AC_MSG_ERROR([Cannot find the babeltrace library.])] + ) + +# Check for libbabeltrace-ctf +AC_CHECK_LIB([babeltrace-ctf], [bt_ctf_iter_create], [], + [AC_MSG_ERROR([Cannot find the babeltrace-ctf library.])] + ) +]) + +AC_CHECK_LIB([babeltrace], [bt_iter_equals_pos], + [AC_DEFINE([HAVE_BT_ITER_EQUALS_POS],[],[Have equal function])], []) + +AC_CHECK_LIB([babeltrace-ctf], [bt_ctf_event_name], + [], [AC_MSG_ERROR([libbabeltrace-ctf is required in order to compile LTTV])]) + +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]) @@ -153,71 +135,86 @@ 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]]]), + [lttvstatic="$enableval"], + [lttvstatic="no"]) +AM_CONDITIONAL([LTTVSTATIC], [ test "x$lttvstatic" = "xyes" ] ) + lttvlibdir="${libdir}/lttv" lttvplugindir="${lttvlibdir}/plugins" -#lttlibdir="${libdir}/ltt" top_lttvdir="\$(top_srcdir)/lttv" top_lttvwindowdir="\$(top_srcdir)/lttv/modules/gui/lttvwindow" DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_lttvdir) -I\$(top_lttvwindowdir)" -lttincludedir="${includedir}/ltt" 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) AC_SUBST(top_lttvdir) AC_SUBST(top_lttvwindowdir) AC_SUBST(DEFAULT_INCLUDES) -AC_SUBST(lttincludedir) AC_SUBST(lttvincludedir) 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/modules/Makefile + lttv/modules/text/Makefile + lttv/modules/gui/Makefile + lttv/modules/gui/lttvwindow/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/histogram/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]) +# lttv/lttv/sync/Makefile +# lttv/modules/gui/interrupts/Makefile +# lttv/modules/gui/statistics/Makefile +# lttv/modules/gui/filter/Makefile +# lttv/modules/gui/tracecontrol/Makefile + + AC_OUTPUT + +# Report on what will be built +AS_ECHO() +AS_ECHO("The following components will be built:") + +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() +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.") +