using += in bourne shell is not portable. Fixes natty-ARM builds
[gnash.git] / configure.ac
blob940f6800e68b5e754d0a13f91a46b28011640241
1 dnl  
2 dnl  Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
3 dnl  
4 dnl  This program is free software; you can redistribute it and/or modify
5 dnl  it under the terms of the GNU General Public License as published by
6 dnl  the Free Software Foundation; either version 3 of the License, or
7 dnl  (at your option) any later version.
8 dnl  
9 dnl  This program is distributed in the hope that it will be useful,
10 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl  GNU General Public License for more details.
13 dnl  You should have received a copy of the GNU General Public License
14 dnl  along with this program; if not, write to the Free Software
15 dnl  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16 dnl  
18 AC_PREREQ(2.59c)
19 AC_INIT(gnash, 0.8.10dev)
20 AC_CONFIG_SRCDIR([libcore/as_object.h])
21 AC_CONFIG_HEADERS([gnashconfig.h])
22 AC_CONFIG_MACRO_DIR([macros])
24 AC_CANONICAL_BUILD
25 AC_CANONICAL_HOST
27 dnl --------------------------------------------------------
28 dnl Figure out development tool stuff
29 dnl --------------------------------------------------------
31 AC_PROG_CXX
32 AC_PROG_CC
33 AM_PROG_CC_C_O
34 AC_EXEEXT
35 AC_PROG_INSTALL
37 dnl Set the default values for Flash Version. These are converted into
38 dnl various strings to make JavaScript or ActionScript detectors
39 dnl recognize Gnash as a SWF Player.
40 DEFAULT_FLASH_MAJOR_VERSION="10"
41 DEFAULT_FLASH_MINOR_VERSION="1"
42 DEFAULT_FLASH_REV_NUMBER="999"
43 AC_SUBST(DEFAULT_FLASH_MAJOR_VERSION)
44 AC_SUBST(DEFAULT_FLASH_MINOR_VERSION)
45 AC_SUBST(DEFAULT_FLASH_REV_NUMBER)
47 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_MAJOR_VERSION], ["${DEFAULT_FLASH_MAJOR_VERSION}"], [Default Flash major version])
48 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_MINOR_VERSION], ["${DEFAULT_FLASH_MINOR_VERSION}"], [Default Flash minor version])
49 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_REV_NUMBER], ["${DEFAULT_FLASH_REV_NUMBER}"], [Default Flash revision number])
51 dnl TODO: use host/build/target -- whatever is more appropriate
52 case "${host}" in
53   *-apple-*)
54     DEFAULT_FLASH_PLATFORM_ID="MAC"
55     DEFAULT_FLASH_SYSTEM_OS="MacOS"
56     ;;
57   *-openbsd*)
58     DEFAULT_FLASH_PLATFORM_ID="BSD"
59     DEFAULT_FLASH_SYSTEM_OS="OpenBSD"
60     ;;
61   *-freebsd* | *-kfreebsd*)
62     DEFAULT_FLASH_PLATFORM_ID="BSD"
63     DEFAULT_FLASH_SYSTEM_OS="FreeBSD"
64     ;;
65   *-netbsd*)
66     DEFAULT_FLASH_PLATFORM_ID="BSD"
67     DEFAULT_FLASH_SYSTEM_OS="NetBSD"
68     ;;
69   *-linux-gnu)
70     DEFAULT_FLASH_PLATFORM_ID="LNX"
71     DEFAULT_FLASH_SYSTEM_OS="GNU/Linux"
72     ;;
73   *-linux*)
74     DEFAULT_FLASH_PLATFORM_ID="LNX"
75     DEFAULT_FLASH_SYSTEM_OS="Linux"
76     ;;
77   *-cygwin* | *-mingw* | *-pw32*)
78     DEFAULT_FLASH_PLATFORM_ID="WIN"
79     DEFAULT_FLASH_SYSTEM_OS="Windows"
80     ;;
81   *-*solaris*)
82     DEFAULT_FLASH_PLATFORM_ID="SUN"
83     DEFAULT_FLASH_SYSTEM_OS="Solaris"
84     ;;
85   *-os2*)
86     DEFAULT_FLASH_PLATFORM_ID="OS2"
87     DEFAULT_FLASH_SYSTEM_OS="OS/2"
88     ;;
89   *-sco*)
90     DEFAULT_FLASH_PLATFORM_ID="SCO"
91     DEFAULT_FLASH_SYSTEM_OS="SCO/Unix"
92     ;;
93   *-irix*)
94     DEFAULT_FLASH_PLATFORM_ID="IRX"
95     DEFAULT_FLASH_SYSTEM_OS="IRIX"
96     ;;
97   *-hpux*)
98     DEFAULT_FLASH_PLATFORM_ID="HPX"
99     DEFAULT_FLASH_SYSTEM_OS="HPUX"
100     ;;    
101   *-amigaos*)
102     DEFAULT_FLASH_PLATFORM_ID="OS4"
103     DEFAULT_FLASH_SYSTEM_OS="AmigaOS4"
104     ;;    
105   *-haiku*)
106     DEFAULT_FLASH_PLATFORM_ID="HAIKU"
107     DEFAULT_FLASH_SYSTEM_OS="Haiku"
108     ;;    
109   *-gnu*)
110     DEFAULT_FLASH_PLATFORM_ID="GNU"
111     DEFAULT_FLASH_SYSTEM_OS="GNU/HURD"
112     ;;    
113   *)
114     DEFAULT_FLASH_PLATFORM_ID="UNK"
115     DEFAULT_FLASH_SYSTEM_OS="Unknown"
116     ;;
117 esac
119 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_PLATFORM_ID], ["${DEFAULT_FLASH_PLATFORM_ID}"], [Default 3-letter platform identifier for version string])
120 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_SYSTEM_OS], ["${DEFAULT_FLASH_SYSTEM_OS}"], [Default value for System.capabilities.os])
122 AC_SUBST(DEFAULT_FLASH_PLATFORM_ID)
123 AC_SUBST(DEFAULT_FLASH_SYSTEM_OS)
125 DEFAULT_STREAMS_TIMEOUT=60
126 AC_SUBST(DEFAULT_STREAMS_TIMEOUT)
127 AC_DEFINE_UNQUOTED([DEFAULT_STREAMS_TIMEOUT], [${DEFAULT_STREAMS_TIMEOUT}], [Default streams timeout in seconds])
129 DEFAULT_SOL_SAFEDIR="~/.gnash/SharedObjects"
130 AC_SUBST(DEFAULT_SOL_SAFEDIR)
131 AC_DEFINE_UNQUOTED([DEFAULT_SOL_SAFEDIR], ["${DEFAULT_SOL_SAFEDIR}"], [Default SharedObject base directory])
134 dnl Some things you can only do by looking at the platform name.
135 case "${host}" in
136   powerpc-apple-darwin*)
137     AC_DEFINE([__powerpc64__], [1], [this is a 64 bit powerpc])
138     darwin=yes
139     AC_DEFINE([DARWIN_HOST], [1], [this is a Darwin platform])
140     ;;
141   *-apple-darwin*)
142     darwin=yes
143     AC_DEFINE([DARWIN_HOST], [1], [this is a Darwin platform])
144     ;;
145     dnl Unfortunately, all BSD distributions are not identical, so 
146     dnl as tacky as it is to look for the distribution name, we don't
147     dnl have much choice. The use of these should be avoid as much as possible.
148   *-openbsd*)
149     bsd=yes
150     openbsd=yes
151     AC_DEFINE([OPENBSD_HOST], [1], [this is an OpenBSD platform])
152     ;;
153   *-freebsd* | *-kfreebsd*)
154     bsd=yes
155     freebsd=yes
156     AC_DEFINE([FREEBSD_HOST], [1], [this is a FreeBSD platform])
157     ;;
158   *-netbsd*)
159     bsd=yes
160     netbsd=yes
161     AC_DEFINE([NETBSD_HOST], [1], [this is a NetBSD platform])
162     ;;
163   *-*solaris*)
164     solaris=yes
165     AC_DEFINE([SOLARIS_HOST], [1], [this is a Solaris platform])
166     ;;
167   *-*linux*)
168     linux=yes
169     AC_DEFINE([LINUX_HOST], [1], [this is a Linux platform])
170     ;;
171   *-cygwin* | *-mingw* | *-pw32*)
172     windows=yes
173     AC_DEFINE([WIN32_HOST], [1], [this is a Win32 platform])
174     ;;
175   *64-*-*bsd*)
176     bsd_os=bsd 
177     AC_DEFINE([WORDSIZE], [64], [this is a 64 platform])
178     ;;
179   *-*amigaos*)
180     amigaos4=yes
181     AC_DEFINE([AMIGAOS4_HOST], [1], [this is an AmigaOS4 platform])
182     ;;
183   *-*haiku*)
184     haiku=yes
185     AC_DEFINE([HAIKU_HOST], [1], [this is a Haiku platform])
186     ;;
187   *-gnu*)
188     gnu=yes
189     AC_DEFINE([GNU_HOST], [1], [this is a GNU platform])
190     ;;
191   *-*wince)
192     wince=yes
193     AC_DEFINE([WINCE_HOST], [1], [this is a WINCE platform])
194     ;;
195   *-*winmo)
196     wince=yes
197     AC_DEFINE([WINCE_HOST], [1], [this is a WINCE platform])
198     AC_DEFINE([WINCE6_HOST], [1], [this is a WINCE6 platform])
199     ;;
200   *-android*)
201     android=yes
202     AC_DEFINE([ANDROID_HOST], [1], [this is an Android platform])
203     ;;
204 esac
207 AM_CONDITIONAL(WIN32, test x$windows = xyes)
208 AM_CONDITIONAL(HAIKU, test x$haiku = xyes)
209 AM_CONDITIONAL(AMIGAOS4, test x$amigaos4 = xyes)
211 dnl Get build date for helping us debugging
212 BUILDDATE="`date +%Y%m%d`"
213 AC_SUBST(BUILDDATE)
215 dnl These are required by automake
216 AM_INIT_AUTOMAKE
217 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
218 AM_MAINTAINER_MODE
219 AC_PROG_MAKE_SET
221 AM_GNU_GETTEXT([external])
222 AM_CONDITIONAL(HAS_GETTEXT, test x$ac_cv_path_XGETTEXT != x)
224 dnl Many of the Gnash macros depend on gettext macros defining shlibext; recent
225 dnl gettext however does not.
226 if test x"${shlibext}" = x; then
227   if test x"${acl_cv_shlibext}" = x; then
228     echo "Gettext macros were supposed to define shared library extensions"
229     exit 1;
230   else
231     shlibext="${acl_cv_shlibext}"
232   fi
235 dnl This is primarily used when compiling for a similar architecture,
236 dnl like pentium->geode, which can use the same compiler, but have
237 dnl different development libraries.
239 AC_ARG_WITH(sysroot,
240   AC_HELP_STRING([--with-sysroot],
241   [system root directory for cross compiling]),
242   with_top_level=${withval} ;
243   cross_compiling=yes)
245 dnl Android is a little different when using a standard cross toolchain,
246 dnl so we have to configure especially for it for now. Usually it's
247 dnl something like this:
249 dnl arm-linux-eabi-gcc -Wl,--dynamic-linker -Wl,/system/bin/linker
250 dnl -nostdlib -Wl,-rpath -Wl,/system/lib -Wl,-rpath
251 dnl -Wl,/opt/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib
252 dnl -L/opt/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib
253 dnl -lc -o hello
254 dnl  /opt/android-ndk-r3/build/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
255 dnl Recent versions of G++ (I'm using 4.5 from source
256 android_ndk=no
257 AC_ARG_WITH([android],
258   AC_HELP_STRING([--with-android], [directory where android NDK is installed]),
259         android_ndk=${withval}
260         if test x"${withval}" != x; then
261           android_ndk=${withval}
262         else
263           android_ndk=/opt/android-ndk-r3/build/platforms/android-5/arch-arm
264         fi
266 CROSS_CXXFLAGS=
267 if test x"${android_ndk}" != xno; then
268   CROSS_CXXFLAGS=-mandroid -fexceptions
269   if test x"${with_top_level}" = x; then
270     with_top_level=/usr/local/android-arm/sysroot/usr
271     cross_compiling=yes
272   fi
273   ANDROID_NDK=${android_ndk}
274   AC_DEFINE(ANDROID, [1], [This is an Android build])
275 else
276   ANDROID_NDK=
278 AC_SUBST(ANDROID_NDK)
279 AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
281 AC_C_BIGENDIAN
282 AC_C_CONST
283 AC_C_INLINE
285 AC_PATH_PROG(DEJAGNU, runtest)
287 dnl These options are for Cygnal, which collects optional statistics
288 dnl on all the network traffic By default, we turn on statistics
289 dnl collecting for the incoming and outgoing queues, since those are
290 dnl required to be compatiable with FMS 3, and the ActionScript server
291 dnl management API. buffers are the lowest level data storage, this
292 dnl data is the time spent in the queue, and is primarily only used
293 dnl for tuning the queueing API in Gnash. Memoryis the same, it's only
294 dnl used by developers for tuning performance of memory allocations in
295 dnl Gnash.
296 buffers=no
297 que=no
298 memory=no
299 cache=yes
300 stat_proplookup=no
301 AC_ARG_WITH(statistics,
302   AC_HELP_STRING([--with-statistics=], [Specify which statistics features to enable]),
303   if test -n ${withval}; then
304     if test "x${withval}" != "xno"; then
305       extlist="${withval}"
306       withval=`echo ${withval} | tr '\054' ' ' `
307     else
308       extlist=""
309       withval=""
310     fi
311   fi
312   statistics_list=""
313   nstatistics=0
314   while test -n "${withval}" ; do
315     val=`echo ${withval} | cut -d ' ' -f 1`
316     [case "${val}" in
317       buffers)
318         buffers=yes
319         nstatistics=$((nstatistics+1))
320         ;;
321       que)
322         que=yes
323         nstatistics=$((nstatistics+1))
324         ;;
325       memory)
326         memory=yes
327         nstatistics=$((nstatistics+1))
328         ;;
329       cache)
330         cache=yes
331         nstatistics=$((nstatistics+1))
332         ;;
333       proplookup)
334         stat_proplookup=yes
335         nstatistics=$((nstatistics+1))
336         ;;
337       all|ALL)
338         buffers=yes
339         memory=yes
340         queu=yes
341         cache=yes
342         stat_proplookup=yes
343         nstatistics=5           dnl this must be incremented if you add anything
344         ;;
345       *) AC_MSG_ERROR([invalid statistics feature specified: ${withval} given (accept: buffers|que|memory|cache|proplookup|all)])
346         ;;
347       esac]
348     withval=`echo ${withval} | cut -d ' ' -f 2-6`
349     if test "x$val" = "x$withval"; then
350       break;
351     fi
352   done
354 if test x${buffers} = xyes; then
355   statistics_list="${statistics_list} buffers"
356   AC_DEFINE(USE_STATS_BUFFERS, [1], [Support statistics collecting for the queue buffers])
357   AC_MSG_WARN([This option will effect your performance])
360 if test x${memory} = xyes; then
361   statistics_list="${statistics_list} memory"
362   AC_DEFINE(USE_STATS_MEMORY, [1], [Support statistics collecting for all memory profiling])
363   AC_MSG_WARN([This option will effect your performance])
366 if test x${que} = xyes; then
367   statistics_list="${statistics_list} queues"
368   AC_DEFINE(USE_STATS_QUEUE, [1], [Support statistics collecting for the queues])
371 if test x${cache} = xyes; then
372   statistics_list="${statistics_list} cache"
373   AC_DEFINE(USE_STATS_CACHE, [1], [Support statistics collecting for the cache])
376 if test x${stat_proplookup} = xyes; then
377   statistics_list="${statistics_list} proplookup"
378   AC_DEFINE(GNASH_STATS_OBJECT_URI_NOCASE, [1], [Collecting and report stats about ObjectURI case lookups])
379   AC_DEFINE(GNASH_STATS_PROPERTY_LOOKUPS, [1], [Collecting and report stats about property lookups])
380   AC_DEFINE(GNASH_STATS_STRING_TABLE_NOCASE, [1], [Collecting and report stats about string_table::key case lookups])
383 dnl this is just so Makefile can print the same list
384 STATISTICS_LIST="$statistics_list"
385 AC_SUBST(STATISTICS_LIST)
388 # These settings are compile time options for the security
389 # setting for anything that lets gnash exchange data with
390 # other applications. Currently this only supports Shared
391 # Objects and Local Connections. Shared Objects are like
392 # your web browsers cookies, and Local Connections use
393 # shared memory to execute methods remotely, and to
394 # exchange data.
396 # The default is to enable everything, and these can
397 # also be controlled dynamically by the $HOME/.gnashrc
398 # file.
400 solreadonly=no
401 localconnection=yes
403 AC_ARG_WITH(security,
404   AC_HELP_STRING([--with-security=], [Specify which security features to enable]),
405   if test -n ${withval}; then
406     if test "x${withval}" != "xno"; then
407       extlist="${withval}"
408       withval=`echo ${withval} | tr '\054' ' ' `
409     else
410       extlist=""
411       withval=""
412     fi
413   fi
414   security_list=""
415   nsecurity=0
416   while test -n "${withval}" ; do
417     val=`echo ${withval} | cut -d ' ' -f 1`
418     [case "${val}" in
419       solreadonly)
420         solreadonly=yes
421         nsecurity=$((nsecurity+1))
422         ;;
423       lc)
424         localconnection=yes
425         nsecurity=$((nsecurity+1))
426         ;;
427       all|ALL)
428         solreadonly=yes
429         lc=yes
430         nsecurity=3
431         ;;
432       *) AC_MSG_ERROR([invalid security feature specified: ${withval} given (accept: solreadonly|lc)])
433         ;;
434       esac]
435     withval=`echo ${withval} | cut -d ' ' -f 2-6`
436     if test "x$val" = "x$withval"; then
437       break;
438     fi
439   done
442 if test x$localconnection = xyes; then
443   security_list="${security_list} localconnection"
444   AC_DEFINE(USE_LC, [1],
445                  [Support LocalConnection])
446   AC_MSG_NOTICE([This build supports LocalConnection])
448 if test x$solreadonly = xyes; then
449   security_list="${security_list} solreadonly"
450   AC_DEFINE(USE_SOL_READONLY, [1],
451                  [Shared Objects are read-only])
452   AC_MSG_NOTICE([Shared Objects are read-only])
454 SECURITY_LIST="$security_list"
455 AC_SUBST(SECURITY_LIST)
457 dnl For Haiku, we know the sysroot is in a non-standard place
458 dnl it is important that -lagg comes before -lbe
459 if test x"${haiku}" = xyes; then
460   HAIKU_LIBS=-lbe
461   AC_SUBST(HAIKU_LIBS)
464 dnl Darwin uses libtool instead of ar to produce libraries. We determine which one
465 dnl we have here now. For some reason on Darwin, we don't get the
466 dnl count from grep via stdin correctly. Writing a temp file does the
467 dnl trick, so although it's ugly, that's what we gotta do...
468 AC_MSG_CHECKING([which type of library archiver we have])
469 rm -f .tmp
470 libtool > .tmp 2>&1
471 archiver=`grep -c dynamic .tmp 2>&1`
472 rm -f .tmp
473 dnl is there any good way to report what we found here?
474 AC_MSG_RESULT()
475 if test x"${archiver}" != x && test "${archiver}" -eq 1; then
476    export MACOSX_DEPLOYMENT_TARGET="10.3"
477    darwin=yes
478 else
479    darwin=no
482 dnl When cross compiling, limit the search directories cause otherwise
483 dnl we may get the host headers or libraries by accident. These values
484 dnl are exported, so all the other configure tests in macros/*.m4 use
485 dnl these same settings rather than duplicating them like we used to.
486 dnl To override thise, use the --with-*-incl= and --with-*-libs=
487 dnl options to configure.
488 if test x$cross_compiling = xyes; then
489   AC_MSG_NOTICE([Configuring Gnash for cross compilation])
490   export pkgroot="`$CXX -print-search-dirs | grep "install:" | sed -e 's/install: //' -e 's:/lib/gcc/.*::'`"
491   dnl pkgroot only works correctly with builds of cross tools not in
492   dnl /usr, ie... installed from the distribution packages, or just
493   dnl plain installed in the system tools. This contaminates configure
494   dnl when building for variations of the same basic architecture,
495   dnl like i686-linux -> i586-mingw32.
496   if test x"${pkgroot}" = x"/usr"; then
497     export pkgroot=""
498   fi
499   export incllist="`eval echo ${with_top_level}/include ${pkgroot}/${host_alias}/include ${pkgroot}/include`"
500   export libslist="`eval echo ${with_top_level}/lib ${pkgroot}/${host_alias}/lib ${pkgroot}/lib64 ${pkgroot}/lib32 ${pkgroot}/lib`"
501   export pathlist="`eval echo ${pkgroot}/${host_alias}/bin:${pkgroot}/bin`"
502   npapi=no
503 else
504   AC_MSG_NOTICE([Configuring Gnash for native compilation])
505   export DEB_HOST_MULTIARCH="`eval dpkg-architecture -qDEB_HOST_MULTIARCH`"
506   export incllist="`eval cat ${srcdir}/macros/incllist`"
507   libslist="`cat ${srcdir}/macros/libslist`"
508   export libslist="${libslist} /lib/${DEB_HOST_MULTIARCH} /usr/lib/${DEB_HOST_MULTIARCH}"
509   export pathlist=$PATH
512 if test x"${android_ndk}" != xno; then
513    incllist="${android_ndk}/include ${incllist}"
516 AM_CONDITIONAL(CROSS_COMPILING, [ test x$cross_compiling = xyes ])
518 for dir in ${incllist}; do
519   test -d ${dir} && pruned_incllist="${pruned_incllist} ${dir}";
520 done
522 for dir in ${libslist}; do
523   test -d ${dir} && pruned_libslist="${pruned_libslist} ${dir}";
524 done
526 libslist="${pruned_libslist}";
527 incllist="${pruned_incllist}";
529 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
530 dnl !! 
531 dnl !! IMPORTANT NOTICE 
532 dnl !!
533 dnl !!  Any call to GNASH_PATH_XXX must be be given *after* this snippet.
534 dnl !!  This is to ensure that PKG_CONFIG, cross_compiling and incllist are
535 dnl !!  properly set at the time of call.
536 dnl !!
537 dnl !!  Also GNASH_PKG_FIND has to be called later. Not sure
538 dnl !!  why but calling before breaks detection of CPP (see
539 dnl !!  gnash-dev mailing archives for June 12 2009
540 dnl !!  http://lists.gnu.org/archive/html/gnash-dev/2009-06/index.html
541 dnl !! 
542 dnl !! 
543 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
545 dnl Check for PKG_CONFIG before any GNASH_PATH call
546 PKG_PROG_PKG_CONFIG
548 dnl --------------------------------------------------------
549 dnl  GUI selection
550 dnl --------------------------------------------------------
552 build_haiku=no
553 build_aos4=no      dnl AmigaOS4 GUI
554 build_kde3=no      dnl WARNING: doesn't work (see https://savannah.gnu.org/bugs/index.php?31782)
555 build_qt4=no
556 build_qtopia3=no
557 build_qtopia4=no
558 build_gtk=no
559 build_fb=no                     dnl Raw framebuffer
560 build_fltk=no
561 build_sdl=no
562 build_aqua=no                   dnl Native MacOSX
563 build_dump=no
564 AC_ARG_ENABLE(gui,
565   AC_HELP_STRING([--enable-gui=], [Enable support for the specified GUI toolkits (default=gtk,qt4)]),
566   [if test -n ${enableval}; then
567     enableval=`echo ${enableval} | tr '\054' ' ' `
568   fi
569   while test -n "${enableval}" ; do
570     val=`echo ${enableval} | cut -d ' ' -f 1`
571     case "${val}" in
572       gtk|GTK|gtk2|GTK2)
573         build_gtk=yes
574         ;;
575       kde3|KDE3)
576         build_kde3=yes
577         ;;
578       qt4|QT4|kde4|KDE4)
579         build_qt4=yes
580         ;;
581       qtopia3|QTOPIA3)
582         build_qtopia3=yes
583         ;;
584       qtopia4|QTOPIA4)
585         build_qtopia4=yes
586         ;;
587       sdl|SDL)
588         build_sdl=yes
589         ;;
590       aqua|AQUA|Aqua)
591         build_aqua=yes
592         ;;
593       fltk|FLTK|fltk2|FLTK2)
594         build_fltk=yes
595         ;;
596       fb|FB)
597         build_fb=yes
598         ;;
599       aos4|AOS4)
600         build_aos4=yes
601         ;;
602       haiku|HAIKU)
603         build_haiku=yes
604         ;;
605       dump|DUMP)
606         build_dump=yes
607         ;;
608       all|ALL)
609         build_dump=yes
610         dnl BSD doesn't have a framebuffer interface
611         if test x${linux} = xyes; then
612           build_fb=yes
613         fi
614         if test x${openbsd} != xyes; then
615           build_qt4=yes
616         fi
617         build_sdl=yes
618         build_gtk=yes
619         ;;
620       *) AC_MSG_ERROR([invalid gui ${enableval} given (accept: gtk|kde3|qt4|fltk|sdl|aqua|fb|qtopia3|qtopia4|dump|aos4|haiku)])
621          ;;
622       esac
623     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
624     if test "x$val" = "x$enableval"; then
625       break;
626     fi
627   done],
628   [ dnl Run the following code if no --enable-gui is given
629   build_fb=no
630   build_sdl=auto
631   if test x"${openbsd}" = xyes; then
632     build_gtk=yes
633     build_dump=auto
634   else if test x"${haiku}" = xyes; then
635     build_haiku=yes;
636   else
637     build_qt4=auto
638     build_gtk=yes
639     build_dump=auto
640   fi
641   fi
642   ]
645 if test x"${build_haiku}" = xyes; then
646   if test x"$haiku" != xyes; then
647     echo "        ERROR: Can not build Haiku gui outside of Haiku
648 operating system." >&3
649   fi
652 dnl We can use Xephyr or fbe to create a fake framebuffer instead of real
653 dnl video memory. This lets us test on a desktop machine.
654 AC_ARG_WITH(fakefb,
655 AC_HELP_STRING([--with-fakefb],
656  [specify a file to be mapped instead of a real framebuffer]),
657  with_fakefb=${withval})
659 fakefb=
660 if test x"${with_fakefb}" = xyes; then
661   dnl This is the default file name fbe uses.
662   fakefb=/tmp/fbe_buffer
663 else
664   if test x"${with_fakefb}" != x; then
665     fakefb=${with_fakefb}
666   fi
668 FAKEFB=${fakefb}
669 AC_SUBST(FAKEFB)
671 if test x"${fakefb}" != x; then
672     AC_DEFINE(ENABLE_FAKE_FRAMEBUFFER, [1], [Enable using a file instead of a real framebuffer])
675 dnl This enable a small handful of tests that aren't designed to be
676 dnl run as part of "make check", as they are either incomplete, or
677 dnl can only be run interactively. These are all primarily oriented
678 dnl towards code development and debugging, instead of regression
679 dnl or unit testing.
680 AC_ARG_ENABLE(devtests, AC_HELP_STRING([--enable-devtests],
681   [Developer only tests, not to be included in make check]),
682 [case "${enableval}" in
683   yes) devtests=yes ;;
684   no)  devtests=no ;;
685   *)   AC_MSG_ERROR([bad value ${enableval} for enable-devtests option]) ;;
686 esac], devtests=no)
687 AM_CONDITIONAL(ENABLE_DEVELOPER_TESTS, [test x${devtests} = xyes])
689 dnl --------------------------------------------------------
690 dnl  Sound handler selection
691 dnl --------------------------------------------------------
692 add_sound=
693 build_sound_none=no
694 build_sound_sdl=no
695 build_sound_ahi=no
696 build_sound_mkit=no
697 AC_ARG_ENABLE(sound,
698   AC_HELP_STRING([--enable-sound=[[sdl|ahi|mkit]]], [Use the specified sound handler (default=sdl)]),
699      [case "${enableval}" in
700       sdl|SDL|Sdl)
701         build_sound_sdl=yes
702         add_sound="sdl"
703         ;;
704       none|NONE|None)
705         build_sound_none=yes
706         add_sound="none"
707         ;;
708       ahi|AHI|Ahi)
709         build_sound_ahi=yes
710         add_sound="ahi"
711         ;;
712       mkit|MKIT|Mkit)
713         build_sound_mkit=yes
714         add_sound="mkit"
715         ;;
716      esac],
717   [if test x"${haiku}" = xyes; then
718      build_sound_mkit=yes
719      add_sound="mkit"
720    else
721      if test x${build_sound_none} = xno; then
722        build_sound_sdl=yes
723        add_sound=sdl
724      fi
725    fi]
728 dnl --------------------------------------------------------
729 dnl  Media handler selection
730 dnl --------------------------------------------------------
731 build_media_gst=no
732 build_media_ffmpeg=auto
733 build_media_none=no
734 AC_ARG_ENABLE(media,
735   AC_HELP_STRING([--enable-media=handler],
736     [Enable media handling support using the specified handler: gst, ffmpeg or none (no sound) [[gst]] ]),
737   
738     if test -n ${enableval}; then
739       enableval=`echo ${enableval} | tr '\054' ' ' `
740     fi
741     dnl When --enable-media is given, all media defaults to off
742     dnl except the explicitly enabled ones
743     build_media_ffmpeg=no
744     build_media_gst=no
745     while test -n "${enableval}"; do
746       val=`echo ${enableval} | cut -d ' ' -f 1`
747       [case "${val}" in
748         GST|gst)
749           build_media_gst=yes
750           media_list="${media_list}gst "
751           ;;
752         FFMPEG|ffmpeg)
753           build_media_ffmpeg=yes
754           media_list="${media_list}ffmpeg "
755           ;;
756         no|NO|none)
757           build_media_none=yes
758           media_list="none"
759           ;;
760         *)
761           AC_MSG_ERROR([bad value ${enableval} for --enable-media option])
762           ;;
763      
764       esac]
765       enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
766       if test "x$val" = "x$enableval"; then
767         break;
768       fi
769     done,
770     [if test x"${build_haiku}" = xyes; then
771         build_media_ffmpeg=yes
772         build_media_haiku=yes
773         media_list="ffmpeg haiku"
774      else
775         build_media_gst=yes
776         media_list="gst"
777     fi]
780 dnl If no render is selected, and media handling isn't disabled, them enable gst
781 if test x${build_media_none} = xno -a x${build_media_gst} = xno -a x${build_media_ffmpeg} = xno; then
782   build_media_gst=yes
785 if test x"$build_media_ffmpeg" != x"no"; then # yes or auto
786   GNASH_PATH_FFMPEG
787   if test x"${build_media_ffmpeg}" = xauto; then
788     dnl TODO: have GNASH_PATH_FFMPEG set ${has_ffmpeg}
789     if test x"$FFMPEG_LIBS" != x; then
790       build_media_ffmpeg=yes
791       media_list="${media_list} ffmpeg"
792     else
793       build_ogl=no
794     fi
795   fi
798 MEDIA_CONFIG="${media_list}"
799 AC_SUBST(MEDIA_CONFIG)
801 dnl Multiple input devices are supported. These can all work in
802 dnl varying combinations, so several may be listed. These are only
803 dnl required when using the Framebuffer, as without the X11 desktop,
804 dnl Gnash has to handle all these internally. This can get
805 dnl messy, as one might want to use a touchscreen with a normal mouse
806 dnl or keyboard attached. 
807 dnl By default, don't build any of these, as they are only for the 
808 dnl Framebuffer running without X11.
809 if test x"${build_fb}" = xyes -a x"${linux}" = xyes; then
810   build_ps2mouse=yes
811   build_ps2keyboard=yes
812   build_input_events=yes
813   build_tslib=yes
814   input_events="PS/2 Mouse, PS/2 Keyboard, Input Devices, Touchscreen via Tslib"
815 else
816   build_ps2mouse=no
817   build_ps2keyboard=no
818   build_input_events=no
819   build_tslib=no
820   input_events=
822 AC_ARG_ENABLE(input,
823   AC_HELP_STRING([--enable-input], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
824   [if test -n ${enableval}; then
825     enableval=`echo ${enableval} | tr '\054' ' ' `
826   fi
827   build_ps2mouse=no
828   build_ps2keyboard=no
829   build_input_events=no
830   build_tslib=no
831   while test -n "${enableval}" ; do
832     val=`echo ${enableval} | cut -d ' ' -f 1`
833     case "${val}" in
834       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
835         build_ps2mouse=yes
836         input_events="${input_events}, PS/2 Mouse"
837         ;;
838       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
839         build_ps2keyboard=yes
840         input_events="${input_events}, PS/2 Keyboard"
841         ;;
842       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
843         input_events="${input_events}, Input Event Device"
844         build_input_events=yes
845         ;;
846       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
847         build_tslib=yes
848         input_events="${input_events}, Touchscreen"
849         ;;
850       a*) dnl all
851         build_ps2mouse=yes
852         build_ps2keyboard=yes
853         build_input_events=yes
854         build_tslib=yes
855         input_events="PS/2 Mouse, PS/2 Keyboard, Input Devices, Touchscreen via Tslib"                
856         ;;
857       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
858          ;;
859       esac
860     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
861     if test "x$val" = "x$enableval"; then
862       break;
863     fi
864   done],
867 if test x$build_sdl != xno -o x$build_sound_sdl = xyes; then
868   GNASH_PATH_SDL
870 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} = xyes])
873 dnl -----------------------------------------------------
874 dnl Check for SDL and decide about auto gui accordingly.
875 dnl Need be done after build_sound_sdl and build_sdl are
876 dnl initialized and before they are checked for yes/no
877 dnl -----------------------------------------------------
878 if test x"${build_sdl}" = xauto; then
879   if test xyes = x"${has_sdl}"; then
880     build_sdl=yes
881   else
882     AC_MSG_NOTICE([sdl GUI will not be built (no sdl development files found)])
883     build_sdl=no
884   fi
887 dnl -------------------------------
888 dnl Renderer Selection
889 dnl -------------------------------
890 input_events=
891 dnl By default, we want to to build all renderers
892 dnl DirectFB has both a device layer and a rendering layer, although
893 dnl currently the rendering part is incomplete. Configure support is
894 dnl included for development purposes.
895 build_directfb=no
896 dnl The OpenVG support works on both the desktop and embedded devices
897 dnl that don't run X11. It is supported by iPhone/iPad/Android
898 dnl devices, and the nouveau driver on the desktop.
899 build_ovg=no
900 dnl The OpenGLES1 renderer is a work in progress. It is originally
901 dnl based on a patch to Gnash 0.8.5, which of course not only didn't
902 dnl compile anymore, it was all hardcoded into the framebuffer
903 dnl code. This version compiles with the latest internal rendering
904 dnl API, and works properly with the glue code for the Gnash GUIs.
905 build_gles1=no
906 dnl OpenGL works, but suffers from performance problems. This should
907 dnl eventually be replacd by the OpenGLES1 and OpenVG renders.
908 build_ogl=yes
909 dnl AGG is a software only renderer
910 build_agg=yes
911 build_cairo=yes
912 renderer_list="agg cairo"
913 AC_ARG_ENABLE(renderer,
914   AC_HELP_STRING([--enable-renderer], [Enable support for the specified renderers (agg|cairo|opengl|openvg|all, default=all)]),
915   if test -n ${enableval}; then
916     if test "x${enableval}" != "xno" -o "x${enableval}" != "xnone" ; then
917       renderer_list="none"
918       enableval=`echo ${enableval} | tr '\054' ' ' `
919     else
920       renderer_list=""
921       enableval=""
922     fi
923   fi
924   renderer_list=""
925   build_ovg=no
926   build_ogl=no
927   build_gles1=no
928   build_gles2=no
929   build_agg=no
930   build_cairo=no
931   while test -n "${enableval}" ; do
932     val=`echo ${enableval} | cut -d ' ' -f 1`
933     [case "${val}" in
934       no*|NO*)
935         renderer_list="none"
936         build_ovg=no
937         build_ogl=no
938         build_gles1=no
939         build_gles2=no
940         build_agg=no
941         build_cairo=no
942         ;;
943       all|ALL)
944         renderer_list="agg cairo opengl openvg, opengles1"
945         build_ogl=yes
946         build_agg=yes
947         build_cairo=yes
948         build_ovg=yes
949         nrender=4
950         ;;
951       ogl|OGL|OpenGL|opengl)
952         renderer_list="${renderer_list} opengl"
953         build_ogl=yes
954         ;;
955       gles|GLES|gles1|GLES1)
956         renderer_list="${renderer_list} opengles1"
957         build_gles1=yes
958         build_ogl=no
959         nrender=$((nrender+1))
960         ;;
961       ovg|OVG|OpenVG|openvg)
962         renderer_list="${renderer_list} openvg"
963         build_ovg=yes
964         nrender=$((nrender+1))
965         ;;
966       directfb|dfb)
967         renderer_list="${renderer_list} DirectFB"
968         build_directfb=yes
969         nrender=$((nrender+1))
970         ;;
971       agg|AGG)
972         renderer_list="${renderer_list} agg"
973         build_agg=yes
974         ;;
975       cairo|CAIRO|Cairo*)
976         renderer_list="${renderer_list} cairo"
977         build_cairo=yes
978         ;;
979       *) AC_MSG_ERROR([invalid renderer specified: ${enableval} given (accept:  (opengl|openvg|cairo|agg|all)])
980         ;;
981       esac]
982     enableval=`echo ${enableval} | cut -d ' ' -f 2-`
983     if test "x$val" = "x$enableval"; then
984       break;
985     fi
986   done
989 if test x"${build_ovg}" = xyes; then
990   GNASH_PATH_OPENVG
991   dnl If OpenVG isn't installed, disable it
992   if test x"${has_openvg}" = xno; then
993     AC_MSG_WARN([OpenVG specified but no development files found!])
994     renderer_list=`echo ${renderer_list} | sed -e 's/ openvg//' `
995     nrender=$((nrender-1))
996   fi
999 dnl VA API is used by default for all H.264 videos. HW requirements:
1000 dnl     * AMD GPUs with UVD2 and xvba-video VA driver
1001 dnl     * NVIDIA GPUs with vdpau-video VA driver
1002 dnl     * All HW with a VA driver supporting the VA/GLX extensions or
1003 dnl     vaPutSurface(Pixmap,...). This may include the Intel
1004 dnl     Moorestown platform and future G45 VA driver.
1005 dnl NOTE: it is possible to use Gnash/VAAPI on platforms with an Intel
1006 dnl GMA500 but you currently will have to build the AGG renderer
1007 dnl instead of the OGL (OpenGL) one. 
1008 build_vaapi_device=no
1009 build_openmax_device=no
1010 if test x"${build_ovg}" = xyes; then
1011   build_egl_device=yes
1012 else
1013   build_egl_device=no
1015 build_x11_device=no
1016 build_directfb_device=no
1017 if test x"${build_fb}" = xyes; then
1018   build_rawfb_device=yes
1019   device_list="RawFB"
1020   ndevice=1
1021 else
1022   build_rawfb_device=no
1023   device_list=""
1024   ndevice=0
1026 AC_ARG_ENABLE(device,
1027   AC_HELP_STRING([--enable-device], [Specify which hardware abstraction to use to support to enable (none,egl,directfb,rawfb,x11,vaapi)]),
1028   enableval=`echo ${enableval} | tr '\054' ' ' `
1029   build_egl_device=no
1030   build_rawfb_device=no
1031   device_list=""
1032   ndevice=0
1033   while test -n "${enableval}" ; do
1034     val=`echo ${enableval} | cut -d ' ' -f 1`
1035     [case "${val}" in
1036       no*|NO*)
1037         device_list="none"
1038         build_vaapi_device=no
1039         build_openmax_device=no
1040         build_egl_device=no
1041         build_directfb_device=no
1042         build_x11_device=no
1043         ndevice=0
1044         ;;
1045       va*|VA*)
1046         device_list="${device_list} VAAPI"
1047         build_vaapi_device=yes
1048         ndevice=$((ndevice+1))
1049         ;;
1050       eg*|EG*)
1051         device_list="${device_list} EGL"
1052         build_egl_device=yes
1053         ndevice=$((ndevice+1))
1054         ;;
1055       x1*|X1*)
1056         device_list="${device_list} X11"
1057         build_x11_device=yes
1058         ndevice=$((ndevice+1))
1059         ;;
1060       di*|Di*|DI*|dfb)
1061         device_list="${device_list} DirectFB"
1062         build_directfb_device=yes
1063         ndevice=$((ndevice+1))
1064         ;;
1065       ra*|RAW*)
1066         device_list="${device_list} RawFB"
1067         build_rawfb_device=yes
1068         ndevice=$((ndevice+1))
1069         ;;
1070       all|ALL)
1071         device_list="EGL DirectFB X11"
1072         build_openmax_device=no
1073         build_vaapi_device=no
1074         build_egl_device=yes
1075         build_rawfb_device=yes
1076         build_directfb_device=yes
1077         build_x11_device=yes
1078         ndevice=5
1079         ;;
1080       op*|Op*|OP*)
1081         device_list="${device_list} OpenMAX"
1082         build_openmax_device=yes
1083         ndevice=$((ndevice+1))
1084         ;;
1085       *) AC_MSG_ERROR([invalid device feature specified: ${enableval} given (accept: none,vaapi)])
1086         ;;
1087       esac]
1088     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1089     if test "x$val" = "x$enableval"; then
1090       break;
1091     fi
1092   done
1095 if test x"${have_ffmpeg_vaapi}" = x"yes" -a x"${build_vaapi_device}" = x"yes"; then
1096   use_libva=no
1097   use_libva_x11=no
1098   use_libva_glx=no
1099   dnl if the version of FFmpeg is recent enough, (r20957, 52.45.0), then
1100   dnl look for VAAPI support so we can use use the VAAPI enabled FFmpeg.
1101   if test x"${have_ffmpeg_vaapi}" = xyes; then
1102     use_libva=yes
1103     GNASH_PKG_FIND([libva],
1104       [va/va.h],
1105       [Video Acceleration API],
1106       vaInitialize
1107     )
1108     use_libva_x11=yes
1109     GNASH_PKG_FIND([libva_x11],
1110       [va/va_x11.h],
1111       [VA API (X11 display)],
1112       vaGetDisplay,
1113       [], [-lva-x11]
1114     )
1116     if test x$build_ogl = xyes; then
1117       use_libva_glx=yes
1118       GNASH_PKG_FIND([libva_glx],
1119         [va/va_glx.h],
1120         [VA API (GLX display)],
1121         vaGetDisplayGLX,
1122         [], [-lva-glx]
1123       )
1124     fi
1125   fi
1128 dnl libVA drivers. We declare conditional for both the option being
1129 dnl selected, as well as whether or not it's found. This we can
1130 dnl generate better error handling if it's not found.
1131 AM_CONDITIONAL(USE_VAAPI, test x"${use_libva}" = xyes)
1133 dnl Until the hwaccel patches in FFmpeg wind up in the ffmpeg-plugin,
1134 dnl restrict using HW Accel to using FFmpeg directly.
1135 dnl test xyes = xyes -a ( x != xyes -o x != xyes )
1136 if test x"${build_vaapi}" = x"yes" -a x"${have_ffmpeg}" != x"yes"; then
1137   AC_MSG_ERROR(["Hardware acceleration currently not supported unless using FFmpeg."])
1140 AM_CONDITIONAL(HAVE_VAAPI, test x"${found_libva_incl}" = xyes)
1141 AM_CONDITIONAL(HAVE_VAAPI_GLX, test x"${found_libva_glx_incl}" = xyes)
1142 AM_CONDITIONAL(HAVE_VAAPI_X11, test x"${found_libva_x11_incl}" = xyes)
1144 if test x"${build_egl_device}" = xyes; then
1145   GNASH_PKG_FIND(EGL, [EGL/egl.h], [EGL library], eglGetDisplay)
1146   if test xyes = x"${has_EGL}"; then
1147     AC_DEFINE(BUILD_EGL_DEVICE, [ 1 ],
1148           [Build the EGL device for OpenVG, OpenGLES1&2, and X11/Mesa])
1149       device_list="${device_list} EGL"
1150       ndevice=$((ndevice+1))
1151   else
1152     AC_MSG_ERROR(["EGL requested but development package not found"])
1153     build_egl_device=no
1154   fi
1157 if test ${ndevice} -eq 0; then
1158       device_list="none"
1159       ndevice=1
1162 AM_CONDITIONAL(BUILD_DEVICES, test ${ndevice} -gt 0)
1163 if test ${ndevice} -gt 0; then
1164   AC_OUTPUT(libdevice/Makefile)
1167 dnl 16 bit: RGB555, RGB565
1168 dnl 24 bit: RGB24, BGR24
1169 dnl 32 bit: RGBA32, BGRA32
1170 pixelformat=all
1171 AC_ARG_WITH(pixelformat,
1172   AC_HELP_STRING([--with-pixelformat=], [Use the specified pixel format for AGG (default=all)]),
1173   [if test -n ${withval}; then
1174     pixelformat="${withval}"
1175     withval=`echo ${withval} | tr '\054' ' ' `
1176   fi
1177   while test -n "${withval}" ; do
1178     val=`echo ${withval} | cut -d ' ' -f 1`
1179     case "${val}" in
1180       all)
1181         # allow special value "all" set by user (handled below)
1182         ;; 
1183       argb32|ARGB32)
1184         AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32])
1185         ;;
1186       abgr32|ABGR32)
1187         AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32])
1188         ;;
1189       bgra32|BGRA32)
1190         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1191         ;;
1192       bgr24|BGR24)
1193         AC_DEFINE(PIXELFORMAT_BGR24, [1], [BGR24])
1194         ;;
1195       rgba32|RGBA32)
1196         AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32])
1197         ;;
1198       rgb24|RGB24)
1199         AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24])
1200         ;;
1201       rgb555|RGB555)
1202         AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555])
1203         ;;
1204       rgb565|RGB565)
1205         AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565])
1206         ;;
1207       *) AC_MSG_ERROR([invalid pixel format ${withval} given (accept: all|RGB555|RGB565|RGB24|BGR24|BGRA32|RGBA32|ARGB32|ABGR32)])
1208          ;;
1209       esac
1210     withval=`echo ${withval} | cut -d ' ' -f 2-6`
1211     if test "x$val" = "x$withval"; then
1212       break;
1213     fi
1214   done],
1215   [if test x$build_haiku = xyes -a x$build_sdl != xyes; then
1216         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1217         pixelformat=BGRA32
1218    fi]
1221 if test x$pixelformat = xall; then
1222   if test x$build_agg = xyes; then
1223     ### The fact that we're building GTK doesn't mean we're not also
1224     ### building KDE or SDL, each needing its own pixel format !
1225     #if test x$build_gtk = xyes; then
1226     #  AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24 pixel format])
1227     #  pixelformat="RGB24"
1228     #else
1229       AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555 pixel format])
1230       AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565 pixel format])
1231       AC_DEFINE(PIXELFORMAT_RGB24,  [1], [RGB24 pixel format])
1232       AC_DEFINE(PIXELFORMAT_BGR24,  [1], [BGR24 pixel format])
1233       AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32 pixel format])
1234       AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32 pixel format])
1235       AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32 pixel format])
1236       AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32 pixel format])
1237     #fi
1238   fi
1241 if test x"${build_ogl}" != xno; then # yes or auto
1242   GNASH_PATH_OPENGL
1243   if test x"${build_ogl}" = xauto; then
1244     if test xyes = x"${has_opengl}"; then
1245       build_ogl=yes
1246       renderer_list="${renderer_list} opengl"
1247     else
1248       build_ogl=no
1249     fi
1250   fi
1253 AM_CONDITIONAL(BUILD_OVG_RENDERER,   [ test x${build_ovg} = xyes ])
1254 AM_CONDITIONAL(BUILD_GLES1_RENDERER, [ test x${build_gles1} = xyes ])
1255 AM_CONDITIONAL(BUILD_GLES2_RENDERER, [ test x${build_gles2} = xyes ])
1256 AM_CONDITIONAL(BUILD_OGL_RENDERER,   [ test x${build_ogl} = xyes])
1257 AM_CONDITIONAL(BUILD_AGG_RENDERER,   [ test x${build_agg} = xyes ])
1258 AM_CONDITIONAL(BUILD_CAIRO_RENDERER, [ test x${build_cairo} = xyes ])
1260 if test x"${has_openvg}" = xyes; then
1261    AC_DEFINE([RENDERER_OPENVG], [1], [Use OpenVG renderer])
1264 if test x"${build_ogl}" = xyes; then
1265    AC_DEFINE([RENDERER_OPENGL], [1], [Use OpenGL renderer])
1268 if test x"${build_agg}" = xyes; then
1269   AC_DEFINE([RENDERER_AGG], [1], [Use AntiGrain renderer])
1272 if test x"${build_cairo}" = xyes; then
1273   GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1274   AC_DEFINE([RENDERER_CAIRO], [1], [Use cairo renderer])
1277 if test x"${build_agg}" = xyes; then
1278    GNASH_PATH_AGG
1281 AC_PATH_PROG(PERL, perl)
1282 AM_CONDITIONAL(HAVE_PERL, test x"$PERL" != x)
1284 AC_PATH_PROG(CSOUND, csound)
1285 AM_CONDITIONAL(HAVE_CSOUND, test x"$CSOUND" != x)
1287 AC_PATH_PROG(GIT, git)
1288 AC_SUBST(GIT)
1290 dnl --------------------------------------------------------
1291 dnl Extension selection
1292 dnl --------------------------------------------------------
1293 ext_dejagnu=no
1294 ext_mysql=no
1295 ext_fileio=no
1296 ext_gtk=no
1297 ext_lirc=no
1298 ext_dbus=no
1299 ext_all=no
1300 extensions_list=
1301 extensions_support=yes
1302 nextensions=0
1303 AC_ARG_ENABLE(extensions,
1304   AC_HELP_STRING([--enable-extensions=], [Specify which extensions to build (default: none)])
1305   AC_HELP_STRING([--disable-extensions], [Disable support for extensions entirely]),
1306   if test -n ${enableval}; then
1307     if test "x${enableval}" != "xno"; then
1308       extlist="${enableval}"
1309       enableval=`echo ${enableval} | tr '\054' ' ' `
1310       AC_DEFINE([USE_EXTENSIONS], [1], [Specify that extension support is enabled.])
1311     else
1312       extlist=""
1313       enableval=""
1314       extensions_support=no
1315     fi
1316   fi
1317   nextensions=0
1318   while test -n "${enableval}" ; do
1319     val=`echo ${enableval} | cut -d ' ' -f 1`
1320     extensions_list="${extensions_list} ${val}"
1321     [case "${val}" in
1322       dejagnu|DEJAGNU|dj|DJ)
1323         AC_DEFINE(USE_DEJAGNU_EXT, [1], [Build the DejaGnu extension])
1324         AC_MSG_NOTICE([Adding DejaGnu extension])
1325         ext_dejagnu=yes
1326         nextensions=$((nextensions+1))
1327         ;;
1328       mysql|MYSQL|sql|SQL)
1329         AC_DEFINE(USE_MYSQL_EXT, [1], [Build the MySQL extension])
1330         AC_MSG_NOTICE([Adding MySql extension])
1331         ext_mysql=yes
1332         nextensions=$((nextensions+1))
1333         ;;
1334       fileio|FILEIO|io|IO)
1335         AC_DEFINE(USE_FILEIO_EXT, [1], [Build the FileIO extension])
1336         AC_MSG_NOTICE([Adding FileIO extension])
1337         ext_fileio=yes
1338         nextensions=$((nextensions+1))
1339         ;;
1340       gtk|GTK|gtk2|GTK2)
1341         AC_DEFINE(USE_GTK_EXT, [1], [Build the GTK extension])
1342         ext_gtk=yes
1343         nextensions=$((nextensions+1))
1344         ;;
1345       lirc|LIRC)
1346         AC_DEFINE(USE_LIRC_EXT, [1], [Build the LIRC extension])
1347         ext_lirc=yes
1348         nextensions=$((nextensions+1))
1349         ;;
1350       dbus|DBUS)
1351         AC_DEFINE(USE_DBUS_EXT, [1], [Build the DBUS extension])
1352         ext_dbus=yes
1353         nextensions=$((nextensions+1))
1354         ;;
1355       all|ALL)
1356         AC_DEFINE(USE_GTK_EXT, [1], [Build all the extensions])
1357         ext_dejagnu=yes
1358         ext_mysql=yes
1359         ext_fileio=yes
1360         ext_gtk=yes
1361         ext_lirc=yes
1362         ext_dbus=yes
1363         ext_all=yes
1364         nextensions=9
1365         ;;
1366       *) AC_MSG_ERROR([invalid extension specified: ${enableval} given (accept: MYSQL|DEJAGNU|FILEIO|GTK|LIRC|DBUS|METOME|ALL)])
1367          ;;
1368       esac]
1369     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1370     if test "x$val" = "x$enableval"; then
1371       break;
1372     fi
1373   done
1374   EXTENSIONS_LIST="$extensions_list"
1375   AC_SUBST(EXTENSIONS_LIST)
1378 if test x$ext_dbus = xyes; then
1379   GNASH_PATH_DBUS
1382 if test x$ext_mysql = xyes; then
1383   GNASH_PATH_MYSQL
1386 AM_CONDITIONAL(BUILD_DEJAGNU_EXT, [ test x$ext_dejagnu = xyes ])
1387 AM_CONDITIONAL(BUILD_FILEIO_EXT, [ test x$ext_fileio = xyes ])
1388 AM_CONDITIONAL(BUILD_MYSQL_EXT, [ test x$ext_mysql = xyes ])
1389 AM_CONDITIONAL(BUILD_GTK_EXT, [ test x$ext_gtk = xyes ])
1390 AM_CONDITIONAL(BUILD_LIRC_EXT, [ test x$ext_lirc = xyes ])
1391 AM_CONDITIONAL(BUILD_DBUS_EXT, [ test x$ext_dbus = xyes ])
1392 AM_CONDITIONAL(BUILD_EXTENSIONS, [ test -n "$extensions_list"])
1394 AM_CONDITIONAL(ENABLE_EXTENSIONS, [ test "x${extensions_support}" != "xno" ])
1396 dnl --------------------------------------------------------
1397 dnl Libtool
1398 dnl --------------------------------------------------------
1400 AC_LIBTOOL_DLOPEN
1401 AC_LIBTOOL_WIN32_DLL
1402 AC_DISABLE_STATIC
1403 AC_PROG_LIBTOOL
1404 AC_SUBST(LIBTOOL_DEPS)
1405 DLOPEN="-dlopen"
1406 DLPREOPEN="-dlpreopen"
1407 AC_SUBST(DLOPEN)
1408 AC_SUBST(DLPREOPEN)
1410 GNASH_PKG_FIND([ltdl], [ltdl.h], [libltdl library], [lt_dlinit])
1412 if test x"$has_ltdl" = x"yes";then
1413   AC_DEFINE(HAVE_LTDL, [1], [Libtool 2.x defines this, but libtool 1.5 does not])
1416 dnl --------------------------------------------------------
1417 dnl SOL dir
1418 dnl --------------------------------------------------------
1419 soldir=/tmp
1420 AC_ARG_WITH(soldir,
1421  AC_HELP_STRING([--with-soldir],
1422  [directory for .sol files]),
1423  with_soldir=${withval})
1424 if test x${with_soldir} != x; then
1425   soldir=${with_soldir}
1427 SOLDIR=${soldir}
1428 AC_SUBST(SOLDIR)
1430 dnl --------------------------------------------------------
1431 dnl AVM2
1432 dnl --------------------------------------------------------
1433 dnl AC_ARG_ENABLE(avm2,
1434 dnl   AC_HELP_STRING([--enable-avm2], [Enable support for AS3]),
1435 dnl   [case "${enableval}" in
1436 dnl     yes) avm2=yes ;;
1437 dnl     no)  avm2=no ;;
1438 dnl     *)   AC_MSG_ERROR([bad value ${enableval} for enable-avm2 option]) ;;
1439 dnl   esac], avm2=no
1440 dnl )
1441 dnl AM_CONDITIONAL(ENABLE_AVM2, [test x"$avm2" = xyes])
1442 dnl if test x$avm2 = xyes; then
1443 dnl     AC_DEFINE(ENABLE_AVM2, [1], [Enable AVM2 code])
1444 dnl fi
1445 AM_CONDITIONAL(ENABLE_AVM2, false)
1447 dnl This option is only used if you want Gnash to interwork with 
1448 dnl the Adobe player using the LocalConnection class.
1449 dnl lckey=0xdd3adabd
1450 AC_ARG_WITH(lckey,
1451  AC_HELP_STRING([--with-lckey],
1452  [shared memory key for your system]),
1453  with_lckey=${withval})
1455 if test x${with_lckey} != x; then
1456   lckey=${with_lckey}
1457 else
1458   lckey=0xcbc384f8
1460 LC_KEY=${lckey}
1461 AC_SUBST(LC_KEY)
1463 AC_ARG_ENABLE(python,
1464   AC_HELP_STRING([--enable-python],[Enable python for the python wrapper]),
1465 [case "${enableval}" in
1466   yes) python=yes ;;
1467   no)  python=no ;;
1468   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-python option]) ;;
1469 esac],python=no)
1471 dnl Look for python, which is optional. If enabled, a python loadable
1472 dnl module of Gnash is created.
1473 GNASH_PATH_PYTHON
1474 AM_CONDITIONAL([USE_PYTHON], test x"$python" = xyes)
1475 AM_CONDITIONAL([HAS_PYTHON], test x"$has_python" = xyes)
1477 dnl By default debug logging is enabled. For better performance, it can
1478 dnl be disabled, as when running as a plugin, nobody sees the debug messages
1479 dnl anyway. Debug logging is primarily for developers, so we can turn it off
1480 dnl for package builds.
1481 AC_ARG_ENABLE(log,
1482   AC_HELP_STRING([--enable-log],[Enable debug logging]),
1483 [case "${enableval}" in
1484   yes) debuglog=yes ;;
1485   no)  debuglog=no ;;
1486   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-log option]) ;;
1487 esac],debuglog=yes)
1489 if test x"${debuglog}" = x"yes"; then
1490   AC_DEFINE([DEBUG_LOGGING], [1], [Enable debug logging])
1493 # Maybe use jemalloc, which handles memory fragmentation for
1494 # ECAMscript languages better than the regular system malloc.
1495 # This seems like a good idea, as both the other player and
1496 # Mozilla/Firefox both recently switched to using jemalloc.
1497 AC_ARG_ENABLE(jemalloc,
1498   AC_HELP_STRING([--enable-jemalloc],[Enable jemalloc instead of system malloc]),
1499 [case "${enableval}" in
1500   yes) jemalloc=yes ;;
1501   no)  jemalloc=no ;;
1502   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-jemalloc option]) ;;
1503 esac],jemalloc=yes)
1505 AC_CHECK_SIZEOF([void *], [4])
1507 if test "x${ac_cv_sizeof_void_p}" != x4 -a x"${ac_cv_sizeof_void_p}" != x8; then
1508   dnl jemalloc doesn't support unusual pointer sizes
1509   jemalloc=no
1512 dnl There is some weird stuff going on with NetBSD and jemalloc, so don't 
1513 dnl build it for now.
1514 if test x"${netbsd}" = x"yes" -o x"${windows}" = x"yes" -o x"${freebsd}" = x"yes" -o x"${haiku}" = x"yes" -o x"${gnu}" = x"yes"; then
1515   jemalloc=no
1517 dnl If the compiler doesn't have local thread storage enabled, don't try to
1518 dnl use jemalloc.
1519 if test x"${jemalloc}" = x"yes"; then
1520   AC_TRY_COMPILE([], [
1521     extern __thread int global_i; ],
1522     has_local_thread_storage=yes
1523   )
1524   if test x"${has_local_thread_storage}" = x"yes"; then
1525     AC_DEFINE([HAVE_LOCAL_THREAD_STORAGE], [1], [Has __thread (local thread storage) support])
1526     AC_DEFINE([USE_JEMALLOC], [], [Use jemalloc instead of system malloc])
1527   else
1528     jemalloc=no
1529   fi
1532 dnl We can search libs for mallinfo to decide whether we have it or not.
1533 dnl This is added to the linker flags when it's found. Usually it's -lc, but
1534 dnl on OpenSolaris it's -lmalloc, so this fixes the build.
1535 AC_SEARCH_LIBS([mallinfo], [c malloc],
1536                AC_DEFINE(HAVE_MALLINFO, [1], [Has mallinfo()])
1537                mallinfo=yes
1538                )
1540 AM_CONDITIONAL([HAVE_MALLINFO], test x$mallinfo = xyes)
1541 AM_CONDITIONAL(JEMALLOC, test x$jemalloc = xyes)
1543 AC_ARG_ENABLE(fps-debug,
1544   AC_HELP_STRING([--enable-fps-debug],[Enable FPS debugging code]),
1545 [case "${enableval}" in
1546   yes) AC_DEFINE([GNASH_FPS_DEBUG], [1], [Enable FPS debugging code])
1547 esac])
1549 dnl IPC_INFO isn't portable, and doesn't exist on BSD
1550 AC_TRY_COMPILE([#include <sys/ipc.h> #include <sys/shm.h>], [
1551   int flag = IPC_INFO; ],
1552   AC_DEFINE([HAVE_IPC_INFO], [1], [Use ipc_info])
1555 dnl --------------------------------------------------------
1556 dnl Disable menus
1557 dnl --------------------------------------------------------
1558 dnl Don't add the GUI menu. Some educational systems think this adds
1559 dnl clutter and confusion, like on the OLPC.
1560 AC_ARG_ENABLE(menus,
1561   AC_HELP_STRING([--disable-menus],[Disable the GUI menus]),
1562 [case "${enableval}" in
1563   yes) menus=yes ;;
1564   no)  menus=no ;;
1565   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-menus option]) ;;
1566 esac],menus=yes)
1568 if test x"$menus" = x"yes"; then
1569   AC_DEFINE([USE_MENUS], [], [GUI Menu support])
1571 AM_CONDITIONAL(MENUS, test x$menus = xyes)
1573 dnl --------------------------------------------------------
1574 dnl Disable SWF information
1575 dnl --------------------------------------------------------
1576 dnl Don't gather SWF information in tree form. This takes
1577 dnl resources and memory that can be saved if there's no
1578 dnl need to examine SWF internals.
1579 AC_ARG_ENABLE(swftree,
1580   AC_HELP_STRING([--disable-swftree],[Disable showing SWF properties]),
1581 [case "${enableval}" in
1582   yes) swftree=yes ;;
1583   no)  swftree=no ;;
1584   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-swf-properties option]) ;;
1585 esac],swftree=yes)
1587 if test x"$swftree" = x"yes"; then
1588   AC_DEFINE([USE_SWFTREE], [], [View SWF information])
1590 AM_CONDITIONAL(SWFTREE, test x$swftree = xyes)
1592 dnl --------------------------------------------------------
1593 dnl Disable testsuite
1594 dnl --------------------------------------------------------
1595 dnl Disable running any tests for "make check". This may sound stupid, but
1596 dnl this option is designed to solely be used by maintainers in the 
1597 dnl DISTCHECK_CONFIGURE_FLAGS when building packages. Gnash's testing infrastructure
1598 dnl is complex, and often the the testsuites will work, but due to some obscure reason,
1599 dnl make distcheck fails.
1600 AC_ARG_ENABLE(testsuite,
1601   AC_HELP_STRING([--disable-testsuite],[Disable the testsuite, maintainers option only]),
1602 [case "${enableval}" in
1603   yes) testsuite=yes ;;
1604   no)  testsuite=no ;;
1605   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-testsuite option]) ;;
1606 esac],testsuite=yes)
1608 if test x"$testsuite" = x"yes"; then
1609   AC_DEFINE([USE_TESTSUITE], [], [Testsuite support, maintainers option only])
1611 AM_CONDITIONAL(TESTSUITE, test x$testsuite = xyes)
1613 dnl --------------------------------------------------------
1614 dnl Write the file to disk in the plugin
1615 dnl --------------------------------------------------------
1616 AC_ARG_ENABLE(write,
1617   AC_HELP_STRING([--enable-write], [Makes the Mozilla plugin write the currently playing SWF movie to /tmp.]),
1618 [case "${enableval}" in
1619   yes) write=yes ;;
1620   no)  write=no ;;
1621   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-write option]) ;;
1622 esac],write=no)
1624 if test x"$write" = x"yes"; then
1625   AC_DEFINE([WRITE_FILE], [], [Write files while streaming])
1628 dnl --------------------------------------------------------
1629 dnl Write a standalone gnash launcher to disk from the plugin
1630 dnl --------------------------------------------------------
1631 AC_ARG_ENABLE(sa-launcher,
1632   AC_HELP_STRING([--disable-sa-launcher], [Drops support for the NPAPI plugin writing of standalone executable launcher scripts for the currently playing SWF movie to /tmp.]),
1633 [case "${enableval}" in
1634   yes) sa_launcher=yes ;;
1635   no)  sa_launcher=no ;;
1636   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-sa-launcher option]) ;;
1637 esac],sa_launcher=yes)
1639 if test x"$sa_launcher" = x"yes"; then
1640   AC_DEFINE([CREATE_STANDALONE_GNASH_LAUNCHER], [], [Add support for writing a standalone executable launcher for movies embedded in web pages])
1643 dnl --------------------------------------------------------
1644 dnl Build the cygnal server if specified.
1645 dnl --------------------------------------------------------
1646 AC_ARG_ENABLE(cygnal,
1647   AC_HELP_STRING([--enable-cygnal], [Enable building of the Cygnal server]),
1648 [case "${enableval}" in
1649   yes) cygnal=yes ;;
1650   no)  cygnal=no ;;
1651   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cygnal option]) ;;
1652 esac],cygnal=no)
1653 AM_CONDITIONAL(CYGNAL, test x$cygnal = xyes)
1655 if test x$cygnal = xyes; then
1656  AC_OUTPUT(cygnal/Makefile
1657     cygnal/libnet/Makefile
1658     cygnal/libamf/Makefile
1659     cygnal/cgi-bin/Makefile
1660     cygnal/cgi-bin/echo/Makefile
1661     cygnal/cgi-bin/oflaDemo/Makefile
1662     cygnal/cgi-bin/fitcDemo/Makefile
1663     cygnal/testsuite/Makefile
1664     cygnal/testsuite/libamf.all/Makefile
1665     cygnal/testsuite/libnet.all/Makefile
1666     cygnal/testsuite/cygnal.all/Makefile
1670 dnl --------------------------------------------------------
1671 dnl Build the cgibins server if specified.
1672 dnl --------------------------------------------------------
1673 AC_ARG_ENABLE(cgibins,
1674   AC_HELP_STRING([--enable-cgibins], [Enable building of the CGIs for Cygnal]),
1675 [case "${enableval}" in
1676   yes) cgibin=yes ;;
1677   no)  cgibin=no ;;
1678   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cgibins option]) ;;
1679 esac],cgibin=yes)
1680 AM_CONDITIONAL(USE_CGI, test x$cgibin = xyes)
1681 if test x"${cgibin}" = x"yes"; then
1682   AC_DEFINE([USE_CGIBIN], [1], [Enable cgi-bin processes for Cygnal])
1685 dnl --------------------------------------------------------
1686 dnl  Double buffer
1687 dnl --------------------------------------------------------
1688 dnl Add an option for double buffering when rendering, currently only used by
1689 dnl the frmaebuffer GUI.
1690 dnl If defined, an internal software-buffer is used for rendering and is then
1691 dnl copied to the video RAM. This avoids flicker and is faster for complex 
1692 dnl graphics, as video RAM access is usually slower. (strongly suggested)
1693 AC_ARG_ENABLE(doublebuf,
1694   AC_HELP_STRING([--enable-doublebuf], [Enable support for double buffering when rendering]),
1695   [case "${enableval}" in
1696     yes) doublebuf=yes ;;
1697     no)  doublebuf=no ;;
1698     *)   AC_MSG_ERROR([bad value ${enableval} for enable-doublebuf option]) ;;
1699   esac], doublebuf=no
1701 AM_CONDITIONAL(ENABLE_DBUF, [test x"$doublebuf" = xyes])
1702 if test x$doublebuf = xyes; then
1703     AC_DEFINE(ENABLE_DOUBLE_BUFFERING, [1], [Enable double buffering])
1706 dnl --------------------------------------------------------
1707 dnl  Offscreen buffer
1708 dnl --------------------------------------------------------
1709 dnl This enables rendering to an offscreen buffer, instead of directly to window
1710 AC_ARG_ENABLE(offscreen,
1711   AC_HELP_STRING([--enable-offscreen], [Enable support for rendering offscreen]),
1712   [case "${enableval}" in
1713     yes) offscreen=yes ;;
1714     no)  offscreen=no ;;
1715     *)   AC_MSG_ERROR([bad value ${enableval} for enable-offscreen option]) ;;
1716   esac], offscreen=no
1720 dnl --------------------------------------------------------
1721 dnl  SSH support selection
1722 dnl --------------------------------------------------------
1723 dnl Enable using libssh with libnet
1724 AC_ARG_ENABLE(ssh,
1725   AC_HELP_STRING([--enable-ssh], [Enable using SSH for network authentication]),
1726 [case "${enableval}" in
1727   yes) build_ssh=yes ;;
1728   no)  build_ssh=no ;;
1729   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssh option]) ;;
1730 esac], build_ssh=no)
1732 AM_CONDITIONAL(BUILD_SSH, test x"${build_ssh}" = xyes)
1733 if test x"${build_ssh}" = xyes; then
1734   GNASH_PKG_FIND(ssh, [libssh/libssh.h], [libssh library], ssh_socket_init)
1735 dnl  GNASH_PKG_FIND(poppler, [popt.h], [Poppler library], poppler_init)
1737 if test x"${has_ssh}" = x"yes"; then
1738   AC_DEFINE([USE_SSH], [1], [Use SSH for authentication])
1741 dnl --------------------------------------------------------
1742 dnl  SSL support selection
1743 dnl --------------------------------------------------------
1745 dnl Enable using OpenSSL with libnet.
1746 AC_ARG_ENABLE(ssl,
1747   AC_HELP_STRING([--enable-ssl], [Enable using OpenSSL directly]),
1748 [case "${enableval}" in
1749   yes) build_ssl=yes ;;
1750   no)  build_ssl=no ;;
1751   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssl option]) ;;
1752 esac], build_ssl=no)
1754 with_cert=
1755 with_pem=
1756 AM_CONDITIONAL(BUILD_SSL, test x"${build_ssl}" = xyes)
1757 AC_ARG_WITH(cert,
1758   AC_HELP_STRING([--with-cert],
1759   [cert file for SSL]),
1760   with_cert=${withval})
1761 AC_ARG_WITH(pem,
1762   AC_HELP_STRING([--with-pe],
1763   [pem file for SSL]),
1764   with_pem=${withval})
1766 if test x"${build_ssl}" = xyes; then
1767   GNASH_PKG_FIND(ssl, [openssl/ssl.h], [OpenSSL library], SSL_library_init)
1769 if test x"${has_ssl}" = x"yes"; then
1770   AC_DEFINE([USE_SSL], [1], [Use SSL for authentication])
1773 dnl -----------------------------------------------------------
1774 dnl Set the general plugins install policy here
1775 dnl (NOTE: before GNASH_PATH_FIREFOX and GNASH_PATH_KDE*)
1776 dnl -----------------------------------------------------------
1778 AC_ARG_WITH(plugins-install,
1779   AC_HELP_STRING([--with-plugins-install=system|user|prefix], [Policy for plugins install. Default: user.]),
1780         [case "${withval}" in
1781           user) PLUGINS_INSTALL_POLICY=user ;;
1782           system) PLUGINS_INSTALL_POLICY=system ;;
1783           prefix) PLUGINS_INSTALL_POLICY=prefix ;;
1784           *)  AC_MSG_ERROR([bad value ${withval} for --with-plugins-install]) ;;
1785          esac 
1786         ], PLUGINS_INSTALL_POLICY=user) 
1788 dnl -----------------------------------------------------------
1789 dnl   Verify dependencies for requested GUIs are met, and
1790 dnl   disable build of the GUIS for which deps are NOT met
1791 dnl ------------------------------------------------------------
1793 if test x$build_gtk = xyes; then
1794    GNASH_PATH_GTK2
1795    GNASH_PATH_PANGO
1796    GNASH_PKG_FIND(atk, [atk/atk.h], [atk library], atk_focus_tracker_init, [1.0])
1797    if test x"${build_ogl}" = xyes; then
1798       GNASH_PATH_GLEXT
1799    fi
1800    if test x"${build_cairo}" = xyes; then
1801       GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1802    fi
1805 if test x"${build_qt4}" != xno; then
1806  GNASH_PATH_QT4
1809 if test x"${build_qt4}" = xauto; then
1810   if test x"${has_qt4}" = xyes; then
1811      build_qt4=yes
1812   else
1813      build_qt4=no
1814   fi
1817 if test x"${build_kde3}" != xno -o x"${build_qtopia3}" != xno; then
1818  GNASH_PATH_QT3
1821 if test x"${build_kde3}" != xno; then
1822   GNASH_PATH_KDE3
1826 if test x"${build_kde3}" = xauto; then
1827   if test x"${has_qt3}" = xyes -a x"${has_kde3}" = xyes; then
1828      build_kde3=yes
1829   else
1830      build_kde3=no
1831   fi
1834 dnl Check possibility to build DUMP gui, if requested
1835 if test x"${build_dump}" != xno; then
1836   if test x"${build_agg}" = xyes; then
1837     build_dump=yes
1838   else
1839     if test x"${build_dump}" = xyes; then
1840       dnl SHOULD we just check at the end of file instead ?
1841       AC_MSG_ERROR(dump GUI cannot be built without AGG renderer);
1842     fi
1843     build_dump=no
1844   fi
1847 dnl Check possibility to build FB gui, if requested
1848 dnl FB dependency is a linux system (linux/fb.h)
1849 if test x"${build_fb}" != xno; then
1850   if test x"${linux}" = xyes; then
1851       build_fb=yes
1852   else
1853     if test x"${build_fb}" = xyes; then
1854       dnl SHOULD we just check at the end of file instead ?
1855       AC_MSG_ERROR(fb GUI cannot be built on non-linux platforms);
1856     fi
1857     AC_MSG_NOTICE([fb GUI won't be built (non-linux platform)])
1858     build_fb=no
1859   fi
1862 dnl TODO: add checks for all other GUIs
1864 dnl -------------------------------
1865 dnl Input Device selection
1866 dnl -------------------------------
1868 dnl Multiple input devices are supported. These can all work in
1869 dnl varying combinations, so several may be listed. These are only
1870 dnl required when using the Framebuffer, as without the X11 desktop,
1871 dnl Gnash has to handle all these internally. This can get
1872 dnl messy, as one might want to use a touchscreen with a normal mouse
1873 dnl or keyboard attached. 
1874 dnl By default, don't build any of these, as they are only for the Framebuffer
1875 dnl running without X11.
1876 if test x"${build_fb}" = xyes; then
1877   build_ps2mouse=yes
1878   build_ps2keyboard=no
1879   build_input_events=yes
1880   build_tslib=yes
1881   input_events="PS/2 Mouse, Input Devices, Touchscreen via Tslib"
1882 else
1883   build_ps2mouse=no
1884   build_ps2keyboard=no
1885   build_input_events=no
1886   build_tslib=no
1887   input_events=
1889 AC_ARG_ENABLE(input,
1890   AC_HELP_STRING([--enable-input=], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
1891   [if test -n ${enableval}; then
1892     enableval=`echo ${enableval} | tr '\054' ' ' `
1893   fi
1894   while test -n "${enableval}" ; do
1895     val=`echo ${enableval} | cut -d ' ' -f 1`
1896     case "${val}" in
1897       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
1898         build_ps2mouse=yes
1899         input_events="${input_events}, PS/2 Mouse"
1900         ;;
1901       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
1902         build_ps2keyboard=yes
1903         input_events="${input_events}, PS/2 Keyboard"
1904         ;;
1905       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
1906         input_events="${input_events}, Input Event Device"
1907         build_input_events=yes
1908         ;;
1909       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
1910         build_tslib=yes
1911         input_events="${input_events}, Touchscreen"
1912         ;;
1913       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
1914          ;;
1915       esac
1916     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1917     if test "x$val" = "x$enableval"; then
1918       break;
1919     fi
1920   done],
1923 if test x"${build_tslib}" = xyes; then
1924   AC_DEFINE(USE_TSLIB, [1], [Use a tslib supported touchscreen])
1925   GNASH_PKG_FIND(ts, [tslib.h], [Touchscreen library], ts_config)
1927 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} != xno])
1929 if test x"${build_ps2mouse}" = xyes; then
1930   AC_DEFINE(USE_MOUSE_PS2, [1], [Add support for a directly using a PS/2 Mouse])
1932 AM_CONDITIONAL(ENABLE_MOUSE, [test x"${build_ps2mouse}" = xyes])
1934 if test x"${build_ps2keyboard}" = xyes; then
1935   AC_DEFINE(USE_KEYBOARD_PS2, [1], [Add support for directly using a PS/2 Keyboard])
1937 if test x"${build_input_events}" = xyes; then
1938   AC_DEFINE(USE_INPUT_EVENTS, [1], [Add support for a directly using Linux Input Event Devices])
1940 AM_CONDITIONAL(ENABLE_INPUT_EVENTS, [test x"${build_input_events}" = xyes])
1941 dnl this is enabled if we have any input devices at all
1942 AM_CONDITIONAL(ENABLE_INPUT_DEVICES, [test x"${input_events}" != x])
1945 dnl -----------------------------------------------------------
1946 dnl Try to ignore stupid dependencies
1947 dnl -----------------------------------------------------------
1949 AC_MSG_CHECKING(linker --as-needed support)
1950 gcc_cv_ld_as_needed=no
1951 # Check if linker supports --as-needed and --no-as-needed options
1952 if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
1953   gcc_cv_ld_as_needed=yes
1955 if test x"$gcc_cv_ld_as_needed" = xyes; then
1956   LDFLAGS="$LDFLAGS -Wl,--as-needed"
1958 AC_MSG_RESULT($gcc_cv_ld_as_needed)
1960 AC_DEFINE(USE_GIF, [1], [Use the GIF library])
1961 AC_DEFINE(USE_PNG, [1], [Use the PNG library])
1962 AM_CONDITIONAL(USE_GIF, true)
1963 AM_CONDITIONAL(USE_PNG, true)
1965 AC_PATH_TOOL([AUTOTRACE], [autotrace])
1966 AC_HEADER_DIRENT
1968 dnl -----------------------------------------------------------------
1969 dnl PLUGIN RELATED STUFF
1970 dnl -----------------------------------------------------------------
1972 dnl !! This has been moved here to make --enable-npapi work
1973 dnl !! All of plugin-related macro calls could be moved into
1974 dnl !! a specialized macros/plugin.m4
1976 dnl ----------------------------------------------------
1977 dnl Add KPARTS support, if specified or KDE gui is built
1978 dnl ----------------------------------------------------
1980 AC_ARG_ENABLE(kparts3,
1981   AC_HELP_STRING([--disable-kparts3], [Disable support for Konqueror 3.x plugin (default: enabled if kde3 gui is)]),
1982 [case "${enableval}" in
1983   yes) build_kparts3=yes ;;
1984   no)  build_kparts3=no ;;
1985   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts3 option]) ;;
1986 esac],build_kparts3=$build_kde3)
1988 dnl --------------------------------------------------------
1989 dnl Add KPARTS 4.x support, if specified or KDE gui is built
1990 dnl --------------------------------------------------------
1992 AC_ARG_ENABLE(kparts4,
1993   AC_HELP_STRING([--disable-kparts4], [Disable support for Konqueror 4.x plugin (default: enabled if Qt4 gui is)]),
1994 [case "${enableval}" in
1995   yes) build_kparts4=yes ;;
1996   no)  build_kparts4=no ;;
1997   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts4 option]) ;;
1998 esac],build_kparts4=$build_qt4)
2000 if test x"${build_kparts4}" != xno; then
2001   GNASH_PATH_KDE4
2004 dnl -----------------------------------------------------------
2005 dnl Add NPAPI support, if specified or GTK or Qt4 gui is built
2006 dnl -----------------------------------------------------------
2008 AC_ARG_ENABLE(npapi,
2009   AC_HELP_STRING([--disable-npapi], [Disable NPAPI plugin build (default: enabled if gtk or Qt4 gui is)]),
2010   [case "${enableval}" in
2011     yes) npapi=yes ;;
2012     no)  npapi=no ;;
2013     *)   AC_MSG_ERROR([bad value ${enableval} for disable-npapi option]) ;;
2014   esac],
2015   if test x$build_gtk = xyes -o x$build_qt4 = xyes; then
2016     npapi=yes
2017   fi
2020 if test x"$npapi" = x"yes"; then
2021   GNASH_PATH_NPAPI
2024 dnl -----------------------------------------------------------------
2025 dnl Enable us to disable building all browser plugins in one command.
2026 dnl -----------------------------------------------------------------
2028 AC_ARG_ENABLE(plugins,
2029   AC_HELP_STRING([--disable-plugins], [Disable all browser plugins from building (default=no)]),
2030   [case "${enableval}" in
2031     yes) plugins=yes ;;
2032     no)  plugins=no ;;
2033     *)   AC_MSG_ERROR([bad value ${enableval} for disable-plugins option]) ;;
2034   esac],
2035   plugins=yes
2037 if test x$plugins = xno; then
2038   npapi=no
2039   build_kparts3=no
2040   build_kparts4=no
2044 GNASH_PATH_FIREFOX
2046 dnl -----------------------------------------------------------------
2047 dnl END OF PLUGIN RELATED STUFF
2048 dnl -----------------------------------------------------------------
2050 AM_CONDITIONAL(LIRC, [test x$lirc_ext = xyes])
2052 AC_CHECK_HEADERS(getopt.h)
2053 AC_CHECK_HEADERS(libgen.h)
2054 AC_CHECK_HEADERS(pwd.h)
2055 AC_CHECK_HEADERS(sys/utsname.h)
2056 AC_CHECK_HEADERS(signal.h)
2057 AC_CHECK_HEADERS(unistd.h)
2058 AC_CHECK_HEADERS(sys/time.h)
2059 AC_CHECK_LIB(bz2, BZ2_bzopen, [AC_SUBST(BZ2_LIBS, -lbz2)])
2060 AC_CHECK_LIB(c, getpwnam, AC_DEFINE(HAVE_GETPWNAM, 1, [Has getpwnam] ))
2062 dnl X11 is needed for fltk (at least),
2063 dnl and probably for many other guis too ...
2064 dnl if ! test x$build_fb = xyes; then # <--- this is wrong as build_x is non-exclusive
2065 dnl AC_PATH_XTRA
2066 dnl AC_CHECK_LIB(Xmu, XmuCvtStringToOrientation)
2067 dnl AC_CHECK_LIB(gmp, _gmp_get_memory_functions)
2068 GNASH_PATH_X11
2069 AC_CHECK_LIB(Xi, XInput_find_display)
2070 AC_CHECK_LIB(X11, XDisableAccessControl)
2071 dnl fi
2072 AM_CONDITIONAL(HAVE_X11, [test x${has_x11} = xyes])
2073 if test x${build_x11_device} = xyes -a  x${has_x11} = xyes; then
2074   AC_DEFINE(BUILD_X11_DEVICE, [1], [Build the X11 device])
2077 dnl See if ipc_perm structure has the ipc_perm.key field, and if so,
2078 dnl which variant of the name is used.
2079 ipc_key=no
2080 AC_TRY_COMPILE([
2081   #include <sys/ipc.h>
2082   #include <sys/shm.h>], [
2083  struct shmid_ds shmseg;      
2084  key_t x = shmseg.shm_perm.key;],
2085  ipc_key=yes
2086  AC_DEFINE(IPC_PERM_KEY, [key], [Has the key field in ipc_perm])
2089 if test x$ipc_key = xno; then
2090   AC_TRY_COMPILE([
2091     #include <sys/ipc.h>
2092     #include <sys/shm.h>], [
2093     struct shmid_ds shmseg;      
2094     key_t x = shmseg.shm_perm.__key;],
2095     AC_DEFINE(IPC_PERM_KEY, [__key], [Has the key field in ipc_perm])
2096     ipc_key=yes
2097   )
2100 AC_CACHE_CHECK([for finite], ac_cv_finite,
2101  [AC_TRY_COMPILE([
2102    #include <math.h>
2103    #ifdef HAVE_IEEEFP_H
2104    #include <ieeefp.h>
2105    #endif],
2106  [double x; int y; y = finite(x);],
2107  ac_cv_finite=yes,
2108  ac_cv_finite=no
2110 if test x"$ac_cv_finite" = x"yes"; then
2111   AC_SEARCH_LIBS(finite, m,
2112     [AC_DEFINE(HAVE_FINITE, [1], [Has finite])]
2113   )
2116 AC_LANG_PUSH(C++)
2117 AC_CACHE_CHECK([for isfinite], ac_cv_isfinite,
2118  [AC_TRY_COMPILE([#include <cmath>],
2119  [using namespace std; double x; int y; y = isfinite(x);],
2120  ac_cv_isfinite=yes,
2121  ac_cv_isfinite=no
2123 AC_LANG_POP(C++)
2124 if test x"$ac_cv_isfinite" = x"yes"; then
2125   dnl Don't give up if isfinite is not found in -lm
2126   dnl isfinite is defined as a macro in C99.
2127   AC_SEARCH_LIBS(isfinite, m)
2128   AC_DEFINE(HAVE_ISFINITE, [1], [Has isfinite])
2131 AC_LANG_PUSH(C++)
2132 AC_CACHE_CHECK([whether $CXX implements __PRETTY_FUNCTION__], ac_cv_implements___PRETTY_FUNCTION__, [
2133   AC_TRY_LINK([#include <cstdio>
2134 ], 
2135     [ std::printf("%s", __PRETTY_FUNCTION__); ], 
2136     [ ac_cv_implements___PRETTY_FUNCTION__="yes" ],
2137     [ ac_cv_implements___PRETTY_FUNCTION__="no" ]
2138   )
2140 if test "x$ac_cv_implements___PRETTY_FUNCTION__" = "xyes" ; then
2141   AC_DEFINE(HAVE_PRETTY_FUNCTION, [1], [__PRETTY_FUNCTION__ is defined])
2144 AC_CACHE_CHECK([whether $CXX implements __FUNCTION__], ac_cv_implements___FUNCTION__, [
2145   AC_TRY_LINK([#include <cstdio>
2146 ], 
2147     [ std::printf("%s", __FUNCTION__); ], 
2148     [ ac_cv_implements___FUNCTION__="yes" ],
2149     [ ac_cv_implements___FUNCTION__="no" ]
2150   )
2152 if test "x$ac_cv_implements___FUNCTION__" = "xyes" ; then
2153   AC_DEFINE(HAVE_FUNCTION, [1], [__FUNCTION__ is defined])
2156 AC_CACHE_CHECK([whether $CXX implements __func__], ac_cv_implements___func__, [
2157   AC_TRY_LINK([#include <cstdio>
2158 ], 
2159     [ std::printf("%s", __func__); ], 
2160     [ ac_cv_implements___func__="yes" ],
2161     [ ac_cv_implements___func__="no" ]
2162   )
2164 if test "x$ac_cv_implements___func__" = "xyes" ; then
2165   AC_DEFINE(HAVE_func, [1], [__func__ is defined])
2167 AC_LANG_POP(C++)
2168 AC_REPLACE_FUNCS(getopt)
2170 dnl Date portability stuff, used in server/asobj/Date.cpp
2171 AC_CHECK_FUNCS(gettimeofday)
2172 AC_CHECK_FUNCS(ftime)
2173 AC_CHECK_FUNCS(tzset)
2174 AC_CHECK_FUNCS(localtime_r)
2176 AC_CACHE_CHECK([whether struct tm has tm_gmtoff], ac_cv_tm_gmtoff, [
2177         AC_TRY_LINK([
2178 /* ctime(1) says "The glibc version of struct tm has additional fields
2179  * defined  when _BSD_SOURCE was set before including <time.h>"
2180  * In practice, you do not need to define it yourself (tested on glibc-2.2.1 
2181  * and 2.3.6) but if you *do* define it yourself, it makes *all* functions
2182  * favour BSD-like behaviour over of GNU/POSIX, which seems dangerous.
2183  */
2184 // #define _BSD_SOURCE 1
2185 #include <time.h>
2186 ], 
2187                 [ struct tm tm; long l = tm.tm_gmtoff; ], 
2188                 [ ac_cv_tm_gmtoff="yes" ],
2189                 [ ac_cv_tm_gmtoff="no" ]
2190         )
2192 if test "x$ac_cv_tm_gmtoff" = "xyes" ; then
2193         AC_DEFINE(HAVE_TM_GMTOFF, [1], [struct tm has member tm_gmtoff])
2196 AC_CACHE_CHECK([whether timezone is a long], ac_cv_long_timezone, [
2197         AC_TRY_LINK([
2198 /* On Linux/glibc, tzset(3) says "extern long timezone;" (seconds West of GMT)
2199  * but on BSD char *timezone(int,int) is a function returning a string name.
2200  * The BSD function timegm() may be the equivalent, but this should
2201  * not be necessary because on BSD the code should use tm.tm_gmtoff instead
2202  * (use of long timezone is a fallback strategy for when tm_gmtoff exists not).
2203  */
2204 #include <stdio.h>
2205 #include <time.h>
2206 extern long timezone;
2207   ], 
2208     [ printf("%ld", timezone); ], 
2209     [ ac_cv_long_timezone="yes" ],
2210     [ ac_cv_long_timezone="no" ]
2211    )
2213 if test "x$ac_cv_long_timezone" = "xyes" ; then
2214   AC_DEFINE(HAVE_LONG_TIMEZONE, [1], [extern timezone is a long integer, not a function])
2217 AC_CHECK_FUNCS(sysconf)
2218 AC_CHECK_FUNCS(shmget shmat shmdt mmap)
2219 AC_CHECK_FUNCS(scandir)         dnl supported by BSD and Linux, but you never know...
2220 AC_CHECK_LIB(rt, clock_gettime)
2221 AC_CHECK_FUNC(clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Has clock_gettime()] ))
2222 dnl Look for Win32 networking stuff
2223 AC_CHECK_HEADERS(winsock.h)
2224 AC_CHECK_HEADERS(winsock2.h)
2226 GNASH_PKG_FIND(nspr, [nspr.h], [Netscape Portable Runtime (NSPR)], PR_Init)
2228 AC_PATH_TOOL(WINDRES, [windres])
2229 AC_SUBST(WINDRES)
2231 GNASH_PKG_FIND(z, [zlib.h], [zlib compression library], compress)
2232 GNASH_PKG_FIND(jpeg, [jpeglib.h], [jpeg images], jpeg_mem_init)
2233 GNASH_PKG_FIND(png, [png.h], [png images], png_info_init)
2234 GNASH_PKG_FIND(gif, [gif_lib.h], [gif images], DGifOpen)
2235 if test x"${GIF_LIBS}" = x ; then
2236  GNASH_PKG_FIND(ungif, [gif_lib.h], [gif images], DGifOpen)
2237  GIF_LIBS=${UNGIF_LIBS}
2238  GIF_CFLAGS=${UNGIF_CFLAGS}
2240 if test x"$testsuite" = x"yes"; then
2241   GNASH_PKG_INCLUDES([dejagnu], [dejagnu.h])
2244 GNASH_PKG_FIND(speex, [speex.h], [speex audio codec], speex_decode_int)
2245 AM_CONDITIONAL(HAVE_SPEEX, [ test x$has_speex = xyes ])
2246 if test x$has_speex = xyes ; then
2247   AC_DEFINE([DECODING_SPEEX], [1], [Speex codec available])
2250 GNASH_PKG_FIND(speexdsp, [speex_resampler.h], [speex DSP utilities], speex_resampler_process_int)
2251 if test x$has_speexdsp = xyes ; then
2252   AC_DEFINE([RESAMPLING_SPEEX], [1], [Speex resampler available])
2255 dnl Find freetype and fontconfig
2256 GNASH_PATH_FREETYPE2
2257 GNASH_PKG_FIND(fontconfig, [fontconfig/fontconfig.h], [fontconfig library], FcFontMatch)
2259 if test x$cross_compiling = xno; then
2260   AC_PATH_MING
2263 if test x"$MING_VERSION_CODE" = x; then
2264  MING_VERSION_CODE=00000000
2267 AM_CONDITIONAL(ENABLE_MING,
2268         [ test x"$MAKESWF" != x -a $MING_VERSION_CODE -gt 00040000 ])
2270 AM_CONDITIONAL(MING_VERSION_0_4,
2271         [ test $MING_VERSION_CODE -ge 00040000  ])
2272 AM_CONDITIONAL(MAKESWF_SUPPORTS_PREBUILT_CLIPS,
2273         [ test $MING_VERSION_CODE -ge 00040002  ])
2274 AM_CONDITIONAL(MING_SUPPORTS_INIT_ACTIONS,
2275         [ test $MING_VERSION_CODE -ge 00040004  ])
2276 AM_CONDITIONAL(MING_SUPPORTS_REPLACE_TAG,
2277         [ test $MING_VERSION_CODE -ge 00040005 ])
2278 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_ADD_CHARACTER,
2279         [ test $MING_VERSION_CODE -ge 00040005 ])
2280 AM_CONDITIONAL(MING_SUPPORTS_STREAMING_SOUND,
2281         [ test $MING_VERSION_CODE -ge 00040006 ])
2282 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_SET_DEPTH,
2283         [ test $MING_VERSION_CODE -ge 00040006 ])
2284 AM_CONDITIONAL(MING_VERSION_0_4_3,
2285         [ test $MING_VERSION_CODE -ge 00040300 ])
2286 AM_CONDITIONAL(MING_VERSION_0_4_4,
2287         [ test $MING_VERSION_CODE -ge 00040400 ])
2289 if test x$cross_compiling = xno; then
2290     AC_ARG_WITH([swfdec_testsuite],
2291         AC_HELP_STRING([--with-swfdec-testsuite],
2292             [directory where swfdec testsuite (the 'test' dir) is]),
2293         if test x"${withval}" = xyes; then
2294             dir=`dirname $0`
2295             dir=`cd ${dir} && pwd`
2296             withval="${dir}/testsuite/swfdec/src/test"
2297         fi
2298         SWFDEC_TESTSUITE=${withval}
2299     )
2300     AC_SUBST(SWFDEC_TESTSUITE)
2302 AM_CONDITIONAL(ENABLE_SWFDEC_TESTSUITE, [ test x"$SWFDEC_TESTSUITE" != x ])
2304 if test x$cross_compiling = xno; then
2305   AC_ARG_ENABLE([http_testsuite],
2306       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2307           AC_HELP_STRING([--enable-http-testsuite=<baseurl>],
2308                   [Enable http based testsuite (default url is http://www.gnashdev.org/testcases)]),
2309               [case "${enableval}" in
2310              no) HTTP_TESTSUITE="" ;;
2311             yes) HTTP_TESTSUITE="http://www.gnashdev.org/testcases" ;;
2312               *) HTTP_TESTSUITE="${enableval}";;
2313            esac])
2314   AC_SUBST(HTTP_TESTSUITE)
2316 AM_CONDITIONAL(ENABLE_HTTP_TESTSUITE, [ test x"$HTTP_TESTSUITE" != x ])
2318 if test x$cross_compiling = xno; then
2319   AC_ARG_ENABLE([red5_testing],
2320       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2321           AC_HELP_STRING([--enable-red5-testing=<host>],
2322                   [Enable red5 based testing (default host is www.gnashdev.org)]),
2323               [case "${enableval}" in
2324              no) RED5_HOST="" ;;
2325             yes) RED5_HOST="www.gnashdev.org" ;;
2326               *) RED5_HOST="${enableval}";;
2327            esac])
2328   AC_SUBST(RED5_HOST)
2330 AM_CONDITIONAL(ENABLE_RED5_TESTING, [ test x"$RED5_HOST" != x ])
2332 if test x$cross_compiling = xno; then
2333   AC_ARG_ENABLE([rtmpy_testing],
2334       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2335           AC_HELP_STRING([--enable-rtmpy-testing=<host>],
2336                   [Enable rtmpy based testing (default host is www.gnashdev.org)]),
2337               [case "${enableval}" in
2338              no) RTMPY_HOST="" ;;
2339             yes) RTMPY_HOST="www.gnashdev.org" ;;
2340               *) RTMPY_HOST="${enableval}";;
2341            esac])
2342   AC_SUBST(RTMPY_HOST)
2344 AM_CONDITIONAL(ENABLE_RTMPY_TESTING, [ test x"$RTMPY_HOST" != x ])
2346 dnl The name might differ between systems.
2347 if test x"$testsuite" = x"yes"; then
2348 AC_PATH_PROGS(NETCAT, [nc netcat])
2349 AC_PATH_PROG(WGET, wget)
2351 AM_CONDITIONAL(HAS_NETCAT, [ test x"$NETCAT" != x ])
2352 AM_CONDITIONAL(HAS_WGET, [ test x"$WGET" != x ])
2355 dnl See if we can use the swfmill, mtasc, swfc and haxe based testsuites 
2357 if test x"$testsuite" = x"yes" -a x$cross_compiling = xno; then
2358   AC_PATH_PROG(AS3COMPILE, as3compile)
2359   AC_PATH_PROG(SWFC, swfc)
2360   AC_PATH_SWFMILL
2361   AC_PATH_MTASC
2362   AC_PATH_HAXE
2365 AM_CONDITIONAL(ENABLE_SWFMILL, [ test x"$SWFMILL" != x ])
2366 AM_CONDITIONAL(SWFMILL_AS3_SUPPORT,
2367         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2369 dnl SWFMILL versions older than 0.3 didn't get function2 flags order correctly
2370 AM_CONDITIONAL(SWFMILL_FUNCTION2_FLAGS_ORDER_CORRECT,
2371         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2373 AM_CONDITIONAL(ENABLE_AS3COMPILE, [ test x"$AS3COMPILE" != x ])
2374 AM_CONDITIONAL(ENABLE_MTASC, [ test x"$MTASC" != x ])
2375 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2376 AM_CONDITIONAL(ENABLE_SWFC, [ test x"$SWFC" != x ])
2377 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2379 AC_PATH_PROG(DOXYGEN, doxygen)
2380 AM_CONDITIONAL(ENABLE_DOXYGEN, [ test x"$DOXYGEN" != x ])
2382 AM_CONDITIONAL(HAVE_KDE3,    [test x$has_kde3 = xyes])
2383 AM_CONDITIONAL(HAVE_KDE4,    [test x$has_kde4 = xyes])
2384 AM_CONDITIONAL(HAVE_QT3,     [test x$has_qt3 = xyes])
2385 AM_CONDITIONAL(HAVE_QT4,     [test x$has_qt4 = xyes])
2387 AM_CONDITIONAL([QT_X11],     [test "$platform" = "X11"])
2388 AM_CONDITIONAL([QTOPIA],     [test "$platform" = "Qtopia"])
2389 AM_CONDITIONAL([QT_OSX],     [test "$platform" = "OSX"])
2390 AM_CONDITIONAL([QT_OS9],     [test "$platform" = "OS9"])
2391 AM_CONDITIONAL([QT_WIN32],   [test "$platform" = "Win32"])
2393 dnl Need GLIB for both GTK and GST
2394 if test x"${build_gtk}" = xyes -o x"${build_media_gst}" = xyes; then
2395   GNASH_PATH_GLIB
2398 AM_CONDITIONAL(HAVE_GLIB, [ test x"${has_glib}" = xyes ])
2400 if test x$npapi = xyes; then
2401   if ! test x$build_gtk = xyes -o x$build_qt4 = xyes; then
2402     AC_MSG_WARN(["Enabled NPAPI plugin, but it's not supported by the selected GUI"])
2403   fi
2406 if test x$windows = xyes -a x$npapi = xyes; then
2407   if test "x$NSPR_CFLAGS" = x -a "x$NSPR_LIBS" = x; then
2408     AC_MSG_ERROR(["On Win32, NPAPI plugin requires NSPR."])
2409   fi
2410   if test "x$WINDRES" = x; then
2411     AC_MSG_ERROR(["On Win32, NPAPI plugin requires windres."])
2412   fi
2415 dnl Need GLIB for NPAPI plugin
2416 if test x$npapi = xyes; then
2417   GNASH_PATH_GLIB
2420 dnl if kde isn't installed, even if it's specified, don't try to build
2421 dnl the KPARTS plugin, which is KDE based.
2422 if test x$has_kde3 = xno -a x$build_kparts3 = xyes; then
2423   build_kparts3=no
2424   AC_MSG_WARN(["Disabling KPARTS 3.x plugin, no KDE development found"])
2427 if test x$build_kde3 = xno -a x$build_kparts3 = xyes; then
2428   AC_MSG_WARN(["Enabled KPARTS 3.x plugin, but you aren't building a KDE based GUI!"])
2430 if test x$has_kde4 = xno -a x$build_kparts4 = xyes; then
2431   build_kparts4=no
2432   AC_MSG_WARN(["Disabling KPARTS 4.x plugin, no KDE 4.x development found"])
2435 if test x$build_qt4 = xno -a x$kparts4 = xyes; then
2436   AC_MSG_WARN(["Enabled KPARTS 4.x plugin, but you aren't building a KDE 4.x based GUI!"])
2439 AM_CONDITIONAL(BUILD_QTOPIA3_GUI,  [ test x$build_qtopia3 = xyes ])
2440 AM_CONDITIONAL(BUILD_QTOPIA4_GUI,  [ test x$build_qtopia4 = xyes ])
2442 AM_CONDITIONAL(BUILD_KDE3_GUI,     [ test x$build_kde3 = xyes ])
2443 AM_CONDITIONAL(BUILD_QT4_GUI,     [ test x$build_qt4 = xyes ])
2445 AM_CONDITIONAL(BUILD_GTK_GUI,      [ test x$build_gtk = xyes ])
2446 AM_CONDITIONAL(BUILD_FLTK_GUI,     [ test x$build_fltk = xyes ])
2447 AM_CONDITIONAL(BUILD_SDL_GUI,      [ test x$build_sdl = xyes ])
2448 AM_CONDITIONAL(BUILD_FB_GUI,       [ test x$build_fb = xyes ])
2449 AM_CONDITIONAL(BUILD_AQUA_GUI,     [ test x$build_aqua = xyes ])
2450 AM_CONDITIONAL(BUILD_DUMP_GUI,     [ test x$build_dump = xyes ])
2451 AM_CONDITIONAL(BUILD_AMIGAOS4_GUI, [ test x$build_aos4 = xyes ])
2452 AM_CONDITIONAL(BUILD_HAIKU_GUI,    [ test x$build_haiku = xyes ])
2454 # plugin building flags
2455 AM_CONDITIONAL(NPAPI,   [test x"${npapi}" = xyes])
2456 AM_CONDITIONAL(KPARTS3, [test x"${build_kparts3}" = xyes])
2457 AM_CONDITIONAL(KPARTS4, [test x"${build_kparts4}" = xyes])
2459 if test x"${build_gles1}"; then
2460   GNASH_PATH_GLES
2463 dnl only Linux supports /dev/fb0
2464 if test x"${build_rawfb_device}" = xyes -a x"${linux}" = xyes; then
2465    AC_DEFINE([BUILD_RAWFB_DEVICE], [1], [Use raw Framebuffer device support])
2468 if test x"${build_directfb_device}" = xyes; then
2469    GNASH_PKG_FIND(directfb, [directfb.h], [DirectFB render library], DirectFBCreate)
2470    AC_DEFINE([BUILD_DIRECTFB_DEVICE], [1], [Use DirectFB device support])
2473 AM_CONDITIONAL(BUILD_VAAPI_DEVICE, [test x"${use_libva}" = xyes])
2474 AM_CONDITIONAL(BUILD_EGL_DEVICE, [test x"${build_egl_device}" = xyes])
2475 AM_CONDITIONAL(BUILD_DIRECTFB_DEVICE, [ test x${build_directfb_device} = xyes])
2476 AM_CONDITIONAL(BUILD_RAWFB_DEVICE, [ test x${build_rawfb_device} = xyes])
2477 AM_CONDITIONAL(BUILD_X11_DEVICE, [test x${build_x11_device} = xyes])
2479 if test x"${build_gtk}" = xyes; then
2480   AC_ARG_ENABLE(ghelp,
2481     AC_HELP_STRING([--enable-ghelp], [Enable support for the GNOME help system]),
2482     [case "${enableval}" in
2483       yes) ghelp=yes ;;
2484       no)  ghelp=no ;;
2485       *)   AC_MSG_ERROR([bad value ${enableval} for enable-ghelp option]) ;;
2486     esac], ghelp=no
2487   )
2489   if test x"${ghelp}" = x"yes" ; then
2490     AC_PATH_PROG(SCROLLKEEPER, scrollkeeper-config, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2491     AC_PATH_PROG(SCROLLUPDATE, scrollkeeper-update, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2492     AC_PATH_PROG(SCROLLINSTALL, scrollkeeper-preinstall, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2494     if test x"$SCROLLKEEPER" = x -o x"$SCROLLUPDATE" = x -o x"$SCROLLINSTALL" = x ; then
2495       ghelp=no
2496       AC_MSG_WARN([You need to install scrollkeeper for gnome help])
2497     fi
2498   fi
2500 AM_CONDITIONAL(GHELP, [test x${ghelp} = xyes])
2502 if test x${build_fltk} = xyes; then
2503   GNASH_PKG_FIND(Xft, [Xft.h], [xft library], XftGlyphRender)
2506 dnl Some systems have a pervered set of dependencies.
2507 dnl Fedora Core 6 appears to have a dependency on expat for fontconfig.
2508 dnl We only need the library, but this is the easy wind to find it.
2509 GNASH_PKG_FIND(expat, [expat.h], [Expat library], XML_ErrorString)
2511 dnl these conditionals were moved out of kde.m4
2512 AM_CONDITIONAL(HAS_KDE3, [test x$has_kde3 = xyes])
2513 # used to disable x11-specific stuff on special platforms
2514 AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
2515 AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
2516 AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
2518 AM_CONDITIONAL(HAVE_GLEXT, [test x$glext = xyes])
2520 dnl We don't have GTKGLExt, so default to SDL, and don't build the Firefox plugin
2521 if test x$glext = xno -a x$build_ogl = xyes; then
2522   if test x$gtk2 = xyes -a x$build_gtk = xyes; then
2523     AC_ERROR([You have GTK installed, but not GtkGLExt. You need GtkGLExt to use the OpenGL renderer. Attempting to build SDL version])
2524   fi
2525   gui=sdl
2526   npapi=no
2527   AC_MSG_WARN([GTK2 specified for the GUI, but GtkGlExt is not present. Trying SDL instead.])
2530 missing_codecs=""
2531 if test x"$build_media_gst" = "xyes"; then
2532   AC_PATH_PROG(GST_INSPECT, gst-inspect, ,[${pathlist}])
2533   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2534     AC_PATH_PROG(GST_INSPECT, gst-inspect-0.10, ,[${pathlist}])
2535   fi
2536   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2537     dnl FIXME: there may be multiple acceptable plugins that are acceptable for
2538     dnl our use. For example, mad or FFmpeg will play mp3.
2539     codecs="ffdec_flv ffdec_flashsv ffdec_vp6f ffdec_flashsv mad vorbisdec ffdec_vp6"
2540     for i in $codecs; do
2541        hits="`$GST_INSPECT $i | grep -c 'Long name'`"
2542        if test $hits -eq 0; then
2543          missing_codecs="$missing_codecs $i"
2544          AC_MSG_WARN([Missing codec: $i])
2545        fi
2546     done
2547   fi
2548   GNASH_PKG_FIND(gstreamer_plugins_base, [gst/interfaces/probeprobe.h], [gstreamer interfaces library], gst_property_probe_probe_and_get_values_name, [0.10])
2549   GNASH_PKG_FIND(gstreamer_app, [gst/app/gstappsink.h], [gstreamer app library], call_gmon_start, [0.10])
2550   GNASH_PKG_FIND(gstreamer, [gst/gst.h], [gstreamer library], gst_init, [0.10])
2551   dnl if cross compiling, we're usually not going to be able to pop up
2552   dnl the codec installer to download the package to install, so disable
2553   dnl it if cross compiling with gstreamer support.
2554   if test x$cross_compiling = xno; then
2555     GNASH_PKG_FIND(gstreamer_pbutils, [gst/pbutils/install-plugins.h], [gstreamer PB Utils library], gst_install_plugins_supported, [0.10])
2556   fi
2557   dnl when cross compiling Gstreamer, not all supplied SDKs include all the
2558   dnl development libraries since most devices don't need to support plugin
2559   dnl development, only the runtime. In these caes we often have the header
2560   dnl files but not the libraries.
2561   if test x"${has_gstreamer_plugins_base}" = xyes; then
2562     GSTREAMER_LIBS="-lgstinterfaces-0.10 $GSTREAMER_LIBS"
2563     AC_DEFINE(HAS_GSTREAMER_PLUGINS_BASE, [1], [Has the Gstreamer Plugin Dev package installed])
2564   fi
2567 AM_CONDITIONAL(HAVE_CAIRO, [true])
2568 AM_CONDITIONAL(HAVE_OPENGL, [true])
2570 AM_CONDITIONAL(USE_SOUND_SDL, test x$build_sound_sdl = xyes)
2571 AM_CONDITIONAL(USE_SOUND_AHI, test x$build_sound_ahi = xyes)
2572 AM_CONDITIONAL(USE_SOUND_MKIT, test x$build_sound_mkit = xyes)
2573 AM_CONDITIONAL(USE_FFMPEG_ENGINE, test x"${build_media_ffmpeg}" = x"yes")
2574 AM_CONDITIONAL(USE_GST_ENGINE, test x"${build_media_gst}" = x"yes")
2575 AM_CONDITIONAL(HAVE_OPENGL, test x"${OPENGL_LIBS}" != x)
2576 dnl for now the Haiku media handler is experimental
2577 AM_CONDITIONAL(USE_HAIKU_ENGINE, test x"$build_media_haiku" = xyes)
2579 if test x"${build_media_ffmpeg}" = x"yes"; then
2580   AC_DEFINE([ENABLE_FFMPEG_MEDIA],  [1], [Use FFmpeg for media decoding])
2583 if test x"${build_media_gst}" = x"yes"; then
2584   AC_DEFINE([ENABLE_GST_MEDIA],  [1], [Use gstreamer for media decoding])
2587 if test x"${build_media_haiku}" = x"yes"; then
2588   AC_DEFINE([ENABLE_HAIKU_MEDIA],  [1], [Use haiku for media decoding])
2591 if test x$build_sound_mkit = xyes; then
2592   if test x"${haiku}" != xyes; then
2593     AC_MSG_ERROR([Media Kit sound handling is supported only under Haiku]);
2594   else
2595     AC_DEFINE([SOUND_MKIT],  [1], [Use Haiku Media Kit for sound handling])
2596   fi
2599 if test x"${build_sound_sdl}" = xyes; then
2600   AC_DEFINE([SOUND_SDL],  [1], [Use SDL for sound handling])
2603 if test x"${build_sound_ahi}" = xyes; then
2604   if test x"$amigaos4" != xyes; then
2605     AC_MSG_ERROR([AHI sound handling is supported only under AmigaOS]);
2606   else
2607     AC_DEFINE([SOUND_AHI],  [1], [Use AmigaOS AHI for sound handling])
2608   fi
2611 if test x$build_fltk = xyes; then
2612   GNASH_PKG_FIND(fltk2, [fltk/FL_API.h], [Fast Light Toolkit], fl_window_flush)
2613   if test x"${has_fltk2}" = xyes; then
2614     AC_CHECK_LIB(Xi, XInput_find_display,
2615       [AC_SUBST(FLTK2_LIBS, "$FLTK2_LIBS -lXi")])
2616   fi
2619 AM_CONDITIONAL(HAVE_FLTK2, [ test x$has_fltk2 = xyes ])
2620 AM_CONDITIONAL(HAS_XFT, [ test x$has_xft = xyes ])
2622 GNASH_DOCBOOK
2623 AM_CONDITIONAL(ENABLE_INFO, test x${INSTALL_INFO} != x)
2624 AM_CONDITIONAL(DOCBOOK, test x$docbook = xyes)
2625 AM_CONDITIONAL(ENABLE_TEXI, [ test x"$DB2X_TEXI" != x -o x"$DB2X_TEXIXML" != x ])
2626 AM_CONDITIONAL(ENABLE_PDF, [ test x"$DB2X_PDF" ])
2627 AM_CONDITIONAL(ENABLE_HTML, [ test x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2628 AM_CONDITIONAL(ENABLE_FOP, [ test x"$FOP" != x -a x"$docbook_styles" != x ])
2629 AM_CONDITIONAL(ENABLE_XMLTEX, [ test x"$PDFXMLTEX" != x -a x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2630 AM_CONDITIONAL(ENABLE_MAN, [ test x"$DB2X_MAN" != x -o x"$DB2X_MANXML" != x ])
2631 AM_CONDITIONAL(HAVE_AGG, [test x"${AGG_LIBS}" != x])
2633 GNASH_PATH_CURL
2635 dnl Define winsock if we're on windows. We could do something complicated,
2636 dnl but since AC_EXEEXT does it for us, we'll do this the easy way.
2637 if test x"$EXEEXT" = "exe"; then
2638   AC_DEFINE(HAVE_WINSOCK,1,[This is defined is we are on Win32])
2641 dnl ****************************************
2642 dnl *** Check for ELF visibility support ***
2643 dnl ****************************************
2645 AC_ARG_ENABLE([visibility],
2646   AC_HELP_STRING([--enable-visibility], [Use ELF visibility attributes]), [], [enable_visibility=no])
2648 if test x"$enable_visibility" != x"no"; then
2649   dnl Check whether the compiler supports the visibility attribute
2650   save_CFLAGS="$CFLAGS"
2651   CFLAGS="$CFLAGS -Wall -Werror"
2652   AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
2653   AC_COMPILE_IFELSE([AC_LANG_SOURCE(
2654     [
2655       void __attribute__ ((visibility("default"))) test_default (void) {}
2656       void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
2657       int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
2658     ])],
2659     [
2660       AC_DEFINE([HAVE_GNUC_VISIBILITY], [1], [Define this for GCC-visibility.])
2661       AC_MSG_RESULT([yes])
2662     ],
2663     [
2664       AC_MSG_RESULT([no])
2665     ]
2666   )
2667   CFLAGS="$save_CFLAGS"
2670 AC_ARG_ENABLE([pch],
2671   AC_HELP_STRING([--enable-pch], [Enable precompiled header support]), [], [enable_pch=no])
2673 AM_CONDITIONAL([ENABLE_PCH], [test x"$enable_pch" != x"no"])
2675 PCH_FLAGS="-include all-includes.h -Winvalid-pch"
2676 AC_SUBST(PCH_FLAGS)
2678 GNASH_PATH_PTHREADS
2680 GNASH_PATH_BOOST
2682 AC_ARG_ENABLE([strict],
2683   AC_HELP_STRING([--enable-strict],[Accept only standards compliant code (GCC only)]),
2684   [case "${enableval}" in
2685     yes) strict=yes ;;
2686     no) strict=no ;;
2687     *) AC_MSG_ERROR([bad value ${enableval} for --enable-strict option]) ;;
2688   esac],
2689   [strict=no]
2692 if test x"$strict" = x"yes" -a x$build_agg = xyes; then
2693    AC_MSG_ERROR([agg renderer will fail with --enable-strict.]);        
2696 # We want warnings, lots of warnings  :-)
2697 # It should be possible to build with -ansi, not with
2698 # -pedantic because of agg.
2700 # -ansi was actually dropped because it hides 'fileno', which
2701 # is used in a few places
2703 if test x"$GCC" = x"yes"; then
2704   CXXFLAGS="$CXXFLAGS \
2705     $CROSS_CXXFLAGS \
2706     -W \
2707     -Wall \
2708     -Wcast-align \
2709     -Wcast-qual \
2710     -Wpointer-arith \
2711     -Wreturn-type \
2712     -Wnon-virtual-dtor \
2713     -Wunused \
2714     "
2715   CFLAGS="$CFLAGS \
2716     $CROSS_CXXFLAGS \
2717     -W \
2718     -Wall \
2719     -Wcast-align \
2720     -Wcast-qual \
2721     -Wpointer-arith \
2722     -Wreturn-type \
2723     -Wmissing-declarations \
2724     -Wmissing-prototypes \
2725     -Wstrict-prototypes \
2726     "
2727   if test x"$strict" = x"yes"; then
2728     CXXFLAGS="$CXXFLAGS \
2729       -Wextra \   
2730       -pedantic \
2731       -Wno-long-long \
2732       "
2734     CFLAGS="$CFLAGS \
2735       -pedantic \
2736       -Wno-long-long \
2737       -ansi \
2738       "
2739   fi
2742 AC_ARG_ENABLE([cassert],
2743   AC_HELP_STRING([--disable-cassert],[Disable assertion checking]),
2744   [case "${enableval}" in
2745     yes) cassert=yes ;;
2746     no) cassert=no ;;
2747     *) AC_MSG_ERROR([bad value ${enableval} for --enable-cassert option]) ;;
2748   esac],
2749   [cassert=yes]
2752 if test x"$cassert" = x"no"; then
2753     CXXFLAGS="$CXXFLAGS \
2754       -DNDEBUG \
2755       "
2756     CFLAGS="$CFLAGS \
2757       -DNDEBUG \
2758       "
2761 dnl /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
2762 AC_DEFUN([CHECK_VISIBILITY_GCC_BUG],
2763   [
2764     AC_CACHE_CHECK([if -fvisibility-inlines-hidden is broken], ac_cv_gcc_visibility_bug, [
2765         AC_LANG_PUSH(C++)
2766         save_CXXFLAGS=$CXXFLAGS
2767         save_LDFLAGS=$LDFLAGS
2768         CXXFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
2769         LDFLAGS="$LDFLAGS -shared -fPIC"
2771         AC_TRY_LINK(
2772         [          
2773           template<typename CharT>
2774           struct VisTest
2775           {
2776             inline VisTest ();
2777           };
2778           template<typename CharT>
2779           inline VisTest<CharT>::VisTest()
2780         {}
2781         extern template class VisTest<char>;  // It works if we drop that line
2782         int some_function( int do_something ) __attribute__((visibility("default")));
2783         int some_function( int )
2784           {
2785             VisTest<char> a;
2786             return 0;
2787           }
2788         ], [],
2789         ac_cv_gcc_visibility_bug=no, ac_cv_gcc_visibility_bug=yes)
2791         CXXFLAGS=$save_CXXFLAGS
2792         LDFLAGS=$save_LDFLAGS
2793         AC_LANG_POP(C++)
2794       ]
2795     )
2796     if test x$ac_cv_gcc_visibility_bug = xno; then
2797       CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
2798     fi
2799   ]
2802 CHECK_VISIBILITY_GCC_BUG
2804 if test x$ac_cv_gcc_visibility_bug = xno; then
2805   AC_LANG_PUSH(C++)
2806   AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
2807   save_CXXFLAGS=$CXXFLAGS
2808   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2809   AC_LINK_IFELSE([AC_LANG_PROGRAM()], 
2810                  [ac_cv_gcc_visibility=yes;
2811                   AC_MSG_RESULT([yes])],
2812                  [ac_cv_gcc_visibility=no;
2813                   AC_MSG_RESULT([no])]);
2814   CXXFLAGS="$save_CXXFLAGS"
2815   AC_LANG_POP(C++)
2819 AM_CONDITIONAL(VISIBILITY_WORKS, test x"$ac_cv_gcc_visibility" = xyes)
2821 if test x"$ac_cv_gcc_visibility" = xyes -a x"$enable_visibility" != xno; then
2822   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2825 dnl Define convenience constants so Gnash can print out the
2826 dnl default configuration of the build.
2827 RENDERER_CONFIG="${renderer_list}"
2828 RENDERER_LIBS=
2829 for rend in `echo "${add_renderer}" | tr ',' ' '`; do
2830         RENDERER_LIBS="${RENDERER_LIBS} \$(top_builddir)/librender/libgnash${rend}.la"
2831 done
2832 AC_SUBST(RENDERER_LIBS)
2833 AC_SUBST(RENDERER_CONFIG)
2835 HWACCEL_CONFIG="${device_list}"
2836 AC_SUBST(HWACCEL_CONFIG)
2838 dnl check for missing libraries and disable them.
2839 if test x"$BOOST_LIBS" != x; then
2840   if test x"${cygnal_missing_libs}" != x; then
2841     for i in ${cygnal_missing_libs}; do
2842       if test $i = serialization; then
2843         AC_DEFINE([BOOST_MULTI_INDEX_DISABLE_SERIALIZATION], ["1"], [if the library is missing, don't use it.])
2844       fi
2845     done
2846   fi
2849 CYGNAL_PATHS
2851 SUPPORTED_GUIS=
2852 if test x$build_qtopia3 = xyes; then
2853   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia3"
2855 if test x$build_qtopia4 = xyes; then
2856   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia4"
2858 if test x$build_fb = xyes; then
2859   SUPPORTED_GUIS="${SUPPORTED_GUIS},fb"
2861 if test x$build_fltk = xyes; then
2862   SUPPORTED_GUIS="${SUPPORTED_GUIS},fltk"
2864 if test x$build_kde3 = xyes; then
2865   SUPPORTED_GUIS="${SUPPORTED_GUIS},kde3"
2867 if test x$build_qt4 = xyes; then
2868   SUPPORTED_GUIS="${SUPPORTED_GUIS},qt4"
2870 if test x$build_gtk = xyes; then
2871   SUPPORTED_GUIS="${SUPPORTED_GUIS},gtk"
2873 if test x$build_sdl = xyes; then
2874   SUPPORTED_GUIS="${SUPPORTED_GUIS},sdl"
2876 if test x$build_aqua = xyes; then
2877   SUPPORTED_GUIS="${SUPPORTED_GUIS},aqua"
2879 if test x$build_dump = xyes; then
2880   SUPPORTED_GUIS="${SUPPORTED_GUIS},dump"
2882 if test x$build_aos4 = xyes; then
2883   SUPPORTED_GUIS="${SUPPORTED_GUIS},aos4"
2885 if test x$build_haiku = xyes; then
2886   SUPPORTED_GUIS="${SUPPORTED_GUIS},haiku"
2888 SUPPORTED_GUIS="`echo ${SUPPORTED_GUIS} | sed 's/,//'`" # Strip leading comma
2889 AC_SUBST(SUPPORTED_GUIS)
2891 AC_CONFIG_LINKS(cygnal/testsuite/cygnal.all/cygnalrc:cygnal/testsuite/cygnal.all/cygnalrc.in)
2892 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc:testsuite/libbase.all/gnashrc.in)
2893 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc-local:testsuite/libbase.all/gnashrc-local.in)
2895 AC_CONFIG_FILES(
2896 gnash.pc:gnash.pc.in
2897 desktop/gnash-gtk-launcher:desktop/gnash-gtk-launcher.in
2898 desktop/gnash-qt-launcher:desktop/gnash-qt-launcher.in
2901 AC_OUTPUT(Makefile
2902 desktop/Makefile
2903 po/Makefile
2904 libmedia/Makefile
2905 libsound/Makefile
2906 libbase/Makefile
2907 libcore/Makefile
2908 libcore/vm/Makefile
2909 libcore/parser/Makefile
2910 librender/Makefile
2911 utilities/Makefile
2912 doc/Makefile
2913 doc/C/Makefile
2914 doc/Doxyfile
2915 testsuite/Makefile
2916 testsuite/media/Makefile
2917 testsuite/libbase.all/Makefile
2918 testsuite/as3compile.all/Makefile
2919 testsuite/actionscript.all/Makefile
2920 testsuite/samples/Makefile
2921 testsuite/swfdec/Makefile
2922 testsuite/misc-ming.all/Makefile
2923 testsuite/misc-ming.all/action_order/Makefile
2924 testsuite/misc-ming.all/sound/Makefile
2925 testsuite/misc-ming.all/displaylist_depths/Makefile
2926 testsuite/misc-ming.all/init_action/Makefile
2927 testsuite/misc-ming.all/loop/Makefile
2928 testsuite/misc-ming.all/loading/Makefile
2929 testsuite/misc-ming.all/register_class/Makefile
2930 testsuite/misc-mtasc.all/Makefile
2931 testsuite/misc-haxe.all/Makefile
2932 testsuite/misc-haxe.all/classes.all/Makefile
2933 testsuite/misc-swfmill.all/Makefile
2934 testsuite/misc-swfmill.all/trace-as2/Makefile
2935 testsuite/misc-swfmill.all/trace-as3/Makefile
2936 testsuite/misc-swfc.all/Makefile
2937 testsuite/network.all/Makefile
2938 testsuite/movies.all/Makefile
2939 testsuite/libcore.all/Makefile
2940 testsuite/libmedia.all/Makefile
2941 gui/Makefile
2942 gui/Info.plist
2943 gui/pythonmod/Makefile
2944 extensions/Makefile
2945 extensions/dejagnu/Makefile
2946 extensions/mysql/Makefile
2947 extensions/fileio/Makefile
2948 extensions/gtk2/Makefile
2949 extensions/lirc/Makefile
2950 extensions/dbus/Makefile
2951 plugin/Makefile
2952 plugin/npapi/Makefile
2953 plugin/klash/Makefile
2954 plugin/klash4/Makefile
2955 plugin/win32/Makefile
2956 plugin/aos4/Makefile
2960 ########################## Final report begins... ############################
2963 dnl Create temporary directory in a secure way
2964 tmp=`mktemp -d ${TMPDIR=/tmp}/gnash-configure-XXXXXX`
2965 if test \! -n "$tmp" || test \! -d "$tmp"; then
2966   tmp=`(umask 077 && mkdir -d ${TMPDIR=/tmp}/gnash-configure-${RANDOM}-$$) 2>/dev/null`
2968 cerr="${tmp}/errors"
2969 cwarn="${tmp}/warnings"
2970 crec="${tmp}/recommended"
2971 deb_err="${tmp}/deb_err"
2972 deb_war="${tmp}/deb_war"
2973 deb_rec="${tmp}/deb_rec"
2974 rpm_err="${tmp}/rpm_err"
2975 rpm_war="${tmp}/rpm_war"
2976 rpm_rec="${tmp}/rpm_rec"
2977 yast_err="${tmp}/yast_err"
2978 yast_war="${tmp}/yast_war"
2979 yast_rec="${tmp}/yast_rec"
2980 echo ""
2982 #trap 'rm cerr' 0 # trap isn't a good idea, might override other traps
2983 exec 3> $cerr 
2984 exec 4> $cwarn
2985 exec 5> $crec
2987 for F in "$deb_err" "$deb_war" "$deb_rec" "$rpm_err" "$rpm_war" "$rpm_rec" "$yast_err" "$yast_war" "$yast_rec"; do
2988   touch "$F";
2989 done
2991 pkg_out_fd=
2992 deb_dest=
2993 rpm_dest=
2994 yast_dest=
2996 dnl These macros should be portable as I checked most things used are in
2997 dnl POSIX-2008, GNU CoreUtils, and shipped in MinGW. Old unices? No clue.
2998 dnl In any case, they are hardly relevant on non-GNU systems.
3000 dnl Beware, here comes some long scary shell commands.
3002 AC_DEFUN([PKG_ERR],
3004   pkg_out_fd=3
3005   echo "          ERROR: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3006   deb_dest="$deb_err"
3007   rpm_dest="$rpm_err"
3008   yast_dest="$yast_err"
3011 AC_DEFUN([PKG_WAR],
3013   pkg_out_fd=4
3014   echo "        WARNING: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3015   deb_dest="$deb_war"
3016   rpm_dest="$rpm_war"
3017   yast_dest="$yast_war"
3020 AC_DEFUN([PKG_REC],
3022   pkg_out_fd=5
3023   echo "    RECOMMENDED: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3024   deb_dest="$deb_rec"
3025   rpm_dest="$rpm_rec"
3026   yast_dest="$yast_rec"
3029 AC_DEFUN([PKG_SUGGEST],
3031   echo "`echo "$1" | fold -s -w 62 | sed 's/^/                 /'`" >&$pkg_out_fd
3034 AC_DEFUN([DEB_INSTALL],
3036   echo "                 or .deb users: `echo "apt-get install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3037   echo -n " $1" >> "$deb_dest"
3040 AC_DEFUN([DEB_ALTERNATIVE],
3042   echo "                 or maybe     : `echo "apt-get install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3043   echo -n "/$1" >> "$deb_dest"
3046 AC_DEFUN([RPM_INSTALL],
3048   echo "                 or .rpm users: `echo "yum install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3049   echo -n " $1" >> "$rpm_dest"
3052 AC_DEFUN([RPM_ALTERNATIVE],
3054   echo "                 or maybe     : `echo "yum install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3055   echo -n "/$1" >> "$rpm_dest"
3058 AC_DEFUN([YAST_INSTALL],
3060   echo "                 or yast users: `echo "yast install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3061   echo -n " $1" >> "$yast_dest"
3064 AC_DEFUN([YAST_ALTERNATIVE],
3066   echo "                 or maybe     : `echo "yast install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3067   echo -n "/$1" >> "$yast_dest"
3070 AC_DEFUN([PKG_ALTERNATIVE],
3072   echo "`echo "$1" | fold -s -w 62 | sed 's/^/                 /'`" >&$pkg_out_fd
3075 echo "Configurable options are:"
3077 if test x"${pthreads}" = x"yes"; then
3078   echo "        POSIX Threads support enabled (default)"
3079 else
3080   if test x"${build_haiku}" = x"yes"; then
3081      echo "        POSIX Thread support built into C library."
3082   else
3083      echo "        POSIX Thread support disabled."
3084   fi
3087 if test x"${npapi}" = x"yes"; then
3088   echo "        NPAPI plugin enabled (default). Use --disable-npapi to disable."
3089   echo "        NPAPI plugin will be installed in ${FIREFOX_PLUGINS}"
3090 else
3091   echo "        NPAPI plugin disabled."
3094 if test x"${build_kparts3}" = x"yes"; then
3095   echo "        KPARTS 3.x plugin enabled (default). Use --disable-kparts3 to disable"
3096   echo "            KPARTS 3.x plugin will be installed in ${KDE3_PLUGINDIR}"
3097   echo "            KPARTS 3.x service will be installed in ${KDE3_SERVICESDIR}"
3098   echo "            KPARTS 3.x config dir will be in ${KDE3_CONFIGDIR}"
3099   echo "            KPARTS 3.x appsdata will be installed in ${KDE3_APPSDATADIR}"
3100 else
3101   echo "        KPARTS 3.x plugin disabled."
3104 if test x"${build_kparts4}" = x"yes"; then
3105   echo "        KPARTS 4.x plugin enabled (default). Use --disable-kparts4 to disable"
3106   echo "            KPARTS 4.x plugin will be installed in ${KDE4_PLUGINDIR}"
3107   echo "            KPARTS 4.x service will be installed in ${KDE4_SERVICESDIR}"
3108   echo "            KPARTS 4.x config dir will be in ${KDE4_CONFIGDIR}"
3109   echo "            KPARTS 4.x appsdata will be installed in ${KDE4_APPSDATADIR}"
3110 else
3111   echo "        KPARTS 4.x plugin disabled."
3114 # set a variable if we shouldn't continue. This way we can print
3115 # out everything that is missing in one pass, hopefully making it
3116 # easy for new developers to get everything they need installed.
3118 echo ""
3119 echo "Configured paths for ${build} are:"
3121 dnl Dump QT3 options is the user specified a QTOPIA3 or KDE3 GUI
3122 if test x"${build_kde3}" = xyes -o x"${build_qtopia3}" = xyes; then
3123   if test x"${has_qt3}" = xyes; then
3124     echo "        QT3 flags are: ${QT3_CFLAGS}"
3125     echo "        QT3 libs are: ${QT3_LIBS}"
3126   else
3127     PKG_ERR([No QT 3.x development package installed!])
3128     PKG_SUGGEST([Install a QT 3.x development environment from http://qt.nokia.com/])
3129     DEB_INSTALL([libqt3-mt-dev])
3130     RPM_INSTALL([qt3-devel])
3131     RPM_ALTERNATIVE([qt-devel])
3132     PKG_ALTERNATIVE([or change to a different gui with --enable-gui=...])
3133   fi
3136 dnl Dump QT4 options is the user specified a QTOPIA4 or Qt4 GUI
3137 if test x"${build_qt4}" = xyes -o x"${build_qtopia4}" = xyes; then
3138   if test x"${has_qt4}" = xyes; then
3139     echo "        QT4 flags are: ${QT4_CFLAGS}"
3140     echo "        QT4 libs are: ${QT4_LIBS}"
3141   else
3142     PKG_ERR([No QT 4.x development package installed!])
3143     PKG_SUGGEST([Install a QT 4.x development environment from http://qt.nokia.com/])
3144     DEB_INSTALL([libqt4-dev])
3145     DEB_ALTERNATIVE([qt4-dev-tools]) dnl TODO: Is this required?
3146     RPM_INSTALL([qt4-devel])
3147     RPM_ALTERNATIVE([qt-devel])
3148     PKG_ALTERNATIVE([or change to a different gui with --enable-gui=...])
3149   fi
3152 if test x"${build_kparts4}" = xyes; then
3153   if test x"${has_kde4}" = xyes; then
3154     echo "        KDE4 flags are: ${KDE4_CFLAGS}"
3155     echo "        KDE4 libs are: ${KDE4_LIBS}"
3156   else
3157     PKG_WAR([kparts4 plugin is disabled!])
3158     PKG_SUGGEST([Install version 4.x of the KDE development environment from http://kde.org])
3159     DEB_INSTALL([kdelibs5-dev])
3160     RPM_INSTALL([kdelibs-devel])
3161   fi
3164 if test x"$build_qtopia3" = xyes; then
3165   if test x"${QTOPIA3_LIBS}" != x ; then
3166     if test x"${QTOPIA3_CFLAGS}" != x ; then
3167       echo "        QTOPIA 3.x flags are: $QTOPIA3_CFLAGS"
3168     else
3169       echo "        QTOPIA 3.x flags are: default include path"
3170     fi
3171     echo "        QTOPIA 3.x libs are: $QTOPIA3_LIBS"
3172   else
3173     PKG_ERR([No QTOPIA 3.x library development package installed!])
3174     PKG_SUGGEST([Install it from http://trolltech.com/downloads/ as binary packages are not available.]) dnl TODO: This link is no longer valid.
3175   fi
3178 if test x"$build_qtopia4" = xyes; then
3179   if test x"${QTOPIA4_LIBS}" != x ; then
3180     if test x"${QTOPIA4_CFLAGS}" != x ; then
3181       echo "        QTOPIA 4.x flags are: $QTOPIA4_CFLAGS"
3182     else
3183       echo "        QTOPIA 4.x flags are: default include path"
3184     fi
3185     echo "        QTOPIA 4.x libs are: $QTOPIA4_LIBS"
3186   else
3187     PKG_ERR([No QTOPIA 4.x library development package installed!])
3188     PKG_SUGGEST([Install it from http://trolltech.com/downloads/ as binary packages are not available.]) dnl TODO: This link is no longer valid.
3189   fi
3193 # -o x$build_kparts3 = xyes
3194 if test x$build_kde3 = xyes; then
3195   if test x"$has_kde3" = xyes; then
3196     echo "        KDE 3.x flags are: $KDE3_CFLAGS"
3197     echo "        KDE 3.x libs are: $KDE3_LIBS"
3198   else
3199     PKG_ERR([No KDE 3.x development package installed!])
3200     PKG_SUGGEST([Install version 3.x of the KDE development environment from http://kde.org])
3201     DEB_INSTALL([kdelibs4-dev])
3202     RPM_INSTALL([kdelibs3-devel])
3203     PKG_ALTERNATIVE([or disable the KDE 3.x gui, and reconfiguring using --enable-gui=<list-of-guis> and omitting kde from the list or avoiding --enable-gui=... as a whole.])
3204   fi
3207 if test x"${JPEG_LIBS}" != x ; then
3208   if test x"${JPEG_CFLAGS}" != x ; then
3209     echo "        JPEG flags are: $JPEG_CFLAGS"
3210   else
3211     echo "        JPEG flags are: default include path"
3212   fi
3213   echo "        JPEG libs are: $JPEG_LIBS"
3214 else
3215   PKG_ERR([No JPEG library development package installed!])
3216   PKG_SUGGEST([Install it from http://ijg.org])
3217   DEB_INSTALL([libjpeg-dev])
3218   RPM_INSTALL([libjpeg-devel])
3221 if test x"${GIF_LIBS}" != x ; then
3222   if test x"${GIF_CFLAGS}" != x ; then
3223     echo "        GIF flags are: $GIF_CFLAGS"
3224   else
3225     echo "        GIF flags are: default include path"
3226   fi
3227   echo "        GIF libs are: $GIF_LIBS"
3228 else
3229   PKG_ERR([No GIF library development package installed!])
3230   PKG_SUGGEST([Install it from http://sourceforge.net/projects/giflib/])
3231   DEB_INSTALL([libungif-dev])
3232   DEB_ALTERNATIVE([libgif-dev])
3233   RPM_INSTALL([libgif-devel])
3234   RPM_ALTERNATIVE([giflib-devel])
3235   RPM_ALTERNATIVE([libunfif-devel])
3238 if test x"${PNG_LIBS}" != x ; then
3239   if test x"${PNG_CFLAGS}" != x ; then
3240     echo "        PNG flags are: $PNG_CFLAGS"
3241   else
3242     echo "        PNG flags are: default include path"
3243   fi
3244   echo "        PNG libs are: $PNG_LIBS"
3245 else
3246   PKG_REC([No PNG library development package installed!])
3247   PKG_SUGGEST([Gnash will be built without support for dynamic loading of PNG files.])
3248   PKG_SUGGEST([Install it from http://www.libpng.org])
3249   DEB_INSTALL([libpng12-dev])
3250   RPM_INSTALL([libpng-devel])
3253 if test x"${build_ovg}" = x"yes"; then
3254   if test x"${has_openvg}" = xyes; then
3255     echo "        OpenVG flags are: $OPENVG_CFLAGS"
3256     echo "        OpenVG libs are: $OPENVG_LIBS"
3257     else
3258       echo "        ERROR: No OpenVG development package installed!" >&3
3259       echo "               You need to install the libmesa development package" >&3
3260       echo "               or .deb users: apt-get install libopenvg1-mesa-dev" >&3
3261       echo "               or .rpm users: yum install mesa-libOpenVG-devel-7.8.1-7.fc13.i686" >&3
3262       echo "               or use a different renderer with --enable-renderer=" >&3
3263   fi
3266 if test x"${build_ogl}" = x"yes"; then
3267   if test x"$OPENGL_LIBS" != x; then
3268     if test x"$OPENGL_CFLAGS" != x; then
3269       echo "        OpenGL flags are: $OPENGL_CFLAGS"
3270     else
3271       echo "        OpenGL flags are: default include path"
3272     fi
3273     echo "        OpenGL libs are: $OPENGL_LIBS"
3274     else
3275       PKG_ERR([No OpenGL development package installed!])
3276       PKG_SUGGEST([You need to install the libmesa development package])
3277       DEB_INSTALL([libgl1-mesa-dev])
3278       RPM_INSTALL([mesa-libGL-devel])
3279       RPM_ALTERNATIVE([xorg-x11-Mesa-libGL])
3280       PKG_ALTERNATIVE([or use a different renderer with --enable-renderer=])
3281   fi
3284 if test x"${build_gles1}" = x"yes"; then
3285   if test x"${has_gles1}" = xyes; then
3286     if test x"${GLES1_CFLAGS}" != x; then
3287       echo "        OpenGLES1 flags are: ${GLES1_CFLAGS}"
3288     else
3289       echo "        OpenGLES1 flags are: default include path"
3290     fi
3291     echo "        OpenGLES1 libs are: ${GLES1_LIBS}"
3292   else
3293       PKG_ERR([No OpenGL-ES development package installed!])
3294       PKG_SUGGEST([You need to install the this from source probably])
3295       PKG_ALTERNATIVE([or use a different renderer with --enable-renderer=])
3296   fi
3299 dnl GLEXT is only needed for GTK/OpenGL
3300 if test x$build_gtk = xyes -a x$build_ogl = xyes ; then
3301   if test x"$GLEXT_LIBS" != x; then
3302     if test x"$GLEXT_CFLAGS" != x; then
3303       echo "        GtkGLExt flags are: $GLEXT_CFLAGS"
3304     else
3305       echo "        GtkGLExt flags are: default include path"
3306     fi
3307       echo "        GtkGLExt libs are: $GLEXT_LIBS"
3308   else
3309     PKG_ERR([No GtkGLExt development package installed!])
3310     PKG_SUGGEST([It is needed to build the GTK/OpenGL GUI/renderer combination.])
3311     PKG_SUGGEST([Install it from http://gtkglext.sourceforge.net])
3312     DEB_INSTALL([libgtkglext1-dev])
3313     RPM_INSTALL([gtkglext-devel])
3314     PKG_ALTERNATIVE([or --enable-gui=sdl or --enable-renderer=agg])
3315   fi
3318 if test x$build_gtk = xyes; then #{
3319   if test x"$GTK2_LIBS" != x; then
3320     if test x"$GTK2_CFLAGS" != x; then
3321       echo "        GTK2 flags are: $GTK2_CFLAGS"
3322     else
3323       echo "        GTK2 flags are: default include path"
3324     fi
3325       echo "        GTK2 libs are: $GTK2_LIBS"
3326   else
3327     PKG_ERR([No GTK2 development package installed!])
3328     PKG_SUGGEST([Install it from http://gtk.org])
3329     DEB_INSTALL([libgtk2.0-dev])
3330     RPM_INSTALL([gtk2-devel])
3331   fi
3333   if test x"$PANGO_LIBS" != x; then
3334     if test x"$PANGO_CFLAGS" != x; then
3335       echo "        Pango flags are: $PANGO_CFLAGS"
3336     else
3337       echo "        Pango flags are: default include path"
3338     fi
3339     echo "        Pango libs are: $PANGO_LIBS"
3340   else
3341     PKG_ERR([No Pango development package installed!])
3342     PKG_SUGGEST([Install it from http://pango.org])
3343     DEB_INSTALL([libpango1.0-dev])
3344     RPM_INSTALL([pango-devel])
3345   fi
3347   if test x"$GLIB_LIBS" != x; then
3348     if test x"$GLIB_CFLAGS" != x; then
3349       echo "        GLib flags are: $GLIB_CFLAGS"
3350     else
3351       echo "        GLib flags are: default include path"
3352     fi
3353     echo "        GLib libs are: $GLIB_LIBS"
3354   else
3355     PKG_ERR([No GLib development package installed!])
3356     PKG_SUGGEST([Install it from http://gtk.org])
3357     DEB_INSTALL([libglib2.0-dev])
3358     RPM_INSTALL([glib2-devel])
3359   fi
3361   if test x"$ATK_LIBS" != x; then
3362     if test x"$ATK_CFLAGS" != x; then
3363       echo "        ATK flags are: $ATK_CFLAGS"
3364     else
3365       echo "        ATK flags are: default include path"
3366     fi
3367       echo "        ATK libs are: $ATK_LIBS"
3368   else
3369     PKG_ERR([No ATK development package installed!])
3370     PKG_SUGGEST([Install it from http://atk.org])
3371     DEB_INSTALL([libatk1.0-dev])
3372     RPM_INSTALL([atk-devel])
3373   fi
3377 if test x"$build_media_gst" = x"yes"; then
3378   if test x"$missing_codecs" != x; then   
3379       echo "        Your Gstreamer installation is missing these codecs: $missing_codecs"
3380       echo "        Please install the gstreamer-ffmpeg for Gstreamer"
3381   fi  
3382   if test x"$GSTREAMER_LIBS" != x; then
3383     if test x"$GSTREAMER_CFLAGS" != x; then
3384       echo "        Gstreamer flags are: $GSTREAMER_CFLAGS"
3385     else
3386       echo "        Gstreamer flags are: default include path"
3387     fi
3388     echo "        Gstreamer libs are: $GSTREAMER_LIBS"
3389   else
3390     PKG_ERR([GST media handling requested but gstreamer-0.10+ not found])
3391     PKG_SUGGEST([Install it from http://www.gstreamer.net])
3392     DEB_INSTALL([libgstreamer0.10-dev])
3393     RPM_INSTALL([gstreamer-devel])
3394     YAST_INSTALL([gstreamer010-devel])
3395   fi
3396   if test x"$has_gstreamer_pbutils" != "xyes"; then
3397     PKG_REC([If the user has not installed the necessary Gstreamer plugins, Gstreamer can pop up a message prompting them to.])
3398     PKG_SUGGEST([Install gstpbutils (>= 0.10.15) from http://www.gstreamer.net for that to be enabled])
3399     DEB_INSTALL([libgstreamer-plugins-base0.10-dev])
3400     PKG_SUGGEST([or .rpm users: simply install the below package]) dnl TODO: Can/should this notice be done cleaner?
3401     PKG_SUGGEST([Also see --with-gstpbutils-incl and --with-gstpbutils-lib])
3402   fi
3403   if test x"$has_gstreamer_plugins_base" = "xno"; then
3404     dnl TODO: Check if this is really a mandatory asset!
3405     PKG_ERR([Base plugins are required for gstreamer media!])
3406     PKG_SUGGEST([Install gstreamer-plugins-base from http://www.gstreamer.net])
3407     DEB_INSTALL([libgstreamer-plugins-base0.10-dev])
3408     RPM_INSTALL([gstreamer-plugins-base-devel])
3409   fi
3412 dnl TODO: figure out some RPM package names.
3413 dnl TODO: The following tests is probably incorrect for any/older/exotic systems! Could someone experienced look at it?
3414 if test x"${build_media_ffmpeg}" = x"yes"; then
3415   if test x"$FFMPEG_LIBS" != x; then
3416     echo "        MP3 and video support enabled through FFmpeg"
3417     if test x"$FFMPEG_CFLAGS" != x; then
3418       echo "        FFmpeg flags are: $FFMPEG_CFLAGS"
3419     else
3420       echo "        FFmpeg flags are: default include path"
3421     fi
3422     echo "        FFmpeg libs are: $FFMPEG_LIBS"
3423   else
3424     PKG_ERR([No FFmpeg development package installed!])
3425     PKG_SUGGEST([You can install FFmpeg from http://ffmpeg.org])
3426     DEB_INSTALL([libavcodec-dev])
3427     RPM_INSTALL([ffmpeg-devel])
3428     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3429   fi
3431   if test x"${avformat_h}" = x; then
3432     PKG_ERR([FFmpeg's avformat header is installed but not libavformat!])
3433     PKG_SUGGEST([You can install FFmpeg from http://ffmpeg.org])
3434     DEB_INSTALL([libavformat-dev])
3435     YAST_INSTALL([libavformat-api]) dnl (but currently installs into /usr/lib64)
3436     PKG_ALTERNATIVE(or explicitly set the path using --with-ffmpeg-incl=)
3437     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3438   fi
3440   if test x"${have_ffmpeg_swscale}" = "xno"; then
3441     PKG_ERR([No libswscale development package installed!])
3442     PKG_SUGGEST([You can install libswscale from http://ffmpeg.org])
3443     DEB_INSTALL([libswscale-dev])
3444     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3445   fi
3448 if test x$build_cairo = xyes; then
3449   if test x"$CAIRO_LIBS" != x; then
3450     if test x"$CAIRO_CFLAGS" != x; then
3451       echo "        Cairo flags are: $CAIRO_CFLAGS"
3452     else
3453       echo "        Cairo flags are: default include path"
3454     fi
3455     echo "        Cairo libs are: $CAIRO_LIBS"
3456   else
3457     PKG_ERR([No Cairo development package installed!])
3458     PKG_SUGGEST([You need to have the Cairo development package installed if you have used --enable-render=cairo to configure.])
3459     PKG_SUGGEST([Install it from http://cairographics.org])
3460     DEB_INSTALL([libcairo-dev])
3461     RPM_INSTALL([cairo-devel])
3462   fi
3465 if test x$build_fltk = xyes; then
3466   if test x"$FLTK2_LIBS" != x; then
3467     if test x"$FLTK2_CFLAGS" != x; then
3468       echo "        FLTK flags are: $FLTK2_CFLAGS"
3469     else
3470       echo "        FLTK flags are: default include path"
3471     fi
3472       echo "        FLTK libs are: $FLTK2_LIBS"
3473   else
3474     PKG_ERR([No FLTK2 development package installed!])
3475     PKG_SUGGEST([Install it from http://fltk.org])
3476     PKG_ALTERNATIVE(or change to a different gui with --enable-gui=...)
3477   fi
3480 if test x$build_fltk = xyes; then
3481   if test x"$XFT_LIBS" != x; then
3482     if test x"$XFT_CFLAGS" != x; then
3483       echo "        Xft flags are: $XFT_CFLAGS"
3484     else
3485       echo "        Xft flags are: default include path"
3486     fi
3487     echo "        Xft libs are: $XFT_LIBS"
3488   fi
3491 # See whether SDL is required
3492 need_sdl=false
3493 test x$build_sdl = xyes                 && need_sdl=true
3494 test x$build_sound_sdl = xyes   && need_sdl=true
3496 if $need_sdl; then
3497   if test x"$SDL_LIBS" != x; then
3498     echo "        SDL flags are: $SDL_CFLAGS"
3499     echo "        SDL libs are: $SDL_LIBS"
3500   else
3501     PKG_ERR([No SDL development package installed!])
3502     PKG_SUGGEST([Install it from http://www.libsdl.org/download-1.2.php])
3503     DEB_INSTALL([libsdl1.2-dev])
3504     RPM_INSTALL([SDL-devel])
3505     PKG_ALTERNATIVE(or change to a different gui with --enable-gui=...)
3506   fi
3508 unset need_sdl
3510 if test x"$nsapi" = x"yes"; then
3511     echo "        Plugin will be installed in ${FIREFOX_PLUGINS}"
3514 if test x"${pthreads}" = x"yes"; then
3515   if test x"$PTHREAD_CFLAGS" != x; then
3516     echo "        POSIX Threads flags are: $PTHREAD_CFLAGS"
3517   fi
3518   if test x"${PTHREAD_LIBS}" != x; then
3519     echo "        POSIX Threads lib is: $PTHREAD_LIBS"
3520   else
3521     if test x"${cross_compiling}" = xno; then
3522       echo "ERROR: No pthread development package installed!" >&3
3523     fi
3524   fi
3527 if test x"${docbook}" = x"yes"; then
3528   if test x"$MAKEINFO" = x; then
3529     PKG_ERR([No makeinfo tools installed!])
3530     PKG_SUGGEST([Install it from http://www.gnu.org/software/texinfo/])
3531     DEB_INSTALL([texinfo])
3532     RPM_INSTALL([texinfo])
3533     RPM_ALTERNATIVE([texinfo-tex])
3534   fi
3535   dnl low-level tools
3536   if test x"$DB2X_TEXIXML" = x -o x"$DB2X_MANXML" = x -o x"$DB2X_XSLTPROC" = x; then
3537     dnl high-level tools
3538     if test x"${DB2X_TEXI}" = x -o x"${DB2X_MAN}" = x; then
3539       PKG_ERR([No DocBook2X tools installed!])
3540       PKG_SUGGEST([Install it from http://docbook2x.sourceforge.net])
3541       dnl TODO: Could someone look at this and confirm the needed software is installed?
3542       dnl FIXME: I removed the texidocbook and docbook-utilsnfo packages as they are not on my system.
3543       DEB_INSTALL([docbook2x docbook-xml docbook-xsl texinfo xsltproc])
3544       PKG_ALTERNATIVE([or configure without --enable-docbook])
3545     fi
3546   else
3547     echo "        You have version $db2x_version of the DocBook2X tools."
3548   fi
3549 else
3550   PKG_WAR([without --enable-docbook we will use the cached documentation files included in the gnash distribution. If you change files in doc/C, you should --enable-docbook.])
3553 if test x"$CURL_LIBS" != x; then
3554   if test x"$CURL_CFLAGS" != x; then
3555     echo "        CURL flags are: $CURL_CFLAGS"
3556   else
3557     echo "        CURL flags are: default include path"
3558   fi
3559     echo "        CURL libs are: $CURL_LIBS"
3560 else
3561   PKG_REC([If you install the CURL library, Gnash will be able to display remote content (streaming from URLs) using CURL.])
3562   PKG_SUGGEST([Install libcurl from http://curl.haxx.se/libcurl])
3563   DEB_INSTALL([libcurl4-gnutls-dev]) dnl TODO: Do we prefer this one? GnuTLS is LGPL'd so it's probably more licensively compatible than OpenSSL?
3564   DEB_ALTERNATIVE([libcurl-dev])
3565   RPM_INSTALL([curl-devel])
3568 if test x"$SPEEX_LIBS" != x; then
3569   if test x"$SPEEX_CFLAGS" != x; then
3570     echo "        Speex flags are: $SPEEX_CFLAGS"
3571   else
3572     echo "        Speex flags are: default include path"
3573   fi
3574     echo "        Speex libs are: $SPEEX_LIBS"
3575 else
3576   PKG_REC([If you install the Speex library, Gnash will be able to decoded Speex encoded audio in FLV files.])
3577   PKG_SUGGEST([Install libspeex from http://speex.org])
3578   DEB_INSTALL([libspeex-dev])
3579   RPM_INSTALL([speex-devel])
3582 if test x"$SPEEXDSP_LIBS" != x; then
3583   if test x"$SPEEXDSP_CFLAGS" != x; then
3584     echo "        Speex DSP flags are: $SPEEXDSP_CFLAGS"
3585   else
3586     echo "        Speex DSP flags are: default include path"
3587   fi
3588     echo "        Speex DSP libs are: $SPEEXDSP_LIBS"
3589 else
3590   PKG_REC([If you install the Speex DSP library, Gnash will be able to resample Speex encoded audio in FLV files.])
3591   PKG_SUGGEST([Install libspeexdsp from http://speex.org])
3592   DEB_INSTALL([libspeexdsp-dev])
3593   RPM_INSTALL([speex-devel])
3596 if test x"$ext_dbus" = xyes; then
3597   if test x"$DBUS_LIBS" != x; then
3598     if test x"$DBUS_CFLAGS" != x; then
3599       echo "        DBUS flags are: $DBUS_CFLAGS"
3600     else
3601       echo "        DBUS flags are: default include path"
3602     fi
3603       echo "        DBUS libs are: $DBUS_LIBS"
3604   else
3605     PKG_WAR([No DBUS development package was found! Gnash will be built without support for remote controls.])
3606     PKG_SUGGEST([Install libdbus from http://www.dbus.org])
3607     DEB_INSTALL([dbus-dev])
3608     DEB_ALTERNATIVE([libdbus-1-dev])
3609     RPM_INSTALL([dbus-devel])
3610   fi
3613 if test x$build_agg = xyes; then # {
3614   echo "        AGG Pixel format is: $pixelformat"
3615   if test x"$AGG_LIBS" != x -a x"${agg25}" == xyes; then # {
3616     if test x"$AGG_CFLAGS" != x; then # {
3617       echo "        AGG flags are: $AGG_CFLAGS"
3618     else # }{
3619       echo "        AGG flags are: default include path"
3620     fi # }
3621     echo "        AGG libs are: $AGG_LIBS"
3622   else # }{
3623     if test x"$AGG_LIBS" != x -a x"${agg25}" != xyes; then
3624       PKG_ERR([Your installation of AGG appears to be version 2.4 or older. Please upgrade to AGG 2.5 or greater.])
3625     else
3626       PKG_ERR([No AGG development package installed!])
3627     fi
3628     PKG_SUGGEST([Install it from http://www.antigrain.com])
3629     DEB_INSTALL([libagg-dev])
3630     RPM_INSTALL([agg-devel])
3631   fi # }
3632 fi # }
3634 dnl TODO: This package is handled a bit stupidly in regard to the package
3635 dnl suggestion system. It would be better to check for each package
3636 dnl separately, instead of passing the missing ones in variables..
3637 if test x"$BOOST_LIBS" != x; then
3638   echo "        BOOST flags are: $BOOST_CFLAGS"
3639   echo "        BOOST libs are: $BOOST_LIBS"
3640   echo "        BOOST libs for cygnal are: $BOOST_CYGNAL_LIBS"
3642   if test x"${missing_headers}" != x; then
3643     for i in ${missing_headers}; do
3644       PKG_ERR([The Boost $i header is not installed])
3645       PKG_SUGGEST([Install it from http://www.boost.org])
3646     done
3647   fi
3649   if test x"${cygnal}" = x"yes"; then
3650     if test x"${cygnal_missing_libs}" != x; then
3651       for i in ${cygnal_missing_libs}; do
3652         PKG_ERR([No Boost $i package installed])
3653         PKG_SUGGEST([Install it from http://www.boost.org])
3654         debtmppkg="libboost-`echo ${i} | sed 's/_/-/g'`-dev"
3655         DEB_INSTALL([$debtmppkg])
3656         PKG_ALTERNATIVE([or configure with --disable-cygnal])
3657       done
3658     fi
3659   fi
3661   if test x"${missing_libs}" != x; then
3662     for i in ${missing_libs}; do
3663       PKG_ERR([No Boost $i package installed])
3664       PKG_SUGGEST([Install it from http://www.boost.org])
3665       debtmppkg="libboost-`echo ${i} | sed 's/_/-/g'`-dev"
3666       DEB_INSTALL([$debtmppkg])
3667     done
3668   fi
3669 else
3670   PKG_ERR([No Boost development package installed])
3671   PKG_SUGGEST([Install it from http://www.boost.org])
3672   dnl I am not sure that libboost-program-options-dev should be passed here, but
3673   dnl it seems like the cleanest way to get it.
3674   if test x"$cygnal" = xyes; then
3675     DEB_INSTALL([libboost-dev libboost-thread-dev libboost-program-options-dev libboost-date-time-dev])
3676   else
3677     DEB_INSTALL([libboost-dev libboost-thread-dev libboost-program-options-dev])
3678   fi
3679   RPM_INSTALL([boost-devel])
3682 dnl don't look for the flash compilers when cross compiling.
3683 if test x"$testsuite" = x"yes"; then
3684   if test x$cross_compiling = xno; then
3685     if test x"$MING_LIBS" != x; then
3686       echo "        MING flags are $MING_CFLAGS"
3687       echo "        MING libs are $MING_LIBS"
3688     else
3689       PKG_WAR([You need to have the Ming development package installed to run most of the tests in Gnash testsuite.])
3690       PKG_SUGGEST([Install it from http://www.libming.org/])
3691       DEB_INSTALL([libming-dev])
3692       RPM_INSTALL([libming-devel])
3693     fi
3695     if test x"$MAKESWF" != x; then
3696       echo "        MING version code is $MING_VERSION_CODE"
3697       echo "        MAKESWF is $MAKESWF"
3698     else
3699       PKG_WAR([You need to have the Ming utilities package version 0.4 or higher installed to run many of the tests in Gnash testsuite.])
3700       PKG_SUGGEST([Install it from http://www.libming.org/])
3701       DEB_INSTALL([libming-util])
3702       RPM_INSTALL([ming-util])
3703       RPM_ALTERNATIVE([ming-utils])
3704     fi
3706     if test x"$MAKESWF" != x && test $MING_VERSION_CODE -lt 00040006; then
3707       echo "        WARNING: You have an older version of Ming installed and will not" >&4
3708       echo "                 be able to run all of the tests in Gnash testsuite." >&4
3709       echo "                 Install the latest version from http://www.libming.org" >&4
3710     fi
3712     if test x"$SWFDEC_TESTSUITE" != x; then
3713       echo "        SWFDEC testsuite dir is $SWFDEC_TESTSUITE"
3714     fi
3716     if test x"$MTASC" != x; then
3717       echo "        MTASC is $MTASC"
3718       echo "        MTASC CLASSPATH is $MTASC_CLASSPATH"
3719     else
3720       PKG_WAR([You need to have the MTASC compiler packages installed to run some of the tests in Gnash testsuite.])
3721       PKG_SUGGEST([Install it from http://mtasc.org])
3722       DEB_INSTALL([mtasc])
3723       RPM_INSTALL([mtasc])
3724     fi
3726     if test x"$HAXE" != x; then
3727       echo "        HAXE is $HAXE"
3728       echo "        HAXE CLASSPATH is $HAXE_CLASSPATH"
3729     else
3730       PKG_WAR([You need to have the HAXE compiler package version 2.00 or higher installed to run some of the tests in Gnash testsuite.])
3731       PKG_SUGGEST([Install it from http://haxe.org])
3732       DEB_INSTALL([haxe])
3733       RPM_INSTALL([haxe])
3734     fi
3736     if test x"$SWFMILL" != x; then
3737       echo "        SWFMILL is $SWFMILL"
3738       if test x"$ENABLE_AVM2" != x -a "$SWFMILL_VERSION" -lt 00021206; then
3739         PKG_WAR([You are building Gnash with AVM2 support but your swfmill version is too old to run AS3 tests.])
3740       fi
3741     else
3742       PKG_WAR([You need to have the swfmill tool installed to run some of the tests in Gnash testsuite.])
3743       PKG_SUGGEST([Install it from http://swfmill.org])
3744       DEB_INSTALL([swfmill])
3745       RPM_INSTALL([swfmill])
3746     fi
3748     if test x"$SWFC" != x; then
3749       echo "        SWFC is $SWFC"
3750     else
3751       PKG_WAR([You need to have swfc from SWFTools installed to run some of the tests in Gnash testsuite.])
3752       PKG_SUGGEST([Install it from http://swftools.org])
3753       DEB_INSTALL([swftools])
3754       RPM_INSTALL([swftools])
3755     fi
3757     if test x"$AS3COMPILE" != x; then
3758       echo "        AS3COMPILE is $AS3COMPILE"
3759     else
3760       PKG_WAR([You need to have as3compile from SWFTools installed to run some of the tests in Gnash testsuite.])
3761       PKG_SUGGEST([Install it from http://swftools.org])
3762     fi
3764     if test x"$HTTP_TESTSUITE" != x; then
3765       echo "        HTTP testsuite dir is $HTTP_TESTSUITE"
3766     fi
3768     if test x"$RED5_HOST" != x; then
3769       echo "        RED5 testing host is $RED5_HOST"
3770     fi
3771   fi
3774   if test x"$PERL" != x; then
3775     echo "        PERL is $PERL"
3776   else
3777     PKG_WAR([You need to have perl installed to run some of the tests in Gnash testsuite.])
3778     PKG_SUGGEST([Install it from http://perl.org])
3779     DEB_INSTALL([perl])
3780     RPM_INSTALL([perl])
3781   fi
3783 if test x"$testsuite" = x"yes"; then
3784   if test x"$CSOUND" != x; then
3785     echo "        CSOUND is $CSOUND"
3786   else
3787     echo "        WARNING: You need to have csound installed" >&4
3788     echo "                 to have real fun." >&4
3789     echo "                 Install it from http://www.csounds.com/" >&4
3790     echo "                 or .deb users: apt-get install csound" >&4
3791     echo "                 or .rpm users: yum install csound" >&4
3792   fi
3795 if test x"$Z_LIBS" != x; then
3796   if test x"$Z_CFLAGS" != x; then
3797     echo "        Z flags are: $Z_CFLAGS"
3798   else
3799     echo "        Z flags are: default include path"
3800   fi
3801   echo "        Z libs are: $Z_LIBS"
3802 else
3803   PKG_REC([You need to have the zlib development packages installed to play compressed SWF (most of them from version 6 up) and to display some kinds of JPEG files.])
3804   PKG_SUGGEST([Install it from http://zlib.net])
3805   DEB_INSTALL([zlib1g-dev])
3806   RPM_INSTALL([zlib-devel])
3807   PKG_ALTERNATIVE([It may still be possible to configure without zlib.])
3810 if test x"$FREETYPE2_LIBS" != x; then
3811   if test x"$FREETYPE2_CFLAGS" != x; then
3812     echo "        FreeType flags are: $FREETYPE2_CFLAGS"
3813   else
3814     echo "        FreeType flags are: default include path"
3815   fi
3816   echo "        FreeType libs are: $FREETYPE2_LIBS"
3817 else
3818   PKG_REC([You need to have the freetype development packages installed to use device fonts.])
3819   PKG_SUGGEST([Install it from http://freetype.org])
3820   DEB_INSTALL([libfreetype6-dev])
3821   RPM_INSTALL([freetype-devel])
3822   PKG_ALTERNATIVE([It may still be possible to configure without freetype.])
3825 if test x"$FONTCONFIG_LIBS" != x; then
3826   if test x"$FONTCONFIG_CFLAGS" != x; then
3827     echo "        Fontconfig flags are: $FONTCONFIG_CFLAGS"
3828   else
3829     echo "        Fontconfig flags are: default include path"
3830   fi
3831   echo "        Fontconfig libs are: $FONTCONFIG_LIBS"
3832 else
3833   PKG_REC([You need to have the fontconfig development packages installed to use device fonts.])
3834   PKG_SUGGEST([Install it from http://fontconfig.org])
3835   DEB_INSTALL([libfontconfig1-dev])
3836   RPM_INSTALL([fontconfig-devel])
3837   PKG_ALTERNATIVE([It may still be possible to configure without fontconfig.])
3840 if test x$ext_mysql = xyes; then
3841   if test x$mysql != xno; then
3842     if test x"$MYSQL_LIBS" != x; then
3843       echo "        MYSQL flags are: $MYSQL_CFLAGS"
3844       echo "        MYSQL libs are: $MYSQL_LIBS"
3845     else
3846       PKG_ERR([No MySQL development package is installed.])
3847       PKG_SUGGEST([Install it from http://mysql.org])
3848       DEB_INSTALL([libmysqlclient-dev])
3849       RPM_INSTALL([mysql-devel])
3850       PKG_ALTERNATIVE([or reconfigure without --enable-extensions=mysql])
3851     fi
3852   fi
3855 if test "$GMSGFMT" = ":"; then
3856   PKG_WAR([You need the gettext package installed to use translations. Required for building a package or 'make distcheck'])
3857   PKG_SUGGEST([Install it from http://www.gnu.org/software/gettext/])
3858   DEB_INSTALL([gettext])
3859   RPM_INSTALL([gettext])
3862 if test x"${build_vaapi}" = x"yes"; then
3863   if test x"${LIBVA_CFLAGS}" = xyes; then
3864       echo "        LIBVA flags are: default"
3865     else
3866       echo "        LIBVA flags are: $LIBVA_CFLAGS"
3867       echo "        LIBVA libraries are: $LIBVA_LIBS"
3868   fi
3869   if test x$use_libva_x11 = xyes; then
3870     if test x"${LIBVA_X11_CFLAGS}" = xyes; then
3871       echo "        LIBVA X11 flags are: default"
3872     else
3873       echo "        LIBVA X11 flags are: $LIBVA_X11_CFLAGS"
3874       echo "        LIBVA X11 libraries are: $LIBVA_X11_LIBS"
3875     fi
3876   fi
3877   if test x$use_libva_glx = xyes; then
3878     if test x"${LIBVA_GLX_CFLAGS}" = xyes; then
3879       echo "        LIBVA GLXflags are: default"
3880     else
3881       echo "        LIBVA GLX flags are: $LIBVA_GLX_CFLAGS"
3882     fi
3883     echo "        LIBVA GLX libraries are: $LIBVA_GLX_LIBS"
3884   fi
3887 if test x"$ac_cv_gcc_visibility" != xyes; then
3888   if test x"$npapi" = xyes; then
3889     PKG_WAR([NPAPI (mozilla) plugin is enabled, but your compiler does not support symbol visibility. This may cause the plugin to malfunction and may result in small children being eaten. You have been warned!])
3890   fi
3893 if test x"$npapi" = xyes; then
3894   if test x"$has_npapi" = xyes; then
3895     echo "        NPAPI flags are: $NPAPI_CFLAGS"
3896   else
3897     PKG_ERR([No xulrunner development package is installed!])
3898     PKG_SUGGEST([Install it from http://releases.mozilla.org/pub/mozilla.org/xulrunner])
3899     DEB_INSTALL([xulrunner-dev])
3900     RPM_INSTALL([xulrunner-devel])
3901   fi
3902 else
3903   echo "        NPAPI plugin is disabled"
3906 if test x"${DEJAGNU}" != x""; then
3907   echo "        DEJAGNU's runtest is $DEJAGNU"
3908 else
3909   PKG_WAR([You need the dejagnu package installed to get a summary after running 'make check'.])
3910   PKG_SUGGEST([Install it from http://www.gnu.org/software/dejagnu/])
3911   DEB_INSTALL([dejagnu])
3912   RPM_INSTALL([dejagnu])
3915 dnl Haiku
3916 if test x"${build_haiku}" = xyes -o x"${build_sound_mkit}" = xyes -o x"${build_media_haiku}" = x"yes"; then
3917     echo "        Haiku libs are: $HAIKU_LIBS"
3920 if test x"$has_ltdl" = x"yes";then
3921   echo "        LIBLTDL flags are: $LTDL_CFLAGS"
3922   echo "        LIBLTDL libs are: $LTDL_LIBS"
3923 else
3924   if test x"${extensions_support}" != xno; then
3925     PKG_ERR([No libltdl development package is installed, yet --disable-extensions was not specified.])
3926     PKG_SUGGEST([Install it from ftp://ftp.gnu.org/gnu/libtool/])
3927     DEB_INSTALL([libltdl-dev])
3928     RPM_INSTALL([libtool-ltdl-devel])
3929   fi
3932 if test x"$python" = x"yes"; then
3933   if test x"$has_python" = x"yes"; then
3934     echo "        PYTHON flags are: $PYTHON_CFLAGS"
3935     echo "        PYTHON libs are: $PYTHON_LIBS"
3936     echo "        PYTHON executable is: $PYTHON"
3937   else
3938     PKG_ERR([No Python development package is installed, but it's enabled.])
3939   fi
3941 if test x${build_ssl} = xyes; then
3942   if test x"${has_ssl}" = xyes; then
3943     if test x"${SSL_CFLAGS}" = xyes; then
3944       echo "        SSL flags are: default"
3945     else
3946       echo "        SSL flags are: $SSL_CFLAGS"
3947     fi
3948     echo "        SSL libs are: $SSL_LIBS"
3949   else
3950     PKG_ERR([No SSL development package is installed, but it's enabled."])
3951   fi
3954 if test x${build_ssh} = xyes; then
3955   if test x"${has_ssh}" = xyes; then
3956     if test x"${SSH_CFLAGS}" = xyes; then
3957       echo "        SSH flags are: default"
3958     else
3959       echo "        SSH flags are: $SSH_CFLAGS"
3960     fi
3961     echo "        SSH libs are: $SSH_LIBS"
3962   else
3963     PKG_ERR([No SSH development package is installed, but it's enabled."])
3964   fi
3967 if test x"${build_all_as3}" = x"yes"; then
3968   echo "        Building the entire ActionScript class libary"
3969 else
3970   echo "        Only building these ActionScript classes into the library:"
3971   echo "     ${classlist}"
3974 if test x"$testsuite" = x"yes"; then
3975   if test x"$NETCAT" != x; then
3976     echo "        You have netcat installed, which is only used for testing"
3977   else
3978     echo "        Install netcat for networking test support"
3979   fi
3980   if test x"$WGET" != x; then
3981     echo "        You have wget installed, which is only used for testing"
3982   else
3983     echo "        Install wget for networking test support"
3984   fi
3987 if test x$cross_compiling = xyes; then
3988    if test x"${android_ndk}" != xno; then
3989       AC_MSG_NOTICE([This build is setup for cross compiling for Android])
3990    else
3991       AC_MSG_NOTICE([This build is setup for cross compiling])
3992    fi
3995 echo "--------"
3997 if test x"${cygnal}" = x"yes"; then
3998   echo "        Building Cygnal media server enabled (default). Use --disable-cygnal to disable."
3999 else
4000   echo "        Building Cygnal media server disabled."
4003 if test x"${with-top_level}" != x; then
4004   echo "        Top level for cross compiling support files is: $with_top_level"
4007 if test x"${build_gtk}" = xyes -a x"${pixelformat}" = xrgb565; then
4008   echo "        WARNING: Pixel format RGB565 selected in combination with the" >&4
4009   echo "                 GTK GUI. Only a hacked GTK will work (e.g. on the OLPC)." >&4
4012 if test x"${extensions_list}" != x; then
4013   echo "        Building extensions: ${extensions_list}"
4016 if test x"${extensions_support}" = xno; then
4017   echo "        Extension support disabled."
4020 if test x"${security_list}" != x; then
4021   echo "        Enabling security features: ${security_list}"
4024 if test x"${statistics_list}" != x; then
4025   echo "        Enabling statistics collecting for: ${statistics_list}"
4028 if test x"${SUPPORTED_GUIS}" = x; then
4029   AC_MSG_ERROR(no supported GUIs found);
4032 echo "        GUI toolkits supported: ${SUPPORTED_GUIS}"
4033 echo "        Renderers supported: ${renderer_list}"
4034 echo "        Hardware Acceleration: ${device_list}"
4035 echo "        Media handlers: ${media_list}"
4036 echo "        Using ${add_sound} for sound handling"
4037 echo "        Using $with_shm mode for shared memory"
4039 if test x"$docbook" = x"yes"; then
4040   echo '        DocBook document processing enabled (for "make html" and "make pdf")'
4041   if test x"$docbook_styles" != x; then
4042     echo "        Docbook styles sheets in $docbook_styles"
4043   fi
4044 else
4045   echo "        DocBook document processing disabled (default)"
4048 dnl The Framebuffer GUI has several other settings. As it doesn't have X11,
4049 dnl we have to handle input devics ourselves.
4050 if test x"${build_fb}" = xyes; then
4051 echo "        Using ${input_events} for Input"
4052   if test x"${fakefb}" != x; then
4053     echo "        Using shared memory as a fake framebuffer"
4054   fi
4055   if test x"${offscreen}" = xyes; then
4056     echo "        Using offscreen rendering"
4057   fi
4058   if test x"${doublebuf}" = xyes; then
4059     echo "        Using double buffering when rendering"
4060   fi
4063 if test -s $cwarn; then
4064   echo ""
4065   cat $cwarn
4066   rm $cwarn
4067   echo ""
4068   echo "Gnash should still compile even with these warnings."
4069   echo "If it doesn't, report the warnings as a bug."
4070 else
4071   rm $cwarn
4074 if test -s $crec; then
4075   echo ""
4076   cat $crec
4077   rm $crec
4078   echo ""
4079   echo "Gnash should still compile, but you'll miss important support"
4080 else
4081   rm $crec
4084 if test -s $cerr; then
4085   echo ""
4086   cat $cerr >&2
4089 deb_err="`cat $deb_err`"
4090 deb_war="`cat $deb_war`"
4091 deb_rec="`cat $deb_rec`"
4092 rpm_err="`cat $rpm_err`"
4093 rpm_war="`cat $rpm_war`"
4094 rpm_rec="`cat $rpm_rec`"
4095 yast_err="`cat $yast_err`"
4096 yast_war="`cat $yast_war`"
4097 yast_rec="`cat $yast_rec`"
4099 # Pipe stderr to /dev/null since Fedora complains when target isn't there.
4100 if test x`which apt-get 2>/dev/null` != x; then
4101   if test x"$deb_err" != x -o x"$deb_war" != x -o x"$deb_rec" != x; then
4102     echo "#!/bin/sh" > deb-attempt-install-dependencies.sh
4103     echo "packages=\"$deb_err $deb_war $deb_rec\"" >> deb-attempt-install-dependencies.sh
4104     echo "PKGCOMMAND=\"apt-get install -y -q\"" >> deb-attempt-install-dependencies.sh
4105     cat ${srcdir}/base-attempter.sh >> deb-attempt-install-dependencies.sh
4106     chmod +x deb-attempt-install-dependencies.sh
4107     echo ""
4108     echo ".deb users might be able to install most dependencies by executing:"
4109     echo "sudo ./deb-attempt-install-dependencies.sh"
4110   fi
4113 if test x`which yum 2>/dev/null` != x; then
4114   if test x"$rpm_err" != x -o x"$rpm_war" != x -o x"$deb_rec" != x; then
4115     echo "#!/bin/sh" > rpm-attempt-install-dependencies.sh
4116     echo "packages=\"$rpm_err $rpm_war  $rpm_rec\"" >> rpm-attempt-install-dependencies.sh
4117     echo "PKGCOMMAND=\"yum install -y \""    >> rpm-attempt-install-dependencies.sh
4118     cat ${srcdir}/base-attempter.sh >> rpm-attempt-install-dependencies.sh
4119     chmod +x rpm-attempt-install-dependencies.sh
4120     echo ""
4121     echo ".rpm users might be able to install most dependencies by executing:"
4122     echo "sudo ./rpm-attempt-install-dependencies.sh"
4123   fi
4126 dnl TODO: Add support for yast here, which AFAIK is used on OpenSuse.
4128 dnl If anything critical is missing, don't bother to continue
4129 if test -s $cerr; then
4130   echo ""
4131   rm $cerr
4132   AC_MSG_ERROR([Please install required packages])
4133 else
4134   rm $cerr
4137 rm -rf $tmp
4139 if test x"$fork" = x"no"; then
4140   echo ""
4141   AC_MSG_ERROR([Currently only forking the standalone player works!])
4143 echo ""
4145 # Local Variables:
4146 # c-basic-offset: 2
4147 # tab-width: 2
4148 # indent-tabs-mode: nil
4149 # End: