]> git.saurik.com Git - wxWidgets.git/blob - configure.in
just a little tweak
[wxWidgets.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION($Id$)dnl
3
4 AC_PREREQ(2.58)
5
6 dnl ---------------------------------------------------------------------------
7 dnl
8 dnl Top-level configure.in for wxWidgets by Robert Roebling, Phil Blecker,
9 dnl Vadim Zeitlin and Ron Lee
10 dnl
11 dnl This script is under the wxWidgets licence.
12 dnl
13 dnl Version: $Id$
14 dnl ---------------------------------------------------------------------------
15
16 dnl ---------------------------------------------------------------------------
17 dnl initialization
18 dnl ---------------------------------------------------------------------------
19
20 AC_INIT([wxWidgets], [2.5.3], [wx-dev@lists.wxwidgets.org])
21
22 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
23 AC_CONFIG_SRCDIR([wx-config.in])
24
25 dnl sets build, host, target variables and the same with _alias
26 AC_CANONICAL_BUILD
27 AC_CANONICAL_HOST
28 AC_CANONICAL_TARGET
29
30
31 dnl When making releases do:
32 dnl
33 dnl wx_release_number += 1
34 dnl
35 dnl ..and update WX_CURRENT, WX_REVISION and WX_AGE according to the
36 dnl following rules:
37 dnl
38 dnl If any changes have been made to the public interface, that is if any
39 dnl exported class, method, global or global type has been added, removed
40 dnl or changed in any way, then do: WX_CURRENT += 1
41 dnl
42 dnl If source changes have been made that *do not* alter the public
43 dnl interface then do: WX_REVISION += 1
44 dnl If WX_CURRENT was incremented (as above) instead do: WX_REVISION = 0
45 dnl
46 dnl If any public interface was added, do: WX_AGE += 1
47 dnl If any public interface was removed (or altered in a way effectively
48 dnl removing the previous definition), instead do: WX_AGE = 0
49 dnl
50 dnl When the major or minor version numbers are incremented, all the above
51 dnl variables should be reset to 0.
52 dnl
53 dnl The resulting library name will be of the form:
54 dnl libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
55
56 wx_major_version_number=2
57 wx_minor_version_number=5
58 wx_release_number=3
59 wx_subrelease_number=1
60
61 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
62 WX_VERSION=$WX_RELEASE.$wx_release_number
63 WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number
64
65 WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number
66
67 WX_CURRENT=4
68 WX_REVISION=0
69 WX_AGE=1
70
71
72 dnl ------------------------------------------------------------------------
73 dnl Check platform (host system)
74 dnl ------------------------------------------------------------------------
75
76 dnl OS (assume Unix)
77 USE_UNIX=1
78 USE_OS2=0
79 USE_WIN32=0
80 USE_DOS=0
81 USE_BEOS=0
82 USE_MAC=0
83
84 dnl Unix kind
85 USE_AIX=
86 USE_BSD= dnl any BSD
87 USE_DARWIN= dnl a.k.a. Mac OS X
88 USE_FREEBSD=
89 USE_GNU= dnl GNU/Hurd
90 USE_HPUX=
91 USE_LINUX=
92 USE_NETBSD=
93 USE_OPENBSD=
94 USE_OSF= dnl OSF/1 (obsolete?)
95 USE_SGI=
96 USE_SOLARIS= dnl Solaris ("SunOS" >= 5)
97 USE_SUN= dnl SunOS or Solaris
98 USE_SUNOS= dnl old/real SunOS (obsolete)
99 USE_SVR4= dnl SysV R4
100 USE_SYSV= dnl any System V
101 USE_VMS=
102 USE_ULTRIX=
103 USE_UNIXWARE=
104
105 dnl hardware platform
106 USE_ALPHA=
107
108 dnl on some platforms xxx_r() functions are declared inside "#ifdef
109 dnl _REENTRANT" and it's easier to just define this symbol for these platforms
110 dnl than checking it during run-time
111 NEEDS_D_REENTRANT_FOR_R_FUNCS=0
112
113 dnl the list of all available toolkits
114 dnl
115 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
116 ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11"
117
118 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
119 dnl which are either yes or no
120 DEFAULT_wxUSE_COCOA=0
121 DEFAULT_wxUSE_GTK=0
122 DEFAULT_wxUSE_MAC=0
123 DEFAULT_wxUSE_MGL=0
124 DEFAULT_wxUSE_MICROWIN=0
125 DEFAULT_wxUSE_MOTIF=0
126 DEFAULT_wxUSE_MSW=0
127 DEFAULT_wxUSE_PM=0
128 DEFAULT_wxUSE_X11=0
129
130 dnl these are the values which are really default for the given platform -
131 dnl they're not cached and are only used if no --with-toolkit was given *and*
132 dnl nothing was found in the cache
133 DEFAULT_DEFAULT_wxUSE_COCOA=0
134 DEFAULT_DEFAULT_wxUSE_GTK=0
135 DEFAULT_DEFAULT_wxUSE_MAC=0
136 DEFAULT_DEFAULT_wxUSE_MGL=0
137 DEFAULT_DEFAULT_wxUSE_MICROWIN=0
138 DEFAULT_DEFAULT_wxUSE_MOTIF=0
139 DEFAULT_DEFAULT_wxUSE_MSW=0
140 DEFAULT_DEFAULT_wxUSE_PM=0
141 DEFAULT_DEFAULT_wxUSE_X11=0
142
143 PROGRAM_EXT=
144 SO_SUFFIX=so
145 SAMPLES_RPATH_FLAG=
146 SAMPLES_RPATH_POSTLINK=
147
148 dnl to support a new system, you need to add its canonical name (as determined
149 dnl by config.sub or specified by the configure command line) to this "case"
150 dnl and also define the shared library flags below - search for
151 dnl SHARED_LIB_SETUP to find the exact place
152 case "${host}" in
153 *-hp-hpux* )
154 USE_HPUX=1
155 DEFAULT_DEFAULT_wxUSE_MOTIF=1
156 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
157 SO_SUFFIX=sl
158 AC_DEFINE(__HPUX__)
159 ;;
160 *-*-linux* )
161 USE_LINUX=1
162 AC_DEFINE(__LINUX__)
163 TMP=`uname -m`
164 if test "x$TMP" = "xalpha"; then
165 USE_ALPHA=1
166 AC_DEFINE(__ALPHA__)
167 fi
168 DEFAULT_DEFAULT_wxUSE_GTK=1
169 ;;
170 *-*-gnu* | *-*-k*bsd*-gnu )
171 USE_GNU=1
172 TMP=`uname -m`
173 if test "x$TMP" = "xalpha"; then
174 USE_ALPHA=1
175 AC_DEFINE(__ALPHA__)
176 fi
177 DEFAULT_DEFAULT_wxUSE_GTK=1
178 ;;
179 *-*-irix5* | *-*-irix6* )
180 USE_SGI=1
181 USE_SVR4=1
182 AC_DEFINE(__SGI__)
183 AC_DEFINE(__SVR4__)
184 DEFAULT_DEFAULT_wxUSE_MOTIF=1
185 ;;
186 *-*-solaris2* )
187 USE_SUN=1
188 USE_SOLARIS=1
189 USE_SVR4=1
190 AC_DEFINE(__SUN__)
191 AC_DEFINE(__SOLARIS__)
192 AC_DEFINE(__SVR4__)
193 DEFAULT_DEFAULT_wxUSE_MOTIF=1
194 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
195 ;;
196 *-*-sunos4* )
197 USE_SUN=1
198 USE_SUNOS=1
199 USE_BSD=1
200 AC_DEFINE(__SUN__)
201 AC_DEFINE(__SUNOS__)
202 AC_DEFINE(__BSD__)
203 DEFAULT_DEFAULT_wxUSE_MOTIF=1
204 ;;
205 *-*-freebsd*)
206 USE_BSD=1
207 USE_FREEBSD=1
208 AC_DEFINE(__FREEBSD__)
209 AC_DEFINE(__BSD__)
210 DEFAULT_DEFAULT_wxUSE_GTK=1
211 ;;
212 *-*-openbsd*)
213 USE_BSD=1
214 USE_OPENBSD=1
215 AC_DEFINE(__OPENBSD__)
216 AC_DEFINE(__BSD__)
217 DEFAULT_DEFAULT_wxUSE_GTK=1
218 ;;
219 *-*-netbsd*)
220 USE_BSD=1
221 USE_NETBSD=1
222 AC_DEFINE(__NETBSD__)
223 AC_DEFINE(__BSD__)
224 DEFAULT_DEFAULT_wxUSE_GTK=1
225 ;;
226 *-*-osf* )
227 USE_ALPHA=1
228 USE_OSF=1
229 AC_DEFINE(__ALPHA__)
230 AC_DEFINE(__OSF__)
231 DEFAULT_DEFAULT_wxUSE_MOTIF=1
232 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
233 ;;
234 *-*-dgux5* )
235 USE_ALPHA=1
236 USE_SVR4=1
237 AC_DEFINE(__ALPHA__)
238 AC_DEFINE(__SVR4__)
239 DEFAULT_DEFAULT_wxUSE_MOTIF=1
240 ;;
241 *-*-sysv5* )
242 USE_SYSV=1
243 USE_SVR4=1
244 AC_DEFINE(__SYSV__)
245 AC_DEFINE(__SVR4__)
246 DEFAULT_DEFAULT_wxUSE_MOTIF=1
247 ;;
248 *-*-aix* )
249 USE_AIX=1
250 USE_SYSV=1
251 USE_SVR4=1
252 dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
253 dnl
254 dnl Both archive libraries and shared libraries on AIX have an .a
255 dnl extension. This will explain why you can't link with an .so and
256 dnl why it works with the name changed to .a.
257 SO_SUFFIX=a
258 AC_DEFINE(__AIX__)
259 AC_DEFINE(__SYSV__)
260 AC_DEFINE(__SVR4__)
261 DEFAULT_DEFAULT_wxUSE_MOTIF=1
262 ;;
263
264 *-*-*UnixWare*)
265 USE_SYSV=1
266 USE_SVR4=1
267 USE_UNIXWARE=1
268 AC_DEFINE(__UNIXWARE__)
269 ;;
270
271 *-*-cygwin* | *-*-mingw32* )
272 dnl MBN: some of the defines have been moved after toolkit detection
273 dnl because for wxMotif/wxGTK/wxX11 to build on Cygwin
274 dnl USE_UNIX must be set and not USE_WIN32
275 SO_SUFFIX=dll
276 PROGRAM_EXT=".exe"
277 RESCOMP=windres
278 DEFAULT_DEFAULT_wxUSE_MSW=1
279 ;;
280
281 *-pc-msdosdjgpp )
282 USE_UNIX=0
283 USE_DOS=1
284 AC_DEFINE(__DOS__)
285 PROGRAM_EXT=".exe"
286 DEFAULT_DEFAULT_wxUSE_MGL=1
287 dnl DJGPP needs explicit -lstdc++ for some reason (VS: mayb some versions only?)
288 LIBS="$LIBS -lstdc++"
289 ;;
290
291 *-pc-os2_emx | *-pc-os2-emx )
292 AC_DEFINE(__EMX__)
293 USE_OS2=1
294 AC_DEFINE(__OS2__)
295 PROGRAM_EXT=".exe"
296 DEFAULT_DEFAULT_wxUSE_PM=1
297 dnl "c++" wrapper is not always available, so always use plain gcc.
298 CXX=gcc
299 LDFLAGS="$LDFLAGS -Zcrtdll"
300 dnl
301 dnl Some special code that's automatically added by autoconf-2.57 for OS/2
302 dnl and hopefully also by autoconf-2.58 and newer on all other platforms.
303 dnl For now however, we still need it to make sure the configure script
304 dnl works on OS/2 no matter what platform it is generated on.
305 ac_executable_extensions=".exe"
306 export ac_executable_extensions
307 dnl This strange code is necessary to deal with handling of
308 dnl backslashes by ksh and pdksh's sh variant.
309 ac_save_IFS="$IFS"
310 IFS='\\'
311 ac_TEMP_PATH=
312 for ac_dir in $PATH; do
313 IFS=$ac_save_IFS
314 if test -z "$ac_TEMP_PATH"; then
315 ac_TEMP_PATH="$ac_dir"
316 else
317 ac_TEMP_PATH="$ac_TEMP_PATH/$ac_dir"
318 fi
319 done
320 export PATH="$ac_TEMP_PATH"
321 unset ac_TEMP_PATH
322 ;;
323
324 powerpc-*-darwin* )
325 dnl PowerPC Darwin based distributions (including Mac OS X)
326 USE_BSD=1
327 USE_DARWIN=1
328 SO_SUFFIX=dylib
329 AC_DEFINE(__BSD__)
330 AC_DEFINE(__DARWIN__)
331 AC_DEFINE(__POWERPC__)
332 AC_DEFINE(TARGET_CARBON)
333 DEFAULT_DEFAULT_wxUSE_MAC=1
334 ;;
335
336 *-*-beos* )
337 dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
338 USE_BEOS=1
339 AC_DEFINE(__BEOS__)
340 ;;
341
342 *)
343 AC_MSG_ERROR(unknown system type ${host}.)
344 esac
345
346 dnl ---------------------------------------------------------------------------
347 dnl command line options for configure
348 dnl ---------------------------------------------------------------------------
349
350 dnl the default values for all options - we collect them all here to simplify
351 dnl modification of the default values (for example, if the defaults for some
352 dnl platform should be changed, it can be done here too)
353 dnl
354 dnl NB: see also DEFAULT_wxUSE<toolkit> variables defined above
355
356 WX_ARG_CACHE_INIT
357
358 dnl useful to test the compilation with minimum options, define as 0 for normal
359 dnl usage
360 DEBUG_CONFIGURE=0
361 if test $DEBUG_CONFIGURE = 1; then
362 DEFAULT_wxUSE_UNIVERSAL=no
363 DEFAULT_wxUSE_STL=no
364
365 DEFAULT_wxUSE_NANOX=no
366
367 DEFAULT_wxUSE_THREADS=yes
368
369 DEFAULT_wxUSE_SHARED=yes
370 DEFAULT_wxUSE_OPTIMISE=no
371 DEFAULT_wxUSE_PROFILE=no
372 DEFAULT_wxUSE_NO_DEPS=no
373 DEFAULT_wxUSE_NO_RTTI=no
374 DEFAULT_wxUSE_NO_EXCEPTIONS=no
375 DEFAULT_wxUSE_RPATH=yes
376 DEFAULT_wxUSE_PERMISSIVE=no
377 DEFAULT_wxUSE_DEBUG_FLAG=yes
378 DEFAULT_wxUSE_DEBUG_INFO=yes
379 DEFAULT_wxUSE_DEBUG_GDB=yes
380 DEFAULT_wxUSE_MEM_TRACING=no
381 DEFAULT_wxUSE_DEBUG_CONTEXT=no
382 DEFAULT_wxUSE_DMALLOC=no
383 DEFAULT_wxUSE_APPLE_IEEE=no
384
385 DEFAULT_wxUSE_EXCEPTIONS=no
386 DEFAULT_wxUSE_LOG=yes
387 DEFAULT_wxUSE_LOGWINDOW=no
388 DEFAULT_wxUSE_LOGGUI=no
389 DEFAULT_wxUSE_LOGDIALOG=no
390
391 DEFAULT_wxUSE_GUI=yes
392 DEFAULT_wxUSE_CONTROLS=no
393
394 DEFAULT_wxUSE_REGEX=no
395 DEFAULT_wxUSE_XML=no
396 DEFAULT_wxUSE_EXPAT=no
397 DEFAULT_wxUSE_ZLIB=no
398 DEFAULT_wxUSE_LIBPNG=no
399 DEFAULT_wxUSE_LIBJPEG=no
400 DEFAULT_wxUSE_LIBTIFF=no
401 DEFAULT_wxUSE_LIBXPM=no
402 DEFAULT_wxUSE_LIBMSPACK=no
403 DEFAULT_wxUSE_LIBSDL=no
404 DEFAULT_wxUSE_ODBC=no
405 DEFAULT_wxUSE_OPENGL=no
406
407 DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
408 DEFAULT_wxUSE_SNGLINST_CHECKER=no
409 DEFAULT_wxUSE_STD_IOSTREAM=no
410 DEFAULT_wxUSE_CMDLINE_PARSER=no
411 DEFAULT_wxUSE_DATETIME=no
412 DEFAULT_wxUSE_TIMER=no
413 DEFAULT_wxUSE_STOPWATCH=no
414 DEFAULT_wxUSE_FILE=no
415 DEFAULT_wxUSE_FFILE=no
416 DEFAULT_wxUSE_TEXTBUFFER=no
417 DEFAULT_wxUSE_TEXTFILE=no
418 DEFAULT_wxUSE_SOUND=no
419 DEFAULT_wxUSE_INTL=no
420 DEFAULT_wxUSE_CONFIG=no
421 DEFAULT_wxUSE_FONTMAP=no
422 DEFAULT_wxUSE_STREAMS=no
423 DEFAULT_wxUSE_SOCKETS=no
424 DEFAULT_wxUSE_OLE=no
425 DEFAULT_wxUSE_DATAOBJ=no
426 DEFAULT_wxUSE_DIALUP_MANAGER=no
427 DEFAULT_wxUSE_JOYSTICK=no
428 DEFAULT_wxUSE_DYNLIB_CLASS=no
429 DEFAULT_wxUSE_DYNAMIC_LOADER=no
430 DEFAULT_wxUSE_LONGLONG=no
431 DEFAULT_wxUSE_GEOMETRY=no
432
433 DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
434 DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
435 DEFAULT_wxUSE_POSTSCRIPT=no
436
437 DEFAULT_wxUSE_CLIPBOARD=no
438 DEFAULT_wxUSE_TOOLTIPS=no
439 DEFAULT_wxUSE_DRAG_AND_DROP=no
440 DEFAULT_wxUSE_DRAGIMAGE=no
441 DEFAULT_wxUSE_SPLINES=no
442
443 DEFAULT_wxUSE_MDI=no
444 DEFAULT_wxUSE_MDI_ARCHITECTURE=no
445 DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
446 DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
447
448 DEFAULT_wxUSE_RESOURCES=no
449 DEFAULT_wxUSE_CONSTRAINTS=no
450 DEFAULT_wxUSE_IPC=no
451 DEFAULT_wxUSE_HELP=no
452 DEFAULT_wxUSE_MS_HTML_HELP=no
453 DEFAULT_wxUSE_WXHTML_HELP=no
454 DEFAULT_wxUSE_TREELAYOUT=no
455 DEFAULT_wxUSE_METAFILE=no
456 DEFAULT_wxUSE_MIMETYPE=no
457 DEFAULT_wxUSE_SYSTEM_OPTIONS=no
458 DEFAULT_wxUSE_PROTOCOL=no
459 DEFAULT_wxUSE_PROTOCOL_HTTP=no
460 DEFAULT_wxUSE_PROTOCOL_FTP=no
461 DEFAULT_wxUSE_PROTOCOL_FILE=no
462 DEFAULT_wxUSE_URL=no
463
464 DEFAULT_wxUSE_COMMONDLGS=no
465 DEFAULT_wxUSE_CHOICEDLG=no
466 DEFAULT_wxUSE_COLOURDLG=no
467 DEFAULT_wxUSE_DIRDLG=no
468 DEFAULT_wxUSE_FILEDLG=no
469 DEFAULT_wxUSE_FINDREPLDLG=no
470 DEFAULT_wxUSE_FONTDLG=no
471 DEFAULT_wxUSE_MSGDLG=no
472 DEFAULT_wxUSE_NUMBERDLG=no
473 DEFAULT_wxUSE_TEXTDLG=no
474 DEFAULT_wxUSE_SPLASH=no
475 DEFAULT_wxUSE_STARTUP_TIPS=no
476 DEFAULT_wxUSE_PROGRESSDLG=no
477 DEFAULT_wxUSE_WIZARDDLG=no
478
479 DEFAULT_wxUSE_MENUS=no
480 DEFAULT_wxUSE_MINIFRAME=no
481 DEFAULT_wxUSE_HTML=no
482 DEFAULT_wxUSE_XRC=no
483 DEFAULT_wxUSE_WEBKIT=no
484 DEFAULT_wxUSE_FILESYSTEM=no
485 DEFAULT_wxUSE_FS_INET=no
486 DEFAULT_wxUSE_FS_ZIP=no
487 DEFAULT_wxUSE_BUSYINFO=no
488 DEFAULT_wxUSE_ZIPSTREAM=no
489 DEFAULT_wxUSE_VALIDATORS=no
490
491 DEFAULT_wxUSE_ACCEL=no
492 DEFAULT_wxUSE_BUTTON=no
493 DEFAULT_wxUSE_BMPBUTTON=no
494 DEFAULT_wxUSE_CALCTRL=no
495 DEFAULT_wxUSE_CARET=no
496 DEFAULT_wxUSE_CHECKBOX=no
497 DEFAULT_wxUSE_CHECKLST=no
498 DEFAULT_wxUSE_CHOICE=no
499 DEFAULT_wxUSE_CHOICEBOOK=no
500 DEFAULT_wxUSE_COMBOBOX=no
501 DEFAULT_wxUSE_DISPLAY=no
502 DEFAULT_wxUSE_GAUGE=no
503 DEFAULT_wxUSE_GRID=no
504 DEFAULT_wxUSE_IMAGLIST=no
505 DEFAULT_wxUSE_LISTBOOK=no
506 DEFAULT_wxUSE_LISTBOX=no
507 DEFAULT_wxUSE_LISTCTRL=no
508 DEFAULT_wxUSE_NOTEBOOK=no
509 DEFAULT_wxUSE_RADIOBOX=no
510 DEFAULT_wxUSE_RADIOBTN=no
511 DEFAULT_wxUSE_SASH=no
512 DEFAULT_wxUSE_SCROLLBAR=no
513 DEFAULT_wxUSE_SLIDER=no
514 DEFAULT_wxUSE_SPINBTN=no
515 DEFAULT_wxUSE_SPINCTRL=no
516 DEFAULT_wxUSE_SPLITTER=no
517 DEFAULT_wxUSE_STATBMP=no
518 DEFAULT_wxUSE_STATBOX=no
519 DEFAULT_wxUSE_STATLINE=no
520 DEFAULT_wxUSE_STATTEXT=no
521 DEFAULT_wxUSE_STATUSBAR=yes
522 DEFAULT_wxUSE_TABDIALOG=no
523 DEFAULT_wxUSE_TEXTCTRL=no
524 DEFAULT_wxUSE_TOGGLEBTN=no
525 DEFAULT_wxUSE_TOOLBAR=no
526 DEFAULT_wxUSE_TOOLBAR_NATIVE=no
527 DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
528 DEFAULT_wxUSE_TREECTRL=no
529 DEFAULT_wxUSE_POPUPWIN=no
530 DEFAULT_wxUSE_TIPWINDOW=no
531
532 DEFAULT_wxUSE_UNICODE=no
533 DEFAULT_wxUSE_UNICODE_MSLU=no
534 DEFAULT_wxUSE_WCSRTOMBS=no
535
536 DEFAULT_wxUSE_PALETTE=no
537 DEFAULT_wxUSE_IMAGE=no
538 DEFAULT_wxUSE_GIF=no
539 DEFAULT_wxUSE_PCX=no
540 DEFAULT_wxUSE_PNM=no
541 DEFAULT_wxUSE_IFF=no
542 DEFAULT_wxUSE_XPM=no
543 DEFAULT_wxUSE_ICO_CUR=no
544 DEFAULT_wxUSE_ACCESSIBILITY=no
545
546 DEFAULT_wxUSE_MONOLITHIC=no
547 DEFAULT_wxUSE_PLUGINS=no
548 DEFAULT_wxUSE_OFFICIAL_BUILD=no
549 else
550 DEFAULT_wxUSE_UNIVERSAL=no
551 DEFAULT_wxUSE_STL=no
552
553 DEFAULT_wxUSE_NANOX=no
554
555 DEFAULT_wxUSE_THREADS=yes
556
557 DEFAULT_wxUSE_SHARED=yes
558 DEFAULT_wxUSE_OPTIMISE=yes
559 DEFAULT_wxUSE_PROFILE=no
560 DEFAULT_wxUSE_NO_DEPS=no
561 DEFAULT_wxUSE_NO_RTTI=no
562 DEFAULT_wxUSE_NO_EXCEPTIONS=no
563 DEFAULT_wxUSE_RPATH=yes
564 DEFAULT_wxUSE_PERMISSIVE=no
565 DEFAULT_wxUSE_DEBUG_FLAG=no
566 DEFAULT_wxUSE_DEBUG_INFO=no
567 DEFAULT_wxUSE_DEBUG_GDB=no
568 DEFAULT_wxUSE_MEM_TRACING=no
569 DEFAULT_wxUSE_DEBUG_CONTEXT=no
570 DEFAULT_wxUSE_DMALLOC=no
571 DEFAULT_wxUSE_APPLE_IEEE=yes
572
573 DEFAULT_wxUSE_EXCEPTIONS=yes
574 DEFAULT_wxUSE_LOG=yes
575 DEFAULT_wxUSE_LOGWINDOW=yes
576 DEFAULT_wxUSE_LOGGUI=yes
577 DEFAULT_wxUSE_LOGDIALOG=yes
578
579 DEFAULT_wxUSE_GUI=yes
580
581 DEFAULT_wxUSE_REGEX=yes
582 DEFAULT_wxUSE_XML=yes
583 DEFAULT_wxUSE_EXPAT=yes
584 DEFAULT_wxUSE_ZLIB=yes
585 DEFAULT_wxUSE_LIBPNG=yes
586 DEFAULT_wxUSE_LIBJPEG=yes
587 DEFAULT_wxUSE_LIBTIFF=yes
588 DEFAULT_wxUSE_LIBXPM=yes
589 DEFAULT_wxUSE_LIBMSPACK=yes
590 DEFAULT_wxUSE_LIBSDL=no
591 DEFAULT_wxUSE_ODBC=no
592 DEFAULT_wxUSE_OPENGL=no
593
594 DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
595 DEFAULT_wxUSE_SNGLINST_CHECKER=yes
596 DEFAULT_wxUSE_STD_IOSTREAM=no
597 DEFAULT_wxUSE_CMDLINE_PARSER=yes
598 DEFAULT_wxUSE_DATETIME=yes
599 DEFAULT_wxUSE_TIMER=yes
600 DEFAULT_wxUSE_STOPWATCH=yes
601 DEFAULT_wxUSE_FILE=yes
602 DEFAULT_wxUSE_FFILE=yes
603 DEFAULT_wxUSE_TEXTBUFFER=yes
604 DEFAULT_wxUSE_TEXTFILE=yes
605 DEFAULT_wxUSE_SOUND=yes
606 DEFAULT_wxUSE_INTL=yes
607 DEFAULT_wxUSE_CONFIG=yes
608 DEFAULT_wxUSE_FONTMAP=yes
609 DEFAULT_wxUSE_STREAMS=yes
610 DEFAULT_wxUSE_SOCKETS=yes
611 DEFAULT_wxUSE_OLE=yes
612 DEFAULT_wxUSE_DATAOBJ=yes
613 DEFAULT_wxUSE_DIALUP_MANAGER=yes
614 DEFAULT_wxUSE_JOYSTICK=yes
615 DEFAULT_wxUSE_DYNLIB_CLASS=yes
616 DEFAULT_wxUSE_DYNAMIC_LOADER=yes
617 DEFAULT_wxUSE_LONGLONG=yes
618 DEFAULT_wxUSE_GEOMETRY=yes
619
620 DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
621 DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
622 DEFAULT_wxUSE_POSTSCRIPT=yes
623
624 DEFAULT_wxUSE_CLIPBOARD=yes
625 DEFAULT_wxUSE_TOOLTIPS=yes
626 DEFAULT_wxUSE_DRAG_AND_DROP=yes
627 DEFAULT_wxUSE_DRAGIMAGE=yes
628 DEFAULT_wxUSE_SPLINES=yes
629
630 DEFAULT_wxUSE_MDI=yes
631 DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
632 DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
633 DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
634
635 DEFAULT_wxUSE_RESOURCES=no
636 DEFAULT_wxUSE_CONSTRAINTS=yes
637 DEFAULT_wxUSE_IPC=yes
638 DEFAULT_wxUSE_HELP=yes
639 DEFAULT_wxUSE_MS_HTML_HELP=yes
640 DEFAULT_wxUSE_WXHTML_HELP=yes
641 DEFAULT_wxUSE_TREELAYOUT=yes
642 DEFAULT_wxUSE_METAFILE=yes
643 DEFAULT_wxUSE_MIMETYPE=yes
644 DEFAULT_wxUSE_SYSTEM_OPTIONS=yes
645 DEFAULT_wxUSE_PROTOCOL=yes
646 DEFAULT_wxUSE_PROTOCOL_HTTP=yes
647 DEFAULT_wxUSE_PROTOCOL_FTP=yes
648 DEFAULT_wxUSE_PROTOCOL_FILE=yes
649 DEFAULT_wxUSE_URL=yes
650
651 DEFAULT_wxUSE_COMMONDLGS=yes
652 DEFAULT_wxUSE_CHOICEDLG=yes
653 DEFAULT_wxUSE_COLOURDLG=yes
654 DEFAULT_wxUSE_DIRDLG=yes
655 DEFAULT_wxUSE_FILEDLG=yes
656 DEFAULT_wxUSE_FINDREPLDLG=yes
657 DEFAULT_wxUSE_FONTDLG=yes
658 DEFAULT_wxUSE_MSGDLG=yes
659 DEFAULT_wxUSE_NUMBERDLG=yes
660 DEFAULT_wxUSE_TEXTDLG=yes
661 DEFAULT_wxUSE_SPLASH=yes
662 DEFAULT_wxUSE_STARTUP_TIPS=yes
663 DEFAULT_wxUSE_PROGRESSDLG=yes
664 DEFAULT_wxUSE_WIZARDDLG=yes
665
666 DEFAULT_wxUSE_MENUS=yes
667 DEFAULT_wxUSE_MINIFRAME=yes
668 DEFAULT_wxUSE_HTML=yes
669 DEFAULT_wxUSE_XRC=yes
670 DEFAULT_wxUSE_WEBKIT=yes
671 DEFAULT_wxUSE_FILESYSTEM=yes
672 DEFAULT_wxUSE_FS_INET=yes
673 DEFAULT_wxUSE_FS_ZIP=yes
674 DEFAULT_wxUSE_BUSYINFO=yes
675 DEFAULT_wxUSE_ZIPSTREAM=yes
676 DEFAULT_wxUSE_VALIDATORS=yes
677
678 DEFAULT_wxUSE_ACCEL=yes
679 DEFAULT_wxUSE_BUTTON=yes
680 DEFAULT_wxUSE_BMPBUTTON=yes
681 DEFAULT_wxUSE_CALCTRL=yes
682 DEFAULT_wxUSE_CARET=yes
683 DEFAULT_wxUSE_CHECKBOX=yes
684 DEFAULT_wxUSE_CHECKLST=yes
685 DEFAULT_wxUSE_CHOICE=yes
686 DEFAULT_wxUSE_CHOICEBOOK=yes
687 DEFAULT_wxUSE_COMBOBOX=yes
688 DEFAULT_wxUSE_DISPLAY=yes
689 DEFAULT_wxUSE_GAUGE=yes
690 DEFAULT_wxUSE_GRID=yes
691 DEFAULT_wxUSE_IMAGLIST=yes
692 DEFAULT_wxUSE_LISTBOOK=yes
693 DEFAULT_wxUSE_LISTBOX=yes
694 DEFAULT_wxUSE_LISTCTRL=yes
695 DEFAULT_wxUSE_NOTEBOOK=yes
696 DEFAULT_wxUSE_RADIOBOX=yes
697 DEFAULT_wxUSE_RADIOBTN=yes
698 DEFAULT_wxUSE_SASH=yes
699 DEFAULT_wxUSE_SCROLLBAR=yes
700 DEFAULT_wxUSE_SLIDER=yes
701 DEFAULT_wxUSE_SPINBTN=yes
702 DEFAULT_wxUSE_SPINCTRL=yes
703 DEFAULT_wxUSE_SPLITTER=yes
704 DEFAULT_wxUSE_STATBMP=yes
705 DEFAULT_wxUSE_STATBOX=yes
706 DEFAULT_wxUSE_STATLINE=yes
707 DEFAULT_wxUSE_STATTEXT=yes
708 DEFAULT_wxUSE_STATUSBAR=yes
709 DEFAULT_wxUSE_TABDIALOG=no
710 DEFAULT_wxUSE_TEXTCTRL=yes
711 DEFAULT_wxUSE_TOGGLEBTN=yes
712 DEFAULT_wxUSE_TOOLBAR=yes
713 DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
714 DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
715 DEFAULT_wxUSE_TREECTRL=yes
716 DEFAULT_wxUSE_POPUPWIN=yes
717 DEFAULT_wxUSE_TIPWINDOW=yes
718
719 DEFAULT_wxUSE_UNICODE=no
720 DEFAULT_wxUSE_UNICODE_MSLU=yes
721 DEFAULT_wxUSE_WCSRTOMBS=no
722
723 DEFAULT_wxUSE_PALETTE=yes
724 DEFAULT_wxUSE_IMAGE=yes
725 DEFAULT_wxUSE_GIF=yes
726 DEFAULT_wxUSE_PCX=yes
727 DEFAULT_wxUSE_IFF=no
728 DEFAULT_wxUSE_PNM=yes
729 DEFAULT_wxUSE_XPM=yes
730 DEFAULT_wxUSE_ICO_CUR=yes
731 DEFAULT_wxUSE_ACCESSIBILITY=no
732
733 DEFAULT_wxUSE_MONOLITHIC=no
734 DEFAULT_wxUSE_PLUGINS=no
735 DEFAULT_wxUSE_OFFICIAL_BUILD=no
736
737 dnl Appliable only when --with-gtk was used:
738 DEFAULT_wxUSE_GTK2=yes
739 fi
740
741 dnl WX_ARG_WITH should be used to select whether an external package will be
742 dnl used or not, to configure compile-time features of this package itself,
743 dnl use WX_ARG_ENABLE instead
744
745 dnl ============================
746 dnl external package dependecies
747 dnl ============================
748
749 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
750 dnl these values manually
751 for toolkit in `echo $ALL_TOOLKITS`; do
752 LINE=`grep "wxUSE_$toolkit=" ${wx_arg_cache_file}`
753 if test "x$LINE" != "x" ; then
754 has_toolkit_in_cache=1
755 eval "DEFAULT_$LINE"
756 eval "CACHE_$toolkit=1"
757 fi
758 done
759
760 dnl ---------------------------------------------------------------------------
761 dnl --disable-gui will build only non-GUI part of wxWidgets: check for this
762 dnl first to disable many other switches if it's given
763 dnl
764 dnl NB: this is still in testing stage, don't use if you don't know what you're
765 dnl doing
766 dnl ---------------------------------------------------------------------------
767
768 WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI)
769 WX_ARG_ENABLE(monolithic, [ --enable-monolithic build wxWidgets as single library], wxUSE_MONOLITHIC)
770 WX_ARG_ENABLE(plugins, [ --enable-plugins build parts of wxWidgets as loadable components], wxUSE_PLUGINS)
771
772 if test "$wxUSE_GUI" = "yes"; then
773
774 WX_ARG_ENABLE(universal, [ --enable-universal use wxWidgets GUI controls instead of native ones], wxUSE_UNIVERSAL)
775 AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
776 AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
777 AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" CACHE_MAC=1 TOOLKIT_GIVEN=1])
778 AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" CACHE_COCOA=1 TOOLKIT_GIVEN=1])
779 AC_ARG_WITH(wine, [ --with-wine use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
780 AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
781 AC_ARG_WITH(pm, [ --with-pm use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
782 AC_ARG_WITH(mgl, [ --with-mgl use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
783 AC_ARG_WITH(microwin, [ --with-microwin use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
784 AC_ARG_WITH(x11, [ --with-x11 use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
785 WX_ARG_ENABLE(nanox, [ --enable-nanox use NanoX], wxUSE_NANOX)
786
787 WX_ARG_ENABLE(gtk2, [ --disable-gtk2 use GTK+ 1.2 instead of 2.0], wxUSE_GTK2)
788 WX_ARG_ENABLE(gpe, [ --enable-gpe use GNOME PDA Environment features if possible], wxUSE_GPE)
789
790 WX_ARG_SYS_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG)
791 WX_ARG_SYS_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
792 WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF)
793 WX_ARG_SYS_WITH(libxpm, [ --with-libxpm use libxpm (XPM file format)], wxUSE_LIBXPM)
794 WX_ARG_WITH(libmspack, [ --with-libmspack use libmspack (CHM help files loading)], wxUSE_LIBMSPACK)
795 WX_ARG_WITH(sdl, [ --with-sdl use SDL for audio on Unix], wxUSE_LIBSDL)
796 WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
797
798 fi
799 dnl for GUI only
800
801 WX_ARG_WITH(dmalloc, [ --with-dmalloc use dmalloc library (http://dmalloc.com/)], wxUSE_DMALLOC)
802 WX_ARG_SYS_WITH(regex, [ --with-regex enable support for wxRegEx class], wxUSE_REGEX)
803 WX_ARG_SYS_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB)
804 WX_ARG_SYS_WITH(odbc, [ --with-odbc use the IODBC and wxODBC classes], wxUSE_ODBC)
805 WX_ARG_SYS_WITH(expat, [ --with-expat enable XML support using expat parser], wxUSE_EXPAT)
806
807 dnl ---------------------------------------------------------------------------
808 dnl compile options
809 dnl ---------------------------------------------------------------------------
810
811 WX_ARG_ENABLE(shared, [ --enable-shared create shared library code], wxUSE_SHARED)
812 WX_ARG_ENABLE(optimise, [ --enable-optimise create optimised code], wxUSE_OPTIMISE)
813 WX_ARG_ENABLE(debug, [ --enable-debug same as debug_flag and debug_info], wxUSE_DEBUG)
814 WX_ARG_ENABLE(stl, [ --enable-stl use STL for containers], wxUSE_STL)
815 if test "$USE_OS2" = "1"; then
816 WX_ARG_ENABLE(omf, [ --enable-omf use OMF object format], wxUSE_OMF)
817 fi
818
819 if test "$wxUSE_DEBUG" = "yes"; then
820 DEFAULT_wxUSE_DEBUG_FLAG=yes
821 DEFAULT_wxUSE_DEBUG_INFO=yes
822 BUILD=debug
823 elif test "$wxUSE_DEBUG" = "no"; then
824 DEFAULT_wxUSE_DEBUG_FLAG=no
825 DEFAULT_wxUSE_DEBUG_INFO=no
826 BUILD=release
827 fi
828
829 WX_ARG_ENABLE(debug_flag, [ --enable-debug_flag set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
830 WX_ARG_ENABLE(debug_info, [ --enable-debug_info create code with debugging information], wxUSE_DEBUG_INFO)
831 WX_ARG_ENABLE(debug_gdb, [ --enable-debug_gdb create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
832 WX_ARG_ENABLE(debug_cntxt, [ --enable-debug_cntxt use wxDebugContext], wxUSE_DEBUG_CONTEXT)
833 WX_ARG_ENABLE(mem_tracing, [ --enable-mem_tracing create code with memory tracing], wxUSE_MEM_TRACING)
834 WX_ARG_ENABLE(profile, [ --enable-profile create code with profiling information], wxUSE_PROFILE)
835 WX_ARG_ENABLE(no_rtti, [ --enable-no_rtti create code without RTTI information], wxUSE_NO_RTTI)
836 WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
837 WX_ARG_ENABLE(permissive, [ --enable-permissive compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
838 WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS)
839
840 WX_ARG_ENABLE(compat22, [ --enable-compat22 enable wxWidgets 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
841 WX_ARG_ENABLE(compat24, [ --disable-compat24 disable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, disable)
842
843 WX_ARG_ENABLE(rpath, [ --disable-rpath disable use of rpath for uninstalled builds], wxUSE_RPATH)
844
845
846 dnl ---------------------------------------------------------------------------
847 dnl (small) optional non GUI classes
848 dnl ---------------------------------------------------------------------------
849
850 WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
851 WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
852
853 WX_ARG_ENABLE(protocols, [ --enable-protocols use wxProtocol and derived classes], wxUSE_PROTOCOL)
854 WX_ARG_ENABLE(ftp, [ --enable-ftp use wxFTP (requires wxProtocol], wxUSE_PROTOCOL_FTP)
855 WX_ARG_ENABLE(http, [ --enable-http use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP)
856 WX_ARG_ENABLE(fileproto, [ --enable-fileproto use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE)
857 WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
858 WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes (Win32 only)], wxUSE_OLE)
859 WX_ARG_ENABLE(dataobj, [ --enable-dataobj use data object classes], wxUSE_DATAOBJ)
860
861 WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
862
863 dnl please keep the settings below in alphabetical order
864 WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
865 WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION)
866 WX_ARG_ENABLE(cmdline, [ --enable-cmdline use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
867 WX_ARG_ENABLE(datetime, [ --enable-datetime use wxDateTime class], wxUSE_DATETIME)
868 WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER)
869 WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
870 WX_ARG_ENABLE(dynamicloader, [ --enable-dynamicloader use (new) wxDynamicLibrary class], wxUSE_DYNAMIC_LOADER)
871 WX_ARG_ENABLE(exceptions, [ --enable-exceptions build exception-safe library], wxUSE_EXCEPTIONS)
872 WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile class], wxUSE_FFILE)
873 WX_ARG_ENABLE(file, [ --enable-file use wxFile class], wxUSE_FILE)
874 WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM)
875 WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP)
876 WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
877 WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP)
878 WX_ARG_ENABLE(geometry, [ --enable-geometry use geometry class], wxUSE_GEOMETRY)
879 WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG)
880 WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG)
881 WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE)
882 WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU)
883 WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER)
884 WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS)
885 WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM)
886 WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH)
887 WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS)
888 WX_ARG_ENABLE(textbuf, [ --enable-textbuf use wxTextBuffer class], wxUSE_TEXTBUFFER)
889 WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE)
890 WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER)
891 WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE)
892 WX_ARG_ENABLE(sound, [ --enable-sound use wxSound class], wxUSE_SOUND)
893 WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWidgets implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
894 WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZipInputStream], wxUSE_ZIPSTREAM)
895
896 WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL)
897 WX_ARG_ENABLE(protocol, [ --enable-protocol use wxProtocol class], wxUSE_PROTOCOL)
898 WX_ARG_ENABLE(protocol_http, [ --enable-protocol-http HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP)
899 WX_ARG_ENABLE(protocol_ftp, [ --enable-protocol-ftp FTP support in wxProtocol], wxUSE_PROTOCOL_FTP)
900 WX_ARG_ENABLE(protocol_file, [ --enable-protocol-file FILE support in wxProtocol], wxUSE_PROTOCOL_FILE)
901
902
903 dnl ---------------------------------------------------------------------------
904 dnl "big" options (i.e. those which change a lot of things throughout the library)
905 dnl ---------------------------------------------------------------------------
906
907 WX_ARG_ENABLE(threads, [ --enable-threads use threads], wxUSE_THREADS)
908
909 if test "$wxUSE_GUI" = "yes"; then
910
911 dnl ---------------------------------------------------------------------------
912 dnl "big" GUI options
913 dnl ---------------------------------------------------------------------------
914
915 WX_ARG_ENABLE(docview, [ --enable-docview use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
916 WX_ARG_ENABLE(help, [ --enable-help use help subsystem], wxUSE_HELP)
917 WX_ARG_ENABLE(mshtmlhelp, [ --enable-mshtmlhelp use MS HTML Help (win32)], wxUSE_MS_HTML_HELP)
918 WX_ARG_ENABLE(html, [ --enable-html use wxHTML sub-library], wxUSE_HTML)
919 WX_ARG_ENABLE(htmlhelp, [ --enable-htmlhelp use wxHTML-based help], wxUSE_WXHTML_HELP)
920 WX_ARG_ENABLE(xrc, [ --enable-xrc use XRC resources sub-library], wxUSE_XRC)
921 WX_ARG_ENABLE(constraints, [ --enable-constraints use layout-constraints system], wxUSE_CONSTRAINTS)
922 WX_ARG_ENABLE(printarch, [ --enable-printarch use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
923 WX_ARG_ENABLE(mdi, [ --enable-mdi use multiple document interface architecture], wxUSE_MDI)
924 WX_ARG_ENABLE(mdidoc, [ --enable-mdidoc use docview architecture with MDI], wxUSE_MDI_ARCHITECTURE)
925 WX_ARG_ENABLE(loggui, [ --enable-loggui use standard GUI logger], wxUSE_LOGGUI)
926 WX_ARG_ENABLE(logwin, [ --enable-logwin use wxLogWindow], wxUSE_LOGWINDOW)
927 WX_ARG_ENABLE(logdialog, [ --enable-logdialog use wxLogDialog], wxUSE_LOGDIALOG)
928 WX_ARG_ENABLE(webkit, [ --enable-webkit use wxWebKitCtrl (Mac)], wxUSE_WEBKIT)
929
930 dnl ---------------------------------------------------------------------------
931 dnl PostScript options
932 dnl ---------------------------------------------------------------------------
933 WX_ARG_ENABLE(postscript, [ --enable-postscript use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)
934
935 dnl VZ: these options seem to be always on, if someone wants to change it please do
936 dnl WX_ARG_ENABLE(PS-normalized, [ --enable-PS-normalized use normalized PS fonts], dnl wxUSE_NORMALIZED_PS_FONTS)
937 dnl WX_ARG_ENABLE(afmfonts, [ --enable-afmfonts use Adobe Font Metric Font table], dnl wxUSE_AFM_FOR_POSTSCRIPT)
938
939 dnl ---------------------------------------------------------------------------
940 dnl resources
941 dnl ---------------------------------------------------------------------------
942
943 WX_ARG_ENABLE(prologio, [ --enable-prologio not available; see contrib], wxUSE_PROLOGIO)
944 WX_ARG_ENABLE(resources, [ --enable-resources not available; see contrib], wxUSE_RESOURCES)
945
946 dnl ---------------------------------------------------------------------------
947 dnl IPC &c
948 dnl ---------------------------------------------------------------------------
949
950 WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard class], wxUSE_CLIPBOARD)
951 WX_ARG_ENABLE(dnd, [ --enable-dnd use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
952 WX_ARG_ENABLE(metafile, [ --enable-metafile use win32 metafiles], wxUSE_METAFILE)
953
954 dnl WX_ARG_ENABLE(treelayout, [ --enable-treelayout use wxTreeLayout class], wxUSE_TREELAYOUT)
955
956 dnl ---------------------------------------------------------------------------
957 dnl optional GUI controls (in alphabetical order except the first one)
958 dnl ---------------------------------------------------------------------------
959
960 WX_ARG_ENABLE(controls, [ --enable-controls use all usual controls], wxUSE_CONTROLS)
961
962 dnl even with --enable-controls, some may be disabled by giving
963 dnl --disable-<control> later on the command line - but by default all will be
964 dnl used (and vice versa)
965 if test "$wxUSE_CONTROLS" = "yes"; then
966 DEFAULT_wxUSE_ACCEL=yes
967 DEFAULT_wxUSE_BMPBUTTON=yes
968 DEFAULT_wxUSE_BUTTON=yes
969 DEFAULT_wxUSE_CALCTRL=no
970 DEFAULT_wxUSE_CARET=yes
971 DEFAULT_wxUSE_COMBOBOX=yes
972 DEFAULT_wxUSE_CHECKBOX=yes
973 DEFAULT_wxUSE_CHECKLISTBOX=yes
974 DEFAULT_wxUSE_CHOICE=yes
975 DEFAULT_wxUSE_CHOICEBOOK=yes
976 DEFAULT_wxUSE_GAUGE=yes
977 DEFAULT_wxUSE_GRID=yes
978 DEFAULT_wxUSE_IMAGLIST=yes
979 DEFAULT_wxUSE_LISTBOOK=yes
980 DEFAULT_wxUSE_LISTBOX=yes
981 DEFAULT_wxUSE_LISTCTRL=yes
982 DEFAULT_wxUSE_NOTEBOOK=yes
983 DEFAULT_wxUSE_RADIOBOX=yes
984 DEFAULT_wxUSE_RADIOBTN=yes
985 DEFAULT_wxUSE_SASH=yes
986 DEFAULT_wxUSE_SCROLLBAR=yes
987 DEFAULT_wxUSE_SLIDER=yes
988 DEFAULT_wxUSE_SPINBTN=yes
989 DEFAULT_wxUSE_SPINCTRL=yes
990 DEFAULT_wxUSE_SPLITTER=yes
991 DEFAULT_wxUSE_STATBMP=yes
992 DEFAULT_wxUSE_STATBOX=yes
993 DEFAULT_wxUSE_STATLINE=yes
994 DEFAULT_wxUSE_STATUSBAR=yes
995 DEFAULT_wxUSE_TAB_DIALOG=yes
996 DEFAULT_wxUSE_TOGGLEBTN=yes
997 DEFAULT_wxUSE_TOOLBAR=yes
998 DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
999 DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
1000 DEFAULT_wxUSE_TOOLTIPS=yes
1001 DEFAULT_wxUSE_TREECTRL=yes
1002 DEFAULT_wxUSE_POPUPWIN=yes
1003 DEFAULT_wxUSE_TIPWINDOW=yes
1004 elif test "$wxUSE_CONTROLS" = "no"; then
1005 DEFAULT_wxUSE_ACCEL=no
1006 DEFAULT_wxUSE_BMPBUTTON=no
1007 DEFAULT_wxUSE_BUTTON=no
1008 DEFAULT_wxUSE_CALCTRL=no
1009 DEFAULT_wxUSE_CARET=no
1010 DEFAULT_wxUSE_COMBOBOX=no
1011 DEFAULT_wxUSE_CHECKBOX=no
1012 DEFAULT_wxUSE_CHECKLISTBOX=no
1013 DEFAULT_wxUSE_CHOICE=no
1014 DEFAULT_wxUSE_CHOICEBOOK=no
1015 DEFAULT_wxUSE_GAUGE=no
1016 DEFAULT_wxUSE_GRID=no
1017 DEFAULT_wxUSE_IMAGLIST=no
1018 DEFAULT_wxUSE_LISTBOOK=no
1019 DEFAULT_wxUSE_LISTBOX=no
1020 DEFAULT_wxUSE_LISTCTRL=no
1021 DEFAULT_wxUSE_NOTEBOOK=no
1022 DEFAULT_wxUSE_RADIOBOX=no
1023 DEFAULT_wxUSE_RADIOBTN=no
1024 DEFAULT_wxUSE_SASH=no
1025 DEFAULT_wxUSE_SCROLLBAR=no
1026 DEFAULT_wxUSE_SLIDER=no
1027 DEFAULT_wxUSE_SPINBTN=no
1028 DEFAULT_wxUSE_SPINCTRL=no
1029 DEFAULT_wxUSE_SPLITTER=no
1030 DEFAULT_wxUSE_STATBMP=no
1031 DEFAULT_wxUSE_STATBOX=no
1032 DEFAULT_wxUSE_STATLINE=no
1033 DEFAULT_wxUSE_STATUSBAR=no
1034 DEFAULT_wxUSE_TAB_DIALOG=no
1035 DEFAULT_wxUSE_TOGGLEBTN=no
1036 DEFAULT_wxUSE_TOOLBAR=no
1037 DEFAULT_wxUSE_TOOLBAR_NATIVE=no
1038 DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
1039 DEFAULT_wxUSE_TOOLTIPS=no
1040 DEFAULT_wxUSE_TREECTRL=no
1041 DEFAULT_wxUSE_POPUPWIN=no
1042 DEFAULT_wxUSE_TIPWINDOW=no
1043 fi
1044
1045 WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL)
1046 WX_ARG_ENABLE(button, [ --enable-button use wxButton class], wxUSE_BUTTON)
1047 WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON)
1048 WX_ARG_ENABLE(calendar, [ --enable-calendar use wxCalendarCtrl class], wxUSE_CALCTRL)
1049 WX_ARG_ENABLE(caret, [ --enable-caret use wxCaret class], wxUSE_CARET)
1050 WX_ARG_ENABLE(checkbox, [ --enable-checkbox use wxCheckBox class], wxUSE_CHECKBOX)
1051 WX_ARG_ENABLE(checklst, [ --enable-checklst use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
1052 WX_ARG_ENABLE(choice, [ --enable-choice use wxChoice class], wxUSE_CHOICE)
1053 WX_ARG_ENABLE(choicebook, [ --enable-choicebook use wxChoicebook class], wxUSE_CHOICEBOOK)
1054 WX_ARG_ENABLE(combobox, [ --enable-combobox use wxComboBox class], wxUSE_COMBOBOX)
1055 WX_ARG_ENABLE(display, [ --enable-display use wxDisplay class], wxUSE_DISPLAY)
1056 WX_ARG_ENABLE(gauge, [ --enable-gauge use wxGauge class], wxUSE_GAUGE)
1057 WX_ARG_ENABLE(grid, [ --enable-grid use wxGrid class], wxUSE_GRID)
1058 WX_ARG_ENABLE(imaglist, [ --enable-imaglist use wxImageList class], wxUSE_IMAGLIST)
1059 WX_ARG_ENABLE(listbook, [ --enable-listbook use wxListbook class], wxUSE_LISTBOOK)
1060 WX_ARG_ENABLE(listbox, [ --enable-listbox use wxListBox class], wxUSE_LISTBOX)
1061 WX_ARG_ENABLE(listctrl, [ --enable-listctrl use wxListCtrl class], wxUSE_LISTCTRL)
1062 WX_ARG_ENABLE(notebook, [ --enable-notebook use wxNotebook class], wxUSE_NOTEBOOK)
1063 WX_ARG_ENABLE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX)
1064 WX_ARG_ENABLE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN)
1065 WX_ARG_ENABLE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH)
1066 WX_ARG_ENABLE(scrollbar, [ --enable-scrollbar use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
1067 WX_ARG_ENABLE(slider, [ --enable-slider use wxSlider class], wxUSE_SLIDER)
1068 WX_ARG_ENABLE(spinbtn, [ --enable-spinbtn use wxSpinButton class], wxUSE_SPINBTN)
1069 WX_ARG_ENABLE(spinctrl, [ --enable-spinctrl use wxSpinCtrl class], wxUSE_SPINCTRL)
1070 WX_ARG_ENABLE(splitter, [ --enable-splitter use wxSplitterWindow class], wxUSE_SPLITTER)
1071 WX_ARG_ENABLE(statbmp, [ --enable-statbmp use wxStaticBitmap class], wxUSE_STATBMP)
1072 WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wxUSE_STATBOX)
1073 WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE)
1074 WX_ARG_ENABLE(stattext, [ --enable-stattext use wxStaticText class], wxUSE_STATTEXT)
1075 WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR)
1076 WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TABDIALOG)
1077 WX_ARG_ENABLE(textctrl, [ --enable-textctrl use wxTextCtrl class], wxUSE_TEXTCTRL)
1078 WX_ARG_ENABLE(togglebtn, [ --enable-togglebtn use wxToggleButton class], wxUSE_TOGGLEBTN)
1079 WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR)
1080 WX_ARG_ENABLE(tbarnative, [ --enable-tbarnative use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
1081 WX_ARG_ENABLE(tbarsmpl, [ --enable-tbarsmpl use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
1082 WX_ARG_ENABLE(treectrl, [ --enable-treectrl use wxTreeCtrl class], wxUSE_TREECTRL)
1083 WX_ARG_ENABLE(tipwindow, [ --enable-tipwindow use wxTipWindow class], wxUSE_TIPWINDOW)
1084 WX_ARG_ENABLE(popupwin, [ --enable-popupwin use wxPopUpWindow class], wxUSE_POPUPWIN)
1085
1086 dnl ---------------------------------------------------------------------------
1087 dnl common dialogs
1088 dnl ---------------------------------------------------------------------------
1089
1090 WX_ARG_ENABLE(commondlg, [ --enable-commondlg use all common dialogs], wxUSE_COMMONDLGS)
1091 WX_ARG_ENABLE(choicedlg, [ --enable-choicedlg use wxChoiceDialog], wxUSE_CHOICEDLG)
1092 WX_ARG_ENABLE(coldlg, [ --enable-coldlg use wxColourDialog], wxUSE_COLOURDLG)
1093 WX_ARG_ENABLE(filedlg, [ --enable-filedlg use wxFileDialog], wxUSE_FILEDLG)
1094 WX_ARG_ENABLE(finddlg, [ --enable-finddlg use wxFindReplaceDialog], wxUSE_FINDREPLDLG)
1095 WX_ARG_ENABLE(fontdlg, [ --enable-fontdlg use wxFontDialog], wxUSE_FONTDLG)
1096 WX_ARG_ENABLE(dirdlg, [ --enable-dirdlg use wxDirDialog], wxUSE_DIRDLG)
1097 WX_ARG_ENABLE(msgdlg, [ --enable-msgdlg use wxMessageDialog], wxUSE_MSGDLG)
1098 WX_ARG_ENABLE(numberdlg, [ --enable-numberdlg use wxNumberEntryDialog], wxUSE_NUMBERDLG)
1099 WX_ARG_ENABLE(splash, [ --enable-splash use wxSplashScreen], wxUSE_SPLASH)
1100 WX_ARG_ENABLE(textdlg, [ --enable-textdlg use wxTextDialog], wxUSE_TEXTDLG)
1101 WX_ARG_ENABLE(tipdlg, [ --enable-tipdlg use startup tips], wxUSE_STARTUP_TIPS)
1102 WX_ARG_ENABLE(progressdlg, [ --enable-progressdlg use wxProgressDialog], wxUSE_PROGRESSDLG)
1103 WX_ARG_ENABLE(wizarddlg, [ --enable-wizarddlg use wxWizard], wxUSE_WIZARDDLG)
1104
1105 dnl ---------------------------------------------------------------------------
1106 dnl misc GUI options
1107 dnl ---------------------------------------------------------------------------
1108
1109 WX_ARG_ENABLE(menus, [ --enable-menus use wxMenu/wxMenuBar/wxMenuItem classes], wxUSE_MENUS)
1110 WX_ARG_ENABLE(miniframe, [ --enable-miniframe use wxMiniFrame class], wxUSE_MINIFRAME)
1111 WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUSE_TOOLTIPS)
1112 WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES)
1113 WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS)
1114 WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO)
1115 WX_ARG_ENABLE(joystick, [ --enable-joystick use wxJoystick (Linux only)], wxUSE_JOYSTICK)
1116 WX_ARG_ENABLE(metafile, [ --enable-metafiles use wxMetaFile (Windows only)], wxUSE_METAFILE)
1117 WX_ARG_ENABLE(dragimage, [ --enable-dragimage use wxDragImage], wxUSE_DRAGIMAGE)
1118 WX_ARG_ENABLE(accessibility,[ --enable-accessibility enable accessibility support], wxUSE_ACCESSIBILITY)
1119
1120 dnl ---------------------------------------------------------------------------
1121 dnl support for image formats that do not rely on external library
1122 dnl ---------------------------------------------------------------------------
1123
1124 WX_ARG_ENABLE(palette, [ --enable-palette use wxPalette class], wxUSE_PALETTE)
1125 WX_ARG_ENABLE(image, [ --enable-image use wxImage class], wxUSE_IMAGE)
1126 WX_ARG_ENABLE(gif, [ --enable-gif use gif images (GIF file format)], wxUSE_GIF)
1127 WX_ARG_ENABLE(pcx, [ --enable-pcx use pcx images (PCX file format)], wxUSE_PCX)
1128 WX_ARG_ENABLE(iff, [ --enable-iff use iff images (IFF file format)], wxUSE_IFF)
1129 WX_ARG_ENABLE(pnm, [ --enable-pnm use pnm images (PNM file format)], wxUSE_PNM)
1130 WX_ARG_ENABLE(xpm, [ --enable-xpm use xpm images (XPM file format)], wxUSE_XPM)
1131 WX_ARG_ENABLE(ico_cur, [ --enable-icocur use Windows ICO and CUR formats], wxUSE_ICO_CUR)
1132
1133 fi
1134
1135 dnl ---------------------------------------------------------------------------
1136 dnl flavour support
1137 dnl ---------------------------------------------------------------------------
1138
1139 dnl Should this be --enable? I flip-flopped a couple of times and this seems
1140 dnl in the spirit if not the letter, we have gtk-prefix and the like in this group.
1141 dnl It doesn't actually change anything but the output file names.
1142 AC_ARG_WITH(flavour, [ --with-flavour=NAME specify a name to identify this build], [WX_FLAVOUR="$withval"])
1143
1144 dnl ---------------------------------------------------------------------------
1145 dnl some win32 settings
1146 dnl ---------------------------------------------------------------------------
1147
1148 WX_ARG_ENABLE(official_build, [ --enable-official_build official build of wxWidgets (win32 DLL only)], wxUSE_OFFICIAL_BUILD)
1149 AC_ARG_ENABLE(vendor, [ --enable-vendor=VENDOR vendor name (win32 DLL only)], [VENDOR="$enableval"])
1150 if test "x$VENDOR" = "x"; then
1151 VENDOR="custom"
1152 fi
1153
1154
1155 dnl for GUI only
1156
1157 dnl cache the options values before (may be) aborting below
1158 WX_ARG_CACHE_FLUSH
1159
1160 dnl check that no more than one toolkit is given and that if none are given that
1161 dnl we have a default one
1162
1163 AC_MSG_CHECKING(for toolkit)
1164
1165 # In Wine, we need to default to MSW, not GTK or MOTIF
1166 if test "$wxUSE_WINE" = "yes"; then
1167 DEFAULT_DEFAULT_wxUSE_GTK=0
1168 DEFAULT_DEFAULT_wxUSE_MOTIF=0
1169 DEFAULT_DEFAULT_wxUSE_MSW=1
1170 wxUSE_SHARED=no
1171 fi
1172
1173 if test "$wxUSE_GUI" = "yes"; then
1174
1175 if test "$USE_BEOS" = 1; then
1176 AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
1177 fi
1178
1179 if test "$TOOLKIT_GIVEN" = 1; then
1180 dnl convert "yes" to 1 and "no" to 0
1181 for toolkit in `echo $ALL_TOOLKITS`; do
1182 var=wxUSE_$toolkit
1183 eval "value=\$${var}"
1184 eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`"
1185 done
1186 else
1187 dnl try to guess the most apropriate toolkit for this platform
1188 for toolkit in `echo $ALL_TOOLKITS`; do
1189 if test "$has_toolkit_in_cache" != 1; then
1190 var=DEFAULT_DEFAULT_wxUSE_$toolkit
1191 else
1192 var=DEFAULT_wxUSE_$toolkit
1193 fi
1194 eval "wxUSE_$toolkit=\$${var}"
1195 done
1196 fi
1197
1198 dnl we suppose that expr is available (maybe there is a better way to do
1199 dnl this? what about using ALL_TOOLKITS? TODO)
1200 NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
1201 + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \
1202 + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
1203
1204 dnl Allow wxUSE_PM only for OS/2 with EMX.
1205 case "${host}" in
1206 *-pc-os2_emx | *-pc-os2-emx )
1207 NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
1208 esac
1209
1210 case "$NUM_TOOLKITS" in
1211 1)
1212 ;;
1213 0)
1214 AC_MSG_ERROR(Please specify a toolkit -- cannot determine the default for ${host})
1215 ;;
1216 *)
1217 AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?))
1218 esac
1219
1220 dnl cache the wxUSE_<TOOLKIT> values too
1221 for toolkit in `echo $ALL_TOOLKITS`; do
1222 var=wxUSE_$toolkit
1223 eval "value=\$${var}"
1224 if test "x$value" != x; then
1225 cache_var=CACHE_$toolkit
1226 eval "cache=\$${cache_var}"
1227 if test "$cache" = 1; then
1228 echo "$var=$value" >> ${wx_arg_cache_file}
1229 fi
1230 if test "$value" = 1; then
1231 toolkit_echo=`echo $toolkit | tr "[[A-Z]]" "[[a-z]]"`
1232 AC_MSG_RESULT($toolkit_echo)
1233 fi
1234 fi
1235 done
1236 else
1237 if test "x$host_alias" != "x"; then
1238 AC_MSG_RESULT(base ($host_alias hosted) only)
1239 else
1240 AC_MSG_RESULT(base only)
1241 fi
1242 fi
1243
1244 dnl ---------------------------------------------------------------------------
1245 dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
1246 dnl 'just' a POSIX platform, so the Win32 API must not be available
1247 dnl ---------------------------------------------------------------------------
1248 dnl (Windows-only piece)
1249 wants_win32=0
1250 doesnt_want_win32=0
1251 case "${host}" in
1252 *-*-cygwin*)
1253 if test "$wxUSE_MSW" = 1 ; then
1254 wants_win32=1
1255 else
1256 doesnt_want_win32=1
1257 fi
1258 ;;
1259 *-*-mingw*)
1260 wants_win32=1
1261 ;;
1262 esac
1263
1264 dnl ---------------------------------------------------------------------------
1265 dnl Wine is a virtual platform, we need to patch things up a bit
1266 dnl ---------------------------------------------------------------------------
1267 if test "$wxUSE_WINE" = "yes"; then
1268 wants_win32=1
1269 dnl FIXME: we should do a better job of testing for these
1270 CC=winegcc
1271 CXX=wineg++
1272 RESCOMP=wrc
1273 LDFLAGS_GUI="-mwindows"
1274 fi
1275
1276 dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
1277 dnl take effect on Cygwin/Mingw and not other platforms.
1278 if test "$wants_win32" = 1 ; then
1279 USE_UNIX=0
1280 USE_WIN32=1
1281 AC_DEFINE(__WIN32__)
1282 AC_DEFINE(__WIN95__)
1283 AC_DEFINE(__WINDOWS__)
1284 AC_DEFINE(__GNUWIN32__)
1285 AC_DEFINE(STRICT)
1286 AC_DEFINE(WINVER, 0x0400)
1287 fi
1288 if test "$doesnt_want_win32" = 1 ; then
1289 USE_UNIX=1
1290 USE_WIN32=0
1291 fi
1292 dnl (end of Windows-only piece)
1293
1294 if test "$USE_UNIX" = 1 ; then
1295 wxUSE_UNIX=yes
1296 AC_DEFINE(__UNIX__)
1297 fi
1298
1299 dnl ---------------------------------------------------------------------------
1300 dnl Checks for programs
1301 dnl ---------------------------------------------------------------------------
1302
1303 dnl flush the cache because checking for programs might abort
1304 AC_CACHE_SAVE
1305
1306 dnl cross-compiling support: we're cross compiling if the build system is
1307 dnl different from the target one (assume host and target be always the same)
1308 if test "$build" != "$host" ; then
1309 if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX"; then
1310 CC=$host_alias-gcc
1311 CXX=$host_alias-c++
1312 AR=$host_alias-ar
1313 RANLIB=$host_alias-ranlib
1314 DLLTOOL=$host_alias-dlltool
1315 RESCOMP=$host_alias-windres
1316 STRIP=$host_alias-strip
1317 else
1318 AC_MSG_ERROR($build_alias -> $host_alias cross compilation not supported yet.)
1319 fi
1320 fi
1321
1322 dnl C-compiler checks
1323 dnl defines CC with the compiler to use
1324 dnl defines GCC with yes if using gcc
1325 dnl defines GCC empty if not using gcc
1326 dnl defines CFLAGS
1327 dnl
1328 dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
1329 dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
1330 dnl -g and -O flags ourselves below
1331 CFLAGS=${CFLAGS:=}
1332 AC_PROG_CC
1333
1334 dnl is -traditional needed for correct compilations
1335 dnl adds -traditional for gcc if needed
1336 AC_PROG_GCC_TRADITIONAL
1337
1338 AC_LANG_SAVE
1339 AC_LANG_CPLUSPLUS
1340
1341 dnl C++-compiler checks
1342 dnl defines CXX with the compiler to use
1343 dnl defines GXX with yes if using gxx
1344 dnl defines GXX empty if not using gxx
1345 dnl defines CXXFLAGS
1346 dnl
1347 dnl see CFLAGS line above
1348 CXXFLAGS=${CXXFLAGS:=}
1349 AC_PROG_CXX
1350
1351 AC_LANG_RESTORE
1352
1353 dnl ranlib command
1354 dnl defines RANLIB with the appropriate command
1355 AC_PROG_RANLIB
1356
1357 dnl ar command
1358 dnl defines AR with the appropriate command
1359 AC_CHECK_PROG(AR, ar, ar)
1360 if test "x$AR" = "x" ; then
1361 AC_MSG_ERROR([ar is needed to build wxWidgets])
1362 fi
1363
1364 dnl install checks
1365 dnl defines INSTALL with the appropriate command
1366 AC_PROG_INSTALL
1367
1368 dnl make install path absolute (if not already);
1369 dnl will fail with (some) MSDOS paths
1370 case ${INSTALL} in
1371 /* ) # Absolute
1372 ;;
1373 ?:* ) # Drive letter, considered as absolute.
1374 ;;
1375 *)
1376 INSTALL=`pwd`/${INSTALL} ;;
1377 esac
1378
1379
1380 case "${host}" in
1381
1382 dnl The other BSD's should probably go in here too, since this is
1383 dnl to workaround a strange static lib BSDism.
1384 dnl Mac OS X install seems to ignore -p option...
1385 powerpc-*-darwin* )
1386 INSTALL_PROGRAM="cp -fp"
1387 INSTALL_DATA="cp -fp"
1388 ;;
1389 *)
1390 ;;
1391 esac
1392
1393 dnl strip command
1394 dnl defines STRIP as strip or nothing if not found
1395 AC_CHECK_PROG(STRIP, strip, strip, true)
1396
1397 dnl does make support "-include" (only GNU make does AFAIK)?
1398 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
1399 [
1400 if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
1401 egrep -s GNU > /dev/null); then
1402 wx_cv_prog_makeisgnu="yes"
1403 else
1404 wx_cv_prog_makeisgnu="no"
1405 fi
1406 ])
1407
1408 if test "x$wx_cv_prog_makeisgnu" = "xyes"; then
1409 IF_GNU_MAKE=""
1410 else
1411 IF_GNU_MAKE="#"
1412 fi
1413
1414 AC_SUBST(IF_GNU_MAKE)
1415
1416 dnl we don't need to check for VPATH support in GNU make - it does have it
1417 if test "x$wx_cv_prog_makeisgnu" != "xyes"; then
1418 dnl check if VPATH works
1419 AC_CACHE_CHECK([if make supports VPATH], wx_cv_prog_makevpath, [
1420 dnl create Makefile
1421 cat - << EOF > confMake
1422 check : file
1423 cp \$? \$@
1424 cp \$? final_file
1425 EOF
1426
1427 if test ! -d sub ; then
1428 mkdir sub
1429 fi
1430 echo dummy > sub/file
1431 ${MAKE-make} -f confMake VPATH=sub 2>&5 > /dev/null
1432 RESULT=$?
1433 rm -f sub/file check final_file confMake
1434 rmdir sub
1435 if test "$RESULT" = 0; then
1436 wx_cv_prog_makevpath="yes"
1437 else
1438 wx_cv_prog_makevpath="no"
1439 fi
1440 ])
1441
1442 if test "x$wx_cv_prog_makevpath" != "xyes"; then
1443 AC_MSG_ERROR([
1444 You need a make-utility that is able to use the variable
1445 VPATH correctly.
1446 If your version of make does not support VPATH correctly,
1447 please install GNU-make (possibly as gmake), and start
1448 configure with the following command:
1449 export MAKE=gmake; ./configure for sh-type shells
1450 setenv MAKE gmake; ./configure for csh-type shells
1451 Also please do remember to use gmake in this case every time
1452 you are trying to compile.
1453 ])
1454 fi dnl make without VPATH
1455 fi dnl not GNU make
1456
1457 dnl needed for making link to setup.h
1458 AC_PROG_LN_S
1459
1460 dnl ------------------------------------------------------------------------
1461 dnl Platform specific tests
1462 dnl ------------------------------------------------------------------------
1463
1464 case "${host}" in
1465 *-pc-os2_emx | *-pc-os2-emx )
1466 dnl ---------------------------------------------------------------------
1467 dnl When we are using gcc on OS/2, we want to be either using resources
1468 dnl (PM) or a more complete POSIX emulation for Motif/GTK+/X11.
1469 dnl Moreover we need to link explicitly against either stdcpp.a or
1470 dnl stdcxx.a (depending on compiler version), since we are using "gcc",
1471 dnl not "g++/c++".
1472 dnl ---------------------------------------------------------------------
1473 dnl (OS/2-only piece)
1474 if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
1475 dnl More complete Unix emulation for unix-like ports
1476 dnl by linking in POSIX/2's cExt (if available).
1477 AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
1478 else
1479 dnl Include resources for the "native" port (wxPM).
1480 RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
1481 fi
1482 AC_CACHE_CHECK([for gcc version], wx_cv_gccversion,[
1483 AC_TRY_COMPILE([],
1484 [
1485 #if (__GNUC__ < 3)
1486 #error old gcc
1487 #endif
1488 ],
1489 [
1490 AC_TRY_COMPILE([],
1491 [
1492 #if (__GNUC__==3) && ((__GNUC_MINOR__ < 2) || ((__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__<2)))
1493 #error intermediate gcc
1494 #endif
1495 ],
1496 [
1497 wx_cv_gccversion=Innotek
1498 ],
1499 [
1500 wx_cv_gccversion=3
1501 ]
1502 )
1503 ],
1504 [
1505 wx_cv_gccversion=2
1506 ]
1507 )
1508 ])
1509 if test "$wx_cv_gccversion" = "2"; then
1510 LIBS="$LIBS -lstdcpp"
1511 LDFLAGS="$LDFLAGS -Zsysv-signals"
1512 else
1513 if test "$wx_cv_gccversion" = "3"; then
1514 LIBS="$LIBS -lstdcxx"
1515 LDFLAGS="$LDFLAGS -Zsysv-signals"
1516 else
1517 LIBS="$LIBS -lstdc++"
1518 fi
1519 fi
1520 if test "$wxUSE_OMF" = "yes"; then
1521 LDFLAGS="$LDFLAGS -Zomf -Zlinker /PMTYPE:PM -Zlinker /EXEPACK"
1522 fi
1523 dnl (end of OS/2-only piece)
1524 ;;
1525 *)
1526 dnl ---------------------------------------------------------------------
1527 dnl look for strcasecmp() in string.h and then strings.h if it's not
1528 dnl there. Don't do this on OS/2, where "stricmp" is the function to be
1529 dnl used.
1530 dnl ---------------------------------------------------------------------
1531 dnl (non-OS/2-only piece)
1532
1533 AC_LANG_SAVE
1534 AC_LANG_CPLUSPLUS
1535
1536 AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [
1537 AC_TRY_LINK([
1538 #include <string.h>
1539 ],
1540 [
1541 strcasecmp("foo", "bar");
1542 ],
1543 ac_cv_string_strcasecmp=yes,
1544 ac_cv_string_strcasecmp=no
1545 )
1546 ])
1547
1548 if test x"$ac_cv_string_strcasecmp" = "xyes"; then
1549 AC_DEFINE(HAVE_STRCASECMP_IN_STRING_H)
1550 else
1551 AC_CACHE_CHECK([for strcasecmp() in strings.h], ac_cv_strings_strcasecmp, [
1552 AC_TRY_LINK([
1553 #include <strings.h>
1554 ],
1555 [
1556 strcasecmp("foo", "bar");
1557 ],
1558 ac_cv_strings_strcasecmp=yes,
1559 ac_cv_strings_strcasecmp=no
1560 )
1561 ])
1562
1563 if test x"$ac_cv_strings_strcasecmp" = "xyes"; then
1564 AC_DEFINE(HAVE_STRCASECMP_IN_STRINGS_H)
1565 else
1566 AC_MSG_ERROR([No case-insensitive string comparison function found.])
1567 fi
1568 fi
1569
1570 AC_LANG_RESTORE
1571 dnl (end of non-OS/2-only piece)
1572 ;;
1573 esac
1574
1575 dnl ------------------------------------------------------------------------
1576 dnl Check for headers
1577 dnl ------------------------------------------------------------------------
1578
1579 dnl defines HAVE_STDLIB_H
1580 AC_CHECK_HEADERS(stdlib.h)
1581 dnl defines HAVE_MALLOC_H
1582 AC_CHECK_HEADERS(malloc.h)
1583 dnl defines HAVE_UNISTD_H
1584 AC_CHECK_HEADERS(unistd.h)
1585 dnl defines HAVE_WCHAR_H
1586 AC_CHECK_HEADERS(wchar.h)
1587
1588 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
1589 if test "$ac_cv_header_wchar_h" != "yes"; then
1590 dnl defines HAVE_WCSTR_H
1591 AC_CHECK_HEADERS(wcstr.h)
1592 fi
1593
1594 dnl defines HAVE_FNMATCH_H
1595 AC_CHECK_HEADERS(fnmatch.h)
1596
1597 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
1598 AC_CHECK_FUNCS(fnmatch)
1599 fi
1600
1601 dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
1602 AC_CHECK_HEADERS(langinfo.h)
1603
1604 case "${host}" in
1605 *-pc-os2_emx | *-pc-os2-emx )
1606 dnl Explicitly link -lintl if langinfo.h is available.
1607 if test $ac_cv_header_langinfo_h = "yes"; then
1608 LIBS="$LIBS -lintl"
1609 fi
1610 ;;
1611 esac
1612
1613 if test "$wxUSE_GUI" = "yes"; then
1614 if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
1615 dnl defines HAVE_X11_XKBLIB_H
1616 AC_CHECK_HEADERS(X11/Xlib.h)
1617 AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
1618 [
1619 #if HAVE_X11_XLIB_H
1620 #include <X11/Xlib.h>
1621 #endif
1622 ])
1623 fi
1624 fi
1625
1626 dnl ---------------------------------------------------------------------------
1627 dnl Checks for compiler characteristics
1628 dnl ---------------------------------------------------------------------------
1629
1630 dnl defines const to be empty if c-compiler does not support const fully
1631 AC_C_CONST
1632 dnl defines inline to a sensible value for the c-compiler
1633 AC_C_INLINE
1634
1635 dnl check the sizes of integral types (give some reasonable default values for
1636 dnl cross-compiling)
1637 dnl defines the size of certain types of variables in SIZEOF_<TYPE>
1638 AC_CHECK_SIZEOF(char, 1)
1639 AC_CHECK_SIZEOF(short, 2)
1640 AC_CHECK_SIZEOF(void *, 4)
1641 AC_CHECK_SIZEOF(int, 4)
1642 AC_CHECK_SIZEOF(long, 4)
1643 AC_CHECK_SIZEOF(size_t, 4)
1644
1645 case "${host}" in
1646 arm-*-linux* )
1647 AC_CHECK_SIZEOF(long long, 8)
1648 ;;
1649 *-hp-hpux* )
1650 AC_CHECK_SIZEOF(long long, 0)
1651 if test "$ac_cv_sizeof_long_long" != "0"; then
1652 dnl HPUX 10.20 headers need this define in order to use long long definitions
1653 CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG"
1654 fi
1655 ;;
1656 * )
1657 AC_CHECK_SIZEOF(long long, 0)
1658 esac
1659
1660 dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
1661 dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h
1662 dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
1663 AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
1664 [
1665 AC_TRY_RUN(
1666 [
1667 /* DJGPP only has fake wchar_t: */
1668 #ifdef __DJGPP__
1669 # error "fake wchar_t"
1670 #endif
1671 #ifdef HAVE_WCHAR_H
1672 # ifdef __CYGWIN__
1673 # include <stddef.h>
1674 # endif
1675 # include <wchar.h>
1676 #endif
1677 #ifdef HAVE_STDLIB_H
1678 # include <stdlib.h>
1679 #endif
1680 #include <stdio.h>
1681 int main()
1682 {
1683 FILE *f=fopen("conftestval", "w");
1684 if (!f) exit(1);
1685 fprintf(f, "%i", sizeof(wchar_t));
1686 exit(0);
1687 }
1688 ],
1689 wx_cv_sizeof_wchar_t=`cat conftestval`,
1690 wx_cv_sizeof_wchar_t=0,
1691 [
1692 case "${host}" in
1693 *-pc-msdosdjgpp )
1694 wx_cv_sizeof_wchar_t=0
1695 ;;
1696 * )
1697 wx_cv_sizeof_wchar_t=4
1698 ;;
1699 esac
1700 ]
1701 )
1702 ])
1703
1704 AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)
1705
1706 dnl checks needed to define wxVaCopy
1707 AC_CACHE_CHECK([for va_copy],
1708 wx_cv_func_va_copy,
1709 [
1710 AC_LINK_IFELSE([
1711 #include <stdarg.h>
1712 void foo(char *f, ...)
1713 {
1714 va_list ap1, ap2;
1715 va_start(ap1, f);
1716 va_copy(ap2, ap1);
1717 va_end(ap2);
1718 va_end(ap1);
1719 }],
1720 wx_cv_func_va_copy=yes,
1721 wx_cv_func_va_copy=no
1722 )
1723 ]
1724 )
1725
1726 if test $wx_cv_func_va_copy = "yes"; then
1727 AC_DEFINE(HAVE_VA_COPY)
1728 else
1729 dnl try to understand how can we copy va_lists
1730 AC_CACHE_CHECK([if va_list can be copied by value],
1731 wx_cv_type_va_list_lvalue,
1732 [
1733 AC_RUN_IFELSE([
1734 #include <stdarg.h>
1735 int foo(char *f, ...)
1736 {
1737 va_list ap1, ap2;
1738 va_start(ap1, f);
1739 ap2 = ap1;
1740 if ( va_arg(ap1, int) != 17 || va_arg(ap2, int) != 17 )
1741 return 1;
1742 va_end(ap2);
1743 va_end(ap1);
1744 return 0;
1745 }
1746 int main()
1747 {
1748 return foo("hi", 17);
1749 }],
1750 wx_cv_type_va_list_lvalue=yes,
1751 wx_cv_type_va_list_lvalue=no,
1752 dnl assume most common case for cross-compiling...
1753 wx_cv_type_va_list_lvalue=yes
1754 )
1755 ]
1756 )
1757
1758 if test $wx_cv_type_va_list_lvalue != "yes"; then
1759 dnl we suppose that the only thing which can't be copied like this
1760 dnl are arrays... only experience will show whether this is really true
1761 AC_DEFINE(VA_LIST_IS_ARRAY)
1762 fi
1763 fi
1764
1765 dnl check for large file support
1766 AC_SYS_LARGEFILE
1767
1768 dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
1769 dnl line because otherwise the system headers risk being included before
1770 dnl wx/defs.h which defines these constants leading to inconsistent
1771 dnl sizeof(off_t) in different source files of the same program and linking
1772 dnl problems
1773 if test "x$wx_largefile" = "xyes"; then
1774 if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
1775 WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
1776 else
1777 WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
1778 fi
1779 CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
1780 fi
1781
1782 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
1783 WX_C_BIGENDIAN
1784
1785 dnl check for iostream (as opposed to iostream.h) standard header
1786 WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
1787
1788 dnl check whether C++ compiler supports bool built-in type
1789 WX_CPP_BOOL
1790
1791 dnl check whether C++ compiler supports explicit keyword
1792 WX_CPP_EXPLICIT
1793
1794 dnl check whether C++ compiler supports C++ casts
1795 AC_CXX_CONST_CAST
1796 AC_CXX_REINTERPRET_CAST
1797 AC_CXX_STATIC_CAST
1798
1799 dnl check various STL features
1800 if test "$wxUSE_STL" = "yes"; then
1801 AC_LANG_PUSH(C++)
1802
1803 dnl check for basic STL functionality
1804 AC_MSG_CHECKING([for basic STL functionality])
1805 AC_TRY_COMPILE([#include <string>
1806 #include <functional>
1807 #include <algorithm>
1808 #include <vector>
1809 #include <list>],
1810 [std::vector<int> moo;
1811 std::list<int> foo;
1812 std::vector<int>::iterator it =
1813 std::find_if(moo.begin(), moo.end(),
1814 std::bind2nd(std::less<int>(), 3));],
1815 [AC_MSG_RESULT([yes])],
1816 [AC_MSG_RESULT([no])
1817 AC_MSG_ERROR([Basic STL functionality missing])])
1818
1819 dnl check if <string> declares std::wstring
1820 AC_MSG_CHECKING([for std::wstring in <string>])
1821 AC_TRY_COMPILE([#include <string>],
1822 [std::wstring foo;],
1823 [AC_MSG_RESULT(yes)
1824 AC_DEFINE(HAVE_STD_WSTRING)],
1825 [AC_MSG_RESULT(no)])
1826
1827 dnl check for compliant std::string::compare
1828 AC_MSG_CHECKING([for compliant std::string::compare])
1829 AC_TRY_COMPILE([#include <string>],
1830 [std::string foo, bar;
1831 foo.compare(bar);
1832 foo.compare(1, 1, bar);
1833 foo.compare(1, 1, bar, 1, 1);
1834 foo.compare("");
1835 foo.compare(1, 1, "");
1836 foo.compare(1, 1, "", 2);],
1837 [AC_MSG_RESULT(yes)
1838 AC_DEFINE(HAVE_STD_STRING_COMPARE)],
1839 [AC_MSG_RESULT(no)])
1840
1841 dnl check for hash_map and hash_set headers
1842 AC_CHECK_HEADER([hash_map],
1843 [AC_MSG_CHECKING([for hash_map and hash_set])
1844 AC_TRY_COMPILE([#include <hash_map>
1845 #include <hash_set>],
1846 [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
1847 std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
1848 [AC_MSG_RESULT(yes)
1849 AC_DEFINE(HAVE_HASH_MAP)
1850 AC_DEFINE(HAVE_STD_HASH_MAP)],
1851 [AC_MSG_RESULT(no)])
1852 ])
1853
1854 AC_CHECK_HEADER([ext/hash_map],
1855 [AC_MSG_CHECKING([for hash_map and hash_set])
1856 AC_TRY_COMPILE([#include <ext/hash_map>
1857 #include <ext/hash_set>],
1858 [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
1859 __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
1860 [AC_MSG_RESULT(yes)
1861 AC_DEFINE(HAVE_EXT_HASH_MAP)
1862 AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
1863 [AC_MSG_RESULT(no)])
1864 ])
1865
1866 AC_LANG_POP
1867 fi
1868
1869 dnl ---------------------------------------------------------------------------
1870 dnl Define search path for includes and libraries: all headers and libs will be
1871 dnl looked for in all directories of this path
1872 dnl ---------------------------------------------------------------------------
1873
1874 dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
1875 dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
1876 dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
1877 dnl
1878 dnl Also try to put all directories which may contain X11R6 before those which
1879 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
1880 dnl
1881 dnl In the same vein. Motif 2.1 should be tried before Motif 1.2 for the
1882 dnl systems which have both (AIX 4.x does)
1883 SEARCH_INCLUDE="\
1884 /usr/local/include \
1885 \
1886 /usr/Motif-2.1/include \
1887 /usr/Motif-1.2/include \
1888 /usr/include/Motif1.2 \
1889 /opt/xpm/include/X11 \
1890 /opt/GBxpm/include/ \
1891 /opt/GBxpm/X11/include/ \
1892 \
1893 /usr/dt/include \
1894 /usr/openwin/include \
1895 \
1896 /usr/include/Xm \
1897 \
1898 /usr/X11R6/include \
1899 /usr/X11R6.4/include \
1900 /usr/X11R5/include \
1901 /usr/X11R4/include \
1902 \
1903 /usr/include/X11R6 \
1904 /usr/include/X11R5 \
1905 /usr/include/X11R4 \
1906 \
1907 /usr/local/X11R6/include \
1908 /usr/local/X11R5/include \
1909 /usr/local/X11R4/include \
1910 \
1911 /usr/local/include/X11R6 \
1912 /usr/local/include/X11R5 \
1913 /usr/local/include/X11R4 \
1914 \
1915 /usr/X11/include \
1916 /usr/include/X11 \
1917 /usr/local/X11/include \
1918 /usr/local/include/X11 \
1919 \
1920 /usr/X386/include \
1921 /usr/x386/include \
1922 /usr/XFree86/include/X11 \
1923 \
1924 X:/XFree86/include \
1925 X:/XFree86/include/X11 \
1926 \
1927 /usr/include/gtk \
1928 /usr/local/include/gtk \
1929 /usr/include/glib \
1930 /usr/local/include/glib \
1931 \
1932 /usr/include/qt \
1933 /usr/local/include/qt \
1934 \
1935 /usr/local/arm/3.3.2/include \
1936 \
1937 /usr/include/windows \
1938 /usr/include/wine \
1939 /usr/local/include/wine \
1940 \
1941 /usr/unsupported/include \
1942 /usr/athena/include \
1943 /usr/local/x11r5/include \
1944 /usr/lpp/Xamples/include \
1945 \
1946 /usr/openwin/share/include"
1947
1948 dnl prepend lib and lib32 for IRIX where the files in these directories should
1949 dnl be found before the ones in lib64 for 32bit compilation -- of course, this
1950 dnl probably/surely breaks 64bit compilation... IMO the only real solution is to
1951 dnl stop using WX_PATH_FIND_LIBRARIES() at all and use AC_CHECK_LIB() instead
1952 dnl
1953 dnl add 64 bit versions for Linux on AMD (this is not perfect but well...)
1954 SEARCH_LIB="/usr/lib /usr/lib32 `echo "$SEARCH_INCLUDE" | sed s/include/lib/g` /usr/lib64 /usr/X11R6/lib64"
1955
1956 dnl ------------------------------------------------------------------------
1957 dnl Check for libraries
1958 dnl ------------------------------------------------------------------------
1959
1960 dnl flush the cache because checking for libraries below might abort
1961 AC_CACHE_SAVE
1962
1963 dnl check for glibc version
1964 dnl
1965 dnl VZ: I have no idea why had this check been there originally, but now
1966 dnl we could probably do without it by just always adding _GNU_SOURCE
1967 if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
1968 AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
1969 AC_TRY_COMPILE([#include <features.h>],
1970 [
1971 #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
1972 #error not glibc2.1
1973 #endif
1974 ],
1975 [
1976 wx_cv_lib_glibc21=yes
1977 ],
1978 [
1979 wx_cv_lib_glibc21=no
1980 ]
1981 )
1982 ])
1983 if test "$wx_cv_lib_glibc21" = "yes"; then
1984 AC_DEFINE(wxHAVE_GLIBC2)
1985 fi
1986 fi
1987
1988 dnl we may need _GNU_SOURCE for 2 things:
1989 dnl
1990 dnl 1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
1991 dnl only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
1992 dnl which breaks libtiff compilation, so it is simpler to just define
1993 dnl _GNU_SOURCE to get everything)
1994 dnl
1995 dnl 2. for Unicode functions
1996 if test "x$wx_cv_lib_glibc21" = "xyes"; then
1997 if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
1998 AC_DEFINE(_GNU_SOURCE)
1999 fi
2000 fi
2001
2002 dnl ---------------------------------------------------------------------------
2003 dnl Optional libraries
2004 dnl
2005 dnl --with-<lib>=sys
2006 dnl looks for system library and fails if not found
2007 dnl
2008 dnl --with-<lib>
2009 dnl --with-<lib>=yes
2010 dnl looks for system library and, if not found, prints a warning,
2011 dnl falls back to the builtin wx version, and continues configuration
2012 dnl
2013 dnl --with-<lib>=builtin
2014 dnl uses builtin wx version without searching for system library
2015 dnl
2016 dnl --with-<lib>=no
2017 dnl --without-<lib>
2018 dnl do not use library (neither system nor builtin wx version)
2019 dnl
2020 dnl ---------------------------------------------------------------------------
2021
2022 dnl ------------------------------------------------------------------------
2023 dnl Check for regex libraries
2024 dnl ------------------------------------------------------------------------
2025
2026 if test "$wxUSE_REGEX" != "no"; then
2027 AC_DEFINE(wxUSE_REGEX)
2028
2029 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_REGEX" = "yes"; then
2030 AC_MSG_WARN([Defaulting to the the builtin regex library for Unicode build.])
2031 wxUSE_REGEX=builtin
2032 fi
2033
2034 if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
2035 dnl according to Unix 98 specs, regcomp() is in libc but I believe that
2036 dnl on some old systems it may be in libregex - check for it too?
2037 AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp)])
2038
2039 if test "x$ac_cv_func_regcomp" != "xyes"; then
2040 if test "$wxUSE_REGEX" = "sys" ; then
2041 AC_MSG_ERROR([system regex library not found! Use --with-regex to use built-in version])
2042 else
2043 AC_MSG_WARN([system regex library not found, will use built-in instead])
2044 wxUSE_REGEX=builtin
2045 fi
2046 else
2047 dnl we are using the system library
2048 wxUSE_REGEX=sys
2049 dnl only the built-in supports advanced REs
2050 AC_DEFINE(WX_NO_REGEX_ADVANCED)
2051 fi
2052 fi
2053 fi
2054
2055 dnl ------------------------------------------------------------------------
2056 dnl Check for zlib compression library
2057 dnl ------------------------------------------------------------------------
2058
2059 ZLIB_LINK=
2060 if test "$wxUSE_ZLIB" != "no" ; then
2061 AC_DEFINE(wxUSE_ZLIB)
2062
2063 if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
2064 dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
2065 dnl should still use it because hopefully (can someone confirm this?)
2066 dnl Apple did fix the security problem in it and not using the system
2067 dnl library results in a whole bunch of warnings when linking with
2068 dnl Carbon framework
2069 if test "$USE_DARWIN" = 1; then
2070 system_zlib_h_ok="yes"
2071 else
2072 dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
2073 dnl known to not work) and although I don't know which is
2074 dnl the minimal required version it's safer to test for 1.1.4 as
2075 dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
2076 dnl has anything more ancient (1.1.3 was released in July 1998)
2077 dnl anyhow
2078 AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
2079 [AC_TRY_RUN(
2080 dnl zlib.h defines ZLIB_VERSION="x.y.z"
2081 [
2082 #include <zlib.h>
2083 #include <stdio.h>
2084
2085 int main()
2086 {
2087 FILE *f=fopen("conftestval", "w");
2088 if (!f) exit(1);
2089 fprintf(f, "%s",
2090 ZLIB_VERSION[0] == '1' &&
2091 (ZLIB_VERSION[2] > '1' ||
2092 (ZLIB_VERSION[2] == '1' &&
2093 ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
2094 exit(0);
2095 }
2096 ],
2097 ac_cv_header_zlib_h=`cat conftestval`,
2098 ac_cv_header_zlib_h=no,
2099 dnl cross-compiling: don't have an answer, try later
2100 unset ac_cv_header_zlib_h
2101 )]
2102 )
2103 dnl If the test above did not come up with a value (e.g. cross
2104 dnl compiling) then this should give a definitive answer
2105 AC_CHECK_HEADER(zlib.h)
2106
2107 system_zlib_h_ok=$ac_cv_header_zlib_h
2108 fi
2109
2110 if test "$system_zlib_h_ok" = "yes"; then
2111 AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
2112 fi
2113
2114 if test "x$ZLIB_LINK" = "x" ; then
2115 if test "$wxUSE_ZLIB" = "sys" ; then
2116 AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
2117 else
2118 AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
2119 wxUSE_ZLIB=builtin
2120 fi
2121 else
2122 dnl we are using the system library
2123 wxUSE_ZLIB=sys
2124 fi
2125 fi
2126 fi
2127
2128 dnl ------------------------------------------------------------------------
2129 dnl Check for png library
2130 dnl ------------------------------------------------------------------------
2131
2132 PNG_LINK=
2133 if test "$wxUSE_LIBPNG" != "no" ; then
2134 AC_DEFINE(wxUSE_LIBPNG)
2135
2136 if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
2137 AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
2138 wxUSE_LIBPNG=sys
2139 fi
2140
2141 dnl for the check below to have a chance to succeed, we must already have
2142 dnl libz somewhere (don't do this when bulding wxMGL since its libpng
2143 dnl doesn't depend on zlib)
2144 if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
2145 AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
2146 wxUSE_LIBPNG=builtin
2147 fi
2148
2149 if test "$wxUSE_MGL" != 1 ; then
2150 dnl Don't check for libpng when building wxMGL, libmgl contains it
2151 if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
2152 dnl libpng version 0.9 is known to not work, if an even newer
2153 dnl version is required, just bump it up in the test below
2154 AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
2155 [AC_TRY_RUN(
2156 dnl png.h defines PNG_LIBPNG_VER=number
2157 [
2158 #include <png.h>
2159 #include <stdio.h>
2160
2161 int main()
2162 {
2163 FILE *f=fopen("conftestval", "w");
2164 if (!f) exit(1);
2165 fprintf(f, "%s",
2166 PNG_LIBPNG_VER > 90 ? "yes" : "no");
2167 exit(0);
2168 }
2169 ],
2170 ac_cv_header_png_h=`cat conftestval`,
2171 ac_cv_header_png_h=no,
2172 dnl cross-compiling: test (later) if we have any png.h
2173 unset ac_cv_header_png_h
2174 )]
2175 )
2176 AC_CHECK_HEADER(png.h)
2177
2178 if test "$ac_cv_header_png_h" = "yes"; then
2179 AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng -lz", , [-lz -lm])
2180 fi
2181
2182 if test "x$PNG_LINK" = "x" ; then
2183 if test "$wxUSE_LIBPNG" = "sys" ; then
2184 AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
2185 else
2186 AC_MSG_WARN([system png library not found or too old, will use built-in instead])
2187 wxUSE_LIBPNG=builtin
2188 fi
2189 else
2190 dnl we are using the system library
2191 wxUSE_LIBPNG=sys
2192 fi
2193 fi
2194 fi
2195
2196 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
2197 fi
2198
2199 dnl ------------------------------------------------------------------------
2200 dnl Check for jpeg library
2201 dnl ------------------------------------------------------------------------
2202
2203 JPEG_LINK=
2204 if test "$wxUSE_LIBJPEG" != "no" ; then
2205 AC_DEFINE(wxUSE_LIBJPEG)
2206
2207 if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
2208 AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
2209 wxUSE_LIBJPEG=sys
2210 fi
2211
2212 if test "$wxUSE_MGL" != 1 ; then
2213 dnl Don't check for libjpeg when building wxMGL, libmgl contains it
2214 if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
2215 dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
2216 dnl HAVE_STDLIB_H which are already defined and this provokes
2217 dnl a compiler warning which configure considers as an error...
2218 AC_MSG_CHECKING(for jpeglib.h)
2219 AC_CACHE_VAL(ac_cv_header_jpeglib_h,
2220 AC_TRY_COMPILE(
2221 [
2222 #undef HAVE_STDLIB_H
2223 #include <stdio.h>
2224 #include <jpeglib.h>
2225 ],
2226 [
2227 ],
2228 ac_cv_header_jpeglib_h=yes,
2229 ac_cv_header_jpeglib_h=no
2230 )
2231 )
2232 AC_MSG_RESULT($ac_cv_header_jpeglib_h)
2233
2234 if test "$ac_cv_header_jpeglib_h" = "yes"; then
2235 AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
2236 fi
2237
2238 if test "x$JPEG_LINK" = "x" ; then
2239 if test "$wxUSE_LIBJPEG" = "sys" ; then
2240 AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
2241 else
2242 AC_MSG_WARN([system jpeg library not found, will use built-in instead])
2243 wxUSE_LIBJPEG=builtin
2244 fi
2245 else
2246 dnl we are using the system library
2247 wxUSE_LIBJPEG=sys
2248 fi
2249 fi
2250 fi
2251 fi
2252
2253 dnl ------------------------------------------------------------------------
2254 dnl Check for tiff library
2255 dnl ------------------------------------------------------------------------
2256
2257 TIFF_LINK=
2258 TIFF_PREREQ_LINKS=-lm
2259 if test "$wxUSE_LIBTIFF" != "no" ; then
2260 AC_DEFINE(wxUSE_LIBTIFF)
2261
2262 if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
2263 dnl libtiff may depend on libjpeg and libz so use them in the test
2264 dnl below or it would fail
2265 if test "$wxUSE_LIBJPEG" = "sys"; then
2266 TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
2267 fi
2268 if test "$wxUSE_ZLIB" = "sys"; then
2269 TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
2270 fi
2271 AC_CHECK_HEADER(tiffio.h,
2272 [
2273 AC_CHECK_LIB(tiff, TIFFError,
2274 TIFF_LINK=" -ltiff",
2275 ,
2276 $TIFF_PREREQ_LINKS)
2277 ]
2278 )
2279
2280 if test "x$TIFF_LINK" = "x" ; then
2281 if test "$wxUSE_LIBTIFF" = "sys" ; then
2282 AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version])
2283 else
2284 AC_MSG_WARN([system tiff library not found, will use built-in instead])
2285 wxUSE_LIBTIFF=builtin
2286 fi
2287 else
2288 dnl we are using the system library
2289 wxUSE_LIBTIFF=sys
2290 fi
2291 fi
2292 fi
2293
2294 dnl ------------------------------------------------------------------------
2295 dnl Check for expat libraries
2296 dnl ------------------------------------------------------------------------
2297
2298 if test "$wxUSE_EXPAT" != "no"; then
2299 wxUSE_XML=yes
2300 AC_DEFINE(wxUSE_EXPAT)
2301 AC_DEFINE(wxUSE_XML)
2302
2303 if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
2304 AC_CHECK_HEADER([expat.h], [found_expat_h=1])
2305 if test "x$found_expat_h" = "x1"; then
2306 dnl Expat 1.95.6 comes with broken expat.h:
2307 AC_CACHE_CHECK([if expat.h is valid C++ header],
2308 wx_cv_expat_is_not_broken,
2309 [
2310 AC_LANG_SAVE
2311 AC_LANG_CPLUSPLUS
2312 AC_TRY_COMPILE([#include <expat.h>],[],
2313 wx_cv_expat_is_not_broken=yes,
2314 wx_cv_expat_is_not_broken=no
2315 )
2316 AC_LANG_RESTORE
2317 ]
2318 )
2319 if test "$wx_cv_expat_is_not_broken" = "yes" ; then
2320 AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LINK=" -lexpat")
2321 fi
2322 fi
2323 if test "x$EXPAT_LINK" = "x" ; then
2324 if test "$wxUSE_EXPAT" = "sys" ; then
2325 AC_MSG_ERROR([system expat library not found! Use --with-expat=builtin to use built-in version])
2326 else
2327 AC_MSG_WARN([system expat library not found, will use built-in instead])
2328 wxUSE_EXPAT=builtin
2329 fi
2330 else
2331 dnl we are using the system library
2332 wxUSE_EXPAT=sys
2333 fi
2334 fi
2335 if test "$wxUSE_EXPAT" = "builtin" ; then
2336 dnl Expat needs this:
2337 AC_CONFIG_SUBDIRS([src/expat])
2338 fi
2339 fi
2340
2341
2342 dnl ------------------------------------------------------------------------
2343 dnl Check for libmspack
2344 dnl ------------------------------------------------------------------------
2345
2346 if test "$wxUSE_LIBMSPACK" != "no"; then
2347
2348 AC_CHECK_HEADER([mspack.h], [found_mspack_h=1])
2349 if test "x$found_mspack_h" = "x1"; then
2350 AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
2351 MSPACK_LINK=" -lmspack")
2352 fi
2353 if test "x$MSPACK_LINK" = "x" ; then
2354 wxUSE_LIBMSPACK=no
2355 else
2356 AC_DEFINE(wxUSE_LIBMSPACK)
2357 fi
2358 fi
2359
2360
2361 dnl ----------------------------------------------------------------
2362 dnl search for toolkit (widget sets)
2363 dnl ----------------------------------------------------------------
2364
2365 AFMINSTALL=
2366 WIN32INSTALL=
2367
2368 TOOLKIT=
2369 TOOLKIT_INCLUDE=
2370 WIDGET_SET=
2371
2372 dnl are we building for a win32 target environment?
2373 dnl If so, setup common stuff needed for both GUI and Base libs.
2374 if test "$USE_WIN32" = 1 ; then
2375 AC_CHECK_HEADERS(w32api.h)
2376 AC_CHECK_HEADER(windows.h, [],
2377 [
2378 AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
2379 ])
2380
2381 dnl --- FIXME: This is still a somewhat random list of libs,
2382 dnl --- some of them should probably be included conditionally.
2383 LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
2384
2385 if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
2386 LIBS="$LIBS -loleacc"
2387 fi
2388
2389 case "${host}" in
2390 *-*-cygwin* )
2391 dnl Cygwin doesn't include these by default
2392 LIBS="$LIBS -lkernel32 -luser32"
2393 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__"
2394 esac
2395
2396 dnl add extra odbc libs if we have compiled in odbc
2397 if test "$wxUSE_ODBC" = "sys" ; then
2398 wxUSE_ODBC = "yes"
2399 fi
2400 if test "$wxUSE_ODBC" = "yes" ; then
2401 LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS"
2402 AC_DEFINE(wxUSE_ODBC)
2403 fi
2404 dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
2405
2406 RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2407 RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
2408
2409 dnl install Win32-specific files in "make install"
2410 WIN32INSTALL=win32install
2411 fi
2412
2413 if test "$wxUSE_GUI" = "yes"; then
2414 USE_GUI=1
2415
2416 GUI_TK_LIBRARY=
2417
2418 WXGTK12=
2419 WXGTK127=
2420 WXGTK20=
2421 WXGPE=
2422
2423 if test "$wxUSE_COCOA" = 1 ; then
2424 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then
2425 AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled])
2426 wxUSE_PRINTING_ARCHITECTURE=no
2427 fi
2428 if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
2429 AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled])
2430 wxUSE_DRAG_AND_DROP=no
2431 fi
2432 if test "$wxUSE_DRAGIMAGE" = "yes"; then
2433 AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled])
2434 wxUSE_DRAGIMAGE=no
2435 fi
2436 fi
2437
2438 if test "$wxUSE_MSW" = 1 ; then
2439 TOOLKIT=MSW
2440 GUIDIST=MSW_DIST
2441
2442 dnl -mwindows causes a heap of other default gui libs to be linked in.
2443 case "${host}" in
2444 *-*-mingw32* )
2445 WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows"
2446 esac
2447 fi
2448
2449 if test "$wxUSE_GTK" = 1; then
2450 AC_MSG_CHECKING([for GTK+ version])
2451
2452 gtk_version_cached=1
2453 AC_CACHE_VAL(wx_cv_lib_gtk,
2454 [
2455 dnl stupid GTK+ AM macros produce their own messages, so we
2456 dnl have to pass to the next line
2457 gtk_version_cached=0
2458 AC_MSG_RESULT()
2459
2460 dnl we must link against lgthread unless the user
2461 dnl used --disable-threads
2462 GTK_MODULES=
2463 if test "$wxUSE_THREADS" = "yes"; then
2464 GTK_MODULES=gthread
2465 fi
2466
2467 dnl note that if we fail to find GTK2 we abort and don't fall
2468 dnl back to GTK1.x
2469 wx_cv_lib_gtk=
2470 if test "x$wxUSE_GTK2" = "xyes"; then
2471 AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
2472 else
2473 AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
2474
2475 if test -z "$wx_cv_lib_gtk"; then
2476 AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
2477 fi
2478 fi
2479
2480 if test -z "$wx_cv_lib_gtk"; then
2481 dnl looks better in AC_MSG_RESULT
2482 wx_cv_lib_gtk=none
2483 else
2484 dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
2485 dnl subsequent runs
2486 wx_cv_cflags_gtk=$GTK_CFLAGS
2487 wx_cv_libs_gtk=$GTK_LIBS
2488 fi
2489 ]
2490 )
2491
2492 dnl if it wasn't cached, the messages from AM_PATH_GTK() above are
2493 dnl enough
2494 if test "$gtk_version_cached" = 1; then
2495 AC_MSG_RESULT($wx_cv_lib_gtk)
2496 fi
2497
2498 case "$wx_cv_lib_gtk" in
2499 2.0) WXGTK20=1
2500 TOOLKIT_VERSION=2
2501 ;;
2502 1.2.7) WXGTK127=1
2503 WXGTK12=1
2504 ;;
2505 1.2.3) WXGTK12=1
2506 ;;
2507 *) AC_MSG_ERROR([
2508 Please check that gtk-config is in path, the directory
2509 where GTK+ libraries are installed (returned by
2510 'gtk-config --libs' command) is in LD_LIBRARY_PATH or
2511 equivalent variable and GTK+ is version 1.2.3 or above.
2512 ])
2513 ;;
2514 esac
2515
2516 if test "$WXGTK20" = 1; then
2517 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
2518 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
2519 [
2520 CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
2521 # FIXME: GTK_LIBS already has a lot of what this is
2522 # about to add, but we go ahead and just add
2523 # it all again anyway.
2524 # This is not a good way to manage things. And simply
2525 # uniq'ing the list later is hardly better.
2526 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
2527 ],
2528 [
2529 AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
2530 wxUSE_PRINTING_ARCHITECTURE="no"
2531 ]
2532 )
2533 fi
2534
2535 save_CFLAGS="$CFLAGS"
2536 save_LIBS="$LIBS"
2537 CFLAGS="$CFLAGS $GTK_CFLAGS"
2538 LIBS="$LIBS $GTK_LIBS"
2539 AC_CHECK_FUNCS([pango_font_family_is_monospace])
2540 CFLAGS="$save_CFLAGS"
2541 LIBS="$save_LIBS"
2542 else
2543 if test "$wxUSE_UNICODE" = "yes"; then
2544 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
2545 wxUSE_UNICODE=no
2546 fi
2547 fi
2548
2549 dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
2550 dnl have it but we do the check for the others)
2551 if test "$USE_DARWIN" != 1; then
2552 AC_CHECK_FUNCS(poll)
2553 fi
2554
2555 TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
2556 GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
2557
2558 AFMINSTALL=afminstall
2559 TOOLKIT=GTK
2560 GUIDIST=GTK_DIST
2561
2562 dnl test for XIM support in libgdk
2563 AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
2564
2565
2566 dnl test for external libxpm if we're configured to use it
2567 if test "$wxUSE_GPE" = "yes"; then
2568 AC_MSG_CHECKING(for gpewidget library)
2569 WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget)
2570 if test "$ac_find_libraries" != "" ; then
2571 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
2572 dnl -lgpewidget must be before all GTK libs and
2573 dnl we guess its path from the prefix
2574 GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY"
2575 WXGPE=1
2576 AC_MSG_RESULT(found at $ac_find_libraries)
2577 else
2578 AC_MSG_RESULT(not found)
2579 fi
2580
2581 dnl AC_MSG_CHECKING(for gpe library)
2582 dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe)
2583 dnl if test "$ac_find_libraries" != "" ; then
2584 dnl WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
2585 dnl GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
2586 dnl AC_MSG_RESULT(found at $ac_find_libraries)
2587 dnl else
2588 dnl AC_MSG_RESULT(not found)
2589 dnl fi
2590 fi
2591 fi
2592
2593 if test "$wxUSE_MGL" = 1; then
2594 AC_MSG_CHECKING(for SciTech MGL library)
2595 if test "x$MGL_ROOT" = x ; then
2596 AC_MSG_RESULT(not found)
2597 AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
2598 else
2599 AC_MSG_RESULT($MGL_ROOT)
2600 fi
2601
2602 AC_MSG_CHECKING(for libmgl location)
2603 dnl Find MGL library that we want
2604 dnl FIXME_MGL - test for MGL variants for freebsd etc.;
2605 dnl and for non-x86 versions
2606 case "${host}" in
2607 *-*-linux* )
2608 dnl glibc.so, glibc are for older versions of MGL,
2609 dnl x86/a, x86/so are used by >= 5.0 R11
2610 if test "x$wxUSE_SHARED" = xyes ; then
2611 mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc"
2612 else
2613 mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so"
2614 fi
2615 ;;
2616 *-pc-msdosdjgpp )
2617 mgl_os_candidates="dos32/dj2"
2618 ;;
2619 *)
2620 AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
2621 esac
2622
2623 mgl_lib_type=""
2624 mgl_os=""
2625
2626 for mgl_os_i in $mgl_os_candidates ; do
2627 if test "x$mgl_os" = x ; then
2628 if test "$wxUSE_DEBUG_FLAG" = yes ; then
2629 if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
2630 -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
2631 mgl_lib_type=debug
2632 mgl_os=$mgl_os_i
2633 fi
2634 fi
2635 if test "x$mgl_lib_type" = x ; then
2636 if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
2637 -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
2638 mgl_lib_type=release
2639 mgl_os=$mgl_os_i
2640 fi
2641 fi
2642 fi
2643 done
2644
2645 if test "x$mgl_os" = x ; then
2646 AC_MSG_RESULT(not found)
2647 AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
2648 fi
2649 AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
2650
2651 wxUSE_UNIVERSAL="yes"
2652
2653 TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
2654 GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
2655
2656 AFMINSTALL=afminstall
2657 TOOLKIT=MGL
2658 GUIDIST=MGL_DIST
2659 fi
2660
2661 if test "$wxUSE_MICROWIN" = 1; then
2662 AC_MSG_CHECKING(for MicroWindows)
2663 if test "x$MICROWINDOWS" = x ; then
2664 AC_MSG_RESULT(not found)
2665 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.])
2666 else
2667 AC_MSG_RESULT($MICROWINDOWS)
2668 fi
2669
2670 if test -f $MICROWINDOWS/lib/libmwin.a; then
2671 AC_MSG_RESULT(MicroWindows' libraries found.)
2672 else
2673 AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.])
2674 fi
2675
2676 TOOLKIT_INCLUDE="-I$MICROWINDOWS/include"
2677 GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib"
2678
2679 wxUSE_UNIVERSAL="yes"
2680
2681 AFMINSTALL=afminstall
2682 TOOLKIT=MICROWIN
2683 GUIDIST=MICROWIN_DIST
2684
2685 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
2686 fi
2687
2688 dnl common part of X11 and Motif port checks
2689 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
2690 dnl use standard macros to check for X headers/libs, this brings
2691 dnl support for the standard configure options --x-includes,
2692 dnl --x-libraries and --no-x
2693 AC_PATH_XTRA
2694
2695 if test "$no_x" = "yes"; then
2696 AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
2697 fi
2698
2699 dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and
2700 dnl also sometimes -RNONE) to X_CFLAGS and X_LIBS respectively, filter
2701 dnl this junk out
2702 GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//' | sed 's/ -RNONE//'`
2703 TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
2704 AFMINSTALL=afminstall
2705 COMPILED_X_PROGRAM=0
2706
2707 fi
2708
2709 if test "$wxUSE_X11" = 1; then
2710 if test "$wxUSE_NANOX" = "yes"; then
2711 AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
2712 if test "x$MICROWIN" = x ; then
2713 AC_MSG_RESULT(not found)
2714 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
2715 else
2716 AC_MSG_RESULT($MICROWIN)
2717 AC_DEFINE(wxUSE_NANOX)
2718 fi
2719 fi
2720
2721 if test "$wxUSE_UNICODE" = "yes"; then
2722 PKG_CHECK_MODULES(PANGOX, pangox,
2723 [
2724 CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
2725 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
2726 ],
2727 [
2728 AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
2729 ]
2730 )
2731 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
2732 [
2733 CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
2734 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
2735 ],
2736 [
2737 AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
2738 wxUSE_PRINTING_ARCHITECTURE="no"
2739 ]
2740 )
2741 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
2742 [
2743 CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
2744 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
2745 ],
2746 [
2747 AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
2748 ]
2749 )
2750 save_CFLAGS="$CFLAGS"
2751 save_LIBS="$LIBS"
2752 CFLAGS="$CFLAGS $PANGOX_CFLAGS"
2753 LIBS="$LIBS $PANGOX_LIBS"
2754 AC_CHECK_FUNCS([pango_font_family_is_monospace])
2755 CFLAGS="$save_CFLAGS"
2756 LIBS="$save_LIBS"
2757 fi
2758
2759 wxUSE_UNIVERSAL="yes"
2760
2761 if test "$wxUSE_NANOX" = "yes"; then
2762 TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
2763 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1"
2764 GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
2765 else
2766 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11"
2767 fi
2768
2769 TOOLKIT=X11
2770 GUIDIST=X11_DIST
2771 fi
2772
2773 if test "$wxUSE_MOTIF" = 1; then
2774 AC_MSG_CHECKING(for Motif/Lesstif headers)
2775 WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
2776 if test "$ac_find_includes" != "" ; then
2777 AC_MSG_RESULT(found in $ac_find_includes)
2778 WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
2779 TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
2780 else
2781 AC_TRY_COMPILE(
2782 [
2783 #include <Xm/Xm.h>
2784 ],
2785 [
2786 int version;
2787 version = xmUseVersion;
2788 ],
2789 [
2790 AC_MSG_RESULT(found in default search path)
2791 COMPILED_X_PROGRAM=1
2792 ],
2793 [
2794 AC_MSG_RESULT(no)
2795 AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
2796 ]
2797 )
2798 fi
2799
2800 if test "$COMPILED_X_PROGRAM" = 0; then
2801 AC_MSG_CHECKING(for Motif/Lesstif library)
2802 WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
2803 if test "$ac_find_libraries" != "" ; then
2804 AC_MSG_RESULT(found at $ac_find_libraries)
2805
2806 WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
2807 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
2808 else
2809 dnl it might happen that we found headers in one of the
2810 dnl standard paths but the libs are elsewhere - we do need to
2811 dnl try to compile a sample program then here
2812 save_CFLAGS=$CFLAGS
2813 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2814
2815 AC_TRY_COMPILE(
2816 [
2817 #include <Xm/Xm.h>
2818 ],
2819 [
2820 int version;
2821 version = xmUseVersion;
2822 ],
2823 [
2824 AC_MSG_RESULT(found in default search path)
2825 COMPILED_X_PROGRAM=1
2826 ],
2827 [
2828 AC_MSG_RESULT(no)
2829 AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
2830 ]
2831 )
2832
2833 CFLAGS=$save_CFLAGS
2834 fi
2835 fi
2836
2837 AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
2838 libp_link=""
2839 libsm_ice_link=""
2840 libs_found=0
2841 for libp in "" " -lXp"; do
2842 if test "$libs_found" = "0"; then
2843 for libsm_ice in "" " -lSM -lICE"; do
2844 if test "$libs_found" = "0"; then
2845 save_LIBS="$LIBS"
2846 LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
2847 save_CFLAGS=$CFLAGS
2848 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2849
2850 AC_TRY_LINK(
2851 [
2852 #include <Xm/Xm.h>
2853 #include <Xm/List.h>
2854 ],
2855 [
2856 XmString string = NULL;
2857 Widget w = NULL;
2858 int position = 0;
2859 XmListAddItem(w, string, position);
2860 ],
2861 [
2862 libp_link="$libp"
2863 libsm_ice_link="$libsm_ice"
2864 AC_MSG_RESULT(
2865 [need${libp_link}${libsm_ice_link}])
2866 libs_found=1
2867 ], []
2868 )
2869
2870 LIBS="$save_LIBS"
2871 CFLAGS=$save_CFLAGS
2872 fi
2873 done
2874 fi
2875 done
2876
2877 if test "$libs_found" = "0"; then
2878 AC_MSG_RESULT([can't find the right libraries])
2879 AC_MSG_ERROR([can't link a simple motif program])
2880 fi
2881
2882 save_CFLAGS=$CFLAGS
2883 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2884 AC_MSG_CHECKING([for Motif 2])
2885 AC_TRY_COMPILE([
2886 #include <Xm/Xm.h>
2887 ],
2888 [
2889 #if XmVersion < 2000
2890 #error "Not Motif 2"
2891 #endif
2892 ],
2893 [
2894 AC_DEFINE(__WXMOTIF20__,1)
2895 AC_MSG_RESULT([found])
2896 ],
2897 [
2898 AC_DEFINE(__WXMOTIF20__,0)
2899 AC_MSG_RESULT([not found])
2900 ])
2901 CFLAGS=$save_CFLAGS
2902
2903 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
2904 TOOLKIT=MOTIF
2905 GUIDIST=MOTIF_DIST
2906 fi
2907
2908 dnl more tests common to X11 and Motif:
2909 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
2910 dnl test for external libxpm if we're configured to use it
2911 if test "$wxUSE_LIBXPM" = "sys"; then
2912 AC_MSG_CHECKING(for Xpm library)
2913 WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
2914 if test "$ac_find_libraries" != "" ; then
2915 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
2916 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
2917 AC_MSG_RESULT(found at $ac_find_libraries)
2918
2919 AC_CACHE_CHECK([for X11/xpm.h],
2920 wx_cv_x11_xpm_h,
2921 [
2922 save_CFLAGS=$CFLAGS
2923 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2924
2925 AC_TRY_COMPILE(
2926 [
2927 #include <X11/xpm.h>
2928 ],
2929 [
2930 int version;
2931 version = XpmLibraryVersion();
2932 ],
2933 wx_cv_x11_xpm_h=yes,
2934 wx_cv_x11_xpm_h=no
2935 )
2936
2937 CFLAGS=$save_CFLAGS
2938 ]
2939 )
2940
2941 if test $wx_cv_x11_xpm_h = "yes"; then
2942 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXpm"
2943 AC_DEFINE(wxHAVE_LIB_XPM)
2944 else
2945 AC_MSG_WARN([built-in less efficient XPM decoder will be used])
2946 fi
2947 fi
2948
2949 fi
2950
2951 dnl XShapeQueryExtension checks: first the library, then prototype
2952 AC_CHECK_LIB([Xext], [XShapeQueryExtension],
2953 [
2954 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
2955 wxHAVE_XEXT_LIB=1
2956 ],
2957 [], [$GUI_TK_LIBRARY -lX11])
2958
2959 if test "$wxHAVE_XEXT_LIB" = 1; then
2960 save_CFLAGS="$CFLAGS"
2961 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2962
2963 AC_MSG_CHECKING([for X11/extensions/shape.h])
2964 AC_TRY_COMPILE([
2965 #include <X11/Xlib.h>
2966 #include <X11/extensions/shape.h>
2967 ],
2968 [
2969 int dummy1, dummy2;
2970 XShapeQueryExtension((Display*)NULL,
2971 (int*)NULL, (int*)NULL);
2972 ],
2973 [
2974 AC_DEFINE(HAVE_XSHAPE)
2975 AC_MSG_RESULT([found])
2976 ],
2977 [
2978 AC_MSG_RESULT([not found])
2979 ])
2980 CFLAGS="$save_CFLAGS"
2981
2982 fi
2983 fi
2984
2985 if test "$wxUSE_MAC" = 1; then
2986 AC_MSG_CHECKING([for compiler syntax to enable Pascal strings])
2987 if test "$GCC" = yes; then
2988 AC_MSG_RESULT([gcc])
2989 CPPFLAGS_PASCAL="-fpascal-strings"
2990 elif test "`echo $CXX | sed -e 's@.*/@@'`" = "xlC"; then
2991 AC_MSG_RESULT([xlc])
2992 CPPFLAGS_PASCAL="-qmacpstr"
2993 else
2994 AC_MSG_RESULT([none])
2995 fi
2996
2997 CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon"
2998
2999 TOOLKIT=MAC
3000 dnl we can't call this MAC_DIST or autoconf thinks its a macro
3001 GUIDIST=MACX_DIST
3002 dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
3003 dnl are different, so they need different names:
3004 WXBASEPORT="_carbon"
3005 fi
3006
3007 if test "$wxUSE_COCOA" = 1; then
3008 TOOLKIT=COCOA
3009 GUIDIST=COCOA_DIST
3010 fi
3011
3012 if test "$wxUSE_PM" = 1; then
3013 TOOLKIT=PM
3014 GUIDIST=PM_DIST
3015 AC_CACHE_CHECK([for type SPBCDATA],
3016 wx_cv_spbcdata,
3017 [
3018 AC_TRY_COMPILE(
3019 [
3020 #define INCL_PM
3021 #include <os2.h>
3022 ],
3023 [
3024 SPBCDATA test;
3025 ],
3026 wx_cv_spbcdata=yes,
3027 wx_cv_spbcdata=no
3028 )
3029 ]
3030 )
3031
3032 if test $wx_cv_spbcdata = "yes"; then
3033 AC_DEFINE(HAVE_SPBCDATA)
3034 fi
3035 fi
3036
3037 dnl the name of the directory where the files for this toolkit live
3038 if test "$TOOLKIT" = "PM" ; then
3039 TOOLKIT_DIR="os2"
3040 else
3041 TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
3042 fi
3043
3044 if test "$wxUSE_UNIVERSAL" = "yes"; then
3045 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
3046 WIDGET_SET=univ
3047 fi
3048
3049 dnl distribute samples/demos/utils with GUI versions
3050 GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
3051 DISTDIR="wx\$(TOOLKIT)"
3052 else
3053 USE_GUI=0
3054
3055 dnl this doesn't quite work right for wxBase, but the places
3056 dnl where it is wrong aren't fatal (yet) though.
3057 TOOLKIT_DIR="base"
3058
3059 dnl the sources, their dependenices and the headers
3060 if test "$USE_WIN32" = 1 ; then
3061 dnl yes, the toolkit for wxBase on win32 is actually MSW
3062 dnl wxBase on unix does not need a 'TOOLKIT' defined.
3063 TOOLKIT="MSW"
3064 fi
3065
3066 dnl distribute only wxBase sources/headers
3067 GUIDIST="BASE_DIST"
3068 DISTDIR="wxBase"
3069 fi
3070
3071 dnl ---------------------------------------------------------------------------
3072 dnl Optional libraries included when system library is not used
3073 dnl ---------------------------------------------------------------------------
3074
3075
3076 dnl ----------------------------------------------------------------
3077 dnl iODBC support
3078 dnl ----------------------------------------------------------------
3079
3080 IODBC_C_SRC=""
3081
3082
3083 dnl ODBC is handled seperately for MSW
3084 if test "$TOOLKIT" != "MSW" ; then
3085
3086 if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
3087 dnl This is not ideal we really ough to use the unixodbc-config
3088 dnl or iodbc-config if they exist.
3089
3090 AC_CHECK_HEADER([sql.h], [found_sql_h=1])
3091 if test "x$found_sql_h" = "x1" ; then
3092 AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
3093 [
3094 AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc",
3095 [
3096 AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
3097 ])
3098 ])
3099 fi
3100 if test "x$ODBC_LINK" = "x" ; then
3101 if test "$wxUSE_ODBC" = "sys" ; then
3102 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
3103 else
3104 AC_MSG_WARN([system ODBC library not found, will use built-in instead])
3105 wxUSE_ODBC=builtin
3106 fi
3107 else
3108 dnl we are using the system library
3109 wxUSE_ODBC=sys
3110 fi
3111 fi
3112 if test "$wxUSE_ODBC" != "no" ; then
3113 AC_DEFINE(wxUSE_ODBC)
3114 if test "$wxUSE_ODBC" = "builtin" ; then
3115 AC_DEFINE(wxUSE_BUILTIN_IODBC)
3116 fi
3117 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
3118
3119 dnl is this still necessary in 2.5?
3120 WXODBCFLAG="-D_IODBC_"
3121 fi
3122 fi
3123
3124
3125 dnl ---------------------------------------------------------------------------
3126 dnl wxDisplay Sanity checks
3127 dnl ---------------------------------------------------------------------------
3128
3129 if test "$wxUSE_DISPLAY" = "yes"; then
3130 dnl ---------------------------------------------------------------------------
3131 dnl Xinerama (for unix ) - Brian Victor
3132 dnl ---------------------------------------------------------------------------
3133 if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
3134 AC_MSG_CHECKING([for Xinerama])
3135 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama)
3136 if test "$ac_find_libraries" != "" ; then
3137 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3138 if test "$ac_path_to_link" != " -L/usr/lib" ; then
3139 LDFLAGS="$LDFLAGS $ac_path_to_link"
3140 fi
3141 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXinerama"
3142 AC_MSG_RESULT([yes])
3143
3144 AC_MSG_CHECKING([for Xxf86vm extension])
3145 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
3146 if test "$ac_find_libraries" != "" ; then
3147 AC_MSG_RESULT([yes])
3148 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
3149 [
3150 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
3151 ],
3152 [],
3153 [
3154 #if HAVE_X11_XLIB_H
3155 #include <X11/Xlib.h>
3156 #endif
3157 ])
3158 else
3159 AC_MSG_RESULT([no])
3160 fi
3161
3162 else
3163 AC_MSG_RESULT([no])
3164 AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
3165 wxUSE_DISPLAY="no"
3166 fi
3167 elif test "$wxUSE_MSW" = 1; then
3168 dnl ---------------------------------------------------------------------------
3169 dnl DirectDraw / Multimon for MSW
3170 dnl ---------------------------------------------------------------------------
3171 AC_CHECK_HEADERS([multimon.h ddraw.h], [], [
3172 wxUSE_DISPLAY="no"
3173 AC_MSG_WARN([ddraw.h or multimon.h not found; disabling wxDisplay])
3174 ] )
3175 fi
3176 fi
3177
3178 dnl ---------------------------------------------------------------------------
3179 dnl OpenGL libraries
3180 dnl ---------------------------------------------------------------------------
3181
3182 USE_OPENGL=0
3183 if test "$wxUSE_OPENGL" = "yes"; then
3184 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
3185 OPENGL_LIBS="-framework OpenGL -framework AGL"
3186 elif test "$wxUSE_MSW" = 1; then
3187 OPENGL_LIBS="-lopengl32 -lglu32"
3188 else
3189 dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find
3190 dnl GL/gl.h on Mac OS X where it is located in
3191 dnl /usr/X11R6/include/GL/gl.h:
3192
3193 WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h)
3194 if test "$ac_find_includes" != "" ; then
3195 AC_MSG_RESULT(found in $ac_find_includes)
3196 WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
3197 CPPFLAGS="$CPPFLAGS$ac_path_to_include"
3198 fi
3199
3200 AC_CHECK_HEADER(GL/gl.h,
3201 [
3202 found_gl=0
3203
3204 AC_MSG_CHECKING([for -lGL])
3205 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
3206 if test "$ac_find_libraries" != "" ; then
3207 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3208 if test "$ac_path_to_link" != " -L/usr/lib" ; then
3209 LDFLAGS_GL="$ac_path_to_link"
3210 fi
3211
3212 dnl don't suppose that libGL and libGLU are always in the
3213 dnl same directory -- this is not true for some common
3214 dnl distributions
3215 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
3216 if test "$ac_find_libraries" != "" ; then
3217 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3218 if test "$ac_path_to_link" != " -L/usr/lib" -a \
3219 "$ac_path_to_link" != "$LDFLAGS_GL"; then
3220 LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
3221 fi
3222
3223 found_gl=1
3224 OPENGL_LIBS="-lGL -lGLU"
3225 AC_MSG_RESULT([yes])
3226 fi
3227 fi
3228
3229 if test "$found_gl" != 1; then
3230 AC_MSG_RESULT([no])
3231 AC_MSG_CHECKING([for -lMesaGL])
3232 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
3233 if test "$ac_find_libraries" != "" ; then
3234 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3235 LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
3236 OPENGL_LIBS="-lMesaGL -lMesaGLU"
3237 AC_MSG_RESULT([yes])
3238 else
3239 AC_MSG_RESULT([no])
3240 fi
3241 fi
3242 ])
3243
3244 if test "x$OPENGL_LIBS" = "x"; then
3245 dnl it should be an error and not a warning because OpenGL is not on
3246 dnl by default and so if it had been explicitely requested, we
3247 dnl shouldn't just fall back to compiling the library without it
3248 AC_MSG_ERROR(OpenGL libraries not available)
3249 fi
3250 fi
3251
3252 if test "$wxUSE_OPENGL" = "yes"; then
3253 USE_OPENGL=1
3254 AC_DEFINE(wxUSE_OPENGL)
3255 AC_DEFINE(wxUSE_GLCANVAS)
3256 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf"
3257 fi
3258 fi
3259
3260
3261 dnl the symbol which allows conditional compilation for the given toolkit
3262 if test -n "$TOOLKIT" ; then
3263 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
3264 fi
3265
3266
3267 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
3268
3269 if test "$wxUSE_SHARED" = "yes"; then
3270 case "${host}" in
3271 *-pc-msdosdjgpp )
3272 dnl only static for now
3273 wxUSE_SHARED=no
3274 AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
3275 ;;
3276 esac
3277 fi
3278
3279 if test "$wxUSE_SHARED" = "yes"; then
3280
3281 dnl use versioned symbols if available on the platform
3282 WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
3283
3284 case "${host}" in
3285 *-*-linux* | *-*-gnu* )
3286 SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3287 WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3288 ;;
3289
3290 *-*-solaris2* )
3291 if test "$GCC" = yes ; then
3292 dnl newer versions of gcc need -isystem to compile X headers on
3293 dnl Solaris (which use old style C syntax)
3294 CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include"
3295
3296 dnl gcc may use Sun's ld, in which case -rpath gives a confusing
3297 dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
3298 saveLdflags="$LDFLAGS"
3299 LDFLAGS="$saveLdflags -Wl,-rpath,/"
3300 AC_MSG_CHECKING([if the linker accepts -rpath])
3301 AC_TRY_LINK(
3302 [],[],
3303 [
3304 AC_MSG_RESULT([yes])
3305 SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3306 WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3307 ],[
3308 AC_MSG_RESULT([no])
3309 AC_MSG_CHECKING([if the linker accepts -R])
3310 LDFLAGS="$saveLdflags -Wl,-R,/"
3311 AC_TRY_LINK(
3312 [],[],
3313 [
3314 AC_MSG_RESULT([yes])
3315 SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"
3316 WXCONFIG_RPATH="-Wl,-R,\$libdir"
3317 ],[
3318 AC_MSG_RESULT([no])
3319 ])
3320 ])
3321 LDFLAGS="$saveLdflags"
3322 else
3323 SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
3324 WXCONFIG_RPATH="-R\$libdir"
3325 fi
3326 ;;
3327
3328 powerpc-*-darwin* )
3329 SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
3330 cat <<EOF >change-install-names
3331 #!/bin/sh
3332 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
3333 inst_cmd="install_name_tool "
3334 for i in \${libnames} ; do
3335 inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}"
3336 done
3337 \${inst_cmd} \${3}
3338 EOF
3339 chmod +x change-install-names
3340 ;;
3341
3342 *-*-cygwin* | *-*-mingw32* )
3343 TOOLCHAIN_DLL_DEFS="${TOOLCHAIN_DLL_DEFS} -DWXUSINGDLL=1"
3344 ;;
3345
3346 esac
3347
3348 if test $wxUSE_RPATH = "no"; then
3349 SAMPLES_RPATH_FLAG=''
3350 SAMPLES_RPATH_POSTLINK=''
3351 WXCONFIG_RPATH=''
3352 fi
3353
3354 SHARED=1
3355
3356 else
3357
3358 config_linkage_component="-static"
3359 SHARED=0
3360
3361 fi
3362
3363
3364 UNICODE=0
3365 lib_unicode_suffix=
3366 WX_CHARTYPE="ansi"
3367 if test "$wxUSE_UNICODE" = "yes"; then
3368 lib_unicode_suffix=u
3369 WX_CHARTYPE="unicode"
3370 UNICODE=1
3371 fi
3372
3373 lib_debug_suffix=
3374 WX_DEBUGTYPE="release"
3375 DEBUG_FLAG=0
3376 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
3377 lib_debug_suffix=d
3378 WX_DEBUGTYPE="debug"
3379 DEBUG_FLAG=1
3380 fi
3381
3382 WX_FLAVOUR=${WX_FLAVOUR:+-$WX_FLAVOUR}
3383 WX_LIB_FLAVOUR=`echo $WX_FLAVOUR | tr '-' '_'`
3384
3385 DEBUG_INFO=0
3386 if test "$wxUSE_DEBUG_INFO" = "yes"; then
3387 DEBUG_INFO=1
3388 fi
3389
3390 WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
3391
3392 TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}"
3393
3394 TOOLCHAIN_FULLNAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}-${WX_CHARTYPE}-${WX_DEBUGTYPE}${config_linkage_component}-${WX_RELEASE}${WX_FLAVOUR}"
3395
3396 if test "$cross_compiling" = "yes"; then
3397 HOST_SUFFIX="-$host_alias"
3398 TOOLCHAIN_NAME="$TOOLCHAIN_NAME$HOST_SUFFIX"
3399 TOOLCHAIN_FULLNAME="${host_alias}-$TOOLCHAIN_FULLNAME"
3400 fi
3401
3402 dnl library link name
3403 dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix.
3404 dnl If we ever need to do that, we won't need to keep these.
3405 WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3406 WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3407
3408
3409
3410 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
3411 dnl base name of the resource file for wxMac must be the same
3412 dnl as library installation base name (-install_name)
3413 WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${WX_CURRENT}.r"
3414 WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${WX_CURRENT}.rsrc"
3415
3416 dnl add the resources target for wxMac
3417 LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
3418
3419 AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
3420 AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
3421 AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
3422
3423 MACSETFILE="\$(SETFILE)"
3424
3425 dnl resources are bundled both with shared library and applications
3426 dnl since the carb resource *must* be included in the application
3427 if test "$wxUSE_MAC" = 1; then
3428 MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o"
3429
3430 dnl this command is used to implement `wx-config --rezflags` and it is
3431 dnl eval'd there so escape any metacharacters inside
3432 MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
3433 else
3434 MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o"
3435 MACRESWXCONFIG="echo -n \\\| ${RESCOMP} -d __DARWIN__ -t APPL \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
3436 fi
3437 else
3438 dnl default value is to (silently) do nothing in the makefile
3439 MACSETFILE="@true"
3440 MACRESWXCONFIG="@true"
3441
3442 dnl confusingly, wxOS2 also uses MACRESCOMP in its post-link step
3443 if test "$wxUSE_PM" = 1; then
3444 MACRESCOMP="emxbind -ep"
3445 else
3446 MACRESCOMP="@true"
3447 fi
3448 fi
3449
3450
3451 dnl ---------------------------------------------------------------------------
3452 dnl Checks for typedefs
3453 dnl ---------------------------------------------------------------------------
3454
3455 dnl defines mode_t if not already defined
3456 AC_TYPE_MODE_T
3457 dnl defines off_t if not already defined
3458 AC_TYPE_OFF_T
3459 dnl defines pid_t if not already defined
3460 AC_TYPE_PID_T
3461 dnl defines size_t if not already defined
3462 AC_TYPE_SIZE_T
3463 dnl defines uid_t and gid_t if not already defined
3464 AC_TYPE_UID_T
3465
3466 dnl check what exactly size_t is on this machine - this is necessary to avoid
3467 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
3468 AC_LANG_SAVE
3469 AC_LANG_CPLUSPLUS
3470 AC_CACHE_CHECK([if size_t is unsigned int],
3471 wx_cv_size_t_is_uint,
3472 [
3473 dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
3474 dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
3475 dnl methods in a local class (i.e. class inside a function) declaration
3476 dnl without any objections!!
3477 dnl
3478 dnl hence the hack below: we must have Foo at global scope!
3479 AC_TRY_COMPILE([#include <stddef.h>],
3480 [
3481 return 0; }
3482
3483 struct Foo { void foo(size_t); void foo(unsigned int); };
3484
3485 int bar() {
3486 ],
3487 wx_cv_size_t_is_uint=no,
3488 wx_cv_size_t_is_uint=yes
3489 )
3490 ]
3491 )
3492
3493 if test "$wx_cv_size_t_is_uint" = "yes"; then
3494 AC_DEFINE(wxSIZE_T_IS_UINT)
3495 else
3496 AC_CACHE_CHECK([if size_t is unsigned long],
3497 wx_cv_size_t_is_ulong,
3498 AC_TRY_COMPILE([#include <stddef.h>],
3499 [
3500 return 0; }
3501
3502 struct Foo { void foo(size_t); void foo(unsigned long); };
3503
3504 int bar() {
3505 ],
3506 wx_cv_size_t_is_ulong=no,
3507 wx_cv_size_t_is_ulong=yes
3508 )
3509 )
3510
3511 if test "$wx_cv_size_t_is_ulong" = "yes"; then
3512 AC_DEFINE(wxSIZE_T_IS_ULONG)
3513 fi
3514 fi
3515
3516 AC_LANG_RESTORE
3517
3518 dnl ---------------------------------------------------------------------------
3519 dnl Checks for structures
3520 dnl ---------------------------------------------------------------------------
3521
3522 dnl does passwd struct has the pw_gecos field?
3523 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
3524 [
3525 AC_TRY_COMPILE([#include <pwd.h>],
3526 [
3527 char *p;
3528 struct passwd *pw;
3529 p = pw->pw_gecos;
3530 ],
3531 [
3532 wx_cv_struct_pw_gecos=yes
3533 ],
3534 [
3535 wx_cv_struct_pw_gecos=no
3536 ]
3537 )
3538 ]
3539 )
3540
3541 if test "$wx_cv_struct_pw_gecos" = "yes"; then
3542 AC_DEFINE(HAVE_PW_GECOS)
3543 fi
3544
3545 dnl ---------------------------------------------------------------------------
3546 dnl Check for functions
3547 dnl ---------------------------------------------------------------------------
3548
3549 dnl don't check for wchar_t functions if we haven't got wchar_t itself
3550 if test "$wx_cv_sizeof_wchar_t" != "0"; then
3551 AC_DEFINE(wxUSE_WCHAR_T)
3552
3553 dnl check for wcslen in all possible places
3554 WCSLEN_FOUND=0
3555 WCHAR_LINK=
3556 AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
3557
3558 if test "$WCSLEN_FOUND" = 0; then
3559 if test "$TOOLKIT" = "MSW"; then
3560 AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
3561 else
3562 AC_CHECK_LIB(w, wcslen, [
3563 WCHAR_LINK=" -lw"
3564 WCSLEN_FOUND=1
3565 ])
3566 fi
3567 fi
3568
3569 if test "$WCSLEN_FOUND" = 1; then
3570 AC_DEFINE(HAVE_WCSLEN)
3571 fi
3572
3573 dnl HP-UX aCC needs this define to find mbstrtowcs() &c
3574 if test "$USE_HPUX" = 1 -a "x$GCC" != "xyes"; then
3575 CPPFLAGS="$CPPFLAGS -D_INCLUDE__STDC_A1_SOURCE "
3576 fi
3577
3578 dnl try to use wcsrtombs instead of wcstombs which is buggy in old GNU
3579 dnl libc versions if possible
3580 AC_CHECK_FUNCS(wcsrtombs)
3581 else
3582 AC_MSG_WARN([Wide character support is unavailable])
3583 fi
3584
3585 dnl *printf() functions sometimes are available in the library but not
3586 dnl prototyped -- if this is the case, we can't use them from C++ code, but to
3587 dnl detect this we have to use C++ compiler for testing
3588 AC_LANG_SAVE
3589 AC_LANG_CPLUSPLUS
3590
3591 dnl check for vsnprintf() -- a safe version of vsprintf())
3592 dnl
3593 dnl the trouble here is that on some systems (notable HP-UX) this function is
3594 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
3595 dnl stupidly, provides a dummy function declaration inside its extension)
3596 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
3597 dnl
3598 dnl so we first check if the function is in the library
3599 AC_CHECK_FUNCS(vsnprintf)
3600
3601 if test "$ac_cv_func_vsnprintf" = "yes"; then
3602 dnl yes it is -- now check if it is in the headers
3603 AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
3604 [
3605 AC_TRY_COMPILE(
3606 [
3607 #include <stdio.h>
3608 #include <stdarg.h>
3609 ],
3610 [
3611 char *buf;
3612 va_list ap;
3613 vsnprintf(buf, 10u, "%s", ap);
3614 ],
3615 wx_cv_func_vsnprintf_decl=yes,
3616 wx_cv_func_vsnprintf_decl=no
3617 )
3618 ]
3619 )
3620
3621 if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
3622 AC_DEFINE(HAVE_VSNPRINTF_DECL)
3623 fi
3624 fi
3625
3626 if test "$wxUSE_UNICODE" = yes; then
3627 dnl also look if we have wide char IO functions
3628 AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
3629
3630 dnl MinGW has a vswprintf with a different prototype, and
3631 dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
3632 dnl finds it even if it is not declared in some versions...
3633 AC_MSG_CHECKING([for _vsnwprintf])
3634 AC_TRY_COMPILE([#include <wchar.h>],
3635 [&_vsnwprintf;],
3636 [AC_MSG_RESULT([yes])
3637 AC_DEFINE(HAVE__VSNWPRINTF)],
3638 [AC_MSG_RESULT([no])]);
3639 fi
3640
3641 AC_LANG_RESTORE
3642
3643
3644
3645 dnl the following tests are for Unix(like) systems only
3646 if test "$TOOLKIT" != "MSW"; then
3647
3648 dnl check for available version of iconv()
3649
3650 AC_LANG_SAVE
3651 AC_LANG_CPLUSPLUS
3652 AM_ICONV
3653 LIBS="$LIBICONV $LIBS"
3654 AC_LANG_RESTORE
3655
3656 dnl check for POSIX signals if we need them
3657 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
3658 AC_CHECK_FUNCS(sigaction)
3659
3660 if test "$ac_cv_func_sigaction" = "no"; then
3661 AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
3662 wxUSE_ON_FATAL_EXCEPTION=no
3663 fi
3664
3665 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
3666 AC_LANG_SAVE
3667 AC_LANG_CPLUSPLUS
3668
3669 AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
3670 [
3671 AC_TRY_COMPILE([#include <signal.h>],
3672 [
3673 extern void testSigHandler(int);
3674
3675 struct sigaction sa;
3676 sa.sa_handler = testSigHandler;
3677 ], [
3678 wx_cv_type_sa_handler=int
3679 ], [
3680 wx_cv_type_sa_handler=void
3681 ])
3682 ])
3683
3684 AC_LANG_RESTORE
3685
3686 AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
3687 fi
3688 fi
3689
3690 dnl check for the function for temp files creation
3691 AC_CHECK_FUNCS(mkstemp mktemp, break)
3692
3693 dnl get the library function to use for wxGetDiskSpace(): it is statfs() under
3694 dnl Linux and *BSD and statvfs() under Solaris
3695 AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
3696 AC_TRY_COMPILE(
3697 [
3698 #if defined(__BSD__)
3699 #include <sys/param.h>
3700 #include <sys/mount.h>
3701 #else
3702 #include <sys/vfs.h>
3703 #endif
3704 ],
3705 [
3706 long l;
3707 struct statfs fs;
3708 statfs("/", &fs);
3709 l = fs.f_bsize;
3710 l += fs.f_blocks;
3711 l += fs.f_bavail;
3712 ],
3713 [
3714 wx_cv_func_statfs=yes
3715 ],
3716 [
3717 wx_cv_func_statfs=no
3718 ]
3719 )
3720 )
3721
3722 if test "$wx_cv_func_statfs" = "yes"; then
3723 wx_cv_type_statvfs_t="struct statfs"
3724 AC_DEFINE(HAVE_STATFS)
3725 else
3726 AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
3727 AC_TRY_COMPILE(
3728 [
3729 #include <stddef.h>
3730 #include <sys/statvfs.h>
3731 ],
3732 [
3733 statvfs("/", NULL);
3734 ],
3735 wx_cv_func_statvfs=yes,
3736 wx_cv_func_statvfs=no
3737 )
3738 )
3739
3740 if test "$wx_cv_func_statvfs" = "yes"; then
3741 dnl we also have to check whether we should use statvfs_t (works under
3742 dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
3743 dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
3744 dnl mode both work fine)
3745 dnl
3746 dnl for this check C++ compiler has to be used as passing incompatible
3747 dnl pointers is just a warning and not an error in C
3748 AC_LANG_SAVE
3749 AC_LANG_CPLUSPLUS
3750
3751 AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
3752 AC_TRY_COMPILE(
3753 [
3754 #include <sys/statvfs.h>
3755 ],
3756 [
3757 long l;
3758 statvfs_t fs;
3759 statvfs("/", &fs);
3760 l = fs.f_bsize;
3761 l += fs.f_blocks;
3762 l += fs.f_bavail;
3763 ],
3764 wx_cv_type_statvfs_t=statvfs_t,
3765 [
3766 AC_TRY_COMPILE(
3767 [
3768 #include <sys/statvfs.h>
3769 ],
3770 [
3771 long l;
3772 struct statvfs fs;
3773 statvfs("/", &fs);
3774 l = fs.f_bsize;
3775 l += fs.f_blocks;
3776 l += fs.f_bavail;
3777 ],
3778 wx_cv_type_statvfs_t="struct statvfs",
3779 wx_cv_type_statvfs_t="unknown"
3780 )
3781 ]
3782 )
3783 )
3784
3785 AC_LANG_RESTORE
3786
3787 if test "$wx_cv_type_statvfs_t" != "unknown"; then
3788 AC_DEFINE(HAVE_STATVFS)
3789 fi
3790 else
3791 dnl set it for the test below
3792 wx_cv_type_statvfs_t="unknown"
3793 fi
3794 fi
3795
3796 if test "$wx_cv_type_statvfs_t" != "unknown"; then
3797 AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
3798 else
3799 AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
3800 fi
3801
3802 dnl check for fcntl() or at least flock() needed by Unix implementation of
3803 dnl wxSingleInstanceChecker
3804 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
3805 AC_CHECK_FUNCS(fcntl flock, break)
3806
3807 if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then
3808 AC_MSG_WARN(wxSingleInstanceChecker not available)
3809 wxUSE_SNGLINST_CHECKER=no
3810 fi
3811 fi
3812
3813 dnl check for timegm() used by datetime.cpp
3814 AC_CHECK_FUNCS(timegm)
3815
3816 dnl look for a function to modify the environment
3817 AC_CHECK_FUNCS(putenv setenv, break)
3818
3819 HAVE_SOME_SLEEP_FUNC=0
3820 if test "$USE_BEOS" = 1; then
3821 dnl BeOS has its own (wonder where did they get it from) sleep() function
3822 dnl in unistd.h
3823 AC_DEFINE(HAVE_SLEEP)
3824 HAVE_SOME_SLEEP_FUNC=1
3825 fi
3826
3827 if test "$USE_DARWIN" = 1; then
3828 dnl Mac OS X/Darwin has both nanosleep and usleep
3829 dnl but only usleep is defined in unistd.h
3830 AC_DEFINE(HAVE_USLEEP)
3831 HAVE_SOME_SLEEP_FUNC=1
3832 fi
3833
3834 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
3835 dnl try nanosleep() in libc and libposix4, if this fails - usleep()
3836 POSIX4_LINK=
3837 AC_CHECK_FUNCS(nanosleep,
3838 AC_DEFINE(HAVE_NANOSLEEP),
3839 [
3840 AC_CHECK_LIB(posix4, nanosleep,
3841 [
3842 AC_DEFINE(HAVE_NANOSLEEP)
3843 POSIX4_LINK=" -lposix4"
3844 ],
3845 [
3846 AC_CHECK_FUNCS(usleep,
3847 AC_DEFINE(HAVE_USLEEP),
3848 AC_MSG_WARN([wxSleep() function will not work])
3849 )
3850 ]
3851 )
3852 ]
3853 )
3854 fi
3855
3856 dnl check for uname (POSIX) and gethostname (BSD)
3857 AC_CHECK_FUNCS(uname gethostname, break)
3858
3859 dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
3860 dnl but not for C++ one - hence change language)
3861 AC_LANG_SAVE
3862 AC_LANG_CPLUSPLUS
3863
3864 AC_CHECK_FUNCS(strtok_r)
3865
3866 AC_LANG_RESTORE
3867
3868 dnl check for inet_addr and inet_aton (these may live either in libc, or in
3869 dnl libnsl or libresolv or libsocket)
3870 INET_LINK=
3871 AC_CHECK_FUNCS(inet_addr,
3872 AC_DEFINE(HAVE_INET_ADDR),
3873 [
3874 AC_CHECK_LIB(nsl, inet_addr,
3875 INET_LINK="nsl",
3876 [
3877 AC_CHECK_LIB(resolv, inet_addr,
3878 INET_LINK="resolv",
3879 [
3880 AC_CHECK_LIB(socket, inet_addr,
3881 INET_LINK="socket"
3882 )
3883 ]
3884 )
3885 ]
3886 )
3887 ]
3888 )
3889
3890 AC_CHECK_FUNCS(inet_aton,
3891 AC_DEFINE(HAVE_INET_ATON),
3892 [
3893 dnl only check it in the same lib
3894 AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
3895 ])
3896
3897 if test "x$INET_LINK" != "x"; then
3898 AC_DEFINE(HAVE_INET_ADDR)
3899 INET_LINK=" -l$INET_LINK"
3900 fi
3901
3902 fi
3903 dnl if !MSW
3904
3905
3906 dnl ------------------------------------------
3907 dnl Checks specific to contrib libs (MMedia)
3908 dnl ------------------------------------------
3909
3910 dnl Check for ESD:
3911 EXTRALIBS_ESD=
3912 AC_CHECK_LIB(esd, esd_close, [
3913 AC_CHECK_HEADERS([esd.h], [
3914 EXTRALIBS_ESD="-lesd"
3915 ])
3916 ])
3917 AC_SUBST(EXTRALIBS_ESD)
3918
3919 dnl check for known CD-ROM interface
3920 AC_MSG_CHECKING([for known CD-ROM interface])
3921 AC_TRY_COMPILE([#ifdef __linux__
3922 #include <linux/cdrom.h>
3923 #else
3924 /* For Solaris */
3925 #include <sys/cdio.h>
3926 #endif
3927 ],
3928 [struct cdrom_tocentry entry, old_entry;],
3929 [AC_MSG_RESULT([yes])
3930 AC_DEFINE(HAVE_KNOWN_CDROM_INTERFACE)],
3931 [AC_MSG_RESULT([no])])
3932
3933 dnl ===========================================================================
3934 dnl Now we have all the info we need - use it!
3935 dnl ===========================================================================
3936
3937 dnl flush the cache
3938 AC_CACHE_SAVE
3939
3940 dnl ---------------------------------------------------------------------------
3941 dnl thread support for Unix (for Win32 and OS/2 see past
3942 dnl the next matching "else")
3943 dnl ---------------------------------------------------------------------------
3944
3945 dnl under MSW (except mingw32) we always have thread support
3946 CPP_MT_FLAG=
3947 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
3948
3949 dnl the code below:
3950 dnl
3951 dnl defines THREADS_LINK and THREADS_CFLAGS which are the options
3952 dnl necessary to build the MT programs for the linker and compiler
3953 dnl respectively
3954 dnl
3955 dnl sets wxUSE_THREADS=1 if thread support is activated
3956
3957 THREADS_LINK=
3958 THREADS_CFLAGS=
3959
3960 if test "$wxUSE_THREADS" = "yes" ; then
3961 if test "$USE_BEOS" = 1; then
3962 AC_MSG_WARN([BeOS threads are not yet supported... disabled])
3963 wxUSE_THREADS="no"
3964 fi
3965 fi
3966
3967 if test "$wxUSE_THREADS" = "yes" ; then
3968 dnl find if POSIX threads are available
3969 dnl
3970 dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
3971 dnl archive from http://ac-archive.sourceforge.net/
3972 dnl
3973 dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
3974 dnl Forero Cuervo <bachue@bachue.com> for the original code
3975
3976 dnl TODO: cache the result
3977
3978 dnl define the list of the thread options to try in the loop below
3979 dnl with the convention that anything starting with '-' is a cpp flag
3980 dnl while anything else is a library (i.e. there is an implicit "-l")
3981 THREAD_OPTS="-pthread"
3982 case "${host}" in
3983 *-*-solaris2* | *-*-sunos4* )
3984 if test "x$GCC" = "xyes"; then
3985 dnl Solaris/gcc combination use this one for some reason
3986 THREAD_OPTS="-pthreads $THREAD_OPTS"
3987 else
3988 THREAD_OPTS="-mt $THREAD_OPTS"
3989 fi
3990 ;;
3991 *-*-freebsd*)
3992 dnl look, in order, for the kernel threads, then Linux threads
3993 dnl and finally the userland threads
3994 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
3995 ;;
3996 *-*-darwin* | *-*-cygwin* )
3997 dnl Darwin / Mac OS X just uses -lpthread tested below
3998 dnl and so does Cygwin
3999 THREAD_OPTS=""
4000 ;;
4001 *-*-aix*)
4002 dnl AIX calls the library libpthreads - thanks IBM!
4003 THREAD_OPTS="pthreads"
4004 ;;
4005 *-hp-hpux* )
4006 dnl HP-UX aCC only gives a warning, not an error about
4007 dnl -pthread but it doesn't work and we have to use -lpthread
4008 dnl there
4009 if test "x$GCC" != "xyes"; then
4010 THREAD_OPTS=""
4011 fi
4012 ;;
4013
4014 *-*-irix* )
4015 dnl gcc under IRIX doesn't seem to like -pthread, but it
4016 dnl doesn't give an error for it neither, just a warning
4017 dnl message -- but this is still very annoying
4018 if test "x$GCC" = "xyes"; then
4019 THREAD_OPTS=""
4020 fi
4021 ;;
4022
4023 *-*-*UnixWare*)
4024 dnl flying by man pages here: Caldera online docs use this
4025 if test "x$GCC" != "xyes"; then
4026 THREAD_OPTS="-Ethread"
4027 fi
4028 ;;
4029 esac
4030
4031 dnl simply linking with libpthread should make the test below work but
4032 dnl it's far from certain that the threaded programs compiled without
4033 dnl any special switches actually work, so try it after all the others
4034 THREAD_OPTS="$THREAD_OPTS pthread none"
4035
4036 dnl now test for all possibilities
4037 THREADS_OK=no
4038 for flag in $THREAD_OPTS; do
4039 case $flag in
4040 none)
4041 AC_MSG_CHECKING([whether pthreads work without any flags])
4042 ;;
4043
4044 -*)
4045 AC_MSG_CHECKING([whether pthreads work with $flag])
4046 THREADS_CFLAGS="$flag"
4047 ;;
4048
4049 *)
4050 AC_MSG_CHECKING([for the pthreads library -l$flag])
4051 THREADS_LINK="-l$flag"
4052 ;;
4053 esac
4054
4055 save_LIBS="$LIBS"
4056 save_CFLAGS="$CFLAGS"
4057 LIBS="$THREADS_LINK $LIBS"
4058 CFLAGS="$THREADS_CFLAGS $CFLAGS"
4059
4060 AC_TRY_LINK([#include <pthread.h>],
4061 [pthread_create(0,0,0,0);],
4062 THREADS_OK=yes)
4063
4064 LIBS="$save_LIBS"
4065 CFLAGS="$save_CFLAGS"
4066
4067 AC_MSG_RESULT($THREADS_OK)
4068 if test "x$THREADS_OK" = "xyes"; then
4069 break;
4070 fi
4071
4072 THREADS_LINK=""
4073 THREADS_CFLAGS=""
4074 done
4075
4076 if test "x$THREADS_OK" != "xyes"; then
4077 wxUSE_THREADS=no
4078 AC_MSG_WARN([No thread support on this system... disabled])
4079 else
4080 dnl yes, these special compiler flags should be used with the
4081 dnl linker as well
4082 LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
4083 LIBS="$THREADS_LINK $LIBS"
4084
4085 AC_MSG_CHECKING([if more special flags are required for pthreads])
4086 flag=no
4087 case "${host}" in
4088 *-aix*)
4089 dnl again quoting from
4090 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
4091 dnl
4092 dnl When compiling and linking with -pthread, the library
4093 dnl search path should include -L/usr/lib/threads at the
4094 dnl beginning of the path.
4095 LDFLAGS="-L/usr/lib/threads $LDFLAGS"
4096 flag="-D_THREAD_SAFE"
4097 ;;
4098 *-freebsd*)
4099 flag="-D_THREAD_SAFE"
4100 ;;
4101 *-hp-hpux* )
4102 flag="-D_REENTRANT"
4103 if test "x$GCC" != "xyes"; then
4104 dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
4105 flag="$flag -D_RWSTD_MULTI_THREAD"
4106
4107 dnl we also need -lcma for user threads (-lpthread is for
4108 dnl kernel threads only) according to Ian Brown
4109 LIBS="$LIBS -lcma"
4110 fi
4111 ;;
4112 *solaris* | alpha*-osf*)
4113 flag="-D_REENTRANT"
4114 ;;
4115 esac
4116 AC_MSG_RESULT(${flag})
4117 if test "x$flag" != xno; then
4118 THREADS_CFLAGS="$THREADS_CFLAGS $flag"
4119 fi
4120
4121 if test "x$THREADS_CFLAGS" != "x"; then
4122 dnl don't add these options to CPPFLAGS as cpp might not know them
4123 CFLAGS="$CFLAGS $THREADS_CFLAGS"
4124 CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS"
4125 fi
4126 fi
4127 fi
4128
4129 dnl do other tests only if we are using threads
4130 if test "$wxUSE_THREADS" = "yes" ; then
4131 AC_CHECK_FUNCS(thr_setconcurrency)
4132
4133 AC_CHECK_HEADERS(sched.h)
4134 if test "$ac_cv_header_sched_h" = "yes"; then
4135 AC_CHECK_FUNC(sched_yield,
4136 AC_DEFINE(HAVE_SCHED_YIELD),
4137 [
4138 AC_CHECK_LIB(posix4,
4139 sched_yield,
4140 [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
4141 AC_MSG_WARN(wxThread::Yield will not work properly)
4142 )
4143 ]
4144 )
4145 fi
4146
4147 dnl to be able to set the thread priority, we need to have all of the
4148 dnl following functions:
4149 dnl 1. pthread_attr_getschedpolicy
4150 dnl 2. sched_get_priority_min and sched_get_priority_max
4151 dnl (this one can be in either libpthread or libposix4 (under Solaris))
4152 dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam
4153 HAVE_PRIOR_FUNCS=0
4154 AC_CHECK_FUNC(pthread_attr_getschedpolicy,
4155 [AC_CHECK_FUNC(pthread_attr_setschedparam,
4156 [AC_CHECK_FUNC(sched_get_priority_max,
4157 HAVE_PRIOR_FUNCS=1,
4158 [AC_CHECK_LIB([posix4], sched_get_priority_max,
4159 [
4160 HAVE_PRIOR_FUNCS=1
4161 POSIX4_LINK=" -lposix4"
4162 ],
4163 )]
4164 )]
4165 )]
4166 )
4167
4168 if test "$HAVE_PRIOR_FUNCS" = 1; then
4169 AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
4170 else
4171 AC_MSG_WARN(Setting thread priority will not work)
4172 fi
4173
4174 AC_CHECK_FUNC(pthread_cancel,
4175 AC_DEFINE(HAVE_PTHREAD_CANCEL),
4176 AC_MSG_WARN([wxThread::Kill() will not work properly]))
4177
4178 dnl we don't use pthread_cleanup_push/pop() any more in the code, but I
4179 dnl the code here for now in case we need it again soon; otherwise it
4180 dnl should be removed in a couple of months (VZ in Sep 2003)
4181 dnl
4182 dnl AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push,
4183 dnl [
4184 dnl AC_TRY_COMPILE([#include <pthread.h>],
4185 dnl [
4186 dnl pthread_cleanup_push(NULL, NULL);
4187 dnl pthread_cleanup_pop(0);
4188 dnl ], [
4189 dnl wx_cv_func_pthread_cleanup_push=yes
4190 dnl ], [
4191 dnl wx_cv_func_pthread_cleanup_push=no
4192 dnl ])
4193 dnl ])
4194 dnl
4195 dnl if test "$wx_cv_func_pthread_cleanup_push" = "yes"; then
4196 dnl AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS)
4197 dnl fi
4198
4199 dnl mutexattr_t initialization is done in quite different ways on different
4200 dnl platforms, so check for a few things:
4201 dnl
4202 dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
4203 dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
4204 dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
4205 dnl defined, we do it by directly assigned
4206 dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
4207
4208 AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
4209 [
4210 AC_TRY_COMPILE([#include <pthread.h>],
4211 [
4212 pthread_mutexattr_t attr;
4213 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
4214 ], [
4215 wx_cv_type_pthread_mutexattr_t=yes
4216 ], [
4217 wx_cv_type_pthread_mutexattr_t=no
4218 ]
4219 )
4220 ])
4221
4222 if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
4223 AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
4224 else
4225 dnl don't despair, there may be another way to do it
4226 AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
4227 wx_cv_type_pthread_rec_mutex_init,
4228 [
4229 AC_TRY_COMPILE([#include <pthread.h>],
4230 [
4231 pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
4232 ], [
4233 wx_cv_type_pthread_rec_mutex_init=yes
4234 ], [
4235 wx_cv_type_pthread_rec_mutex_init=no
4236 ]
4237 )
4238 ])
4239 if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
4240 AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
4241 else
4242 dnl this may break code working elsewhere, so at least warn about it
4243 AC_MSG_WARN([wxMutex won't be recursive on this platform])
4244 fi
4245 fi
4246 fi
4247
4248 dnl from if !MSW
4249 else
4250 if test "$wxUSE_THREADS" = "yes" ; then
4251 case "${host}" in
4252 *-*-mingw32* )
4253 dnl check if the compiler accepts -mthreads
4254 AC_CACHE_CHECK([if compiler supports -mthreads],
4255 wx_cv_cflags_mthread,
4256 [
4257 CFLAGS_OLD="$CFLAGS"
4258 CFLAGS="$CFLAGS -mthreads"
4259 AC_TRY_COMPILE([], [],
4260 wx_cv_cflags_mthread=yes,
4261 wx_cv_cflags_mthread=no
4262 )
4263 ]
4264 )
4265
4266 if test "$wx_cv_cflags_mthread" = "yes"; then
4267 dnl it does, use it
4268 CXXFLAGS="$CXXFLAGS -mthreads"
4269 TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads"
4270 LDFLAGS="$LDFLAGS -mthreads"
4271 else
4272 dnl it doesn't
4273 CFLAGS="$CFLAGS_OLD"
4274 fi
4275 ;;
4276 *-pc-os2*emx )
4277 CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__"
4278 CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
4279 LDFLAGS="$LDFLAGS -Zmt"
4280 ;;
4281 esac
4282 fi
4283 fi
4284
4285 if test "$wxUSE_THREADS" = "yes"; then
4286 AC_DEFINE(wxUSE_THREADS)
4287
4288 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
4289 else
4290 dnl on some systems, _REENTRANT should be defined if we want to use any _r()
4291 dnl functions - add tests for other functions here as well
4292 if test "$ac_cv_func_strtok_r" = "yes"; then
4293 AC_MSG_CHECKING(if -D_REENTRANT is needed)
4294 if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
4295 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D_REENTRANT"
4296 AC_MSG_RESULT(yes)
4297 else
4298 AC_MSG_RESULT(no)
4299 fi
4300 fi
4301 fi
4302
4303 if test "$WXGTK20" = 1 ; then
4304 AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
4305 WXGTK12=1
4306 fi
4307
4308 if test "$WXGTK12" = 1 ; then
4309 AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
4310 fi
4311
4312 if test "$WXGTK127" = 1 ; then
4313 AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
4314 fi
4315
4316 if test "$WXGPE" = 1 ; then
4317 AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE)
4318 fi
4319
4320 WXDEBUG=
4321
4322 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
4323 WXDEBUG="-g"
4324 wxUSE_OPTIMISE=no
4325 fi
4326
4327 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
4328 wxUSE_DEBUG_INFO=yes
4329 WXDEBUG="-ggdb"
4330 fi
4331
4332 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
4333 AC_DEFINE(WXDEBUG)
4334 WXDEBUG_DEFINE="-D__WXDEBUG__"
4335 else
4336 if test "$wxUSE_GTK" = 1 ; then
4337 WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
4338 fi
4339 fi
4340
4341 if test "$wxUSE_MEM_TRACING" = "yes" ; then
4342 AC_DEFINE(wxUSE_MEMORY_TRACING)
4343 AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
4344 AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
4345 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
4346 fi
4347
4348 if test "$wxUSE_DMALLOC" = "yes" ; then
4349 DMALLOC_LIBS="-ldmalloc"
4350 fi
4351
4352 PROFILE=
4353 if test "$wxUSE_PROFILE" = "yes" ; then
4354 PROFILE=" -pg"
4355 fi
4356
4357 CODE_GEN_FLAGS=
4358 CODE_GEN_FLAGS_CXX=
4359 if test "$GCC" = "yes" ; then
4360 if test "$wxUSE_NO_RTTI" = "yes" ; then
4361 CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-rtti"
4362 fi
4363 if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
4364 CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-exceptions"
4365 fi
4366 if test "$wxUSE_PERMISSIVE" = "yes" ; then
4367 CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
4368 fi
4369
4370 dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
4371 dnl 3.0 overflow the table of contents on rs6000 as they create an entry
4372 dnl for each subroutine by default -- using the switch below only creates
4373 dnl one entry per file instead at the price of minor performance penalty
4374 dnl
4375 dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
4376 dnl without -ffunction-sections. No idea how long we'll need to maintain
4377 dnl this, or even the extent of gcc/wx version combinations affected, but
4378 dnl also as above, this 'fix' does not come without side effects.
4379 dnl
4380 dnl TODO: test for the gcc version here (how?)
4381 case "${host}" in
4382 powerpc*-*-aix* )
4383 CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
4384 ;;
4385 *-hppa* )
4386 CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
4387 ;;
4388 esac
4389 fi
4390
4391 OPTIMISE=
4392 if test "$wxUSE_OPTIMISE" = "no" ; then
4393 if test "$GCC" = yes ; then
4394 dnl use -O0 because compiling with it is faster than compiling with no
4395 dnl optimization options at all (at least with g++ 3.2)
4396 OPTIMISE="-O0"
4397 fi
4398 else
4399 if test "$GCC" = yes ; then
4400 OPTIMISE="-O2"
4401
4402 dnl VZ: does anybody know what does this do??
4403 case "${host}" in
4404 i586-*-*|i686-*-* )
4405 OPTIMISE="${OPTIMISE} "
4406 ;;
4407 esac
4408 else
4409 OPTIMISE="-O"
4410 fi
4411 fi
4412
4413 dnl ---------------------------------------------------------------------------
4414 dnl compatibility level
4415 dnl ---------------------------------------------------------------------------
4416
4417 if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then
4418 AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
4419
4420 WXWIN_COMPATIBILITY_2_4="yes"
4421 fi
4422
4423 if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then
4424 AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
4425 fi
4426
4427 dnl ---------------------------------------------------------------------------
4428 dnl the library may be built without GUI classes at all
4429 dnl ---------------------------------------------------------------------------
4430
4431 if test "$wxUSE_GUI" = "yes"; then
4432 AC_DEFINE(wxUSE_GUI)
4433
4434 dnl the things we always pull in the GUI version of the library:
4435 dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
4436 dnl library really can't be built without those)
4437 dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
4438 dnl almost any program and the first 2 are needed to show a message box
4439 dnl which want to be always able to do)
4440 dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
4441 dnl to compile without them (if the app doesn't do any drawing, it doesn't
4442 dnl need the dcs, pens, brushes, ...), this just can't be done now
4443 dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
4444 dnl 5. misc stuff: timers, settings, message box
4445 else
4446 AC_DEFINE(wxUSE_NOGUI)
4447 fi
4448
4449 dnl ---------------------------------------------------------------------------
4450 dnl Unix/Windows
4451 dnl ---------------------------------------------------------------------------
4452
4453 if test "$wxUSE_UNIX" = "yes"; then
4454 AC_DEFINE(wxUSE_UNIX)
4455 fi
4456
4457 dnl ------------------------------------------------------------------------
4458 dnl DLL support
4459 dnl ------------------------------------------------------------------------
4460
4461 dnl under MSW we always have LoadLibrary/GetProcAddress
4462 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
4463
4464 HAVE_DL_FUNCS=0
4465 HAVE_SHL_FUNCS=0
4466 if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then
4467 if test "$USE_DARWIN" = 1; then
4468 dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
4469 HAVE_DL_FUNCS=1
4470 else
4471 dnl the test is a bit complicated because we check for dlopen() both with
4472 dnl and without -ldl and we also try to find shl_load() if there is no
4473 dnl dlopen() on this system
4474 AC_CHECK_FUNCS(dlopen,
4475 [
4476 AC_DEFINE(HAVE_DLOPEN)
4477 HAVE_DL_FUNCS=1
4478 ],
4479 [
4480 AC_CHECK_LIB(dl, dlopen,
4481 [
4482 AC_DEFINE(HAVE_DLOPEN)
4483 HAVE_DL_FUNCS=1
4484 DL_LINK=" -ldl$DL_LINK"
4485 ],
4486 [
4487 AC_CHECK_FUNCS(shl_load,
4488 [
4489 AC_DEFINE(HAVE_SHL_LOAD)
4490 HAVE_SHL_FUNCS=1
4491 ],
4492 [
4493 AC_CHECK_LIB(shl_load, dld,
4494 [
4495 HAVE_SHL_FUNCS=1
4496 DL_LINK=" -ldld$DL_LINK"
4497 ])
4498 ])
4499 ])
4500 ])
4501
4502 dnl check also for dlerror()
4503 if test "$HAVE_DL_FUNCS" = 1; then
4504 AC_CHECK_FUNCS(dlerror,
4505 AC_DEFINE(HAVE_DLERROR),
4506 [
4507 AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))
4508 ]
4509 )
4510 fi
4511 fi
4512
4513 if test "$HAVE_DL_FUNCS" = 0; then
4514 if test "$HAVE_SHL_FUNCS" = 0; then
4515 if test "$USE_UNIX" = 1; then
4516 AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
4517 wxUSE_DYNAMIC_LOADER=no
4518 wxUSE_DYNLIB_CLASS=no
4519 else
4520 AC_MSG_WARN([Assuming wxLibrary class works on this platform])
4521 fi
4522 fi
4523 fi
4524 fi
4525 fi
4526
4527 if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then
4528 AC_DEFINE(wxUSE_DYNAMIC_LOADER)
4529 fi
4530 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
4531 AC_DEFINE(wxUSE_DYNLIB_CLASS)
4532 fi
4533
4534
4535 dnl ---------------------------------------------------------------------------
4536 dnl Verify consistency of plugins/monolithic/shared settings:
4537 dnl ---------------------------------------------------------------------------
4538
4539 if test "$wxUSE_PLUGINS" = "yes" ; then
4540 if test "$wxUSE_SHARED" = "no" ; then
4541 AC_MSG_WARN([plugins supported only in shared build, disabling])
4542 wxUSE_PLUGINS=no
4543 fi
4544 if test "$wxUSE_MONOLITHIC" = "yes" ; then
4545 AC_MSG_WARN([plugins not supported monolithic build, disabling])
4546 wxUSE_PLUGINS=no
4547 fi
4548 if test "$wxUSE_DYNLIB_CLASS" = "no" ; then
4549 AC_MSG_WARN([plugins require wxDynamicLibrary, disabling])
4550 wxUSE_PLUGINS=no
4551 fi
4552 if test "$wxUSE_PLUGINS" = "yes" ; then
4553 AC_DEFINE(wxUSE_PLUGINS)
4554 fi
4555 fi
4556
4557 dnl ---------------------------------------------------------------------------
4558 dnl Register non-GUI class options for makefiles and setup.h
4559 dnl ---------------------------------------------------------------------------
4560
4561 if test "$wxUSE_STL" = "yes"; then
4562 AC_DEFINE(wxUSE_STL)
4563 fi
4564
4565 if test "$wxUSE_APPLE_IEEE" = "yes"; then
4566 AC_DEFINE(wxUSE_APPLE_IEEE)
4567 fi
4568
4569 if test "$wxUSE_TIMER" = "yes"; then
4570 AC_DEFINE(wxUSE_TIMER)
4571 fi
4572
4573 WITH_PLUGIN_SDL=0
4574 if test "$wxUSE_SOUND" = "yes"; then
4575 dnl Unix implementation needs additional checks because audio support
4576 dnl comes in many favours:
4577 if test "$USE_UNIX" = "1" ; then
4578 AC_CHECK_HEADERS([sys/soundcard.h])
4579
4580 if test "$wxUSE_LIBSDL" != "no"; then
4581 AM_PATH_SDL([1.2.0],
4582 [
4583 EXTRALIBS_SDL="$SDL_LIBS"
4584 CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
4585 AC_DEFINE(wxUSE_LIBSDL)
4586 ],
4587 [wxUSE_LIBSDL="no"])
4588 if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then
4589 WITH_PLUGIN_SDL=1
4590 fi
4591 fi
4592 fi
4593
4594 AC_DEFINE(wxUSE_SOUND)
4595 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
4596 fi
4597
4598 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
4599 AC_DEFINE(wxUSE_CMDLINE_PARSER)
4600 fi
4601
4602 if test "$wxUSE_STOPWATCH" = "yes"; then
4603 AC_DEFINE(wxUSE_STOPWATCH)
4604 fi
4605
4606 if test "$wxUSE_DATETIME" = "yes"; then
4607 AC_DEFINE(wxUSE_DATETIME)
4608 fi
4609
4610 if test "$wxUSE_FILE" = "yes"; then
4611 AC_DEFINE(wxUSE_FILE)
4612 fi
4613
4614 if test "$wxUSE_FFILE" = "yes"; then
4615 AC_DEFINE(wxUSE_FFILE)
4616 fi
4617
4618 if test "$wxUSE_FILESYSTEM" = "yes"; then
4619 AC_DEFINE(wxUSE_FILESYSTEM)
4620 fi
4621
4622 if test "$wxUSE_FS_ZIP" = "yes"; then
4623 AC_DEFINE(wxUSE_FS_ZIP)
4624 fi
4625
4626 if test "$wxUSE_ZIPSTREAM" = "yes"; then
4627 AC_DEFINE(wxUSE_ZIPSTREAM)
4628 fi
4629
4630 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
4631 AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
4632 fi
4633
4634 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
4635 AC_DEFINE(wxUSE_SNGLINST_CHECKER)
4636 fi
4637
4638 if test "$wxUSE_BUSYINFO" = "yes"; then
4639 AC_DEFINE(wxUSE_BUSYINFO)
4640 fi
4641
4642 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
4643 AC_DEFINE(wxUSE_STD_IOSTREAM)
4644 fi
4645
4646 if test "$wxUSE_TEXTBUFFER" = "yes"; then
4647 AC_DEFINE(wxUSE_TEXTBUFFER)
4648 fi
4649
4650 if test "$wxUSE_TEXTFILE" = "yes"; then
4651 if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
4652 AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
4653 else
4654 AC_DEFINE(wxUSE_TEXTFILE)
4655 fi
4656 fi
4657
4658 if test "$wxUSE_CONFIG" = "yes" ; then
4659 if test "$wxUSE_TEXTFILE" != "yes"; then
4660 AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
4661 else
4662 AC_DEFINE(wxUSE_CONFIG)
4663 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
4664 fi
4665 fi
4666
4667 if test "$wxUSE_INTL" = "yes" ; then
4668 if test "$wxUSE_FILE" != "yes"; then
4669 AC_MSG_WARN(I18n code requires wxFile... disabled)
4670 else
4671 AC_DEFINE(wxUSE_INTL)
4672 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
4673 GUIDIST="$GUIDIST INTL_DIST"
4674 fi
4675 fi
4676
4677 if test "$wxUSE_LOG" = "yes"; then
4678 AC_DEFINE(wxUSE_LOG)
4679
4680 if test "$wxUSE_LOGGUI" = "yes"; then
4681 AC_DEFINE(wxUSE_LOGGUI)
4682 fi
4683
4684 if test "$wxUSE_LOGWINDOW" = "yes"; then
4685 AC_DEFINE(wxUSE_LOGWINDOW)
4686 fi
4687
4688 if test "$wxUSE_LOGDIALOG" = "yes"; then
4689 AC_DEFINE(wxUSE_LOG_DIALOG)
4690 fi
4691 fi
4692
4693 if test "$wxUSE_LONGLONG" = "yes"; then
4694 AC_DEFINE(wxUSE_LONGLONG)
4695 fi
4696
4697 if test "$wxUSE_GEOMETRY" = "yes"; then
4698 AC_DEFINE(wxUSE_GEOMETRY)
4699 fi
4700
4701 if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
4702 AC_DEFINE(wxUSE_DIALUP_MANAGER)
4703 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
4704 fi
4705
4706 if test "$wxUSE_STREAMS" = "yes" ; then
4707 AC_DEFINE(wxUSE_STREAMS)
4708 fi
4709
4710 dnl ---------------------------------------------------------------------------
4711 dnl time/date functions
4712 dnl ------------------------------------------------------------------------
4713
4714 if test "$wxUSE_DATETIME" = "yes"; then
4715 dnl check for strptime
4716 AC_CHECK_FUNCS(strptime)
4717
4718 dnl check for timezone variable
4719 dnl doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
4720 AC_CACHE_CHECK(for timezone variable in <time.h>,
4721 wx_cv_var_timezone,
4722 [
4723 AC_TRY_COMPILE(
4724 [
4725 #include <time.h>
4726 ],
4727 [
4728 int tz;
4729 tz = timezone;
4730 ],
4731 [
4732 wx_cv_var_timezone=timezone
4733 ],
4734 [
4735 AC_TRY_COMPILE(
4736 [
4737 #include <time.h>
4738 ],
4739 [
4740 int tz;
4741 tz = _timezone;
4742 ],
4743 [
4744 wx_cv_var_timezone=_timezone
4745 ],
4746 [
4747 AC_TRY_COMPILE(
4748 [
4749 #include <time.h>
4750 ],
4751 [
4752 int tz;
4753 tz = __timezone;
4754 ],
4755 [
4756 wx_cv_var_timezone=__timezone
4757 ],
4758 [
4759 if test "$USE_DOS" = 0 ; then
4760 AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
4761 fi
4762 ]
4763 )
4764 ]
4765 )
4766 ]
4767 )
4768 ]
4769 )
4770
4771 dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
4772 if test "x$wx_cv_var_timezone" != x ; then
4773 AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
4774 fi
4775
4776 dnl check for localtime (it's POSIX, but the check can do no harm...)
4777 AC_CHECK_FUNCS(localtime)
4778
4779 if test "$ac_cv_func_localtime" = "yes"; then
4780 AC_CACHE_CHECK(for tm_gmtoff in struct tm,
4781 wx_cv_struct_tm_has_gmtoff,
4782 [
4783 AC_TRY_COMPILE(
4784 [
4785 #include <time.h>
4786 ],
4787 [
4788 struct tm tm;
4789 tm.tm_gmtoff++;
4790 ],
4791 [
4792 wx_cv_struct_tm_has_gmtoff=yes
4793 ],
4794 wx_cv_struct_tm_has_gmtoff=no
4795 )
4796 ])
4797 fi
4798
4799 if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
4800 AC_DEFINE(WX_GMTOFF_IN_TM)
4801 fi
4802
4803 dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
4804 dnl function to be used for high resolution timers
4805 AC_CHECK_FUNCS(gettimeofday ftime, break)
4806
4807 if test "$ac_cv_func_gettimeofday" = "yes"; then
4808 AC_CACHE_CHECK([whether gettimeofday takes two arguments],
4809 wx_cv_func_gettimeofday_has_2_args,
4810 [
4811 dnl on some _really_ old systems it takes only 1 argument
4812 AC_LANG_SAVE
4813 AC_LANG_CPLUSPLUS
4814
4815 AC_TRY_COMPILE(
4816 [
4817 #include <sys/time.h>
4818 #include <unistd.h>
4819 ],
4820 [
4821 struct timeval tv;
4822 gettimeofday(&tv, NULL);
4823 ],
4824 wx_cv_func_gettimeofday_has_2_args=yes,
4825 AC_TRY_COMPILE(
4826 [
4827 #include <sys/time.h>
4828 #include <unistd.h>
4829 ],
4830 [
4831 struct timeval tv;
4832 gettimeofday(&tv);
4833 ],
4834 wx_cv_func_gettimeofday_has_2_args=no,
4835 [
4836 AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
4837 wx_cv_func_gettimeofday_has_2_args=unknown
4838 ]
4839 )
4840 )
4841 AC_LANG_RESTORE
4842 ])
4843
4844 if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
4845 AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
4846 fi
4847 fi
4848
4849 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
4850 fi
4851
4852 dnl ------------------------------------------------------------------------
4853 dnl wxSocket
4854 dnl ------------------------------------------------------------------------
4855
4856 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
4857 if test "$wxUSE_SOCKETS" = "yes"; then
4858 if test "$wxUSE_MGL" = "1"; then
4859 AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
4860 wxUSE_SOCKETS="no"
4861 fi
4862 fi
4863
4864 if test "$wxUSE_SOCKETS" = "yes"; then
4865 dnl under MSW we always have sockets
4866 if test "$TOOLKIT" != "MSW"; then
4867 dnl under Solaris and OS/2, socket functions live in -lsocket
4868 AC_CHECK_FUNC(socket,,
4869 [
4870 AC_CHECK_LIB(socket, socket,
4871 if test "$INET_LINK" != " -lsocket"; then
4872 INET_LINK="$INET_LINK -lsocket"
4873 fi,
4874 [
4875 AC_MSG_WARN([socket library not found - sockets will be disabled])
4876 wxUSE_SOCKETS=no
4877 ]
4878 )
4879 ]
4880 )
4881 fi
4882 fi
4883
4884 if test "$wxUSE_SOCKETS" = "yes" ; then
4885 dnl this test may be appropriate if building under cygwin
4886 dnl right now I'm assuming it also uses the winsock stuff
4887 dnl like mingw does.. -- RL
4888 if test "$TOOLKIT" != "MSW"; then
4889 dnl determine the type of third argument for getsockname
4890 dnl This test needs to be done in C++ mode since gsocket.cpp now
4891 dnl is C++ code and pointer cast that are possible even without
4892 dnl warning in C still fail in C++.
4893 AC_LANG_PUSH(C++)
4894 AC_CACHE_CHECK([what is the type of the third argument of getsockname],
4895 wx_cv_type_getsockname3,
4896 [
4897 AC_TRY_COMPILE(
4898 [
4899 #include <sys/types.h>
4900 #include <sys/socket.h>
4901 ],
4902 [
4903 socklen_t len;
4904 getsockname(0, 0, &len);
4905 ],
4906 wx_cv_type_getsockname3=socklen_t,
4907 [
4908 dnl the compiler will compile the version with size_t
4909 dnl even if the real type of the last parameter is int
4910 dnl but it should give at least a warning about
4911 dnl converting between incompatible pointer types, so
4912 dnl try to use it to get the correct behaviour at
4913 dnl least with gcc (otherwise we'd always use size_t)
4914 CFLAGS_OLD="$CFLAGS"
4915 if test "$GCC" = yes ; then
4916 CFLAGS="$CFLAGS -Werror"
4917 fi
4918
4919 AC_TRY_COMPILE(
4920 [
4921 #include <sys/types.h>
4922 #include <sys/socket.h>
4923 ],
4924 [
4925 size_t len;
4926 getsockname(0, 0, &len);
4927 ],
4928 wx_cv_type_getsockname3=size_t,
4929 AC_TRY_COMPILE(
4930 [
4931 #include <sys/types.h>
4932 #include <sys/socket.h>
4933 ],
4934 [
4935 int len;
4936 getsockname(0, 0, &len);
4937 ],
4938 wx_cv_type_getsockname3=int,
4939 wx_cv_type_getsockname3=unknown
4940 )
4941 )
4942
4943 CFLAGS="$CFLAGS_OLD"
4944 ]
4945 )
4946 ])
4947
4948 if test "$wx_cv_type_getsockname3" = "unknown"; then
4949 wxUSE_SOCKETS=no
4950 AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
4951 else
4952 AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
4953 fi
4954 AC_LANG_POP
4955 fi
4956 fi
4957
4958 if test "$wxUSE_SOCKETS" = "yes" ; then
4959 AC_DEFINE(wxUSE_SOCKETS)
4960 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
4961 fi
4962
4963 if test "$wxUSE_PROTOCOL" = "yes"; then
4964 if test "$wxUSE_SOCKETS" != "yes"; then
4965 AC_MSG_WARN(Protocol classes require sockets... disabled)
4966 wxUSE_PROTOCOL=no
4967 fi
4968 fi
4969
4970 if test "$wxUSE_PROTOCOL" = "yes"; then
4971 AC_DEFINE(wxUSE_PROTOCOL)
4972
4973 if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
4974 AC_DEFINE(wxUSE_PROTOCOL_HTTP)
4975 fi
4976 if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
4977 AC_DEFINE(wxUSE_PROTOCOL_FTP)
4978 fi
4979 if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
4980 AC_DEFINE(wxUSE_PROTOCOL_FILE)
4981 fi
4982 else
4983 if test "$wxUSE_FS_INET" = "yes"; then
4984 AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
4985 wxUSE_FS_INET="no"
4986 fi
4987 fi
4988
4989 if test "$wxUSE_URL" = "yes"; then
4990 if test "$wxUSE_PROTOCOL" != "yes"; then
4991 AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
4992 wxUSE_URL=no
4993 fi
4994 if test "$wxUSE_URL" = "yes"; then
4995 AC_DEFINE(wxUSE_URL)
4996 fi
4997 fi
4998
4999 if test "$wxUSE_FS_INET" = "yes"; then
5000 AC_DEFINE(wxUSE_FS_INET)
5001 fi
5002
5003 dnl ---------------------------------------------------------------------------
5004 dnl Joystick support
5005 dnl ---------------------------------------------------------------------------
5006
5007 if test "$wxUSE_GUI" = "yes"; then
5008
5009 if test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
5010 AC_MSG_WARN([Joystick not yet supported under Mac OS X... disabled])
5011 wxUSE_JOYSTICK=no
5012 fi
5013
5014 dnl under MSW we always have joystick support
5015 if test "$TOOLKIT" != "MSW"; then
5016 if test "$wxUSE_JOYSTICK" = "yes"; then
5017 dnl joystick support is only for Linux 2.1.x or greater
5018 AC_CHECK_HEADERS(linux/joystick.h)
5019 if test "$ac_cv_header_linux_joystick_h" != "yes"; then
5020 wxUSE_JOYSTICK=no
5021 AC_MSG_WARN(Joystick not supported by this system... disabled)
5022 fi
5023 fi
5024 fi
5025
5026 if test "$wxUSE_JOYSTICK" = "yes"; then
5027 AC_DEFINE(wxUSE_JOYSTICK)
5028 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
5029 fi
5030 fi
5031
5032
5033 dnl ---------------------------------------------------------------------------
5034 dnl String stuff
5035 dnl ---------------------------------------------------------------------------
5036
5037 if test "$wxUSE_FONTMAP" = "yes" ; then
5038 AC_DEFINE(wxUSE_FONTMAP)
5039 fi
5040
5041 if test "$wxUSE_UNICODE" = "yes" ; then
5042 AC_DEFINE(wxUSE_UNICODE)
5043
5044 if test "$USE_WIN32" != 1; then
5045 wxUSE_UNICODE_MSLU=no
5046 fi
5047
5048 if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
5049 AC_CHECK_LIB(unicows,main,
5050 [
5051 AC_DEFINE(wxUSE_UNICODE_MSLU)
5052 ],
5053 [
5054 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
5055 Applications will only run on Windows NT/2000/XP!])
5056 wxUSE_UNICODE_MSLU=no
5057 ])
5058 fi
5059 fi
5060
5061 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
5062 AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
5063 fi
5064
5065 dnl ----------------------------------------------------------------
5066 dnl Register PostScript options for makefiles and setup.h
5067 dnl ----------------------------------------------------------------
5068
5069 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
5070 AC_DEFINE(wxUSE_POSTSCRIPT)
5071 fi
5072
5073 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
5074
5075 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
5076
5077 dnl ---------------------------------------------------------------------------
5078 dnl big GUI components: MDI, doc/view, printing, help, ...
5079 dnl ---------------------------------------------------------------------------
5080
5081 if test "$wxUSE_CONSTRAINTS" = "yes"; then
5082 AC_DEFINE(wxUSE_CONSTRAINTS)
5083 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
5084 fi
5085
5086 if test "$wxUSE_MDI" = "yes"; then
5087 AC_DEFINE(wxUSE_MDI)
5088
5089 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
5090 AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
5091 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
5092 fi
5093 fi
5094
5095 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
5096 AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
5097 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
5098 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
5099 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
5100 fi
5101 fi
5102
5103 if test "$wxUSE_HELP" = "yes"; then
5104 AC_DEFINE(wxUSE_HELP)
5105 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
5106
5107 if test "$wxUSE_MSW" = 1; then
5108 if test "$wxUSE_MS_HTML_HELP" = "yes"; then
5109 AC_DEFINE(wxUSE_MS_HTML_HELP)
5110 fi
5111 fi
5112
5113 if test "$wxUSE_WXHTML_HELP" = "yes"; then
5114 if test "$wxUSE_HTML" = "yes"; then
5115 AC_DEFINE(wxUSE_WXHTML_HELP)
5116 else
5117 AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
5118 wxUSE_WXHTML_HELP=no
5119 fi
5120 fi
5121 fi
5122
5123 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
5124 if test "$wxUSE_CONSTRAINTS" != "yes"; then
5125 AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
5126 else
5127 AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
5128 fi
5129 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
5130 fi
5131
5132 if test "$wxUSE_PROLOGIO" = "yes" -o "$wxUSE_RESOURCES" = "yes"; then
5133 AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
5134 fi
5135
5136 dnl ---------------------------------------------------------------------------
5137 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
5138 dnl ---------------------------------------------------------------------------
5139
5140 dnl check for ole headers and disable a few features requiring it if not
5141 dnl present (earlier versions of mingw32 don't have ole2.h)
5142 if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \
5143 -o "$wxUSE_CLIPBOARD" = "yes" \
5144 -o "$wxUSE_OLE" = "yes" \
5145 -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
5146 AC_CHECK_HEADERS(ole2.h)
5147
5148 if test "$ac_cv_header_ole2_h" = "yes" ; then
5149 if test "$GCC" = yes ; then
5150 AC_LANG_SAVE
5151 AC_LANG_CPLUSPLUS
5152
5153 AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
5154 AC_TRY_COMPILE([#include <windows.h>
5155 #include <ole2.h>],
5156 [],
5157 [AC_MSG_RESULT(no)],
5158 [AC_MSG_RESULT(yes)
5159 CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"])
5160 AC_LANG_RESTORE
5161 LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
5162 if test "$wxUSE_OLE" = "yes" ; then
5163 AC_DEFINE(wxUSE_OLE)
5164 fi
5165 fi
5166
5167 dnl for OLE clipboard and dnd
5168 if test "$wxUSE_DATAOBJ" = "yes" ; then
5169 AC_DEFINE(wxUSE_DATAOBJ)
5170 fi
5171 else
5172 AC_MSG_WARN([Some features disabled because OLE headers not found])
5173
5174 wxUSE_CLIPBOARD=no
5175 wxUSE_DRAG_AND_DROP=no
5176 wxUSE_DATAOBJ=no
5177 wxUSE_OLE=no
5178 fi
5179
5180 if test "$wxUSE_METAFILE" = "yes"; then
5181 AC_DEFINE(wxUSE_METAFILE)
5182
5183 dnl this one should probably be made separately configurable
5184 AC_DEFINE(wxUSE_ENH_METAFILE)
5185 fi
5186 fi
5187
5188 if test "$wxUSE_IPC" = "yes"; then
5189 if test "$wxUSE_SOCKETS" != "yes"; then
5190 AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled)
5191 fi
5192
5193 AC_DEFINE(wxUSE_IPC)
5194 fi
5195
5196 if test "$wxUSE_CLIPBOARD" = "yes"; then
5197 if test "$wxUSE_MGL" = 1; then
5198 AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
5199 wxUSE_CLIPBOARD=no
5200 fi
5201
5202 if test "$wxUSE_CLIPBOARD" = "yes"; then
5203 AC_DEFINE(wxUSE_CLIPBOARD)
5204
5205 dnl required by clipboard code in configuration check
5206 AC_DEFINE(wxUSE_DATAOBJ)
5207 fi
5208 fi
5209
5210 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
5211 if test "$wxUSE_GTK" = 1; then
5212 if test "$WXGTK12" != 1; then
5213 AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
5214 wxUSE_DRAG_AND_DROP=no
5215 fi
5216 fi
5217
5218 if test "$wxUSE_MOTIF" = 1; then
5219 AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
5220 wxUSE_DRAG_AND_DROP=no
5221 fi
5222
5223 if test "$wxUSE_X11" = 1; then
5224 AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
5225 wxUSE_DRAG_AND_DROP=no
5226 fi
5227
5228 if test "$wxUSE_MGL" = 1; then
5229 AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
5230 wxUSE_DRAG_AND_DROP=no
5231 fi
5232
5233 if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
5234 AC_DEFINE(wxUSE_DRAG_AND_DROP)
5235 fi
5236
5237 fi
5238
5239 if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then
5240 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
5241 fi
5242
5243 if test "$wxUSE_SPLINES" = "yes" ; then
5244 AC_DEFINE(wxUSE_SPLINES)
5245 fi
5246
5247 dnl ---------------------------------------------------------------------------
5248 dnl GUI controls
5249 dnl ---------------------------------------------------------------------------
5250
5251 USES_CONTROLS=0
5252 if test "$wxUSE_CONTROLS" = "yes"; then
5253 USES_CONTROLS=1
5254 fi
5255
5256 if test "$wxUSE_ACCEL" = "yes"; then
5257 AC_DEFINE(wxUSE_ACCEL)
5258 USES_CONTROLS=1
5259 fi
5260
5261 if test "$wxUSE_BUTTON" = "yes"; then
5262 AC_DEFINE(wxUSE_BUTTON)
5263 USES_CONTROLS=1
5264 fi
5265
5266 if test "$wxUSE_BMPBUTTON" = "yes"; then
5267 AC_DEFINE(wxUSE_BMPBUTTON)
5268 USES_CONTROLS=1
5269 fi
5270
5271 if test "$wxUSE_CALCTRL" = "yes"; then
5272 AC_DEFINE(wxUSE_CALENDARCTRL)
5273 USES_CONTROLS=1
5274 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
5275 fi
5276
5277 if test "$wxUSE_CARET" = "yes"; then
5278 AC_DEFINE(wxUSE_CARET)
5279 USES_CONTROLS=1
5280 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
5281 fi
5282
5283 if test "$wxUSE_COMBOBOX" = "yes"; then
5284 AC_DEFINE(wxUSE_COMBOBOX)
5285 USES_CONTROLS=1
5286 fi
5287
5288 if test "$wxUSE_CHOICE" = "yes"; then
5289 AC_DEFINE(wxUSE_CHOICE)
5290 USES_CONTROLS=1
5291 fi
5292
5293 if test "$wxUSE_CHOICEBOOK" = "yes"; then
5294 AC_DEFINE(wxUSE_CHOICEBOOK)
5295 USES_CONTROLS=1
5296 fi
5297
5298 if test "$wxUSE_CHECKBOX" = "yes"; then
5299 AC_DEFINE(wxUSE_CHECKBOX)
5300 USES_CONTROLS=1
5301 fi
5302
5303 if test "$wxUSE_CHECKLST" = "yes"; then
5304 AC_DEFINE(wxUSE_CHECKLISTBOX)
5305 USES_CONTROLS=1
5306 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
5307 fi
5308
5309 if test "$wxUSE_DISPLAY" = "yes"; then
5310 AC_DEFINE(wxUSE_DISPLAY)
5311 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display"
5312 fi
5313
5314 if test "$wxUSE_GAUGE" = "yes"; then
5315 AC_DEFINE(wxUSE_GAUGE)
5316 USES_CONTROLS=1
5317 fi
5318
5319 if test "$wxUSE_GRID" = "yes"; then
5320 AC_DEFINE(wxUSE_GRID)
5321 USES_CONTROLS=1
5322 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
5323 fi
5324
5325 if test "$wxUSE_IMAGLIST" = "yes"; then
5326 AC_DEFINE(wxUSE_IMAGLIST)
5327 fi
5328
5329 if test "$wxUSE_LISTBOOK" = "yes"; then
5330 AC_DEFINE(wxUSE_LISTBOOK)
5331 USES_CONTROLS=1
5332 fi
5333
5334 if test "$wxUSE_LISTBOX" = "yes"; then
5335 AC_DEFINE(wxUSE_LISTBOX)
5336 USES_CONTROLS=1
5337 fi
5338
5339 if test "$wxUSE_LISTCTRL" = "yes"; then
5340 if test "$wxUSE_IMAGLIST" = "yes"; then
5341 AC_DEFINE(wxUSE_LISTCTRL)
5342 USES_CONTROLS=1
5343 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
5344 else
5345 AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
5346 fi
5347 fi
5348
5349 if test "$wxUSE_NOTEBOOK" = "yes"; then
5350 AC_DEFINE(wxUSE_NOTEBOOK)
5351 USES_CONTROLS=1
5352 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
5353 fi
5354
5355 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
5356 dnl AC_DEFINE(wxUSE_PROPSHEET)
5357 dnl USES_CONTROLS=1
5358 dnl SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
5359 dnl fi
5360
5361 if test "$wxUSE_RADIOBOX" = "yes"; then
5362 AC_DEFINE(wxUSE_RADIOBOX)
5363 USES_CONTROLS=1
5364 fi
5365
5366 if test "$wxUSE_RADIOBTN" = "yes"; then
5367 AC_DEFINE(wxUSE_RADIOBTN)
5368 USES_CONTROLS=1
5369 fi
5370
5371 if test "$wxUSE_SASH" = "yes"; then
5372 AC_DEFINE(wxUSE_SASH)
5373 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
5374 fi
5375
5376 if test "$wxUSE_SCROLLBAR" = "yes"; then
5377 AC_DEFINE(wxUSE_SCROLLBAR)
5378 USES_CONTROLS=1
5379 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
5380 fi
5381
5382 if test "$wxUSE_SLIDER" = "yes"; then
5383 AC_DEFINE(wxUSE_SLIDER)
5384 USES_CONTROLS=1
5385 fi
5386
5387 if test "$wxUSE_SPINBTN" = "yes"; then
5388 AC_DEFINE(wxUSE_SPINBTN)
5389 USES_CONTROLS=1
5390 fi
5391
5392 if test "$wxUSE_SPINCTRL" = "yes"; then
5393 AC_DEFINE(wxUSE_SPINCTRL)
5394 USES_CONTROLS=1
5395 fi
5396
5397 if test "$wxUSE_SPLITTER" = "yes"; then
5398 AC_DEFINE(wxUSE_SPLITTER)
5399 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
5400 fi
5401
5402 if test "$wxUSE_STATBMP" = "yes"; then
5403 AC_DEFINE(wxUSE_STATBMP)
5404 USES_CONTROLS=1
5405 fi
5406
5407 if test "$wxUSE_STATBOX" = "yes"; then
5408 AC_DEFINE(wxUSE_STATBOX)
5409 USES_CONTROLS=1
5410 fi
5411
5412 if test "$wxUSE_STATTEXT" = "yes"; then
5413 AC_DEFINE(wxUSE_STATTEXT)
5414 USES_CONTROLS=1
5415 fi
5416
5417 if test "$wxUSE_STATLINE" = "yes"; then
5418 AC_DEFINE(wxUSE_STATLINE)
5419 USES_CONTROLS=1
5420 fi
5421
5422 if test "$wxUSE_STATUSBAR" = "yes"; then
5423 AC_DEFINE(wxUSE_STATUSBAR)
5424 USES_CONTROLS=1
5425
5426 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
5427 fi
5428
5429 if test "$wxUSE_TABDIALOG" = "yes"; then
5430 AC_DEFINE(wxUSE_TAB_DIALOG)
5431 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
5432 fi
5433
5434 if test "$wxUSE_TEXTCTRL" = "yes"; then
5435 AC_DEFINE(wxUSE_TEXTCTRL)
5436 USES_CONTROLS=1
5437 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
5438 fi
5439
5440 if test "$wxUSE_TOGGLEBTN" = "yes"; then
5441 if test "$wxUSE_COCOA" = 1 ; then
5442 AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
5443 wxUSE_TOGGLEBTN=no
5444 else
5445 if test "$wxUSE_PM" = 1; then
5446 AC_MSG_WARN([Toggle button not yet supported under PM... disabled])
5447 wxUSE_TOGGLEBTN=no
5448 fi
5449 fi
5450 if test "$wxUSE_UNIVERSAL" = "yes"; then
5451 AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled])
5452 wxUSE_TOGGLEBTN=no
5453 fi
5454
5455 if test "$wxUSE_TOGGLEBTN" = "yes"; then
5456 AC_DEFINE(wxUSE_TOGGLEBTN)
5457 USES_CONTROLS=1
5458 fi
5459 fi
5460
5461 if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
5462 AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
5463 wxUSE_TOOLBAR="yes"
5464 USES_CONTROLS=1
5465 fi
5466
5467 if test "$wxUSE_TOOLBAR" = "yes"; then
5468 AC_DEFINE(wxUSE_TOOLBAR)
5469 USES_CONTROLS=1
5470
5471 dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
5472 if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
5473 wxUSE_TOOLBAR_NATIVE="yes"
5474 fi
5475
5476 if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
5477 AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
5478 USES_CONTROLS=1
5479 fi
5480
5481 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
5482 fi
5483
5484 if test "$wxUSE_TOOLTIPS" = "yes"; then
5485 if test "$wxUSE_MOTIF" = 1; then
5486 AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
5487 else
5488 if test "$wxUSE_UNIVERSAL" = "yes"; then
5489 AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
5490 else
5491 AC_DEFINE(wxUSE_TOOLTIPS)
5492 fi
5493 fi
5494 fi
5495
5496 if test "$wxUSE_TREECTRL" = "yes"; then
5497 if test "$wxUSE_IMAGLIST" = "yes"; then
5498 AC_DEFINE(wxUSE_TREECTRL)
5499 USES_CONTROLS=1
5500 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
5501 else
5502 AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
5503 fi
5504 fi
5505
5506 if test "$wxUSE_POPUPWIN" = "yes"; then
5507 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
5508 AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
5509 else
5510 if test "$wxUSE_PM" = 1; then
5511 AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
5512 else
5513 AC_DEFINE(wxUSE_POPUPWIN)
5514
5515 USES_CONTROLS=1
5516 fi
5517 fi
5518 fi
5519
5520 if test "$wxUSE_TIPWINDOW" = "yes"; then
5521 if test "$wxUSE_PM" = 1; then
5522 AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
5523 else
5524 AC_DEFINE(wxUSE_TIPWINDOW)
5525 fi
5526 fi
5527
5528 if test "$USES_CONTROLS" = 1; then
5529 AC_DEFINE(wxUSE_CONTROLS)
5530 fi
5531
5532 dnl ---------------------------------------------------------------------------
5533 dnl misc options
5534 dnl ---------------------------------------------------------------------------
5535
5536 dnl please keep the settings below in alphabetical order
5537 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
5538 AC_DEFINE(wxUSE_ACCESSIBILITY)
5539 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
5540 fi
5541
5542 if test "$wxUSE_DRAGIMAGE" = "yes"; then
5543 AC_DEFINE(wxUSE_DRAGIMAGE)
5544 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
5545 fi
5546
5547 if test "$wxUSE_EXCEPTIONS" = "yes"; then
5548 if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
5549 AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions])
5550 else
5551 AC_DEFINE(wxUSE_EXCEPTIONS)
5552 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except"
5553 fi
5554 fi
5555
5556 USE_HTML=0
5557 if test "$wxUSE_HTML" = "yes"; then
5558 AC_DEFINE(wxUSE_HTML)
5559 USE_HTML=1
5560 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
5561 if test "$wxUSE_MAC" = 1; then
5562 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl"
5563 fi
5564 fi
5565 if test "$wxUSE_WEBKIT" = "yes"; then
5566 if test "$wxUSE_MAC" = 1; then
5567 old_CPPFLAGS="$CPPFLAGS"
5568 CPPFLAGS="$CPPFLAGS -x objective-c++"
5569 AC_CHECK_HEADER([WebKit/HIWebView.h],
5570 [
5571 AC_DEFINE(wxUSE_WEBKIT)
5572 WEBKIT_LINK="-framework WebKit"
5573 ],
5574 [
5575 AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
5576 wxUSE_WEBKIT=no
5577 ],
5578 [#include <Carbon/Carbon.h>])
5579 CPPFLAGS="$old_CPPFLAGS"
5580 elif test "$wxUSE_COCOA" = 1; then
5581 AC_DEFINE(wxUSE_WEBKIT)
5582 else
5583 wxUSE_WEBKIT=no
5584 fi
5585 fi
5586
5587 USE_XRC=0
5588 if test "$wxUSE_XRC" = "yes"; then
5589 if test "$wxUSE_XML" != "yes"; then
5590 AC_MSG_WARN([XML library not built, XRC resources disabled])
5591 wxUSE_XRC=no
5592 else
5593 AC_DEFINE(wxUSE_XRC)
5594 USE_XRC=1
5595 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
5596 fi
5597 fi
5598
5599 if test "$wxUSE_MENUS" = "yes"; then
5600 AC_DEFINE(wxUSE_MENUS)
5601 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
5602 fi
5603
5604 if test "$wxUSE_METAFILE" = "yes"; then
5605 AC_DEFINE(wxUSE_METAFILE)
5606 fi
5607
5608 if test "$wxUSE_MIMETYPE" = "yes"; then
5609 AC_DEFINE(wxUSE_MIMETYPE)
5610 fi
5611
5612 if test "$wxUSE_MINIFRAME" = "yes"; then
5613 AC_DEFINE(wxUSE_MINIFRAME)
5614 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
5615 fi
5616
5617 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
5618 AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
5619 if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
5620 "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
5621 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
5622 fi
5623 fi
5624
5625
5626 if test "$wxUSE_VALIDATORS" = "yes"; then
5627 AC_DEFINE(wxUSE_VALIDATORS)
5628 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
5629 fi
5630
5631 if test "$wxUSE_PALETTE" = "yes" ; then
5632 AC_DEFINE(wxUSE_PALETTE)
5633 fi
5634
5635 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
5636 dnl Must be done this late because -lunicows must be before all the other libs
5637 LIBS=" -lunicows $LIBS"
5638 fi
5639
5640 dnl ---------------------------------------------------------------------------
5641 dnl wxImage options
5642 dnl ---------------------------------------------------------------------------
5643
5644 if test "$wxUSE_IMAGE" = "yes" ; then
5645 AC_DEFINE(wxUSE_IMAGE)
5646
5647 if test "$wxUSE_GIF" = "yes" ; then
5648 AC_DEFINE(wxUSE_GIF)
5649 fi
5650
5651 if test "$wxUSE_PCX" = "yes" ; then
5652 AC_DEFINE(wxUSE_PCX)
5653 fi
5654
5655 if test "$wxUSE_IFF" = "yes" ; then
5656 AC_DEFINE(wxUSE_IFF)
5657 fi
5658
5659 if test "$wxUSE_PNM" = "yes" ; then
5660 AC_DEFINE(wxUSE_PNM)
5661 fi
5662
5663 if test "$wxUSE_XPM" = "yes" ; then
5664 AC_DEFINE(wxUSE_XPM)
5665 fi
5666
5667 if test "$wxUSE_ICO_CUR" = "yes" ; then
5668 AC_DEFINE(wxUSE_ICO_CUR)
5669 fi
5670 fi
5671
5672 dnl ---------------------------------------------------------------------------
5673 dnl common dialogs
5674 dnl ---------------------------------------------------------------------------
5675
5676 if test "$wxUSE_CHOICEDLG" = "yes"; then
5677 AC_DEFINE(wxUSE_CHOICEDLG)
5678 fi
5679
5680 if test "$wxUSE_COLOURDLG" = "yes"; then
5681 AC_DEFINE(wxUSE_COLOURDLG)
5682 fi
5683
5684 if test "$wxUSE_FILEDLG" = "yes"; then
5685 AC_DEFINE(wxUSE_FILEDLG)
5686 fi
5687
5688 if test "$wxUSE_FINDREPLDLG" = "yes"; then
5689 AC_DEFINE(wxUSE_FINDREPLDLG)
5690 fi
5691
5692 if test "$wxUSE_FONTDLG" = "yes"; then
5693 AC_DEFINE(wxUSE_FONTDLG)
5694 fi
5695
5696 if test "$wxUSE_DIRDLG" = "yes"; then
5697 if test "$wxUSE_TREECTRL" != "yes"; then
5698 AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
5699 else
5700 AC_DEFINE(wxUSE_DIRDLG)
5701 fi
5702 fi
5703
5704 if test "$wxUSE_MSGDLG" = "yes"; then
5705 AC_DEFINE(wxUSE_MSGDLG)
5706 fi
5707
5708 if test "$wxUSE_NUMBERDLG" = "yes"; then
5709 AC_DEFINE(wxUSE_NUMBERDLG)
5710 fi
5711
5712 if test "$wxUSE_PROGRESSDLG" = "yes"; then
5713 if test "$wxUSE_CONSTRAINTS" != "yes"; then
5714 AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
5715 else
5716 AC_DEFINE(wxUSE_PROGRESSDLG)
5717 fi
5718 fi
5719
5720 if test "$wxUSE_SPLASH" = "yes"; then
5721 AC_DEFINE(wxUSE_SPLASH)
5722 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash"
5723 fi
5724
5725 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
5726 if test "$wxUSE_CONSTRAINTS" != "yes"; then
5727 AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
5728 else
5729 AC_DEFINE(wxUSE_STARTUP_TIPS)
5730 fi
5731 fi
5732
5733 if test "$wxUSE_TEXTDLG" = "yes"; then
5734 AC_DEFINE(wxUSE_TEXTDLG)
5735 fi
5736
5737 if test "$wxUSE_WIZARDDLG" = "yes"; then
5738 AC_DEFINE(wxUSE_WIZARDDLG)
5739 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
5740 fi
5741
5742 dnl ---------------------------------------------------------------------------
5743 dnl get the string with OS info - used by wxGetOsDescription()
5744 dnl ---------------------------------------------------------------------------
5745
5746 if test "$cross_compiling" = "yes"; then
5747 dnl Use best guess from host as we can't use uname when cross compiling
5748 OSINFO="\"$host\""
5749 else
5750 dnl attualy work out OS version
5751 OSINFO=`uname -s -r -m`
5752 OSINFO="\"$OSINFO\""
5753 fi
5754
5755 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
5756
5757 dnl ---------------------------------------------------------------------------
5758 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
5759 dnl ---------------------------------------------------------------------------
5760
5761 if test "x$prefix" != "xNONE"; then
5762 wxPREFIX=$prefix
5763 else
5764 wxPREFIX=$ac_default_prefix
5765 fi
5766
5767 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
5768
5769
5770 dnl ---------------------------------------------------------------------------
5771 dnl define variables with all built libraries for wx-config
5772 dnl ---------------------------------------------------------------------------
5773
5774 CORE_BASE_LIBS="net base"
5775 CORE_GUI_LIBS="adv core"
5776
5777 if test "$wxUSE_XML" = "yes" ; then
5778 CORE_BASE_LIBS="xml $CORE_BASE_LIBS"
5779 fi
5780 if test "$wxUSE_ODBC" != "no" ; then
5781 CORE_BASE_LIBS="odbc $CORE_BASE_LIBS"
5782 CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS"
5783 fi
5784 if test "$wxUSE_HTML" = "yes" ; then
5785 CORE_GUI_LIBS="html $CORE_GUI_LIBS"
5786 fi
5787 if test "$wxUSE_XRC" = "yes" ; then
5788 CORE_GUI_LIBS="xrc $CORE_GUI_LIBS"
5789 fi
5790
5791 if test "$wxUSE_GUI" != "yes"; then
5792 CORE_GUI_LIBS=""
5793 fi
5794
5795 AC_SUBST(CORE_BASE_LIBS)
5796 AC_SUBST(CORE_GUI_LIBS)
5797
5798
5799 dnl ---------------------------------------------------------------------------
5800 dnl Output the makefiles and such from the results found above
5801 dnl ---------------------------------------------------------------------------
5802
5803 dnl all additional libraries (except wxWidgets itself) we link with
5804
5805 dnl note that we always link with -lm except for Mac OS X
5806 dnl extended.c uses floor() and is always linked in
5807
5808 if test "$wxUSE_MAC" = 1 ; then
5809 if test "$wxUSE_SOUND" = "yes"; then
5810 LDFLAGS="$LDFLAGS -framework QuickTime"
5811 fi
5812 if test "$USE_DARWIN" = 1; then
5813 LDFLAGS="$LDFLAGS -framework IOKit"
5814 fi
5815 LDFLAGS="$LDFLAGS -framework Carbon -framework Cocoa -framework System"
5816 fi
5817 if test "$wxUSE_COCOA" = 1 ; then
5818 LDFLAGS="$LDFLAGS -framework Cocoa"
5819 fi
5820
5821 dnl FIXME: should this be covered by the conditional above
5822 dnl given the -lm comment there? Or should that comment (and
5823 dnl this one) be removed.. [ 7 Nov 2001 ]
5824
5825 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
5826
5827 dnl Only add the -lm library if floating point functions cannot be used
5828 dnl without it. This check is important on cygwin because of the bizarre
5829 dnl way that they have organized functions into libraries. On cygwin, both
5830 dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a. This
5831 dnl means that
5832 dnl 1) linking with -lm is not necessary, and
5833 dnl 2) linking with -lm is dangerous if the order of libraries is wrong
5834 dnl In particular, if you compile any program with -mno-cygwin and link with
5835 dnl -lm, it will crash instantly when it is run. This happens because the
5836 dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
5837 dnl the ___main function instead of allowing it to be defined by
5838 dnl /usr/lib/mingw/libmingw32.a as it should be.
5839 dnl
5840 dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
5841 dnl
5842 dnl Just check a few floating point functions. If they are all found without
5843 dnl -lm, then we must not need -lm.
5844 have_cos=0
5845 have_floor=0
5846 AC_CHECK_FUNCS(cos, have_cos=1)
5847 AC_CHECK_FUNCS(floor, have_floor=1)
5848 AC_MSG_CHECKING(if floating point functions link without -lm)
5849 if test "$have_cos" = 1 -a "$have_floor" = 1; then
5850 AC_MSG_RESULT(yes)
5851 else
5852 AC_MSG_RESULT(no)
5853 LIBS="$LIBS -lm"
5854 # use different functions to avoid configure caching
5855 have_sin=0
5856 have_ceil=0
5857 AC_CHECK_FUNCS(sin, have_sin=1)
5858 AC_CHECK_FUNCS(ceil, have_ceil=1)
5859 AC_MSG_CHECKING(if floating point functions link with -lm)
5860 if test "$have_sin" = 1 -a "$have_ceil" = 1; then
5861 AC_MSG_RESULT(yes)
5862 else
5863 AC_MSG_RESULT(no)
5864 # not sure we should warn the user, crash, etc.
5865 fi
5866 fi
5867
5868 if test "$wxUSE_GUI" = "yes"; then
5869
5870 dnl TODO add checks that these samples will really compile (i.e. all the
5871 dnl library features they need are present)
5872
5873 dnl TODO some samples are never built so far:
5874 dnl ipc, mfc, nativdlg, oleauto, ownerdrw
5875 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \
5876 drawing dynamic erase event exec font image \
5877 minimal propsize rotate shaped widgets render"
5878
5879 if test "$wxUSE_MONOLITHIC" != "yes"; then
5880 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
5881 fi
5882 else
5883 SAMPLES_SUBDIRS="console"
5884 fi
5885
5886
5887 dnl all -I options we must pass to the compiler
5888 dnl
5889 dnl note that the order is somewhat important: wxWidgets headers should
5890 dnl come first and the one with setup.h should be before $(top_srcdir)/include
5891 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
5892 dnl CodeWarrior):
5893 INCLUDES="-I\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
5894 -I\${top_srcdir}/include $TOOLKIT_INCLUDE"
5895
5896 dnl C/C++ compiler options used to compile wxWidgets
5897 if test "$GXX" = yes ; then
5898 dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
5899 CXXWARNINGS="-Wall"
5900 dnl should enable this one day...
5901 dnl CXXWARNINGS="-Wall -Werror"
5902 fi
5903
5904 EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
5905
5906 dnl remove the extra white space from the cc/c++/ld options
5907 CPPFLAGS=`echo $WXDEBUG_DEFINE $INCLUDES $CPPFLAGS`
5908 CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS`
5909 CXXFLAGS=`echo $CODE_GEN_FLAGS $CODE_GEN_FLAGS_CXX $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS`
5910
5911
5912 LIBS=`echo $LIBS`
5913 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
5914 EXTRALIBS_XML="$EXPAT_LINK"
5915 EXTRALIBS_HTML="$MSPACK_LINK"
5916 EXTRALIBS_ODBC="$ODBC_LINK"
5917 if test "$wxUSE_GUI" = "yes"; then
5918 EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK`
5919 fi
5920 if test "$wxUSE_OPENGL" = "yes"; then
5921 EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
5922 fi
5923
5924 LDFLAGS="$LDFLAGS $PROFILE"
5925
5926 dnl wxGTK does not need TOOLKIT includes in wx-config
5927 if test "$wxUSE_GTK" = 1; then
5928 WXCONFIG_INCLUDE=
5929 else
5930 WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE"
5931 fi
5932
5933 WXCONFIG_EXTRALIBS="$LIBS"
5934
5935 dnl wx-config must output builtin 3rd party libs in --libs in static build:
5936 if test "$wxUSE_REGEX" = "builtin" ; then
5937 wxconfig_3rdparty="$wxconfig_3rdparty regex${lib_unicode_suffix}"
5938 fi
5939 if test "$wxUSE_EXPAT" = "builtin" ; then
5940 wxconfig_3rdparty="$wxconfig_3rdparty expat"
5941 fi
5942 if test "$wxUSE_ODBC" = "builtin" ; then
5943 wxconfig_3rdparty="$wxconfig_3rdparty odbc"
5944 fi
5945 if test "$wxUSE_LIBTIFF" = "builtin" ; then
5946 wxconfig_3rdparty="$wxconfig_3rdparty tiff"
5947 fi
5948 if test "$wxUSE_LIBJPEG" = "builtin" ; then
5949 wxconfig_3rdparty="$wxconfig_3rdparty jpeg"
5950 fi
5951 if test "$wxUSE_LIBPNG" = "builtin" ; then
5952 wxconfig_3rdparty="$wxconfig_3rdparty png"
5953 fi
5954 if test "$wxUSE_ZLIB" = "builtin" ; then
5955 wxconfig_3rdparty="$wxconfig_3rdparty zlib"
5956 fi
5957 if test "$wxUSE_ODBC" = "builtin" ; then
5958 wxconfig_3rdparty="$wxconfig_3rdparty odbc"
5959 fi
5960
5961 for i in $wxconfig_3rdparty ; do
5962 WXCONFIG_EXTRALIBS="$WXCONFIG_EXTRALIBS -lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX}"
5963 done
5964
5965
5966 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
5967 WXUNIV=1
5968 else
5969 WXUNIV=0
5970 fi
5971
5972 AC_SUBST(wxUSE_ZLIB)
5973 AC_SUBST(wxUSE_REGEX)
5974 AC_SUBST(wxUSE_EXPAT)
5975 AC_SUBST(wxUSE_ODBC)
5976 AC_SUBST(wxUSE_LIBJPEG)
5977 AC_SUBST(wxUSE_LIBPNG)
5978 AC_SUBST(wxUSE_LIBTIFF)
5979
5980 if test $wxUSE_MONOLITHIC = "yes" ; then
5981 MONOLITHIC=1
5982 else
5983 MONOLITHIC=0
5984 fi
5985
5986 if test $wxUSE_PLUGINS = "yes" ; then
5987 USE_PLUGINS=1
5988 else
5989 USE_PLUGINS=0
5990 fi
5991
5992 if test $wxUSE_ODBC != "no" ; then
5993 USE_ODBC=1
5994 else
5995 USE_ODBC=0
5996 fi
5997
5998 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
5999 OFFICIAL_BUILD=1
6000 else
6001 OFFICIAL_BUILD=0
6002 fi
6003
6004 AC_SUBST(VENDOR)
6005 AC_SUBST(OFFICIAL_BUILD)
6006 AC_SUBST(WX_FLAVOUR)
6007 AC_SUBST(WX_LIB_FLAVOUR)
6008
6009 AC_SUBST(WXUNIV)
6010 AC_SUBST(MONOLITHIC)
6011 AC_SUBST(USE_PLUGINS)
6012 AC_SUBST(LIBS)
6013 AC_SUBST(EXTRALIBS)
6014 AC_SUBST(EXTRALIBS_XML)
6015 AC_SUBST(EXTRALIBS_HTML)
6016 AC_SUBST(EXTRALIBS_ODBC)
6017 AC_SUBST(EXTRALIBS_GUI)
6018 AC_SUBST(EXTRALIBS_OPENGL)
6019 AC_SUBST(EXTRALIBS_SDL)
6020 AC_SUBST(WITH_PLUGIN_SDL)
6021 AC_SUBST(UNICODE)
6022 AC_SUBST(BUILD)
6023 AC_SUBST(DEBUG_INFO)
6024 AC_SUBST(DEBUG_FLAG)
6025 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"`
6026 AC_SUBST(TOOLKIT_LOWERCASE)
6027 AC_SUBST(TOOLKIT_VERSION)
6028 AC_SUBST(SAMPLES_RPATH_FLAG)
6029 AC_SUBST(SAMPLES_RPATH_POSTLINK)
6030 AC_SUBST(HOST_SUFFIX)
6031 AC_SUBST(CPPUNIT_CFLAGS)
6032 AC_SUBST(CPPUNIT_LIBS)
6033
6034 case "$TOOLKIT" in
6035 GTK)
6036 TOOLKIT_USER="GTK+"
6037 if test "$WXGTK20" = 1; then
6038 TOOLKIT_USER="$TOOLKIT_USER 2"
6039 fi
6040 ;;
6041
6042 *)
6043 TOOLKIT_USER=$TOOLKIT_LOWERCASE
6044 ;;
6045 esac
6046
6047 AC_BAKEFILE
6048
6049 if test "$wxUSE_SHARED" = "yes"; then
6050
6051 dnl We get the shared build linker from bakefile, since it
6052 dnl moved all the logic for this out of this file and into
6053 dnl its own macro. But it can't decide on whether to return
6054 dnl us $(VAR), ${VAR}, or the present expansion of VAR.
6055 dnl So normalise and expand everything here now, because its
6056 dnl not going to change inside wx-config anyway.
6057 sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
6058 EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
6059
6060 else
6061
6062 dnl No bakefile support for static builds, but this should be ok for most.
6063 EXE_LINKER="$CXX -o"
6064
6065 fi
6066
6067 GCC_PRAGMA_FLAGS=""
6068 dnl Find out if we have to define NO_GCC_PRAGMA and WX_PRECOMP:
6069 if test $GCC_PCH = 1 ; then
6070 GCC_PRAGMA_FLAGS="-DWX_PRECOMP -DNO_GCC_PRAGMA"
6071 else
6072 case "${host}" in
6073 powerpc-*-darwin* )
6074 dnl Some Apple's GCC version are broken and can't handle the
6075 dnl pragmas:
6076 GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
6077 ;;
6078 *-*-mingw32* )
6079 dnl MinGW GCC versions >= 3.2 have problems with
6080 dnl static member of classes derived from templates
6081 dnl in combination with #pragma interface/implementation
6082 dnl (the test case uses 4 files)
6083 dnl ... and with exceptions handling (undefined symbols needed
6084 dnl to correctly calls dtors when unwinding) as well
6085 if test "$wxUSE_STL" = "yes" -o \
6086 "$wxUSE_NO_EXCEPTIONS" != "yes" -o \
6087 "$wxUSE_NO_RTTI" != "yes"; then
6088 AC_MSG_CHECKING([if this MinGW version needs -DNO_GCC_PRAGMA])
6089 AC_TRY_COMPILE([],
6090 [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
6091 #error "Not GCC 3.2 or greater"
6092 #endif
6093 ],
6094 [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
6095 AC_MSG_RESULT([yes])],
6096 [AC_MSG_RESULT([no])])
6097 fi
6098 ;;
6099 esac
6100 fi
6101 CPPFLAGS="$GCC_PRAGMA_FLAGS $CPPFLAGS"
6102
6103
6104 dnl for convenience, sort the samples in alphabetical order
6105 dnl
6106 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
6107 dnl in this list - hence uniq. But normally, this shouldn't be needed!
6108 dnl
6109 dnl Unfortunately, there is a bug in OS/2's tr, such that
6110 dnl tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
6111 dnl only removes the Unix-like part of the introduced line break.
6112 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
6113
6114 dnl subtle bakefile goop.
6115 dnl Used in wx-config now too, as its STATIC_FLAG with different makeup.
6116 dnl I wish we would have called it something less likely to clash with
6117 dnl things though.
6118 AC_SUBST(SHARED)
6119
6120 dnl global options
6121 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
6122 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
6123
6124 dnl debugging options
6125 AC_SUBST(WXDEBUG_DEFINE)
6126
6127 dnl toolkit options
6128 AC_SUBST(USE_GUI)
6129 AC_SUBST(AFMINSTALL)
6130 AC_SUBST(WIN32INSTALL)
6131 AC_SUBST(TOOLKIT)
6132 AC_SUBST(TOOLKIT_DIR)
6133 AC_SUBST(TOOLCHAIN_NAME)
6134 AC_SUBST(TOOLCHAIN_FULLNAME)
6135 AC_SUBST(TOOLCHAIN_DEFS)
6136 AC_SUBST(TOOLCHAIN_DLL_DEFS)
6137
6138 dnl wx-config options
6139 AC_SUBST(host_alias)
6140 AC_SUBST(cross_compiling)
6141 AC_SUBST(WIDGET_SET)
6142 AC_SUBST(WX_RELEASE)
6143 AC_SUBST(WX_VERSION)
6144 AC_SUBST(WX_SUBVERSION)
6145 AC_SUBST(WX_CHARTYPE)
6146 AC_SUBST(WX_DEBUGTYPE)
6147 AC_SUBST(WXCONFIG_EXTRALIBS)
6148 AC_SUBST(WXCONFIG_INCLUDE)
6149 AC_SUBST(WXCONFIG_RPATH)
6150 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
6151 AC_SUBST(WX_LARGEFILE_FLAGS)
6152 AC_SUBST(GCC_PRAGMA_FLAGS)
6153 AC_SUBST(CODE_GEN_FLAGS)
6154 AC_SUBST(CODE_GEN_FLAGS_CXX)
6155 AC_SUBST(EXE_LINKER)
6156
6157 dnl distribution vars
6158 AC_SUBST(GUIDIST)
6159 AC_SUBST(DISTDIR)
6160
6161 dnl additional subdirectories where we will build
6162 AC_SUBST(SAMPLES_SUBDIRS)
6163
6164 dnl additional libraries and linker settings
6165 AC_SUBST(LDFLAGS)
6166 AC_SUBST(LDFLAGS_GL)
6167 AC_SUBST(OPENGL_LIBS)
6168 AC_SUBST(DMALLOC_LIBS)
6169 AC_SUBST(WX_VERSION_TAG)
6170
6171 dnl additional resurces settings
6172 AC_SUBST(RESCOMP)
6173 AC_SUBST(RESFLAGS)
6174 AC_SUBST(RESPROGRAMOBJ)
6175 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
6176 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
6177
6178 dnl additional for Mac OS X
6179 AC_SUBST(DEREZ)
6180 AC_SUBST(LIBWXMACRES)
6181 AC_SUBST(MACRESCOMP)
6182 AC_SUBST(MACSETFILE)
6183 AC_SUBST(MACRESWXCONFIG)
6184
6185 dnl other tools
6186 AC_SUBST(GCC)
6187 AC_SUBST(DLLTOOL)
6188
6189
6190 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
6191 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
6192 dnl - and we do use it)
6193 AC_PROG_MAKE_SET
6194
6195
6196 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
6197
6198 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
6199 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
6200 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
6201
6202 AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ],
6203 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
6204 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
6205
6206 AC_CONFIG_FILES([ version-script Makefile ])
6207
6208 AC_CONFIG_COMMANDS([ wx-config
6209 ],
6210 [ rm -f wx-config
6211 ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
6212 ],
6213 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}"
6214 LN_S="${LN_S}"
6215 ])
6216
6217 dnl This would give us us build dir that in every significant way
6218 dnl resembles an installed wx in prefix=$builddir. It is troublesome
6219 dnl though in this form because AC_CONFIG_LINKS will fail for directories
6220 dnl on platforms that do not have symlinks.
6221 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
6222 dnl AC_CONFIG_LINKS([ contrib/include ])
6223
6224
6225 dnl Configure samples, contrib etc. directories, but only if they are present:
6226 if test "$wxUSE_GUI" = "yes"; then
6227 SUBDIRS="samples demos utils contrib"
6228 else dnl we build wxBase only
6229 dnl there are no wxBase programs in contrib nor demos
6230 SUBDIRS="samples utils"
6231 fi
6232 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
6233 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
6234
6235 for subdir in `echo $SUBDIRS`; do
6236 if test -d ${srcdir}/${subdir} ; then
6237 if test "$wxUSE_GUI" = "yes"; then
6238 if test ${subdir} = "samples"; then
6239 dnl only take those samples which compile in the current
6240 dnl configuration and which exist
6241 makefiles="samples/Makefile.in $makefiles"
6242 for sample in `echo $SAMPLES_SUBDIRS`; do
6243 if test -d $srcdir/samples/$sample; then
6244 makefiles="samples/$sample/Makefile.in $makefiles"
6245 fi
6246 done
6247 else dnl assume that everything compiles for utils &c
6248 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
6249 fi
6250 else dnl we build wxBase only
6251 dnl don't take all samples/utils, just those which build with
6252 dnl wxBase
6253 if test ${subdir} = "samples"; then
6254 makefiles="samples/Makefile.in samples/console/Makefile.in"
6255 elif test ${subdir} = "utils"; then
6256 makefiles=""
6257 for util in HelpGen tex2rtf ; do
6258 if test -d $srcdir/utils/$util ; then
6259 makefiles="utils/$util/Makefile.in \
6260 utils/$util/src/Makefile.in \
6261 $makefiles"
6262 fi
6263 done
6264 else dnl assume that everything compiles for tests
6265 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
6266 fi
6267 fi
6268
6269 for mkin in $makefiles ; do
6270 mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
6271 AC_CONFIG_FILES([$mk])
6272 done
6273 fi
6274 done
6275
6276
6277 AC_OUTPUT
6278
6279 dnl report how we have been configured
6280 echo
6281 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
6282 echo ""
6283 echo " Which GUI toolkit should wxWidgets use? ${TOOLKIT_USER:-base only}"
6284 echo " Should wxWidgets be compiled into single library? ${wxUSE_MONOLITHIC:-yes}"
6285
6286 echo " Should wxWidgets be compiled in debug mode? ${wxUSE_DEBUG:-no}"
6287 echo " Should wxWidgets be linked as a shared library? ${wxUSE_SHARED:-no}"
6288 echo " Should wxWidgets be compiled in Unicode mode? ${wxUSE_UNICODE:-no}"
6289
6290 echo " What level of wxWidgets compatibility should be enabled?"
6291 echo " wxWidgets 2.2 ${WXWIN_COMPATIBILITY_2_2:-no}"
6292 echo " wxWidgets 2.4 ${WXWIN_COMPATIBILITY_2_4:-yes}"
6293
6294 echo " Which libraries should wxWidgets use?"
6295 echo " jpeg ${wxUSE_LIBJPEG-none}"
6296 echo " png ${wxUSE_LIBPNG-none}"
6297 echo " regex ${wxUSE_REGEX}"
6298 echo " tiff ${wxUSE_LIBTIFF-none}"
6299 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
6300 echo " xpm ${wxUSE_LIBXPM-none}"
6301 fi
6302 echo " zlib ${wxUSE_ZLIB}"
6303 echo " odbc ${wxUSE_ODBC}"
6304 echo " expat ${wxUSE_EXPAT}"
6305 echo " libmspack ${wxUSE_LIBMSPACK}"
6306 echo " sdl ${wxUSE_LIBSDL}"
6307
6308 echo ""
6309
6310 dnl vi: set et sts=4 sw=4 com=\:dnl: