java interface: add script to automatically generate lib loader C code
[lttv.git] / configure.ac
index 67da0ca478ca02e28f91993b01e966cc88af7a3f..69d3809a4ce86829ba0b42509c4fa678595f4337 100644 (file)
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
-#AC_WITH_LTDL  # not needed ?
-AM_INIT_AUTOMAKE(lttv,0.12.17-01072009)
+AC_INIT([lttv], [0.12.31-04072010], [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")
+
+
+# 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]]])
+
+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_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_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)
+# 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
 
 AC_PATH_PROGS(BASH, bash)
 
@@ -39,11 +64,33 @@ 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_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]))
@@ -52,19 +99,65 @@ AC_CHECK_LIB(pthread, pthread_join, [], AC_MSG_ERROR([LinuxThreads is required i
 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
 
-pkg_modules="gtk+-2.0 >= 2.0.0"
-PKG_CHECK_MODULES(GTK, [$pkg_modules])
+# 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
 
 pkg_modules="gobject-2.0 >= 2.0.0"
 PKG_CHECK_MODULES(GOBJECT, [$pkg_modules])
 
-LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS"
-PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS -Wall -Wformat"
+LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS"
+PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -Wall -Wformat"
 MODULE_CFLAGS="$PACKAGE_CFLAGS -fvisibility=hidden"
 MODULE_LDFLAGS="-module -avoid-version"
 AC_SUBST([PACKAGE_CFLAGS])
@@ -89,7 +182,7 @@ AC_CHECK_FUNCS([select])
 
 AC_ARG_ENABLE(lttvstatic,
        AC_HELP_STRING( [--enable-lttvstatic],
-               [Build a statically linked executable @<:@default=no@:>@]),
+               [build a statically linked executable @<:@default=no@:>@]),
                [with_lttvstatic="yes"],
                [with_lttvstatic="no"])
 AM_CONDITIONAL(LTTVSTATIC, test "x$with_lttvstatic" = "xyes")
@@ -122,30 +215,31 @@ AC_SUBST(lttctlincludedir)
                 #lttv/modules/gui/tutorial/Makefile
                 #lttv/modules/gui/diskperformance/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
+       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])
 AC_OUTPUT
This page took 0.025596 seconds and 4 git commands to generate.