| 1 | # This file is part of the Linux Trace Toolkit viewer |
| 2 | # Copyright (C) 2003-2004 Mathieu Desnoyers |
| 3 | # |
| 4 | # This program is free software; you can redistribute it and/or modify |
| 5 | # it under the terms of the GNU General Public License Version 2 as |
| 6 | # published by the Free Software Foundation; |
| 7 | # |
| 8 | # This program is distributed in the hope that it will be useful, |
| 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | # GNU General Public License for more details. |
| 12 | # |
| 13 | # You should have received a copy of the GNU General Public License |
| 14 | # along with this program; if not, write to the Free Software |
| 15 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
| 16 | # MA 02111-1307, USA. |
| 17 | |
| 18 | |
| 19 | |
| 20 | # -*- Autoconf -*- |
| 21 | # Process this file with autoconf to produce a configure script. |
| 22 | |
| 23 | AC_PREREQ(2.57) |
| 24 | AC_INIT([lttv], [0.12.30-02102010], [ltt-dev@lists.casi.polymtl.ca]) |
| 25 | AM_INIT_AUTOMAKE |
| 26 | AM_CONFIG_HEADER(config.h) |
| 27 | AM_PROG_LIBTOOL |
| 28 | |
| 29 | # If requested, only build LTT library part |
| 30 | AC_ARG_WITH(lttv, [ --with-lttv build whole LTTV system, as opposd to only the trace reading library |
| 31 | [[default=yes]]]) |
| 32 | if test -z "$with_lttv"; then |
| 33 | with_lttv=${with_lttv_default-yes} |
| 34 | else |
| 35 | if test "$with_lttv" = "no"; then |
| 36 | # Requesting lib-only turn off the lttv-gui building as well |
| 37 | with_lttv_gui="no" |
| 38 | fi |
| 39 | fi |
| 40 | AM_CONDITIONAL(BUILD_LIB_ONLY, test "$with_lttv" = "no") |
| 41 | |
| 42 | |
| 43 | # If requested, avoid building LTTV part |
| 44 | AC_ARG_WITH(lttv-gui, [ --with-lttv-gui build LTTV gui, as opposed to only build textmode LTTV |
| 45 | [[default=yes]]]) |
| 46 | |
| 47 | if test -z "$with_lttv_gui"; then |
| 48 | with_lttv_gui=${with_lttv_gui_default-yes} |
| 49 | fi |
| 50 | AM_CONDITIONAL(BUILD_LTTV_GUI, test "$with_lttv_gui" = "yes") |
| 51 | |
| 52 | 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) |
| 53 | |
| 54 | # GTK is only needed by the GUI |
| 55 | if test "$with_lttv_gui" = "yes" ; then |
| 56 | 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) |
| 57 | fi |
| 58 | |
| 59 | AC_PATH_PROGS(BASH, bash) |
| 60 | |
| 61 | AC_SYS_LARGEFILE |
| 62 | |
| 63 | # Checks for programs. |
| 64 | AC_PROG_CC |
| 65 | |
| 66 | # Checks for libraries. |
| 67 | AC_CHECK_LIB([popt], [poptGetNextOpt], POPT_LIBS="-lpopt", |
| 68 | AC_MSG_ERROR([libpopt is required in order to compile LinuxTraceToolkit])) |
| 69 | AC_CHECK_LIB([m], [round], M_LIBS="-lm", |
| 70 | AC_MSG_ERROR([Mathematical libraries are missing.])) |
| 71 | AC_CHECK_LIB([util], [forkpty], UTIL_LIBS="-lutil", |
| 72 | AC_MSG_ERROR([libutil is required in order to compile LinuxTraceToolkit])) |
| 73 | |
| 74 | AC_ARG_WITH([glpk], |
| 75 | [AS_HELP_STRING([--with-glpk@<:@=DIR@:>@], |
| 76 | [support trace synchronization accuracy calculation (needs glpk) |
| 77 | @<:@default=check@:>@])], |
| 78 | [], |
| 79 | [with_glpk=check]) |
| 80 | |
| 81 | GLPK_LIBS= |
| 82 | AS_IF([test "x$with_glpk" != xno], |
| 83 | [if test "x$with_glpk" != xyes -a -d "$with_glpk"; then |
| 84 | LDFLAGS="$LDFLAGS -L$with_glpk" |
| 85 | fi |
| 86 | AC_CHECK_LIB([glpk], [glp_create_prob], |
| 87 | [AC_SUBST([GLPK_LIBS], ["-lglpk"]) |
| 88 | AC_DEFINE([HAVE_LIBGLPK], [1], [Define if you have libglpk])], |
| 89 | [if test "x$with_glpk" != xcheck; then |
| 90 | AC_MSG_FAILURE( |
| 91 | [--with-glpk was given, but test for glpk failed]) |
| 92 | fi], |
| 93 | -lm)]) |
| 94 | |
| 95 | # pthread for gdb with dlopen(). |
| 96 | AC_CHECK_LIB(pthread, pthread_join, [], AC_MSG_ERROR([LinuxThreads is required in order to make sure gdb works fine with lttv-gui])) |
| 97 | |
| 98 | # Checks for header files. |
| 99 | AC_HEADER_STDC |
| 100 | AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h pthread.h]) |
| 101 | |
| 102 | # Set compile flags to java include files if given |
| 103 | AC_ARG_WITH(java_jdk, [ --with-java-jdk=DIR use java jdk from DIR. Ex : $JAVA_HOME.], JAVA_SDK=$withval,) |
| 104 | if test $JAVA_SDK; then |
| 105 | if test -d $JAVA_SDK; then |
| 106 | AC_MSG_RESULT([using java include in $JAVA_SDK]) |
| 107 | SUBDIRS=`find $JAVA_SDK/include -type d` |
| 108 | CFLAGS+=" " |
| 109 | CFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done` |
| 110 | CFLAGS+=" " |
| 111 | else |
| 112 | AC_MSG_ERROR(Unable to find java include file in $JAVA_JDK) |
| 113 | fi |
| 114 | fi |
| 115 | |
| 116 | |
| 117 | # Check for JNI header files if requested |
| 118 | AC_ARG_WITH(jni-interface, [ --with-jni-interface build JNI interface between C and java. Need java include files. |
| 119 | [[default=no]]]) |
| 120 | |
| 121 | if test -z "$with_jni_interface"; then |
| 122 | with_jni_interface=${with_jni_interface_default-no} |
| 123 | fi |
| 124 | |
| 125 | if test "$with_jni_interface" = "yes"; then |
| 126 | AC_CHECK_HEADERS([jni.h],,AC_MSG_ERROR([ |
| 127 | missing jni.h |
| 128 | Make sure Sun Java or GJC is installed and that this header file exists in the system path. |
| 129 | Use --with-java-jdk=DIR flag to point to your java include files or desactivate the JNI interface.])) |
| 130 | fi |
| 131 | AM_CONDITIONAL(BUILD_JNI_INTERFACE, test "$with_jni_interface" = "yes") |
| 132 | |
| 133 | |
| 134 | AC_ISC_POSIX |
| 135 | AC_PROG_CC |
| 136 | AM_PROG_CC_STDC |
| 137 | AC_HEADER_STDC |
| 138 | |
| 139 | # If we want the gui, we need additionnal flags for GTK |
| 140 | if test "$with_lttv_gui" = "yes" ; then |
| 141 | pkg_modules="gtk+-2.0 >= 2.0.0" |
| 142 | PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) |
| 143 | PACKAGE_CFLAGS="-Wall -Wformat" |
| 144 | AC_SUBST(PACKAGE_CFLAGS) |
| 145 | AC_SUBST(PACKAGE_LIBS) |
| 146 | # Else, we still have a dependency on gmodule |
| 147 | # We will add flags for gmodule alone |
| 148 | else |
| 149 | pkg_modules="gmodule-2.0 >= 2.0.0" |
| 150 | PKG_CHECK_MODULES(GMODULE, [$pkg_modules]) |
| 151 | PACKAGE_CFLAGS="-Wall -Wformat" |
| 152 | AC_SUBST(PACKAGE_CFLAGS) |
| 153 | AC_SUBST(PACKAGE_LIBS) |
| 154 | fi |
| 155 | |
| 156 | pkg_modules="gobject-2.0 >= 2.0.0" |
| 157 | PKG_CHECK_MODULES(GOBJECT, [$pkg_modules]) |
| 158 | |
| 159 | LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS" |
| 160 | PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -Wall -Wformat" |
| 161 | MODULE_CFLAGS="$PACKAGE_CFLAGS -fvisibility=hidden" |
| 162 | MODULE_LDFLAGS="-module -avoid-version" |
| 163 | AC_SUBST([PACKAGE_CFLAGS]) |
| 164 | AC_SUBST([MODULE_CFLAGS]) |
| 165 | AC_SUBST([MODULE_LDFLAGS]) |
| 166 | |
| 167 | # Checks for typedefs, structures, and compiler characteristics. |
| 168 | AC_HEADER_STDBOOL |
| 169 | AC_C_CONST |
| 170 | AC_C_INLINE |
| 171 | AC_TYPE_OFF_T |
| 172 | AC_TYPE_SIZE_T |
| 173 | AC_HEADER_TIME |
| 174 | |
| 175 | # Checks for library functions. |
| 176 | AC_FUNC_ERROR_AT_LINE |
| 177 | #AC_FUNC_MALLOC |
| 178 | AC_FUNC_SELECT_ARGTYPES |
| 179 | AC_CHECK_FUNCS([select]) |
| 180 | |
| 181 | #CPPFLAGS="$CPPFLAGS -I" |
| 182 | |
| 183 | AC_ARG_ENABLE(lttvstatic, |
| 184 | AC_HELP_STRING( [--enable-lttvstatic], |
| 185 | [build a statically linked executable @<:@default=no@:>@]), |
| 186 | [with_lttvstatic="yes"], |
| 187 | [with_lttvstatic="no"]) |
| 188 | AM_CONDITIONAL(LTTVSTATIC, test "x$with_lttvstatic" = "xyes") |
| 189 | lttvlibdir="${libdir}/lttv" |
| 190 | lttvplugindir="${lttvlibdir}/plugins" |
| 191 | #lttlibdir="${libdir}/ltt" |
| 192 | top_lttvdir="\$(top_srcdir)/lttv" |
| 193 | top_lttvwindowdir="\$(top_srcdir)/lttv/modules/gui/lttvwindow" |
| 194 | |
| 195 | DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_lttvdir) -I\$(top_lttvwindowdir)" |
| 196 | |
| 197 | lttincludedir="${includedir}/ltt" |
| 198 | lttvincludedir="${includedir}/lttv" |
| 199 | lttvwindowincludedir="${includedir}/lttvwindow" |
| 200 | lttctlincludedir="${includedir}/liblttctl" |
| 201 | |
| 202 | AC_SUBST([POPT_LIBS]) |
| 203 | AC_SUBST([UTIL_LIBS]) |
| 204 | AC_SUBST(lttvlibdir) |
| 205 | AC_SUBST(lttvplugindir) |
| 206 | #AC_SUBST(lttlibdir) |
| 207 | AC_SUBST(top_lttvdir) |
| 208 | AC_SUBST(top_lttvwindowdir) |
| 209 | AC_SUBST(DEFAULT_INCLUDES) |
| 210 | AC_SUBST(lttincludedir) |
| 211 | AC_SUBST(lttvincludedir) |
| 212 | AC_SUBST(lttvwindowincludedir) |
| 213 | AC_SUBST(lttctlincludedir) |
| 214 | |
| 215 | #lttv/modules/gui/tutorial/Makefile |
| 216 | #lttv/modules/gui/diskperformance/Makefile |
| 217 | AC_CONFIG_FILES([Makefile |
| 218 | lttv/Makefile |
| 219 | lttv/lttv/Makefile |
| 220 | lttv/lttv/sync/Makefile |
| 221 | lttv/modules/Makefile |
| 222 | lttv/modules/text/Makefile |
| 223 | lttv/modules/gui/Makefile |
| 224 | lttv/modules/gui/lttvwindow/Makefile |
| 225 | lttv/modules/gui/interrupts/Makefile |
| 226 | lttv/modules/gui/lttvwindow/lttvwindow/Makefile |
| 227 | lttv/modules/gui/lttvwindow/pixmaps/Makefile |
| 228 | lttv/modules/gui/controlflow/Makefile |
| 229 | lttv/modules/gui/detailedevents/Makefile |
| 230 | lttv/modules/gui/statistics/Makefile |
| 231 | lttv/modules/gui/histogram/Makefile |
| 232 | lttv/modules/gui/filter/Makefile |
| 233 | lttv/modules/gui/tracecontrol/Makefile |
| 234 | lttv/modules/gui/resourceview/Makefile |
| 235 | ltt/Makefile |
| 236 | doc/Makefile |
| 237 | doc/developer/Makefile |
| 238 | doc/developer/developer_guide/Makefile |
| 239 | doc/developer/developer_guide/docbook/Makefile |
| 240 | doc/developer/developer_guide/html/Makefile |
| 241 | doc/user/Makefile |
| 242 | doc/user/user_guide/Makefile |
| 243 | doc/user/user_guide/docbook/Makefile |
| 244 | doc/user/user_guide/html/Makefile]) |
| 245 | AC_OUTPUT |