]> git.saurik.com Git - wxWidgets.git/blob - aclocal.m4
last commit accidentally used out of date aclocal.m4 and so overwrote some previous...
[wxWidgets.git] / aclocal.m4
1 # generated automatically by aclocal 1.9.4 -*- Autoconf -*-
2
3 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
4 # Free Software Foundation, Inc.
5 # This file is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 dnl ---------------------------------------------------------------------------
15 dnl Compiler detection macros by David Elliott
16 dnl ---------------------------------------------------------------------------
17
18
19 dnl ===========================================================================
20 dnl Macros to detect non-GNU compilers (MetroWerks, XLC)
21 dnl ===========================================================================
22
23 dnl Based on autoconf _AC_LANG_COMPILER_GNU
24 AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_MWERKS],
25 [AC_CACHE_CHECK([whether we are using the Metrowerks _AC_LANG compiler],
26 [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks],
27 [AC_TRY_COMPILE([],[#ifndef __MWERKS__
28 choke me
29 #endif
30 ],
31 [bakefile_compiler_mwerks=yes],
32 [bakefile_compiler_mwerks=no])
33 bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_mwerks=$bakefile_compiler_mwerks
34 ])
35 ])
36
37 dnl Loosely based on autoconf AC_PROG_CC
38 dnl TODO: Maybe this should wrap the call to AC_PROG_CC and be used instead.
39 AC_DEFUN([AC_BAKEFILE_PROG_MWCC],
40 [AC_LANG_PUSH(C)
41 _AC_BAKEFILE_LANG_COMPILER_MWERKS
42 MWCC=`test $bakefile_cv_c_compiler_mwerks = yes && echo yes`
43 AC_LANG_POP(C)
44 ])
45
46 dnl Loosely based on autoconf AC_PROG_CXX
47 dnl TODO: Maybe this should wrap the call to AC_PROG_CXX and be used instead.
48 AC_DEFUN([AC_BAKEFILE_PROG_MWCXX],
49 [AC_LANG_PUSH(C++)
50 _AC_BAKEFILE_LANG_COMPILER_MWERKS
51 MWCXX=`test $bakefile_cv_cxx_compiler_mwerks = yes && echo yes`
52 AC_LANG_POP(C++)
53 ])
54
55 dnl Based on autoconf _AC_LANG_COMPILER_GNU
56 AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_XLC],
57 [AC_CACHE_CHECK([whether we are using the IBM xlC _AC_LANG compiler],
58 [wx_cv_[]_AC_LANG_ABBREV[]_compiler_xlc],
59 [AC_TRY_COMPILE([],[#ifndef __xlC__
60 choke me
61 #endif
62 ],
63 [wx_compiler_xlc=yes],
64 [wx_compiler_xlc=no])
65 wx_cv_[]_AC_LANG_ABBREV[]_compiler_xlc=$wx_compiler_xlc
66 ])
67 ])
68
69 dnl Loosely based on autoconf AC_PROG_CC
70 AC_DEFUN([AC_BAKEFILE_PROG_XLCC],
71 [AC_LANG_PUSH(C)
72 _AC_BAKEFILE_LANG_COMPILER_XLC
73 XLCC=`test $wx_cv_c_compiler_xlc = yes && echo yes`
74 AC_LANG_POP(C)
75 ])
76
77 dnl Loosely based on autoconf AC_PROG_CXX
78 AC_DEFUN([AC_BAKEFILE_PROG_XLCXX],
79 [AC_LANG_PUSH(C++)
80 _AC_BAKEFILE_LANG_COMPILER_XLC
81 XLCXX=`test $wx_cv_cxx_compiler_xlc = yes && echo yes`
82 AC_LANG_POP(C++)
83 ])
84
85 dnl Based on autoconf _AC_LANG_COMPILER_GNU
86 dnl _AC_BAKEFILE_LANG_COMPILER(NAME, LANG, SYMBOL, IF-YES, IF-NO)
87 AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER],
88 [
89 AC_LANG_PUSH($2)
90 AC_CACHE_CHECK(
91 [whether we are using the $1 $2 compiler],
92 [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3],
93 [AC_TRY_COMPILE(
94 [],
95 [
96 #ifndef $3
97 choke me
98 #endif
99 ],
100 [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=yes],
101 [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=no]
102 )
103 ]
104 )
105 AC_LANG_POP($2)
106 if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3" = "xyes"; then
107 :; $4
108 else
109 :; $5
110 fi
111 ])
112
113 dnl Loosely based on autoconf AC_PROG_CC
114 AC_DEFUN([AC_BAKEFILE_PROG_SUNCC],
115 [
116 _AC_BAKEFILE_LANG_COMPILER(Sun, C, __SUNPRO_C, SUNCC=yes)
117 ])
118
119 dnl Loosely based on autoconf AC_PROG_CC
120 AC_DEFUN([AC_BAKEFILE_PROG_SUNCXX],
121 [
122 _AC_BAKEFILE_LANG_COMPILER(Sun, C++, __SUNPRO_CC, SUNCXX=yes)
123 ])
124
125
126 dnl ===========================================================================
127 dnl macros to detect specialty compiler options
128 dnl ===========================================================================
129
130 dnl Figure out if we need to pass -ext o to compiler (MetroWerks)
131 AC_DEFUN([AC_BAKEFILE_METROWERKS_EXTO],
132 [AC_CACHE_CHECK([if the _AC_LANG compiler requires -ext o], wx_cv_[]_AC_LANG_ABBREV[]_exto,
133 dnl First create an empty conf test
134 [AC_LANG_CONFTEST([AC_LANG_PROGRAM()])
135 dnl Now remove .o and .c.o or .cc.o
136 rm -f conftest.$ac_objext conftest.$ac_ext.o
137 dnl Now compile the test
138 AS_IF([AC_TRY_EVAL(ac_compile)],
139 dnl If the test succeeded look for conftest.c.o or conftest.cc.o
140 [for ac_file in `(ls conftest.* 2>/dev/null)`; do
141 case $ac_file in
142 conftest.$ac_ext.o)
143 wx_cv_[]_AC_LANG_ABBREV[]_exto="-ext o"
144 ;;
145 *)
146 ;;
147 esac
148 done],
149 [AC_MSG_FAILURE([cannot figure out if compiler needs -ext o: cannot compile])
150 ]) dnl AS_IF
151
152 rm -f conftest.$ac_ext.o conftest.$ac_objext conftest.$ac_ext
153 ]) dnl AC_CACHE_CHECK
154
155 if test "x$wx_cv_[]_AC_LANG_ABBREV[]_exto" '!=' "x"; then
156 if test "[]_AC_LANG_ABBREV[]" = "c"; then
157 CFLAGS="$wx_cv_[]_AC_LANG_ABBREV[]_exto $CFLAGS"
158 fi
159 if test "[]_AC_LANG_ABBREV[]" = "cxx"; then
160 CXXFLAGS="$wx_cv_[]_AC_LANG_ABBREV[]_exto $CXXFLAGS"
161 fi
162 fi
163 ]) dnl AC_DEFUN
164
165
166 dnl ===========================================================================
167 dnl Macros to do all of the compiler detections as one macro
168 dnl ===========================================================================
169 AC_DEFUN([AC_BAKEFILE_PROG_CC],
170 [
171 AC_PROG_CC
172 AC_BAKEFILE_METROWERKS_EXTO
173 dnl By the time we find out that we need -ext o some tests have failed.
174 if test "x$wx_cv_c_exto" '!=' "x"; then
175 unset ac_cv_prog_cc_g
176 _AC_PROG_CC_G
177 fi
178 AC_BAKEFILE_PROG_MWCC
179 AC_BAKEFILE_PROG_XLCC
180 AC_BAKEFILE_PROG_SUNCC
181 ])
182
183 AC_DEFUN([AC_BAKEFILE_PROG_CXX],
184 [
185 AC_PROG_CXX
186 AC_BAKEFILE_METROWERKS_EXTO
187 dnl By the time we find out that we need -ext o some tests have failed.
188 if test "x$wx_cv_cxx_exto" '!=' "x"; then
189 unset ac_cv_prog_cxx_g
190 _AC_PROG_CXX_G
191 fi
192 AC_BAKEFILE_PROG_MWCXX
193 AC_BAKEFILE_PROG_XLCXX
194 AC_BAKEFILE_PROG_SUNCXX
195 ])
196
197
198 dnl ---------------------------------------------------------------------------
199 dnl Support macros for makefiles generated by BAKEFILE.
200 dnl ---------------------------------------------------------------------------
201
202 dnl Lots of compiler & linker detection code contained here was taken from
203 dnl wxWindows configure.in script (see http://www.wxwindows.org)
204
205
206
207 dnl ---------------------------------------------------------------------------
208 dnl AC_BAKEFILE_GNUMAKE
209 dnl
210 dnl Detects GNU make
211 dnl ---------------------------------------------------------------------------
212
213 AC_DEFUN([AC_BAKEFILE_GNUMAKE],
214 [
215 dnl does make support "-include" (only GNU make does AFAIK)?
216 AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu,
217 [
218 if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
219 egrep -s GNU > /dev/null); then
220 bakefile_cv_prog_makeisgnu="yes"
221 else
222 bakefile_cv_prog_makeisgnu="no"
223 fi
224 ])
225
226 if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then
227 IF_GNU_MAKE=""
228 else
229 IF_GNU_MAKE="#"
230 fi
231 AC_SUBST(IF_GNU_MAKE)
232 ])
233
234 dnl ---------------------------------------------------------------------------
235 dnl AC_BAKEFILE_PLATFORM
236 dnl
237 dnl Detects platform and sets PLATFORM_XXX variables accordingly
238 dnl ---------------------------------------------------------------------------
239
240 AC_DEFUN([AC_BAKEFILE_PLATFORM],
241 [
242 PLATFORM_UNIX=0
243 PLATFORM_WIN32=0
244 PLATFORM_MSDOS=0
245 PLATFORM_MAC=0
246 PLATFORM_MACOS=0
247 PLATFORM_MACOSX=0
248 PLATFORM_OS2=0
249 PLATFORM_BEOS=0
250
251 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then
252 case "${BAKEFILE_HOST}" in
253 *-*-mingw32* )
254 PLATFORM_WIN32=1
255 ;;
256 *-pc-msdosdjgpp )
257 PLATFORM_MSDOS=1
258 ;;
259 *-pc-os2_emx | *-pc-os2-emx )
260 PLATFORM_OS2=1
261 ;;
262 *-*-darwin* )
263 PLATFORM_MAC=1
264 PLATFORM_MACOSX=1
265 ;;
266 *-*-beos* )
267 PLATFORM_BEOS=1
268 ;;
269 powerpc-apple-macos* )
270 PLATFORM_MAC=1
271 PLATFORM_MACOS=1
272 ;;
273 * )
274 PLATFORM_UNIX=1
275 ;;
276 esac
277 else
278 case "$BAKEFILE_FORCE_PLATFORM" in
279 win32 )
280 PLATFORM_WIN32=1
281 ;;
282 msdos )
283 PLATFORM_MSDOS=1
284 ;;
285 os2 )
286 PLATFORM_OS2=1
287 ;;
288 darwin )
289 PLATFORM_MAC=1
290 PLATFORM_MACOSX=1
291 ;;
292 unix )
293 PLATFORM_UNIX=1
294 ;;
295 beos )
296 PLATFORM_BEOS=1
297 ;;
298 * )
299 AC_MSG_ERROR([Unknown platform: $BAKEFILE_FORCE_PLATFORM])
300 ;;
301 esac
302 fi
303
304 AC_SUBST(PLATFORM_UNIX)
305 AC_SUBST(PLATFORM_WIN32)
306 AC_SUBST(PLATFORM_MSDOS)
307 AC_SUBST(PLATFORM_MAC)
308 AC_SUBST(PLATFORM_MACOS)
309 AC_SUBST(PLATFORM_MACOSX)
310 AC_SUBST(PLATFORM_OS2)
311 AC_SUBST(PLATFORM_BEOS)
312 ])
313
314
315 dnl ---------------------------------------------------------------------------
316 dnl AC_BAKEFILE_PLATFORM_SPECIFICS
317 dnl
318 dnl Sets misc platform-specific settings
319 dnl ---------------------------------------------------------------------------
320
321 AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS],
322 [
323 AC_ARG_ENABLE([omf], AS_HELP_STRING([--enable-omf],
324 [use OMF object format (OS/2)]),
325 [bk_os2_use_omf="$enableval"])
326
327 case "${BAKEFILE_HOST}" in
328 *-*-darwin* )
329 dnl For Unix to MacOS X porting instructions, see:
330 dnl http://fink.sourceforge.net/doc/porting/porting.html
331 if test "x$GCC" = "xyes"; then
332 CFLAGS="$CFLAGS -fno-common"
333 CXXFLAGS="$CXXFLAGS -fno-common"
334 fi
335 if test "x$XLCC" = "xyes"; then
336 CFLAGS="$CFLAGS -qnocommon"
337 CXXFLAGS="$CXXFLAGS -qnocommon"
338 fi
339 ;;
340
341 *-pc-os2_emx | *-pc-os2-emx )
342 if test "x$bk_os2_use_omf" = "xyes" ; then
343 AR=emxomfar
344 RANLIB=:
345 LDFLAGS="-Zomf $LDFLAGS"
346 CFLAGS="-Zomf $CFLAGS"
347 CXXFLAGS="-Zomf $CXXFLAGS"
348 OS2_LIBEXT="lib"
349 else
350 OS2_LIBEXT="a"
351 fi
352 ;;
353
354 i*86-*-beos* )
355 LDFLAGS="-L/boot/develop/lib/x86 $LDFLAGS"
356 ;;
357 esac
358 ])
359
360 dnl ---------------------------------------------------------------------------
361 dnl AC_BAKEFILE_SUFFIXES
362 dnl
363 dnl Detects shared various suffixes for shared libraries, libraries, programs,
364 dnl plugins etc.
365 dnl ---------------------------------------------------------------------------
366
367 AC_DEFUN([AC_BAKEFILE_SUFFIXES],
368 [
369 SO_SUFFIX="so"
370 SO_SUFFIX_MODULE="so"
371 EXEEXT=""
372 LIBPREFIX="lib"
373 LIBEXT=".a"
374 DLLPREFIX="lib"
375 DLLPREFIX_MODULE=""
376 DLLIMP_SUFFIX=""
377 dlldir="$libdir"
378
379 case "${BAKEFILE_HOST}" in
380 *-hp-hpux* )
381 SO_SUFFIX="sl"
382 SO_SUFFIX_MODULE="sl"
383 ;;
384 *-*-aix* )
385 dnl quoting from
386 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
387 dnl Both archive libraries and shared libraries on AIX have an
388 dnl .a extension. This will explain why you can't link with an
389 dnl .so and why it works with the name changed to .a.
390 SO_SUFFIX="a"
391 SO_SUFFIX_MODULE="a"
392 ;;
393 *-*-cygwin* )
394 SO_SUFFIX="dll"
395 SO_SUFFIX_MODULE="dll"
396 DLLIMP_SUFFIX="dll.a"
397 EXEEXT=".exe"
398 DLLPREFIX="cyg"
399 dlldir="$bindir"
400 ;;
401 *-*-mingw32* )
402 SO_SUFFIX="dll"
403 SO_SUFFIX_MODULE="dll"
404 DLLIMP_SUFFIX="dll.a"
405 EXEEXT=".exe"
406 DLLPREFIX=""
407 dlldir="$bindir"
408 ;;
409 *-pc-msdosdjgpp )
410 EXEEXT=".exe"
411 DLLPREFIX=""
412 dlldir="$bindir"
413 ;;
414 *-pc-os2_emx | *-pc-os2-emx )
415 SO_SUFFIX="dll"
416 SO_SUFFIX_MODULE="dll"
417 DLLIMP_SUFFIX=$OS2_LIBEXT
418 EXEEXT=".exe"
419 DLLPREFIX=""
420 LIBPREFIX=""
421 LIBEXT=".$OS2_LIBEXT"
422 dlldir="$bindir"
423 ;;
424 *-*-darwin* )
425 SO_SUFFIX="dylib"
426 SO_SUFFIX_MODULE="bundle"
427 ;;
428 esac
429
430 if test "x$DLLIMP_SUFFIX" = "x" ; then
431 DLLIMP_SUFFIX="$SO_SUFFIX"
432 fi
433
434 AC_SUBST(SO_SUFFIX)
435 AC_SUBST(SO_SUFFIX_MODULE)
436 AC_SUBST(DLLIMP_SUFFIX)
437 AC_SUBST(EXEEXT)
438 AC_SUBST(LIBPREFIX)
439 AC_SUBST(LIBEXT)
440 AC_SUBST(DLLPREFIX)
441 AC_SUBST(DLLPREFIX_MODULE)
442 AC_SUBST(dlldir)
443 ])
444
445
446 dnl ---------------------------------------------------------------------------
447 dnl AC_BAKEFILE_SHARED_LD
448 dnl
449 dnl Detects command for making shared libraries, substitutes SHARED_LD_CC
450 dnl and SHARED_LD_CXX.
451 dnl ---------------------------------------------------------------------------
452
453 AC_DEFUN([AC_BAKEFILE_SHARED_LD],
454 [
455 dnl the extra compiler flags needed for compilation of shared library
456 PIC_FLAG=""
457 if test "x$GCC" = "xyes"; then
458 dnl the switch for gcc is the same under all platforms
459 PIC_FLAG="-fPIC"
460 fi
461
462 dnl Defaults for GCC and ELF .so shared libs:
463 SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o"
464 SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o"
465 WINDOWS_IMPLIB=0
466
467 case "${BAKEFILE_HOST}" in
468 *-hp-hpux* )
469 dnl default settings are good for gcc but not for the native HP-UX
470 if test "x$GCC" != "xyes"; then
471 dnl no idea why it wants it, but it does
472 LDFLAGS="$LDFLAGS -L/usr/lib"
473
474 SHARED_LD_CC="${CC} -b -o"
475 SHARED_LD_CXX="${CXX} -b -o"
476 PIC_FLAG="+Z"
477 fi
478 ;;
479
480 *-*-linux* )
481 if test "x$GCC" != "xyes"; then
482 AC_CACHE_CHECK([for Intel compiler], bakefile_cv_prog_icc,
483 [
484 AC_TRY_COMPILE([],
485 [
486 #ifndef __INTEL_COMPILER
487 #error Not icc
488 #endif
489 ],
490 bakefile_cv_prog_icc=yes,
491 bakefile_cv_prog_icc=no
492 )
493 ])
494 if test "$bakefile_cv_prog_icc" = "yes"; then
495 PIC_FLAG="-KPIC"
496 fi
497 fi
498 ;;
499
500 *-*-solaris2* )
501 if test "x$GCC" != xyes ; then
502 SHARED_LD_CC="${CC} -G -o"
503 SHARED_LD_CXX="${CXX} -G -o"
504 PIC_FLAG="-KPIC"
505 fi
506 ;;
507
508 *-*-darwin* )
509 dnl Most apps benefit from being fully binded (its faster and static
510 dnl variables initialized at startup work).
511 dnl This can be done either with the exe linker flag -Wl,-bind_at_load
512 dnl or with a double stage link in order to create a single module
513 dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
514
515 dnl If using newer dev tools then there is a -single_module flag that
516 dnl we can use to do this, otherwise we'll need to use a helper
517 dnl script. Check the version of gcc to see which way we can go:
518 AC_CACHE_CHECK([for gcc 3.1 or later], wx_cv_gcc31, [
519 AC_TRY_COMPILE([],
520 [
521 #if (__GNUC__ < 3) || \
522 ((__GNUC__ == 3) && (__GNUC_MINOR__ < 1))
523 #error old gcc
524 #endif
525 ],
526 [
527 wx_cv_gcc31=yes
528 ],
529 [
530 wx_cv_gcc31=no
531 ]
532 )
533 ])
534 if test "$wx_cv_gcc31" = "no"; then
535 AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH
536 chmod +x shared-ld-sh
537
538 dnl Use the shared-ld-sh helper script
539 SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o"
540 SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o"
541 SHARED_LD_CXX="$SHARED_LD_CC"
542 SHARED_LD_MODULE_CXX="$SHARED_LD_MODULE_CC"
543 else
544 dnl Use the -single_module flag and let the linker do it for us
545 SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o"
546 SHARED_LD_MODULE_CC="\${CC} -bundle -single_module -headerpad_max_install_names -o"
547 SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o"
548 SHARED_LD_MODULE_CXX="\${CXX} -bundle -single_module -headerpad_max_install_names -o"
549 fi
550
551 if test "x$GCC" == "xyes"; then
552 PIC_FLAG="-dynamic -fPIC"
553 fi
554 if test "x$XLCC" = "xyes"; then
555 PIC_FLAG="-dynamic -DPIC"
556 fi
557 ;;
558
559 *-*-aix* )
560 dnl default settings are ok for gcc
561 if test "x$GCC" != "xyes"; then
562 dnl the abs path below used to be hardcoded here so I guess it must
563 dnl be some sort of standard location under AIX?
564 AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
565 makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
566 dnl FIXME - what about makeCSharedLib?
567 SHARED_LD_CC="$AIX_CC_LD -p 0 -o"
568 SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o"
569 fi
570 ;;
571
572 *-*-beos* )
573 dnl can't use gcc under BeOS for shared library creation because it
574 dnl complains about missing 'main'
575 SHARED_LD_CC="${LD} -nostart -o"
576 SHARED_LD_CXX="${LD} -nostart -o"
577 ;;
578
579 *-*-irix* )
580 dnl default settings are ok for gcc
581 if test "x$GCC" != "xyes"; then
582 PIC_FLAG="-KPIC"
583 fi
584 ;;
585
586 *-*-cygwin* | *-*-mingw32* )
587 PIC_FLAG=""
588 SHARED_LD_CC="\$(CC) -shared -o"
589 SHARED_LD_CXX="\$(CXX) -shared -o"
590 WINDOWS_IMPLIB=1
591 ;;
592
593 *-pc-os2_emx | *-pc-os2-emx )
594 SHARED_LD_CC="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
595 SHARED_LD_CXX="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
596 PIC_FLAG=""
597 AC_BAKEFILE_CREATE_FILE_DLLAR_SH
598 chmod +x dllar.sh
599 ;;
600
601 powerpc-apple-macos* | \
602 *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
603 *-*-sunos4* | \
604 *-*-osf* | \
605 *-*-dgux5* | \
606 *-*-sysv5* | \
607 *-pc-msdosdjgpp )
608 dnl defaults are ok
609 ;;
610
611 *)
612 AC_MSG_ERROR(unknown system type $BAKEFILE_HOST.)
613 esac
614
615 if test "x$PIC_FLAG" != "x" ; then
616 PIC_FLAG="$PIC_FLAG -DPIC"
617 fi
618
619 if test "x$SHARED_LD_MODULE_CC" = "x" ; then
620 SHARED_LD_MODULE_CC="$SHARED_LD_CC"
621 fi
622 if test "x$SHARED_LD_MODULE_CXX" = "x" ; then
623 SHARED_LD_MODULE_CXX="$SHARED_LD_CXX"
624 fi
625
626 AC_SUBST(SHARED_LD_CC)
627 AC_SUBST(SHARED_LD_CXX)
628 AC_SUBST(SHARED_LD_MODULE_CC)
629 AC_SUBST(SHARED_LD_MODULE_CXX)
630 AC_SUBST(PIC_FLAG)
631 AC_SUBST(WINDOWS_IMPLIB)
632 ])
633
634
635 dnl ---------------------------------------------------------------------------
636 dnl AC_BAKEFILE_SHARED_VERSIONS
637 dnl
638 dnl Detects linker options for attaching versions (sonames) to shared libs.
639 dnl ---------------------------------------------------------------------------
640
641 AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
642 [
643 USE_SOVERSION=0
644 USE_SOVERLINUX=0
645 USE_SOVERSOLARIS=0
646 USE_SOVERCYGWIN=0
647 USE_SOSYMLINKS=0
648 USE_MACVERSION=0
649 SONAME_FLAG=
650
651 case "${BAKEFILE_HOST}" in
652 *-*-linux* | *-*-freebsd* )
653 SONAME_FLAG="-Wl,-soname,"
654 USE_SOVERSION=1
655 USE_SOVERLINUX=1
656 USE_SOSYMLINKS=1
657 ;;
658
659 *-*-solaris2* )
660 SONAME_FLAG="-h "
661 USE_SOVERSION=1
662 USE_SOVERSOLARIS=1
663 USE_SOSYMLINKS=1
664 ;;
665
666 *-*-darwin* )
667 USE_MACVERSION=1
668 USE_SOVERSION=1
669 USE_SOSYMLINKS=1
670 ;;
671
672 *-*-cygwin* )
673 USE_SOVERSION=1
674 USE_SOVERCYGWIN=1
675 ;;
676 esac
677
678 AC_SUBST(USE_SOVERSION)
679 AC_SUBST(USE_SOVERLINUX)
680 AC_SUBST(USE_SOVERSOLARIS)
681 AC_SUBST(USE_SOVERCYGWIN)
682 AC_SUBST(USE_MACVERSION)
683 AC_SUBST(USE_SOSYMLINKS)
684 AC_SUBST(SONAME_FLAG)
685 ])
686
687
688 dnl ---------------------------------------------------------------------------
689 dnl AC_BAKEFILE_DEPS
690 dnl
691 dnl Detects available C/C++ dependency tracking options
692 dnl ---------------------------------------------------------------------------
693
694 AC_DEFUN([AC_BAKEFILE_DEPS],
695 [
696 AC_MSG_CHECKING([for dependency tracking method])
697 DEPS_TRACKING=0
698
699 if test "x$GCC" = "xyes"; then
700 DEPSMODE=gcc
701 DEPS_TRACKING=1
702 case "${BAKEFILE_HOST}" in
703 *-*-darwin* )
704 dnl -cpp-precomp (the default) conflicts with -MMD option
705 dnl used by bk-deps (see also http://developer.apple.com/documentation/Darwin/Conceptual/PortingUnix/compiling/chapter_4_section_3.html)
706 DEPSFLAG_GCC="-no-cpp-precomp -MMD"
707 ;;
708 * )
709 DEPSFLAG_GCC="-MMD"
710 ;;
711 esac
712 AC_MSG_RESULT([gcc])
713 elif test "x$MWCC" = "xyes"; then
714 DEPSMODE=mwcc
715 DEPS_TRACKING=1
716 DEPSFLAG_MWCC="-MM"
717 AC_MSG_RESULT([mwcc])
718 elif test "x$SUNCC" = "xyes"; then
719 DEPSMODE=suncc
720 DEPS_TRACKING=1
721 DEPSFLAG_SUNCC="-xM1"
722 AC_MSG_RESULT([suncc])
723 else
724 AC_MSG_RESULT([none])
725 fi
726
727 if test $DEPS_TRACKING = 1 ; then
728 AC_BAKEFILE_CREATE_FILE_BK_DEPS
729 chmod +x bk-deps
730 fi
731
732 AC_SUBST(DEPS_TRACKING)
733 ])
734
735 dnl ---------------------------------------------------------------------------
736 dnl AC_BAKEFILE_CHECK_BASIC_STUFF
737 dnl
738 dnl Checks for presence of basic programs, such as C and C++ compiler, "ranlib"
739 dnl or "install"
740 dnl ---------------------------------------------------------------------------
741
742 AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF],
743 [
744 AC_PROG_RANLIB
745 AC_PROG_INSTALL
746 AC_PROG_LN_S
747
748 AC_PROG_MAKE_SET
749 AC_SUBST(MAKE_SET)
750
751 AC_CHECK_TOOL(AR, ar, ar)
752 AC_CHECK_TOOL(STRIP, strip, :)
753 AC_CHECK_TOOL(NM, nm, :)
754
755 case ${BAKEFILE_HOST} in
756 *-hp-hpux* )
757 dnl HP-UX install doesn't handle the "-d" switch so don't
758 dnl use it there
759 INSTALL_DIR="mkdir -p"
760 ;;
761 *) INSTALL_DIR="$INSTALL -d"
762 ;;
763 esac
764 AC_SUBST(INSTALL_DIR)
765
766 LDFLAGS_GUI=
767 case ${BAKEFILE_HOST} in
768 *-*-cygwin* | *-*-mingw32* )
769 LDFLAGS_GUI="-mwindows"
770 esac
771 AC_SUBST(LDFLAGS_GUI)
772 ])
773
774
775 dnl ---------------------------------------------------------------------------
776 dnl AC_BAKEFILE_RES_COMPILERS
777 dnl
778 dnl Checks for presence of resource compilers for win32 or mac
779 dnl ---------------------------------------------------------------------------
780
781 AC_DEFUN([AC_BAKEFILE_RES_COMPILERS],
782 [
783 RESCOMP=
784 SETFILE=
785
786 case ${BAKEFILE_HOST} in
787 *-*-cygwin* | *-*-mingw32* )
788 dnl Check for win32 resources compiler:
789 if test "$build" != "$host" ; then
790 RESCOMP=$host_alias-windres
791 else
792 AC_CHECK_PROG(RESCOMP, windres, windres, windres)
793 fi
794 ;;
795
796 *-*-darwin* | powerpc-apple-macos* )
797 AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
798 AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
799 ;;
800 esac
801
802 AC_SUBST(RESCOMP)
803 AC_SUBST(SETFILE)
804 ])
805
806 dnl ---------------------------------------------------------------------------
807 dnl AC_BAKEFILE_PRECOMP_HEADERS
808 dnl
809 dnl Check for precompiled headers support (GCC >= 3.4)
810 dnl ---------------------------------------------------------------------------
811
812 AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS],
813 [
814
815 AC_ARG_ENABLE([precomp-headers],
816 AS_HELP_STRING([--disable-precomp-headers],
817 [don't use precompiled headers even if compiler can]),
818 [bk_use_pch="$enableval"])
819
820 GCC_PCH=0
821
822 if test "x$bk_use_pch" = "x" -o "x$bk_use_pch" = "xyes" ; then
823 if test "x$GCC" = "xyes"; then
824 dnl test if we have gcc-3.4:
825 AC_MSG_CHECKING([if the compiler supports precompiled headers])
826 AC_TRY_COMPILE([],
827 [
828 #if !defined(__GNUC__) || !defined(__GNUC_MINOR__)
829 #error "no pch support"
830 #endif
831 #if (__GNUC__ < 3)
832 #error "no pch support"
833 #endif
834 #if (__GNUC__ == 3) && \
835 ((!defined(__APPLE_CC__) && (__GNUC_MINOR__ < 4)) || \
836 ( defined(__APPLE_CC__) && (__GNUC_MINOR__ < 3)))
837 #error "no pch support"
838 #endif
839 ],
840 [
841 AC_MSG_RESULT([yes])
842 GCC_PCH=1
843 ],
844 [
845 AC_MSG_RESULT([no])
846 ])
847 if test $GCC_PCH = 1 ; then
848 AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH
849 chmod +x bk-make-pch
850 fi
851 fi
852 fi
853
854 AC_SUBST(GCC_PCH)
855 ])
856
857
858
859 dnl ---------------------------------------------------------------------------
860 dnl AC_BAKEFILE([autoconf_inc.m4 inclusion])
861 dnl
862 dnl To be used in configure.in of any project using Bakefile-generated mks
863 dnl
864 dnl Behaviour can be modified by setting following variables:
865 dnl BAKEFILE_CHECK_BASICS set to "no" if you don't want bakefile to
866 dnl to perform check for basic tools like ranlib
867 dnl BAKEFILE_HOST set this to override host detection, defaults
868 dnl to ${host}
869 dnl BAKEFILE_FORCE_PLATFORM set to override platform detection
870 dnl
871 dnl Example usage:
872 dnl
873 dnl AC_BAKEFILE([FOO(autoconf_inc.m4)])
874 dnl
875 dnl (replace FOO with m4_include above, aclocal would die otherwise)
876 dnl (yes, it's ugly, but thanks to a bug in aclocal, it's the only thing
877 dnl we can do...)
878 dnl ---------------------------------------------------------------------------
879
880 AC_DEFUN([AC_BAKEFILE],
881 [
882 AC_PREREQ(2.58)
883
884 if test "x$BAKEFILE_HOST" = "x"; then
885 BAKEFILE_HOST="${host}"
886 fi
887
888 if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then
889 AC_BAKEFILE_CHECK_BASIC_STUFF
890 fi
891 AC_BAKEFILE_GNUMAKE
892 AC_BAKEFILE_PLATFORM
893 AC_BAKEFILE_PLATFORM_SPECIFICS
894 AC_BAKEFILE_SUFFIXES
895 AC_BAKEFILE_SHARED_LD
896 AC_BAKEFILE_SHARED_VERSIONS
897 AC_BAKEFILE_DEPS
898 AC_BAKEFILE_RES_COMPILERS
899
900 BAKEFILE_BAKEFILE_M4_VERSION="0.1.9"
901
902 dnl includes autoconf_inc.m4:
903 $1
904
905 if test "$BAKEFILE_AUTOCONF_INC_M4_VERSION" = "" ; then
906 AC_MSG_ERROR([No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.in wasn't updated (see the documentation)?])
907 fi
908
909 if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then
910 AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.])
911 fi
912 ])
913
914
915 dnl ---------------------------------------------------------------------------
916 dnl Embedded copies of helper scripts follow:
917 dnl ---------------------------------------------------------------------------
918
919 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_DLLAR_SH],
920 [
921 dnl ===================== dllar.sh begins here =====================
922 dnl (Created by merge-scripts.py from dllar.sh
923 dnl file do not edit here!)
924 D='$'
925 cat <<EOF >dllar.sh
926 #!/bin/sh
927 #
928 # dllar - a tool to build both a .dll and an .a file
929 # from a set of object (.o) files for EMX/OS2.
930 #
931 # Written by Andrew Zabolotny, bit@freya.etu.ru
932 # Ported to Unix like shell by Stefan Neis, Stefan.Neis@t-online.de
933 #
934 # This script will accept a set of files on the command line.
935 # All the public symbols from the .o files will be exported into
936 # a .DEF file, then linker will be run (through gcc) against them to
937 # build a shared library consisting of all given .o files. All libraries
938 # (.a) will be first decompressed into component .o files then act as
939 # described above. You can optionally give a description (-d "description")
940 # which will be put into .DLL. To see the list of accepted options (as well
941 # as command-line format) simply run this program without options. The .DLL
942 # is built to be imported by name (there is no guarantee that new versions
943 # of the library you build will have same ordinals for same symbols).
944 #
945 # dllar is free software; you can redistribute it and/or modify
946 # it under the terms of the GNU General Public License as published by
947 # the Free Software Foundation; either version 2, or (at your option)
948 # any later version.
949 #
950 # dllar is distributed in the hope that it will be useful,
951 # but WITHOUT ANY WARRANTY; without even the implied warranty of
952 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
953 # GNU General Public License for more details.
954 #
955 # You should have received a copy of the GNU General Public License
956 # along with dllar; see the file COPYING. If not, write to the Free
957 # Software Foundation, 59 Temple Place - Suite 330, Boston, MA
958 # 02111-1307, USA.
959
960 # To successfuly run this program you will need:
961 # - Current drive should have LFN support (HPFS, ext2, network, etc)
962 # (Sometimes dllar generates filenames which won't fit 8.3 scheme)
963 # - gcc
964 # (used to build the .dll)
965 # - emxexp
966 # (used to create .def file from .o files)
967 # - emximp
968 # (used to create .a file from .def file)
969 # - GNU text utilites (cat, sort, uniq)
970 # used to process emxexp output
971 # - GNU file utilities (mv, rm)
972 # - GNU sed
973 # - lxlite (optional, see flag below)
974 # (used for general .dll cleanup)
975 #
976
977 flag_USE_LXLITE=1;
978
979 #
980 # helper functions
981 # basnam, variant of basename, which does _not_ remove the path, _iff_
982 # second argument (suffix to remove) is given
983 basnam(){
984 case ${D}# in
985 1)
986 echo ${D}1 | sed 's/.*\\///' | sed 's/.*\\\\//'
987 ;;
988 2)
989 echo ${D}1 | sed 's/'${D}2'${D}//'
990 ;;
991 *)
992 echo "error in basnam ${D}*"
993 exit 8
994 ;;
995 esac
996 }
997
998 # Cleanup temporary files and output
999 CleanUp() {
1000 cd ${D}curDir
1001 for i in ${D}inputFiles ; do
1002 case ${D}i in
1003 *!)
1004 rm -rf \`basnam ${D}i !\`
1005 ;;
1006 *)
1007 ;;
1008 esac
1009 done
1010
1011 # Kill result in case of failure as there is just to many stupid make/nmake
1012 # things out there which doesn't do this.
1013 if @<:@ ${D}# -eq 0 @:>@; then
1014 rm -f ${D}arcFile ${D}arcFile2 ${D}defFile ${D}dllFile
1015 fi
1016 }
1017
1018 # Print usage and exit script with rc=1.
1019 PrintHelp() {
1020 echo 'Usage: dllar.sh @<:@-o@<:@utput@:>@ output_file@:>@ @<:@-i@<:@mport@:>@ importlib_name@:>@'
1021 echo ' @<:@-name-mangler-script script.sh@:>@'
1022 echo ' @<:@-d@<:@escription@:>@ "dll descrption"@:>@ @<:@-cc "CC"@:>@ @<:@-f@<:@lags@:>@ "CFLAGS"@:>@'
1023 echo ' @<:@-ord@<:@inals@:>@@:>@ -ex@<:@clude@:>@ "symbol(s)"'
1024 echo ' @<:@-libf@<:@lags@:>@ "{INIT|TERM}{GLOBAL|INSTANCE}"@:>@ @<:@-nocrt@<:@dll@:>@@:>@ @<:@-nolxl@<:@ite@:>@@:>@'
1025 echo ' @<:@*.o@:>@ @<:@*.a@:>@'
1026 echo '*> "output_file" should have no extension.'
1027 echo ' If it has the .o, .a or .dll extension, it is automatically removed.'
1028 echo ' The import library name is derived from this and is set to "name".a,'
1029 echo ' unless overridden by -import'
1030 echo '*> "importlib_name" should have no extension.'
1031 echo ' If it has the .o, or .a extension, it is automatically removed.'
1032 echo ' This name is used as the import library name and may be longer and'
1033 echo ' more descriptive than the DLL name which has to follow the old '
1034 echo ' 8.3 convention of FAT.'
1035 echo '*> "script.sh may be given to override the output_file name by a'
1036 echo ' different name. It is mainly useful if the regular make process'
1037 echo ' of some package does not take into account OS/2 restriction of'
1038 echo ' DLL name lengths. It takes the importlib name as input and is'
1039 echo ' supposed to procude a shorter name as output. The script should'
1040 echo ' expect to get importlib_name without extension and should produce'
1041 echo ' a (max.) 8 letter name without extension.'
1042 echo '*> "cc" is used to use another GCC executable. (default: gcc.exe)'
1043 echo '*> "flags" should be any set of valid GCC flags. (default: -s -Zcrtdll)'
1044 echo ' These flags will be put at the start of GCC command line.'
1045 echo '*> -ord@<:@inals@:>@ tells dllar to export entries by ordinals. Be careful.'
1046 echo '*> -ex@<:@clude@:>@ defines symbols which will not be exported. You can define'
1047 echo ' multiple symbols, for example -ex "myfunc yourfunc _GLOBAL*".'
1048 echo ' If the last character of a symbol is "*", all symbols beginning'
1049 echo ' with the prefix before "*" will be exclude, (see _GLOBAL* above).'
1050 echo '*> -libf@<:@lags@:>@ can be used to add INITGLOBAL/INITINSTANCE and/or'
1051 echo ' TERMGLOBAL/TERMINSTANCE flags to the dynamically-linked library.'
1052 echo '*> -nocrt@<:@dll@:>@ switch will disable linking the library against emx''s'
1053 echo ' C runtime DLLs.'
1054 echo '*> -nolxl@<:@ite@:>@ switch will disable running lxlite on the resulting DLL.'
1055 echo '*> All other switches (for example -L./ or -lmylib) will be passed'
1056 echo ' unchanged to GCC at the end of command line.'
1057 echo '*> If you create a DLL from a library and you do not specify -o,'
1058 echo ' the basename for DLL and import library will be set to library name,'
1059 echo ' the initial library will be renamed to 'name'_s.a (_s for static)'
1060 echo ' i.e. "dllar gcc.a" will create gcc.dll and gcc.a, and the initial'
1061 echo ' library will be renamed into gcc_s.a.'
1062 echo '--------'
1063 echo 'Example:'
1064 echo ' dllar -o gcc290.dll libgcc.a -d "GNU C runtime library" -ord'
1065 echo ' -ex "__main __ctordtor*" -libf "INITINSTANCE TERMINSTANCE"'
1066 CleanUp
1067 exit 1
1068 }
1069
1070 # Execute a command.
1071 # If exit code of the commnad <> 0 CleanUp() is called and we'll exit the script.
1072 # @Uses Whatever CleanUp() uses.
1073 doCommand() {
1074 echo "${D}*"
1075 eval ${D}*
1076 rcCmd=${D}?
1077
1078 if @<:@ ${D}rcCmd -ne 0 @:>@; then
1079 echo "command failed, exit code="${D}rcCmd
1080 CleanUp
1081 exit ${D}rcCmd
1082 fi
1083 }
1084
1085 # main routine
1086 # setup globals
1087 cmdLine=${D}*
1088 outFile=""
1089 outimpFile=""
1090 inputFiles=""
1091 renameScript=""
1092 description=""
1093 CC=gcc.exe
1094 CFLAGS="-s -Zcrtdll"
1095 EXTRA_CFLAGS=""
1096 EXPORT_BY_ORDINALS=0
1097 exclude_symbols=""
1098 library_flags=""
1099 curDir=\`pwd\`
1100 curDirS=curDir
1101 case ${D}curDirS in
1102 */)
1103 ;;
1104 *)
1105 curDirS=${D}{curDirS}"/"
1106 ;;
1107 esac
1108 # Parse commandline
1109 libsToLink=0
1110 omfLinking=0
1111 while @<:@ ${D}1 @:>@; do
1112 case ${D}1 in
1113 -ord*)
1114 EXPORT_BY_ORDINALS=1;
1115 ;;
1116 -o*)
1117 shift
1118 outFile=${D}1
1119 ;;
1120 -i*)
1121 shift
1122 outimpFile=${D}1
1123 ;;
1124 -name-mangler-script)
1125 shift
1126 renameScript=${D}1
1127 ;;
1128 -d*)
1129 shift
1130 description=${D}1
1131 ;;
1132 -f*)
1133 shift
1134 CFLAGS=${D}1
1135 ;;
1136 -c*)
1137 shift
1138 CC=${D}1
1139 ;;
1140 -h*)
1141 PrintHelp
1142 ;;
1143 -ex*)
1144 shift
1145 exclude_symbols=${D}{exclude_symbols}${D}1" "
1146 ;;
1147 -libf*)
1148 shift
1149 library_flags=${D}{library_flags}${D}1" "
1150 ;;
1151 -nocrt*)
1152 CFLAGS="-s"
1153 ;;
1154 -nolxl*)
1155 flag_USE_LXLITE=0
1156 ;;
1157 -* | /*)
1158 case ${D}1 in
1159 -L* | -l*)
1160 libsToLink=1
1161 ;;
1162 -Zomf)
1163 omfLinking=1
1164 ;;
1165 *)
1166 ;;
1167 esac
1168 EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1
1169 ;;
1170 *.dll)
1171 EXTRA_CFLAGS="${D}{EXTRA_CFLAGS} \`basnam ${D}1 .dll\`"
1172 if @<:@ ${D}omfLinking -eq 1 @:>@; then
1173 EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.lib"
1174 else
1175 EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.a"
1176 fi
1177 ;;
1178 *)
1179 found=0;
1180 if @<:@ ${D}libsToLink -ne 0 @:>@; then
1181 EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1
1182 else
1183 for file in ${D}1 ; do
1184 if @<:@ -f ${D}file @:>@; then
1185 inputFiles="${D}{inputFiles} ${D}file"
1186 found=1
1187 fi
1188 done
1189 if @<:@ ${D}found -eq 0 @:>@; then
1190 echo "ERROR: No file(s) found: "${D}1
1191 exit 8
1192 fi
1193 fi
1194 ;;
1195 esac
1196 shift
1197 done # iterate cmdline words
1198
1199 #
1200 if @<:@ -z "${D}inputFiles" @:>@; then
1201 echo "dllar: no input files"
1202 PrintHelp
1203 fi
1204
1205 # Now extract all .o files from .a files
1206 newInputFiles=""
1207 for file in ${D}inputFiles ; do
1208 case ${D}file in
1209 *.a | *.lib)
1210 case ${D}file in
1211 *.a)
1212 suffix=".a"
1213 AR="ar"
1214 ;;
1215 *.lib)
1216 suffix=".lib"
1217 AR="emxomfar"
1218 EXTRA_CFLAGS="${D}EXTRA_CFLAGS -Zomf"
1219 ;;
1220 *)
1221 ;;
1222 esac
1223 dirname=\`basnam ${D}file ${D}suffix\`"_%"
1224 mkdir ${D}dirname
1225 if @<:@ ${D}? -ne 0 @:>@; then
1226 echo "Failed to create subdirectory ./${D}dirname"
1227 CleanUp
1228 exit 8;
1229 fi
1230 # Append '!' to indicate archive
1231 newInputFiles="${D}newInputFiles ${D}{dirname}!"
1232 doCommand "cd ${D}dirname; ${D}AR x ../${D}file"
1233 cd ${D}curDir
1234 found=0;
1235 for subfile in ${D}dirname/*.o* ; do
1236 if @<:@ -f ${D}subfile @:>@; then
1237 found=1
1238 if @<:@ -s ${D}subfile @:>@; then
1239 # FIXME: This should be: is file size > 32 byte, _not_ > 0!
1240 newInputFiles="${D}newInputFiles ${D}subfile"
1241 fi
1242 fi
1243 done
1244 if @<:@ ${D}found -eq 0 @:>@; then
1245 echo "WARNING: there are no files in archive \\'${D}file\\'"
1246 fi
1247 ;;
1248 *)
1249 newInputFiles="${D}{newInputFiles} ${D}file"
1250 ;;
1251 esac
1252 done
1253 inputFiles="${D}newInputFiles"
1254
1255 # Output filename(s).
1256 do_backup=0;
1257 if @<:@ -z ${D}outFile @:>@; then
1258 do_backup=1;
1259 set outFile ${D}inputFiles; outFile=${D}2
1260 fi
1261
1262 # If it is an archive, remove the '!' and the '_%' suffixes
1263 case ${D}outFile in
1264 *_%!)
1265 outFile=\`basnam ${D}outFile _%!\`
1266 ;;
1267 *)
1268 ;;
1269 esac
1270 case ${D}outFile in
1271 *.dll)
1272 outFile=\`basnam ${D}outFile .dll\`
1273 ;;
1274 *.DLL)
1275 outFile=\`basnam ${D}outFile .DLL\`
1276 ;;
1277 *.o)
1278 outFile=\`basnam ${D}outFile .o\`
1279 ;;
1280 *.obj)
1281 outFile=\`basnam ${D}outFile .obj\`
1282 ;;
1283 *.a)
1284 outFile=\`basnam ${D}outFile .a\`
1285 ;;
1286 *.lib)
1287 outFile=\`basnam ${D}outFile .lib\`
1288 ;;
1289 *)
1290 ;;
1291 esac
1292 case ${D}outimpFile in
1293 *.a)
1294 outimpFile=\`basnam ${D}outimpFile .a\`
1295 ;;
1296 *.lib)
1297 outimpFile=\`basnam ${D}outimpFile .lib\`
1298 ;;
1299 *)
1300 ;;
1301 esac
1302 if @<:@ -z ${D}outimpFile @:>@; then
1303 outimpFile=${D}outFile
1304 fi
1305 defFile="${D}{outFile}.def"
1306 arcFile="${D}{outimpFile}.a"
1307 arcFile2="${D}{outimpFile}.lib"
1308
1309 #create ${D}dllFile as something matching 8.3 restrictions,
1310 if @<:@ -z ${D}renameScript @:>@ ; then
1311 dllFile="${D}outFile"
1312 else
1313 dllFile=\`${D}renameScript ${D}outimpFile\`
1314 fi
1315
1316 if @<:@ ${D}do_backup -ne 0 @:>@ ; then
1317 if @<:@ -f ${D}arcFile @:>@ ; then
1318 doCommand "mv ${D}arcFile ${D}{outFile}_s.a"
1319 fi
1320 if @<:@ -f ${D}arcFile2 @:>@ ; then
1321 doCommand "mv ${D}arcFile2 ${D}{outFile}_s.lib"
1322 fi
1323 fi
1324
1325 # Extract public symbols from all the object files.
1326 tmpdefFile=${D}{defFile}_%
1327 rm -f ${D}tmpdefFile
1328 for file in ${D}inputFiles ; do
1329 case ${D}file in
1330 *!)
1331 ;;
1332 *)
1333 doCommand "emxexp -u ${D}file >> ${D}tmpdefFile"
1334 ;;
1335 esac
1336 done
1337
1338 # Create the def file.
1339 rm -f ${D}defFile
1340 echo "LIBRARY \`basnam ${D}dllFile\` ${D}library_flags" >> ${D}defFile
1341 dllFile="${D}{dllFile}.dll"
1342 if @<:@ ! -z ${D}description @:>@; then
1343 echo "DESCRIPTION \\"${D}{description}\\"" >> ${D}defFile
1344 fi
1345 echo "EXPORTS" >> ${D}defFile
1346
1347 doCommand "cat ${D}tmpdefFile | sort.exe | uniq.exe > ${D}{tmpdefFile}%"
1348 grep -v "^ *;" < ${D}{tmpdefFile}% | grep -v "^ *${D}" >${D}tmpdefFile
1349
1350 # Checks if the export is ok or not.
1351 for word in ${D}exclude_symbols; do
1352 grep -v ${D}word < ${D}tmpdefFile >${D}{tmpdefFile}%
1353 mv ${D}{tmpdefFile}% ${D}tmpdefFile
1354 done
1355
1356
1357 if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then
1358 sed "=" < ${D}tmpdefFile | \\
1359 sed '
1360 N
1361 : loop
1362 s/^\\(@<:@0-9@:>@\\+\\)\\(@<:@^;@:>@*\\)\\(;.*\\)\\?/\\2 @\\1 NONAME/
1363 t loop
1364 ' > ${D}{tmpdefFile}%
1365 grep -v "^ *${D}" < ${D}{tmpdefFile}% > ${D}tmpdefFile
1366 else
1367 rm -f ${D}{tmpdefFile}%
1368 fi
1369 cat ${D}tmpdefFile >> ${D}defFile
1370 rm -f ${D}tmpdefFile
1371
1372 # Do linking, create implib, and apply lxlite.
1373 gccCmdl="";
1374 for file in ${D}inputFiles ; do
1375 case ${D}file in
1376 *!)
1377 ;;
1378 *)
1379 gccCmdl="${D}gccCmdl ${D}file"
1380 ;;
1381 esac
1382 done
1383 doCommand "${D}CC ${D}CFLAGS -Zdll -o ${D}dllFile ${D}defFile ${D}gccCmdl ${D}EXTRA_CFLAGS"
1384 touch "${D}{outFile}.dll"
1385
1386 doCommand "emximp -o ${D}arcFile ${D}defFile"
1387 if @<:@ ${D}flag_USE_LXLITE -ne 0 @:>@; then
1388 add_flags="";
1389 if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then
1390 add_flags="-ynd"
1391 fi
1392 doCommand "lxlite -cs -t: -mrn -mln ${D}add_flags ${D}dllFile"
1393 fi
1394 doCommand "emxomf -s -l ${D}arcFile"
1395
1396 # Successful exit.
1397 CleanUp 1
1398 exit 0
1399 EOF
1400 dnl ===================== dllar.sh ends here =====================
1401 ])
1402
1403 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_DEPS],
1404 [
1405 dnl ===================== bk-deps begins here =====================
1406 dnl (Created by merge-scripts.py from bk-deps
1407 dnl file do not edit here!)
1408 D='$'
1409 cat <<EOF >bk-deps
1410 #!/bin/sh
1411
1412 # This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
1413 # script. It is used to track C/C++ files dependencies in portable way.
1414 #
1415 # Permission is given to use this file in any way.
1416
1417 DEPSMODE=${DEPSMODE}
1418 DEPSDIR=.deps
1419 DEPSFLAG_GCC="${DEPSFLAG_GCC}"
1420 DEPSFLAG_MWCC="${DEPSFLAG_MWCC}"
1421 DEPSFLAG_SUNCC="${DEPSFLAG_SUNCC}"
1422
1423 mkdir -p ${D}DEPSDIR
1424
1425 if test ${D}DEPSMODE = gcc ; then
1426 ${D}* ${D}{DEPSFLAG_GCC}
1427 status=${D}?
1428 if test ${D}{status} != 0 ; then
1429 exit ${D}{status}
1430 fi
1431 # move created file to the location we want it in:
1432 while test ${D}# -gt 0; do
1433 case "${D}1" in
1434 -o )
1435 shift
1436 objfile=${D}1
1437 ;;
1438 -* )
1439 ;;
1440 * )
1441 srcfile=${D}1
1442 ;;
1443 esac
1444 shift
1445 done
1446 depfile=\`basename ${D}srcfile | sed -e 's/\\..*${D}/.d/g'\`
1447 depobjname=\`echo ${D}depfile |sed -e 's/\\.d/.o/g'\`
1448 if test -f ${D}depfile ; then
1449 sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d
1450 rm -f ${D}depfile
1451 else
1452 depfile=\`basename ${D}objfile | sed -e 's/\\..*${D}/.d/g'\`
1453 if test -f ${D}depfile ; then
1454 sed -e "/^${D}objfile/!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d
1455 rm -f ${D}depfile
1456 fi
1457 fi
1458 exit 0
1459 elif test ${D}DEPSMODE = mwcc ; then
1460 ${D}*
1461 status=${D}?
1462 if test ${D}{status} != 0 ; then
1463 exit ${D}{status}
1464 fi
1465 # Run mwcc again with -MM and redirect into the dep file we want
1466 # NOTE: We can't use shift here because we need ${D}* to be valid
1467 prevarg=
1468 for arg in ${D}* ; do
1469 if test "${D}prevarg" = "-o"; then
1470 objfile=${D}arg
1471 else
1472 case "${D}arg" in
1473 -* )
1474 ;;
1475 * )
1476 srcfile=${D}arg
1477 ;;
1478 esac
1479 fi
1480 prevarg="${D}arg"
1481 done
1482 ${D}* ${D}DEPSFLAG_MWCC >${D}{DEPSDIR}/${D}{objfile}.d
1483 exit 0
1484 elif test ${D}DEPSMODE = suncc; then
1485 ${D}* || exit
1486 # Run compiler again with deps flag and redirect into the dep file.
1487 # It doesn't work if the '-o FILE' option is used, but without it the
1488 # dependency file will contain the wrong name for the object. So it is
1489 # removed from the command line, and the dep file is fixed with sed.
1490 cmd=""
1491 while test ${D}# -gt 0; do
1492 case "${D}1" in
1493 -o )
1494 shift
1495 objfile=${D}1
1496 ;;
1497 * )
1498 eval arg${D}#=\\${D}1
1499 cmd="${D}cmd \\${D}arg${D}#"
1500 ;;
1501 esac
1502 shift
1503 done
1504 eval "${D}cmd ${D}DEPSFLAG_SUNCC" | sed "s|.*:|${D}objfile:|" >${D}{DEPSDIR}/${D}{objfile}.d
1505 exit 0
1506 else
1507 ${D}*
1508 exit ${D}?
1509 fi
1510 EOF
1511 dnl ===================== bk-deps ends here =====================
1512 ])
1513
1514 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH],
1515 [
1516 dnl ===================== shared-ld-sh begins here =====================
1517 dnl (Created by merge-scripts.py from shared-ld-sh
1518 dnl file do not edit here!)
1519 D='$'
1520 cat <<EOF >shared-ld-sh
1521 #!/bin/sh
1522 #-----------------------------------------------------------------------------
1523 #-- Name: distrib/mac/shared-ld-sh
1524 #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X
1525 #-- Author: Gilles Depeyrot
1526 #-- Copyright: (c) 2002 Gilles Depeyrot
1527 #-- Licence: any use permitted
1528 #-----------------------------------------------------------------------------
1529
1530 verbose=0
1531 args=""
1532 objects=""
1533 linking_flag="-dynamiclib"
1534 ldargs="-r -keep_private_externs -nostdlib"
1535
1536 while test ${D}# -gt 0; do
1537 case ${D}1 in
1538
1539 -v)
1540 verbose=1
1541 ;;
1542
1543 -o|-compatibility_version|-current_version|-framework|-undefined|-install_name)
1544 # collect these options and values
1545 args="${D}{args} ${D}1 ${D}2"
1546 shift
1547 ;;
1548
1549 -s|-Wl,*)
1550 # collect these load args
1551 ldargs="${D}{ldargs} ${D}1"
1552 ;;
1553
1554 -l*|-L*|-flat_namespace|-headerpad_max_install_names)
1555 # collect these options
1556 args="${D}{args} ${D}1"
1557 ;;
1558
1559 -dynamiclib|-bundle)
1560 linking_flag="${D}1"
1561 ;;
1562
1563 -*)
1564 echo "shared-ld: unhandled option '${D}1'"
1565 exit 1
1566 ;;
1567
1568 *.o | *.a | *.dylib)
1569 # collect object files
1570 objects="${D}{objects} ${D}1"
1571 ;;
1572
1573 *)
1574 echo "shared-ld: unhandled argument '${D}1'"
1575 exit 1
1576 ;;
1577
1578 esac
1579 shift
1580 done
1581
1582 status=0
1583
1584 #
1585 # Link one module containing all the others
1586 #
1587 if test ${D}{verbose} = 1; then
1588 echo "c++ ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o"
1589 fi
1590 c++ ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o
1591 status=${D}?
1592
1593 #
1594 # Link the shared library from the single module created, but only if the
1595 # previous command didn't fail:
1596 #
1597 if test ${D}{status} = 0; then
1598 if test ${D}{verbose} = 1; then
1599 echo "c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}"
1600 fi
1601 c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}
1602 status=${D}?
1603 fi
1604
1605 #
1606 # Remove intermediate module
1607 #
1608 rm -f master.${D}${D}.o
1609
1610 exit ${D}status
1611 EOF
1612 dnl ===================== shared-ld-sh ends here =====================
1613 ])
1614
1615 AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH],
1616 [
1617 dnl ===================== bk-make-pch begins here =====================
1618 dnl (Created by merge-scripts.py from bk-make-pch
1619 dnl file do not edit here!)
1620 D='$'
1621 cat <<EOF >bk-make-pch
1622 #!/bin/sh
1623
1624 # This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
1625 # script. It is used to generated precompiled headers.
1626 #
1627 # Permission is given to use this file in any way.
1628
1629 outfile="${D}{1}"
1630 header="${D}{2}"
1631 shift
1632 shift
1633
1634 compiler=
1635 headerfile=
1636 while test ${D}{#} -gt 0; do
1637 case "${D}{1}" in
1638 -I* )
1639 incdir=\`echo ${D}{1} | sed -e 's/-I\\(.*\\)/\\1/g'\`
1640 if test "x${D}{headerfile}" = "x" -a -f "${D}{incdir}/${D}{header}" ; then
1641 headerfile="${D}{incdir}/${D}{header}"
1642 fi
1643 ;;
1644 esac
1645 compiler="${D}{compiler} ${D}{1}"
1646 shift
1647 done
1648
1649 if test "x${D}{headerfile}" = "x" ; then
1650 echo "error: can't find header ${D}{header} in include paths" >2
1651 else
1652 if test -f ${D}{outfile} ; then
1653 rm -f ${D}{outfile}
1654 else
1655 mkdir -p \`dirname ${D}{outfile}\`
1656 fi
1657 depsfile=".deps/\`echo ${D}{outfile} | tr '/.' '__'\`.d"
1658 mkdir -p .deps
1659 # can do this because gcc is >= 3.4:
1660 ${D}{compiler} -o ${D}{outfile} -MMD -MF "${D}{depsfile}" "${D}{headerfile}"
1661 exit ${D}{?}
1662 fi
1663 EOF
1664 dnl ===================== bk-make-pch ends here =====================
1665 ])
1666
1667 dnl
1668 dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1669 dnl
1670 AC_DEFUN(AM_PATH_CPPUNIT,
1671 [
1672
1673 AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)],
1674 cppunit_config_prefix="$withval", cppunit_config_prefix="")
1675 AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)],
1676 cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
1677
1678 if test x$cppunit_config_exec_prefix != x ; then
1679 cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
1680 if test x${CPPUNIT_CONFIG+set} != xset ; then
1681 CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
1682 fi
1683 fi
1684 if test x$cppunit_config_prefix != x ; then
1685 cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
1686 if test x${CPPUNIT_CONFIG+set} != xset ; then
1687 CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
1688 fi
1689 fi
1690
1691 AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
1692 cppunit_version_min=$1
1693
1694 AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
1695 no_cppunit=""
1696 if test "$CPPUNIT_CONFIG" = "no" ; then
1697 no_cppunit=yes
1698 else
1699 CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
1700 CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
1701 cppunit_version=`$CPPUNIT_CONFIG --version`
1702
1703 cppunit_major_version=`echo $cppunit_version | \
1704 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
1705 cppunit_minor_version=`echo $cppunit_version | \
1706 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
1707 cppunit_micro_version=`echo $cppunit_version | \
1708 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
1709
1710 cppunit_major_min=`echo $cppunit_version_min | \
1711 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
1712 cppunit_minor_min=`echo $cppunit_version_min | \
1713 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
1714 cppunit_micro_min=`echo $cppunit_version_min | \
1715 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
1716
1717 cppunit_version_proper=`expr \
1718 $cppunit_major_version \> $cppunit_major_min \| \
1719 $cppunit_major_version \= $cppunit_major_min \& \
1720 $cppunit_minor_version \> $cppunit_minor_min \| \
1721 $cppunit_major_version \= $cppunit_major_min \& \
1722 $cppunit_minor_version \= $cppunit_minor_min \& \
1723 $cppunit_micro_version \>= $cppunit_micro_min `
1724
1725 if test "$cppunit_version_proper" = "1" ; then
1726 AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
1727 else
1728 AC_MSG_RESULT(no)
1729 no_cppunit=yes
1730 fi
1731 fi
1732
1733 if test "x$no_cppunit" = x ; then
1734 ifelse([$2], , :, [$2])
1735 else
1736 CPPUNIT_CFLAGS=""
1737 CPPUNIT_LIBS=""
1738 ifelse([$3], , :, [$3])
1739 fi
1740
1741 AC_SUBST(CPPUNIT_CFLAGS)
1742 AC_SUBST(CPPUNIT_LIBS)
1743 ])
1744
1745
1746
1747
1748 # Configure paths for GTK+
1749 # Owen Taylor 1997-2001
1750
1751 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
1752 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
1753 dnl pass to pkg-config
1754 dnl
1755 AC_DEFUN([AM_PATH_GTK_2_0],
1756 [dnl
1757 dnl Get the cflags and libraries from pkg-config
1758 dnl
1759 AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
1760 , enable_gtktest=yes)
1761
1762 pkg_config_args=gtk+-2.0
1763 for module in . $4
1764 do
1765 case "$module" in
1766 gthread)
1767 pkg_config_args="$pkg_config_args gthread-2.0"
1768 ;;
1769 esac
1770 done
1771
1772 no_gtk=""
1773
1774 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1775
1776 if test x$PKG_CONFIG != xno ; then
1777 if pkg-config --atleast-pkgconfig-version 0.7 ; then
1778 :
1779 else
1780 echo "*** pkg-config too old; version 0.7 or better required."
1781 no_gtk=yes
1782 PKG_CONFIG=no
1783 fi
1784 else
1785 no_gtk=yes
1786 fi
1787
1788 min_gtk_version=ifelse([$1], ,2.0.0,$1)
1789 AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
1790
1791 if test x$PKG_CONFIG != xno ; then
1792 ## don't try to run the test against uninstalled libtool libs
1793 if $PKG_CONFIG --uninstalled $pkg_config_args; then
1794 echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
1795 enable_gtktest=no
1796 fi
1797
1798 if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
1799 :
1800 else
1801 no_gtk=yes
1802 fi
1803 fi
1804
1805 if test x"$no_gtk" = x ; then
1806 GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
1807 GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
1808 gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1809 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
1810 gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1811 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
1812 gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1813 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
1814 if test "x$enable_gtktest" = "xyes" ; then
1815 ac_save_CFLAGS="$CFLAGS"
1816 ac_save_LIBS="$LIBS"
1817 CFLAGS="$CFLAGS $GTK_CFLAGS"
1818 LIBS="$GTK_LIBS $LIBS"
1819 dnl
1820 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
1821 dnl checks the results of pkg-config to some extent)
1822 dnl
1823 rm -f conf.gtktest
1824 AC_TRY_RUN([
1825 #include <gtk/gtk.h>
1826 #include <stdio.h>
1827 #include <stdlib.h>
1828
1829 int
1830 main ()
1831 {
1832 int major, minor, micro;
1833 char *tmp_version;
1834
1835 system ("touch conf.gtktest");
1836
1837 /* HP/UX 9 (%@#!) writes to sscanf strings */
1838 tmp_version = g_strdup("$min_gtk_version");
1839 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
1840 printf("%s, bad version string\n", "$min_gtk_version");
1841 exit(1);
1842 }
1843
1844 if ((gtk_major_version != $gtk_config_major_version) ||
1845 (gtk_minor_version != $gtk_config_minor_version) ||
1846 (gtk_micro_version != $gtk_config_micro_version))
1847 {
1848 printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
1849 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
1850 gtk_major_version, gtk_minor_version, gtk_micro_version);
1851 printf ("*** was found! If pkg-config was correct, then it is best\n");
1852 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
1853 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
1854 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
1855 printf("*** required on your system.\n");
1856 printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
1857 printf("*** to point to the correct configuration files\n");
1858 }
1859 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
1860 (gtk_minor_version != GTK_MINOR_VERSION) ||
1861 (gtk_micro_version != GTK_MICRO_VERSION))
1862 {
1863 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
1864 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
1865 printf("*** library (version %d.%d.%d)\n",
1866 gtk_major_version, gtk_minor_version, gtk_micro_version);
1867 }
1868 else
1869 {
1870 if ((gtk_major_version > major) ||
1871 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1872 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
1873 {
1874 return 0;
1875 }
1876 else
1877 {
1878 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
1879 gtk_major_version, gtk_minor_version, gtk_micro_version);
1880 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
1881 major, minor, micro);
1882 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
1883 printf("***\n");
1884 printf("*** If you have already installed a sufficiently new version, this error\n");
1885 printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
1886 printf("*** being found. The easiest way to fix this is to remove the old version\n");
1887 printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
1888 printf("*** correct copy of pkg-config. (In this case, you will have to\n");
1889 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
1890 printf("*** so that the correct libraries are found at run-time))\n");
1891 }
1892 }
1893 return 1;
1894 }
1895 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1896 CFLAGS="$ac_save_CFLAGS"
1897 LIBS="$ac_save_LIBS"
1898 fi
1899 fi
1900 if test "x$no_gtk" = x ; then
1901 AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
1902 ifelse([$2], , :, [$2])
1903 else
1904 AC_MSG_RESULT(no)
1905 if test "$PKG_CONFIG" = "no" ; then
1906 echo "*** A new enough version of pkg-config was not found."
1907 echo "*** See http://pkgconfig.sourceforge.net"
1908 else
1909 if test -f conf.gtktest ; then
1910 :
1911 else
1912 echo "*** Could not run GTK+ test program, checking why..."
1913 ac_save_CFLAGS="$CFLAGS"
1914 ac_save_LIBS="$LIBS"
1915 CFLAGS="$CFLAGS $GTK_CFLAGS"
1916 LIBS="$LIBS $GTK_LIBS"
1917 AC_TRY_LINK([
1918 #include <gtk/gtk.h>
1919 #include <stdio.h>
1920 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
1921 [ echo "*** The test program compiled, but did not run. This usually means"
1922 echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
1923 echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
1924 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
1925 echo "*** to the installed location Also, make sure you have run ldconfig if that"
1926 echo "*** is required on your system"
1927 echo "***"
1928 echo "*** If you have an old version installed, it is best to remove it, although"
1929 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
1930 [ echo "*** The test program failed to compile or link. See the file config.log for the"
1931 echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
1932 CFLAGS="$ac_save_CFLAGS"
1933 LIBS="$ac_save_LIBS"
1934 fi
1935 fi
1936 GTK_CFLAGS=""
1937 GTK_LIBS=""
1938 ifelse([$3], , :, [$3])
1939 fi
1940 AC_SUBST(GTK_CFLAGS)
1941 AC_SUBST(GTK_LIBS)
1942 rm -f conf.gtktest
1943 ])
1944
1945 # Configure paths for GTK+
1946 # Owen Taylor 97-11-3
1947
1948 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
1949 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
1950 dnl
1951 AC_DEFUN(AM_PATH_GTK,
1952 [dnl
1953 dnl Get the cflags and libraries from the gtk-config script
1954 dnl
1955 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1956 gtk_config_prefix="$withval", gtk_config_prefix="")
1957 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1958 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
1959 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1960 , enable_gtktest=yes)
1961
1962 for module in . $4
1963 do
1964 case "$module" in
1965 gthread)
1966 gtk_config_args="$gtk_config_args gthread"
1967 ;;
1968 esac
1969 done
1970
1971 if test x$gtk_config_exec_prefix != x ; then
1972 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1973 if test x${GTK_CONFIG+set} != xset ; then
1974 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1975 fi
1976 fi
1977 if test x$gtk_config_prefix != x ; then
1978 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1979 if test x${GTK_CONFIG+set} != xset ; then
1980 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1981 fi
1982 fi
1983
1984 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1985 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1986 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1987 no_gtk=""
1988 if test "$GTK_CONFIG" = "no" ; then
1989 no_gtk=yes
1990 else
1991 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1992 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1993 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1994 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
1995 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1996 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
1997 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1998 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
1999 if test "x$enable_gtktest" = "xyes" ; then
2000 ac_save_CFLAGS="$CFLAGS"
2001 ac_save_LIBS="$LIBS"
2002 CFLAGS="$CFLAGS $GTK_CFLAGS"
2003 LIBS="$GTK_LIBS $LIBS"
2004 dnl
2005 dnl Now check if the installed GTK is sufficiently new. (Also sanity
2006 dnl checks the results of gtk-config to some extent
2007 dnl
2008 rm -f conf.gtktest
2009 AC_TRY_RUN([
2010 #include <gtk/gtk.h>
2011 #include <stdio.h>
2012 #include <stdlib.h>
2013
2014 int
2015 main ()
2016 {
2017 int major, minor, micro;
2018 char *tmp_version;
2019
2020 system ("touch conf.gtktest");
2021
2022 /* HP/UX 9 (%@#!) writes to sscanf strings */
2023 tmp_version = g_strdup("$min_gtk_version");
2024 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
2025 printf("%s, bad version string\n", "$min_gtk_version");
2026 exit(1);
2027 }
2028
2029 if ((gtk_major_version != $gtk_config_major_version) ||
2030 (gtk_minor_version != $gtk_config_minor_version) ||
2031 (gtk_micro_version != $gtk_config_micro_version))
2032 {
2033 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
2034 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
2035 gtk_major_version, gtk_minor_version, gtk_micro_version);
2036 printf ("*** was found! If gtk-config was correct, then it is best\n");
2037 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
2038 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
2039 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
2040 printf("*** required on your system.\n");
2041 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
2042 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
2043 printf("*** before re-running configure\n");
2044 }
2045 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
2046 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
2047 (gtk_minor_version != GTK_MINOR_VERSION) ||
2048 (gtk_micro_version != GTK_MICRO_VERSION))
2049 {
2050 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
2051 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
2052 printf("*** library (version %d.%d.%d)\n",
2053 gtk_major_version, gtk_minor_version, gtk_micro_version);
2054 }
2055 #endif /* defined (GTK_MAJOR_VERSION) ... */
2056 else
2057 {
2058 if ((gtk_major_version > major) ||
2059 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
2060 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
2061 {
2062 return 0;
2063 }
2064 else
2065 {
2066 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
2067 gtk_major_version, gtk_minor_version, gtk_micro_version);
2068 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
2069 major, minor, micro);
2070 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
2071 printf("***\n");
2072 printf("*** If you have already installed a sufficiently new version, this error\n");
2073 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
2074 printf("*** being found. The easiest way to fix this is to remove the old version\n");
2075 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
2076 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
2077 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
2078 printf("*** so that the correct libraries are found at run-time))\n");
2079 }
2080 }
2081 return 1;
2082 }
2083 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
2084 CFLAGS="$ac_save_CFLAGS"
2085 LIBS="$ac_save_LIBS"
2086 fi
2087 fi
2088 if test "x$no_gtk" = x ; then
2089 AC_MSG_RESULT(yes)
2090 ifelse([$2], , :, [$2])
2091 else
2092 AC_MSG_RESULT(no)
2093 if test "$GTK_CONFIG" = "no" ; then
2094 echo "*** The gtk-config script installed by GTK could not be found"
2095 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
2096 echo "*** your path, or set the GTK_CONFIG environment variable to the"
2097 echo "*** full path to gtk-config."
2098 else
2099 if test -f conf.gtktest ; then
2100 :
2101 else
2102 echo "*** Could not run GTK test program, checking why..."
2103 CFLAGS="$CFLAGS $GTK_CFLAGS"
2104 LIBS="$LIBS $GTK_LIBS"
2105 AC_TRY_LINK([
2106 #include <gtk/gtk.h>
2107 #include <stdio.h>
2108 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
2109 [ echo "*** The test program compiled, but did not run. This usually means"
2110 echo "*** that the run-time linker is not finding GTK or finding the wrong"
2111 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
2112 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
2113 echo "*** to the installed location Also, make sure you have run ldconfig if that"
2114 echo "*** is required on your system"
2115 echo "***"
2116 echo "*** If you have an old version installed, it is best to remove it, although"
2117 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
2118 echo "***"
2119 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
2120 echo "*** came with the system with the command"
2121 echo "***"
2122 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
2123 [ echo "*** The test program failed to compile or link. See the file config.log for the"
2124 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
2125 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
2126 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
2127 CFLAGS="$ac_save_CFLAGS"
2128 LIBS="$ac_save_LIBS"
2129 fi
2130 fi
2131 GTK_CFLAGS=""
2132 GTK_LIBS=""
2133 ifelse([$3], , :, [$3])
2134 fi
2135 AC_SUBST(GTK_CFLAGS)
2136 AC_SUBST(GTK_LIBS)
2137 rm -f conf.gtktest
2138 ])
2139
2140
2141 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
2142 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
2143 dnl also defines GSTUFF_PKG_ERRORS on error
2144 AC_DEFUN(PKG_CHECK_MODULES, [
2145 succeeded=no
2146
2147 if test -z "$PKG_CONFIG"; then
2148 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
2149 fi
2150
2151 if test "$PKG_CONFIG" = "no" ; then
2152 echo "*** The pkg-config script could not be found. Make sure it is"
2153 echo "*** in your path, or set the PKG_CONFIG environment variable"
2154 echo "*** to the full path to pkg-config."
2155 echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
2156 else
2157 PKG_CONFIG_MIN_VERSION=0.9.0
2158 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
2159 AC_MSG_CHECKING(for $2)
2160
2161 if $PKG_CONFIG --exists "$2" ; then
2162 AC_MSG_RESULT(yes)
2163 succeeded=yes
2164
2165 AC_MSG_CHECKING($1_CFLAGS)
2166 $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
2167 AC_MSG_RESULT($$1_CFLAGS)
2168
2169 AC_MSG_CHECKING($1_LIBS)
2170 $1_LIBS=`$PKG_CONFIG --libs "$2"`
2171 AC_MSG_RESULT($$1_LIBS)
2172 else
2173 $1_CFLAGS=""
2174 $1_LIBS=""
2175 ## If we have a custom action on failure, don't print errors, but
2176 ## do set a variable so people can do so.
2177 $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
2178 ifelse([$4], ,echo $$1_PKG_ERRORS,)
2179 fi
2180
2181 AC_SUBST($1_CFLAGS)
2182 AC_SUBST($1_LIBS)
2183 else
2184 echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
2185 echo "*** See http://www.freedesktop.org/software/pkgconfig"
2186 fi
2187 fi
2188
2189 if test $succeeded = yes; then
2190 ifelse([$3], , :, [$3])
2191 else
2192 ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
2193 fi
2194 ])
2195
2196
2197
2198 # Configure paths for SDL
2199 # Sam Lantinga 9/21/99
2200 # stolen from Manish Singh
2201 # stolen back from Frank Belew
2202 # stolen from Manish Singh
2203 # Shamelessly stolen from Owen Taylor
2204
2205 dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
2206 dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
2207 dnl
2208 AC_DEFUN([AM_PATH_SDL],
2209 [dnl
2210 dnl Get the cflags and libraries from the sdl-config script
2211 dnl
2212 AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
2213 sdl_prefix="$withval", sdl_prefix="")
2214 AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
2215 sdl_exec_prefix="$withval", sdl_exec_prefix="")
2216 AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
2217 , enable_sdltest=yes)
2218
2219 if test x$sdl_exec_prefix != x ; then
2220 sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
2221 if test x${SDL_CONFIG+set} != xset ; then
2222 SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
2223 fi
2224 fi
2225 if test x$sdl_prefix != x ; then
2226 sdl_args="$sdl_args --prefix=$sdl_prefix"
2227 if test x${SDL_CONFIG+set} != xset ; then
2228 SDL_CONFIG=$sdl_prefix/bin/sdl-config
2229 fi
2230 fi
2231
2232 AC_REQUIRE([AC_CANONICAL_TARGET])
2233 PATH="$prefix/bin:$prefix/usr/bin:$PATH"
2234 AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
2235 min_sdl_version=ifelse([$1], ,0.11.0,$1)
2236 AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
2237 no_sdl=""
2238 if test "$SDL_CONFIG" = "no" ; then
2239 no_sdl=yes
2240 else
2241 SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
2242 SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
2243
2244 sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
2245 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
2246 sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
2247 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
2248 sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
2249 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
2250 if test "x$enable_sdltest" = "xyes" ; then
2251 ac_save_CFLAGS="$CFLAGS"
2252 ac_save_CXXFLAGS="$CXXFLAGS"
2253 ac_save_LIBS="$LIBS"
2254 CFLAGS="$CFLAGS $SDL_CFLAGS"
2255 CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
2256 LIBS="$LIBS $SDL_LIBS"
2257 dnl
2258 dnl Now check if the installed SDL is sufficiently new. (Also sanity
2259 dnl checks the results of sdl-config to some extent
2260 dnl
2261 rm -f conf.sdltest
2262 AC_TRY_RUN([
2263 #include <stdio.h>
2264 #include <stdlib.h>
2265 #include <string.h>
2266 #include "SDL.h"
2267
2268 char*
2269 my_strdup (char *str)
2270 {
2271 char *new_str;
2272
2273 if (str)
2274 {
2275 new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
2276 strcpy (new_str, str);
2277 }
2278 else
2279 new_str = NULL;
2280
2281 return new_str;
2282 }
2283
2284 int main (int argc, char *argv[])
2285 {
2286 int major, minor, micro;
2287 char *tmp_version;
2288
2289 /* This hangs on some systems (?)
2290 system ("touch conf.sdltest");
2291 */
2292 { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
2293
2294 /* HP/UX 9 (%@#!) writes to sscanf strings */
2295 tmp_version = my_strdup("$min_sdl_version");
2296 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
2297 printf("%s, bad version string\n", "$min_sdl_version");
2298 exit(1);
2299 }
2300
2301 if (($sdl_major_version > major) ||
2302 (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
2303 (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
2304 {
2305 return 0;
2306 }
2307 else
2308 {
2309 printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
2310 printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
2311 printf("*** best to upgrade to the required version.\n");
2312 printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
2313 printf("*** to point to the correct copy of sdl-config, and remove the file\n");
2314 printf("*** config.cache before re-running configure\n");
2315 return 1;
2316 }
2317 }
2318
2319 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
2320 CFLAGS="$ac_save_CFLAGS"
2321 CXXFLAGS="$ac_save_CXXFLAGS"
2322 LIBS="$ac_save_LIBS"
2323 fi
2324 fi
2325 if test "x$no_sdl" = x ; then
2326 AC_MSG_RESULT(yes)
2327 ifelse([$2], , :, [$2])
2328 else
2329 AC_MSG_RESULT(no)
2330 if test "$SDL_CONFIG" = "no" ; then
2331 echo "*** The sdl-config script installed by SDL could not be found"
2332 echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
2333 echo "*** your path, or set the SDL_CONFIG environment variable to the"
2334 echo "*** full path to sdl-config."
2335 else
2336 if test -f conf.sdltest ; then
2337 :
2338 else
2339 echo "*** Could not run SDL test program, checking why..."
2340 CFLAGS="$CFLAGS $SDL_CFLAGS"
2341 CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
2342 LIBS="$LIBS $SDL_LIBS"
2343 AC_TRY_LINK([
2344 #include <stdio.h>
2345 #include "SDL.h"
2346
2347 int main(int argc, char *argv[])
2348 { return 0; }
2349 #undef main
2350 #define main K_and_R_C_main
2351 ], [ return 0; ],
2352 [ echo "*** The test program compiled, but did not run. This usually means"
2353 echo "*** that the run-time linker is not finding SDL or finding the wrong"
2354 echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
2355 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
2356 echo "*** to the installed location Also, make sure you have run ldconfig if that"
2357 echo "*** is required on your system"
2358 echo "***"
2359 echo "*** If you have an old version installed, it is best to remove it, although"
2360 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
2361 [ echo "*** The test program failed to compile or link. See the file config.log for the"
2362 echo "*** exact error that occured. This usually means SDL was incorrectly installed"
2363 echo "*** or that you have moved SDL since it was installed. In the latter case, you"
2364 echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
2365 CFLAGS="$ac_save_CFLAGS"
2366 CXXFLAGS="$ac_save_CXXFLAGS"
2367 LIBS="$ac_save_LIBS"
2368 fi
2369 fi
2370 SDL_CFLAGS=""
2371 SDL_LIBS=""
2372 ifelse([$3], , :, [$3])
2373 fi
2374 AC_SUBST(SDL_CFLAGS)
2375 AC_SUBST(SDL_LIBS)
2376 rm -f conf.sdltest
2377 ])
2378
2379 m4_include([acinclude.m4])