From 68d52dcc787ef7ec0baf7b77547cd5c555ba6fea Mon Sep 17 00:00:00 2001 From: William Bourque Date: Thu, 17 Sep 2009 11:39:56 -0400 Subject: [PATCH] Reimplemented build option into new repo. --- Makefile.am | 4 +++ configure.ac | 76 ++++++++++++++++++++++++++++++++++++---- ltt/Makefile.am | 6 ++++ lttv/lttv/Makefile.am | 10 ++++++ lttv/modules/Makefile.am | 5 +++ 5 files changed, 95 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index 48869279..9f817965 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,10 @@ # WARNING : ltt must come before lttv, so that the traceread library is # up to date +if BUILD_LIB_ONLY +SUBDIRS = ltt doc +else SUBDIRS = ltt lttv doc +endif EXTRA_DIST = LTTngManual.html diff --git a/configure.ac b/configure.ac index 67da0ca4..c232c2eb 100644 --- a/configure.ac +++ b/configure.ac @@ -27,9 +27,32 @@ AM_INIT_AUTOMAKE(lttv,0.12.17-01072009) AM_CONFIG_HEADER(config.h) AM_PROG_LIBTOOL +# If requested, only build LTT library part +AC_ARG_WITH(liblttvtraceread-only, [ --with-liblttvtraceread-only Do not build any LTT ui, only compile the trace reading library]) +if test -z "$with_liblttvtraceread_only"; then + with_liblttvtraceread_only=${with_liblttvtraceread_only_default-no} +else + # Requesting lib-only turn off the lttv-gui building as well + enable_lttv_gui="no" +fi +AM_CONDITIONAL(BUILD_LIB_ONLY, test "$with_liblttvtraceread_only" = "yes") + + +# If requested, avoid building LLTv part +AC_ARG_ENABLE(lttv-gui, +[ --disable-lttv-gui Do not build LTTv gui, only build textmode LTTv]) + +if test -z "$enable_lttv_gui"; then + enable_lttv_gui=${enable_lttv_gui_default-yes} +fi +AM_CONDITIONAL(BUILD_LTTV_GUI, test "$enable_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 "$enable_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) @@ -42,7 +65,8 @@ AC_PROG_CC 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([util], [forkpty], UTIL_LIBS="-lutil", AC_MSG_ERROR([ +libutil is required in order to compile LinuxTraceToolkit])) # pthread for gdb with dlopen(). @@ -52,19 +76,59 @@ 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` + CPPFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done` + else + AC_MSG_ERROR(Unable to find java include file in $JAVA_JDK) + fi +fi + + +# Check for JNI header files if requested +AC_ARG_ENABLE(jni-interface, +[ --enable-jni-interface build JNI interface between C and java. Need java include files. ]) + +if test -z "$enable_jni_interface"; then + enable_jni_interface=${enable_jni_interface_default-no} +fi + +if test "$enable_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 "$enable_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 test "$enable_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) +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" +if test "$enable_lttv_gui" = "yes" ; then + LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS" + PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS -Wall -Wformat" +else + LIBS="$LIBS $GOBJECT_LIBS" + PACKAGE_CFLAGS="$GOBJECT_CFLAGS -Wall -Wformat" +fi MODULE_CFLAGS="$PACKAGE_CFLAGS -fvisibility=hidden" MODULE_LDFLAGS="-module -avoid-version" AC_SUBST([PACKAGE_CFLAGS]) diff --git a/ltt/Makefile.am b/ltt/Makefile.am index 2850f4d2..f503e633 100644 --- a/ltt/Makefile.am +++ b/ltt/Makefile.am @@ -9,7 +9,13 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) lib_LTLIBRARIES = liblttvtraceread.la + +if BUILD_JNI_INTERFACE +liblttvtraceread_la_SOURCES = jni_interface.c tracefile.c marker.c event.c +else liblttvtraceread_la_SOURCES = tracefile.c marker.c event.c +endif + noinst_HEADERS = ltt-private.h lttinclude_HEADERS = \ diff --git a/lttv/lttv/Makefile.am b/lttv/lttv/Makefile.am index b0bc52f4..e63f4d7f 100644 --- a/lttv/lttv/Makefile.am +++ b/lttv/lttv/Makefile.am @@ -3,9 +3,19 @@ LDADD = $(POPT_LIBS) ${top_builddir}/ltt/liblttvtraceread.la bin_PROGRAMS = lttv.real +if BUILD_LTTV_GUI bin_SCRIPTS = lttv lttv-gui +else +bin_SCRIPTS = lttv +endif + CLEANFILES = $(bin_SCRIPTS) + +if BUILD_LTTV_GUI EXTRA_DIST = lttv.sh lttv-gui.sh +else +EXTRA_DIST = lttv.sh +endif lttv: lttv.sh rm -f lttv diff --git a/lttv/modules/Makefile.am b/lttv/modules/Makefile.am index 14a47143..ce977e5e 100644 --- a/lttv/modules/Makefile.am +++ b/lttv/modules/Makefile.am @@ -24,5 +24,10 @@ # # the gui subdir comes first : dependency + +if BUILD_LTTV_GUI SUBDIRS = text gui +else +SUBDIRS = text +endif -- 2.34.1