reenable InvalidatedRegions for AGG in a framebuffer
[gnash.git] / configure.ac
blobab9e940c90161ead4633050d249a9f4cab983fc5
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(LINUX, test x$linux = xyes)
208 AM_CONDITIONAL(WIN32, test x$windows = xyes)
209 AM_CONDITIONAL(HAIKU, test x$haiku = xyes)
210 AM_CONDITIONAL(AMIGAOS4, test x$amigaos4 = xyes)
212 dnl Get build date for helping us debugging
213 BUILDDATE="`date +%Y%m%d`"
214 AC_SUBST(BUILDDATE)
216 dnl These are required by automake
217 AM_INIT_AUTOMAKE
218 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
219 AM_MAINTAINER_MODE
220 AC_PROG_MAKE_SET
222 AM_GNU_GETTEXT([external])
223 AM_CONDITIONAL(HAS_GETTEXT, test x$ac_cv_path_XGETTEXT != x)
225 dnl Many of the Gnash macros depend on gettext macros defining shlibext; recent
226 dnl gettext however does not.
227 if test x"${shlibext}" = x; then
228   if test x"${acl_cv_shlibext}" = x; then
229     echo "Gettext macros were supposed to define shared library extensions"
230     exit 1;
231   else
232     shlibext="${acl_cv_shlibext}"
233   fi
236 dnl This is primarily used when compiling for a similar architecture,
237 dnl like pentium->geode, which can use the same compiler, but have
238 dnl different development libraries.
240 AC_ARG_WITH(sysroot,
241   AC_HELP_STRING([--with-sysroot],
242   [system root directory for cross compiling]),
243   with_top_level=${withval} ;
244   cross_compiling=yes)
246 dnl Android is a little different when using a standard cross toolchain,
247 dnl so we have to configure especially for it for now. Usually it's
248 dnl something like this:
250 dnl arm-linux-eabi-gcc -Wl,--dynamic-linker -Wl,/system/bin/linker
251 dnl -nostdlib -Wl,-rpath -Wl,/system/lib -Wl,-rpath
252 dnl -Wl,/opt/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib
253 dnl -L/opt/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib
254 dnl -lc -o hello
255 dnl  /opt/android-ndk-r3/build/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
256 dnl Recent versions of G++ (I'm using 4.5 from source
257 android_ndk=no
258 AC_ARG_WITH([android],
259   AC_HELP_STRING([--with-android], [directory where android NDK is installed]),
260         android_ndk=${withval}
261         if test x"${withval}" != x; then
262           android_ndk=${withval}
263         else
264           android_ndk=/opt/android-ndk-r3/build/platforms/android-5/arch-arm
265         fi
267 CROSS_CXXFLAGS=
268 if test x"${android_ndk}" != xno; then
269   CROSS_CXXFLAGS=-mandroid -fexceptions
270   if test x"${with_top_level}" = x; then
271     with_top_level=/usr/local/android-arm/sysroot/usr
272     cross_compiling=yes
273   fi
274   ANDROID_NDK=${android_ndk}
275   AC_DEFINE(ANDROID, [1], [This is an Android build])
276 else
277   ANDROID_NDK=
279 AC_SUBST(ANDROID_NDK)
280 AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
282 AC_C_BIGENDIAN
283 AC_C_CONST
284 AC_C_INLINE
286 AC_PATH_PROG(DEJAGNU, runtest)
288 dnl These options are for Cygnal, which collects optional statistics
289 dnl on all the network traffic By default, we turn on statistics
290 dnl collecting for the incoming and outgoing queues, since those are
291 dnl required to be compatiable with FMS 3, and the ActionScript server
292 dnl management API. buffers are the lowest level data storage, this
293 dnl data is the time spent in the queue, and is primarily only used
294 dnl for tuning the queueing API in Gnash. Memoryis the same, it's only
295 dnl used by developers for tuning performance of memory allocations in
296 dnl Gnash.
297 buffers=no
298 que=no
299 memory=no
300 cache=yes
301 stat_proplookup=no
302 AC_ARG_WITH(statistics,
303   AC_HELP_STRING([--with-statistics=], [Specify which statistics features to enable]),
304   if test -n ${withval}; then
305     if test "x${withval}" != "xno"; then
306       extlist="${withval}"
307       withval=`echo ${withval} | tr '\054' ' ' `
308     else
309       extlist=""
310       withval=""
311     fi
312   fi
313   statistics_list=""
314   nstatistics=0
315   while test -n "${withval}" ; do
316     val=`echo ${withval} | cut -d ' ' -f 1`
317     [case "${val}" in
318       buffers)
319         buffers=yes
320         nstatistics=$((nstatistics+1))
321         ;;
322       que)
323         que=yes
324         nstatistics=$((nstatistics+1))
325         ;;
326       memory)
327         memory=yes
328         nstatistics=$((nstatistics+1))
329         ;;
330       cache)
331         cache=yes
332         nstatistics=$((nstatistics+1))
333         ;;
334       proplookup)
335         stat_proplookup=yes
336         nstatistics=$((nstatistics+1))
337         ;;
338       all|ALL)
339         buffers=yes
340         memory=yes
341         queu=yes
342         cache=yes
343         stat_proplookup=yes
344         nstatistics=5           dnl this must be incremented if you add anything
345         ;;
346       *) AC_MSG_ERROR([invalid statistics feature specified: ${withval} given (accept: buffers|que|memory|cache|proplookup|all)])
347         ;;
348       esac]
349     withval=`echo ${withval} | cut -d ' ' -f 2-6`
350     if test "x$val" = "x$withval"; then
351       break;
352     fi
353   done
355 if test x${buffers} = xyes; then
356   statistics_list="${statistics_list} buffers"
357   AC_DEFINE(USE_STATS_BUFFERS, [1], [Support statistics collecting for the queue buffers])
358   AC_MSG_WARN([This option will effect your performance])
361 if test x${memory} = xyes; then
362   statistics_list="${statistics_list} memory"
363   AC_DEFINE(USE_STATS_MEMORY, [1], [Support statistics collecting for all memory profiling])
364   AC_MSG_WARN([This option will effect your performance])
367 if test x${que} = xyes; then
368   statistics_list="${statistics_list} queues"
369   AC_DEFINE(USE_STATS_QUEUE, [1], [Support statistics collecting for the queues])
372 if test x${cache} = xyes; then
373   statistics_list="${statistics_list} cache"
374   AC_DEFINE(USE_STATS_CACHE, [1], [Support statistics collecting for the cache])
377 if test x${stat_proplookup} = xyes; then
378   statistics_list="${statistics_list} proplookup"
379   AC_DEFINE(GNASH_STATS_OBJECT_URI_NOCASE, [1], [Collecting and report stats about ObjectURI case lookups])
380   AC_DEFINE(GNASH_STATS_PROPERTY_LOOKUPS, [1], [Collecting and report stats about property lookups])
381   AC_DEFINE(GNASH_STATS_STRING_TABLE_NOCASE, [1], [Collecting and report stats about string_table::key case lookups])
384 dnl this is just so Makefile can print the same list
385 STATISTICS_LIST="$statistics_list"
386 AC_SUBST(STATISTICS_LIST)
389 # These settings are compile time options for the security
390 # setting for anything that lets gnash exchange data with
391 # other applications. Currently this only supports Shared
392 # Objects and Local Connections. Shared Objects are like
393 # your web browsers cookies, and Local Connections use
394 # shared memory to execute methods remotely, and to
395 # exchange data.
397 # The default is to enable everything, and these can
398 # also be controlled dynamically by the $HOME/.gnashrc
399 # file.
401 solreadonly=no
402 localconnection=yes
404 AC_ARG_WITH(security,
405   AC_HELP_STRING([--with-security=], [Specify which security features to enable]),
406   if test -n ${withval}; then
407     if test "x${withval}" != "xno"; then
408       extlist="${withval}"
409       withval=`echo ${withval} | tr '\054' ' ' `
410     else
411       extlist=""
412       withval=""
413     fi
414   fi
415   security_list=""
416   nsecurity=0
417   while test -n "${withval}" ; do
418     val=`echo ${withval} | cut -d ' ' -f 1`
419     [case "${val}" in
420       solreadonly)
421         solreadonly=yes
422         nsecurity=$((nsecurity+1))
423         ;;
424       lc)
425         localconnection=yes
426         nsecurity=$((nsecurity+1))
427         ;;
428       all|ALL)
429         solreadonly=yes
430         lc=yes
431         nsecurity=3
432         ;;
433       *) AC_MSG_ERROR([invalid security feature specified: ${withval} given (accept: solreadonly|lc)])
434         ;;
435       esac]
436     withval=`echo ${withval} | cut -d ' ' -f 2-6`
437     if test "x$val" = "x$withval"; then
438       break;
439     fi
440   done
443 if test x$localconnection = xyes; then
444   security_list="${security_list} localconnection"
445   AC_DEFINE(USE_LC, [1],
446                  [Support LocalConnection])
447   AC_MSG_NOTICE([This build supports LocalConnection])
449 if test x$solreadonly = xyes; then
450   security_list="${security_list} solreadonly"
451   AC_DEFINE(USE_SOL_READONLY, [1],
452                  [Shared Objects are read-only])
453   AC_MSG_NOTICE([Shared Objects are read-only])
455 SECURITY_LIST="$security_list"
456 AC_SUBST(SECURITY_LIST)
458 dnl For Haiku, we know the sysroot is in a non-standard place
459 dnl it is important that -lagg comes before -lbe
460 if test x"${haiku}" = xyes; then
461   HAIKU_LIBS=-lbe
462   AC_SUBST(HAIKU_LIBS)
465 dnl Darwin uses libtool instead of ar to produce libraries. We determine which one
466 dnl we have here now. For some reason on Darwin, we don't get the
467 dnl count from grep via stdin correctly. Writing a temp file does the
468 dnl trick, so although it's ugly, that's what we gotta do...
469 AC_MSG_CHECKING([which type of library archiver we have])
470 rm -f .tmp
471 libtool > .tmp 2>&1
472 archiver=`grep -c dynamic .tmp 2>&1`
473 rm -f .tmp
474 dnl is there any good way to report what we found here?
475 AC_MSG_RESULT()
476 if test x"${archiver}" != x && test "${archiver}" -eq 1; then
477    export MACOSX_DEPLOYMENT_TARGET="10.3"
478    darwin=yes
479 else
480    darwin=no
483 dnl When cross compiling, limit the search directories cause otherwise
484 dnl we may get the host headers or libraries by accident. These values
485 dnl are exported, so all the other configure tests in macros/*.m4 use
486 dnl these same settings rather than duplicating them like we used to.
487 dnl To override thise, use the --with-*-incl= and --with-*-libs=
488 dnl options to configure.
489 if test x$cross_compiling = xyes; then
490   AC_MSG_NOTICE([Configuring Gnash for cross compilation])
491   export pkgroot="`$CXX -print-search-dirs | grep "install:" | sed -e 's/install: //' -e 's:/lib/gcc/.*::'`"
492   dnl pkgroot only works correctly with builds of cross tools not in
493   dnl /usr, ie... installed from the distribution packages, or just
494   dnl plain installed in the system tools. This contaminates configure
495   dnl when building for variations of the same basic architecture,
496   dnl like i686-linux -> i586-mingw32.
497   if test x"${pkgroot}" = x"/usr"; then
498     export pkgroot=""
499   fi
500   export incllist="`eval echo ${with_top_level}/include ${pkgroot}/${host_alias}/include ${pkgroot}/include`"
501   export libslist="`eval echo ${with_top_level}/lib ${pkgroot}/${host_alias}/lib ${pkgroot}/lib64 ${pkgroot}/lib32 ${pkgroot}/lib`"
502   export pathlist="`eval echo ${pkgroot}/${host_alias}/bin:${pkgroot}/bin`"
503   npapi=no
504 else
505   AC_MSG_NOTICE([Configuring Gnash for native compilation])
506   export DEB_HOST_MULTIARCH="`eval dpkg-architecture -qDEB_HOST_MULTIARCH`"
507   export incllist="`eval cat ${srcdir}/macros/incllist`"
508   libslist="`cat ${srcdir}/macros/libslist`"
509   export libslist="${libslist} /lib/${DEB_HOST_MULTIARCH} /usr/lib/${DEB_HOST_MULTIARCH}"
510   export pathlist=$PATH
513 if test x"${android_ndk}" != xno; then
514    incllist="${android_ndk}/include ${incllist}"
517 AM_CONDITIONAL(CROSS_COMPILING, [ test x$cross_compiling = xyes ])
519 for dir in ${incllist}; do
520   test -d ${dir} && pruned_incllist="${pruned_incllist} ${dir}";
521 done
523 for dir in ${libslist}; do
524   test -d ${dir} && pruned_libslist="${pruned_libslist} ${dir}";
525 done
527 libslist="${pruned_libslist}";
528 incllist="${pruned_incllist}";
530 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
531 dnl !! 
532 dnl !! IMPORTANT NOTICE 
533 dnl !!
534 dnl !!  Any call to GNASH_PATH_XXX must be be given *after* this snippet.
535 dnl !!  This is to ensure that PKG_CONFIG, cross_compiling and incllist are
536 dnl !!  properly set at the time of call.
537 dnl !!
538 dnl !!  Also GNASH_PKG_FIND has to be called later. Not sure
539 dnl !!  why but calling before breaks detection of CPP (see
540 dnl !!  gnash-dev mailing archives for June 12 2009
541 dnl !!  http://lists.gnu.org/archive/html/gnash-dev/2009-06/index.html
542 dnl !! 
543 dnl !! 
544 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
546 dnl Check for PKG_CONFIG before any GNASH_PATH call
547 PKG_PROG_PKG_CONFIG
549 dnl --------------------------------------------------------
550 dnl  GUI selection
551 dnl --------------------------------------------------------
553 build_haiku=no
554 build_aos4=no      dnl AmigaOS4 GUI
555 build_kde3=no      dnl WARNING: doesn't work (see https://savannah.gnu.org/bugs/index.php?31782)
556 build_qt4=no
557 build_qtopia3=no
558 build_qtopia4=no
559 build_gtk=no
560 build_fb=no                     dnl Raw framebuffer
561 build_fltk=no
562 build_sdl=no
563 build_aqua=no                   dnl Native MacOSX
564 build_dump=no
565 AC_ARG_ENABLE(gui,
566   AC_HELP_STRING([--enable-gui=], [Enable support for the specified GUI toolkits (default=gtk,qt4)]),
567   [if test -n ${enableval}; then
568     enableval=`echo ${enableval} | tr '\054' ' ' `
569   fi
570   while test -n "${enableval}" ; do
571     val=`echo ${enableval} | cut -d ' ' -f 1`
572     case "${val}" in
573       gtk|GTK|gtk2|GTK2)
574         build_gtk=yes
575         ;;
576       kde3|KDE3)
577         build_kde3=yes
578         ;;
579       qt4|QT4|kde4|KDE4)
580         build_qt4=yes
581         ;;
582       qtopia3|QTOPIA3)
583         build_qtopia3=yes
584         ;;
585       qtopia4|QTOPIA4)
586         build_qtopia4=yes
587         ;;
588       sdl|SDL)
589         build_sdl=yes
590         ;;
591       aqua|AQUA|Aqua)
592         build_aqua=yes
593         ;;
594       fltk|FLTK|fltk2|FLTK2)
595         build_fltk=yes
596         ;;
597       fb|FB)
598         build_fb=yes
599         ;;
600       aos4|AOS4)
601         build_aos4=yes
602         ;;
603       haiku|HAIKU)
604         build_haiku=yes
605         ;;
606       dump|DUMP)
607         build_dump=yes
608         ;;
609       all|ALL)
610         build_dump=yes
611         dnl BSD doesn't have a framebuffer interface
612         if test x${linux} = xyes; then
613           build_fb=yes
614         fi
615         if test x${openbsd} != xyes; then
616           build_qt4=yes
617         fi
618         build_sdl=yes
619         build_gtk=yes
620         ;;
621       *) AC_MSG_ERROR([invalid gui ${enableval} given (accept: gtk|kde3|qt4|fltk|sdl|aqua|fb|qtopia3|qtopia4|dump|aos4|haiku)])
622          ;;
623       esac
624     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
625     if test "x$val" = "x$enableval"; then
626       break;
627     fi
628   done],
629   [ dnl Run the following code if no --enable-gui is given
630   build_fb=auto
631   build_sdl=auto
632   if test x"${openbsd}" = xyes; then
633     build_gtk=yes
634     build_dump=auto
635   else if test x"${haiku}" = xyes; then
636     build_haiku=yes;
637   else
638     build_qt4=auto
639     build_gtk=yes
640     build_dump=auto
641   fi
642   fi
643   ]
646 if test x"${build_haiku}" = xyes; then
647   if test x"$haiku" != xyes; then
648     echo "        ERROR: Can not build Haiku gui outside of Haiku
649 operating system." >&3
650   fi
653 dnl We can use Xephyr or fbe to create a fake framebuffer instead of real
654 dnl video memory. This lets us test on a desktop machine.
655 AC_ARG_WITH(fakefb,
656 AC_HELP_STRING([--with-fakefb],
657  [specify a file to be mapped instead of a real framebuffer]),
658  with_fakefb=${withval})
660 fakefb=
661 if test x"${with_fakefb}" = xyes; then
662   dnl This is the default file name fbe uses.
663   fakefb=/tmp/fbe_buffer
664 else
665   if test x"${with_fakefb}" != x; then
666     fakefb=${with_fakefb}
667   fi
669 FAKEFB=${fakefb}
670 AC_SUBST(FAKEFB)
672 if test x"${fakefb}" != x; then
673     AC_DEFINE(ENABLE_FAKE_FRAMEBUFFER, [1], [Enable using a file instead of a real framebuffer])
676 dnl This enable a small handful of tests that aren't designed to be
677 dnl run as part of "make check", as they are either incomplete, or
678 dnl can only be run interactively. These are all primarily oriented
679 dnl towards code development and debugging, instead of regression
680 dnl or unit testing.
681 AC_ARG_ENABLE(devtests, AC_HELP_STRING([--enable-devtests],
682   [Developer only tests, not to be included in make check]),
683 [case "${enableval}" in
684   yes) devtests=yes ;;
685   no)  devtests=no ;;
686   *)   AC_MSG_ERROR([bad value ${enableval} for enable-devtests option]) ;;
687 esac], devtests=no)
688 AM_CONDITIONAL(ENABLE_DEVELOPER_TESTS, [test x${devtests} = xyes])
690 dnl --------------------------------------------------------
691 dnl  Sound handler selection
692 dnl --------------------------------------------------------
693 add_sound=
694 build_sound_none=no
695 build_sound_sdl=no
696 build_sound_ahi=no
697 build_sound_mkit=no
698 AC_ARG_ENABLE(sound,
699   AC_HELP_STRING([--enable-sound=[[sdl|ahi|mkit]]], [Use the specified sound handler (default=sdl)]),
700      [case "${enableval}" in
701       sdl|SDL|Sdl)
702         build_sound_sdl=yes
703         add_sound="sdl"
704         ;;
705       none|NONE|None)
706         build_sound_none=yes
707         add_sound="none"
708         ;;
709       ahi|AHI|Ahi)
710         build_sound_ahi=yes
711         add_sound="ahi"
712         ;;
713       mkit|MKIT|Mkit)
714         build_sound_mkit=yes
715         add_sound="mkit"
716         ;;
717      esac],
718   [if test x"${haiku}" = xyes; then
719      build_sound_mkit=yes
720      add_sound="mkit"
721    else
722      if test x${build_sound_none} = xno; then
723        build_sound_sdl=yes
724        add_sound=sdl
725      fi
726    fi]
729 dnl --------------------------------------------------------
730 dnl  Media handler selection
731 dnl --------------------------------------------------------
732 build_media_gst=no
733 build_media_ffmpeg=auto
734 build_media_none=no
735 AC_ARG_ENABLE(media,
736   AC_HELP_STRING([--enable-media=handler],
737     [Enable media handling support using the specified handler: gst, ffmpeg or none (no sound) [[gst]] ]),
738   
739     if test -n ${enableval}; then
740       enableval=`echo ${enableval} | tr '\054' ' ' `
741     fi
742     dnl When --enable-media is given, all media defaults to off
743     dnl except the explicitly enabled ones
744     build_media_ffmpeg=no
745     build_media_gst=no
746     while test -n "${enableval}"; do
747       val=`echo ${enableval} | cut -d ' ' -f 1`
748       [case "${val}" in
749         GST|gst)
750           build_media_gst=yes
751           media_list="${media_list}gst "
752           ;;
753         FFMPEG|ffmpeg)
754           build_media_ffmpeg=yes
755           media_list="${media_list}ffmpeg "
756           ;;
757         no|NO|none)
758           build_media_none=yes
759           media_list="none"
760           ;;
761         *)
762           AC_MSG_ERROR([bad value ${enableval} for --enable-media option])
763           ;;
764      
765       esac]
766       enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
767       if test "x$val" = "x$enableval"; then
768         break;
769       fi
770     done,
771     [if test x"${build_haiku}" = xyes; then
772         build_media_ffmpeg=yes
773         build_media_haiku=yes
774         media_list="ffmpeg haiku"
775      else
776         build_media_gst=yes
777         media_list="gst"
778     fi]
781 dnl If no render is selected, and media handling isn't disabled, them enable gst
782 if test x${build_media_none} = xno -a x${build_media_gst} = xno -a x${build_media_ffmpeg} = xno; then
783   build_media_gst=yes
786 if test x"$build_media_ffmpeg" != x"no"; then # yes or auto
787   GNASH_PATH_FFMPEG
788   if test x"${build_media_ffmpeg}" = xauto; then
789     dnl TODO: have GNASH_PATH_FFMPEG set ${has_ffmpeg}
790     if test x"$FFMPEG_LIBS" != x; then
791       build_media_ffmpeg=yes
792       media_list="${media_list} ffmpeg"
793     else
794       build_ogl=no
795     fi
796   fi
799 MEDIA_CONFIG="${media_list}"
800 AC_SUBST(MEDIA_CONFIG)
802 dnl Multiple input devices are supported. These can all work in
803 dnl varying combinations, so several may be listed. These are only
804 dnl required when using the Framebuffer, as without the X11 desktop,
805 dnl Gnash has to handle all these internally. This can get
806 dnl messy, as one might want to use a touchscreen with a normal mouse
807 dnl or keyboard attached. 
808 dnl By default, don't build any of these, as they are only for the 
809 dnl Framebuffer running without X11.
810 if test x"${build_fb}" = xyes -a x"${linux}" = xyes; then
811   build_ps2mouse=yes
812   build_ps2keyboard=yes
813   build_input_events=yes
814   build_tslib=yes
815   input_events="PS/2 Mouse, PS/2 Keyboard, Input Devices, Touchscreen via Tslib"
816 else
817   build_ps2mouse=no
818   build_ps2keyboard=no
819   build_input_events=no
820   build_tslib=no
821   input_events=
823 AC_ARG_ENABLE(input,
824   AC_HELP_STRING([--enable-input], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
825   [if test -n ${enableval}; then
826     enableval=`echo ${enableval} | tr '\054' ' ' `
827   fi
828   build_ps2mouse=no
829   build_ps2keyboard=no
830   build_input_events=no
831   build_tslib=no
832   while test -n "${enableval}" ; do
833     val=`echo ${enableval} | cut -d ' ' -f 1`
834     case "${val}" in
835       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
836         build_ps2mouse=yes
837         input_events="${input_events}, PS/2 Mouse"
838         ;;
839       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
840         build_ps2keyboard=yes
841         input_events="${input_events}, PS/2 Keyboard"
842         ;;
843       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
844         input_events="${input_events}, Input Event Device"
845         build_input_events=yes
846         ;;
847       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
848         build_tslib=yes
849         input_events="${input_events}, Touchscreen"
850         ;;
851       a*) dnl all
852         build_ps2mouse=yes
853         build_ps2keyboard=yes
854         build_tslib=yes
855         if test x"${build_fb}" = xyes -a x"${linux}" = xyes; then
856           build_input_events=yes
857           input_events="PS/2 Mouse, PS/2 Keyboard, Input Devices, Touchscreen via Tslib"                
858         else
859           build_input_events=no
860           input_events="PS/2 Mouse, PS/2 Keyboard, Touchscreen via Tslib"                
861         fi
862         ;;
863       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
864          ;;
865       esac
866     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
867     if test "x$val" = "x$enableval"; then
868       break;
869     fi
870   done],
873 if test x$build_sdl != xno -o x$build_sound_sdl = xyes; then
874   GNASH_PATH_SDL
876 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} = xyes])
879 dnl -----------------------------------------------------
880 dnl Check for SDL and decide about auto gui accordingly.
881 dnl Need be done after build_sound_sdl and build_sdl are
882 dnl initialized and before they are checked for yes/no
883 dnl -----------------------------------------------------
884 if test x"${build_sdl}" = xauto; then
885   if test xyes = x"${has_sdl}"; then
886     build_sdl=yes
887   else
888     AC_MSG_NOTICE([sdl GUI will not be built (no sdl development files found)])
889     build_sdl=no
890   fi
893 dnl -------------------------------
894 dnl Renderer Selection
895 dnl -------------------------------
896 input_events=
897 dnl By default, we want to to build all renderers
898 dnl DirectFB has both a device layer and a rendering layer, although
899 dnl currently the rendering part is incomplete. Configure support is
900 dnl included for development purposes.
901 build_directfb=no
902 dnl The OpenVG support works on both the desktop and embedded devices
903 dnl that don't run X11. It is supported by iPhone/iPad/Android
904 dnl devices, and the nouveau driver on the desktop.
905 build_ovg=no
906 dnl The OpenGLES1 renderer is a work in progress. It is originally
907 dnl based on a patch to Gnash 0.8.5, which of course not only didn't
908 dnl compile anymore, it was all hardcoded into the framebuffer
909 dnl code. This version compiles with the latest internal rendering
910 dnl API, and works properly with the glue code for the Gnash GUIs.
911 build_gles1=no
912 dnl OpenGL works, but suffers from performance and rendering quality
913 dnl problems. This should eventually be replacd by the OpenGLES1 and
914 dnl OpenVG renders.
915 build_ogl=no
916 dnl AGG is a software only renderer
917 build_agg=yes
918 build_cairo=yes
919 renderer_list="agg cairo"
920 AC_ARG_ENABLE(renderer,
921   AC_HELP_STRING([--enable-renderer], [Enable support for the specified renderers (agg|cairo|opengl|openvg|all, default=all)]),
922   if test -n ${enableval}; then
923     if test "x${enableval}" != "xno" -o "x${enableval}" != "xnone" ; then
924       renderer_list="none"
925       enableval=`echo ${enableval} | tr '\054' ' ' `
926     else
927       renderer_list=""
928       enableval=""
929     fi
930   fi
931   renderer_list=""
932   build_ovg=no
933   build_ogl=no
934   build_gles1=no
935   build_gles2=no
936   build_agg=no
937   build_cairo=no
938   while test -n "${enableval}" ; do
939     val=`echo ${enableval} | cut -d ' ' -f 1`
940     [case "${val}" in
941       no*|NO*)
942         renderer_list="none"
943         build_ovg=no
944         build_ogl=no
945         build_gles1=no
946         build_gles2=no
947         build_agg=no
948         build_cairo=no
949         ;;
950       all|ALL)
951         renderer_list="agg cairo opengl openvg, opengles1"
952         build_ogl=yes
953         build_agg=yes
954         build_cairo=yes
955         build_ovg=yes
956         nrender=4
957         ;;
958       ogl|OGL|OpenGL|opengl)
959         renderer_list="${renderer_list} opengl"
960         build_ogl=yes
961         ;;
962       gles|GLES|gles1|GLES1)
963         renderer_list="${renderer_list} opengles1"
964         build_gles1=yes
965         build_ogl=no
966         nrender=$((nrender+1))
967         ;;
968       ovg|OVG|OpenVG|openvg)
969         renderer_list="${renderer_list} openvg"
970         build_ovg=yes
971         nrender=$((nrender+1))
972         ;;
973       directfb|dfb)
974         renderer_list="${renderer_list} DirectFB"
975         build_directfb=yes
976         nrender=$((nrender+1))
977         ;;
978       agg|AGG)
979         renderer_list="${renderer_list} agg"
980         build_agg=yes
981         ;;
982       cairo|CAIRO|Cairo*)
983         renderer_list="${renderer_list} cairo"
984         build_cairo=yes
985         ;;
986       *) AC_MSG_ERROR([invalid renderer specified: ${enableval} given (accept:  (opengl|openvg|cairo|agg|all)])
987         ;;
988       esac]
989     enableval=`echo ${enableval} | cut -d ' ' -f 2-`
990     if test "x$val" = "x$enableval"; then
991       break;
992     fi
993   done
996 if test x"${build_ovg}" = xyes; then
997   GNASH_PATH_OPENVG
998   dnl If OpenVG isn't installed, disable it
999   if test x"${has_openvg}" = xno; then
1000     AC_MSG_WARN([OpenVG specified but no development files found!])
1001     renderer_list=`echo ${renderer_list} | sed -e 's/ openvg//' `
1002     nrender=$((nrender-1))
1003   fi
1006 dnl VA API is used by default for all H.264 videos. HW requirements:
1007 dnl     * AMD GPUs with UVD2 and xvba-video VA driver
1008 dnl     * NVIDIA GPUs with vdpau-video VA driver
1009 dnl     * All HW with a VA driver supporting the VA/GLX extensions or
1010 dnl     vaPutSurface(Pixmap,...). This may include the Intel
1011 dnl     Moorestown platform and future G45 VA driver.
1012 dnl NOTE: it is possible to use Gnash/VAAPI on platforms with an Intel
1013 dnl GMA500 but you currently will have to build the AGG renderer
1014 dnl instead of the OGL (OpenGL) one. 
1015 build_vaapi_device=no
1016 build_openmax_device=no
1017 if test x"${build_ovg}" = xyes; then
1018   build_egl_device=yes
1019 else
1020   build_egl_device=no
1022 build_x11_device=no
1023 build_directfb_device=no
1024 if test x"${build_fb}" = xyes -o x"${build_fb}" = xauto; then
1025   build_fb_agg=yes
1027 dnl AGG support for the framebuffer requires the rawfb device
1028 if test x"${build_fb_agg}" = xyes -a x"${build_agg}" = xyes; then
1029   build_rawfb_device=yes
1030   device_list="RawFB"
1031   ndevice=1
1032 else
1033   build_rawfb_device=no
1034   device_list=""
1035   ndevice=0
1037 AC_ARG_ENABLE(device,
1038   AC_HELP_STRING([--enable-device], [Specify which hardware abstraction to use to support to enable (none,egl,directfb,rawfb,x11,vaapi)]),
1039   enableval=`echo ${enableval} | tr '\054' ' ' `
1040   build_egl_device=no
1041   build_rawfb_device=no
1042   device_list=""
1043   ndevice=0
1044   while test -n "${enableval}" ; do
1045     val=`echo ${enableval} | cut -d ' ' -f 1`
1046     [case "${val}" in
1047       no*|NO*)
1048         device_list="none"
1049         build_vaapi_device=no
1050         build_openmax_device=no
1051         build_egl_device=no
1052         build_directfb_device=no
1053         build_x11_device=no
1054         ndevice=0
1055         ;;
1056       va*|VA*)
1057         device_list="${device_list} VAAPI"
1058         build_vaapi_device=yes
1059         ndevice=$((ndevice+1))
1060         ;;
1061       eg*|EG*)
1062         device_list="${device_list} EGL"
1063         build_egl_device=yes
1064         ndevice=$((ndevice+1))
1065         ;;
1066       x1*|X1*)
1067         device_list="${device_list} X11"
1068         build_x11_device=yes
1069         ndevice=$((ndevice+1))
1070         ;;
1071       di*|Di*|DI*|dfb)
1072         device_list="${device_list} DirectFB"
1073         build_directfb_device=yes
1074         ndevice=$((ndevice+1))
1075         ;;
1076       ra*|RAW*)
1077         device_list="${device_list} RawFB"
1078         build_rawfb_device=yes
1079         ndevice=$((ndevice+1))
1080         ;;
1081       all|ALL)
1082         device_list="EGL DirectFB X11"
1083         build_openmax_device=no
1084         build_vaapi_device=no
1085         build_egl_device=yes
1086         build_rawfb_device=yes
1087         build_directfb_device=no
1088         build_x11_device=yes
1089         ndevice=5
1090         ;;
1091       op*|Op*|OP*)
1092         device_list="${device_list} OpenMAX"
1093         build_openmax_device=yes
1094         ndevice=$((ndevice+1))
1095         ;;
1096       *) AC_MSG_ERROR([invalid device feature specified: ${enableval} given (accept: none,vaapi)])
1097         ;;
1098       esac]
1099     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1100     if test "x$val" = "x$enableval"; then
1101       break;
1102     fi
1103   done
1106 if test x"${have_ffmpeg_vaapi}" = x"yes" -a x"${build_vaapi_device}" = x"yes"; then
1107   use_libva=no
1108   use_libva_x11=no
1109   use_libva_glx=no
1110   dnl if the version of FFmpeg is recent enough, (r20957, 52.45.0), then
1111   dnl look for VAAPI support so we can use use the VAAPI enabled FFmpeg.
1112   if test x"${have_ffmpeg_vaapi}" = xyes; then
1113     use_libva=yes
1114     GNASH_PKG_FIND([libva],
1115       [va/va.h],
1116       [Video Acceleration API],
1117       vaInitialize
1118     )
1119     use_libva_x11=yes
1120     GNASH_PKG_FIND([libva_x11],
1121       [va/va_x11.h],
1122       [VA API (X11 display)],
1123       vaGetDisplay,
1124       [], [-lva-x11]
1125     )
1127     if test x$build_ogl = xyes; then
1128       use_libva_glx=yes
1129       GNASH_PKG_FIND([libva_glx],
1130         [va/va_glx.h],
1131         [VA API (GLX display)],
1132         vaGetDisplayGLX,
1133         [], [-lva-glx]
1134       )
1135     fi
1136   fi
1139 dnl libVA drivers. We declare conditional for both the option being
1140 dnl selected, as well as whether or not it's found. This we can
1141 dnl generate better error handling if it's not found.
1142 AM_CONDITIONAL(USE_VAAPI, test x"${use_libva}" = xyes)
1144 dnl Until the hwaccel patches in FFmpeg wind up in the ffmpeg-plugin,
1145 dnl restrict using HW Accel to using FFmpeg directly.
1146 dnl test xyes = xyes -a ( x != xyes -o x != xyes )
1147 if test x"${build_vaapi}" = x"yes" -a x"${have_ffmpeg}" != x"yes"; then
1148   AC_MSG_ERROR(["Hardware acceleration currently not supported unless using FFmpeg."])
1151 AM_CONDITIONAL(HAVE_VAAPI, test x"${found_libva_incl}" = xyes)
1152 AM_CONDITIONAL(HAVE_VAAPI_GLX, test x"${found_libva_glx_incl}" = xyes)
1153 AM_CONDITIONAL(HAVE_VAAPI_X11, test x"${found_libva_x11_incl}" = xyes)
1155 if test x"${build_egl_device}" = xyes; then
1156   GNASH_PKG_FIND(EGL, [EGL/egl.h], [EGL library], eglGetDisplay)
1157   if test xyes = x"${has_EGL}"; then
1158     AC_DEFINE(BUILD_EGL_DEVICE, [ 1 ],
1159           [Build the EGL device for OpenVG, OpenGLES1&2, and X11/Mesa])
1160       device_list="${device_list} EGL"
1161       ndevice=$((ndevice+1))
1162   else
1163     AC_MSG_WARN(["EGL requested but development package not found!"])
1164     build_egl_device=no
1165   fi
1168 if test ${ndevice} -eq 0; then
1169       device_list="none"
1170       ndevice=1
1173 AM_CONDITIONAL(BUILD_DEVICES, test ${ndevice} -gt 0)
1175 dnl 16 bit: RGB555, RGB565
1176 dnl 24 bit: RGB24, BGR24
1177 dnl 32 bit: RGBA32, BGRA32
1178 pixelformat=all
1179 AC_ARG_WITH(pixelformat,
1180   AC_HELP_STRING([--with-pixelformat=], [Use the specified pixel format for AGG (default=all)]),
1181   [if test -n ${withval}; then
1182     pixelformat="${withval}"
1183     withval=`echo ${withval} | tr '\054' ' ' `
1184   fi
1185   while test -n "${withval}" ; do
1186     val=`echo ${withval} | cut -d ' ' -f 1`
1187     case "${val}" in
1188       all)
1189         # allow special value "all" set by user (handled below)
1190         ;; 
1191       argb32|ARGB32)
1192         AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32])
1193         ;;
1194       abgr32|ABGR32)
1195         AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32])
1196         ;;
1197       bgra32|BGRA32)
1198         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1199         ;;
1200       bgr24|BGR24)
1201         AC_DEFINE(PIXELFORMAT_BGR24, [1], [BGR24])
1202         ;;
1203       rgba32|RGBA32)
1204         AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32])
1205         ;;
1206       rgb24|RGB24)
1207         AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24])
1208         ;;
1209       rgb555|RGB555)
1210         AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555])
1211         ;;
1212       rgb565|RGB565)
1213         AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565])
1214         ;;
1215       *) AC_MSG_ERROR([invalid pixel format ${withval} given (accept: all|RGB555|RGB565|RGB24|BGR24|BGRA32|RGBA32|ARGB32|ABGR32)])
1216          ;;
1217       esac
1218     withval=`echo ${withval} | cut -d ' ' -f 2-6`
1219     if test "x$val" = "x$withval"; then
1220       break;
1221     fi
1222   done],
1223   [if test x$build_haiku = xyes -a x$build_sdl != xyes; then
1224         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1225         pixelformat=BGRA32
1226    fi]
1229 if test x$pixelformat = xall; then
1230   if test x$build_agg = xyes; then
1231     ### The fact that we're building GTK doesn't mean we're not also
1232     ### building KDE or SDL, each needing its own pixel format !
1233     #if test x$build_gtk = xyes; then
1234     #  AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24 pixel format])
1235     #  pixelformat="RGB24"
1236     #else
1237       AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555 pixel format])
1238       AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565 pixel format])
1239       AC_DEFINE(PIXELFORMAT_RGB24,  [1], [RGB24 pixel format])
1240       AC_DEFINE(PIXELFORMAT_BGR24,  [1], [BGR24 pixel format])
1241       AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32 pixel format])
1242       AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32 pixel format])
1243       AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32 pixel format])
1244       AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32 pixel format])
1245     #fi
1246   fi
1249 if test x"${build_ogl}" != xno; then # yes or auto
1250   GNASH_PATH_OPENGL
1251   if test x"${build_ogl}" = xauto; then
1252     if test xyes = x"${has_opengl}"; then
1253       build_ogl=yes
1254       renderer_list="${renderer_list} opengl"
1255     else
1256       build_ogl=no
1257     fi
1258   fi
1261 AM_CONDITIONAL(BUILD_OVG_RENDERER,   [ test x${build_ovg} = xyes ])
1262 AM_CONDITIONAL(BUILD_GLES1_RENDERER, [ test x${build_gles1} = xyes ])
1263 AM_CONDITIONAL(BUILD_GLES2_RENDERER, [ test x${build_gles2} = xyes ])
1264 AM_CONDITIONAL(BUILD_OGL_RENDERER,   [ test x${build_ogl} = xyes])
1265 AM_CONDITIONAL(BUILD_AGG_RENDERER,   [ test x${build_agg} = xyes ])
1266 AM_CONDITIONAL(BUILD_CAIRO_RENDERER, [ test x${build_cairo} = xyes ])
1268 if test x"${has_openvg}" = xyes; then
1269    AC_DEFINE([RENDERER_OPENVG], [1], [Use OpenVG renderer])
1272 if test x"${build_ogl}" = xyes; then
1273    AC_DEFINE([RENDERER_OPENGL], [1], [Use OpenGL renderer])
1276 if test x"${build_agg}" = xyes; then
1277   AC_DEFINE([RENDERER_AGG], [1], [Use AntiGrain renderer])
1280 if test x"${build_cairo}" = xyes; then
1281   GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1282   AC_DEFINE([RENDERER_CAIRO], [1], [Use cairo renderer])
1285 if test x"${build_agg}" = xyes; then
1286    GNASH_PATH_AGG
1289 AC_PATH_PROG(PERL, perl)
1290 AM_CONDITIONAL(HAVE_PERL, test x"$PERL" != x)
1292 AC_PATH_PROG(CSOUND, csound)
1293 AM_CONDITIONAL(HAVE_CSOUND, test x"$CSOUND" != x)
1295 AC_PATH_PROG(GIT, git)
1296 AC_SUBST(GIT)
1298 dnl --------------------------------------------------------
1299 dnl Extension selection
1300 dnl --------------------------------------------------------
1301 ext_dejagnu=no
1302 ext_mysql=no
1303 ext_fileio=no
1304 ext_gtk=no
1305 ext_lirc=no
1306 ext_dbus=no
1307 ext_all=no
1308 extensions_list=
1309 extensions_support=yes
1310 nextensions=0
1311 AC_ARG_ENABLE(extensions,
1312   AC_HELP_STRING([--enable-extensions=], [Specify which extensions to build (default: none)])
1313   AC_HELP_STRING([--disable-extensions], [Disable support for extensions entirely]),
1314   if test -n ${enableval}; then
1315     if test "x${enableval}" != "xno"; then
1316       extlist="${enableval}"
1317       enableval=`echo ${enableval} | tr '\054' ' ' `
1318       AC_DEFINE([USE_EXTENSIONS], [1], [Specify that extension support is enabled.])
1319     else
1320       extlist=""
1321       enableval=""
1322       extensions_support=no
1323     fi
1324   fi
1325   nextensions=0
1326   while test -n "${enableval}" ; do
1327     val=`echo ${enableval} | cut -d ' ' -f 1`
1328     extensions_list="${extensions_list} ${val}"
1329     [case "${val}" in
1330       dejagnu|DEJAGNU|dj|DJ)
1331         AC_DEFINE(USE_DEJAGNU_EXT, [1], [Build the DejaGnu extension])
1332         AC_MSG_NOTICE([Adding DejaGnu extension])
1333         ext_dejagnu=yes
1334         nextensions=$((nextensions+1))
1335         ;;
1336       mysql|MYSQL|sql|SQL)
1337         AC_DEFINE(USE_MYSQL_EXT, [1], [Build the MySQL extension])
1338         AC_MSG_NOTICE([Adding MySql extension])
1339         ext_mysql=yes
1340         nextensions=$((nextensions+1))
1341         ;;
1342       fileio|FILEIO|io|IO)
1343         AC_DEFINE(USE_FILEIO_EXT, [1], [Build the FileIO extension])
1344         AC_MSG_NOTICE([Adding FileIO extension])
1345         ext_fileio=yes
1346         nextensions=$((nextensions+1))
1347         ;;
1348       gtk|GTK|gtk2|GTK2)
1349         AC_DEFINE(USE_GTK_EXT, [1], [Build the GTK extension])
1350         ext_gtk=yes
1351         nextensions=$((nextensions+1))
1352         ;;
1353       lirc|LIRC)
1354         AC_DEFINE(USE_LIRC_EXT, [1], [Build the LIRC extension])
1355         ext_lirc=yes
1356         nextensions=$((nextensions+1))
1357         ;;
1358       dbus|DBUS)
1359         AC_DEFINE(USE_DBUS_EXT, [1], [Build the DBUS extension])
1360         ext_dbus=yes
1361         nextensions=$((nextensions+1))
1362         ;;
1363       all|ALL)
1364         AC_DEFINE(USE_GTK_EXT, [1], [Build all the extensions])
1365         ext_dejagnu=yes
1366         ext_mysql=yes
1367         ext_fileio=yes
1368         ext_gtk=yes
1369         ext_lirc=yes
1370         ext_dbus=yes
1371         ext_all=yes
1372         nextensions=9
1373         ;;
1374       *) AC_MSG_ERROR([invalid extension specified: ${enableval} given (accept: MYSQL|DEJAGNU|FILEIO|GTK|LIRC|DBUS|METOME|ALL)])
1375          ;;
1376       esac]
1377     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1378     if test "x$val" = "x$enableval"; then
1379       break;
1380     fi
1381   done
1382   EXTENSIONS_LIST="$extensions_list"
1383   AC_SUBST(EXTENSIONS_LIST)
1386 if test x$ext_dbus = xyes; then
1387   GNASH_PATH_DBUS
1390 if test x$ext_mysql = xyes; then
1391   GNASH_PATH_MYSQL
1394 AM_CONDITIONAL(BUILD_DEJAGNU_EXT, [ test x$ext_dejagnu = xyes ])
1395 AM_CONDITIONAL(BUILD_FILEIO_EXT, [ test x$ext_fileio = xyes ])
1396 AM_CONDITIONAL(BUILD_MYSQL_EXT, [ test x$ext_mysql = xyes ])
1397 AM_CONDITIONAL(BUILD_GTK_EXT, [ test x$ext_gtk = xyes ])
1398 AM_CONDITIONAL(BUILD_LIRC_EXT, [ test x$ext_lirc = xyes ])
1399 AM_CONDITIONAL(BUILD_DBUS_EXT, [ test x$ext_dbus = xyes ])
1400 AM_CONDITIONAL(BUILD_EXTENSIONS, [ test -n "$extensions_list"])
1402 AM_CONDITIONAL(ENABLE_EXTENSIONS, [ test "x${extensions_support}" != "xno" ])
1404 dnl --------------------------------------------------------
1405 dnl Libtool
1406 dnl --------------------------------------------------------
1408 AC_LIBTOOL_DLOPEN
1409 AC_LIBTOOL_WIN32_DLL
1410 AC_DISABLE_STATIC
1411 AC_PROG_LIBTOOL
1412 AC_SUBST(LIBTOOL_DEPS)
1413 DLOPEN="-dlopen"
1414 DLPREOPEN="-dlpreopen"
1415 AC_SUBST(DLOPEN)
1416 AC_SUBST(DLPREOPEN)
1418 GNASH_PKG_FIND([ltdl], [ltdl.h], [libltdl library], [lt_dlinit])
1420 if test x"$has_ltdl" = x"yes";then
1421   AC_DEFINE(HAVE_LTDL, [1], [Libtool 2.x defines this, but libtool 1.5 does not])
1424 dnl --------------------------------------------------------
1425 dnl SOL dir
1426 dnl --------------------------------------------------------
1427 soldir=/tmp
1428 AC_ARG_WITH(soldir,
1429  AC_HELP_STRING([--with-soldir],
1430  [directory for .sol files]),
1431  with_soldir=${withval})
1432 if test x${with_soldir} != x; then
1433   soldir=${with_soldir}
1435 SOLDIR=${soldir}
1436 AC_SUBST(SOLDIR)
1438 dnl --------------------------------------------------------
1439 dnl AVM2
1440 dnl --------------------------------------------------------
1441 dnl AC_ARG_ENABLE(avm2,
1442 dnl   AC_HELP_STRING([--enable-avm2], [Enable support for AS3]),
1443 dnl   [case "${enableval}" in
1444 dnl     yes) avm2=yes ;;
1445 dnl     no)  avm2=no ;;
1446 dnl     *)   AC_MSG_ERROR([bad value ${enableval} for enable-avm2 option]) ;;
1447 dnl   esac], avm2=no
1448 dnl )
1449 dnl AM_CONDITIONAL(ENABLE_AVM2, [test x"$avm2" = xyes])
1450 dnl if test x$avm2 = xyes; then
1451 dnl     AC_DEFINE(ENABLE_AVM2, [1], [Enable AVM2 code])
1452 dnl fi
1453 AM_CONDITIONAL(ENABLE_AVM2, false)
1455 dnl This option is only used if you want Gnash to interwork with 
1456 dnl the Adobe player using the LocalConnection class.
1457 dnl lckey=0xdd3adabd
1458 AC_ARG_WITH(lckey,
1459  AC_HELP_STRING([--with-lckey],
1460  [shared memory key for your system]),
1461  with_lckey=${withval})
1463 if test x${with_lckey} != x; then
1464   lckey=${with_lckey}
1465 else
1466   lckey=0xcbc384f8
1468 LC_KEY=${lckey}
1469 AC_SUBST(LC_KEY)
1471 AC_ARG_ENABLE(python,
1472   AC_HELP_STRING([--enable-python],[Enable python for the python wrapper]),
1473 [case "${enableval}" in
1474   yes) python=yes ;;
1475   no)  python=no ;;
1476   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-python option]) ;;
1477 esac],python=no)
1479 dnl Look for python, which is optional. If enabled, a python loadable
1480 dnl module of Gnash is created.
1481 GNASH_PATH_PYTHON
1482 AM_CONDITIONAL([USE_PYTHON], test x"$python" = xyes)
1483 AM_CONDITIONAL([HAS_PYTHON], test x"$has_python" = xyes)
1485 dnl By default debug logging is enabled. For better performance, it can
1486 dnl be disabled, as when running as a plugin, nobody sees the debug messages
1487 dnl anyway. Debug logging is primarily for developers, so we can turn it off
1488 dnl for package builds.
1489 AC_ARG_ENABLE(log,
1490   AC_HELP_STRING([--enable-log],[Enable debug logging]),
1491 [case "${enableval}" in
1492   yes) debuglog=yes ;;
1493   no)  debuglog=no ;;
1494   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-log option]) ;;
1495 esac],debuglog=yes)
1497 if test x"${debuglog}" = x"yes"; then
1498   AC_DEFINE([DEBUG_LOGGING], [1], [Enable debug logging])
1501 # Maybe use jemalloc, which handles memory fragmentation for
1502 # ECAMscript languages better than the regular system malloc.
1503 # This seems like a good idea, as both the other player and
1504 # Mozilla/Firefox both recently switched to using jemalloc.
1505 AC_ARG_ENABLE(jemalloc,
1506   AC_HELP_STRING([--enable-jemalloc],[Enable jemalloc instead of system malloc]),
1507 [case "${enableval}" in
1508   yes) jemalloc=yes ;;
1509   no)  jemalloc=no ;;
1510   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-jemalloc option]) ;;
1511 esac],jemalloc=yes)
1513 AC_CHECK_SIZEOF([void *], [4])
1515 if test "x${ac_cv_sizeof_void_p}" != x4 -a x"${ac_cv_sizeof_void_p}" != x8; then
1516   dnl jemalloc doesn't support unusual pointer sizes
1517   jemalloc=no
1520 dnl There is some weird stuff going on with NetBSD and jemalloc, so don't 
1521 dnl build it for now.
1522 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
1523   jemalloc=no
1525 dnl If the compiler doesn't have local thread storage enabled, don't try to
1526 dnl use jemalloc.
1527 if test x"${jemalloc}" = x"yes"; then
1528   AC_TRY_COMPILE([], [
1529     extern __thread int global_i; ],
1530     has_local_thread_storage=yes
1531   )
1532   if test x"${has_local_thread_storage}" = x"yes"; then
1533     AC_DEFINE([HAVE_LOCAL_THREAD_STORAGE], [1], [Has __thread (local thread storage) support])
1534     AC_DEFINE([USE_JEMALLOC], [], [Use jemalloc instead of system malloc])
1535   else
1536     jemalloc=no
1537   fi
1540 dnl We can search libs for mallinfo to decide whether we have it or not.
1541 dnl This is added to the linker flags when it's found. Usually it's -lc, but
1542 dnl on OpenSolaris it's -lmalloc, so this fixes the build.
1543 AC_SEARCH_LIBS([mallinfo], [c malloc],
1544                AC_DEFINE(HAVE_MALLINFO, [1], [Has mallinfo()])
1545                mallinfo=yes
1546                )
1548 AM_CONDITIONAL([HAVE_MALLINFO], test x$mallinfo = xyes)
1549 AM_CONDITIONAL(JEMALLOC, test x$jemalloc = xyes)
1551 AC_ARG_ENABLE(fps-debug,
1552   AC_HELP_STRING([--enable-fps-debug],[Enable FPS debugging code]),
1553 [case "${enableval}" in
1554   yes) AC_DEFINE([GNASH_FPS_DEBUG], [1], [Enable FPS debugging code])
1555 esac])
1557 dnl IPC_INFO isn't portable, and doesn't exist on BSD
1558 AC_TRY_COMPILE([#include <sys/ipc.h> #include <sys/shm.h>], [
1559   int flag = IPC_INFO; ],
1560   AC_DEFINE([HAVE_IPC_INFO], [1], [Use ipc_info])
1563 dnl --------------------------------------------------------
1564 dnl Disable menus
1565 dnl --------------------------------------------------------
1566 dnl Don't add the GUI menu. Some educational systems think this adds
1567 dnl clutter and confusion, like on the OLPC.
1568 AC_ARG_ENABLE(menus,
1569   AC_HELP_STRING([--disable-menus],[Disable the GUI menus]),
1570 [case "${enableval}" in
1571   yes) menus=yes ;;
1572   no)  menus=no ;;
1573   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-menus option]) ;;
1574 esac],menus=yes)
1576 if test x"$menus" = x"yes"; then
1577   AC_DEFINE([USE_MENUS], [], [GUI Menu support])
1579 AM_CONDITIONAL(MENUS, test x$menus = xyes)
1581 dnl --------------------------------------------------------
1582 dnl Disable SWF information
1583 dnl --------------------------------------------------------
1584 dnl Don't gather SWF information in tree form. This takes
1585 dnl resources and memory that can be saved if there's no
1586 dnl need to examine SWF internals.
1587 AC_ARG_ENABLE(swftree,
1588   AC_HELP_STRING([--disable-swftree],[Disable showing SWF properties]),
1589 [case "${enableval}" in
1590   yes) swftree=yes ;;
1591   no)  swftree=no ;;
1592   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-swf-properties option]) ;;
1593 esac],swftree=yes)
1595 if test x"$swftree" = x"yes"; then
1596   AC_DEFINE([USE_SWFTREE], [], [View SWF information])
1598 AM_CONDITIONAL(SWFTREE, test x$swftree = xyes)
1600 dnl --------------------------------------------------------
1601 dnl Disable testsuite
1602 dnl --------------------------------------------------------
1603 dnl Disable running any tests for "make check". This may sound stupid, but
1604 dnl this option is designed to solely be used by maintainers in the 
1605 dnl DISTCHECK_CONFIGURE_FLAGS when building packages. Gnash's testing infrastructure
1606 dnl is complex, and often the the testsuites will work, but due to some obscure reason,
1607 dnl make distcheck fails.
1608 AC_ARG_ENABLE(testsuite,
1609   AC_HELP_STRING([--disable-testsuite],[Disable the testsuite, maintainers option only]),
1610 [case "${enableval}" in
1611   yes) testsuite=yes ;;
1612   no)  testsuite=no ;;
1613   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-testsuite option]) ;;
1614 esac],testsuite=yes)
1616 if test x"$testsuite" = x"yes"; then
1617   AC_DEFINE([USE_TESTSUITE], [], [Testsuite support, maintainers option only])
1619 AM_CONDITIONAL(TESTSUITE, test x$testsuite = xyes)
1621 dnl --------------------------------------------------------
1622 dnl Write the file to disk in the plugin
1623 dnl --------------------------------------------------------
1624 AC_ARG_ENABLE(write,
1625   AC_HELP_STRING([--enable-write], [Makes the Mozilla plugin write the currently playing SWF movie to /tmp.]),
1626 [case "${enableval}" in
1627   yes) write=yes ;;
1628   no)  write=no ;;
1629   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-write option]) ;;
1630 esac],write=no)
1632 if test x"$write" = x"yes"; then
1633   AC_DEFINE([WRITE_FILE], [], [Write files while streaming])
1636 dnl --------------------------------------------------------
1637 dnl Write a standalone gnash launcher to disk from the plugin
1638 dnl --------------------------------------------------------
1639 AC_ARG_ENABLE(sa-launcher,
1640   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.]),
1641 [case "${enableval}" in
1642   yes) sa_launcher=yes ;;
1643   no)  sa_launcher=no ;;
1644   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-sa-launcher option]) ;;
1645 esac],sa_launcher=yes)
1647 if test x"$sa_launcher" = x"yes"; then
1648   AC_DEFINE([CREATE_STANDALONE_GNASH_LAUNCHER], [], [Add support for writing a standalone executable launcher for movies embedded in web pages])
1651 dnl --------------------------------------------------------
1652 dnl Build the cygnal server if specified.
1653 dnl --------------------------------------------------------
1654 AC_ARG_ENABLE(cygnal,
1655   AC_HELP_STRING([--enable-cygnal], [Enable building of the Cygnal server]),
1656 [case "${enableval}" in
1657   yes) cygnal=yes ;;
1658   no)  cygnal=no ;;
1659   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cygnal option]) ;;
1660 esac],cygnal=no)
1661 AM_CONDITIONAL(CYGNAL, test x$cygnal = xyes)
1663 dnl --------------------------------------------------------
1664 dnl Build the cgibins server if specified.
1665 dnl --------------------------------------------------------
1666 AC_ARG_ENABLE(cgibins,
1667   AC_HELP_STRING([--enable-cgibins], [Enable building of the CGIs for Cygnal]),
1668 [case "${enableval}" in
1669   yes) cgibin=yes ;;
1670   no)  cgibin=no ;;
1671   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cgibins option]) ;;
1672 esac],cgibin=yes)
1673 AM_CONDITIONAL(USE_CGI, test x$cgibin = xyes)
1674 if test x"${cgibin}" = x"yes"; then
1675   AC_DEFINE([USE_CGIBIN], [1], [Enable cgi-bin processes for Cygnal])
1678 dnl --------------------------------------------------------
1679 dnl  Double buffer
1680 dnl --------------------------------------------------------
1681 dnl Add an option for double buffering when rendering, currently only used by
1682 dnl the frmaebuffer GUI.
1683 dnl If defined, an internal software-buffer is used for rendering and is then
1684 dnl copied to the video RAM. This avoids flicker and is faster for complex 
1685 dnl graphics, as video RAM access is usually slower. (strongly suggested)
1686 AC_ARG_ENABLE(doublebuf,
1687   AC_HELP_STRING([--disable-doublebuf], [Disble support for double buffering when rendering with AGG]),
1688   [case "${enableval}" in
1689     yes) doublebuf=yes ;;
1690     no)  doublebuf=no ;;
1691     *)   AC_MSG_ERROR([bad value ${enableval} for enable-doublebuf option]) ;;
1692   esac], doublebuf=yes
1694 AM_CONDITIONAL(ENABLE_DBUF, [test x"$doublebuf" = xyes])
1695 if test x$doublebuf = xyes; then
1696     AC_DEFINE(ENABLE_DOUBLE_BUFFERING, [1], [Disable double buffering for AGG])
1699 dnl --------------------------------------------------------
1700 dnl  Offscreen buffer
1701 dnl --------------------------------------------------------
1702 dnl This enables rendering to an offscreen buffer, instead of directly to window
1703 AC_ARG_ENABLE(offscreen,
1704   AC_HELP_STRING([--enable-offscreen], [Enable support for rendering offscreen]),
1705   [case "${enableval}" in
1706     yes) offscreen=yes ;;
1707     no)  offscreen=no ;;
1708     *)   AC_MSG_ERROR([bad value ${enableval} for enable-offscreen option]) ;;
1709   esac], offscreen=no
1713 dnl --------------------------------------------------------
1714 dnl  SSH support selection
1715 dnl --------------------------------------------------------
1716 dnl Enable using libssh with libnet
1717 AC_ARG_ENABLE(ssh,
1718   AC_HELP_STRING([--enable-ssh], [Enable using SSH for network authentication]),
1719 [case "${enableval}" in
1720   yes) build_ssh=yes ;;
1721   no)  build_ssh=no ;;
1722   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssh option]) ;;
1723 esac], build_ssh=no)
1725 AM_CONDITIONAL(BUILD_SSH, test x"${build_ssh}" = xyes)
1726 if test x"${build_ssh}" = xyes; then
1727   GNASH_PKG_FIND(ssh, [libssh/libssh.h], [libssh library], ssh_socket_init)
1728 dnl  GNASH_PKG_FIND(poppler, [popt.h], [Poppler library], poppler_init)
1730 if test x"${has_ssh}" = x"yes"; then
1731   AC_DEFINE([USE_SSH], [1], [Use SSH for authentication])
1734 dnl --------------------------------------------------------
1735 dnl  SSL support selection
1736 dnl --------------------------------------------------------
1738 dnl Enable using OpenSSL with libnet.
1739 AC_ARG_ENABLE(ssl,
1740   AC_HELP_STRING([--enable-ssl], [Enable using OpenSSL directly]),
1741 [case "${enableval}" in
1742   yes) build_ssl=yes ;;
1743   no)  build_ssl=no ;;
1744   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssl option]) ;;
1745 esac], build_ssl=no)
1747 with_cert=
1748 with_pem=
1749 AM_CONDITIONAL(BUILD_SSL, test x"${build_ssl}" = xyes)
1750 AC_ARG_WITH(cert,
1751   AC_HELP_STRING([--with-cert],
1752   [cert file for SSL]),
1753   with_cert=${withval})
1754 AC_ARG_WITH(pem,
1755   AC_HELP_STRING([--with-pe],
1756   [pem file for SSL]),
1757   with_pem=${withval})
1759 if test x"${build_ssl}" = xyes; then
1760   GNASH_PKG_FIND(ssl, [openssl/ssl.h], [OpenSSL library], SSL_library_init)
1762 if test x"${has_ssl}" = x"yes"; then
1763   AC_DEFINE([USE_SSL], [1], [Use SSL for authentication])
1766 dnl -----------------------------------------------------------
1767 dnl Set the general plugins install policy here
1768 dnl (NOTE: before GNASH_PATH_FIREFOX and GNASH_PATH_KDE*)
1769 dnl -----------------------------------------------------------
1771 AC_ARG_WITH(plugins-install,
1772   AC_HELP_STRING([--with-plugins-install=system|user|prefix], [Policy for plugins install. Default: user.]),
1773         [case "${withval}" in
1774           user) PLUGINS_INSTALL_POLICY=user ;;
1775           system) PLUGINS_INSTALL_POLICY=system ;;
1776           prefix) PLUGINS_INSTALL_POLICY=prefix ;;
1777           *)  AC_MSG_ERROR([bad value ${withval} for --with-plugins-install]) ;;
1778          esac 
1779         ], PLUGINS_INSTALL_POLICY=user) 
1781 dnl -----------------------------------------------------------
1782 dnl   Verify dependencies for requested GUIs are met, and
1783 dnl   disable build of the GUIS for which deps are NOT met
1784 dnl ------------------------------------------------------------
1786 if test x$build_gtk = xyes; then
1787    GNASH_PATH_GTK2
1788    GNASH_PATH_PANGO
1789    GNASH_PKG_FIND(atk, [atk/atk.h], [atk library], atk_focus_tracker_init, [1.0])
1790    if test x"${build_ogl}" = xyes; then
1791       GNASH_PATH_GLEXT
1792    fi
1793    if test x"${build_cairo}" = xyes; then
1794       GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1795    fi
1798 if test x"${build_qt4}" != xno; then
1799  GNASH_PATH_QT4
1802 if test x"${build_qt4}" = xauto; then
1803   if test x"${has_qt4}" = xyes; then
1804      build_qt4=yes
1805   else
1806      build_qt4=no
1807   fi
1810 if test x"${build_kde3}" != xno -o x"${build_qtopia3}" != xno; then
1811  GNASH_PATH_QT3
1814 if test x"${build_kde3}" != xno; then
1815   GNASH_PATH_KDE3
1819 if test x"${build_kde3}" = xauto; then
1820   if test x"${has_qt3}" = xyes -a x"${has_kde3}" = xyes; then
1821      build_kde3=yes
1822   else
1823      build_kde3=no
1824   fi
1827 dnl Check possibility to build DUMP gui, if requested
1828 if test x"${build_dump}" != xno; then
1829   if test x"${build_agg}" = xyes; then
1830     build_dump=yes
1831   else
1832     if test x"${build_dump}" = xyes; then
1833       dnl SHOULD we just check at the end of file instead ?
1834       AC_MSG_ERROR(dump GUI cannot be built without AGG renderer);
1835     fi
1836     build_dump=no
1837   fi
1840 dnl Check possibility to build FB gui, if requested
1841 dnl FB dependency is a linux system (linux/fb.h)
1842 if test x"${build_fb}" != xno; then
1843   if test x"${linux}" = xyes; then
1844       build_fb=yes
1845   else
1846     if test x"${build_fb}" = xyes; then
1847       dnl SHOULD we just check at the end of file instead ?
1848       AC_MSG_ERROR(fb GUI cannot be built on non-linux platforms);
1849     fi
1850     AC_MSG_NOTICE([fb GUI won't be built (non-linux platform)])
1851     build_fb=no
1852   fi
1855 dnl TODO: add checks for all other GUIs
1857 dnl -------------------------------
1858 dnl Input Device selection
1859 dnl -------------------------------
1861 dnl Multiple input devices are supported. These can all work in
1862 dnl varying combinations, so several may be listed. These are only
1863 dnl required when using the Framebuffer, as without the X11 desktop,
1864 dnl Gnash has to handle all these internally. This can get
1865 dnl messy, as one might want to use a touchscreen with a normal mouse
1866 dnl or keyboard attached. 
1867 dnl By default, don't build any of these, as they are only for the Framebuffer
1868 dnl running without X11.
1869 if test x"${build_fb}" = xyes; then
1870   build_ps2mouse=yes
1871   build_ps2keyboard=no
1872   build_input_events=yes
1873   build_tslib=yes
1874   input_events="PS/2 Mouse, Input Devices, Touchscreen via Tslib"
1875 else
1876   build_ps2mouse=no
1877   build_ps2keyboard=no
1878   build_input_events=no
1879   build_tslib=no
1880   input_events=
1882 AC_ARG_ENABLE(input,
1883   AC_HELP_STRING([--enable-input=], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
1884   [if test -n ${enableval}; then
1885     enableval=`echo ${enableval} | tr '\054' ' ' `
1886   fi
1887   while test -n "${enableval}" ; do
1888     val=`echo ${enableval} | cut -d ' ' -f 1`
1889     case "${val}" in
1890       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
1891         build_ps2mouse=yes
1892         input_events="${input_events}, PS/2 Mouse"
1893         ;;
1894       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
1895         build_ps2keyboard=yes
1896         input_events="${input_events}, PS/2 Keyboard"
1897         ;;
1898       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
1899         input_events="${input_events}, Input Event Device"
1900         build_input_events=yes
1901         ;;
1902       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
1903         build_tslib=yes
1904         input_events="${input_events}, Touchscreen"
1905         ;;
1906       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
1907          ;;
1908       esac
1909     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1910     if test "x$val" = "x$enableval"; then
1911       break;
1912     fi
1913   done],
1916 if test x"${build_tslib}" = xyes; then
1917   AC_DEFINE(USE_TSLIB, [1], [Use a tslib supported touchscreen])
1918   GNASH_PKG_FIND(ts, [tslib.h], [Touchscreen library], ts_config)
1920 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} != xno])
1922 if test x"${build_ps2mouse}" = xyes; then
1923   AC_DEFINE(USE_MOUSE_PS2, [1], [Add support for a directly using a PS/2 Mouse])
1925 AM_CONDITIONAL(ENABLE_MOUSE, [test x"${build_ps2mouse}" = xyes])
1927 if test x"${build_ps2keyboard}" = xyes; then
1928   AC_DEFINE(USE_KEYBOARD_PS2, [1], [Add support for directly using a PS/2 Keyboard])
1930 if test x"${build_input_events}" = xyes; then
1931   AC_DEFINE(USE_INPUT_EVENTS, [1], [Add support for a directly using Linux Input Event Devices])
1933 AM_CONDITIONAL(ENABLE_INPUT_EVENTS, [test x"${build_input_events}" = xyes])
1934 dnl this is enabled if we have any input devices at all
1935 AM_CONDITIONAL(ENABLE_INPUT_DEVICES, [test x"${input_events}" != x])
1938 dnl -----------------------------------------------------------
1939 dnl Try to ignore stupid dependencies
1940 dnl -----------------------------------------------------------
1942 AC_MSG_CHECKING(linker --as-needed support)
1943 gcc_cv_ld_as_needed=no
1944 # Check if linker supports --as-needed and --no-as-needed options
1945 if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
1946   gcc_cv_ld_as_needed=yes
1948 if test x"$gcc_cv_ld_as_needed" = xyes; then
1949   LDFLAGS="$LDFLAGS -Wl,--as-needed"
1951 AC_MSG_RESULT($gcc_cv_ld_as_needed)
1953 AC_DEFINE(USE_GIF, [1], [Use the GIF library])
1954 AC_DEFINE(USE_PNG, [1], [Use the PNG library])
1955 AM_CONDITIONAL(USE_GIF, true)
1956 AM_CONDITIONAL(USE_PNG, true)
1958 AC_PATH_TOOL([AUTOTRACE], [autotrace])
1959 AC_HEADER_DIRENT
1961 dnl -----------------------------------------------------------------
1962 dnl PLUGIN RELATED STUFF
1963 dnl -----------------------------------------------------------------
1965 dnl !! This has been moved here to make --enable-npapi work
1966 dnl !! All of plugin-related macro calls could be moved into
1967 dnl !! a specialized macros/plugin.m4
1969 dnl ----------------------------------------------------
1970 dnl Add KPARTS support, if specified or KDE gui is built
1971 dnl ----------------------------------------------------
1973 AC_ARG_ENABLE(kparts3,
1974   AC_HELP_STRING([--disable-kparts3], [Disable support for Konqueror 3.x plugin (default: enabled if kde3 gui is)]),
1975 [case "${enableval}" in
1976   yes) build_kparts3=yes ;;
1977   no)  build_kparts3=no ;;
1978   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts3 option]) ;;
1979 esac],build_kparts3=$build_kde3)
1981 dnl --------------------------------------------------------
1982 dnl Add KPARTS 4.x support, if specified or KDE gui is built
1983 dnl --------------------------------------------------------
1985 AC_ARG_ENABLE(kparts4,
1986   AC_HELP_STRING([--disable-kparts4], [Disable support for Konqueror 4.x plugin (default: enabled if Qt4 gui is)]),
1987 [case "${enableval}" in
1988   yes) build_kparts4=yes ;;
1989   no)  build_kparts4=no ;;
1990   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts4 option]) ;;
1991 esac],build_kparts4=$build_qt4)
1993 if test x"${build_kparts4}" != xno; then
1994   GNASH_PATH_KDE4
1997 dnl -----------------------------------------------------------
1998 dnl Add NPAPI support, if specified or GTK or Qt4 gui is built
1999 dnl -----------------------------------------------------------
2001 AC_ARG_ENABLE(npapi,
2002   AC_HELP_STRING([--disable-npapi], [Disable NPAPI plugin build (default: enabled if gtk or Qt4 gui is)]),
2003   [case "${enableval}" in
2004     yes) npapi=yes ;;
2005     no)  npapi=no ;;
2006     *)   AC_MSG_ERROR([bad value ${enableval} for disable-npapi option]) ;;
2007   esac],
2008   if test x$build_gtk = xyes -o x$build_qt4 = xyes; then
2009     npapi=yes
2010   fi
2013 if test x"$npapi" = x"yes"; then
2014   GNASH_PATH_NPAPI
2017 dnl -----------------------------------------------------------------
2018 dnl Enable us to disable building all browser plugins in one command.
2019 dnl -----------------------------------------------------------------
2021 AC_ARG_ENABLE(plugins,
2022   AC_HELP_STRING([--disable-plugins], [Disable all browser plugins from building (default=no)]),
2023   [case "${enableval}" in
2024     yes) plugins=yes ;;
2025     no)  plugins=no ;;
2026     *)   AC_MSG_ERROR([bad value ${enableval} for disable-plugins option]) ;;
2027   esac],
2028   plugins=yes
2030 if test x$plugins = xno; then
2031   npapi=no
2032   build_kparts3=no
2033   build_kparts4=no
2037 GNASH_PATH_FIREFOX
2039 dnl 
2040 dnl New versions of the NPAPI require const for this prototype, which currently
2041 dnl seems to only be wit Ubuntu Oneiric.
2042 AC_MSG_CHECKING([for const needed for NPP_GetMIMEDescription() prototype])
2043 npapi_flags="`echo "${NPAPI_CFLAGS}" | sed -e 's/-I//' -e 's/-DXP_UNIX//' | tr -d ' '`/npapi.h"
2044 const_test="`grep NPP_GetMIMEDescription ${npapi_flags} | grep -c const`"
2045 if test ${const_test} -eq 1; then
2046   AC_DEFINE(NPAPI_CONST, [1], [Newer versions use const in prototypes])
2047   AC_MSG_RESULT([yes])
2048 else
2049   AC_MSG_RESULT([no])
2052 AC_TRY_COMPILE([#include <linux/input.h>], [
2053   struct input_absinfo abs;
2054   abs.resolution = 0;; ],
2055  AC_DEFINE([ABSINFO_RESOLUTION], [1], [ABS Resolution field])
2058 dnl -----------------------------------------------------------------
2059 dnl END OF PLUGIN RELATED STUFF
2060 dnl -----------------------------------------------------------------
2062 AM_CONDITIONAL(LIRC, [test x$lirc_ext = xyes])
2064 AC_CHECK_HEADERS(getopt.h)
2065 AC_CHECK_HEADERS(libgen.h)
2066 AC_CHECK_HEADERS(pwd.h)
2067 AC_CHECK_HEADERS(sys/utsname.h)
2068 AC_CHECK_HEADERS(signal.h)
2069 AC_CHECK_HEADERS(unistd.h)
2070 AC_CHECK_HEADERS(sys/time.h)
2071 AC_CHECK_LIB(bz2, BZ2_bzopen, [AC_SUBST(BZ2_LIBS, -lbz2)])
2072 AC_CHECK_LIB(c, getpwnam, AC_DEFINE(HAVE_GETPWNAM, 1, [Has getpwnam] ))
2074 dnl X11 is needed for fltk (at least),
2075 dnl and probably for many other guis too ...
2076 dnl if ! test x$build_fb = xyes; then # <--- this is wrong as build_x is non-exclusive
2077 dnl AC_PATH_XTRA
2078 dnl AC_CHECK_LIB(Xmu, XmuCvtStringToOrientation)
2079 dnl AC_CHECK_LIB(gmp, _gmp_get_memory_functions)
2080 GNASH_PATH_X11
2081 AC_CHECK_LIB(Xi, XInput_find_display)
2082 AC_CHECK_LIB(X11, XDisableAccessControl)
2083 dnl fi
2084 AM_CONDITIONAL(HAVE_X11, [test x${has_x11} = xyes])
2085 if test x${build_x11_device} = xyes -a  x${has_x11} = xyes; then
2086   AC_DEFINE(BUILD_X11_DEVICE, [1], [Build the X11 device])
2089 dnl See if ipc_perm structure has the ipc_perm.key field, and if so,
2090 dnl which variant of the name is used.
2091 ipc_key=no
2092 AC_TRY_COMPILE([
2093   #include <sys/ipc.h>
2094   #include <sys/shm.h>], [
2095  struct shmid_ds shmseg;      
2096  key_t x = shmseg.shm_perm.key;],
2097  ipc_key=yes
2098  AC_DEFINE(IPC_PERM_KEY, [key], [Has the key field in ipc_perm])
2101 if test x$ipc_key = xno; then
2102   AC_TRY_COMPILE([
2103     #include <sys/ipc.h>
2104     #include <sys/shm.h>], [
2105     struct shmid_ds shmseg;      
2106     key_t x = shmseg.shm_perm.__key;],
2107     AC_DEFINE(IPC_PERM_KEY, [__key], [Has the key field in ipc_perm])
2108     ipc_key=yes
2109   )
2112 AC_CACHE_CHECK([for finite], ac_cv_finite,
2113  [AC_TRY_COMPILE([
2114    #include <math.h>
2115    #ifdef HAVE_IEEEFP_H
2116    #include <ieeefp.h>
2117    #endif],
2118  [double x; int y; y = finite(x);],
2119  ac_cv_finite=yes,
2120  ac_cv_finite=no
2122 if test x"$ac_cv_finite" = x"yes"; then
2123   AC_SEARCH_LIBS(finite, m,
2124     [AC_DEFINE(HAVE_FINITE, [1], [Has finite])]
2125   )
2128 AC_LANG_PUSH(C++)
2129 AC_CACHE_CHECK([for isfinite], ac_cv_isfinite,
2130  [AC_TRY_COMPILE([#include <cmath>],
2131  [using namespace std; double x; int y; y = isfinite(x);],
2132  ac_cv_isfinite=yes,
2133  ac_cv_isfinite=no
2135 AC_LANG_POP(C++)
2136 if test x"$ac_cv_isfinite" = x"yes"; then
2137   dnl Don't give up if isfinite is not found in -lm
2138   dnl isfinite is defined as a macro in C99.
2139   AC_SEARCH_LIBS(isfinite, m)
2140   AC_DEFINE(HAVE_ISFINITE, [1], [Has isfinite])
2143 AC_LANG_PUSH(C++)
2144 AC_CACHE_CHECK([whether $CXX implements __PRETTY_FUNCTION__], ac_cv_implements___PRETTY_FUNCTION__, [
2145   AC_TRY_LINK([#include <cstdio>
2146 ], 
2147     [ std::printf("%s", __PRETTY_FUNCTION__); ], 
2148     [ ac_cv_implements___PRETTY_FUNCTION__="yes" ],
2149     [ ac_cv_implements___PRETTY_FUNCTION__="no" ]
2150   )
2152 if test "x$ac_cv_implements___PRETTY_FUNCTION__" = "xyes" ; then
2153   AC_DEFINE(HAVE_PRETTY_FUNCTION, [1], [__PRETTY_FUNCTION__ is defined])
2156 AC_CACHE_CHECK([whether $CXX implements __FUNCTION__], ac_cv_implements___FUNCTION__, [
2157   AC_TRY_LINK([#include <cstdio>
2158 ], 
2159     [ std::printf("%s", __FUNCTION__); ], 
2160     [ ac_cv_implements___FUNCTION__="yes" ],
2161     [ ac_cv_implements___FUNCTION__="no" ]
2162   )
2164 if test "x$ac_cv_implements___FUNCTION__" = "xyes" ; then
2165   AC_DEFINE(HAVE_FUNCTION, [1], [__FUNCTION__ is defined])
2168 AC_CACHE_CHECK([whether $CXX implements __func__], ac_cv_implements___func__, [
2169   AC_TRY_LINK([#include <cstdio>
2170 ], 
2171     [ std::printf("%s", __func__); ], 
2172     [ ac_cv_implements___func__="yes" ],
2173     [ ac_cv_implements___func__="no" ]
2174   )
2176 if test "x$ac_cv_implements___func__" = "xyes" ; then
2177   AC_DEFINE(HAVE_func, [1], [__func__ is defined])
2179 AC_LANG_POP(C++)
2180 AC_REPLACE_FUNCS(getopt)
2182 dnl Date portability stuff, used in server/asobj/Date.cpp
2183 AC_CHECK_FUNCS(gettimeofday)
2184 AC_CHECK_FUNCS(ftime)
2185 AC_CHECK_FUNCS(tzset)
2186 AC_CHECK_FUNCS(localtime_r)
2188 AC_CACHE_CHECK([whether struct tm has tm_gmtoff], ac_cv_tm_gmtoff, [
2189         AC_TRY_LINK([
2190 /* ctime(1) says "The glibc version of struct tm has additional fields
2191  * defined  when _BSD_SOURCE was set before including <time.h>"
2192  * In practice, you do not need to define it yourself (tested on glibc-2.2.1 
2193  * and 2.3.6) but if you *do* define it yourself, it makes *all* functions
2194  * favour BSD-like behaviour over of GNU/POSIX, which seems dangerous.
2195  */
2196 // #define _BSD_SOURCE 1
2197 #include <time.h>
2198 ], 
2199                 [ struct tm tm; long l = tm.tm_gmtoff; ], 
2200                 [ ac_cv_tm_gmtoff="yes" ],
2201                 [ ac_cv_tm_gmtoff="no" ]
2202         )
2204 if test "x$ac_cv_tm_gmtoff" = "xyes" ; then
2205         AC_DEFINE(HAVE_TM_GMTOFF, [1], [struct tm has member tm_gmtoff])
2208 AC_CACHE_CHECK([whether timezone is a long], ac_cv_long_timezone, [
2209         AC_TRY_LINK([
2210 /* On Linux/glibc, tzset(3) says "extern long timezone;" (seconds West of GMT)
2211  * but on BSD char *timezone(int,int) is a function returning a string name.
2212  * The BSD function timegm() may be the equivalent, but this should
2213  * not be necessary because on BSD the code should use tm.tm_gmtoff instead
2214  * (use of long timezone is a fallback strategy for when tm_gmtoff exists not).
2215  */
2216 #include <stdio.h>
2217 #include <time.h>
2218 extern long timezone;
2219   ], 
2220     [ printf("%ld", timezone); ], 
2221     [ ac_cv_long_timezone="yes" ],
2222     [ ac_cv_long_timezone="no" ]
2223    )
2225 if test "x$ac_cv_long_timezone" = "xyes" ; then
2226   AC_DEFINE(HAVE_LONG_TIMEZONE, [1], [extern timezone is a long integer, not a function])
2229 AC_CHECK_FUNCS(sysconf)
2230 AC_CHECK_FUNCS(shmget shmat shmdt mmap)
2231 AC_CHECK_FUNCS(scandir)         dnl supported by BSD and Linux, but you never know...
2232 AC_CHECK_LIB(rt, clock_gettime)
2233 AC_CHECK_FUNC(clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Has clock_gettime()] ))
2234 dnl Look for Win32 networking stuff
2235 AC_CHECK_HEADERS(winsock.h)
2236 AC_CHECK_HEADERS(winsock2.h)
2238 GNASH_PKG_FIND(nspr, [nspr.h], [Netscape Portable Runtime (NSPR)], PR_Init)
2240 AC_PATH_TOOL(WINDRES, [windres])
2241 AC_SUBST(WINDRES)
2243 GNASH_PKG_FIND(z, [zlib.h], [zlib compression library], compress)
2244 GNASH_PKG_FIND(jpeg, [jpeglib.h], [jpeg images], jpeg_mem_init)
2245 GNASH_PKG_FIND(png, [png.h], [png images], png_info_init)
2246 GNASH_PKG_FIND(gif, [gif_lib.h], [gif images], DGifOpen)
2247 if test x"${GIF_LIBS}" = x ; then
2248  GNASH_PKG_FIND(ungif, [gif_lib.h], [gif images], DGifOpen)
2249  GIF_LIBS=${UNGIF_LIBS}
2250  GIF_CFLAGS=${UNGIF_CFLAGS}
2252 if test x"$testsuite" = x"yes"; then
2253   GNASH_PKG_INCLUDES([dejagnu], [dejagnu.h])
2256 GNASH_PKG_FIND(speex, [speex.h], [speex audio codec], speex_decode_int)
2257 AM_CONDITIONAL(HAVE_SPEEX, [ test x$has_speex = xyes ])
2258 if test x$has_speex = xyes ; then
2259   AC_DEFINE([DECODING_SPEEX], [1], [Speex codec available])
2262 GNASH_PKG_FIND(speexdsp, [speex_resampler.h], [speex DSP utilities], speex_resampler_process_int)
2263 if test x$has_speexdsp = xyes ; then
2264   AC_DEFINE([RESAMPLING_SPEEX], [1], [Speex resampler available])
2267 dnl Find freetype and fontconfig
2268 GNASH_PATH_FREETYPE2
2269 GNASH_PKG_FIND(fontconfig, [fontconfig/fontconfig.h], [fontconfig library], FcFontMatch)
2271 if test x$cross_compiling = xno; then
2272   AC_PATH_MING
2275 if test x"$MING_VERSION_CODE" = x; then
2276  MING_VERSION_CODE=00000000
2279 AM_CONDITIONAL(ENABLE_MING,
2280         [ test x"$MAKESWF" != x -a $MING_VERSION_CODE -gt 00040000 ])
2282 AM_CONDITIONAL(MING_VERSION_0_4,
2283         [ test $MING_VERSION_CODE -ge 00040000  ])
2284 AM_CONDITIONAL(MAKESWF_SUPPORTS_PREBUILT_CLIPS,
2285         [ test $MING_VERSION_CODE -ge 00040002  ])
2286 AM_CONDITIONAL(MING_SUPPORTS_INIT_ACTIONS,
2287         [ test $MING_VERSION_CODE -ge 00040004  ])
2288 AM_CONDITIONAL(MING_SUPPORTS_REPLACE_TAG,
2289         [ test $MING_VERSION_CODE -ge 00040005 ])
2290 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_ADD_CHARACTER,
2291         [ test $MING_VERSION_CODE -ge 00040005 ])
2292 AM_CONDITIONAL(MING_SUPPORTS_STREAMING_SOUND,
2293         [ test $MING_VERSION_CODE -ge 00040006 ])
2294 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_SET_DEPTH,
2295         [ test $MING_VERSION_CODE -ge 00040006 ])
2296 AM_CONDITIONAL(MING_VERSION_0_4_3,
2297         [ test $MING_VERSION_CODE -ge 00040300 ])
2298 AM_CONDITIONAL(MING_VERSION_0_4_4,
2299         [ test $MING_VERSION_CODE -ge 00040400 ])
2301 if test x$cross_compiling = xno; then
2302     AC_ARG_WITH([swfdec_testsuite],
2303         AC_HELP_STRING([--with-swfdec-testsuite],
2304             [directory where swfdec testsuite (the 'test' dir) is]),
2305         if test x"${withval}" = xyes; then
2306             dir=`dirname $0`
2307             dir=`cd ${dir} && pwd`
2308             withval="${dir}/testsuite/swfdec/src/test"
2309         fi
2310         SWFDEC_TESTSUITE=${withval}
2311     )
2312     AC_SUBST(SWFDEC_TESTSUITE)
2314 AM_CONDITIONAL(ENABLE_SWFDEC_TESTSUITE, [ test x"$SWFDEC_TESTSUITE" != x ])
2316 if test x$cross_compiling = xno; then
2317   AC_ARG_ENABLE([http_testsuite],
2318       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2319           AC_HELP_STRING([--enable-http-testsuite=<baseurl>],
2320                   [Enable http based testsuite (default url is http://www.gnashdev.org/testcases)]),
2321               [case "${enableval}" in
2322              no) HTTP_TESTSUITE="" ;;
2323             yes) HTTP_TESTSUITE="http://www.gnashdev.org/testcases" ;;
2324               *) HTTP_TESTSUITE="${enableval}";;
2325            esac])
2326   AC_SUBST(HTTP_TESTSUITE)
2328 AM_CONDITIONAL(ENABLE_HTTP_TESTSUITE, [ test x"$HTTP_TESTSUITE" != x ])
2330 if test x$cross_compiling = xno; then
2331   AC_ARG_ENABLE([red5_testing],
2332       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2333           AC_HELP_STRING([--enable-red5-testing=<host>],
2334                   [Enable red5 based testing (default host is www.gnashdev.org)]),
2335               [case "${enableval}" in
2336              no) RED5_HOST="" ;;
2337             yes) RED5_HOST="www.gnashdev.org" ;;
2338               *) RED5_HOST="${enableval}";;
2339            esac])
2340   AC_SUBST(RED5_HOST)
2342 AM_CONDITIONAL(ENABLE_RED5_TESTING, [ test x"$RED5_HOST" != x ])
2344 if test x$cross_compiling = xno; then
2345   AC_ARG_ENABLE([rtmpy_testing],
2346       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2347           AC_HELP_STRING([--enable-rtmpy-testing=<host>],
2348                   [Enable rtmpy based testing (default host is www.gnashdev.org)]),
2349               [case "${enableval}" in
2350              no) RTMPY_HOST="" ;;
2351             yes) RTMPY_HOST="www.gnashdev.org" ;;
2352               *) RTMPY_HOST="${enableval}";;
2353            esac])
2354   AC_SUBST(RTMPY_HOST)
2356 AM_CONDITIONAL(ENABLE_RTMPY_TESTING, [ test x"$RTMPY_HOST" != x ])
2358 dnl The name might differ between systems.
2359 if test x"$testsuite" = x"yes"; then
2360 AC_PATH_PROGS(NETCAT, [nc netcat])
2361 AC_PATH_PROG(WGET, wget)
2363 AM_CONDITIONAL(HAS_NETCAT, [ test x"$NETCAT" != x ])
2364 AM_CONDITIONAL(HAS_WGET, [ test x"$WGET" != x ])
2367 dnl See if we can use the swfmill, mtasc, swfc and haxe based testsuites 
2369 if test x"$testsuite" = x"yes" -a x$cross_compiling = xno; then
2370   AC_PATH_PROG(AS3COMPILE, as3compile)
2371   AC_PATH_PROG(SWFC, swfc)
2372   AC_PATH_SWFMILL
2373   AC_PATH_MTASC
2374   AC_PATH_HAXE
2377 AM_CONDITIONAL(ENABLE_SWFMILL, [ test x"$SWFMILL" != x ])
2378 AM_CONDITIONAL(SWFMILL_AS3_SUPPORT,
2379         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2381 dnl SWFMILL versions older than 0.3 didn't get function2 flags order correctly
2382 AM_CONDITIONAL(SWFMILL_FUNCTION2_FLAGS_ORDER_CORRECT,
2383         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2385 AM_CONDITIONAL(ENABLE_AS3COMPILE, [ test x"$AS3COMPILE" != x ])
2386 AM_CONDITIONAL(ENABLE_MTASC, [ test x"$MTASC" != x ])
2387 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2388 AM_CONDITIONAL(ENABLE_SWFC, [ test x"$SWFC" != x ])
2389 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2391 AC_PATH_PROG(DOXYGEN, doxygen)
2392 AM_CONDITIONAL(ENABLE_DOXYGEN, [ test x"$DOXYGEN" != x ])
2394 AM_CONDITIONAL(HAVE_KDE3,    [test x$has_kde3 = xyes])
2395 AM_CONDITIONAL(HAVE_KDE4,    [test x$has_kde4 = xyes])
2396 AM_CONDITIONAL(HAVE_QT3,     [test x$has_qt3 = xyes])
2397 AM_CONDITIONAL(HAVE_QT4,     [test x$has_qt4 = xyes])
2399 AM_CONDITIONAL([QT_X11],     [test "$platform" = "X11"])
2400 AM_CONDITIONAL([QTOPIA],     [test "$platform" = "Qtopia"])
2401 AM_CONDITIONAL([QT_OSX],     [test "$platform" = "OSX"])
2402 AM_CONDITIONAL([QT_OS9],     [test "$platform" = "OS9"])
2403 AM_CONDITIONAL([QT_WIN32],   [test "$platform" = "Win32"])
2405 dnl Need GLIB for both GTK and GST
2406 if test x"${build_gtk}" = xyes -o x"${build_media_gst}" = xyes; then
2407   GNASH_PATH_GLIB
2410 AM_CONDITIONAL(HAVE_GLIB, [ test x"${has_glib}" = xyes ])
2412 if test x$npapi = xyes; then
2413   if ! test x$build_gtk = xyes -o x$build_qt4 = xyes; then
2414     AC_MSG_WARN(["Enabled NPAPI plugin, but it's not supported by the selected GUI"])
2415   fi
2418 if test x$windows = xyes -a x$npapi = xyes; then
2419   if test "x$NSPR_CFLAGS" = x -a "x$NSPR_LIBS" = x; then
2420     AC_MSG_ERROR(["On Win32, NPAPI plugin requires NSPR."])
2421   fi
2422   if test "x$WINDRES" = x; then
2423     AC_MSG_ERROR(["On Win32, NPAPI plugin requires windres."])
2424   fi
2427 dnl Need GLIB for NPAPI plugin
2428 if test x$npapi = xyes; then
2429   GNASH_PATH_GLIB
2432 dnl if kde isn't installed, even if it's specified, don't try to build
2433 dnl the KPARTS plugin, which is KDE based.
2434 if test x$has_kde3 = xno -a x$build_kparts3 = xyes; then
2435   build_kparts3=no
2436   AC_MSG_WARN(["Disabling KPARTS 3.x plugin, no KDE development found"])
2439 if test x$build_kde3 = xno -a x$build_kparts3 = xyes; then
2440   AC_MSG_WARN(["Enabled KPARTS 3.x plugin, but you aren't building a KDE based GUI!"])
2442 if test x$has_kde4 = xno -a x$build_kparts4 = xyes; then
2443   build_kparts4=no
2444   AC_MSG_WARN(["Disabling KPARTS 4.x plugin, no KDE 4.x development found"])
2447 if test x$build_qt4 = xno -a x$kparts4 = xyes; then
2448   AC_MSG_WARN(["Enabled KPARTS 4.x plugin, but you aren't building a KDE 4.x based GUI!"])
2451 AM_CONDITIONAL(BUILD_QTOPIA3_GUI,  [ test x$build_qtopia3 = xyes ])
2452 AM_CONDITIONAL(BUILD_QTOPIA4_GUI,  [ test x$build_qtopia4 = xyes ])
2454 AM_CONDITIONAL(BUILD_KDE3_GUI,     [ test x$build_kde3 = xyes ])
2455 AM_CONDITIONAL(BUILD_QT4_GUI,     [ test x$build_qt4 = xyes ])
2457 AM_CONDITIONAL(BUILD_GTK_GUI,      [ test x$build_gtk = xyes ])
2458 AM_CONDITIONAL(BUILD_FLTK_GUI,     [ test x$build_fltk = xyes ])
2459 AM_CONDITIONAL(BUILD_SDL_GUI,      [ test x$build_sdl = xyes ])
2460 AM_CONDITIONAL(BUILD_FB_GUI,       [ test x$build_fb = xyes ])
2461 AM_CONDITIONAL(BUILD_AQUA_GUI,     [ test x$build_aqua = xyes ])
2462 AM_CONDITIONAL(BUILD_DUMP_GUI,     [ test x$build_dump = xyes ])
2463 AM_CONDITIONAL(BUILD_AMIGAOS4_GUI, [ test x$build_aos4 = xyes ])
2464 AM_CONDITIONAL(BUILD_HAIKU_GUI,    [ test x$build_haiku = xyes ])
2466 # plugin building flags
2467 AM_CONDITIONAL(NPAPI,   [test x"${npapi}" = xyes])
2468 AM_CONDITIONAL(KPARTS3, [test x"${build_kparts3}" = xyes])
2469 AM_CONDITIONAL(KPARTS4, [test x"${build_kparts4}" = xyes])
2471 if test x"${build_gles1}"; then
2472   GNASH_PATH_GLES
2475 dnl only Linux supports /dev/fb0
2476 if test x"${build_rawfb_device}" = xyes -a x"${linux}" = xyes; then
2477    AC_DEFINE([BUILD_RAWFB_DEVICE], [1], [Use raw Framebuffer device support])
2480 if test x"${build_directfb_device}" = xyes; then
2481    GNASH_PKG_FIND(directfb, [directfb.h], [DirectFB render library], DirectFBCreate)
2482    AC_DEFINE([BUILD_DIRECTFB_DEVICE], [1], [Use DirectFB device support])
2485 AM_CONDITIONAL(BUILD_VAAPI_DEVICE, [test x"${use_libva}" = xyes])
2486 AM_CONDITIONAL(BUILD_EGL_DEVICE, [test x"${build_egl_device}" = xyes])
2487 AM_CONDITIONAL(BUILD_DIRECTFB_DEVICE, [ test x${build_directfb_device} = xyes])
2488 AM_CONDITIONAL(BUILD_RAWFB_DEVICE, [ test x${build_rawfb_device} = xyes])
2489 AM_CONDITIONAL(BUILD_X11_DEVICE, [test x${build_x11_device} = xyes])
2491 if test x"${build_gtk}" = xyes; then
2492   AC_ARG_ENABLE(ghelp,
2493     AC_HELP_STRING([--enable-ghelp], [Enable support for the GNOME help system]),
2494     [case "${enableval}" in
2495       yes) ghelp=yes ;;
2496       no)  ghelp=no ;;
2497       *)   AC_MSG_ERROR([bad value ${enableval} for enable-ghelp option]) ;;
2498     esac], ghelp=no
2499   )
2501   if test x"${ghelp}" = x"yes" ; then
2502     AC_PATH_PROG(SCROLLKEEPER, scrollkeeper-config, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2503     AC_PATH_PROG(SCROLLUPDATE, scrollkeeper-update, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2504     AC_PATH_PROG(SCROLLINSTALL, scrollkeeper-preinstall, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2506     if test x"$SCROLLKEEPER" = x -o x"$SCROLLUPDATE" = x -o x"$SCROLLINSTALL" = x ; then
2507       ghelp=no
2508       AC_MSG_WARN([You need to install scrollkeeper for gnome help])
2509     fi
2510   fi
2512 AM_CONDITIONAL(GHELP, [test x${ghelp} = xyes])
2514 if test x${build_fltk} = xyes; then
2515   GNASH_PKG_FIND(Xft, [Xft.h], [xft library], XftGlyphRender)
2518 dnl Some systems have a pervered set of dependencies.
2519 dnl Fedora Core 6 appears to have a dependency on expat for fontconfig.
2520 dnl We only need the library, but this is the easy wind to find it.
2521 GNASH_PKG_FIND(expat, [expat.h], [Expat library], XML_ErrorString)
2523 dnl these conditionals were moved out of kde.m4
2524 AM_CONDITIONAL(HAS_KDE3, [test x$has_kde3 = xyes])
2525 # used to disable x11-specific stuff on special platforms
2526 AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
2527 AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
2528 AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
2530 AM_CONDITIONAL(HAVE_GLEXT, [test x$glext = xyes])
2532 dnl We don't have GTKGLExt, so default to SDL, and don't build the Firefox plugin
2533 if test x$glext = xno -a x$build_ogl = xyes; then
2534   if test x$gtk2 = xyes -a x$build_gtk = xyes; then
2535     AC_ERROR([You have GTK installed, but not GtkGLExt. You need GtkGLExt to use the OpenGL renderer. Attempting to build SDL version])
2536   fi
2537   gui=sdl
2538   npapi=no
2539   AC_MSG_WARN([GTK2 specified for the GUI, but GtkGlExt is not present. Trying SDL instead.])
2542 missing_codecs=""
2543 if test x"$build_media_gst" = "xyes"; then
2544   AC_PATH_PROG(GST_INSPECT, gst-inspect, ,[${pathlist}])
2545   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2546     AC_PATH_PROG(GST_INSPECT, gst-inspect-0.10, ,[${pathlist}])
2547   fi
2548   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2549     dnl FIXME: there may be multiple acceptable plugins that are acceptable for
2550     dnl our use. For example, mad or FFmpeg will play mp3.
2551     codecs="ffdec_flv ffdec_flashsv ffdec_vp6f ffdec_flashsv mad vorbisdec ffdec_vp6"
2552     for i in $codecs; do
2553        hits="`$GST_INSPECT $i | grep -c 'Long name'`"
2554        if test $hits -eq 0; then
2555          missing_codecs="$missing_codecs $i"
2556          AC_MSG_WARN([Missing codec: $i])
2557        fi
2558     done
2559   fi
2560   GNASH_PKG_FIND(gstreamer_plugins_base, [gst/interfaces/probeprobe.h], [gstreamer interfaces library], gst_property_probe_probe_and_get_values_name, [0.10])
2561   GNASH_PKG_FIND(gstreamer_app, [gst/app/gstappsink.h], [gstreamer app library], call_gmon_start, [0.10])
2562   GNASH_PKG_FIND(gstreamer, [gst/gst.h], [gstreamer library], gst_init, [0.10])
2563   dnl if cross compiling, we're usually not going to be able to pop up
2564   dnl the codec installer to download the package to install, so disable
2565   dnl it if cross compiling with gstreamer support.
2566   if test x$cross_compiling = xno; then
2567     GNASH_PKG_FIND(gstreamer_pbutils, [gst/pbutils/install-plugins.h], [gstreamer PB Utils library], gst_install_plugins_supported, [0.10])
2568   fi
2569   dnl when cross compiling Gstreamer, not all supplied SDKs include all the
2570   dnl development libraries since most devices don't need to support plugin
2571   dnl development, only the runtime. In these caes we often have the header
2572   dnl files but not the libraries.
2573   if test x"${has_gstreamer_plugins_base}" = xyes; then
2574     GSTREAMER_LIBS="-lgstinterfaces-0.10 $GSTREAMER_LIBS"
2575     AC_DEFINE(HAS_GSTREAMER_PLUGINS_BASE, [1], [Has the Gstreamer Plugin Dev package installed])
2576   fi
2579 AM_CONDITIONAL(HAVE_CAIRO, [true])
2580 AM_CONDITIONAL(HAVE_OPENGL, [true])
2582 AM_CONDITIONAL(USE_SOUND_SDL, test x$build_sound_sdl = xyes)
2583 AM_CONDITIONAL(USE_SOUND_AHI, test x$build_sound_ahi = xyes)
2584 AM_CONDITIONAL(USE_SOUND_MKIT, test x$build_sound_mkit = xyes)
2585 AM_CONDITIONAL(USE_FFMPEG_ENGINE, test x"${build_media_ffmpeg}" = x"yes")
2586 AM_CONDITIONAL(USE_GST_ENGINE, test x"${build_media_gst}" = x"yes")
2587 AM_CONDITIONAL(HAVE_OPENGL, test x"${OPENGL_LIBS}" != x)
2588 dnl for now the Haiku media handler is experimental
2589 AM_CONDITIONAL(USE_HAIKU_ENGINE, test x"$build_media_haiku" = xyes)
2591 if test x"${build_media_ffmpeg}" = x"yes"; then
2592   AC_DEFINE([ENABLE_FFMPEG_MEDIA],  [1], [Use FFmpeg for media decoding])
2595 if test x"${build_media_gst}" = x"yes"; then
2596   AC_DEFINE([ENABLE_GST_MEDIA],  [1], [Use gstreamer for media decoding])
2599 if test x"${build_media_haiku}" = x"yes"; then
2600   AC_DEFINE([ENABLE_HAIKU_MEDIA],  [1], [Use haiku for media decoding])
2603 if test x$build_sound_mkit = xyes; then
2604   if test x"${haiku}" != xyes; then
2605     AC_MSG_ERROR([Media Kit sound handling is supported only under Haiku]);
2606   else
2607     AC_DEFINE([SOUND_MKIT],  [1], [Use Haiku Media Kit for sound handling])
2608   fi
2611 if test x"${build_sound_sdl}" = xyes; then
2612   AC_DEFINE([SOUND_SDL],  [1], [Use SDL for sound handling])
2615 if test x"${build_sound_ahi}" = xyes; then
2616   if test x"$amigaos4" != xyes; then
2617     AC_MSG_ERROR([AHI sound handling is supported only under AmigaOS]);
2618   else
2619     AC_DEFINE([SOUND_AHI],  [1], [Use AmigaOS AHI for sound handling])
2620   fi
2623 if test x$build_fltk = xyes; then
2624   GNASH_PKG_FIND(fltk2, [fltk/FL_API.h], [Fast Light Toolkit], fl_window_flush)
2625   if test x"${has_fltk2}" = xyes; then
2626     AC_CHECK_LIB(Xi, XInput_find_display,
2627       [AC_SUBST(FLTK2_LIBS, "$FLTK2_LIBS -lXi")])
2628   fi
2631 AM_CONDITIONAL(HAVE_FLTK2, [ test x$has_fltk2 = xyes ])
2632 AM_CONDITIONAL(HAS_XFT, [ test x$has_xft = xyes ])
2634 GNASH_DOCBOOK
2635 AM_CONDITIONAL(ENABLE_INFO, test x${INSTALL_INFO} != x)
2636 AM_CONDITIONAL(DOCBOOK, test x$docbook = xyes)
2637 AM_CONDITIONAL(ENABLE_TEXI, [ test x"$DB2X_TEXI" != x -o x"$DB2X_TEXIXML" != x ])
2638 AM_CONDITIONAL(ENABLE_PDF, [ test x"$DB2X_PDF" ])
2639 AM_CONDITIONAL(ENABLE_HTML, [ test x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2640 AM_CONDITIONAL(ENABLE_FOP, [ test x"$FOP" != x -a x"$docbook_styles" != x ])
2641 AM_CONDITIONAL(ENABLE_XMLTEX, [ test x"$PDFXMLTEX" != x -a x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2642 AM_CONDITIONAL(ENABLE_MAN, [ test x"$DB2X_MAN" != x -o x"$DB2X_MANXML" != x ])
2643 AM_CONDITIONAL(HAVE_AGG, [test x"${AGG_LIBS}" != x])
2645 GNASH_PATH_CURL
2647 dnl Define winsock if we're on windows. We could do something complicated,
2648 dnl but since AC_EXEEXT does it for us, we'll do this the easy way.
2649 if test x"$EXEEXT" = "exe"; then
2650   AC_DEFINE(HAVE_WINSOCK,1,[This is defined is we are on Win32])
2653 dnl ****************************************
2654 dnl *** Check for ELF visibility support ***
2655 dnl ****************************************
2657 AC_ARG_ENABLE([visibility],
2658   AC_HELP_STRING([--enable-visibility], [Use ELF visibility attributes]), [], [enable_visibility=no])
2660 if test x"$enable_visibility" != x"no"; then
2661   dnl Check whether the compiler supports the visibility attribute
2662   save_CFLAGS="$CFLAGS"
2663   CFLAGS="$CFLAGS -Wall -Werror"
2664   AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
2665   AC_COMPILE_IFELSE([AC_LANG_SOURCE(
2666     [
2667       void __attribute__ ((visibility("default"))) test_default (void) {}
2668       void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
2669       int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
2670     ])],
2671     [
2672       AC_DEFINE([HAVE_GNUC_VISIBILITY], [1], [Define this for GCC-visibility.])
2673       AC_MSG_RESULT([yes])
2674     ],
2675     [
2676       AC_MSG_RESULT([no])
2677     ]
2678   )
2679   CFLAGS="$save_CFLAGS"
2682 AC_ARG_ENABLE([pch],
2683   AC_HELP_STRING([--enable-pch], [Enable precompiled header support]), [], [enable_pch=no])
2685 AM_CONDITIONAL([ENABLE_PCH], [test x"$enable_pch" != x"no"])
2687 PCH_FLAGS="-include all-includes.h -Winvalid-pch"
2688 AC_SUBST(PCH_FLAGS)
2690 GNASH_PATH_PTHREADS
2692 GNASH_PATH_BOOST
2694 AC_ARG_ENABLE([strict],
2695   AC_HELP_STRING([--enable-strict],[Accept only standards compliant code (GCC only)]),
2696   [case "${enableval}" in
2697     yes) strict=yes ;;
2698     no) strict=no ;;
2699     *) AC_MSG_ERROR([bad value ${enableval} for --enable-strict option]) ;;
2700   esac],
2701   [strict=no]
2704 if test x"$strict" = x"yes" -a x$build_agg = xyes; then
2705    AC_MSG_ERROR([agg renderer will fail with --enable-strict.]);        
2708 # We want warnings, lots of warnings  :-)
2709 # It should be possible to build with -ansi, not with
2710 # -pedantic because of agg.
2712 # -ansi was actually dropped because it hides 'fileno', which
2713 # is used in a few places
2715 if test x"$GCC" = x"yes"; then
2716   CXXFLAGS="$CXXFLAGS \
2717     $CROSS_CXXFLAGS \
2718     -W \
2719     -Wall \
2720     -Wcast-align \
2721     -Wcast-qual \
2722     -Wpointer-arith \
2723     -Wreturn-type \
2724     -Wnon-virtual-dtor \
2725     -Wunused \
2726     "
2727   CFLAGS="$CFLAGS \
2728     $CROSS_CXXFLAGS \
2729     -W \
2730     -Wall \
2731     -Wcast-align \
2732     -Wcast-qual \
2733     -Wpointer-arith \
2734     -Wreturn-type \
2735     -Wmissing-declarations \
2736     -Wmissing-prototypes \
2737     -Wstrict-prototypes \
2738     "
2739   if test x"$strict" = x"yes"; then
2740     CXXFLAGS="$CXXFLAGS \
2741       -Wextra \   
2742       -pedantic \
2743       -Wno-long-long \
2744       "
2746     CFLAGS="$CFLAGS \
2747       -pedantic \
2748       -Wno-long-long \
2749       -ansi \
2750       "
2751   fi
2754 AC_ARG_ENABLE([cassert],
2755   AC_HELP_STRING([--disable-cassert],[Disable assertion checking]),
2756   [case "${enableval}" in
2757     yes) cassert=yes ;;
2758     no) cassert=no ;;
2759     *) AC_MSG_ERROR([bad value ${enableval} for --enable-cassert option]) ;;
2760   esac],
2761   [cassert=yes]
2764 if test x"$cassert" = x"no"; then
2765     CXXFLAGS="$CXXFLAGS \
2766       -DNDEBUG \
2767       "
2768     CFLAGS="$CFLAGS \
2769       -DNDEBUG \
2770       "
2773 dnl /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
2774 AC_DEFUN([CHECK_VISIBILITY_GCC_BUG],
2775   [
2776     AC_CACHE_CHECK([if -fvisibility-inlines-hidden is broken], ac_cv_gcc_visibility_bug, [
2777         AC_LANG_PUSH(C++)
2778         save_CXXFLAGS=$CXXFLAGS
2779         save_LDFLAGS=$LDFLAGS
2780         CXXFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
2781         LDFLAGS="$LDFLAGS -shared -fPIC"
2783         AC_TRY_LINK(
2784         [          
2785           template<typename CharT>
2786           struct VisTest
2787           {
2788             inline VisTest ();
2789           };
2790           template<typename CharT>
2791           inline VisTest<CharT>::VisTest()
2792         {}
2793         extern template class VisTest<char>;  // It works if we drop that line
2794         int some_function( int do_something ) __attribute__((visibility("default")));
2795         int some_function( int )
2796           {
2797             VisTest<char> a;
2798             return 0;
2799           }
2800         ], [],
2801         ac_cv_gcc_visibility_bug=no, ac_cv_gcc_visibility_bug=yes)
2803         CXXFLAGS=$save_CXXFLAGS
2804         LDFLAGS=$save_LDFLAGS
2805         AC_LANG_POP(C++)
2806       ]
2807     )
2808     if test x$ac_cv_gcc_visibility_bug = xno; then
2809       CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
2810     fi
2811   ]
2814 CHECK_VISIBILITY_GCC_BUG
2816 if test x$ac_cv_gcc_visibility_bug = xno; then
2817   AC_LANG_PUSH(C++)
2818   AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
2819   save_CXXFLAGS=$CXXFLAGS
2820   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2821   AC_LINK_IFELSE([AC_LANG_PROGRAM()], 
2822                  [ac_cv_gcc_visibility=yes;
2823                   AC_MSG_RESULT([yes])],
2824                  [ac_cv_gcc_visibility=no;
2825                   AC_MSG_RESULT([no])]);
2826   CXXFLAGS="$save_CXXFLAGS"
2827   AC_LANG_POP(C++)
2831 AM_CONDITIONAL(VISIBILITY_WORKS, test x"$ac_cv_gcc_visibility" = xyes)
2833 if test x"$ac_cv_gcc_visibility" = xyes -a x"$enable_visibility" != xno; then
2834   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2837 dnl Define convenience constants so Gnash can print out the
2838 dnl default configuration of the build.
2839 RENDERER_CONFIG="${renderer_list}"
2840 RENDERER_LIBS=
2841 for rend in `echo "${add_renderer}" | tr ',' ' '`; do
2842         RENDERER_LIBS="${RENDERER_LIBS} \$(top_builddir)/librender/libgnash${rend}.la"
2843 done
2844 AC_SUBST(RENDERER_LIBS)
2845 AC_SUBST(RENDERER_CONFIG)
2847 HWACCEL_CONFIG="${device_list}"
2848 AC_SUBST(HWACCEL_CONFIG)
2850 dnl check for missing libraries and disable them.
2851 if test x"$BOOST_LIBS" != x; then
2852   if test x"${cygnal_missing_libs}" != x; then
2853     for i in ${cygnal_missing_libs}; do
2854       if test $i = serialization; then
2855         AC_DEFINE([BOOST_MULTI_INDEX_DISABLE_SERIALIZATION], ["1"], [if the library is missing, don't use it.])
2856       fi
2857     done
2858   fi
2861 CYGNAL_PATHS
2863 SUPPORTED_GUIS=
2864 if test x$build_qtopia3 = xyes; then
2865   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia3"
2867 if test x$build_qtopia4 = xyes; then
2868   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia4"
2870 if test x$build_fb = xyes; then
2871   SUPPORTED_GUIS="${SUPPORTED_GUIS},fb"
2873 if test x$build_fltk = xyes; then
2874   SUPPORTED_GUIS="${SUPPORTED_GUIS},fltk"
2876 if test x$build_kde3 = xyes; then
2877   SUPPORTED_GUIS="${SUPPORTED_GUIS},kde3"
2879 if test x$build_qt4 = xyes; then
2880   SUPPORTED_GUIS="${SUPPORTED_GUIS},qt4"
2882 if test x$build_gtk = xyes; then
2883   SUPPORTED_GUIS="${SUPPORTED_GUIS},gtk"
2885 if test x$build_sdl = xyes; then
2886   SUPPORTED_GUIS="${SUPPORTED_GUIS},sdl"
2888 if test x$build_aqua = xyes; then
2889   SUPPORTED_GUIS="${SUPPORTED_GUIS},aqua"
2891 if test x$build_dump = xyes; then
2892   SUPPORTED_GUIS="${SUPPORTED_GUIS},dump"
2894 if test x$build_aos4 = xyes; then
2895   SUPPORTED_GUIS="${SUPPORTED_GUIS},aos4"
2897 if test x$build_haiku = xyes; then
2898   SUPPORTED_GUIS="${SUPPORTED_GUIS},haiku"
2900 SUPPORTED_GUIS="`echo ${SUPPORTED_GUIS} | sed 's/,//'`" # Strip leading comma
2901 AC_SUBST(SUPPORTED_GUIS)
2903 AC_CONFIG_LINKS(cygnal/testsuite/cygnal.all/cygnalrc:cygnal/testsuite/cygnal.all/cygnalrc.in)
2904 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc:testsuite/libbase.all/gnashrc.in)
2905 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc-local:testsuite/libbase.all/gnashrc-local.in)
2907 AC_CONFIG_FILES(
2908 gnash.pc:gnash.pc.in
2909 desktop/gnash-gtk-launcher:desktop/gnash-gtk-launcher.in
2910 desktop/gnash-qt-launcher:desktop/gnash-qt-launcher.in
2913 AC_OUTPUT(Makefile
2914 desktop/Makefile
2915 po/Makefile
2916 libmedia/Makefile
2917 libsound/Makefile
2918 libbase/Makefile
2919 libcore/Makefile
2920 libcore/vm/Makefile
2921 libcore/parser/Makefile
2922 librender/Makefile
2923 utilities/Makefile
2924 doc/Makefile
2925 doc/C/Makefile
2926 doc/Doxyfile
2927 testsuite/Makefile
2928 testsuite/media/Makefile
2929 testsuite/libbase.all/Makefile
2930 testsuite/as3compile.all/Makefile
2931 testsuite/actionscript.all/Makefile
2932 testsuite/samples/Makefile
2933 testsuite/swfdec/Makefile
2934 testsuite/misc-ming.all/Makefile
2935 testsuite/misc-ming.all/action_order/Makefile
2936 testsuite/misc-ming.all/sound/Makefile
2937 testsuite/misc-ming.all/displaylist_depths/Makefile
2938 testsuite/misc-ming.all/init_action/Makefile
2939 testsuite/misc-ming.all/loop/Makefile
2940 testsuite/misc-ming.all/loading/Makefile
2941 testsuite/misc-ming.all/register_class/Makefile
2942 testsuite/misc-mtasc.all/Makefile
2943 testsuite/misc-haxe.all/Makefile
2944 testsuite/misc-haxe.all/classes.all/Makefile
2945 testsuite/misc-swfmill.all/Makefile
2946 testsuite/misc-swfmill.all/trace-as2/Makefile
2947 testsuite/misc-swfmill.all/trace-as3/Makefile
2948 testsuite/misc-swfc.all/Makefile
2949 testsuite/network.all/Makefile
2950 testsuite/movies.all/Makefile
2951 testsuite/libcore.all/Makefile
2952 testsuite/libmedia.all/Makefile
2953 gui/Makefile
2954 gui/Info.plist
2955 gui/pythonmod/Makefile
2956 extensions/Makefile
2957 extensions/dejagnu/Makefile
2958 extensions/mysql/Makefile
2959 extensions/fileio/Makefile
2960 extensions/gtk2/Makefile
2961 extensions/lirc/Makefile
2962 extensions/dbus/Makefile
2963 plugin/Makefile
2964 plugin/npapi/Makefile
2965 plugin/klash/Makefile
2966 plugin/klash4/Makefile
2967 plugin/win32/Makefile
2968 plugin/aos4/Makefile
2969 libdevice/Makefile
2970 cygnal/Makefile
2971 cygnal/libnet/Makefile
2972 cygnal/libamf/Makefile
2973 cygnal/cgi-bin/Makefile
2974 cygnal/cgi-bin/echo/Makefile
2975 cygnal/cgi-bin/oflaDemo/Makefile
2976 cygnal/cgi-bin/fitcDemo/Makefile
2977 cygnal/testsuite/Makefile
2978 cygnal/testsuite/libamf.all/Makefile
2979 cygnal/testsuite/libnet.all/Makefile
2980 cygnal/testsuite/cygnal.all/Makefile
2984 ########################## Final report begins... ############################
2987 dnl Create temporary directory in a secure way
2988 tmp=`mktemp -d ${TMPDIR=/tmp}/gnash-configure-XXXXXX`
2989 if test \! -n "$tmp" || test \! -d "$tmp"; then
2990   tmp=`(umask 077 && mkdir -d ${TMPDIR=/tmp}/gnash-configure-${RANDOM}-$$) 2>/dev/null`
2992 cerr="${tmp}/errors"
2993 cwarn="${tmp}/warnings"
2994 crec="${tmp}/recommended"
2995 deb_err="${tmp}/deb_err"
2996 deb_war="${tmp}/deb_war"
2997 deb_rec="${tmp}/deb_rec"
2998 rpm_err="${tmp}/rpm_err"
2999 rpm_war="${tmp}/rpm_war"
3000 rpm_rec="${tmp}/rpm_rec"
3001 yast_err="${tmp}/yast_err"
3002 yast_war="${tmp}/yast_war"
3003 yast_rec="${tmp}/yast_rec"
3004 echo ""
3006 #trap 'rm cerr' 0 # trap isn't a good idea, might override other traps
3007 exec 3> $cerr 
3008 exec 4> $cwarn
3009 exec 5> $crec
3011 for F in "$deb_err" "$deb_war" "$deb_rec" "$rpm_err" "$rpm_war" "$rpm_rec" "$yast_err" "$yast_war" "$yast_rec"; do
3012   touch "$F";
3013 done
3015 pkg_out_fd=
3016 deb_dest=
3017 rpm_dest=
3018 yast_dest=
3020 dnl These macros should be portable as I checked most things used are in
3021 dnl POSIX-2008, GNU CoreUtils, and shipped in MinGW. Old unices? No clue.
3022 dnl In any case, they are hardly relevant on non-GNU systems.
3024 dnl Beware, here comes some long scary shell commands.
3026 AC_DEFUN([PKG_ERR],
3028   pkg_out_fd=3
3029   echo "          ERROR: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3030   deb_dest="$deb_err"
3031   rpm_dest="$rpm_err"
3032   yast_dest="$yast_err"
3035 AC_DEFUN([PKG_WAR],
3037   pkg_out_fd=4
3038   echo "        WARNING: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3039   deb_dest="$deb_war"
3040   rpm_dest="$rpm_war"
3041   yast_dest="$yast_war"
3044 AC_DEFUN([PKG_REC],
3046   pkg_out_fd=5
3047   echo "    RECOMMENDED: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3048   deb_dest="$deb_rec"
3049   rpm_dest="$rpm_rec"
3050   yast_dest="$yast_rec"
3053 AC_DEFUN([PKG_SUGGEST],
3055   echo "`echo "$1" | fold -s -w 62 | sed 's/^/                 /'`" >&$pkg_out_fd
3058 AC_DEFUN([DEB_INSTALL],
3060   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
3061   echo -n " $1" >> "$deb_dest"
3064 AC_DEFUN([DEB_ALTERNATIVE],
3066   echo "                 or maybe     : `echo "apt-get install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3067   echo -n "/$1" >> "$deb_dest"
3070 AC_DEFUN([RPM_INSTALL],
3072   echo "                 or .rpm users: `echo "yum install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3073   echo -n " $1" >> "$rpm_dest"
3076 AC_DEFUN([RPM_ALTERNATIVE],
3078   echo "                 or maybe     : `echo "yum install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3079   echo -n "/$1" >> "$rpm_dest"
3082 AC_DEFUN([YAST_INSTALL],
3084   echo "                 or yast users: `echo "yast install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3085   echo -n " $1" >> "$yast_dest"
3088 AC_DEFUN([YAST_ALTERNATIVE],
3090   echo "                 or maybe     : `echo "yast install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3091   echo -n "/$1" >> "$yast_dest"
3094 AC_DEFUN([PKG_ALTERNATIVE],
3096   echo "`echo "$1" | fold -s -w 62 | sed 's/^/                 /'`" >&$pkg_out_fd
3099 echo "Configurable options are:"
3101 if test x"${pthreads}" = x"yes"; then
3102   echo "        POSIX Threads support enabled (default)"
3103 else
3104   if test x"${build_haiku}" = x"yes"; then
3105      echo "        POSIX Thread support built into C library."
3106   else
3107      echo "        POSIX Thread support disabled."
3108   fi
3111 if test x"${npapi}" = x"yes"; then
3112   echo "        NPAPI plugin enabled (default). Use --disable-npapi to disable."
3113   echo "        NPAPI plugin will be installed in ${FIREFOX_PLUGINS}"
3114 else
3115   echo "        NPAPI plugin disabled."
3118 if test x"${build_kparts3}" = x"yes"; then
3119   echo "        KPARTS 3.x plugin enabled (default). Use --disable-kparts3 to disable"
3120   echo "            KPARTS 3.x plugin will be installed in ${KDE3_PLUGINDIR}"
3121   echo "            KPARTS 3.x service will be installed in ${KDE3_SERVICESDIR}"
3122   echo "            KPARTS 3.x config dir will be in ${KDE3_CONFIGDIR}"
3123   echo "            KPARTS 3.x appsdata will be installed in ${KDE3_APPSDATADIR}"
3124 else
3125   echo "        KPARTS 3.x plugin disabled."
3128 if test x"${build_kparts4}" = x"yes"; then
3129   echo "        KPARTS 4.x plugin enabled (default). Use --disable-kparts4 to disable"
3130   echo "            KPARTS 4.x plugin will be installed in ${KDE4_PLUGINDIR}"
3131   echo "            KPARTS 4.x service will be installed in ${KDE4_SERVICESDIR}"
3132   echo "            KPARTS 4.x config dir will be in ${KDE4_CONFIGDIR}"
3133   echo "            KPARTS 4.x appsdata will be installed in ${KDE4_APPSDATADIR}"
3134 else
3135   echo "        KPARTS 4.x plugin disabled."
3138 # set a variable if we shouldn't continue. This way we can print
3139 # out everything that is missing in one pass, hopefully making it
3140 # easy for new developers to get everything they need installed.
3142 echo ""
3143 echo "Configured paths for ${build} are:"
3145 dnl Dump QT3 options is the user specified a QTOPIA3 or KDE3 GUI
3146 if test x"${build_kde3}" = xyes -o x"${build_qtopia3}" = xyes; then
3147   if test x"${has_qt3}" = xyes; then
3148     echo "        QT3 flags are: ${QT3_CFLAGS}"
3149     echo "        QT3 libs are: ${QT3_LIBS}"
3150   else
3151     PKG_ERR([No QT 3.x development package installed!])
3152     PKG_SUGGEST([Install a QT 3.x development environment from http://qt.nokia.com/])
3153     DEB_INSTALL([libqt3-mt-dev])
3154     RPM_INSTALL([qt3-devel])
3155     RPM_ALTERNATIVE([qt-devel])
3156     PKG_ALTERNATIVE([or change to a different gui with --enable-gui=...])
3157   fi
3160 dnl Dump QT4 options is the user specified a QTOPIA4 or Qt4 GUI
3161 if test x"${build_qt4}" = xyes -o x"${build_qtopia4}" = xyes; then
3162   if test x"${has_qt4}" = xyes; then
3163     echo "        QT4 flags are: ${QT4_CFLAGS}"
3164     echo "        QT4 libs are: ${QT4_LIBS}"
3165   else
3166     PKG_ERR([No QT 4.x development package installed!])
3167     PKG_SUGGEST([Install a QT 4.x development environment from http://qt.nokia.com/])
3168     DEB_INSTALL([libqt4-dev])
3169     DEB_ALTERNATIVE([qt4-dev-tools]) dnl TODO: Is this required?
3170     RPM_INSTALL([qt4-devel])
3171     RPM_ALTERNATIVE([qt-devel])
3172     PKG_ALTERNATIVE([or change to a different gui with --enable-gui=...])
3173   fi
3176 if test x"${build_kparts4}" = xyes; then
3177   if test x"${has_kde4}" = xyes; then
3178     echo "        KDE4 flags are: ${KDE4_CFLAGS}"
3179     echo "        KDE4 libs are: ${KDE4_LIBS}"
3180   else
3181     PKG_WAR([kparts4 plugin is disabled!])
3182     PKG_SUGGEST([Install version 4.x of the KDE development environment from http://kde.org])
3183     DEB_INSTALL([kdelibs5-dev])
3184     RPM_INSTALL([kdelibs-devel])
3185   fi
3188 if test x"$build_qtopia3" = xyes; then
3189   if test x"${QTOPIA3_LIBS}" != x ; then
3190     if test x"${QTOPIA3_CFLAGS}" != x ; then
3191       echo "        QTOPIA 3.x flags are: $QTOPIA3_CFLAGS"
3192     else
3193       echo "        QTOPIA 3.x flags are: default include path"
3194     fi
3195     echo "        QTOPIA 3.x libs are: $QTOPIA3_LIBS"
3196   else
3197     PKG_ERR([No QTOPIA 3.x library development package installed!])
3198     PKG_SUGGEST([Install it from http://trolltech.com/downloads/ as binary packages are not available.]) dnl TODO: This link is no longer valid.
3199   fi
3202 if test x"$build_qtopia4" = xyes; then
3203   if test x"${QTOPIA4_LIBS}" != x ; then
3204     if test x"${QTOPIA4_CFLAGS}" != x ; then
3205       echo "        QTOPIA 4.x flags are: $QTOPIA4_CFLAGS"
3206     else
3207       echo "        QTOPIA 4.x flags are: default include path"
3208     fi
3209     echo "        QTOPIA 4.x libs are: $QTOPIA4_LIBS"
3210   else
3211     PKG_ERR([No QTOPIA 4.x library development package installed!])
3212     PKG_SUGGEST([Install it from http://trolltech.com/downloads/ as binary packages are not available.]) dnl TODO: This link is no longer valid.
3213   fi
3217 # -o x$build_kparts3 = xyes
3218 if test x$build_kde3 = xyes; then
3219   if test x"$has_kde3" = xyes; then
3220     echo "        KDE 3.x flags are: $KDE3_CFLAGS"
3221     echo "        KDE 3.x libs are: $KDE3_LIBS"
3222   else
3223     PKG_ERR([No KDE 3.x development package installed!])
3224     PKG_SUGGEST([Install version 3.x of the KDE development environment from http://kde.org])
3225     DEB_INSTALL([kdelibs4-dev])
3226     RPM_INSTALL([kdelibs3-devel])
3227     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.])
3228   fi
3231 if test x"${JPEG_LIBS}" != x ; then
3232   if test x"${JPEG_CFLAGS}" != x ; then
3233     echo "        JPEG flags are: $JPEG_CFLAGS"
3234   else
3235     echo "        JPEG flags are: default include path"
3236   fi
3237   echo "        JPEG libs are: $JPEG_LIBS"
3238 else
3239   PKG_ERR([No JPEG library development package installed!])
3240   PKG_SUGGEST([Install it from http://ijg.org])
3241   DEB_INSTALL([libjpeg-dev])
3242   RPM_INSTALL([libjpeg-devel])
3245 if test x"${GIF_LIBS}" != x ; then
3246   if test x"${GIF_CFLAGS}" != x ; then
3247     echo "        GIF flags are: $GIF_CFLAGS"
3248   else
3249     echo "        GIF flags are: default include path"
3250   fi
3251   echo "        GIF libs are: $GIF_LIBS"
3252 else
3253   PKG_ERR([No GIF library development package installed!])
3254   PKG_SUGGEST([Install it from http://sourceforge.net/projects/giflib/])
3255   DEB_INSTALL([libungif-dev])
3256   DEB_ALTERNATIVE([libgif-dev])
3257   RPM_INSTALL([libgif-devel])
3258   RPM_ALTERNATIVE([giflib-devel])
3259   RPM_ALTERNATIVE([libungif-devel])
3262 if test x"${PNG_LIBS}" != x ; then
3263   if test x"${PNG_CFLAGS}" != x ; then
3264     echo "        PNG flags are: $PNG_CFLAGS"
3265   else
3266     echo "        PNG flags are: default include path"
3267   fi
3268   echo "        PNG libs are: $PNG_LIBS"
3269 else
3270   PKG_REC([No PNG library development package installed!])
3271   PKG_SUGGEST([Gnash will be built without support for dynamic loading of PNG files.])
3272   PKG_SUGGEST([Install it from http://www.libpng.org])
3273   DEB_INSTALL([libpng12-dev])
3274   RPM_INSTALL([libpng-devel])
3277 if test x"${build_ovg}" = x"yes"; then
3278   if test x"${has_openvg}" = xyes; then
3279     echo "        OpenVG flags are: $OPENVG_CFLAGS"
3280     echo "        OpenVG libs are: $OPENVG_LIBS"
3281     else
3282       echo "        ERROR: No OpenVG development package installed!" >&3
3283       echo "               You need to install the libmesa development package" >&3
3284       echo "               or .deb users: apt-get install libopenvg1-mesa-dev" >&3
3285       echo "               or .rpm users: yum install mesa-libOpenVG-devel-7.8.1-7.fc13.i686" >&3
3286       echo "               or use a different renderer with --enable-renderer=" >&3
3287   fi
3290 if test x"${build_ogl}" = x"yes"; then
3291   if test x"$OPENGL_LIBS" != x; then
3292     if test x"$OPENGL_CFLAGS" != x; then
3293       echo "        OpenGL flags are: $OPENGL_CFLAGS"
3294     else
3295       echo "        OpenGL flags are: default include path"
3296     fi
3297     echo "        OpenGL libs are: $OPENGL_LIBS"
3298     else
3299       PKG_ERR([No OpenGL development package installed!])
3300       PKG_SUGGEST([You need to install the libmesa development package])
3301       DEB_INSTALL([libgl1-mesa-dev])
3302       RPM_INSTALL([mesa-libGL-devel])
3303       RPM_ALTERNATIVE([xorg-x11-Mesa-libGL])
3304       PKG_ALTERNATIVE([or use a different renderer with --enable-renderer=])
3305   fi
3308 if test x"${build_gles1}" = x"yes"; then
3309   if test x"${has_gles1}" = xyes; then
3310     if test x"${GLES1_CFLAGS}" != x; then
3311       echo "        OpenGLES1 flags are: ${GLES1_CFLAGS}"
3312     else
3313       echo "        OpenGLES1 flags are: default include path"
3314     fi
3315     echo "        OpenGLES1 libs are: ${GLES1_LIBS}"
3316   else
3317       PKG_ERR([No OpenGL-ES development package installed!])
3318       PKG_SUGGEST([You need to install the this from source probably])
3319       PKG_ALTERNATIVE([or use a different renderer with --enable-renderer=])
3320   fi
3323 dnl GLEXT is only needed for GTK/OpenGL
3324 if test x$build_gtk = xyes -a x$build_ogl = xyes ; then
3325   if test x"$GLEXT_LIBS" != x; then
3326     if test x"$GLEXT_CFLAGS" != x; then
3327       echo "        GtkGLExt flags are: $GLEXT_CFLAGS"
3328     else
3329       echo "        GtkGLExt flags are: default include path"
3330     fi
3331       echo "        GtkGLExt libs are: $GLEXT_LIBS"
3332   else
3333     PKG_ERR([No GtkGLExt development package installed!])
3334     PKG_SUGGEST([It is needed to build the GTK/OpenGL GUI/renderer combination.])
3335     PKG_SUGGEST([Install it from http://gtkglext.sourceforge.net])
3336     DEB_INSTALL([libgtkglext1-dev])
3337     RPM_INSTALL([gtkglext-devel])
3338     PKG_ALTERNATIVE([or --enable-gui=sdl or --enable-renderer=agg])
3339   fi
3342 if test x$build_gtk = xyes; then #{
3343   if test x"$GTK2_LIBS" != x; then
3344     if test x"$GTK2_CFLAGS" != x; then
3345       echo "        GTK2 flags are: $GTK2_CFLAGS"
3346     else
3347       echo "        GTK2 flags are: default include path"
3348     fi
3349       echo "        GTK2 libs are: $GTK2_LIBS"
3350   else
3351     PKG_ERR([No GTK2 development package installed!])
3352     PKG_SUGGEST([Install it from http://gtk.org])
3353     DEB_INSTALL([libgtk2.0-dev])
3354     RPM_INSTALL([gtk2-devel])
3355   fi
3357   if test x"$PANGO_LIBS" != x; then
3358     if test x"$PANGO_CFLAGS" != x; then
3359       echo "        Pango flags are: $PANGO_CFLAGS"
3360     else
3361       echo "        Pango flags are: default include path"
3362     fi
3363     echo "        Pango libs are: $PANGO_LIBS"
3364   else
3365     PKG_ERR([No Pango development package installed!])
3366     PKG_SUGGEST([Install it from http://pango.org])
3367     DEB_INSTALL([libpango1.0-dev])
3368     RPM_INSTALL([pango-devel])
3369   fi
3371   if test x"$GLIB_LIBS" != x; then
3372     if test x"$GLIB_CFLAGS" != x; then
3373       echo "        GLib flags are: $GLIB_CFLAGS"
3374     else
3375       echo "        GLib flags are: default include path"
3376     fi
3377     echo "        GLib libs are: $GLIB_LIBS"
3378   else
3379     PKG_ERR([No GLib development package installed!])
3380     PKG_SUGGEST([Install it from http://gtk.org])
3381     DEB_INSTALL([libglib2.0-dev])
3382     RPM_INSTALL([glib2-devel])
3383   fi
3385   if test x"$ATK_LIBS" != x; then
3386     if test x"$ATK_CFLAGS" != x; then
3387       echo "        ATK flags are: $ATK_CFLAGS"
3388     else
3389       echo "        ATK flags are: default include path"
3390     fi
3391       echo "        ATK libs are: $ATK_LIBS"
3392   else
3393     PKG_ERR([No ATK development package installed!])
3394     PKG_SUGGEST([Install it from http://atk.org])
3395     DEB_INSTALL([libatk1.0-dev])
3396     RPM_INSTALL([atk-devel])
3397   fi
3401 if test x"$build_media_gst" = x"yes"; then
3402   if test x"$missing_codecs" != x; then   
3403       echo "        Your Gstreamer installation is missing these codecs: $missing_codecs"
3404       echo "        Please install the gstreamer-ffmpeg for Gstreamer"
3405   fi  
3406   if test x"$GSTREAMER_LIBS" != x; then
3407     if test x"$GSTREAMER_CFLAGS" != x; then
3408       echo "        Gstreamer flags are: $GSTREAMER_CFLAGS"
3409     else
3410       echo "        Gstreamer flags are: default include path"
3411     fi
3412     echo "        Gstreamer libs are: $GSTREAMER_LIBS"
3413   else
3414     PKG_ERR([GST media handling requested but gstreamer-0.10+ not found])
3415     PKG_SUGGEST([Install it from http://www.gstreamer.net])
3416     DEB_INSTALL([libgstreamer0.10-dev])
3417     RPM_INSTALL([gstreamer-devel])
3418     YAST_INSTALL([gstreamer010-devel])
3419   fi
3420   if test x"$has_gstreamer_pbutils" != "xyes"; then
3421     PKG_REC([If the user has not installed the necessary Gstreamer plugins, Gstreamer can pop up a message prompting them to.])
3422     PKG_SUGGEST([Install gstpbutils (>= 0.10.15) from http://www.gstreamer.net for that to be enabled])
3423     DEB_INSTALL([libgstreamer-plugins-base0.10-dev])
3424     PKG_SUGGEST([or .rpm users: simply install the below package]) dnl TODO: Can/should this notice be done cleaner?
3425     PKG_SUGGEST([Also see --with-gstpbutils-incl and --with-gstpbutils-lib])
3426   fi
3427   if test x"$has_gstreamer_plugins_base" = "xno"; then
3428     dnl TODO: Check if this is really a mandatory asset!
3429     PKG_ERR([Base plugins are required for gstreamer media!])
3430     PKG_SUGGEST([Install gstreamer-plugins-base from http://www.gstreamer.net])
3431     DEB_INSTALL([libgstreamer-plugins-base0.10-dev])
3432     RPM_INSTALL([gstreamer-plugins-base-devel])
3433   fi
3436 dnl TODO: figure out some RPM package names.
3437 dnl TODO: The following tests is probably incorrect for any/older/exotic systems! Could someone experienced look at it?
3438 if test x"${build_media_ffmpeg}" = x"yes"; then
3439   if test x"$FFMPEG_LIBS" != x; then
3440     echo "        MP3 and video support enabled through FFmpeg"
3441     if test x"$FFMPEG_CFLAGS" != x; then
3442       echo "        FFmpeg flags are: $FFMPEG_CFLAGS"
3443     else
3444       echo "        FFmpeg flags are: default include path"
3445     fi
3446     echo "        FFmpeg libs are: $FFMPEG_LIBS"
3447   else
3448     PKG_ERR([No FFmpeg development package installed!])
3449     PKG_SUGGEST([You can install FFmpeg from http://ffmpeg.org])
3450     DEB_INSTALL([libavcodec-dev])
3451     RPM_INSTALL([ffmpeg-devel])
3452     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3453   fi
3455   if test x"${avformat_h}" = x; then
3456     PKG_ERR([FFmpeg's avformat header is installed but not libavformat!])
3457     PKG_SUGGEST([You can install FFmpeg from http://ffmpeg.org])
3458     DEB_INSTALL([libavformat-dev])
3459     YAST_INSTALL([libavformat-api]) dnl (but currently installs into /usr/lib64)
3460     PKG_ALTERNATIVE(or explicitly set the path using --with-ffmpeg-incl=)
3461     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3462   fi
3464   if test x"${have_ffmpeg_swscale}" = "xno"; then
3465     PKG_ERR([No libswscale development package installed!])
3466     PKG_SUGGEST([You can install libswscale from http://ffmpeg.org])
3467     DEB_INSTALL([libswscale-dev])
3468     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3469   fi
3472 if test x$build_cairo = xyes; then
3473   if test x"$CAIRO_LIBS" != x; then
3474     if test x"$CAIRO_CFLAGS" != x; then
3475       echo "        Cairo flags are: $CAIRO_CFLAGS"
3476     else
3477       echo "        Cairo flags are: default include path"
3478     fi
3479     echo "        Cairo libs are: $CAIRO_LIBS"
3480   else
3481     PKG_ERR([No Cairo development package installed!])
3482     PKG_SUGGEST([You need to have the Cairo development package installed if you have used --enable-render=cairo to configure.])
3483     PKG_SUGGEST([Install it from http://cairographics.org])
3484     DEB_INSTALL([libcairo-dev])
3485     RPM_INSTALL([cairo-devel])
3486   fi
3489 if test x$build_fltk = xyes; then
3490   if test x"$FLTK2_LIBS" != x; then
3491     if test x"$FLTK2_CFLAGS" != x; then
3492       echo "        FLTK flags are: $FLTK2_CFLAGS"
3493     else
3494       echo "        FLTK flags are: default include path"
3495     fi
3496       echo "        FLTK libs are: $FLTK2_LIBS"
3497   else
3498     PKG_ERR([No FLTK2 development package installed!])
3499     PKG_SUGGEST([Install it from http://fltk.org])
3500     PKG_ALTERNATIVE(or change to a different gui with --enable-gui=...)
3501   fi
3504 if test x$build_fltk = xyes; then
3505   if test x"$XFT_LIBS" != x; then
3506     if test x"$XFT_CFLAGS" != x; then
3507       echo "        Xft flags are: $XFT_CFLAGS"
3508     else
3509       echo "        Xft flags are: default include path"
3510     fi
3511     echo "        Xft libs are: $XFT_LIBS"
3512   fi
3515 # See whether SDL is required
3516 need_sdl=false
3517 test x$build_sdl = xyes                 && need_sdl=true
3518 test x$build_sound_sdl = xyes   && need_sdl=true
3520 if $need_sdl; then
3521   if test x"$SDL_LIBS" != x; then
3522     echo "        SDL flags are: $SDL_CFLAGS"
3523     echo "        SDL libs are: $SDL_LIBS"
3524   else
3525     PKG_ERR([No SDL development package installed!])
3526     PKG_SUGGEST([Install it from http://www.libsdl.org/download-1.2.php])
3527     DEB_INSTALL([libsdl1.2-dev])
3528     RPM_INSTALL([SDL-devel])
3529     PKG_ALTERNATIVE(or change to a different gui with --enable-gui=...)
3530   fi
3532 unset need_sdl
3534 if test x"$nsapi" = x"yes"; then
3535     echo "        Plugin will be installed in ${FIREFOX_PLUGINS}"
3538 if test x"${pthreads}" = x"yes"; then
3539   if test x"$PTHREAD_CFLAGS" != x; then
3540     echo "        POSIX Threads flags are: $PTHREAD_CFLAGS"
3541   fi
3542   if test x"${PTHREAD_LIBS}" != x; then
3543     echo "        POSIX Threads lib is: $PTHREAD_LIBS"
3544   else
3545     if test x"${cross_compiling}" = xno; then
3546       echo "ERROR: No pthread development package installed!" >&3
3547     fi
3548   fi
3551 if test x"${docbook}" = x"yes"; then
3552   if test x"$MAKEINFO" = x; then
3553     PKG_ERR([No makeinfo tools installed!])
3554     PKG_SUGGEST([Install it from http://www.gnu.org/software/texinfo/])
3555     DEB_INSTALL([texinfo])
3556     RPM_INSTALL([texinfo])
3557     RPM_ALTERNATIVE([texinfo-tex])
3558   fi
3559   dnl low-level tools
3560   if test x"$DB2X_TEXIXML" = x -o x"$DB2X_MANXML" = x -o x"$DB2X_XSLTPROC" = x; then
3561     dnl high-level tools
3562     if test x"${DB2X_TEXI}" = x -o x"${DB2X_MAN}" = x; then
3563       PKG_ERR([No DocBook2X tools installed!])
3564       PKG_SUGGEST([Install it from http://docbook2x.sourceforge.net])
3565       dnl TODO: Could someone look at this and confirm the needed software is installed?
3566       dnl FIXME: I removed the texidocbook and docbook-utilsnfo packages as they are not on my system.
3567       DEB_INSTALL([docbook2x docbook-xml docbook-xsl texinfo xsltproc])
3568       PKG_ALTERNATIVE([or configure without --enable-docbook])
3569     fi
3570   else
3571     echo "        You have version $db2x_version of the DocBook2X tools."
3572   fi
3573 else
3574   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.])
3577 if test x"$CURL_LIBS" != x; then
3578   if test x"$CURL_CFLAGS" != x; then
3579     echo "        CURL flags are: $CURL_CFLAGS"
3580   else
3581     echo "        CURL flags are: default include path"
3582   fi
3583     echo "        CURL libs are: $CURL_LIBS"
3584 else
3585   PKG_REC([If you install the CURL library, Gnash will be able to display remote content (streaming from URLs) using CURL.])
3586   PKG_SUGGEST([Install libcurl from http://curl.haxx.se/libcurl])
3587   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?
3588   DEB_ALTERNATIVE([libcurl-dev])
3589   RPM_INSTALL([curl-devel])
3592 if test x"$SPEEX_LIBS" != x; then
3593   if test x"$SPEEX_CFLAGS" != x; then
3594     echo "        Speex flags are: $SPEEX_CFLAGS"
3595   else
3596     echo "        Speex flags are: default include path"
3597   fi
3598     echo "        Speex libs are: $SPEEX_LIBS"
3599 else
3600   PKG_REC([If you install the Speex library, Gnash will be able to decoded Speex encoded audio in FLV files.])
3601   PKG_SUGGEST([Install libspeex from http://speex.org])
3602   DEB_INSTALL([libspeex-dev])
3603   RPM_INSTALL([speex-devel])
3606 if test x"$SPEEXDSP_LIBS" != x; then
3607   if test x"$SPEEXDSP_CFLAGS" != x; then
3608     echo "        Speex DSP flags are: $SPEEXDSP_CFLAGS"
3609   else
3610     echo "        Speex DSP flags are: default include path"
3611   fi
3612     echo "        Speex DSP libs are: $SPEEXDSP_LIBS"
3613 else
3614   PKG_REC([If you install the Speex DSP library, Gnash will be able to resample Speex encoded audio in FLV files.])
3615   PKG_SUGGEST([Install libspeexdsp from http://speex.org])
3616   DEB_INSTALL([libspeexdsp-dev])
3617   RPM_INSTALL([speex-devel])
3620 if test x"$ext_dbus" = xyes; then
3621   if test x"$DBUS_LIBS" != x; then
3622     if test x"$DBUS_CFLAGS" != x; then
3623       echo "        DBUS flags are: $DBUS_CFLAGS"
3624     else
3625       echo "        DBUS flags are: default include path"
3626     fi
3627       echo "        DBUS libs are: $DBUS_LIBS"
3628   else
3629     PKG_WAR([No DBUS development package was found! Gnash will be built without support for remote controls.])
3630     PKG_SUGGEST([Install libdbus from http://www.dbus.org])
3631     DEB_INSTALL([dbus-dev])
3632     DEB_ALTERNATIVE([libdbus-1-dev])
3633     RPM_INSTALL([dbus-devel])
3634   fi
3637 if test x$build_agg = xyes; then # {
3638   echo "        AGG Pixel format is: $pixelformat"
3639   if test x"$AGG_LIBS" != x -a x"${agg25}" == xyes; then # {
3640     if test x"$AGG_CFLAGS" != x; then # {
3641       echo "        AGG flags are: $AGG_CFLAGS"
3642     else # }{
3643       echo "        AGG flags are: default include path"
3644     fi # }
3645     echo "        AGG libs are: $AGG_LIBS"
3646   else # }{
3647     if test x"$AGG_LIBS" != x -a x"${agg25}" != xyes; then
3648       PKG_ERR([Your installation of AGG appears to be version 2.4 or older. Please upgrade to AGG 2.5 or greater.])
3649     else
3650       PKG_ERR([No AGG development package installed!])
3651     fi
3652     PKG_SUGGEST([Install it from http://www.antigrain.com])
3653     DEB_INSTALL([libagg-dev])
3654     RPM_INSTALL([agg-devel])
3655   fi # }
3656 fi # }
3658 dnl TODO: This package is handled a bit stupidly in regard to the package
3659 dnl suggestion system. It would be better to check for each package
3660 dnl separately, instead of passing the missing ones in variables..
3661 if test x"$BOOST_LIBS" != x; then
3662   echo "        BOOST flags are: $BOOST_CFLAGS"
3663   echo "        BOOST libs are: $BOOST_LIBS"
3664   echo "        BOOST libs for cygnal are: $BOOST_CYGNAL_LIBS"
3666   if test x"${missing_headers}" != x; then
3667     for i in ${missing_headers}; do
3668       PKG_ERR([The Boost $i header is not installed])
3669       PKG_SUGGEST([Install it from http://www.boost.org])
3670     done
3671   fi
3673   if test x"${cygnal}" = x"yes"; then
3674     if test x"${cygnal_missing_libs}" != x; then
3675       for i in ${cygnal_missing_libs}; do
3676         PKG_ERR([No Boost $i package installed])
3677         PKG_SUGGEST([Install it from http://www.boost.org])
3678         debtmppkg="libboost-`echo ${i} | sed 's/_/-/g'`-dev"
3679         DEB_INSTALL([$debtmppkg])
3680         PKG_ALTERNATIVE([or configure with --disable-cygnal])
3681       done
3682     fi
3683   fi
3685   if test x"${missing_libs}" != x; then
3686     for i in ${missing_libs}; do
3687       PKG_ERR([No Boost $i package installed])
3688       PKG_SUGGEST([Install it from http://www.boost.org])
3689       debtmppkg="libboost-`echo ${i} | sed 's/_/-/g'`-dev"
3690       DEB_INSTALL([$debtmppkg])
3691     done
3692   fi
3693 else
3694   PKG_ERR([No Boost development package installed])
3695   PKG_SUGGEST([Install it from http://www.boost.org])
3696   dnl I am not sure that libboost-program-options-dev should be passed here, but
3697   dnl it seems like the cleanest way to get it.
3698   if test x"$cygnal" = xyes; then
3699     DEB_INSTALL([libboost-dev libboost-thread-dev libboost-program-options-dev libboost-date-time-dev])
3700   else
3701     DEB_INSTALL([libboost-dev libboost-thread-dev libboost-program-options-dev])
3702   fi
3703   RPM_INSTALL([boost-devel])
3706 dnl don't look for the flash compilers when cross compiling.
3707 if test x"$testsuite" = x"yes"; then
3708   if test x$cross_compiling = xno; then
3709     if test x"$MING_LIBS" != x; then
3710       echo "        MING flags are $MING_CFLAGS"
3711       echo "        MING libs are $MING_LIBS"
3712     else
3713       PKG_WAR([You need to have the Ming development package installed to run most of the tests in Gnash testsuite.])
3714       PKG_SUGGEST([Install it from http://www.libming.org/])
3715       DEB_INSTALL([libming-dev])
3716       RPM_INSTALL([libming-devel])
3717     fi
3719     if test x"$MAKESWF" != x; then
3720       echo "        MING version code is $MING_VERSION_CODE"
3721       echo "        MAKESWF is $MAKESWF"
3722     else
3723       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.])
3724       PKG_SUGGEST([Install it from http://www.libming.org/])
3725       DEB_INSTALL([libming-util])
3726       RPM_INSTALL([ming-util])
3727       RPM_ALTERNATIVE([ming-utils])
3728     fi
3730     if test x"$MAKESWF" != x && test $MING_VERSION_CODE -lt 00040006; then
3731       echo "        WARNING: You have an older version of Ming installed and will not" >&4
3732       echo "                 be able to run all of the tests in Gnash testsuite." >&4
3733       echo "                 Install the latest version from http://www.libming.org" >&4
3734     fi
3736     if test x"$SWFDEC_TESTSUITE" != x; then
3737       echo "        SWFDEC testsuite dir is $SWFDEC_TESTSUITE"
3738     fi
3740     if test x"$MTASC" != x; then
3741       echo "        MTASC is $MTASC"
3742       echo "        MTASC CLASSPATH is $MTASC_CLASSPATH"
3743     else
3744       PKG_WAR([You need to have the MTASC compiler packages installed to run some of the tests in Gnash testsuite.])
3745       PKG_SUGGEST([Install it from http://mtasc.org])
3746       DEB_INSTALL([mtasc])
3747       RPM_INSTALL([mtasc])
3748     fi
3750     if test x"$HAXE" != x; then
3751       echo "        HAXE is $HAXE"
3752       echo "        HAXE CLASSPATH is $HAXE_CLASSPATH"
3753     else
3754       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.])
3755       PKG_SUGGEST([Install it from http://haxe.org])
3756       DEB_INSTALL([haxe])
3757       RPM_INSTALL([haxe])
3758     fi
3760     if test x"$SWFMILL" != x; then
3761       echo "        SWFMILL is $SWFMILL"
3762       if test x"$ENABLE_AVM2" != x -a "$SWFMILL_VERSION" -lt 00021206; then
3763         PKG_WAR([You are building Gnash with AVM2 support but your swfmill version is too old to run AS3 tests.])
3764       fi
3765     else
3766       PKG_WAR([You need to have the swfmill tool installed to run some of the tests in Gnash testsuite.])
3767       PKG_SUGGEST([Install it from http://swfmill.org])
3768       DEB_INSTALL([swfmill])
3769       RPM_INSTALL([swfmill])
3770     fi
3772     if test x"$SWFC" != x; then
3773       echo "        SWFC is $SWFC"
3774     else
3775       PKG_WAR([You need to have swfc from SWFTools installed to run some of the tests in Gnash testsuite.])
3776       PKG_SUGGEST([Install it from http://swftools.org])
3777       DEB_INSTALL([swftools])
3778       RPM_INSTALL([swftools])
3779     fi
3781     if test x"$AS3COMPILE" != x; then
3782       echo "        AS3COMPILE is $AS3COMPILE"
3783     else
3784       PKG_WAR([You need to have as3compile from SWFTools installed to run some of the tests in Gnash testsuite.])
3785       PKG_SUGGEST([Install it from http://swftools.org])
3786     fi
3788     if test x"$HTTP_TESTSUITE" != x; then
3789       echo "        HTTP testsuite dir is $HTTP_TESTSUITE"
3790     fi
3792     if test x"$RED5_HOST" != x; then
3793       echo "        RED5 testing host is $RED5_HOST"
3794     fi
3795   fi
3798   if test x"$PERL" != x; then
3799     echo "        PERL is $PERL"
3800   else
3801     PKG_WAR([You need to have perl installed to run some of the tests in Gnash testsuite.])
3802     PKG_SUGGEST([Install it from http://perl.org])
3803     DEB_INSTALL([perl])
3804     RPM_INSTALL([perl])
3805   fi
3807 if test x"$testsuite" = x"yes"; then
3808   if test x"$CSOUND" != x; then
3809     echo "        CSOUND is $CSOUND"
3810   else
3811     echo "        WARNING: You need to have csound installed" >&4
3812     echo "                 to have real fun." >&4
3813     echo "                 Install it from http://www.csounds.com/" >&4
3814     echo "                 or .deb users: apt-get install csound" >&4
3815     echo "                 or .rpm users: yum install csound" >&4
3816   fi
3819 if test x"$Z_LIBS" != x; then
3820   if test x"$Z_CFLAGS" != x; then
3821     echo "        Z flags are: $Z_CFLAGS"
3822   else
3823     echo "        Z flags are: default include path"
3824   fi
3825   echo "        Z libs are: $Z_LIBS"
3826 else
3827   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.])
3828   PKG_SUGGEST([Install it from http://zlib.net])
3829   DEB_INSTALL([zlib1g-dev])
3830   RPM_INSTALL([zlib-devel])
3831   PKG_ALTERNATIVE([It may still be possible to configure without zlib.])
3834 if test x"$FREETYPE2_LIBS" != x; then
3835   if test x"$FREETYPE2_CFLAGS" != x; then
3836     echo "        FreeType flags are: $FREETYPE2_CFLAGS"
3837   else
3838     echo "        FreeType flags are: default include path"
3839   fi
3840   echo "        FreeType libs are: $FREETYPE2_LIBS"
3841 else
3842   PKG_REC([You need to have the freetype development packages installed to use device fonts.])
3843   PKG_SUGGEST([Install it from http://freetype.org])
3844   DEB_INSTALL([libfreetype6-dev])
3845   RPM_INSTALL([freetype-devel])
3846   PKG_ALTERNATIVE([It may still be possible to configure without freetype.])
3849 if test x"$FONTCONFIG_LIBS" != x; then
3850   if test x"$FONTCONFIG_CFLAGS" != x; then
3851     echo "        Fontconfig flags are: $FONTCONFIG_CFLAGS"
3852   else
3853     echo "        Fontconfig flags are: default include path"
3854   fi
3855   echo "        Fontconfig libs are: $FONTCONFIG_LIBS"
3856 else
3857   PKG_REC([You need to have the fontconfig development packages installed to use device fonts.])
3858   PKG_SUGGEST([Install it from http://fontconfig.org])
3859   DEB_INSTALL([libfontconfig1-dev])
3860   RPM_INSTALL([fontconfig-devel])
3861   PKG_ALTERNATIVE([It may still be possible to configure without fontconfig.])
3864 if test x$ext_mysql = xyes; then
3865   if test x$mysql != xno; then
3866     if test x"$MYSQL_LIBS" != x; then
3867       echo "        MYSQL flags are: $MYSQL_CFLAGS"
3868       echo "        MYSQL libs are: $MYSQL_LIBS"
3869     else
3870       PKG_ERR([No MySQL development package is installed.])
3871       PKG_SUGGEST([Install it from http://mysql.org])
3872       DEB_INSTALL([libmysqlclient-dev])
3873       RPM_INSTALL([mysql-devel])
3874       PKG_ALTERNATIVE([or reconfigure without --enable-extensions=mysql])
3875     fi
3876   fi
3879 if test "$GMSGFMT" = ":"; then
3880   PKG_WAR([You need the gettext package installed to use translations. Required for building a package or 'make distcheck'])
3881   PKG_SUGGEST([Install it from http://www.gnu.org/software/gettext/])
3882   DEB_INSTALL([gettext])
3883   RPM_INSTALL([gettext])
3886 if test x"${build_vaapi}" = x"yes"; then
3887   if test x"${LIBVA_CFLAGS}" = xyes; then
3888       echo "        LIBVA flags are: default"
3889     else
3890       echo "        LIBVA flags are: $LIBVA_CFLAGS"
3891       echo "        LIBVA libraries are: $LIBVA_LIBS"
3892   fi
3893   if test x$use_libva_x11 = xyes; then
3894     if test x"${LIBVA_X11_CFLAGS}" = xyes; then
3895       echo "        LIBVA X11 flags are: default"
3896     else
3897       echo "        LIBVA X11 flags are: $LIBVA_X11_CFLAGS"
3898       echo "        LIBVA X11 libraries are: $LIBVA_X11_LIBS"
3899     fi
3900   fi
3901   if test x$use_libva_glx = xyes; then
3902     if test x"${LIBVA_GLX_CFLAGS}" = xyes; then
3903       echo "        LIBVA GLXflags are: default"
3904     else
3905       echo "        LIBVA GLX flags are: $LIBVA_GLX_CFLAGS"
3906     fi
3907     echo "        LIBVA GLX libraries are: $LIBVA_GLX_LIBS"
3908   fi
3911 if test x"$ac_cv_gcc_visibility" != xyes; then
3912   if test x"$npapi" = xyes; then
3913     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!])
3914   fi
3917 if test x"$npapi" = xyes; then
3918   if test x"$has_npapi" = xyes; then
3919     echo "        NPAPI flags are: $NPAPI_CFLAGS"
3920   else
3921     PKG_ERR([No xulrunner development package is installed!])
3922     PKG_SUGGEST([Install it from http://releases.mozilla.org/pub/mozilla.org/xulrunner])
3923     DEB_INSTALL([xulrunner-dev]) or 
3924     DEB_INSTALL([firefox-dev])
3925     RPM_INSTALL([xulrunner-devel])
3926   fi
3927 else
3928   echo "        NPAPI plugin is disabled"
3931 if test x"${DEJAGNU}" != x""; then
3932   echo "        DEJAGNU's runtest is $DEJAGNU"
3933 else
3934   PKG_WAR([You need the dejagnu package installed to get a summary after running 'make check'.])
3935   PKG_SUGGEST([Install it from http://www.gnu.org/software/dejagnu/])
3936   DEB_INSTALL([dejagnu])
3937   RPM_INSTALL([dejagnu])
3940 dnl Haiku
3941 if test x"${build_haiku}" = xyes -o x"${build_sound_mkit}" = xyes -o x"${build_media_haiku}" = x"yes"; then
3942     echo "        Haiku libs are: $HAIKU_LIBS"
3945 if test x"$has_ltdl" = x"yes";then
3946   echo "        LIBLTDL flags are: $LTDL_CFLAGS"
3947   echo "        LIBLTDL libs are: $LTDL_LIBS"
3948 else
3949   if test x"${extensions_support}" != xno; then
3950     PKG_ERR([No libltdl development package is installed, yet --disable-extensions was not specified.])
3951     PKG_SUGGEST([Install it from ftp://ftp.gnu.org/gnu/libtool/])
3952     DEB_INSTALL([libltdl-dev])
3953     RPM_INSTALL([libtool-ltdl-devel])
3954   fi
3957 if test x"$python" = x"yes"; then
3958   if test x"$has_python" = x"yes"; then
3959     echo "        PYTHON flags are: $PYTHON_CFLAGS"
3960     echo "        PYTHON libs are: $PYTHON_LIBS"
3961     echo "        PYTHON executable is: $PYTHON"
3962   else
3963     PKG_ERR([No Python development package is installed, but it's enabled.])
3964   fi
3966 if test x${build_ssl} = xyes; then
3967   if test x"${has_ssl}" = xyes; then
3968     if test x"${SSL_CFLAGS}" = xyes; then
3969       echo "        SSL flags are: default"
3970     else
3971       echo "        SSL flags are: $SSL_CFLAGS"
3972     fi
3973     echo "        SSL libs are: $SSL_LIBS"
3974   else
3975     PKG_ERR([No SSL development package is installed, but it's enabled."])
3976   fi
3979 if test x${build_ssh} = xyes; then
3980   if test x"${has_ssh}" = xyes; then
3981     if test x"${SSH_CFLAGS}" = xyes; then
3982       echo "        SSH flags are: default"
3983     else
3984       echo "        SSH flags are: $SSH_CFLAGS"
3985     fi
3986     echo "        SSH libs are: $SSH_LIBS"
3987   else
3988     PKG_ERR([No SSH development package is installed, but it's enabled."])
3989   fi
3992 if test x"${build_all_as3}" = x"yes"; then
3993   echo "        Building the entire ActionScript class libary"
3994 else
3995   echo "        Only building these ActionScript classes into the library:"
3996   echo "     ${classlist}"
3999 if test x"$testsuite" = x"yes"; then
4000   if test x"$NETCAT" != x; then
4001     echo "        You have netcat installed, which is only used for testing"
4002   else
4003     echo "        Install netcat for networking test support"
4004   fi
4005   if test x"$WGET" != x; then
4006     echo "        You have wget installed, which is only used for testing"
4007   else
4008     echo "        Install wget for networking test support"
4009   fi
4012 if test x$cross_compiling = xyes; then
4013    if test x"${android_ndk}" != xno; then
4014       AC_MSG_NOTICE([This build is setup for cross compiling for Android])
4015    else
4016       AC_MSG_NOTICE([This build is setup for cross compiling])
4017    fi
4020 echo "--------"
4022 if test x"${cygnal}" = x"yes"; then
4023   echo "        Building Cygnal media server enabled (default). Use --disable-cygnal to disable."
4024 else
4025   echo "        Building Cygnal media server disabled."
4028 if test x"${with_top_level}" != x; then
4029   echo "        Top level for cross compiling support files is: $with_top_level"
4032 if test x"${build_gtk}" = xyes -a x"${pixelformat}" = xrgb565; then
4033   echo "        WARNING: Pixel format RGB565 selected in combination with the" >&4
4034   echo "                 GTK GUI. Only a hacked GTK will work (e.g. on the OLPC)." >&4
4037 if test x"${extensions_list}" != x; then
4038   echo "        Building extensions: ${extensions_list}"
4041 if test x"${extensions_support}" = xno; then
4042   echo "        Extension support disabled."
4045 if test x"${security_list}" != x; then
4046   echo "        Enabling security features: ${security_list}"
4049 if test x"${statistics_list}" != x; then
4050   echo "        Enabling statistics collecting for: ${statistics_list}"
4053 if test x"${SUPPORTED_GUIS}" = x; then
4054   AC_MSG_ERROR(no supported GUIs found);
4057 echo "        GUI toolkits supported: ${SUPPORTED_GUIS}"
4058 echo "        Renderers supported: ${renderer_list}"
4059 echo "        Hardware Acceleration: ${device_list}"
4060 echo "        Media handlers: ${media_list}"
4061 echo "        Using ${add_sound} for sound handling"
4063 if test x"$docbook" = x"yes"; then
4064   echo '        DocBook document processing enabled (for "make html" and "make pdf")'
4065   if test x"$docbook_styles" != x; then
4066     echo "        Docbook styles sheets in $docbook_styles"
4067   fi
4068 else
4069   echo "        DocBook document processing disabled (default)"
4072 dnl The Framebuffer GUI has several other settings. As it doesn't have X11,
4073 dnl we have to handle input devics ourselves.
4074 if test x"${build_fb}" = xyes; then
4075 echo "        Using ${input_events} for Input"
4076   if test x"${fakefb}" != x; then
4077     echo "        Using shared memory as a fake framebuffer"
4078   fi
4079   if test x"${offscreen}" = xyes; then
4080     echo "        Using offscreen rendering"
4081   fi
4082   if test x"${doublebuf}" = xyes; then
4083     echo "        Using double buffering when rendering"
4084   fi
4087 if test -s $cwarn; then
4088   echo ""
4089   cat $cwarn
4090   rm $cwarn
4091   echo ""
4092   echo "Gnash should still compile even with these warnings."
4093   echo "If it doesn't, report the warnings as a bug."
4094 else
4095   rm $cwarn
4098 if test -s $crec; then
4099   echo ""
4100   cat $crec
4101   rm $crec
4102   echo ""
4103   echo "Gnash should still compile, but you'll miss important support"
4104 else
4105   rm $crec
4108 if test -s $cerr; then
4109   echo ""
4110   cat $cerr >&2
4113 deb_err="`cat $deb_err`"
4114 deb_war="`cat $deb_war`"
4115 deb_rec="`cat $deb_rec`"
4116 rpm_err="`cat $rpm_err`"
4117 rpm_war="`cat $rpm_war`"
4118 rpm_rec="`cat $rpm_rec`"
4119 yast_err="`cat $yast_err`"
4120 yast_war="`cat $yast_war`"
4121 yast_rec="`cat $yast_rec`"
4123 # Pipe stderr to /dev/null since Fedora complains when target isn't there.
4124 if test x`which apt-get 2>/dev/null` != x; then
4125   if test x"$deb_err" != x -o x"$deb_war" != x -o x"$deb_rec" != x; then
4126     echo "#!/bin/sh" > deb-attempt-install-dependencies.sh
4127     echo "packages=\"$deb_err $deb_war $deb_rec\"" >> deb-attempt-install-dependencies.sh
4128     echo "PKGCOMMAND=\"apt-get install -y -q\"" >> deb-attempt-install-dependencies.sh
4129     cat ${srcdir}/base-attempter.sh >> deb-attempt-install-dependencies.sh
4130     chmod +x deb-attempt-install-dependencies.sh
4131     echo ""
4132     echo ".deb users might be able to install most dependencies by executing:"
4133     echo "sudo ./deb-attempt-install-dependencies.sh"
4134   fi
4137 if test x`which yum 2>/dev/null` != x; then
4138   if test x"$rpm_err" != x -o x"$rpm_war" != x -o x"$deb_rec" != x; then
4139     echo "#!/bin/sh" > rpm-attempt-install-dependencies.sh
4140     echo "packages=\"$rpm_err $rpm_war  $rpm_rec\"" >> rpm-attempt-install-dependencies.sh
4141     echo "PKGCOMMAND=\"yum install -y \""    >> rpm-attempt-install-dependencies.sh
4142     cat ${srcdir}/base-attempter.sh >> rpm-attempt-install-dependencies.sh
4143     chmod +x rpm-attempt-install-dependencies.sh
4144     echo ""
4145     echo ".rpm users might be able to install most dependencies by executing:"
4146     echo "sudo ./rpm-attempt-install-dependencies.sh"
4147   fi
4150 dnl TODO: Add support for yast here, which AFAIK is used on OpenSuse.
4152 dnl If anything critical is missing, don't bother to continue
4153 if test -s $cerr; then
4154   echo ""
4155   rm $cerr
4156   AC_MSG_ERROR([Please install required packages])
4157 else
4158   rm $cerr
4161 rm -rf $tmp
4163 if test x"$fork" = x"no"; then
4164   echo ""
4165   AC_MSG_ERROR([Currently only forking the standalone player works!])
4167 echo ""
4169 # Local Variables:
4170 # c-basic-offset: 2
4171 # tab-width: 2
4172 # indent-tabs-mode: nil
4173 # End: