Modernize configure.ac
[lttv.git] / configure.ac
CommitLineData
ce0214a6 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
9f14a497 20# -*- Autoconf -*-
21# Process this file with autoconf to produce a configure script.
22
23AC_PREREQ(2.57)
a0305332 24AC_INIT([lttv], [0.12.38-21032011], [yannick.brosseau@gmail.com])
2e589766
AM
25AC_CONFIG_AUX_DIR([config])
26AC_CONFIG_MACRO_DIR([config])
27AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip])
9ecb7d44 28AM_SILENT_RULES([yes])
2e589766
AM
29AC_CONFIG_HEADERS([config.h])
30LT_INIT
31
32# If requested, only build the ltt trace reading library
33AC_ARG_WITH(lttv,
34 AS_HELP_STRING([--with-lttv],
35 [build whole LTTV system, as opposd to only the trace reading library [[default=yes]]]),
36 [with_lttv="$withval"],
37 [with_lttv="yes"])
38
39# If we've requested the lib only, turn off the lttv-gui building as well
40AS_IF([test "x$with_lttv" = "xno"], [with_lttv_gui="no"])
41
42AM_CONDITIONAL([BUILD_LIB_ONLY], [ test "x$with_lttv" = "xno" ])
68d52dcc
WB
43
44
7b84cb1c 45# If requested, avoid building LTTV part
2e589766
AM
46AC_ARG_WITH(lttv-gui,
47 AS_HELP_STRING([--with-lttv-gui],
48 [build LTTV gui, as opposed to only build textmode LTTV [[default=yes]]]),
49 [with_lttv_gui="$withval"],
50 [with_lttv_gui="yes"])
68d52dcc 51
2e589766 52AM_CONDITIONAL([BUILD_LTTV_GUI], [ test "x$with_lttv_gui" = "xyes" ])
68d52dcc 53
2e589766 54AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR([glib is required in order to compile LTTV]) , gmodule)
9f14a497 55
68d52dcc 56# GTK is only needed by the GUI
2e589766
AM
57AS_IF([test "x$with_lttv_gui" = "xyes"],[
58 AM_PATH_GTK_2_0(2.4.0, , AC_MSG_ERROR([GTK 2 is required in order to compile the LTTV GUI]) , gmodule)
59])
442137a6 60
065f8f41 61AC_PATH_PROGS(BASH, bash)
62
ddd2aaff 63AC_SYS_LARGEFILE
64
9f14a497 65# Checks for programs.
66AC_PROG_CC
67
68# Checks for libraries.
2e589766
AM
69AC_CHECK_LIB([popt], [poptGetNextOpt], [],
70 AC_MSG_ERROR([libpopt is required in order to compile LTTV])
71)
72AC_CHECK_LIB([m], [round], [],
73 AC_MSG_ERROR([Mathematical libraries are missing.])
74)
75AC_CHECK_LIB([util], [forkpty], [],
76 AC_MSG_ERROR([libutil is required in order to compile LTTV])
77)
78
79# Trace synchronization feature, which requires libglpk
80AC_ARG_WITH([trace-sync],
81 AS_HELP_STRING([--with-trace-sync],
82 [support trace synchronization accuracy calculation (needs libglpk) [default=no]]),
83 [with_trace_sync="$withval"],
84 [with_trace_sync="no"])
85
86AS_IF([test "x$with_trace_sync" = "xyes"],[
87 AC_CHECK_LIB([glpk], [glp_create_prob], [], [
88 AC_MSG_ERROR([The trace synchronization feature requires libglpk, please install it first.])
89 ])
90 AC_DEFINE([HAVE_LIBGLPK], [1], [Define if you have libglpk]),
91])
92
36ea7706 93
9f14a497 94# Checks for header files.
95AC_HEADER_STDC
36ea7706 96AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h pthread.h])
9f14a497 97
68d52dcc 98# Set compile flags to java include files if given
2e589766
AM
99AC_ARG_WITH([java-jdk],
100 AS_HELP_STRING([--with-java-jdk=DIR],
101 [use java jdk from DIR. Ex : $JAVA_HOME.]),
102 [JAVA_SDK=$withval],
103 [])
104
105AS_IF([test $JAVA_SDK],[
106 AS_IF([test -d $JAVA_SDK],[
107 AC_MSG_RESULT([using java include in $JAVA_SDK])
108 SUBDIRS=`find $JAVA_SDK/include -type d`
a97fddd2 109 CFLAGS+=" "
2e589766 110 CFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done`
a97fddd2 111 CFLAGS+=" "
2e589766
AM
112 ],[
113 AC_MSG_ERROR([Unable to find Java include files in $JAVA_JDK])
114 ])
115])
68d52dcc
WB
116
117
118# Check for JNI header files if requested
2e589766
AM
119AC_ARG_WITH(jni-interface,
120 AS_HELP_STRING([--with-jni-interface],
121 [build JNI interface between C and Java. Needs JNI header file. [[default=no]]]),
122 [with_jni_interface="$withval"],
123 [with_jni_interface="no"])
124
125AS_IF([test "x$with_jni_interface" = "xyes"],[
126 AC_CHECK_HEADERS([jni.h], [], AC_MSG_ERROR([missing jni.h
a709aa2c 127Make sure Sun Java or OpenJDK or GCJ is installed and that this header file exists in the system path.
2e589766
AM
128Use --with-java-jdk=DIR flag to point to your java include files or deactivate the JNI interface.]))
129])
130AM_CONDITIONAL([BUILD_JNI_INTERFACE], [ test "$with_jni_interface" = "yes" ] )
68d52dcc
WB
131
132
78608bce 133# If we want the gui, we need additionnal flags for GTK
2e589766
AM
134AS_IF([test "x$with_lttv_gui" = "xyes"],[
135 pkg_modules="gtk+-2.0 >= 2.0.0"
136 PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
137],[
138 # Else, we still have a dependency on gmodule
139 # We will add flags for gmodule alone
140 pkg_modules="gmodule-2.0 >= 2.0.0"
141 PKG_CHECK_MODULES(GMODULE, [$pkg_modules])
142])
104325ef 143
3d55af6e
BP
144pkg_modules="gobject-2.0 >= 2.0.0"
145PKG_CHECK_MODULES(GOBJECT, [$pkg_modules])
146
2e589766
AM
147LIBS="$LIBS $GTK_LIBS $GOBJECT_LIBS $GMODULE_LIBS"
148PACKAGE_CFLAGS="$GTK_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -Wall -Wformat-security"
104325ef
BP
149MODULE_CFLAGS="$PACKAGE_CFLAGS -fvisibility=hidden"
150MODULE_LDFLAGS="-module -avoid-version"
151AC_SUBST([PACKAGE_CFLAGS])
2e589766 152AC_SUBST(PACKAGE_LIBS)
104325ef
BP
153AC_SUBST([MODULE_CFLAGS])
154AC_SUBST([MODULE_LDFLAGS])
388a40e9 155
9f14a497 156# Checks for typedefs, structures, and compiler characteristics.
157AC_HEADER_STDBOOL
158AC_C_CONST
159AC_C_INLINE
160AC_TYPE_OFF_T
161AC_TYPE_SIZE_T
162AC_HEADER_TIME
163
164# Checks for library functions.
165AC_FUNC_ERROR_AT_LINE
9f14a497 166AC_FUNC_SELECT_ARGTYPES
167AC_CHECK_FUNCS([select])
168
7d3dcbe0 169AC_ARG_ENABLE(lttvstatic,
2e589766
AM
170 AS_HELP_STRING([--enable-lttvstatic],
171 [build a statically linked executable [[default=no]]]),
172 [with_lttvstatic="$withval"],
173 [with_lttvstatic="no"])
174AM_CONDITIONAL([LTTVSTATIC], [ test "x$with_lttvstatic" = "xyes" ] )
175
25fba836 176lttvlibdir="${libdir}/lttv"
96cbee09 177lttvplugindir="${lttvlibdir}/plugins"
6da3640c 178#lttlibdir="${libdir}/ltt"
0c56e138 179top_lttvdir="\$(top_srcdir)/lttv"
13f86ce2 180top_lttvwindowdir="\$(top_srcdir)/lttv/modules/gui/lttvwindow"
fc17f7eb 181
f0d243f7 182DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_lttvdir) -I\$(top_lttvwindowdir)"
273475ce 183
d8f124de 184lttincludedir="${includedir}/ltt"
940dc6d6 185lttvincludedir="${includedir}/lttv"
13f86ce2 186lttvwindowincludedir="${includedir}/lttvwindow"
5cec0a15 187lttctlincludedir="${includedir}/liblttctl"
6591c2c3 188
25fba836 189AC_SUBST(lttvlibdir)
6591c2c3 190AC_SUBST(lttvplugindir)
6da3640c 191#AC_SUBST(lttlibdir)
6591c2c3 192AC_SUBST(top_lttvdir)
193AC_SUBST(top_lttvwindowdir)
194AC_SUBST(DEFAULT_INCLUDES)
195AC_SUBST(lttincludedir)
196AC_SUBST(lttvincludedir)
13f86ce2 197AC_SUBST(lttvwindowincludedir)
5cec0a15 198AC_SUBST(lttctlincludedir)
940dc6d6 199
9f14a497 200AC_CONFIG_FILES([Makefile
84baf72b
BP
201 lttv/Makefile
202 lttv/lttv/Makefile
ccf1db70 203 lttv/lttv/sync/Makefile
84baf72b
BP
204 lttv/modules/Makefile
205 lttv/modules/text/Makefile
206 lttv/modules/gui/Makefile
207 lttv/modules/gui/lttvwindow/Makefile
208 lttv/modules/gui/interrupts/Makefile
209 lttv/modules/gui/lttvwindow/lttvwindow/Makefile
210 lttv/modules/gui/lttvwindow/pixmaps/Makefile
211 lttv/modules/gui/controlflow/Makefile
212 lttv/modules/gui/detailedevents/Makefile
213 lttv/modules/gui/statistics/Makefile
214 lttv/modules/gui/histogram/Makefile
215 lttv/modules/gui/filter/Makefile
216 lttv/modules/gui/tracecontrol/Makefile
217 lttv/modules/gui/resourceview/Makefile
218 ltt/Makefile
219 doc/Makefile
220 doc/developer/Makefile
221 doc/developer/developer_guide/Makefile
222 doc/developer/developer_guide/docbook/Makefile
223 doc/developer/developer_guide/html/Makefile
224 doc/user/Makefile
225 doc/user/user_guide/Makefile
226 doc/user/user_guide/docbook/Makefile
227 doc/user/user_guide/html/Makefile])
2e589766 228
9f14a497 229AC_OUTPUT
2e589766 230
This page took 0.077875 seconds and 4 git commands to generate.