source: libpipi/trunk/configure.ac @ 3343

Last change on this file since 3343 was 3343, checked in by Sam Hocevar, 14 years ago

Got rid of the modular codec stuff. All codecs should work the same way.

File size: 7.3 KB
Line 
1# $Id$
2
3AC_INIT(libpipi, 0.0)
4AC_PREREQ(2.50)
5AC_CONFIG_AUX_DIR(.auto)
6AC_CANONICAL_SYSTEM
7AM_INIT_AUTOMAKE([no-define tar-ustar])
8dnl AM_MAINTAINER_MODE
9
10AM_CONFIG_HEADER(config.h)
11
12LT_MAJOR="0"
13LT_MINOR="0"
14LT_MICRO="0"
15AC_SUBST(LT_MAJOR)
16AC_SUBST(LT_MINOR)
17AC_SUBST(LT_MICRO)
18LT_VERSION="$LT_MAJOR:$LT_MINOR:$LT_MICRO"
19AC_SUBST(LT_VERSION)
20
21AM_PROG_CC_C_O
22AC_PROG_CPP
23AC_PROG_CXX
24AC_PROG_CXXCPP
25AC_PROG_OBJC
26_AM_DEPENDENCIES([OBJC])
27OBJC="${CC}"
28AC_SUBST(OBJC)
29AC_SUBST(OBJCFLAGS)
30
31AC_LIBTOOL_WIN32_DLL
32AM_PROG_LIBTOOL
33AC_LIBTOOL_CXX
34
35AC_C_CONST
36AC_C_INLINE
37
38dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
39dnl now otherwise it might be set in an obscure if statement. Same thing for
40dnl PKG_PROG_PKG_CONFIG which needs to be called first.
41AC_EGREP_CPP(yes, foo)
42PKG_PROG_PKG_CONFIG()
43m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
44if test "${build}" != "${host}" -a "${PKG_CONFIG_LIBDIR}" = ""; then
45  export PKG_CONFIG_LIBDIR=/dev/null
46fi
47
48AC_MSG_CHECKING(for library suffix)
49LT_SUFFIX="`./libtool -n --tag CC --mode=link gcc -o libTEST.la -no-undefined -version-number 123:666:999 -rpath / | xargs -n 1 | sed -ne 's/.*libTEST\(@<:@^, ()0-9@:>@*\)123\(@<:@^, ()0-9@:>@*\).*/\1'$LT_MAJOR'\2/p' | grep -v '\.$' | head -n 1`"
50if test "$LT_SUFFIX" = ""; then
51  LT_SUFFIX=".so.$LT_MAJOR"
52  AC_MSG_RESULT([unknown, defaulting to $LT_SUFFIX])
53else
54  AC_MSG_RESULT($LT_SUFFIX)
55fi
56AC_SUBST(LT_SUFFIX)
57
58dnl language bindings
59AC_ARG_ENABLE(csharp,
60  [  --enable-csharp         C# bindings (autodetected)])
61
62dnl conditional builds
63AC_ARG_ENABLE(debug,
64  [  --enable-debug          build debug versions of the library (default no)])
65AC_ARG_ENABLE(tiles,
66  [  --enable-tiles          experimental tiles support (default no)])
67
68AC_CHECK_HEADERS(stdio.h stdarg.h inttypes.h endian.h stdint.h getopt.h)
69
70ac_cv_have_getopt_long="no"
71AC_CHECK_FUNCS(getopt_long,
72 [ac_cv_have_getopt_long="yes"],
73 [AC_CHECK_LIB(gnugetopt, getopt_long,
74   [ac_cv_have_getopt_long="yes"
75    GETOPT_LIBS="${GETOPT_LIBS} -lgnugetopt"])])
76if test "$ac_cv_have_getopt_long" != "no"; then
77  AC_DEFINE(HAVE_GETOPT_LONG, 1, Define to 1 if you have the ‘getopt_long’ function.)
78fi
79AM_CONDITIONAL(NEED_GETOPT_LONG, test "$ac_cv_have_getopt_long" = "no")
80AC_SUBST(GETOPT_LIBS)
81
82# How to get the C99 types. See pipi/pipi_types.h.in for details about
83# the PIPI_TYPES variable
84if test "${ac_cv_my_have_vga}" = "yes"; then
85  PIPI_TYPES=0
86else
87  AC_CHECK_HEADERS(stdint.h,
88    [PIPI_TYPES=1],
89    [AC_CHECK_HEADERS(inttypes.h,
90      [PIPI_TYPES=2],
91      [AC_CHECK_HEADERS(windows.h,
92        [PIPI_TYPES=3],
93        [PIPI_TYPES=0])])])
94fi
95AC_SUBST(PIPI_TYPES)
96
97# Optimizations
98CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer"
99# Code qui fait des warnings == code de porc == deux baffes dans ta gueule
100CFLAGS="${CFLAGS} -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare"
101
102AC_CHECK_LIB(m, sin, MATH_LIBS="${MATH_LIBS} -lm")
103
104# Use SDL?
105ac_cv_my_have_sdl="no"
106save_CPPFLAGS="${CPPFLAGS}"
107AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
108if test "${SDL_CONFIG}" != "no"; then
109  CPPFLAGS="${CPPFLAGS} `sdl-config --cflags`"
110fi
111AC_CHECK_HEADERS(SDL_image.h,
112 [ac_cv_my_have_sdl="yes"],
113 [ac_cv_my_have_sdl="no"])
114CPPFLAGS="${save_CPPFLAGS}"
115if test "${ac_cv_my_have_sdl}" != "no"; then
116  AC_DEFINE(USE_SDL, 1, Define to 1 to use SDL_image)
117fi
118AM_CONDITIONAL(USE_SDL, test "${ac_cv_my_have_sdl}" = "yes")
119
120# Use OpenCV?
121ac_cv_my_have_opencv="no"
122OPENCV="no"
123PKG_CHECK_MODULES(OPENCV, opencv, [ac_cv_my_have_opencv="yes"], [:])
124if test "${ac_cv_my_have_opencv}" != "no"; then
125  AC_DEFINE(USE_OPENCV, 1, Define to 1 to use OpenCV)
126fi
127AM_CONDITIONAL(USE_OPENCV, test "${ac_cv_my_have_opencv}" = "yes")
128
129# Use Imlib2?
130ac_cv_my_have_imlib2="no"
131IMLIB2="no"
132PKG_CHECK_MODULES(IMLIB2, imlib2, [ac_cv_my_have_imlib2="yes"], [:])
133if test "${ac_cv_my_have_imlib2}" != "no"; then
134  AC_DEFINE(USE_IMLIB2, 1, Define to 1 to use Imlib2)
135fi
136AM_CONDITIONAL(USE_IMLIB2, test "${ac_cv_my_have_imlib2}" = "yes")
137
138# Use Windows GDI?
139ac_cv_my_have_gdi="no"
140GDI="no"
141AC_CHECK_HEADERS(windows.h,
142 [ac_cv_my_have_gdi="yes"],
143 [ac_cv_my_have_gdi="no"])
144if test "${ac_cv_my_have_gdi}" != "no"; then
145  AC_DEFINE(USE_GDI, 1, Define to 1 to use GDI)
146fi
147AM_CONDITIONAL(USE_GDI, test "${ac_cv_my_have_gdi}" = "yes")
148
149# Use Windows GDI+?
150ac_cv_my_have_gdiplus="no"
151AC_LANG_PUSH(C++)
152AC_CHECK_HEADERS(Gdiplus.h,
153 [ac_cv_my_have_gdiplus="yes"],
154 [ac_cv_my_have_gdiplus="no"],
155 [#include <windows.h>])
156AC_LANG_POP(C++)
157if test "${ac_cv_my_have_gdiplus}" != "no"; then
158  AC_DEFINE(USE_GDIPLUS, 1, Define to 1 to use GDI+)
159fi
160AM_CONDITIONAL(USE_GDIPLUS, test "${ac_cv_my_have_gdiplus}" = "yes")
161
162# Use Cocoa?
163ac_cv_my_have_cocoa="no"
164AC_CHECK_HEADERS(/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h,
165[
166 MACOSX_SDK_FRAMEWORKS="-F${MACOSX_SDK}/System/Library/Frameworks"
167 CPPFLAGS="${CPPFLAGS} ${ARCH} ${MACOSX_SDK_FRAMEWORKS} -I/Developer//SDKs/MacOSX10.5.sdk/System/Library/Frameworks/QuartzCore.framework/Versions/A/Headers/"
168 CFLAGS="${CFLAGS} ${MACOSX_SDK_CFLAGS} -I/Developer//SDKs/MacOSX10.5.sdk/System/Library/Frameworks/QuartzCore.framework/Versions/A/Headers/"
169 CXXFLAGS="${CXXFLAGS} ${MACOSX_SDK_CXXFLAGS}"
170 OBJCFLAGS="${OBJCFLAGS} ${MACOSX_SDK_CFLAGS}"
171 LDFLAGS="${ARCH} ${MACOSX_SDK_LDFLAGS} ${LDFLAGS}"
172 AC_DEFINE(USE_COCOA, 1, Define to 1 to activate the Cocoa backend driver)
173#    CACA_LIBS="${CACA_LIBS} -Wl,-syslibroot,${MACOSX_SDK},-framework,Cocoa"
174#    CACA_DRIVERS="${CACA_DRIVERS} cocoa"
175 ac_cv_my_have_cocoa="yes"],
176 [ac_cv_my_have_cocoa="no"]
177 )
178AM_CONDITIONAL(USE_COCOA, test "${ac_cv_my_have_cocoa}" = "yes")
179
180# Use libjpeg?
181ac_cv_my_have_jpeg="no"
182AC_CHECK_HEADERS(jpeglib.h,
183 [ac_cv_my_have_jpeg="yes"],
184 [ac_cv_my_have_jpeg="no"])
185if test "${ac_cv_my_have_jpeg}" != "no"; then
186  AC_DEFINE(USE_JPEG, 1, Define to 1 to use libjpeg)
187fi
188AM_CONDITIONAL(USE_JPEG, test "${ac_cv_my_have_jpeg}" = "yes")
189
190if test "${ac_cv_my_have_sdl}" = "no" -a "${ac_cv_my_have_imlib2}" = "no" -a "${ac_cv_my_have_opencv}" = "no" -a "${ac_cv_my_have_cocoa}" = "no" -a "${ac_cv_my_have_jpeg}" = "no"; then
191  AC_MSG_ERROR([[cannot find GDI+, SDL_Image, Imlib2, Cocoa or OpenCV, please install one of them]])
192fi
193
194if test "${enable_debug}" = "yes"; then
195  AC_DEFINE(DEBUG, 1, Define to 1 to activate debug)
196fi
197
198if test "${enable_tiles}" = "yes"; then
199  AC_DEFINE(USE_TILES, 1, Define to 1 to activate experimental tiles)
200fi
201
202AC_SUBST(MATH_LIBS)
203
204# Build the .NET bindings?
205ac_cv_my_have_csharp="no"
206if test "${enable_csharp}" != "no"; then
207  AC_PATH_PROG(GMCS, gmcs, no)
208  AC_PATH_PROG(GACUTIL, gacutil, no)
209  if test "${GMCS}" != "no" -a "${GACUTIL}" != "no"; then
210    ac_cv_my_have_csharp="yes"
211  fi
212fi
213AM_CONDITIONAL(USE_CSHARP, test "${ac_cv_my_have_csharp}" = "yes")
214
215# Build The Pimp?
216ac_cv_my_have_gtksharp="${ac_cv_my_have_csharp}"
217PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0], [:], [ac_cv_my_have_gtksharp=no])
218PKG_CHECK_MODULES([GTK_SHARP_20], [gtk-sharp-2.0], [:], [ac_cv_my_have_gtksharp=no])
219AM_CONDITIONAL(USE_GTKSHARP, test "${ac_cv_my_have_gtksharp}" != no)
220
221AC_CONFIG_FILES([
222  Makefile
223  pipi/Makefile
224  src/Makefile
225  genethumb/Makefile
226  examples/Makefile
227  test/Makefile
228  pipi-sharp/Makefile
229  ThePimp/Makefile
230  win32/Makefile
231])
232AC_CONFIG_FILES([
233  pipi/pipi_types.h
234  pipi/pipi.pc
235  pipi-sharp/pipi-sharp.pc
236  pipi-sharp/pipi-sharp.dll.config
237])
238AC_CONFIG_FILES([ThePimp/pimp], [chmod +x ThePimp/pimp])
239
240AC_OUTPUT
241
Note: See TracBrowser for help on using the repository browser.