1# Process this file with autoconf to produce a configure script.
2AC_INIT([gliv], esyscmd([echo -n $(head -n 1 NEWS)]), [guichaz@gmail.com])
3AC_CONFIG_SRCDIR([src/main.c])
4AM_INIT_AUTOMAKE([foreign])
5AM_CONFIG_HEADER([config.h])
6AC_LANG([C])
7AC_GNU_SOURCE
8
9
10# We check this before AC_PROG_CC fills blank CFLAGS with "-g -O2".
11if test "x$CFLAGS" = "x"; then
12  DEFAULT_CFLAGS=yes
13else
14  DEFAULT_CFLAGS=no
15fi
16
17# Checks for programs.
18AC_PROG_CC
19AC_PROG_RANLIB
20
21
22# Default CFLAGS.
23if test "x$GCC" = "xyes" && test "$DEFAULT_CFLAGS" = "yes"; then
24  CFLAGS="-Wall -O2 -fomit-frame-pointer -ffast-math"
25fi
26CFLAGS="$CFLAGS -I${srcdir}/../lib"
27
28# Checks for LFS flags, we may not handle big files, but it doesn't hurt.
29AC_SYS_LARGEFILE
30
31
32AC_DEFUN([CHECK_MATH],
33         [OLD_CFLAGS="$CFLAGS"]
34         [CFLAGS="$CFLAGS -w"]
35         [AC_SEARCH_LIBS([$1],
36                         [m mx],
37                         [AC_DEFINE(AS_TR_CPP([HAVE_$1]),
38                                    1,
39                                    [Define to 1 if you have the `$1' function.])])]
40        [CFLAGS="$OLD_CFLAGS"])
41
42CHECK_MATH([atan2])
43
44
45# Checks for hypot (SVID 3, BSD 4.3).
46# The replacement is #defined in the source.
47CHECK_MATH([hypot])
48
49
50# Checks for math functions using floats.
51# Using floats instead of doubles makes gcc use SSE with -msse
52# The replacement are #defined in math_floats.h.
53CHECK_MATH([sqrtf])
54CHECK_MATH([hypotf])
55CHECK_MATH([atan2f])
56CHECK_MATH([powf])
57CHECK_MATH([ceilf])
58CHECK_MATH([cosf])
59CHECK_MATH([sinf])
60CHECK_MATH([acosf])
61CHECK_MATH([fmodf])
62CHECK_MATH([fabsf])
63CHECK_MATH([log10f])
64
65# If we don't have ftello, we'll use ftell.
66AC_CHECK_FUNCS([ftello])
67
68# If we don't have fseeko, we'll use fseek.
69AC_CHECK_FUNCS([fseeko])
70
71
72# Checks for getdelim, this is a GNU extension.
73CFLAGS="$CFLAGS -D_GNU_SOURCE"
74AC_CHECK_FUNCS([getdelim], [
75  have_getdelim="yes"
76 ], [
77  have_getdelim="no"
78])
79
80AM_CONDITIONAL([GETDELIM], [test "$have_getdelim" = "yes"])
81
82
83# Checks for getopt_long, another GNU extension.
84AC_CHECK_FUNCS([getopt_long], [
85  have_getopt_long="yes"
86 ], [
87  have_getopt_long="no"
88])
89
90AM_CONDITIONAL([GETOPT_LONG], [test "$have_getopt_long" = "yes"])
91
92
93if test "$have_getdelim"    = "no" ||
94   test "$have_getopt_long" = "no"; then
95     AM_CONDITIONAL([NEED_REPLACEMENTS], [true])
96else
97     AM_CONDITIONAL([NEED_REPLACEMENTS], [false])
98fi
99
100
101# Checks for flavours of varargs macros (borrowed from glib-2)
102# ISO C99
103AC_MSG_CHECKING([for ISO C99 varargs macros])
104
105AC_TRY_COMPILE([],[
106  int a(int p1, int p2, int p3);
107  #define call_a(...) a(1,__VA_ARGS__)
108  call_a(2,3);
109 ], [have_iso_c_varargs=yes], [have_iso_c_varargs=no])
110
111AC_MSG_RESULT([$have_iso_c_varargs])
112
113if test $have_iso_c_varargs = yes; then
114  iso_c_varargs=1
115else
116  iso_c_varargs=0
117fi
118
119AC_DEFINE_UNQUOTED([HAVE_ISO_C_VARARGS], [$iso_c_varargs],
120                   [ISO C99 varargs macros in C])
121
122if test $have_iso_c_varargs = no; then
123  AC_MSG_WARN([No ISO C99 variadic macros])
124fi
125
126# 32bit or 64bit ?
127AC_CHECK_SIZEOF([unsigned long])
128
129# Checks for X.
130AC_PATH_XTRA
131CFLAGS="$X_CFLAGS $CFLAGS"
132LDFLAGS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS $LDFLAGS"
133
134# Checks for GtkGLExt.
135PKG_CHECK_MODULES(GTKGLEXT, [gtkglext-1.0 >= 0.7.0])
136CFLAGS="$GTKGLEXT_CFLAGS $CFLAGS"
137LDFLAGS="$GTKGLEXT_LIBS $LDFLAGS"
138GTKGL_VERSION="$($PKG_CONFIG --modversion gtkglext-1.0)"
139
140# Checks for OpenGL.
141AC_TRY_LINK([#include "GL/gl.h"],
142            [glBegin(GL_QUADS);],
143            [ogl="yes"],
144            [ogl="no"])
145
146if test "x$ogl" = "xno"; then
147 AC_MSG_NOTICE([maybe libGL requires libpthread...])
148 OLD_LDFLAGS="$LDFLAGS"
149 LDFLAGS="$LDFLAGS -lpthread"
150 AC_TRY_LINK([#include "GL/gl.h"],
151             [glBegin(GL_QUADS);],
152             [],
153             AC_MSG_ERROR([cannot use -lGL]))
154fi
155
156# Checks for gtk.
157AM_PATH_GTK_2_0([2.6.0], [
158  CFLAGS="$GTK_CFLAGS $CFLAGS"
159  LDFLAGS="$GTK_LIBS $LDFLAGS"
160  GTK_VERSION="$($PKG_CONFIG --modversion gtk+-2.0)"
161 ], [exit 1], [gthread])
162
163# I18n.
164ALL_LINGUAS=$(echo po/*.po | sed -e 's|\.po||g' -e 's|po/||g')
165AM_GNU_GETTEXT_VERSION
166AM_GNU_GETTEXT
167CFLAGS="$CFLAGS -I../${srcdir}/intl"
168LIBS="$LIBS $LIBINTL"
169
170
171AC_CONFIG_FILES([ intl/Makefile
172 Makefile
173 lib/Makefile
174 po/Makefile.in
175 tools/Makefile
176 tools/glade/Makefile
177 tools/glade/actions/Makefile
178 tools/glade/image_nr/Makefile
179 tools/glade/options/Makefile
180 man/Makefile
181 man/cs/Makefile
182 man/de/Makefile
183 man/en/Makefile
184 man/fr/Makefile
185 man/ru/Makefile
186 src/Makefile
187 gliv.spec
188])
189
190AC_OUTPUT
191
192echo
193echo "Using GTK+ $GTK_VERSION with GtkGLExt $GTKGL_VERSION"
194echo
195