1 | dnl Initial configure.in by Rodrigo Hernandez |
---|
2 | dnl Modified in 26/10/2005 by Rodrigo Hernandez |
---|
3 | |
---|
4 | dnl AC_INIT does not take a macro as a version nr: set it separately! - Bram |
---|
5 | AC_INIT(ODE,0.9.0,ode@ode.org) |
---|
6 | |
---|
7 | dnl When upgrading version nr, also change the AC_INIT line! - Bram |
---|
8 | ODE_CURRENT=0 |
---|
9 | ODE_REVISION=9 |
---|
10 | ODE_AGE=0 |
---|
11 | ODE_RELEASE=[$ODE_CURRENT].[$ODE_REVISION].[$ODE_AGE] |
---|
12 | AC_CANONICAL_HOST |
---|
13 | AC_CANONICAL_TARGET |
---|
14 | |
---|
15 | AM_INIT_AUTOMAKE(ODE,[$ODE_RELEASE]) |
---|
16 | AM_CONFIG_HEADER(include/ode/config.h) |
---|
17 | dnl Set CFLAGS to zero, so that we avoid getting the gratis -g -O2 |
---|
18 | CFLAGS= |
---|
19 | CXXFLAGS= |
---|
20 | AC_C_BIGENDIAN |
---|
21 | AC_PATH_X |
---|
22 | AC_PATH_XTRA |
---|
23 | |
---|
24 | ODE_SONAME=libode.so.[$ODE_CURRENT] |
---|
25 | |
---|
26 | AC_SUBST(ODE_CURRENT) |
---|
27 | AC_SUBST(ODE_REVISION) |
---|
28 | AC_SUBST(ODE_AGE) |
---|
29 | AC_SUBST(ODE_RELEASE) |
---|
30 | AC_SUBST(ODE_SONAME) |
---|
31 | |
---|
32 | dnl This is needed because we have subdirectories |
---|
33 | AC_PROG_MAKE_SET |
---|
34 | |
---|
35 | AC_PROG_CXX |
---|
36 | AC_PROG_INSTALL |
---|
37 | AC_CHECK_TOOLS([WINDRES], [windres]) |
---|
38 | AC_C_CONST |
---|
39 | AC_C_INLINE |
---|
40 | AC_C_VOLATILE |
---|
41 | AC_HEADER_STDBOOL |
---|
42 | AC_PROG_RANLIB |
---|
43 | AC_TYPE_SIZE_T |
---|
44 | |
---|
45 | dnl Check if using sonames is requested |
---|
46 | dnl THIS IS TEMPORARY! |
---|
47 | AC_MSG_CHECKING(if a soname should be set) |
---|
48 | AC_ARG_ENABLE(soname,AC_HELP_STRING([--enable-soname], |
---|
49 | [Configure ODE shared library to set the soname field on ELF files]), |
---|
50 | use_soname=$enableval,use_soname=no) |
---|
51 | AC_MSG_RESULT($use_soname) |
---|
52 | AM_CONDITIONAL(USE_SONAME, test x$use_soname = xyes) |
---|
53 | |
---|
54 | |
---|
55 | dnl Check if we want to build demos |
---|
56 | AC_MSG_CHECKING(if tests should be built) |
---|
57 | AC_ARG_ENABLE(demos,AC_HELP_STRING([--enable-demos], [build tests]), enable_demos=$enableval,enable_demos=yes) |
---|
58 | AC_MSG_RESULT($enable_demos) |
---|
59 | AM_CONDITIONAL(ENABLE_DEMOS, test x$enable_demos = xyes) |
---|
60 | |
---|
61 | |
---|
62 | AC_ARG_WITH(arch,AC_HELP_STRING([--with-arch=[arch]], |
---|
63 | [build for $arch, where arch is any of the -march flags passed to gcc, without the -march, for example --with-arch=pentium3]), |
---|
64 | arch=$withval,arch=no) |
---|
65 | ARCHFLAGS="" |
---|
66 | if test "x$arch" != xno |
---|
67 | then |
---|
68 | ARCHFLAGS="-march=$arch" |
---|
69 | fi |
---|
70 | AC_SUBST(ARCHFLAGS) |
---|
71 | |
---|
72 | dnl Decide whether or not SSE is available |
---|
73 | dnl Why dont we compile and run programs like we do to find out if |
---|
74 | dnl this is a Pentium machine further down? simple! |
---|
75 | dnl this may NOT be the machine on which the code is going to run in, |
---|
76 | dnl so allow users to compile programs for their target machine. |
---|
77 | case "$arch" in |
---|
78 | pentium3 | pentium4 | athlon* ) |
---|
79 | AC_DEFINE(HAVE_SSE,,[Use SSE Optimizations]) |
---|
80 | ;; |
---|
81 | dnl this space available for other architectures specific extensions and/or |
---|
82 | dnl other Intel based extensions such as 3DNow, SSE2, MMX, etc. |
---|
83 | esac |
---|
84 | |
---|
85 | dnl check for required headers |
---|
86 | AC_CHECK_HEADERS( alloca.h ieeefp.h stdio.h stdlib.h math.h string.h stdarg.h malloc.h values.h float.h time.h sys/time.h ) |
---|
87 | |
---|
88 | |
---|
89 | opcode=no |
---|
90 | gimpact=no |
---|
91 | AC_ARG_WITH(trimesh,AC_HELP_STRING([--with-trimesh=[opcode|gimpact|none]], |
---|
92 | [use the specified system for trimesh support.]), |
---|
93 | trimesh=$withval,trimesh=opcode |
---|
94 | ) |
---|
95 | if test "$trimesh" = opcode |
---|
96 | then |
---|
97 | opcode=yes |
---|
98 | fi |
---|
99 | if test "$trimesh" = gimpact |
---|
100 | then |
---|
101 | gimpact=yes |
---|
102 | fi |
---|
103 | |
---|
104 | AM_CONDITIONAL(OPCODE, test $opcode = yes) |
---|
105 | AM_CONDITIONAL(GIMPACT, test $gimpact = yes) |
---|
106 | AM_CONDITIONAL(TRIMESH, test $opcode = yes -o $gimpact = yes) |
---|
107 | |
---|
108 | |
---|
109 | AC_MSG_CHECKING(if gyroscopic term should be used) |
---|
110 | AC_ARG_ENABLE(gyroscopic,AC_HELP_STRING([--disable-gyroscopic], |
---|
111 | [Configure ODE to work without gyroscopic term (may improve stability)]), |
---|
112 | gyroscopic=$enableval,gyroscopic=yes) |
---|
113 | AC_MSG_RESULT($gyroscopic) |
---|
114 | if test x"$gyroscopic" = xyes |
---|
115 | then |
---|
116 | AC_DEFINE(dGYROSCOPIC,,[Use gyroscopic terms]) |
---|
117 | fi |
---|
118 | |
---|
119 | dnl Check Precision, define the dInfinity constant--------------------------/ |
---|
120 | AC_MSG_CHECKING(if double precision is requested) |
---|
121 | AC_ARG_ENABLE(double-precision,AC_HELP_STRING([--enable-double-precision], |
---|
122 | [Configure ODE to work with double precision, if not specified, single precision is used]), |
---|
123 | precision=$enableval,precision=no) |
---|
124 | if test "$precision" != no |
---|
125 | then |
---|
126 | dnl DOUBLE was chosen |
---|
127 | AC_DEFINE(dDOUBLE,,[Use double precision]) |
---|
128 | dnl Check from lest likelly to more likelly. |
---|
129 | if test "$build_os" == "$target_os" |
---|
130 | then |
---|
131 | AC_TRY_RUN([ |
---|
132 | #define dInfinity 1e20 |
---|
133 | int main() |
---|
134 | { |
---|
135 | if (dInfinity > 1e10 && -dInfinity < -1e10 && -dInfinity < dInfinity) |
---|
136 | return 0; |
---|
137 | else return -1; |
---|
138 | } |
---|
139 | ],dinfinity=1e20,,) |
---|
140 | AC_TRY_RUN([ |
---|
141 | #define dInfinity 1.7976931348623157e+308 |
---|
142 | int main() |
---|
143 | { |
---|
144 | if (dInfinity > 1e10 && -dInfinity < -1e10 && -dInfinity < dInfinity) |
---|
145 | return 0; |
---|
146 | else return -1; |
---|
147 | } |
---|
148 | ],dinfinity=1.7976931348623157e+308,,) |
---|
149 | AC_TRY_RUN([ |
---|
150 | #include <float.h> |
---|
151 | #define dInfinity HUGE_VAL |
---|
152 | int main() |
---|
153 | { |
---|
154 | if (dInfinity > 1e10 && -dInfinity < -1e10 && -dInfinity < dInfinity) |
---|
155 | return 0; |
---|
156 | else return -1; |
---|
157 | } |
---|
158 | ],dinfinity=HUGE_VAL,,) |
---|
159 | AC_TRY_RUN([ |
---|
160 | #include <float.h> |
---|
161 | #define dInfinity DBL_MAX |
---|
162 | int main() |
---|
163 | { |
---|
164 | if (dInfinity > 1e10 && -dInfinity < -1e10 && -dInfinity < dInfinity) |
---|
165 | return 0; |
---|
166 | else return -1; |
---|
167 | } |
---|
168 | ],dinfinity=DBL_MAX,,) |
---|
169 | else |
---|
170 | #cross-compiling, use a reasonable value. We should add an option for setting this. |
---|
171 | dinfinity=DBL_MAX |
---|
172 | fi |
---|
173 | else |
---|
174 | dnl default to SINGLE. |
---|
175 | AC_DEFINE(dSINGLE,,[Use single precision]) |
---|
176 | dnl Check from lest likelly to more likelly. |
---|
177 | if test "$build_os" == "$target_os" |
---|
178 | then |
---|
179 | AC_TRY_RUN([ |
---|
180 | #define dInfinity 1e20f |
---|
181 | int main() |
---|
182 | { |
---|
183 | if (dInfinity > 1e10f && -dInfinity < -1e10f && -dInfinity < dInfinity) |
---|
184 | return 0; |
---|
185 | else return -1; |
---|
186 | } |
---|
187 | ],dinfinity=1e20f,,) |
---|
188 | AC_TRY_RUN([ |
---|
189 | #define dInfinity 3.402823466e+38F |
---|
190 | int main() |
---|
191 | { |
---|
192 | if (dInfinity > 1e10f && -dInfinity < -1e10f && -dInfinity < dInfinity) |
---|
193 | return 0; |
---|
194 | else return -1; |
---|
195 | } |
---|
196 | ],dinfinity=3.402823466e+38F,,) |
---|
197 | AC_TRY_RUN([ |
---|
198 | #include <float.h> |
---|
199 | #define dInfinity HUGE_VALF |
---|
200 | int main() |
---|
201 | { |
---|
202 | if (dInfinity > 1e10f && -dInfinity < -1e10f && -dInfinity < dInfinity) |
---|
203 | return 0; |
---|
204 | else return -1; |
---|
205 | } |
---|
206 | ],dinfinity=HUGE_VALF,,) |
---|
207 | AC_TRY_RUN([ |
---|
208 | #include <float.h> |
---|
209 | #define dInfinity FLT_MAX |
---|
210 | int main() |
---|
211 | { |
---|
212 | if (dInfinity > 1e10f && -dInfinity < -1e10f && -dInfinity < dInfinity) |
---|
213 | return 0; |
---|
214 | else return -1; |
---|
215 | } |
---|
216 | ],dinfinity=FLT_MAX,,) |
---|
217 | #cross-compiling, use a reasonable value. We should add an option for setting this. |
---|
218 | dinfinity=FLT_MAX |
---|
219 | fi |
---|
220 | fi |
---|
221 | AC_MSG_RESULT($precision) |
---|
222 | AC_DEFINE_UNQUOTED(dInfinity,${dinfinity},[dInfinity Constant]) |
---|
223 | AC_MSG_CHECKING(for appropriate dInfinity constant) |
---|
224 | AC_MSG_RESULT($dinfinity) |
---|
225 | dnl --------------------------------------------------------------------------/ |
---|
226 | |
---|
227 | dnl Define dEpsilon |
---|
228 | AC_CHECK_HEADER(float.h,[have_float_h=yes],[have_float_h=no]) |
---|
229 | AC_MSG_CHECKING(for appropriate dEpsilon constant) |
---|
230 | if test "x$have_float_h" == xyes |
---|
231 | then |
---|
232 | if test $precision == yes |
---|
233 | then |
---|
234 | dEpsilon=DBL_EPSILON |
---|
235 | else |
---|
236 | dEpsilon=FLT_EPSILON |
---|
237 | fi |
---|
238 | else |
---|
239 | if test $precision == yes |
---|
240 | then |
---|
241 | dEpsilon=2.2204460492503131e-16 |
---|
242 | else |
---|
243 | dEpsilon=1.19209290e-07f |
---|
244 | fi |
---|
245 | fi |
---|
246 | AC_DEFINE_UNQUOTED(dEpsilon,${dEpsilon},[dEpsilon Constant]) |
---|
247 | AC_MSG_RESULT($dEpsilon) |
---|
248 | |
---|
249 | |
---|
250 | dnl Check for PENTIUM |
---|
251 | if test "$build_os" == "$target_os" |
---|
252 | then |
---|
253 | AC_MSG_CHECKING(for a Pentium CPU) |
---|
254 | AC_TRY_RUN([ |
---|
255 | int main() |
---|
256 | { |
---|
257 | asm ("mov \$0,%%eax;\n" |
---|
258 | "cpuid\n" : : : "%eax"); |
---|
259 | return 0; |
---|
260 | }; |
---|
261 | ],pentium=yes,pentium=no,) |
---|
262 | else |
---|
263 | pentium=no |
---|
264 | fi |
---|
265 | if test "x$pentium" == xyes |
---|
266 | then |
---|
267 | AC_DEFINE(PENTIUM,1,[is this a pentium on a gcc-based platform?]) |
---|
268 | fi |
---|
269 | AC_MSG_RESULT($pentium) |
---|
270 | |
---|
271 | dnl Check for 64bit CPU |
---|
272 | AC_MSG_CHECKING(for a x86-64 CPU) |
---|
273 | if test "$build_os" == "$target_os" |
---|
274 | then |
---|
275 | AC_TRY_RUN([ |
---|
276 | int main() |
---|
277 | { |
---|
278 | int a = 0; |
---|
279 | int * pa = &a; |
---|
280 | asm ("mov %0,%%rax\n" |
---|
281 | "movl (%%rax),%%eax\n" |
---|
282 | : : "r"(pa) : "%rax"); |
---|
283 | return 0; |
---|
284 | }; |
---|
285 | ],cpu64=yes,cpu64=no,) |
---|
286 | else |
---|
287 | cpu64=no |
---|
288 | fi |
---|
289 | if test "x$cpu64" == xyes |
---|
290 | then |
---|
291 | AC_DEFINE(X86_64_SYSTEM,1,[is this a X86_64 system on a gcc-based platform?]) |
---|
292 | fi |
---|
293 | AC_MSG_RESULT($cpu64) |
---|
294 | AM_CONDITIONAL(X86_64_SYSTEM, test x$cpu64 = xyes) |
---|
295 | |
---|
296 | AC_MSG_CHECKING(if building a release library) |
---|
297 | AC_ARG_ENABLE(release,AC_HELP_STRING([--enable-release], |
---|
298 | [build a release library with -fomit-frame-pointer and -ffast-math]), |
---|
299 | release=$enableval,release=no) |
---|
300 | if test "x$release" == xyes |
---|
301 | then |
---|
302 | CFLAGS="$CFLAGS -fomit-frame-pointer -ffast-math" |
---|
303 | CPPFLAGS="$CPPFLAGS -fomit-frame-pointer -ffast-math" |
---|
304 | CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -ffast-math" |
---|
305 | AC_DEFINE(dNODEBUG,,[Disable debug output]) |
---|
306 | fi |
---|
307 | AC_MSG_RESULT($release) |
---|
308 | |
---|
309 | AC_MSG_CHECKING(if building a debug library) |
---|
310 | AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug], |
---|
311 | [Add debug symbols to the library with -g]), |
---|
312 | debug=$enableval,debug=yes) |
---|
313 | if test "x$debug" == xyes |
---|
314 | then |
---|
315 | CFLAGS="$CFLAGS -g" |
---|
316 | CPPFLAGS="$CPPFLAGS -g" |
---|
317 | CXXFLAGS="$CXXFLAGS -g" |
---|
318 | fi |
---|
319 | AC_MSG_RESULT($debug) |
---|
320 | |
---|
321 | |
---|
322 | dnl Check variable type sizes |
---|
323 | AC_CHECK_SIZEOF(char) |
---|
324 | AC_CHECK_SIZEOF(int) |
---|
325 | AC_CHECK_SIZEOF(short) |
---|
326 | AC_CHECK_SIZEOF(long int) |
---|
327 | AC_CHECK_SIZEOF(void*) |
---|
328 | |
---|
329 | dnl Set some Platform Specific Variables |
---|
330 | case "$host_os" in |
---|
331 | cygwin* | mingw*) |
---|
332 | so_ext=".dll" |
---|
333 | DLLDEFINE="-DODE_DLL" |
---|
334 | SHARED_LDFLAGS="-shared" |
---|
335 | drawstuff="Win32" # if in a Windows enviroment |
---|
336 | ;; |
---|
337 | *apple* | *darwin*) # For Mac OS X |
---|
338 | so_ext=".dylib" |
---|
339 | DLLDEFINE="" |
---|
340 | SHARED_LDFLAGS="-dynamiclib" |
---|
341 | drawstuff="OSX" |
---|
342 | dnl We need to use C++ compilation and linking for ode on Mac |
---|
343 | dnl Might as well do it for all code. |
---|
344 | CC="$CXX" |
---|
345 | LINK="$CXXLINK" |
---|
346 | ;; |
---|
347 | *) |
---|
348 | drawstuff="X11" # if anything else default to X11 |
---|
349 | if test x$use_soname = xyes; then |
---|
350 | so_ext=".so.$ODE_RELEASE" |
---|
351 | else |
---|
352 | so_ext=".so" |
---|
353 | fi |
---|
354 | DLLDEFINE="" |
---|
355 | SHARED_LDFLAGS="-shared" |
---|
356 | ;; |
---|
357 | esac |
---|
358 | dnl Set Conditionals |
---|
359 | AM_CONDITIONAL(WIN32, test x$drawstuff = xWin32) |
---|
360 | AM_CONDITIONAL(X11, test x$drawstuff = xX11) |
---|
361 | AM_CONDITIONAL(OSX, test x$drawstuff = xOSX) |
---|
362 | dnl Set Drawstuff variables |
---|
363 | AC_MSG_CHECKING(which drawstuff lib to build) |
---|
364 | AC_MSG_RESULT($drawstuff) |
---|
365 | AC_SUBST(DRAWSTUFF) |
---|
366 | dnl Set shared library variables |
---|
367 | AC_MSG_CHECKING(for the suffix of shared libraries) |
---|
368 | AC_MSG_RESULT($so_ext) |
---|
369 | AC_DEFINE_UNQUOTED(SO_EXT,"$so_ext",[The extension for shared libraries.]) |
---|
370 | AC_SUBST(so_ext) |
---|
371 | AC_SUBST(SHARED_LDFLAGS) |
---|
372 | |
---|
373 | dnl Check for AC_PATH_X variables |
---|
374 | if test "X$x_includes" != "XNONE"; then |
---|
375 | CFLAGS="$CFLAGS -I$x_includes" |
---|
376 | CXXFLAGS="$CXXFLAGS -I$x_includes" |
---|
377 | fi |
---|
378 | if test "X$x_libraries" != "XNONE"; then |
---|
379 | CFLAGS="$CFLAGS -L$x_libraries" |
---|
380 | CXXFLAGS="$CXXFLAGS -L$x_libraries" |
---|
381 | fi |
---|
382 | |
---|
383 | dnl Check for OpenGL |
---|
384 | if test "x$drawstuff" = "xOSX"; then |
---|
385 | AC_DEFINE([HAVE_APPLE_OPENGL_FRAMEWORK], [1], |
---|
386 | [Use the Apple OpenGL framework.]) |
---|
387 | GL_LIBS="-framework OpenGL -framework Carbon -framework AGL" |
---|
388 | else |
---|
389 | AC_CHECK_HEADERS(GL/gl.h GL/glu.h GL/glext.h,,, |
---|
390 | [[#if HAVE_GL_GL_H |
---|
391 | #include <GL/gl.h> |
---|
392 | #endif |
---|
393 | #if HAVE_GL_GLU_H |
---|
394 | #include <GL/glu.h> |
---|
395 | #endif |
---|
396 | ]]) |
---|
397 | AC_CHECK_LIB(GL, main,[GL_LIBS="$GL_LIBS -lGL"]) |
---|
398 | TEMP_LDFLAGS="$LDFLAGS" |
---|
399 | LDFLAGS="$LDFLAGS $GL_LIBS" |
---|
400 | AC_CHECK_LIB(GLU, main,[GL_LIBS="$GL_LIBS -lGLU"]) |
---|
401 | LDFLAGS="$TEMP_LDFLAGS" |
---|
402 | AC_CHECK_LIB(opengl32, main,[GL_LIBS="$GL_LIBS -lopengl32"]) |
---|
403 | AC_CHECK_LIB(glu32, main,[GL_LIBS="$GL_LIBS -lglu32"]) |
---|
404 | AC_CHECK_LIB(Xmu, main,[GL_LIBS="$GL_LIBS -lXmu"]) |
---|
405 | AC_CHECK_LIB(Xi, main,[GL_LIBS="$GL_LIBS -lXi"]) |
---|
406 | AC_CHECK_LIB(X, main,[GL_LIBS="$GL_LIBS -lX"]) |
---|
407 | AC_CHECK_LIB(X11, main,[GL_LIBS="$GL_LIBS -lX11"]) |
---|
408 | fi |
---|
409 | AC_SUBST(GL_LIBS) |
---|
410 | |
---|
411 | dnl Add some Windows libraries if found |
---|
412 | AC_CHECK_LIB(comctl32,main,[LIBS="$LIBS -lcomctl32"]) |
---|
413 | AC_CHECK_LIB(kernel32,main,[LIBS="$LIBS -lkernel32"]) |
---|
414 | AC_CHECK_LIB(user32,main,[LIBS="$LIBS -luser32"]) |
---|
415 | AC_CHECK_LIB(gdi32,main,[LIBS="$LIBS -lgdi32"]) |
---|
416 | AC_CHECK_LIB(winmm,main,[LIBS="$LIBS -lwinmm"]) |
---|
417 | |
---|
418 | dnl Add math and standard c++ lib just in case |
---|
419 | AC_CHECK_LIB(stdc++,main,[LIBS="$LIBS -lstdc++"]) |
---|
420 | AC_CHECK_LIB(m,main,[LIBS="$LIBS -lm"]) |
---|
421 | AC_CHECK_LIB(pthread,main,[LIBS="$LIBS -lpthread"]) |
---|
422 | |
---|
423 | |
---|
424 | TOPDIR=`cd $srcdir;pwd` |
---|
425 | AC_SUBST(TOPDIR) |
---|
426 | |
---|
427 | dnl Check if the user wants to profile ODE using gprof |
---|
428 | AC_MSG_CHECKING(for gprof) |
---|
429 | AC_ARG_ENABLE(gprof, |
---|
430 | AC_HELP_STRING([--enable-gprof],[enable profiling with gprof]), |
---|
431 | gprof=$enableval,gprof=no) |
---|
432 | if test "$gprof" != no |
---|
433 | then |
---|
434 | CFLAGS="-pg $CFLAGS" |
---|
435 | CPPFLAGS="-pg $CPPFLAGS" |
---|
436 | CXXFLAGS="-pg $CXXFLAGS" |
---|
437 | AC_CHECK_LIB(gmon, main,[LIBS="$LIBS -lgmon"]) |
---|
438 | AC_MSG_RESULT(enabled) |
---|
439 | else |
---|
440 | AC_MSG_RESULT(no) |
---|
441 | fi |
---|
442 | |
---|
443 | dnl Check for autoscan sugested functions |
---|
444 | AC_CHECK_FUNCS([floor memmove memset select sqrt sqrtf sinf cosf fabsf atan2f fmodf copysignf copysign snprintf vsnprintf gettimeofday isnan isnanf _isnan _isnanf __isnan __isnanf]) |
---|
445 | if test "$build_os" == "$target_os" |
---|
446 | then |
---|
447 | AC_FUNC_ALLOCA |
---|
448 | AC_FUNC_MALLOC |
---|
449 | AC_FUNC_OBSTACK |
---|
450 | AC_FUNC_REALLOC |
---|
451 | AC_FUNC_SELECT_ARGTYPES |
---|
452 | AC_FUNC_VPRINTF |
---|
453 | fi |
---|
454 | |
---|
455 | dnl include found system headers into config.h |
---|
456 | AH_TOP([ |
---|
457 | #ifndef ODE_CONFIG_H |
---|
458 | #define ODE_CONFIG_H |
---|
459 | ]) |
---|
460 | AH_BOTTOM([ |
---|
461 | |
---|
462 | #ifdef HAVE_ALLOCA_H |
---|
463 | #include <alloca.h> |
---|
464 | #endif |
---|
465 | #if defined(HAVE_IEEEFP_H) && !defined(__CYGWIN__) |
---|
466 | // This header creates conflicts with math.h in Cygwin. |
---|
467 | #include <ieeefp.h> |
---|
468 | #endif |
---|
469 | #ifdef HAVE_STDIO_H |
---|
470 | #include <stdio.h> |
---|
471 | #endif |
---|
472 | #ifdef HAVE_STDLIB_H |
---|
473 | #include <stdlib.h> |
---|
474 | #endif |
---|
475 | #ifdef HAVE_MATH_H |
---|
476 | #include <math.h> |
---|
477 | #endif |
---|
478 | #ifdef HAVE_STRING_H |
---|
479 | #include <string.h> |
---|
480 | #endif |
---|
481 | #ifdef HAVE_STDARG_H |
---|
482 | #include <stdarg.h> |
---|
483 | #endif |
---|
484 | #ifdef HAVE_MALLOC_H |
---|
485 | #include <malloc.h> |
---|
486 | #endif |
---|
487 | #ifdef HAVE_VALUES_H |
---|
488 | #include <values.h> |
---|
489 | #endif |
---|
490 | #ifdef HAVE_FLOAT_H |
---|
491 | #include <float.h> |
---|
492 | #endif |
---|
493 | #if SIZEOF_CHAR == 1 |
---|
494 | typedef char int8; |
---|
495 | typedef unsigned char uint8; |
---|
496 | #else |
---|
497 | #error "expecting sizeof(char) == 1" |
---|
498 | #endif |
---|
499 | #if SIZEOF_SHORT == 2 |
---|
500 | typedef short int16; |
---|
501 | typedef unsigned short uint16; |
---|
502 | #else |
---|
503 | #error "can not find 2 byte integer type" |
---|
504 | #endif |
---|
505 | /* integer types (we assume int >= 32 bits) */ |
---|
506 | #if SIZEOF_INT == 4 |
---|
507 | typedef short int32; |
---|
508 | typedef unsigned short uint32; |
---|
509 | #else |
---|
510 | #error "can not find 4 byte integer type" |
---|
511 | #endif |
---|
512 | /* an integer type that we can safely cast a pointer to and |
---|
513 | * from without loss of bits. |
---|
514 | */ |
---|
515 | #if SIZEOF_SHORT == SIZEOF_VOIDP |
---|
516 | typedef unsigned short intP; |
---|
517 | #elif SIZEOF_INT == SIZEOF_VOIDP |
---|
518 | typedef unsigned int intP; |
---|
519 | #elif SIZEOF_LONG_INT == SIZEOF_VOIDP |
---|
520 | typedef unsigned long int intP; |
---|
521 | #endif |
---|
522 | |
---|
523 | /* |
---|
524 | Handle Windows DLL odities |
---|
525 | Its easier to export all symbols using the -shared flag |
---|
526 | for MinGW than differentiating with declspec, |
---|
527 | so only do it for MSVC |
---|
528 | */ |
---|
529 | #if defined(ODE_DLL) && defined(WIN32) && defined(_MSC_VER) |
---|
530 | #define ODE_API __declspec( dllexport ) |
---|
531 | #elif !defined(ODE_DLL) && defined(WIN32) && defined(MSC_VER) |
---|
532 | #define ODE_API __declspec( dllimport ) |
---|
533 | #else |
---|
534 | #define ODE_API |
---|
535 | #endif |
---|
536 | |
---|
537 | #endif /* #define ODE_CONFIG_H */ |
---|
538 | ]) |
---|
539 | |
---|
540 | |
---|
541 | dnl Finally write our Makefiles |
---|
542 | AC_OUTPUT([ |
---|
543 | Makefile |
---|
544 | include/Makefile |
---|
545 | include/ode/Makefile |
---|
546 | ode/Makefile |
---|
547 | ode/src/Makefile |
---|
548 | drawstuff/Makefile |
---|
549 | drawstuff/src/Makefile |
---|
550 | drawstuff/dstest/Makefile |
---|
551 | ode/demo/Makefile |
---|
552 | tests/Makefile |
---|
553 | tests/CppTestHarness/Makefile |
---|
554 | ode-config |
---|
555 | ]) |
---|
556 | |
---|
557 | chmod +x ode-config |
---|
558 | |
---|
559 | dnl Print some useful information |
---|
560 | echo "Configuration:" |
---|
561 | echo " Target system type: $target" |
---|
562 | echo " Build system type: $build" |
---|
563 | echo " Host system type: $host" |
---|
564 | echo " Use double precision: $precision" |
---|
565 | echo " Use OPCODE: $opcode" |
---|
566 | echo " Use GIMPACT: $gimpact" |
---|
567 | echo " Use gyroscopic term: $gyroscopic" |
---|
568 | echo " Is this a Pentium: $pentium" |
---|
569 | echo " Is the CPU x86-64: $cpu64" |
---|
570 | echo " Is this a release build: $release" |
---|
571 | echo " Adding debug symbols: $debug" |
---|
572 | echo " Using SONAME: $use_soname" |
---|
573 | echo " Headers will be installed in $prefix/include/ode" |
---|
574 | echo " Libraries will be installed in $prefix/lib" |
---|
575 | |
---|
576 | if test $gimpact = yes -a $precision = yes |
---|
577 | then |
---|
578 | echo "WARNING! Double precision not yet supported for GIMPACT" |
---|
579 | fi |
---|
580 | |
---|