build libdevice before libbase so the vaapi support gets built first
[gnash.git] / configure.ac
blobc8c51a636b78abda172324e8b397041f9cdddbbe
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 incllist="`eval cat ${srcdir}/macros/incllist`"
507   libslist="`cat ${srcdir}/macros/libslist`"
508   if test -f /usr/bin/dpkg-architecture; then
509     export DEB_HOST_MULTIARCH="`eval dpkg-architecture -qDEB_HOST_MULTIARCH`"
510     export libslist="${libslist} /lib/${DEB_HOST_MULTIARCH} /usr/lib/${DEB_HOST_MULTIARCH}"
511   fi
512   export pathlist=$PATH
515 if test x"${android_ndk}" != xno; then
516    incllist="${android_ndk}/include ${incllist}"
519 AM_CONDITIONAL(CROSS_COMPILING, [ test x$cross_compiling = xyes ])
521 for dir in ${incllist}; do
522   test -d ${dir} && pruned_incllist="${pruned_incllist} ${dir}";
523 done
525 for dir in ${libslist}; do
526   test -d ${dir} && pruned_libslist="${pruned_libslist} ${dir}";
527 done
529 libslist="${pruned_libslist}";
530 incllist="${pruned_incllist}";
532 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
533 dnl !! 
534 dnl !! IMPORTANT NOTICE 
535 dnl !!
536 dnl !!  Any call to GNASH_PATH_XXX must be be given *after* this snippet.
537 dnl !!  This is to ensure that PKG_CONFIG, cross_compiling and incllist are
538 dnl !!  properly set at the time of call.
539 dnl !!
540 dnl !!  Also GNASH_PKG_FIND has to be called later. Not sure
541 dnl !!  why but calling before breaks detection of CPP (see
542 dnl !!  gnash-dev mailing archives for June 12 2009
543 dnl !!  http://lists.gnu.org/archive/html/gnash-dev/2009-06/index.html
544 dnl !! 
545 dnl !! 
546 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
548 dnl Check for PKG_CONFIG before any GNASH_PATH call
549 PKG_PROG_PKG_CONFIG
551 dnl --------------------------------------------------------
552 dnl  GUI selection
553 dnl --------------------------------------------------------
555 build_haiku=no
556 build_aos4=no      dnl AmigaOS4 GUI
557 build_kde3=no      dnl WARNING: doesn't work (see https://savannah.gnu.org/bugs/index.php?31782)
558 build_qt4=no
559 build_qtopia3=no
560 build_qtopia4=no
561 build_gtk=no
562 build_fb=no                     dnl Raw framebuffer
563 build_fltk=no
564 build_sdl=no
565 build_aqua=no                   dnl Native MacOSX
566 build_dump=no
567 AC_ARG_ENABLE(gui,
568   AC_HELP_STRING([--enable-gui=], [Enable support for the specified GUI toolkits (default=gtk,qt4)]),
569   [if test -n ${enableval}; then
570     enableval=`echo ${enableval} | tr '\054' ' ' `
571   fi
572   while test -n "${enableval}" ; do
573     val=`echo ${enableval} | cut -d ' ' -f 1`
574     case "${val}" in
575       gtk|GTK|gtk2|GTK2)
576         build_gtk=yes
577         ;;
578       kde3|KDE3)
579         build_kde3=yes
580         ;;
581       qt4|QT4|kde4|KDE4)
582         build_qt4=yes
583         ;;
584       qtopia3|QTOPIA3)
585         build_qtopia3=yes
586         ;;
587       qtopia4|QTOPIA4)
588         build_qtopia4=yes
589         ;;
590       sdl|SDL)
591         build_sdl=yes
592         ;;
593       aqua|AQUA|Aqua)
594         build_aqua=yes
595         ;;
596       fltk|FLTK|fltk2|FLTK2)
597         build_fltk=yes
598         ;;
599       fb|FB)
600         build_fb=yes
601         ;;
602       aos4|AOS4)
603         build_aos4=yes
604         ;;
605       haiku|HAIKU)
606         build_haiku=yes
607         ;;
608       dump|DUMP)
609         build_dump=yes
610         ;;
611       all|ALL)
612         build_dump=yes
613         dnl BSD doesn't have a framebuffer interface
614         if test x${linux} = xyes; then
615           build_fb=yes
616         fi
617         if test x${openbsd} != xyes; then
618           build_qt4=yes
619         fi
620         build_sdl=yes
621         build_gtk=yes
622         ;;
623       *) AC_MSG_ERROR([invalid gui ${enableval} given (accept: gtk|kde3|qt4|fltk|sdl|aqua|fb|qtopia3|qtopia4|dump|aos4|haiku)])
624          ;;
625       esac
626     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
627     if test "x$val" = "x$enableval"; then
628       break;
629     fi
630   done],
631   [ dnl Run the following code if no --enable-gui is given
632   build_fb=auto
633   build_sdl=auto
634   if test x"${openbsd}" = xyes; then
635     build_gtk=yes
636     build_dump=auto
637   else if test x"${haiku}" = xyes; then
638     build_haiku=yes;
639   else
640     build_qt4=auto
641     build_gtk=yes
642     build_dump=auto
643   fi
644   fi
645   ]
648 if test x"${build_haiku}" = xyes; then
649   if test x"$haiku" != xyes; then
650     echo "        ERROR: Can not build Haiku gui outside of Haiku
651 operating system." >&3
652   fi
655 dnl We can use Xephyr or fbe to create a fake framebuffer instead of real
656 dnl video memory. This lets us test on a desktop machine.
657 AC_ARG_WITH(fakefb,
658 AC_HELP_STRING([--with-fakefb],
659  [specify a file to be mapped instead of a real framebuffer]),
660  with_fakefb=${withval})
662 fakefb=
663 if test x"${with_fakefb}" = xyes; then
664   dnl This is the default file name fbe uses.
665   fakefb=/tmp/fbe_buffer
666 else
667   if test x"${with_fakefb}" != x; then
668     fakefb=${with_fakefb}
669   fi
671 FAKEFB=${fakefb}
672 AC_SUBST(FAKEFB)
674 if test x"${fakefb}" != x; then
675     AC_DEFINE(ENABLE_FAKE_FRAMEBUFFER, [1], [Enable using a file instead of a real framebuffer])
678 dnl This enable a small handful of tests that aren't designed to be
679 dnl run as part of "make check", as they are either incomplete, or
680 dnl can only be run interactively. These are all primarily oriented
681 dnl towards code development and debugging, instead of regression
682 dnl or unit testing.
683 AC_ARG_ENABLE(devtests, AC_HELP_STRING([--enable-devtests],
684   [Developer only tests, not to be included in make check]),
685 [case "${enableval}" in
686   yes) devtests=yes ;;
687   no)  devtests=no ;;
688   *)   AC_MSG_ERROR([bad value ${enableval} for enable-devtests option]) ;;
689 esac], devtests=no)
690 AM_CONDITIONAL(ENABLE_DEVELOPER_TESTS, [test x${devtests} = xyes])
692 dnl --------------------------------------------------------
693 dnl  Sound handler selection
694 dnl --------------------------------------------------------
695 add_sound=
696 build_sound_none=no
697 build_sound_sdl=no
698 build_sound_ahi=no
699 build_sound_mkit=no
700 AC_ARG_ENABLE(sound,
701   AC_HELP_STRING([--enable-sound=[[sdl|ahi|mkit]]], [Use the specified sound handler (default=sdl)]),
702      [case "${enableval}" in
703       sdl|SDL|Sdl)
704         build_sound_sdl=yes
705         add_sound="sdl"
706         ;;
707       none|NONE|None)
708         build_sound_none=yes
709         add_sound="none"
710         ;;
711       ahi|AHI|Ahi)
712         build_sound_ahi=yes
713         add_sound="ahi"
714         ;;
715       mkit|MKIT|Mkit)
716         build_sound_mkit=yes
717         add_sound="mkit"
718         ;;
719      esac],
720   [if test x"${haiku}" = xyes; then
721      build_sound_mkit=yes
722      add_sound="mkit"
723    else
724      if test x${build_sound_none} = xno; then
725        build_sound_sdl=yes
726        add_sound=sdl
727      fi
728    fi]
731 dnl --------------------------------------------------------
732 dnl  Media handler selection
733 dnl --------------------------------------------------------
734 build_media_gst=no
735 build_media_ffmpeg=auto
736 build_media_none=no
737 AC_ARG_ENABLE(media,
738   AC_HELP_STRING([--enable-media=handler],
739     [Enable media handling support using the specified handler: gst, ffmpeg or none (no sound) [[gst]] ]),
740   
741     if test -n ${enableval}; then
742       enableval=`echo ${enableval} | tr '\054' ' ' `
743     fi
744     dnl When --enable-media is given, all media defaults to off
745     dnl except the explicitly enabled ones
746     build_media_ffmpeg=no
747     build_media_gst=no
748     while test -n "${enableval}"; do
749       val=`echo ${enableval} | cut -d ' ' -f 1`
750       [case "${val}" in
751         GST|gst)
752           build_media_gst=yes
753           media_list="${media_list}gst "
754           ;;
755         FFMPEG|ffmpeg)
756           build_media_ffmpeg=yes
757           media_list="${media_list}ffmpeg "
758           ;;
759         no|NO|none)
760           build_media_none=yes
761           media_list="none"
762           ;;
763         *)
764           AC_MSG_ERROR([bad value ${enableval} for --enable-media option])
765           ;;
766      
767       esac]
768       enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
769       if test "x$val" = "x$enableval"; then
770         break;
771       fi
772     done,
773     [if test x"${build_haiku}" = xyes; then
774         build_media_ffmpeg=yes
775         build_media_haiku=yes
776         media_list="ffmpeg haiku"
777      else
778         build_media_gst=yes
779         media_list="gst"
780     fi]
783 dnl If no render is selected, and media handling isn't disabled, them enable gst
784 if test x${build_media_none} = xno -a x${build_media_gst} = xno -a x${build_media_ffmpeg} = xno; then
785   build_media_gst=yes
788 if test x"$build_media_ffmpeg" != x"no"; then # yes or auto
789   GNASH_PATH_FFMPEG
790   if test x"${build_media_ffmpeg}" = xauto; then
791     dnl TODO: have GNASH_PATH_FFMPEG set ${has_ffmpeg}
792     if test x"$FFMPEG_LIBS" != x; then
793       build_media_ffmpeg=yes
794       media_list="${media_list} ffmpeg"
795     else
796       build_ogl=no
797     fi
798   fi
801 MEDIA_CONFIG="${media_list}"
802 AC_SUBST(MEDIA_CONFIG)
804 dnl Multiple input devices are supported. These can all work in
805 dnl varying combinations, so several may be listed. These are only
806 dnl required when using the Framebuffer, as without the X11 desktop,
807 dnl Gnash has to handle all these internally. This can get
808 dnl messy, as one might want to use a touchscreen with a normal mouse
809 dnl or keyboard attached. 
810 dnl By default, don't build any of these, as they are only for the 
811 dnl Framebuffer running without X11.
812 if test x"${build_fb}" = xyes -a x"${linux}" = xyes; then
813   build_ps2mouse=no
814   build_ps2keyboard=yes
815   build_input_events=yes
816   build_tslib=yes
817   input_events="PS/2 Mouse, PS/2 Keyboard, Input Devices, Touchscreen via Tslib"
818 else
819   build_ps2mouse=no
820   build_ps2keyboard=no
821   build_input_events=no
822   build_tslib=no
823   input_events=
825 AC_ARG_ENABLE(input,
826   AC_HELP_STRING([--enable-input], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
827   [if test -n ${enableval}; then
828     enableval=`echo ${enableval} | tr '\054' ' ' `
829   fi
830   build_ps2mouse=no
831   build_ps2keyboard=no
832   build_input_events=no
833   build_tslib=no
834   while test -n "${enableval}" ; do
835     val=`echo ${enableval} | cut -d ' ' -f 1`
836     case "${val}" in
837       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
838         build_ps2mouse=yes
839         input_events="${input_events}, PS/2 Mouse"
840         ;;
841       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
842         build_ps2keyboard=yes
843         input_events="${input_events}, PS/2 Keyboard"
844         ;;
845       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
846         input_events="${input_events}, Input Event Device"
847         build_input_events=yes
848         ;;
849       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
850         build_tslib=yes
851         input_events="${input_events}, Touchscreen"
852         ;;
853       a*) dnl all
854         build_ps2mouse=yes
855         build_ps2keyboard=yes
856         build_tslib=yes
857         if test x"${linux}" = xyes; then
858           build_input_events=yes
859           input_events="PS/2 Mouse, PS/2 Keyboard, Input Devices, Touchscreen via Tslib"                
860         else
861           build_input_events=no
862           input_events="PS/2 Mouse, PS/2 Keyboard, Touchscreen via Tslib"                
863         fi
864         ;;
865       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
866          ;;
867       esac
868     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
869     if test "x$val" = "x$enableval"; then
870       break;
871     fi
872   done],
875 if test x$build_sdl != xno -o x$build_sound_sdl = xyes; then
876   GNASH_PATH_SDL
878 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} = xyes])
881 dnl -----------------------------------------------------
882 dnl Check for SDL and decide about auto gui accordingly.
883 dnl Need be done after build_sound_sdl and build_sdl are
884 dnl initialized and before they are checked for yes/no
885 dnl -----------------------------------------------------
886 if test x"${build_sdl}" = xauto; then
887   if test xyes = x"${has_sdl}"; then
888     build_sdl=yes
889   else
890     AC_MSG_NOTICE([sdl GUI will not be built (no sdl development files found)])
891     build_sdl=no
892   fi
895 dnl -------------------------------
896 dnl Renderer Selection
897 dnl -------------------------------
898 input_events=
899 dnl By default, we want to to build all renderers
900 dnl DirectFB has both a device layer and a rendering layer, although
901 dnl currently the rendering part is incomplete. Configure support is
902 dnl included for development purposes.
903 build_directfb=no
904 dnl The OpenVG support works on both the desktop and embedded devices
905 dnl that don't run X11. It is supported by iPhone/iPad/Android
906 dnl devices, and the nouveau driver on the desktop.
907 build_ovg=no
908 dnl The OpenGLES1 renderer is a work in progress. It is originally
909 dnl based on a patch to Gnash 0.8.5, which of course not only didn't
910 dnl compile anymore, it was all hardcoded into the framebuffer
911 dnl code. This version compiles with the latest internal rendering
912 dnl API, and works properly with the glue code for the Gnash GUIs.
913 build_gles1=no
914 dnl OpenGL works, but suffers from performance and rendering quality
915 dnl problems. This should eventually be replacd by the OpenGLES1 and
916 dnl OpenVG renders.
917 build_ogl=no
918 dnl AGG is a software only renderer
919 build_agg=yes
920 build_cairo=yes
921 renderer_list="agg cairo"
922 AC_ARG_ENABLE(renderer,
923   AC_HELP_STRING([--enable-renderer], [Enable support for the specified renderers (agg|cairo|opengl|openvg|all, default=all)]),
924   if test -n ${enableval}; then
925     if test "x${enableval}" != "xno" -o "x${enableval}" != "xnone" ; then
926       renderer_list="none"
927       enableval=`echo ${enableval} | tr '\054' ' ' `
928     else
929       renderer_list=""
930       enableval=""
931     fi
932   fi
933   renderer_list=""
934   build_ovg=no
935   build_ogl=no
936   build_gles1=no
937   build_gles2=no
938   build_agg=no
939   build_cairo=no
940   while test -n "${enableval}" ; do
941     val=`echo ${enableval} | cut -d ' ' -f 1`
942     [case "${val}" in
943       no*|NO*)
944         renderer_list="none"
945         build_ovg=no
946         build_ogl=no
947         build_gles1=no
948         build_gles2=no
949         build_agg=no
950         build_cairo=no
951         ;;
952       all|ALL)
953         renderer_list="agg cairo opengl openvg, opengles1"
954         build_ogl=yes
955         build_agg=yes
956         build_cairo=yes
957         build_ovg=yes
958         nrender=4
959         ;;
960       ogl|OGL|OpenGL|opengl)
961         renderer_list="${renderer_list} opengl"
962         build_ogl=yes
963         ;;
964       gles|GLES|gles1|GLES1)
965         renderer_list="${renderer_list} opengles1"
966         build_gles1=yes
967         build_ogl=no
968         nrender=$((nrender+1))
969         ;;
970       ovg|OVG|OpenVG|openvg)
971         renderer_list="${renderer_list} openvg"
972         build_ovg=yes
973         nrender=$((nrender+1))
974         ;;
975       directfb|dfb)
976         renderer_list="${renderer_list} DirectFB"
977         build_directfb=yes
978         nrender=$((nrender+1))
979         ;;
980       agg|AGG)
981         renderer_list="${renderer_list} agg"
982         build_agg=yes
983         ;;
984       cairo|CAIRO|Cairo*)
985         renderer_list="${renderer_list} cairo"
986         build_cairo=yes
987         ;;
988       *) AC_MSG_ERROR([invalid renderer specified: ${enableval} given (accept:  (opengl|openvg|cairo|agg|all)])
989         ;;
990       esac]
991     enableval=`echo ${enableval} | cut -d ' ' -f 2-`
992     if test "x$val" = "x$enableval"; then
993       break;
994     fi
995   done
998 if test x"${build_ovg}" = xyes; then
999   GNASH_PATH_OPENVG
1000   dnl If OpenVG isn't installed, disable it
1001   if test x"${has_openvg}" = xno; then
1002     AC_MSG_WARN([OpenVG specified but no development files found!])
1003     renderer_list=`echo ${renderer_list} | sed -e 's/ openvg//' `
1004     nrender=$((nrender-1))
1005   fi
1008 dnl VA API is used by default for all H.264 videos. HW requirements:
1009 dnl     * AMD GPUs with UVD2 and xvba-video VA driver
1010 dnl     * NVIDIA GPUs with vdpau-video VA driver
1011 dnl     * All HW with a VA driver supporting the VA/GLX extensions or
1012 dnl     vaPutSurface(Pixmap,...). This may include the Intel
1013 dnl     Moorestown platform and future G45 VA driver.
1014 dnl NOTE: it is possible to use Gnash/VAAPI on platforms with an Intel
1015 dnl GMA500 but you currently will have to build the AGG renderer
1016 dnl instead of the OGL (OpenGL) one. 
1017 build_vaapi_device=no
1018 build_openmax_device=no
1019 if test x"${build_ovg}" = xyes; then
1020   build_egl_device=yes
1021 else
1022   build_egl_device=no
1024 build_x11_device=no
1025 build_directfb_device=no
1026 if test x"${build_fb}" = xyes -o x"${build_fb}" = xauto; then
1027   build_fb_agg=yes
1029 dnl AGG support for the framebuffer requires the rawfb device
1030 if test x"${build_fb_agg}" = xyes -a x"${build_agg}" = xyes; then
1031   build_rawfb_device=yes
1032   device_list="RawFB"
1033   ndevice=1
1034 else
1035   build_rawfb_device=no
1036   device_list=""
1037   ndevice=0
1039 AC_ARG_ENABLE(device,
1040   AC_HELP_STRING([--enable-device], [Specify which hardware abstraction to use to support to enable (none,egl,directfb,rawfb,x11,vaapi)]),
1041   enableval=`echo ${enableval} | tr '\054' ' ' `
1042   build_egl_device=no
1043   build_rawfb_device=no
1044   device_list=""
1045   ndevice=0
1046   while test -n "${enableval}" ; do
1047     val=`echo ${enableval} | cut -d ' ' -f 1`
1048     [case "${val}" in
1049       no*|NO*)
1050         device_list="none"
1051         build_vaapi_device=no
1052         build_openmax_device=no
1053         build_egl_device=no
1054         build_directfb_device=no
1055         build_x11_device=no
1056         ndevice=0
1057         ;;
1058       va*|VA*)
1059         device_list="${device_list} VAAPI"
1060         build_vaapi_device=yes
1061         ndevice=$((ndevice+1))
1062         ;;
1063       eg*|EG*)
1064         device_list="${device_list} EGL"
1065         build_egl_device=yes
1066         ndevice=$((ndevice+1))
1067         ;;
1068       x1*|X1*)
1069         device_list="${device_list} X11"
1070         build_x11_device=yes
1071         ndevice=$((ndevice+1))
1072         ;;
1073       di*|Di*|DI*|dfb)
1074         device_list="${device_list} DirectFB"
1075         build_directfb_device=yes
1076         ndevice=$((ndevice+1))
1077         ;;
1078       ra*|RAW*)
1079         device_list="${device_list} RawFB"
1080         build_rawfb_device=yes
1081         ndevice=$((ndevice+1))
1082         ;;
1083       all|ALL)
1084         device_list="EGL DirectFB X11"
1085         build_openmax_device=no
1086         build_vaapi_device=no
1087         build_egl_device=yes
1088         build_rawfb_device=yes
1089         build_directfb_device=no
1090         build_x11_device=yes
1091         ndevice=5
1092         ;;
1093       op*|Op*|OP*)
1094         device_list="${device_list} OpenMAX"
1095         build_openmax_device=yes
1096         ndevice=$((ndevice+1))
1097         ;;
1098       *) AC_MSG_ERROR([invalid device feature specified: ${enableval} given (accept: none,vaapi)])
1099         ;;
1100       esac]
1101     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1102     if test "x$val" = "x$enableval"; then
1103       break;
1104     fi
1105   done
1108 if test x"${have_ffmpeg_vaapi}" = x"yes" -a x"${build_vaapi_device}" = x"yes"; then
1109   use_libva=no
1110   use_libva_x11=no
1111   use_libva_glx=no
1112   dnl if the version of FFmpeg is recent enough, (r20957, 52.45.0), then
1113   dnl look for VAAPI support so we can use use the VAAPI enabled FFmpeg.
1114   if test x"${have_ffmpeg_vaapi}" = xyes; then
1115     use_libva=yes
1116     GNASH_PKG_FIND([libva],
1117       [va/va.h],
1118       [Video Acceleration API],
1119       vaInitialize
1120     )
1121     use_libva_x11=yes
1122     GNASH_PKG_FIND([libva_x11],
1123       [va/va_x11.h],
1124       [VA API (X11 display)],
1125       vaGetDisplay,
1126       [], [-lva-x11]
1127     )
1129     if test x$build_ogl = xyes; then
1130       use_libva_glx=yes
1131       GNASH_PKG_FIND([libva_glx],
1132         [va/va_glx.h],
1133         [VA API (GLX display)],
1134         vaGetDisplayGLX,
1135         [], [-lva-glx]
1136       )
1137     fi
1138   fi
1141 dnl libVA drivers. We declare conditional for both the option being
1142 dnl selected, as well as whether or not it's found. This we can
1143 dnl generate better error handling if it's not found.
1144 AM_CONDITIONAL(USE_VAAPI, test x"${use_libva}" = xyes)
1146 dnl Until the hwaccel patches in FFmpeg wind up in the ffmpeg-plugin,
1147 dnl restrict using HW Accel to using FFmpeg directly.
1148 dnl test xyes = xyes -a ( x != xyes -o x != xyes )
1149 if test x"${build_vaapi}" = x"yes" -a x"${have_ffmpeg}" != x"yes"; then
1150   AC_MSG_ERROR(["Hardware acceleration currently not supported unless using FFmpeg."])
1153 AM_CONDITIONAL(HAVE_VAAPI, test x"${found_libva_incl}" = xyes)
1154 AM_CONDITIONAL(HAVE_VAAPI_GLX, test x"${found_libva_glx_incl}" = xyes)
1155 AM_CONDITIONAL(HAVE_VAAPI_X11, test x"${found_libva_x11_incl}" = xyes)
1157 if test x"${build_egl_device}" = xyes; then
1158   GNASH_PKG_FIND(EGL, [EGL/egl.h], [EGL library], eglGetDisplay)
1159   if test xyes = x"${has_EGL}"; then
1160     AC_DEFINE(BUILD_EGL_DEVICE, [ 1 ],
1161           [Build the EGL device for OpenVG, OpenGLES1&2, and X11/Mesa])
1162       device_list="${device_list} EGL"
1163       ndevice=$((ndevice+1))
1164   else
1165     AC_MSG_WARN(["EGL requested but development package not found!"])
1166     build_egl_device=no
1167   fi
1170 if test ${ndevice} -eq 0; then
1171       device_list="none"
1172       ndevice=1
1175 AM_CONDITIONAL(BUILD_DEVICES, test ${ndevice} -gt 0)
1177 dnl 16 bit: RGB555, RGB565
1178 dnl 24 bit: RGB24, BGR24
1179 dnl 32 bit: RGBA32, BGRA32
1180 pixelformat=all
1181 AC_ARG_WITH(pixelformat,
1182   AC_HELP_STRING([--with-pixelformat=], [Use the specified pixel format for AGG (default=all)]),
1183   [if test -n ${withval}; then
1184     pixelformat="${withval}"
1185     withval=`echo ${withval} | tr '\054' ' ' `
1186   fi
1187   while test -n "${withval}" ; do
1188     val=`echo ${withval} | cut -d ' ' -f 1`
1189     case "${val}" in
1190       all)
1191         # allow special value "all" set by user (handled below)
1192         ;; 
1193       argb32|ARGB32)
1194         AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32])
1195         ;;
1196       abgr32|ABGR32)
1197         AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32])
1198         ;;
1199       bgra32|BGRA32)
1200         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1201         ;;
1202       bgr24|BGR24)
1203         AC_DEFINE(PIXELFORMAT_BGR24, [1], [BGR24])
1204         ;;
1205       rgba32|RGBA32)
1206         AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32])
1207         ;;
1208       rgb24|RGB24)
1209         AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24])
1210         ;;
1211       rgb555|RGB555)
1212         AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555])
1213         ;;
1214       rgb565|RGB565)
1215         AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565])
1216         ;;
1217       *) AC_MSG_ERROR([invalid pixel format ${withval} given (accept: all|RGB555|RGB565|RGB24|BGR24|BGRA32|RGBA32|ARGB32|ABGR32)])
1218          ;;
1219       esac
1220     withval=`echo ${withval} | cut -d ' ' -f 2-6`
1221     if test "x$val" = "x$withval"; then
1222       break;
1223     fi
1224   done],
1225   [if test x$build_haiku = xyes -a x$build_sdl != xyes; then
1226         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1227         pixelformat=BGRA32
1228    fi]
1231 if test x$pixelformat = xall; then
1232   if test x$build_agg = xyes; then
1233     ### The fact that we're building GTK doesn't mean we're not also
1234     ### building KDE or SDL, each needing its own pixel format !
1235     #if test x$build_gtk = xyes; then
1236     #  AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24 pixel format])
1237     #  pixelformat="RGB24"
1238     #else
1239       AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555 pixel format])
1240       AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565 pixel format])
1241       AC_DEFINE(PIXELFORMAT_RGB24,  [1], [RGB24 pixel format])
1242       AC_DEFINE(PIXELFORMAT_BGR24,  [1], [BGR24 pixel format])
1243       AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32 pixel format])
1244       AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32 pixel format])
1245       AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32 pixel format])
1246       AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32 pixel format])
1247     #fi
1248   fi
1251 if test x"${build_ogl}" != xno; then # yes or auto
1252   GNASH_PATH_OPENGL
1253   if test x"${build_ogl}" = xauto; then
1254     if test xyes = x"${has_opengl}"; then
1255       build_ogl=yes
1256       renderer_list="${renderer_list} opengl"
1257     else
1258       build_ogl=no
1259     fi
1260   fi
1263 AM_CONDITIONAL(BUILD_OVG_RENDERER,   [ test x${build_ovg} = xyes ])
1264 AM_CONDITIONAL(BUILD_GLES1_RENDERER, [ test x${build_gles1} = xyes ])
1265 AM_CONDITIONAL(BUILD_GLES2_RENDERER, [ test x${build_gles2} = xyes ])
1266 AM_CONDITIONAL(BUILD_OGL_RENDERER,   [ test x${build_ogl} = xyes])
1267 AM_CONDITIONAL(BUILD_AGG_RENDERER,   [ test x${build_agg} = xyes ])
1268 AM_CONDITIONAL(BUILD_CAIRO_RENDERER, [ test x${build_cairo} = xyes ])
1270 if test x"${has_openvg}" = xyes; then
1271    AC_DEFINE([RENDERER_OPENVG], [1], [Use OpenVG renderer])
1274 if test x"${build_ogl}" = xyes; then
1275    AC_DEFINE([RENDERER_OPENGL], [1], [Use OpenGL renderer])
1278 if test x"${build_agg}" = xyes; then
1279   AC_DEFINE([RENDERER_AGG], [1], [Use AntiGrain renderer])
1282 if test x"${build_cairo}" = xyes; then
1283   GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1284   AC_DEFINE([RENDERER_CAIRO], [1], [Use cairo renderer])
1287 if test x"${build_agg}" = xyes; then
1288    GNASH_PATH_AGG
1291 AC_PATH_PROG(PERL, perl)
1292 AM_CONDITIONAL(HAVE_PERL, test x"$PERL" != x)
1294 AC_PATH_PROG(CSOUND, csound)
1295 AM_CONDITIONAL(HAVE_CSOUND, test x"$CSOUND" != x)
1297 AC_PATH_PROG(GIT, git)
1298 AC_SUBST(GIT)
1300 dnl --------------------------------------------------------
1301 dnl Extension selection
1302 dnl --------------------------------------------------------
1303 ext_dejagnu=no
1304 ext_mysql=no
1305 ext_fileio=no
1306 ext_gtk=no
1307 ext_lirc=no
1308 ext_dbus=no
1309 ext_all=no
1310 extensions_list=
1311 extensions_support=yes
1312 nextensions=0
1313 AC_ARG_ENABLE(extensions,
1314   AC_HELP_STRING([--enable-extensions=], [Specify which extensions to build (default: none)])
1315   AC_HELP_STRING([--disable-extensions], [Disable support for extensions entirely]),
1316   if test -n ${enableval}; then
1317     if test "x${enableval}" != "xno"; then
1318       extlist="${enableval}"
1319       enableval=`echo ${enableval} | tr '\054' ' ' `
1320       AC_DEFINE([USE_EXTENSIONS], [1], [Specify that extension support is enabled.])
1321     else
1322       extlist=""
1323       enableval=""
1324       extensions_support=no
1325     fi
1326   fi
1327   nextensions=0
1328   while test -n "${enableval}" ; do
1329     val=`echo ${enableval} | cut -d ' ' -f 1`
1330     extensions_list="${extensions_list} ${val}"
1331     [case "${val}" in
1332       dejagnu|DEJAGNU|dj|DJ)
1333         AC_DEFINE(USE_DEJAGNU_EXT, [1], [Build the DejaGnu extension])
1334         AC_MSG_NOTICE([Adding DejaGnu extension])
1335         ext_dejagnu=yes
1336         nextensions=$((nextensions+1))
1337         ;;
1338       mysql|MYSQL|sql|SQL)
1339         AC_DEFINE(USE_MYSQL_EXT, [1], [Build the MySQL extension])
1340         AC_MSG_NOTICE([Adding MySql extension])
1341         ext_mysql=yes
1342         nextensions=$((nextensions+1))
1343         ;;
1344       fileio|FILEIO|io|IO)
1345         AC_DEFINE(USE_FILEIO_EXT, [1], [Build the FileIO extension])
1346         AC_MSG_NOTICE([Adding FileIO extension])
1347         ext_fileio=yes
1348         nextensions=$((nextensions+1))
1349         ;;
1350       gtk|GTK|gtk2|GTK2)
1351         AC_DEFINE(USE_GTK_EXT, [1], [Build the GTK extension])
1352         ext_gtk=yes
1353         nextensions=$((nextensions+1))
1354         ;;
1355       lirc|LIRC)
1356         AC_DEFINE(USE_LIRC_EXT, [1], [Build the LIRC extension])
1357         ext_lirc=yes
1358         nextensions=$((nextensions+1))
1359         ;;
1360       dbus|DBUS)
1361         AC_DEFINE(USE_DBUS_EXT, [1], [Build the DBUS extension])
1362         ext_dbus=yes
1363         nextensions=$((nextensions+1))
1364         ;;
1365       all|ALL)
1366         AC_DEFINE(USE_GTK_EXT, [1], [Build all the extensions])
1367         ext_dejagnu=yes
1368         ext_mysql=yes
1369         ext_fileio=yes
1370         ext_gtk=yes
1371         ext_lirc=yes
1372         ext_dbus=yes
1373         ext_all=yes
1374         nextensions=9
1375         ;;
1376       *) AC_MSG_ERROR([invalid extension specified: ${enableval} given (accept: MYSQL|DEJAGNU|FILEIO|GTK|LIRC|DBUS|METOME|ALL)])
1377          ;;
1378       esac]
1379     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1380     if test "x$val" = "x$enableval"; then
1381       break;
1382     fi
1383   done
1384   EXTENSIONS_LIST="$extensions_list"
1385   AC_SUBST(EXTENSIONS_LIST)
1388 if test x$ext_dbus = xyes; then
1389   GNASH_PATH_DBUS
1392 if test x$ext_mysql = xyes; then
1393   GNASH_PATH_MYSQL
1396 AM_CONDITIONAL(BUILD_DEJAGNU_EXT, [ test x$ext_dejagnu = xyes ])
1397 AM_CONDITIONAL(BUILD_FILEIO_EXT, [ test x$ext_fileio = xyes ])
1398 AM_CONDITIONAL(BUILD_MYSQL_EXT, [ test x$ext_mysql = xyes ])
1399 AM_CONDITIONAL(BUILD_GTK_EXT, [ test x$ext_gtk = xyes ])
1400 AM_CONDITIONAL(BUILD_LIRC_EXT, [ test x$ext_lirc = xyes ])
1401 AM_CONDITIONAL(BUILD_DBUS_EXT, [ test x$ext_dbus = xyes ])
1402 AM_CONDITIONAL(BUILD_EXTENSIONS, [ test -n "$extensions_list"])
1404 AM_CONDITIONAL(ENABLE_EXTENSIONS, [ test "x${extensions_support}" != "xno" ])
1406 dnl --------------------------------------------------------
1407 dnl Libtool
1408 dnl --------------------------------------------------------
1410 AC_LIBTOOL_DLOPEN
1411 AC_LIBTOOL_WIN32_DLL
1412 AC_DISABLE_STATIC
1413 AC_PROG_LIBTOOL
1414 AC_SUBST(LIBTOOL_DEPS)
1415 DLOPEN="-dlopen"
1416 DLPREOPEN="-dlpreopen"
1417 AC_SUBST(DLOPEN)
1418 AC_SUBST(DLPREOPEN)
1420 GNASH_PKG_FIND([ltdl], [ltdl.h], [libltdl library], [lt_dlinit])
1422 if test x"$has_ltdl" = x"yes";then
1423   AC_DEFINE(HAVE_LTDL, [1], [Libtool 2.x defines this, but libtool 1.5 does not])
1426 dnl --------------------------------------------------------
1427 dnl SOL dir
1428 dnl --------------------------------------------------------
1429 soldir=/tmp
1430 AC_ARG_WITH(soldir,
1431  AC_HELP_STRING([--with-soldir],
1432  [directory for .sol files]),
1433  with_soldir=${withval})
1434 if test x${with_soldir} != x; then
1435   soldir=${with_soldir}
1437 SOLDIR=${soldir}
1438 AC_SUBST(SOLDIR)
1440 dnl --------------------------------------------------------
1441 dnl AVM2
1442 dnl --------------------------------------------------------
1443 dnl AC_ARG_ENABLE(avm2,
1444 dnl   AC_HELP_STRING([--enable-avm2], [Enable support for AS3]),
1445 dnl   [case "${enableval}" in
1446 dnl     yes) avm2=yes ;;
1447 dnl     no)  avm2=no ;;
1448 dnl     *)   AC_MSG_ERROR([bad value ${enableval} for enable-avm2 option]) ;;
1449 dnl   esac], avm2=no
1450 dnl )
1451 dnl AM_CONDITIONAL(ENABLE_AVM2, [test x"$avm2" = xyes])
1452 dnl if test x$avm2 = xyes; then
1453 dnl     AC_DEFINE(ENABLE_AVM2, [1], [Enable AVM2 code])
1454 dnl fi
1455 AM_CONDITIONAL(ENABLE_AVM2, false)
1457 dnl This option is only used if you want Gnash to interwork with 
1458 dnl the Adobe player using the LocalConnection class.
1459 dnl lckey=0xdd3adabd
1460 AC_ARG_WITH(lckey,
1461  AC_HELP_STRING([--with-lckey],
1462  [shared memory key for your system]),
1463  with_lckey=${withval})
1465 if test x${with_lckey} != x; then
1466   lckey=${with_lckey}
1467 else
1468   lckey=0xcbc384f8
1470 LC_KEY=${lckey}
1471 AC_SUBST(LC_KEY)
1473 AC_ARG_ENABLE(python,
1474   AC_HELP_STRING([--enable-python],[Enable python for the python wrapper]),
1475 [case "${enableval}" in
1476   yes) python=yes ;;
1477   no)  python=no ;;
1478   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-python option]) ;;
1479 esac],python=no)
1481 dnl Look for python, which is optional. If enabled, a python loadable
1482 dnl module of Gnash is created.
1483 GNASH_PATH_PYTHON
1484 AM_CONDITIONAL([USE_PYTHON], test x"$python" = xyes)
1485 AM_CONDITIONAL([HAS_PYTHON], test x"$has_python" = xyes)
1487 dnl By default debug logging is enabled. For better performance, it can
1488 dnl be disabled, as when running as a plugin, nobody sees the debug messages
1489 dnl anyway. Debug logging is primarily for developers, so we can turn it off
1490 dnl for package builds.
1491 AC_ARG_ENABLE(log,
1492   AC_HELP_STRING([--enable-log],[Enable debug logging]),
1493 [case "${enableval}" in
1494   yes) debuglog=yes ;;
1495   no)  debuglog=no ;;
1496   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-log option]) ;;
1497 esac],debuglog=yes)
1499 if test x"${debuglog}" = x"yes"; then
1500   AC_DEFINE([DEBUG_LOGGING], [1], [Enable debug logging])
1503 # Maybe use jemalloc, which handles memory fragmentation for
1504 # ECAMscript languages better than the regular system malloc.
1505 # This seems like a good idea, as both the other player and
1506 # Mozilla/Firefox both recently switched to using jemalloc.
1507 AC_ARG_ENABLE(jemalloc,
1508   AC_HELP_STRING([--enable-jemalloc],[Enable jemalloc instead of system malloc]),
1509 [case "${enableval}" in
1510   yes) jemalloc=yes ;;
1511   no)  jemalloc=no ;;
1512   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-jemalloc option]) ;;
1513 esac],jemalloc=yes)
1515 AC_CHECK_SIZEOF([void *], [4])
1517 if test "x${ac_cv_sizeof_void_p}" != x4 -a x"${ac_cv_sizeof_void_p}" != x8; then
1518   dnl jemalloc doesn't support unusual pointer sizes
1519   jemalloc=no
1522 dnl There is some weird stuff going on with NetBSD and jemalloc, so don't 
1523 dnl build it for now.
1524 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
1525   jemalloc=no
1527 dnl If the compiler doesn't have local thread storage enabled, don't try to
1528 dnl use jemalloc.
1529 if test x"${jemalloc}" = x"yes"; then
1530   AC_TRY_COMPILE([], [
1531     extern __thread int global_i; ],
1532     has_local_thread_storage=yes
1533   )
1534   if test x"${has_local_thread_storage}" = x"yes"; then
1535     AC_DEFINE([HAVE_LOCAL_THREAD_STORAGE], [1], [Has __thread (local thread storage) support])
1536     AC_DEFINE([USE_JEMALLOC], [], [Use jemalloc instead of system malloc])
1537   else
1538     jemalloc=no
1539   fi
1542 dnl We can search libs for mallinfo to decide whether we have it or not.
1543 dnl This is added to the linker flags when it's found. Usually it's -lc, but
1544 dnl on OpenSolaris it's -lmalloc, so this fixes the build.
1545 AC_SEARCH_LIBS([mallinfo], [c malloc],
1546                AC_DEFINE(HAVE_MALLINFO, [1], [Has mallinfo()])
1547                mallinfo=yes
1548                )
1550 AM_CONDITIONAL([HAVE_MALLINFO], test x$mallinfo = xyes)
1551 AM_CONDITIONAL(JEMALLOC, test x$jemalloc = xyes)
1553 AC_ARG_ENABLE(fps-debug,
1554   AC_HELP_STRING([--enable-fps-debug],[Enable FPS debugging code]),
1555 [case "${enableval}" in
1556   yes) AC_DEFINE([GNASH_FPS_DEBUG], [1], [Enable FPS debugging code])
1557 esac])
1559 dnl IPC_INFO isn't portable, and doesn't exist on BSD
1560 AC_TRY_COMPILE([#include <sys/ipc.h> #include <sys/shm.h>], [
1561   int flag = IPC_INFO; ],
1562   AC_DEFINE([HAVE_IPC_INFO], [1], [Use ipc_info])
1565 dnl --------------------------------------------------------
1566 dnl Disable menus
1567 dnl --------------------------------------------------------
1568 dnl Don't add the GUI menu. Some educational systems think this adds
1569 dnl clutter and confusion, like on the OLPC.
1570 AC_ARG_ENABLE(menus,
1571   AC_HELP_STRING([--disable-menus],[Disable the GUI menus]),
1572 [case "${enableval}" in
1573   yes) menus=yes ;;
1574   no)  menus=no ;;
1575   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-menus option]) ;;
1576 esac],menus=yes)
1578 if test x"$menus" = x"yes"; then
1579   AC_DEFINE([USE_MENUS], [], [GUI Menu support])
1581 AM_CONDITIONAL(MENUS, test x$menus = xyes)
1583 dnl --------------------------------------------------------
1584 dnl Disable SWF information
1585 dnl --------------------------------------------------------
1586 dnl Don't gather SWF information in tree form. This takes
1587 dnl resources and memory that can be saved if there's no
1588 dnl need to examine SWF internals.
1589 AC_ARG_ENABLE(swftree,
1590   AC_HELP_STRING([--disable-swftree],[Disable showing SWF properties]),
1591 [case "${enableval}" in
1592   yes) swftree=yes ;;
1593   no)  swftree=no ;;
1594   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-swf-properties option]) ;;
1595 esac],swftree=yes)
1597 if test x"$swftree" = x"yes"; then
1598   AC_DEFINE([USE_SWFTREE], [], [View SWF information])
1600 AM_CONDITIONAL(SWFTREE, test x$swftree = xyes)
1602 dnl --------------------------------------------------------
1603 dnl Disable testsuite
1604 dnl --------------------------------------------------------
1605 dnl Disable running any tests for "make check". This may sound stupid, but
1606 dnl this option is designed to solely be used by maintainers in the 
1607 dnl DISTCHECK_CONFIGURE_FLAGS when building packages. Gnash's testing infrastructure
1608 dnl is complex, and often the the testsuites will work, but due to some obscure reason,
1609 dnl make distcheck fails.
1610 AC_ARG_ENABLE(testsuite,
1611   AC_HELP_STRING([--disable-testsuite],[Disable the testsuite, maintainers option only]),
1612 [case "${enableval}" in
1613   yes) testsuite=yes ;;
1614   no)  testsuite=no ;;
1615   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-testsuite option]) ;;
1616 esac],testsuite=yes)
1618 if test x"$testsuite" = x"yes"; then
1619   AC_DEFINE([USE_TESTSUITE], [], [Testsuite support, maintainers option only])
1621 AM_CONDITIONAL(TESTSUITE, test x$testsuite = xyes)
1623 dnl --------------------------------------------------------
1624 dnl Write the file to disk in the plugin
1625 dnl --------------------------------------------------------
1626 AC_ARG_ENABLE(write,
1627   AC_HELP_STRING([--enable-write], [Makes the Mozilla plugin write the currently playing SWF movie to /tmp.]),
1628 [case "${enableval}" in
1629   yes) write=yes ;;
1630   no)  write=no ;;
1631   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-write option]) ;;
1632 esac],write=no)
1634 if test x"$write" = x"yes"; then
1635   AC_DEFINE([WRITE_FILE], [], [Write files while streaming])
1638 dnl --------------------------------------------------------
1639 dnl Write a standalone gnash launcher to disk from the plugin
1640 dnl --------------------------------------------------------
1641 AC_ARG_ENABLE(sa-launcher,
1642   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.]),
1643 [case "${enableval}" in
1644   yes) sa_launcher=yes ;;
1645   no)  sa_launcher=no ;;
1646   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-sa-launcher option]) ;;
1647 esac],sa_launcher=yes)
1649 if test x"$sa_launcher" = x"yes"; then
1650   AC_DEFINE([CREATE_STANDALONE_GNASH_LAUNCHER], [], [Add support for writing a standalone executable launcher for movies embedded in web pages])
1653 dnl --------------------------------------------------------
1654 dnl Build the cygnal server if specified.
1655 dnl --------------------------------------------------------
1656 AC_ARG_ENABLE(cygnal,
1657   AC_HELP_STRING([--enable-cygnal], [Enable building of the Cygnal server]),
1658 [case "${enableval}" in
1659   yes) cygnal=yes ;;
1660   no)  cygnal=no ;;
1661   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cygnal option]) ;;
1662 esac],cygnal=no)
1663 AM_CONDITIONAL(CYGNAL, test x$cygnal = xyes)
1665 dnl --------------------------------------------------------
1666 dnl Build the cgibins server if specified.
1667 dnl --------------------------------------------------------
1668 AC_ARG_ENABLE(cgibins,
1669   AC_HELP_STRING([--enable-cgibins], [Enable building of the CGIs for Cygnal]),
1670 [case "${enableval}" in
1671   yes) cgibin=yes ;;
1672   no)  cgibin=no ;;
1673   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cgibins option]) ;;
1674 esac],cgibin=yes)
1675 AM_CONDITIONAL(USE_CGI, test x$cgibin = xyes)
1676 if test x"${cgibin}" = x"yes"; then
1677   AC_DEFINE([USE_CGIBIN], [1], [Enable cgi-bin processes for Cygnal])
1680 dnl --------------------------------------------------------
1681 dnl  Double buffer
1682 dnl --------------------------------------------------------
1683 dnl Add an option for double buffering when rendering, currently only used by
1684 dnl the frmaebuffer GUI.
1685 dnl If defined, an internal software-buffer is used for rendering and is then
1686 dnl copied to the video RAM. This avoids flicker and is faster for complex 
1687 dnl graphics, as video RAM access is usually slower. (strongly suggested)
1688 AC_ARG_ENABLE(doublebuf,
1689   AC_HELP_STRING([--disable-doublebuf], [Disble support for double buffering when rendering with AGG]),
1690   [case "${enableval}" in
1691     yes) doublebuf=yes ;;
1692     no)  doublebuf=no ;;
1693     *)   AC_MSG_ERROR([bad value ${enableval} for enable-doublebuf option]) ;;
1694   esac], doublebuf=yes
1696 AM_CONDITIONAL(ENABLE_DBUF, [test x"$doublebuf" = xyes])
1697 if test x$doublebuf = xyes; then
1698     AC_DEFINE(ENABLE_DOUBLE_BUFFERING, [1], [Disable double buffering for AGG])
1701 dnl --------------------------------------------------------
1702 dnl  Offscreen buffer
1703 dnl --------------------------------------------------------
1704 dnl This enables rendering to an offscreen buffer, instead of directly to window
1705 AC_ARG_ENABLE(offscreen,
1706   AC_HELP_STRING([--enable-offscreen], [Enable support for rendering offscreen]),
1707   [case "${enableval}" in
1708     yes) offscreen=yes ;;
1709     no)  offscreen=no ;;
1710     *)   AC_MSG_ERROR([bad value ${enableval} for enable-offscreen option]) ;;
1711   esac], offscreen=no
1715 dnl --------------------------------------------------------
1716 dnl  SSH support selection
1717 dnl --------------------------------------------------------
1718 dnl Enable using libssh with libnet
1719 AC_ARG_ENABLE(ssh,
1720   AC_HELP_STRING([--enable-ssh], [Enable using SSH for network authentication]),
1721 [case "${enableval}" in
1722   yes) build_ssh=yes ;;
1723   no)  build_ssh=no ;;
1724   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssh option]) ;;
1725 esac], build_ssh=no)
1727 AM_CONDITIONAL(BUILD_SSH, test x"${build_ssh}" = xyes)
1728 if test x"${build_ssh}" = xyes; then
1729   GNASH_PKG_FIND(ssh, [libssh/libssh.h], [libssh library], ssh_socket_init)
1730 dnl  GNASH_PKG_FIND(poppler, [popt.h], [Poppler library], poppler_init)
1732 if test x"${has_ssh}" = x"yes"; then
1733   AC_DEFINE([USE_SSH], [1], [Use SSH for authentication])
1736 dnl --------------------------------------------------------
1737 dnl  SSL support selection
1738 dnl --------------------------------------------------------
1740 dnl Enable using OpenSSL with libnet.
1741 AC_ARG_ENABLE(ssl,
1742   AC_HELP_STRING([--enable-ssl], [Enable using OpenSSL directly]),
1743 [case "${enableval}" in
1744   yes) build_ssl=yes ;;
1745   no)  build_ssl=no ;;
1746   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssl option]) ;;
1747 esac], build_ssl=no)
1749 with_cert=
1750 with_pem=
1751 AM_CONDITIONAL(BUILD_SSL, test x"${build_ssl}" = xyes)
1752 AC_ARG_WITH(cert,
1753   AC_HELP_STRING([--with-cert],
1754   [cert file for SSL]),
1755   with_cert=${withval})
1756 AC_ARG_WITH(pem,
1757   AC_HELP_STRING([--with-pe],
1758   [pem file for SSL]),
1759   with_pem=${withval})
1761 if test x"${build_ssl}" = xyes; then
1762   GNASH_PKG_FIND(ssl, [openssl/ssl.h], [OpenSSL library], SSL_library_init)
1764 if test x"${has_ssl}" = x"yes"; then
1765   AC_DEFINE([USE_SSL], [1], [Use SSL for authentication])
1768 dnl -----------------------------------------------------------
1769 dnl Set the general plugins install policy here
1770 dnl (NOTE: before GNASH_PATH_FIREFOX and GNASH_PATH_KDE*)
1771 dnl -----------------------------------------------------------
1773 AC_ARG_WITH(plugins-install,
1774   AC_HELP_STRING([--with-plugins-install=system|user|prefix], [Policy for plugins install. Default: user.]),
1775         [case "${withval}" in
1776           user) PLUGINS_INSTALL_POLICY=user ;;
1777           system) PLUGINS_INSTALL_POLICY=system ;;
1778           prefix) PLUGINS_INSTALL_POLICY=prefix ;;
1779           *)  AC_MSG_ERROR([bad value ${withval} for --with-plugins-install]) ;;
1780          esac 
1781         ], PLUGINS_INSTALL_POLICY=user) 
1783 dnl -----------------------------------------------------------
1784 dnl   Verify dependencies for requested GUIs are met, and
1785 dnl   disable build of the GUIS for which deps are NOT met
1786 dnl ------------------------------------------------------------
1788 if test x$build_gtk = xyes; then
1789    GNASH_PATH_GTK2
1790    GNASH_PATH_PANGO
1791    GNASH_PKG_FIND(atk, [atk/atk.h], [atk library], atk_focus_tracker_init, [1.0])
1792    if test x"${build_ogl}" = xyes; then
1793       GNASH_PATH_GLEXT
1794    fi
1795    if test x"${build_cairo}" = xyes; then
1796       GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1797    fi
1800 if test x"${build_qt4}" != xno; then
1801  GNASH_PATH_QT4
1804 if test x"${build_qt4}" = xauto; then
1805   if test x"${has_qt4}" = xyes; then
1806      build_qt4=yes
1807   else
1808      build_qt4=no
1809   fi
1812 if test x"${build_kde3}" != xno -o x"${build_qtopia3}" != xno; then
1813  GNASH_PATH_QT3
1816 if test x"${build_kde3}" != xno; then
1817   GNASH_PATH_KDE3
1821 if test x"${build_kde3}" = xauto; then
1822   if test x"${has_qt3}" = xyes -a x"${has_kde3}" = xyes; then
1823      build_kde3=yes
1824   else
1825      build_kde3=no
1826   fi
1829 dnl Check possibility to build DUMP gui, if requested
1830 if test x"${build_dump}" != xno; then
1831   if test x"${build_agg}" = xyes; then
1832     build_dump=yes
1833   else
1834     if test x"${build_dump}" = xyes; then
1835       dnl SHOULD we just check at the end of file instead ?
1836       AC_MSG_ERROR(dump GUI cannot be built without AGG renderer);
1837     fi
1838     build_dump=no
1839   fi
1842 dnl Check possibility to build FB gui, if requested
1843 dnl FB dependency is a linux system (linux/fb.h)
1844 if test x"${build_fb}" != xno; then
1845   if test x"${linux}" = xyes; then
1846       build_fb=yes
1847   else
1848     if test x"${build_fb}" = xyes; then
1849       dnl SHOULD we just check at the end of file instead ?
1850       AC_MSG_ERROR(fb GUI cannot be built on non-linux platforms);
1851     fi
1852     AC_MSG_NOTICE([fb GUI won't be built (non-linux platform)])
1853     build_fb=no
1854   fi
1857 dnl TODO: add checks for all other GUIs
1859 dnl -------------------------------
1860 dnl Input Device selection
1861 dnl -------------------------------
1863 dnl Multiple input devices are supported. These can all work in
1864 dnl varying combinations, so several may be listed. These are only
1865 dnl required when using the Framebuffer, as without the X11 desktop,
1866 dnl Gnash has to handle all these internally. This can get
1867 dnl messy, as one might want to use a touchscreen with a normal mouse
1868 dnl or keyboard attached. 
1869 dnl By default, don't build any of these, as they are only for the Framebuffer
1870 dnl running without X11.
1871 if test x"${build_fb}" = xyes; then
1872   build_ps2mouse=no
1873   build_ps2keyboard=yes
1874   build_input_events=yes
1875   build_tslib=yes
1876   input_events="Input Devices, Touchscreen via Tslib"
1877 else
1878   build_ps2mouse=no
1879   build_ps2keyboard=no
1880   build_input_events=no
1881   build_tslib=no
1882   input_events=
1884 AC_ARG_ENABLE(input,
1885   AC_HELP_STRING([--enable-input=], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
1886   [if test -n ${enableval}; then
1887     enableval=`echo ${enableval} | tr '\054' ' ' `
1888   fi
1889   while test -n "${enableval}" ; do
1890     val=`echo ${enableval} | cut -d ' ' -f 1`
1891     case "${val}" in
1892       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
1893         build_ps2mouse=yes
1894         input_events="${input_events}, PS/2 Mouse"
1895         ;;
1896       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
1897         build_ps2keyboard=yes
1898         input_events="${input_events}, PS/2 Keyboard"
1899         ;;
1900       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
1901         input_events="${input_events}, Input Event Device"
1902         build_input_events=yes
1903         ;;
1904       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
1905         build_tslib=yes
1906         input_events="${input_events}, Touchscreen"
1907         ;;
1908       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
1909          ;;
1910       esac
1911     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1912     if test "x$val" = "x$enableval"; then
1913       break;
1914     fi
1915   done],
1918 if test x"${build_tslib}" = xyes; then
1919   AC_DEFINE(USE_TSLIB, [1], [Use a tslib supported touchscreen])
1920   GNASH_PKG_FIND(ts, [tslib.h], [Touchscreen library], ts_config)
1922 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} != xno])
1924 if test x"${build_ps2mouse}" = xyes; then
1925   AC_DEFINE(USE_MOUSE_PS2, [1], [Add support for a directly using a PS/2 Mouse])
1927 AM_CONDITIONAL(ENABLE_MOUSE, [test x"${build_ps2mouse}" = xyes])
1929 if test x"${build_ps2keyboard}" = xyes; then
1930   AC_DEFINE(USE_KEYBOARD_PS2, [1], [Add support for directly using a PS/2 Keyboard])
1932 if test x"${build_input_events}" = xyes; then
1933   AC_DEFINE(USE_INPUT_EVENTS, [1], [Add support for a directly using Linux Input Event Devices])
1935 AM_CONDITIONAL(ENABLE_INPUT_EVENTS, [test x"${build_input_events}" = xyes])
1936 dnl this is enabled if we have any input devices at all
1937 AM_CONDITIONAL(ENABLE_INPUT_DEVICES, [test x"${input_events}" != x])
1940 dnl -----------------------------------------------------------
1941 dnl Try to ignore stupid dependencies
1942 dnl -----------------------------------------------------------
1944 AC_MSG_CHECKING(linker --as-needed support)
1945 gcc_cv_ld_as_needed=no
1946 # Check if linker supports --as-needed and --no-as-needed options
1947 if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
1948   gcc_cv_ld_as_needed=yes
1950 if test x"$gcc_cv_ld_as_needed" = xyes; then
1951   LDFLAGS="$LDFLAGS -Wl,--as-needed"
1953 AC_MSG_RESULT($gcc_cv_ld_as_needed)
1955 AC_DEFINE(USE_GIF, [1], [Use the GIF library])
1956 AC_DEFINE(USE_PNG, [1], [Use the PNG library])
1957 AM_CONDITIONAL(USE_GIF, true)
1958 AM_CONDITIONAL(USE_PNG, true)
1960 AC_PATH_TOOL([AUTOTRACE], [autotrace])
1961 AC_HEADER_DIRENT
1963 dnl -----------------------------------------------------------------
1964 dnl PLUGIN RELATED STUFF
1965 dnl -----------------------------------------------------------------
1967 dnl !! This has been moved here to make --enable-npapi work
1968 dnl !! All of plugin-related macro calls could be moved into
1969 dnl !! a specialized macros/plugin.m4
1971 dnl ----------------------------------------------------
1972 dnl Add KPARTS support, if specified or KDE gui is built
1973 dnl ----------------------------------------------------
1975 AC_ARG_ENABLE(kparts3,
1976   AC_HELP_STRING([--disable-kparts3], [Disable support for Konqueror 3.x plugin (default: enabled if kde3 gui is)]),
1977 [case "${enableval}" in
1978   yes) build_kparts3=yes ;;
1979   no)  build_kparts3=no ;;
1980   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts3 option]) ;;
1981 esac],build_kparts3=$build_kde3)
1983 dnl --------------------------------------------------------
1984 dnl Add KPARTS 4.x support, if specified or KDE gui is built
1985 dnl --------------------------------------------------------
1987 AC_ARG_ENABLE(kparts4,
1988   AC_HELP_STRING([--disable-kparts4], [Disable support for Konqueror 4.x plugin (default: enabled if Qt4 gui is)]),
1989 [case "${enableval}" in
1990   yes) build_kparts4=yes ;;
1991   no)  build_kparts4=no ;;
1992   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts4 option]) ;;
1993 esac],build_kparts4=$build_qt4)
1995 if test x"${build_kparts4}" != xno; then
1996   GNASH_PATH_KDE4
1999 dnl -----------------------------------------------------------
2000 dnl Add NPAPI support, if specified or GTK or Qt4 gui is built
2001 dnl -----------------------------------------------------------
2003 AC_ARG_ENABLE(npapi,
2004   AC_HELP_STRING([--disable-npapi], [Disable NPAPI plugin build (default: enabled if gtk or Qt4 gui is)]),
2005   [case "${enableval}" in
2006     yes) npapi=yes ;;
2007     no)  npapi=no ;;
2008     *)   AC_MSG_ERROR([bad value ${enableval} for disable-npapi option]) ;;
2009   esac],
2010   if test x$build_gtk = xyes -o x$build_qt4 = xyes; then
2011     npapi=yes
2012   fi
2015 if test x"$npapi" = x"yes"; then
2016   GNASH_PATH_NPAPI
2019 dnl -----------------------------------------------------------------
2020 dnl Enable us to disable building all browser plugins in one command.
2021 dnl -----------------------------------------------------------------
2023 AC_ARG_ENABLE(plugins,
2024   AC_HELP_STRING([--disable-plugins], [Disable all browser plugins from building (default=no)]),
2025   [case "${enableval}" in
2026     yes) plugins=yes ;;
2027     no)  plugins=no ;;
2028     *)   AC_MSG_ERROR([bad value ${enableval} for disable-plugins option]) ;;
2029   esac],
2030   plugins=yes
2032 if test x$plugins = xno; then
2033   npapi=no
2034   build_kparts3=no
2035   build_kparts4=no
2039 GNASH_PATH_FIREFOX
2041 dnl 
2042 dnl New versions of the NPAPI require const for this prototype, which currently
2043 dnl seems to only be wit Ubuntu Oneiric.
2044 AC_MSG_CHECKING([for const needed for NPP_GetMIMEDescription() prototype])
2045 npapi_flags="`echo "${NPAPI_CFLAGS}" | sed -e 's/-I//' -e 's/-DXP_UNIX//' | tr -d ' '`/npapi.h"
2046 const_test="`grep NPP_GetMIMEDescription ${npapi_flags} | grep -c const`"
2047 if test ${const_test} -eq 1; then
2048   AC_DEFINE(NPAPI_CONST, [1], [Newer versions use const in prototypes])
2049   AC_MSG_RESULT([yes])
2050 else
2051   AC_MSG_RESULT([no])
2054 AC_TRY_COMPILE([#include <linux/input.h>], [
2055   struct input_absinfo abs;
2056   abs.resolution = 0;; ],
2057  AC_DEFINE([ABSINFO_RESOLUTION], [1], [ABS Resolution field])
2060 dnl -----------------------------------------------------------------
2061 dnl END OF PLUGIN RELATED STUFF
2062 dnl -----------------------------------------------------------------
2064 AM_CONDITIONAL(LIRC, [test x$lirc_ext = xyes])
2066 AC_CHECK_HEADERS(getopt.h)
2067 AC_CHECK_HEADERS(libgen.h)
2068 AC_CHECK_HEADERS(pwd.h)
2069 AC_CHECK_HEADERS(sys/utsname.h)
2070 AC_CHECK_HEADERS(signal.h)
2071 AC_CHECK_HEADERS(unistd.h)
2072 AC_CHECK_HEADERS(sys/time.h)
2073 AC_CHECK_LIB(bz2, BZ2_bzopen, [AC_SUBST(BZ2_LIBS, -lbz2)])
2074 AC_CHECK_LIB(c, getpwnam, AC_DEFINE(HAVE_GETPWNAM, 1, [Has getpwnam] ))
2076 dnl X11 is needed for fltk (at least),
2077 dnl and probably for many other guis too ...
2078 dnl if ! test x$build_fb = xyes; then # <--- this is wrong as build_x is non-exclusive
2079 dnl AC_PATH_XTRA
2080 dnl AC_CHECK_LIB(Xmu, XmuCvtStringToOrientation)
2081 dnl AC_CHECK_LIB(gmp, _gmp_get_memory_functions)
2082 GNASH_PATH_X11
2083 AC_CHECK_LIB(Xi, XInput_find_display)
2084 AC_CHECK_LIB(X11, XDisableAccessControl)
2085 dnl fi
2086 AM_CONDITIONAL(HAVE_X11, [test x${has_x11} = xyes])
2087 if test x${build_x11_device} = xyes -a  x${has_x11} = xyes; then
2088   AC_DEFINE(BUILD_X11_DEVICE, [1], [Build the X11 device])
2091 dnl See if ipc_perm structure has the ipc_perm.key field, and if so,
2092 dnl which variant of the name is used.
2093 ipc_key=no
2094 AC_TRY_COMPILE([
2095   #include <sys/ipc.h>
2096   #include <sys/shm.h>], [
2097  struct shmid_ds shmseg;      
2098  key_t x = shmseg.shm_perm.key;],
2099  ipc_key=yes
2100  AC_DEFINE(IPC_PERM_KEY, [key], [Has the key field in ipc_perm])
2103 if test x$ipc_key = xno; then
2104   AC_TRY_COMPILE([
2105     #include <sys/ipc.h>
2106     #include <sys/shm.h>], [
2107     struct shmid_ds shmseg;      
2108     key_t x = shmseg.shm_perm.__key;],
2109     AC_DEFINE(IPC_PERM_KEY, [__key], [Has the key field in ipc_perm])
2110     ipc_key=yes
2111   )
2114 AC_CACHE_CHECK([for finite], ac_cv_finite,
2115  [AC_TRY_COMPILE([
2116    #include <math.h>
2117    #ifdef HAVE_IEEEFP_H
2118    #include <ieeefp.h>
2119    #endif],
2120  [double x; int y; y = finite(x);],
2121  ac_cv_finite=yes,
2122  ac_cv_finite=no
2124 if test x"$ac_cv_finite" = x"yes"; then
2125   AC_SEARCH_LIBS(finite, m,
2126     [AC_DEFINE(HAVE_FINITE, [1], [Has finite])]
2127   )
2130 AC_LANG_PUSH(C++)
2131 AC_CACHE_CHECK([for isfinite], ac_cv_isfinite,
2132  [AC_TRY_COMPILE([#include <cmath>],
2133  [using namespace std; double x; int y; y = isfinite(x);],
2134  ac_cv_isfinite=yes,
2135  ac_cv_isfinite=no
2137 AC_LANG_POP(C++)
2138 if test x"$ac_cv_isfinite" = x"yes"; then
2139   dnl Don't give up if isfinite is not found in -lm
2140   dnl isfinite is defined as a macro in C99.
2141   AC_SEARCH_LIBS(isfinite, m)
2142   AC_DEFINE(HAVE_ISFINITE, [1], [Has isfinite])
2145 AC_LANG_PUSH(C++)
2146 AC_CACHE_CHECK([whether $CXX implements __PRETTY_FUNCTION__], ac_cv_implements___PRETTY_FUNCTION__, [
2147   AC_TRY_LINK([#include <cstdio>
2148 ], 
2149     [ std::printf("%s", __PRETTY_FUNCTION__); ], 
2150     [ ac_cv_implements___PRETTY_FUNCTION__="yes" ],
2151     [ ac_cv_implements___PRETTY_FUNCTION__="no" ]
2152   )
2154 if test "x$ac_cv_implements___PRETTY_FUNCTION__" = "xyes" ; then
2155   AC_DEFINE(HAVE_PRETTY_FUNCTION, [1], [__PRETTY_FUNCTION__ is defined])
2158 AC_CACHE_CHECK([whether $CXX implements __FUNCTION__], ac_cv_implements___FUNCTION__, [
2159   AC_TRY_LINK([#include <cstdio>
2160 ], 
2161     [ std::printf("%s", __FUNCTION__); ], 
2162     [ ac_cv_implements___FUNCTION__="yes" ],
2163     [ ac_cv_implements___FUNCTION__="no" ]
2164   )
2166 if test "x$ac_cv_implements___FUNCTION__" = "xyes" ; then
2167   AC_DEFINE(HAVE_FUNCTION, [1], [__FUNCTION__ is defined])
2170 AC_CACHE_CHECK([whether $CXX implements __func__], ac_cv_implements___func__, [
2171   AC_TRY_LINK([#include <cstdio>
2172 ], 
2173     [ std::printf("%s", __func__); ], 
2174     [ ac_cv_implements___func__="yes" ],
2175     [ ac_cv_implements___func__="no" ]
2176   )
2178 if test "x$ac_cv_implements___func__" = "xyes" ; then
2179   AC_DEFINE(HAVE_func, [1], [__func__ is defined])
2181 AC_LANG_POP(C++)
2182 AC_REPLACE_FUNCS(getopt)
2184 dnl Date portability stuff, used in server/asobj/Date.cpp
2185 AC_CHECK_FUNCS(gettimeofday)
2186 AC_CHECK_FUNCS(ftime)
2187 AC_CHECK_FUNCS(tzset)
2188 AC_CHECK_FUNCS(localtime_r)
2190 AC_CACHE_CHECK([whether struct tm has tm_gmtoff], ac_cv_tm_gmtoff, [
2191         AC_TRY_LINK([
2192 /* ctime(1) says "The glibc version of struct tm has additional fields
2193  * defined  when _BSD_SOURCE was set before including <time.h>"
2194  * In practice, you do not need to define it yourself (tested on glibc-2.2.1 
2195  * and 2.3.6) but if you *do* define it yourself, it makes *all* functions
2196  * favour BSD-like behaviour over of GNU/POSIX, which seems dangerous.
2197  */
2198 // #define _BSD_SOURCE 1
2199 #include <time.h>
2200 ], 
2201                 [ struct tm tm; long l = tm.tm_gmtoff; ], 
2202                 [ ac_cv_tm_gmtoff="yes" ],
2203                 [ ac_cv_tm_gmtoff="no" ]
2204         )
2206 if test "x$ac_cv_tm_gmtoff" = "xyes" ; then
2207         AC_DEFINE(HAVE_TM_GMTOFF, [1], [struct tm has member tm_gmtoff])
2210 AC_CACHE_CHECK([whether timezone is a long], ac_cv_long_timezone, [
2211         AC_TRY_LINK([
2212 /* On Linux/glibc, tzset(3) says "extern long timezone;" (seconds West of GMT)
2213  * but on BSD char *timezone(int,int) is a function returning a string name.
2214  * The BSD function timegm() may be the equivalent, but this should
2215  * not be necessary because on BSD the code should use tm.tm_gmtoff instead
2216  * (use of long timezone is a fallback strategy for when tm_gmtoff exists not).
2217  */
2218 #include <stdio.h>
2219 #include <time.h>
2220 extern long timezone;
2221   ], 
2222     [ printf("%ld", timezone); ], 
2223     [ ac_cv_long_timezone="yes" ],
2224     [ ac_cv_long_timezone="no" ]
2225    )
2227 if test "x$ac_cv_long_timezone" = "xyes" ; then
2228   AC_DEFINE(HAVE_LONG_TIMEZONE, [1], [extern timezone is a long integer, not a function])
2231 AC_CHECK_FUNCS(sysconf)
2232 AC_CHECK_FUNCS(shmget shmat shmdt mmap)
2233 AC_CHECK_FUNCS(scandir)         dnl supported by BSD and Linux, but you never know...
2234 AC_CHECK_LIB(rt, clock_gettime)
2235 AC_CHECK_FUNC(clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Has clock_gettime()] ))
2236 dnl Look for Win32 networking stuff
2237 AC_CHECK_HEADERS(winsock.h)
2238 AC_CHECK_HEADERS(winsock2.h)
2240 GNASH_PKG_FIND(nspr, [nspr.h], [Netscape Portable Runtime (NSPR)], PR_Init)
2242 AC_PATH_TOOL(WINDRES, [windres])
2243 AC_SUBST(WINDRES)
2245 GNASH_PKG_FIND(z, [zlib.h], [zlib compression library], compress)
2246 GNASH_PKG_FIND(jpeg, [jpeglib.h], [jpeg images], jpeg_mem_init)
2247 GNASH_PKG_FIND(png, [png.h], [png images], png_info_init)
2248 GNASH_PKG_FIND(gif, [gif_lib.h], [gif images], DGifOpen)
2249 if test x"${GIF_LIBS}" = x ; then
2250  GNASH_PKG_FIND(ungif, [gif_lib.h], [gif images], DGifOpen)
2251  GIF_LIBS=${UNGIF_LIBS}
2252  GIF_CFLAGS=${UNGIF_CFLAGS}
2254 if test x"$testsuite" = x"yes"; then
2255   GNASH_PKG_INCLUDES([dejagnu], [dejagnu.h])
2258 GNASH_PKG_FIND(speex, [speex.h], [speex audio codec], speex_decode_int)
2259 AM_CONDITIONAL(HAVE_SPEEX, [ test x$has_speex = xyes ])
2260 if test x$has_speex = xyes ; then
2261   AC_DEFINE([DECODING_SPEEX], [1], [Speex codec available])
2264 GNASH_PKG_FIND(speexdsp, [speex_resampler.h], [speex DSP utilities], speex_resampler_process_int)
2265 if test x$has_speexdsp = xyes ; then
2266   AC_DEFINE([RESAMPLING_SPEEX], [1], [Speex resampler available])
2269 dnl Find freetype and fontconfig
2270 GNASH_PATH_FREETYPE2
2271 GNASH_PKG_FIND(fontconfig, [fontconfig/fontconfig.h], [fontconfig library], FcFontMatch)
2273 if test x$cross_compiling = xno; then
2274   AC_PATH_MING
2277 if test x"$MING_VERSION_CODE" = x; then
2278  MING_VERSION_CODE=00000000
2281 AM_CONDITIONAL(ENABLE_MING,
2282         [ test x"$MAKESWF" != x -a $MING_VERSION_CODE -gt 00040000 ])
2284 AM_CONDITIONAL(MING_VERSION_0_4,
2285         [ test $MING_VERSION_CODE -ge 00040000  ])
2286 AM_CONDITIONAL(MAKESWF_SUPPORTS_PREBUILT_CLIPS,
2287         [ test $MING_VERSION_CODE -ge 00040002  ])
2288 AM_CONDITIONAL(MING_SUPPORTS_INIT_ACTIONS,
2289         [ test $MING_VERSION_CODE -ge 00040004  ])
2290 AM_CONDITIONAL(MING_SUPPORTS_REPLACE_TAG,
2291         [ test $MING_VERSION_CODE -ge 00040005 ])
2292 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_ADD_CHARACTER,
2293         [ test $MING_VERSION_CODE -ge 00040005 ])
2294 AM_CONDITIONAL(MING_SUPPORTS_STREAMING_SOUND,
2295         [ test $MING_VERSION_CODE -ge 00040006 ])
2296 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_SET_DEPTH,
2297         [ test $MING_VERSION_CODE -ge 00040006 ])
2298 AM_CONDITIONAL(MING_VERSION_0_4_3,
2299         [ test $MING_VERSION_CODE -ge 00040300 ])
2300 AM_CONDITIONAL(MING_VERSION_0_4_4,
2301         [ test $MING_VERSION_CODE -ge 00040400 ])
2303 if test x$cross_compiling = xno; then
2304     AC_ARG_WITH([swfdec_testsuite],
2305         AC_HELP_STRING([--with-swfdec-testsuite],
2306             [directory where swfdec testsuite (the 'test' dir) is]),
2307         if test x"${withval}" = xyes; then
2308             dir=`dirname $0`
2309             dir=`cd ${dir} && pwd`
2310             withval="${dir}/testsuite/swfdec/src/test"
2311         fi
2312         SWFDEC_TESTSUITE=${withval}
2313     )
2314     AC_SUBST(SWFDEC_TESTSUITE)
2316 AM_CONDITIONAL(ENABLE_SWFDEC_TESTSUITE, [ test x"$SWFDEC_TESTSUITE" != x ])
2318 if test x$cross_compiling = xno; then
2319   AC_ARG_ENABLE([http_testsuite],
2320       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2321           AC_HELP_STRING([--enable-http-testsuite=<baseurl>],
2322                   [Enable http based testsuite (default url is http://www.gnashdev.org/testcases)]),
2323               [case "${enableval}" in
2324              no) HTTP_TESTSUITE="" ;;
2325             yes) HTTP_TESTSUITE="http://www.gnashdev.org/testcases" ;;
2326               *) HTTP_TESTSUITE="${enableval}";;
2327            esac])
2328   AC_SUBST(HTTP_TESTSUITE)
2330 AM_CONDITIONAL(ENABLE_HTTP_TESTSUITE, [ test x"$HTTP_TESTSUITE" != x ])
2332 if test x$cross_compiling = xno; then
2333   AC_ARG_ENABLE([red5_testing],
2334       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2335           AC_HELP_STRING([--enable-red5-testing=<host>],
2336                   [Enable red5 based testing (default host is www.gnashdev.org)]),
2337               [case "${enableval}" in
2338              no) RED5_HOST="" ;;
2339             yes) RED5_HOST="www.gnashdev.org" ;;
2340               *) RED5_HOST="${enableval}";;
2341            esac])
2342   AC_SUBST(RED5_HOST)
2344 AM_CONDITIONAL(ENABLE_RED5_TESTING, [ test x"$RED5_HOST" != x ])
2346 if test x$cross_compiling = xno; then
2347   AC_ARG_ENABLE([rtmpy_testing],
2348       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2349           AC_HELP_STRING([--enable-rtmpy-testing=<host>],
2350                   [Enable rtmpy based testing (default host is www.gnashdev.org)]),
2351               [case "${enableval}" in
2352              no) RTMPY_HOST="" ;;
2353             yes) RTMPY_HOST="www.gnashdev.org" ;;
2354               *) RTMPY_HOST="${enableval}";;
2355            esac])
2356   AC_SUBST(RTMPY_HOST)
2358 AM_CONDITIONAL(ENABLE_RTMPY_TESTING, [ test x"$RTMPY_HOST" != x ])
2360 dnl The name might differ between systems.
2361 if test x"$testsuite" = x"yes"; then
2362 AC_PATH_PROGS(NETCAT, [nc netcat])
2363 AC_PATH_PROG(WGET, wget)
2365 AM_CONDITIONAL(HAS_NETCAT, [ test x"$NETCAT" != x ])
2366 AM_CONDITIONAL(HAS_WGET, [ test x"$WGET" != x ])
2369 dnl See if we can use the swfmill, mtasc, swfc and haxe based testsuites 
2371 if test x"$testsuite" = x"yes" -a x$cross_compiling = xno; then
2372   AC_PATH_PROG(AS3COMPILE, as3compile)
2373   AC_PATH_PROG(SWFC, swfc)
2374   AC_PATH_SWFMILL
2375   AC_PATH_MTASC
2376   AC_PATH_HAXE
2379 AM_CONDITIONAL(ENABLE_SWFMILL, [ test x"$SWFMILL" != x ])
2380 AM_CONDITIONAL(SWFMILL_AS3_SUPPORT,
2381         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2383 dnl SWFMILL versions older than 0.3 didn't get function2 flags order correctly
2384 AM_CONDITIONAL(SWFMILL_FUNCTION2_FLAGS_ORDER_CORRECT,
2385         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2387 AM_CONDITIONAL(ENABLE_AS3COMPILE, [ test x"$AS3COMPILE" != x ])
2388 AM_CONDITIONAL(ENABLE_MTASC, [ test x"$MTASC" != x ])
2389 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2390 AM_CONDITIONAL(ENABLE_SWFC, [ test x"$SWFC" != x ])
2391 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2393 AC_PATH_PROG(DOXYGEN, doxygen)
2394 AM_CONDITIONAL(ENABLE_DOXYGEN, [ test x"$DOXYGEN" != x ])
2396 AM_CONDITIONAL(HAVE_KDE3,    [test x$has_kde3 = xyes])
2397 AM_CONDITIONAL(HAVE_KDE4,    [test x$has_kde4 = xyes])
2398 AM_CONDITIONAL(HAVE_QT3,     [test x$has_qt3 = xyes])
2399 AM_CONDITIONAL(HAVE_QT4,     [test x$has_qt4 = xyes])
2401 AM_CONDITIONAL([QT_X11],     [test "$platform" = "X11"])
2402 AM_CONDITIONAL([QTOPIA],     [test "$platform" = "Qtopia"])
2403 AM_CONDITIONAL([QT_OSX],     [test "$platform" = "OSX"])
2404 AM_CONDITIONAL([QT_OS9],     [test "$platform" = "OS9"])
2405 AM_CONDITIONAL([QT_WIN32],   [test "$platform" = "Win32"])
2407 dnl Need GLIB for both GTK and GST
2408 if test x"${build_gtk}" = xyes -o x"${build_media_gst}" = xyes; then
2409   GNASH_PATH_GLIB
2412 AM_CONDITIONAL(HAVE_GLIB, [ test x"${has_glib}" = xyes ])
2414 if test x$npapi = xyes; then
2415   if ! test x$build_gtk = xyes -o x$build_qt4 = xyes; then
2416     AC_MSG_WARN(["Enabled NPAPI plugin, but it's not supported by the selected GUI"])
2417   fi
2420 if test x$windows = xyes -a x$npapi = xyes; then
2421   if test "x$NSPR_CFLAGS" = x -a "x$NSPR_LIBS" = x; then
2422     AC_MSG_ERROR(["On Win32, NPAPI plugin requires NSPR."])
2423   fi
2424   if test "x$WINDRES" = x; then
2425     AC_MSG_ERROR(["On Win32, NPAPI plugin requires windres."])
2426   fi
2429 dnl Need GLIB for NPAPI plugin
2430 if test x$npapi = xyes; then
2431   GNASH_PATH_GLIB
2434 dnl if kde isn't installed, even if it's specified, don't try to build
2435 dnl the KPARTS plugin, which is KDE based.
2436 if test x$has_kde3 = xno -a x$build_kparts3 = xyes; then
2437   build_kparts3=no
2438   AC_MSG_WARN(["Disabling KPARTS 3.x plugin, no KDE development found"])
2441 if test x$build_kde3 = xno -a x$build_kparts3 = xyes; then
2442   AC_MSG_WARN(["Enabled KPARTS 3.x plugin, but you aren't building a KDE based GUI!"])
2444 if test x$has_kde4 = xno -a x$build_kparts4 = xyes; then
2445   build_kparts4=no
2446   AC_MSG_WARN(["Disabling KPARTS 4.x plugin, no KDE 4.x development found"])
2449 if test x$build_qt4 = xno -a x$kparts4 = xyes; then
2450   AC_MSG_WARN(["Enabled KPARTS 4.x plugin, but you aren't building a KDE 4.x based GUI!"])
2453 AM_CONDITIONAL(BUILD_QTOPIA3_GUI,  [ test x$build_qtopia3 = xyes ])
2454 AM_CONDITIONAL(BUILD_QTOPIA4_GUI,  [ test x$build_qtopia4 = xyes ])
2456 AM_CONDITIONAL(BUILD_KDE3_GUI,     [ test x$build_kde3 = xyes ])
2457 AM_CONDITIONAL(BUILD_QT4_GUI,     [ test x$build_qt4 = xyes ])
2459 AM_CONDITIONAL(BUILD_GTK_GUI,      [ test x$build_gtk = xyes ])
2460 AM_CONDITIONAL(BUILD_FLTK_GUI,     [ test x$build_fltk = xyes ])
2461 AM_CONDITIONAL(BUILD_SDL_GUI,      [ test x$build_sdl = xyes ])
2462 AM_CONDITIONAL(BUILD_FB_GUI,       [ test x$build_fb = xyes ])
2463 AM_CONDITIONAL(BUILD_AQUA_GUI,     [ test x$build_aqua = xyes ])
2464 AM_CONDITIONAL(BUILD_DUMP_GUI,     [ test x$build_dump = xyes ])
2465 AM_CONDITIONAL(BUILD_AMIGAOS4_GUI, [ test x$build_aos4 = xyes ])
2466 AM_CONDITIONAL(BUILD_HAIKU_GUI,    [ test x$build_haiku = xyes ])
2468 # plugin building flags
2469 AM_CONDITIONAL(NPAPI,   [test x"${npapi}" = xyes])
2470 AM_CONDITIONAL(KPARTS3, [test x"${build_kparts3}" = xyes])
2471 AM_CONDITIONAL(KPARTS4, [test x"${build_kparts4}" = xyes])
2473 if test x"${build_gles1}"; then
2474   GNASH_PATH_GLES
2477 dnl only Linux supports /dev/fb0
2478 if test x"${build_rawfb_device}" = xyes -a x"${linux}" = xyes; then
2479    AC_DEFINE([BUILD_RAWFB_DEVICE], [1], [Use raw Framebuffer device support])
2482 if test x"${build_directfb_device}" = xyes; then
2483    GNASH_PKG_FIND(directfb, [directfb.h], [DirectFB render library], DirectFBCreate)
2484    AC_DEFINE([BUILD_DIRECTFB_DEVICE], [1], [Use DirectFB device support])
2487 AM_CONDITIONAL(BUILD_VAAPI_DEVICE, [test x"${use_libva}" = xyes])
2488 AM_CONDITIONAL(BUILD_EGL_DEVICE, [test x"${build_egl_device}" = xyes])
2489 AM_CONDITIONAL(BUILD_DIRECTFB_DEVICE, [ test x${build_directfb_device} = xyes])
2490 AM_CONDITIONAL(BUILD_RAWFB_DEVICE, [ test x${build_rawfb_device} = xyes])
2491 AM_CONDITIONAL(BUILD_X11_DEVICE, [test x${build_x11_device} = xyes])
2493 if test x"${build_gtk}" = xyes; then
2494   AC_ARG_ENABLE(ghelp,
2495     AC_HELP_STRING([--enable-ghelp], [Enable support for the GNOME help system]),
2496     [case "${enableval}" in
2497       yes) ghelp=yes ;;
2498       no)  ghelp=no ;;
2499       *)   AC_MSG_ERROR([bad value ${enableval} for enable-ghelp option]) ;;
2500     esac], ghelp=no
2501   )
2503   if test x"${ghelp}" = x"yes" ; then
2504     AC_PATH_PROG(SCROLLKEEPER, scrollkeeper-config, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2505     AC_PATH_PROG(SCROLLUPDATE, scrollkeeper-update, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2506     AC_PATH_PROG(SCROLLINSTALL, scrollkeeper-preinstall, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2508     if test x"$SCROLLKEEPER" = x -o x"$SCROLLUPDATE" = x -o x"$SCROLLINSTALL" = x ; then
2509       ghelp=no
2510       AC_MSG_WARN([You need to install scrollkeeper for gnome help])
2511     fi
2512   fi
2514 AM_CONDITIONAL(GHELP, [test x${ghelp} = xyes])
2516 if test x${build_fltk} = xyes; then
2517   GNASH_PKG_FIND(Xft, [Xft.h], [xft library], XftGlyphRender)
2520 dnl Some systems have a pervered set of dependencies.
2521 dnl Fedora Core 6 appears to have a dependency on expat for fontconfig.
2522 dnl We only need the library, but this is the easy wind to find it.
2523 GNASH_PKG_FIND(expat, [expat.h], [Expat library], XML_ErrorString)
2525 dnl these conditionals were moved out of kde.m4
2526 AM_CONDITIONAL(HAS_KDE3, [test x$has_kde3 = xyes])
2527 # used to disable x11-specific stuff on special platforms
2528 AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
2529 AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
2530 AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
2532 AM_CONDITIONAL(HAVE_GLEXT, [test x$glext = xyes])
2534 dnl We don't have GTKGLExt, so default to SDL, and don't build the Firefox plugin
2535 if test x$glext = xno -a x$build_ogl = xyes; then
2536   if test x$gtk2 = xyes -a x$build_gtk = xyes; then
2537     AC_ERROR([You have GTK installed, but not GtkGLExt. You need GtkGLExt to use the OpenGL renderer. Attempting to build SDL version])
2538   fi
2539   gui=sdl
2540   npapi=no
2541   AC_MSG_WARN([GTK2 specified for the GUI, but GtkGlExt is not present. Trying SDL instead.])
2544 missing_codecs=""
2545 if test x"$build_media_gst" = "xyes"; then
2546   AC_PATH_PROG(GST_INSPECT, gst-inspect, ,[${pathlist}])
2547   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2548     AC_PATH_PROG(GST_INSPECT, gst-inspect-0.10, ,[${pathlist}])
2549   fi
2550   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2551     dnl FIXME: there may be multiple acceptable plugins that are acceptable for
2552     dnl our use. For example, mad or FFmpeg will play mp3.
2553     codecs="ffdec_flv ffdec_flashsv ffdec_vp6f ffdec_flashsv mad vorbisdec ffdec_vp6"
2554     for i in $codecs; do
2555        hits="`$GST_INSPECT $i | grep -c 'Long name'`"
2556        if test $hits -eq 0; then
2557          missing_codecs="$missing_codecs $i"
2558          AC_MSG_WARN([Missing codec: $i])
2559        fi
2560     done
2561   fi
2562   GNASH_PKG_FIND(gstreamer_plugins_base, [gst/interfaces/probeprobe.h], [gstreamer interfaces library], gst_property_probe_probe_and_get_values_name, [0.10])
2563   GNASH_PKG_FIND(gstreamer_app, [gst/app/gstappsink.h], [gstreamer app library], call_gmon_start, [0.10])
2564   GNASH_PKG_FIND(gstreamer, [gst/gst.h], [gstreamer library], gst_init, [0.10])
2565   dnl if cross compiling, we're usually not going to be able to pop up
2566   dnl the codec installer to download the package to install, so disable
2567   dnl it if cross compiling with gstreamer support.
2568   if test x$cross_compiling = xno; then
2569     GNASH_PKG_FIND(gstreamer_pbutils, [gst/pbutils/install-plugins.h], [gstreamer PB Utils library], gst_install_plugins_supported, [0.10])
2570   fi
2571   dnl when cross compiling Gstreamer, not all supplied SDKs include all the
2572   dnl development libraries since most devices don't need to support plugin
2573   dnl development, only the runtime. In these caes we often have the header
2574   dnl files but not the libraries.
2575   if test x"${has_gstreamer_plugins_base}" = xyes; then
2576     GSTREAMER_LIBS="-lgstinterfaces-0.10 $GSTREAMER_LIBS"
2577     AC_DEFINE(HAS_GSTREAMER_PLUGINS_BASE, [1], [Has the Gstreamer Plugin Dev package installed])
2578   fi
2581 AM_CONDITIONAL(HAVE_CAIRO, [true])
2582 AM_CONDITIONAL(HAVE_OPENGL, [true])
2584 AM_CONDITIONAL(USE_SOUND_SDL, test x$build_sound_sdl = xyes)
2585 AM_CONDITIONAL(USE_SOUND_AHI, test x$build_sound_ahi = xyes)
2586 AM_CONDITIONAL(USE_SOUND_MKIT, test x$build_sound_mkit = xyes)
2587 AM_CONDITIONAL(USE_FFMPEG_ENGINE, test x"${build_media_ffmpeg}" = x"yes")
2588 AM_CONDITIONAL(USE_GST_ENGINE, test x"${build_media_gst}" = x"yes")
2589 AM_CONDITIONAL(HAVE_OPENGL, test x"${OPENGL_LIBS}" != x)
2590 dnl for now the Haiku media handler is experimental
2591 AM_CONDITIONAL(USE_HAIKU_ENGINE, test x"$build_media_haiku" = xyes)
2593 if test x"${build_media_ffmpeg}" = x"yes"; then
2594   AC_DEFINE([ENABLE_FFMPEG_MEDIA],  [1], [Use FFmpeg for media decoding])
2597 if test x"${build_media_gst}" = x"yes"; then
2598   AC_DEFINE([ENABLE_GST_MEDIA],  [1], [Use gstreamer for media decoding])
2601 if test x"${build_media_haiku}" = x"yes"; then
2602   AC_DEFINE([ENABLE_HAIKU_MEDIA],  [1], [Use haiku for media decoding])
2605 if test x$build_sound_mkit = xyes; then
2606   if test x"${haiku}" != xyes; then
2607     AC_MSG_ERROR([Media Kit sound handling is supported only under Haiku]);
2608   else
2609     AC_DEFINE([SOUND_MKIT],  [1], [Use Haiku Media Kit for sound handling])
2610   fi
2613 if test x"${build_sound_sdl}" = xyes; then
2614   AC_DEFINE([SOUND_SDL],  [1], [Use SDL for sound handling])
2617 if test x"${build_sound_ahi}" = xyes; then
2618   if test x"$amigaos4" != xyes; then
2619     AC_MSG_ERROR([AHI sound handling is supported only under AmigaOS]);
2620   else
2621     AC_DEFINE([SOUND_AHI],  [1], [Use AmigaOS AHI for sound handling])
2622   fi
2625 if test x$build_fltk = xyes; then
2626   GNASH_PKG_FIND(fltk2, [fltk/FL_API.h], [Fast Light Toolkit], fl_window_flush)
2627   if test x"${has_fltk2}" = xyes; then
2628     AC_CHECK_LIB(Xi, XInput_find_display,
2629       [AC_SUBST(FLTK2_LIBS, "$FLTK2_LIBS -lXi")])
2630   fi
2633 AM_CONDITIONAL(HAVE_FLTK2, [ test x$has_fltk2 = xyes ])
2634 AM_CONDITIONAL(HAS_XFT, [ test x$has_xft = xyes ])
2636 GNASH_DOCBOOK
2637 AM_CONDITIONAL(ENABLE_INFO, test x${INSTALL_INFO} != x)
2638 AM_CONDITIONAL(DOCBOOK, test x$docbook = xyes)
2639 AM_CONDITIONAL(ENABLE_TEXI, [ test x"$DB2X_TEXI" != x -o x"$DB2X_TEXIXML" != x ])
2640 AM_CONDITIONAL(ENABLE_PDF, [ test x"$DB2X_PDF" ])
2641 AM_CONDITIONAL(ENABLE_HTML, [ test x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2642 AM_CONDITIONAL(ENABLE_FOP, [ test x"$FOP" != x -a x"$docbook_styles" != x ])
2643 AM_CONDITIONAL(ENABLE_XMLTEX, [ test x"$PDFXMLTEX" != x -a x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2644 AM_CONDITIONAL(ENABLE_MAN, [ test x"$DB2X_MAN" != x -o x"$DB2X_MANXML" != x ])
2645 AM_CONDITIONAL(HAVE_AGG, [test x"${AGG_LIBS}" != x])
2647 GNASH_PATH_CURL
2649 dnl Define winsock if we're on windows. We could do something complicated,
2650 dnl but since AC_EXEEXT does it for us, we'll do this the easy way.
2651 if test x"$EXEEXT" = "exe"; then
2652   AC_DEFINE(HAVE_WINSOCK,1,[This is defined is we are on Win32])
2655 dnl ****************************************
2656 dnl *** Check for ELF visibility support ***
2657 dnl ****************************************
2659 AC_ARG_ENABLE([visibility],
2660   AC_HELP_STRING([--enable-visibility], [Use ELF visibility attributes]), [], [enable_visibility=no])
2662 if test x"$enable_visibility" != x"no"; then
2663   dnl Check whether the compiler supports the visibility attribute
2664   save_CFLAGS="$CFLAGS"
2665   CFLAGS="$CFLAGS -Wall -Werror"
2666   AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
2667   AC_COMPILE_IFELSE([AC_LANG_SOURCE(
2668     [
2669       void __attribute__ ((visibility("default"))) test_default (void) {}
2670       void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
2671       int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
2672     ])],
2673     [
2674       AC_DEFINE([HAVE_GNUC_VISIBILITY], [1], [Define this for GCC-visibility.])
2675       AC_MSG_RESULT([yes])
2676     ],
2677     [
2678       AC_MSG_RESULT([no])
2679     ]
2680   )
2681   CFLAGS="$save_CFLAGS"
2684 AC_ARG_ENABLE([pch],
2685   AC_HELP_STRING([--enable-pch], [Enable precompiled header support]), [], [enable_pch=no])
2687 AM_CONDITIONAL([ENABLE_PCH], [test x"$enable_pch" != x"no"])
2689 PCH_FLAGS="-include all-includes.h -Winvalid-pch"
2690 AC_SUBST(PCH_FLAGS)
2692 GNASH_PATH_PTHREADS
2694 GNASH_PATH_BOOST
2696 AC_ARG_ENABLE([strict],
2697   AC_HELP_STRING([--enable-strict],[Accept only standards compliant code (GCC only)]),
2698   [case "${enableval}" in
2699     yes) strict=yes ;;
2700     no) strict=no ;;
2701     *) AC_MSG_ERROR([bad value ${enableval} for --enable-strict option]) ;;
2702   esac],
2703   [strict=no]
2706 if test x"$strict" = x"yes" -a x$build_agg = xyes; then
2707    AC_MSG_ERROR([agg renderer will fail with --enable-strict.]);        
2710 # We want warnings, lots of warnings  :-)
2711 # It should be possible to build with -ansi, not with
2712 # -pedantic because of agg.
2714 # -ansi was actually dropped because it hides 'fileno', which
2715 # is used in a few places
2717 if test x"$GCC" = x"yes"; then
2718   CXXFLAGS="$CXXFLAGS \
2719     $CROSS_CXXFLAGS \
2720     -W \
2721     -Wall \
2722     -Wcast-align \
2723     -Wcast-qual \
2724     -Wpointer-arith \
2725     -Wreturn-type \
2726     -Wnon-virtual-dtor \
2727     -Wunused \
2728     "
2729   CFLAGS="$CFLAGS \
2730     $CROSS_CXXFLAGS \
2731     -W \
2732     -Wall \
2733     -Wcast-align \
2734     -Wcast-qual \
2735     -Wpointer-arith \
2736     -Wreturn-type \
2737     -Wmissing-declarations \
2738     -Wmissing-prototypes \
2739     -Wstrict-prototypes \
2740     "
2741   if test x"$strict" = x"yes"; then
2742     CXXFLAGS="$CXXFLAGS \
2743       -Wextra \   
2744       -pedantic \
2745       -Wno-long-long \
2746       "
2748     CFLAGS="$CFLAGS \
2749       -pedantic \
2750       -Wno-long-long \
2751       -ansi \
2752       "
2753   fi
2756 AC_ARG_ENABLE([cassert],
2757   AC_HELP_STRING([--disable-cassert],[Disable assertion checking]),
2758   [case "${enableval}" in
2759     yes) cassert=yes ;;
2760     no) cassert=no ;;
2761     *) AC_MSG_ERROR([bad value ${enableval} for --enable-cassert option]) ;;
2762   esac],
2763   [cassert=yes]
2766 if test x"$cassert" = x"no"; then
2767     CXXFLAGS="$CXXFLAGS \
2768       -DNDEBUG \
2769       "
2770     CFLAGS="$CFLAGS \
2771       -DNDEBUG \
2772       "
2775 dnl /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
2776 AC_DEFUN([CHECK_VISIBILITY_GCC_BUG],
2777   [
2778     AC_CACHE_CHECK([if -fvisibility-inlines-hidden is broken], ac_cv_gcc_visibility_bug, [
2779         AC_LANG_PUSH(C++)
2780         save_CXXFLAGS=$CXXFLAGS
2781         save_LDFLAGS=$LDFLAGS
2782         CXXFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
2783         LDFLAGS="$LDFLAGS -shared -fPIC"
2785         AC_TRY_LINK(
2786         [          
2787           template<typename CharT>
2788           struct VisTest
2789           {
2790             inline VisTest ();
2791           };
2792           template<typename CharT>
2793           inline VisTest<CharT>::VisTest()
2794         {}
2795         extern template class VisTest<char>;  // It works if we drop that line
2796         int some_function( int do_something ) __attribute__((visibility("default")));
2797         int some_function( int )
2798           {
2799             VisTest<char> a;
2800             return 0;
2801           }
2802         ], [],
2803         ac_cv_gcc_visibility_bug=no, ac_cv_gcc_visibility_bug=yes)
2805         CXXFLAGS=$save_CXXFLAGS
2806         LDFLAGS=$save_LDFLAGS
2807         AC_LANG_POP(C++)
2808       ]
2809     )
2810     if test x$ac_cv_gcc_visibility_bug = xno; then
2811       CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
2812     fi
2813   ]
2816 CHECK_VISIBILITY_GCC_BUG
2818 if test x$ac_cv_gcc_visibility_bug = xno; then
2819   AC_LANG_PUSH(C++)
2820   AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
2821   save_CXXFLAGS=$CXXFLAGS
2822   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2823   AC_LINK_IFELSE([AC_LANG_PROGRAM()], 
2824                  [ac_cv_gcc_visibility=yes;
2825                   AC_MSG_RESULT([yes])],
2826                  [ac_cv_gcc_visibility=no;
2827                   AC_MSG_RESULT([no])]);
2828   CXXFLAGS="$save_CXXFLAGS"
2829   AC_LANG_POP(C++)
2833 AM_CONDITIONAL(VISIBILITY_WORKS, test x"$ac_cv_gcc_visibility" = xyes)
2835 if test x"$ac_cv_gcc_visibility" = xyes -a x"$enable_visibility" != xno; then
2836   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2839 dnl Define convenience constants so Gnash can print out the
2840 dnl default configuration of the build.
2841 RENDERER_CONFIG="${renderer_list}"
2842 RENDERER_LIBS=
2843 for rend in `echo "${add_renderer}" | tr ',' ' '`; do
2844         RENDERER_LIBS="${RENDERER_LIBS} \$(top_builddir)/librender/libgnash${rend}.la"
2845 done
2846 AC_SUBST(RENDERER_LIBS)
2847 AC_SUBST(RENDERER_CONFIG)
2849 HWACCEL_CONFIG="${device_list}"
2850 AC_SUBST(HWACCEL_CONFIG)
2852 dnl check for missing libraries and disable them.
2853 if test x"$BOOST_LIBS" != x; then
2854   if test x"${cygnal_missing_libs}" != x; then
2855     for i in ${cygnal_missing_libs}; do
2856       if test $i = serialization; then
2857         AC_DEFINE([BOOST_MULTI_INDEX_DISABLE_SERIALIZATION], ["1"], [if the library is missing, don't use it.])
2858       fi
2859     done
2860   fi
2863 CYGNAL_PATHS
2865 SUPPORTED_GUIS=
2866 if test x$build_qtopia3 = xyes; then
2867   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia3"
2869 if test x$build_qtopia4 = xyes; then
2870   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia4"
2872 if test x$build_fb = xyes; then
2873   SUPPORTED_GUIS="${SUPPORTED_GUIS},fb"
2875 if test x$build_fltk = xyes; then
2876   SUPPORTED_GUIS="${SUPPORTED_GUIS},fltk"
2878 if test x$build_kde3 = xyes; then
2879   SUPPORTED_GUIS="${SUPPORTED_GUIS},kde3"
2881 if test x$build_qt4 = xyes; then
2882   SUPPORTED_GUIS="${SUPPORTED_GUIS},qt4"
2884 if test x$build_gtk = xyes; then
2885   SUPPORTED_GUIS="${SUPPORTED_GUIS},gtk"
2887 if test x$build_sdl = xyes; then
2888   SUPPORTED_GUIS="${SUPPORTED_GUIS},sdl"
2890 if test x$build_aqua = xyes; then
2891   SUPPORTED_GUIS="${SUPPORTED_GUIS},aqua"
2893 if test x$build_dump = xyes; then
2894   SUPPORTED_GUIS="${SUPPORTED_GUIS},dump"
2896 if test x$build_aos4 = xyes; then
2897   SUPPORTED_GUIS="${SUPPORTED_GUIS},aos4"
2899 if test x$build_haiku = xyes; then
2900   SUPPORTED_GUIS="${SUPPORTED_GUIS},haiku"
2902 SUPPORTED_GUIS="`echo ${SUPPORTED_GUIS} | sed 's/,//'`" # Strip leading comma
2903 AC_SUBST(SUPPORTED_GUIS)
2905 AC_CONFIG_LINKS(cygnal/testsuite/cygnal.all/cygnalrc:cygnal/testsuite/cygnal.all/cygnalrc.in)
2906 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc:testsuite/libbase.all/gnashrc.in)
2907 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc-local:testsuite/libbase.all/gnashrc-local.in)
2909 AC_CONFIG_FILES(
2910 gnash.pc:gnash.pc.in
2911 desktop/gnash-gtk-launcher:desktop/gnash-gtk-launcher.in
2912 desktop/gnash-qt-launcher:desktop/gnash-qt-launcher.in
2915 AC_OUTPUT(Makefile
2916 desktop/Makefile
2917 po/Makefile
2918 libmedia/Makefile
2919 libsound/Makefile
2920 libbase/Makefile
2921 libcore/Makefile
2922 libcore/vm/Makefile
2923 libcore/parser/Makefile
2924 librender/Makefile
2925 utilities/Makefile
2926 doc/Makefile
2927 doc/C/Makefile
2928 doc/Doxyfile
2929 testsuite/Makefile
2930 testsuite/media/Makefile
2931 testsuite/libbase.all/Makefile
2932 testsuite/as3compile.all/Makefile
2933 testsuite/actionscript.all/Makefile
2934 testsuite/samples/Makefile
2935 testsuite/swfdec/Makefile
2936 testsuite/misc-ming.all/Makefile
2937 testsuite/misc-ming.all/action_order/Makefile
2938 testsuite/misc-ming.all/sound/Makefile
2939 testsuite/misc-ming.all/displaylist_depths/Makefile
2940 testsuite/misc-ming.all/init_action/Makefile
2941 testsuite/misc-ming.all/loop/Makefile
2942 testsuite/misc-ming.all/loading/Makefile
2943 testsuite/misc-ming.all/register_class/Makefile
2944 testsuite/misc-mtasc.all/Makefile
2945 testsuite/misc-haxe.all/Makefile
2946 testsuite/misc-haxe.all/classes.all/Makefile
2947 testsuite/misc-swfmill.all/Makefile
2948 testsuite/misc-swfmill.all/trace-as2/Makefile
2949 testsuite/misc-swfmill.all/trace-as3/Makefile
2950 testsuite/misc-swfc.all/Makefile
2951 testsuite/network.all/Makefile
2952 testsuite/movies.all/Makefile
2953 testsuite/libcore.all/Makefile
2954 testsuite/libmedia.all/Makefile
2955 gui/Makefile
2956 gui/Info.plist
2957 gui/pythonmod/Makefile
2958 extensions/Makefile
2959 extensions/dejagnu/Makefile
2960 extensions/mysql/Makefile
2961 extensions/fileio/Makefile
2962 extensions/gtk2/Makefile
2963 extensions/lirc/Makefile
2964 extensions/dbus/Makefile
2965 plugin/Makefile
2966 plugin/npapi/Makefile
2967 plugin/klash/Makefile
2968 plugin/klash4/Makefile
2969 plugin/win32/Makefile
2970 plugin/aos4/Makefile
2971 libdevice/Makefile
2972 cygnal/Makefile
2973 cygnal/libnet/Makefile
2974 cygnal/libamf/Makefile
2975 cygnal/cgi-bin/Makefile
2976 cygnal/cgi-bin/echo/Makefile
2977 cygnal/cgi-bin/oflaDemo/Makefile
2978 cygnal/cgi-bin/fitcDemo/Makefile
2979 cygnal/testsuite/Makefile
2980 cygnal/testsuite/libamf.all/Makefile
2981 cygnal/testsuite/libnet.all/Makefile
2982 cygnal/testsuite/cygnal.all/Makefile
2986 ########################## Final report begins... ############################
2989 dnl Create temporary directory in a secure way
2990 tmp=`mktemp -d ${TMPDIR=/tmp}/gnash-configure-XXXXXX`
2991 if test \! -n "$tmp" || test \! -d "$tmp"; then
2992   tmp=`(umask 077 && mkdir -d ${TMPDIR=/tmp}/gnash-configure-${RANDOM}-$$) 2>/dev/null`
2994 cerr="${tmp}/errors"
2995 cwarn="${tmp}/warnings"
2996 crec="${tmp}/recommended"
2997 deb_err="${tmp}/deb_err"
2998 deb_war="${tmp}/deb_war"
2999 deb_rec="${tmp}/deb_rec"
3000 rpm_err="${tmp}/rpm_err"
3001 rpm_war="${tmp}/rpm_war"
3002 rpm_rec="${tmp}/rpm_rec"
3003 yast_err="${tmp}/yast_err"
3004 yast_war="${tmp}/yast_war"
3005 yast_rec="${tmp}/yast_rec"
3006 echo ""
3008 #trap 'rm cerr' 0 # trap isn't a good idea, might override other traps
3009 exec 3> $cerr 
3010 exec 4> $cwarn
3011 exec 5> $crec
3013 for F in "$deb_err" "$deb_war" "$deb_rec" "$rpm_err" "$rpm_war" "$rpm_rec" "$yast_err" "$yast_war" "$yast_rec"; do
3014   touch "$F";
3015 done
3017 pkg_out_fd=
3018 deb_dest=
3019 rpm_dest=
3020 yast_dest=
3022 dnl These macros should be portable as I checked most things used are in
3023 dnl POSIX-2008, GNU CoreUtils, and shipped in MinGW. Old unices? No clue.
3024 dnl In any case, they are hardly relevant on non-GNU systems.
3026 dnl Beware, here comes some long scary shell commands.
3028 AC_DEFUN([PKG_ERR],
3030   pkg_out_fd=3
3031   echo "          ERROR: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3032   deb_dest="$deb_err"
3033   rpm_dest="$rpm_err"
3034   yast_dest="$yast_err"
3037 AC_DEFUN([PKG_WAR],
3039   pkg_out_fd=4
3040   echo "        WARNING: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3041   deb_dest="$deb_war"
3042   rpm_dest="$rpm_war"
3043   yast_dest="$yast_war"
3046 AC_DEFUN([PKG_REC],
3048   pkg_out_fd=5
3049   echo "    RECOMMENDED: `echo "$1" | fold -s -w 62 | sed 's/^/                 /' | tr '\n' '#' | cut -b 18- | tr '#' '\n'`" >&$pkg_out_fd
3050   deb_dest="$deb_rec"
3051   rpm_dest="$rpm_rec"
3052   yast_dest="$yast_rec"
3055 AC_DEFUN([PKG_SUGGEST],
3057   echo "`echo "$1" | fold -s -w 62 | sed 's/^/                 /'`" >&$pkg_out_fd
3060 AC_DEFUN([DEB_INSTALL],
3062   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
3063   echo -n " $1" >> "$deb_dest"
3066 AC_DEFUN([DEB_ALTERNATIVE],
3068   echo "                 or maybe     : `echo "apt-get install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3069   echo -n "/$1" >> "$deb_dest"
3072 AC_DEFUN([RPM_INSTALL],
3074   echo "                 or .rpm users: `echo "yum install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3075   echo -n " $1" >> "$rpm_dest"
3078 AC_DEFUN([RPM_ALTERNATIVE],
3080   echo "                 or maybe     : `echo "yum install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3081   echo -n "/$1" >> "$rpm_dest"
3084 AC_DEFUN([YAST_INSTALL],
3086   echo "                 or yast users: `echo "yast install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3087   echo -n " $1" >> "$yast_dest"
3090 AC_DEFUN([YAST_ALTERNATIVE],
3092   echo "                 or maybe     : `echo "yast install $1" | fold -s -w 48 | sed 's/^/                                /' | tr '\n' '#' | cut -b 33- | tr '#' '\n'`" >&$pkg_out_fd
3093   echo -n "/$1" >> "$yast_dest"
3096 AC_DEFUN([PKG_ALTERNATIVE],
3098   echo "`echo "$1" | fold -s -w 62 | sed 's/^/                 /'`" >&$pkg_out_fd
3101 echo "Configurable options are:"
3103 if test x"${pthreads}" = x"yes"; then
3104   echo "        POSIX Threads support enabled (default)"
3105 else
3106   if test x"${build_haiku}" = x"yes"; then
3107      echo "        POSIX Thread support built into C library."
3108   else
3109      echo "        POSIX Thread support disabled."
3110   fi
3113 if test x"${npapi}" = x"yes"; then
3114   echo "        NPAPI plugin enabled (default). Use --disable-npapi to disable."
3115   echo "        NPAPI plugin will be installed in ${FIREFOX_PLUGINS}"
3116 else
3117   echo "        NPAPI plugin disabled."
3120 if test x"${build_kparts3}" = x"yes"; then
3121   echo "        KPARTS 3.x plugin enabled (default). Use --disable-kparts3 to disable"
3122   echo "            KPARTS 3.x plugin will be installed in ${KDE3_PLUGINDIR}"
3123   echo "            KPARTS 3.x service will be installed in ${KDE3_SERVICESDIR}"
3124   echo "            KPARTS 3.x config dir will be in ${KDE3_CONFIGDIR}"
3125   echo "            KPARTS 3.x appsdata will be installed in ${KDE3_APPSDATADIR}"
3126 else
3127   echo "        KPARTS 3.x plugin disabled."
3130 if test x"${build_kparts4}" = x"yes"; then
3131   echo "        KPARTS 4.x plugin enabled (default). Use --disable-kparts4 to disable"
3132   echo "            KPARTS 4.x plugin will be installed in ${KDE4_PLUGINDIR}"
3133   echo "            KPARTS 4.x service will be installed in ${KDE4_SERVICESDIR}"
3134   echo "            KPARTS 4.x config dir will be in ${KDE4_CONFIGDIR}"
3135   echo "            KPARTS 4.x appsdata will be installed in ${KDE4_APPSDATADIR}"
3136 else
3137   echo "        KPARTS 4.x plugin disabled."
3140 # set a variable if we shouldn't continue. This way we can print
3141 # out everything that is missing in one pass, hopefully making it
3142 # easy for new developers to get everything they need installed.
3144 echo ""
3145 echo "Configured paths for ${build} are:"
3147 dnl Dump QT3 options is the user specified a QTOPIA3 or KDE3 GUI
3148 if test x"${build_kde3}" = xyes -o x"${build_qtopia3}" = xyes; then
3149   if test x"${has_qt3}" = xyes; then
3150     echo "        QT3 flags are: ${QT3_CFLAGS}"
3151     echo "        QT3 libs are: ${QT3_LIBS}"
3152   else
3153     PKG_ERR([No QT 3.x development package installed!])
3154     PKG_SUGGEST([Install a QT 3.x development environment from http://qt.nokia.com/])
3155     DEB_INSTALL([libqt3-mt-dev])
3156     RPM_INSTALL([qt3-devel])
3157     RPM_ALTERNATIVE([qt-devel])
3158     PKG_ALTERNATIVE([or change to a different gui with --enable-gui=...])
3159   fi
3162 dnl Dump QT4 options is the user specified a QTOPIA4 or Qt4 GUI
3163 if test x"${build_qt4}" = xyes -o x"${build_qtopia4}" = xyes; then
3164   if test x"${has_qt4}" = xyes; then
3165     echo "        QT4 flags are: ${QT4_CFLAGS}"
3166     echo "        QT4 libs are: ${QT4_LIBS}"
3167   else
3168     PKG_ERR([No QT 4.x development package installed!])
3169     PKG_SUGGEST([Install a QT 4.x development environment from http://qt.nokia.com/])
3170     DEB_INSTALL([libqt4-dev])
3171     DEB_ALTERNATIVE([qt4-dev-tools]) dnl TODO: Is this required?
3172     RPM_INSTALL([qt4-devel])
3173     RPM_ALTERNATIVE([qt-devel])
3174     PKG_ALTERNATIVE([or change to a different gui with --enable-gui=...])
3175   fi
3178 if test x"${build_kparts4}" = xyes; then
3179   if test x"${has_kde4}" = xyes; then
3180     echo "        KDE4 flags are: ${KDE4_CFLAGS}"
3181     echo "        KDE4 libs are: ${KDE4_LIBS}"
3182   else
3183     PKG_WAR([kparts4 plugin is disabled!])
3184     PKG_SUGGEST([Install version 4.x of the KDE development environment from http://kde.org])
3185     DEB_INSTALL([kdelibs5-dev])
3186     RPM_INSTALL([kdelibs-devel])
3187   fi
3190 if test x"$build_qtopia3" = xyes; then
3191   if test x"${QTOPIA3_LIBS}" != x ; then
3192     if test x"${QTOPIA3_CFLAGS}" != x ; then
3193       echo "        QTOPIA 3.x flags are: $QTOPIA3_CFLAGS"
3194     else
3195       echo "        QTOPIA 3.x flags are: default include path"
3196     fi
3197     echo "        QTOPIA 3.x libs are: $QTOPIA3_LIBS"
3198   else
3199     PKG_ERR([No QTOPIA 3.x library development package installed!])
3200     PKG_SUGGEST([Install it from http://trolltech.com/downloads/ as binary packages are not available.]) dnl TODO: This link is no longer valid.
3201   fi
3204 if test x"$build_qtopia4" = xyes; then
3205   if test x"${QTOPIA4_LIBS}" != x ; then
3206     if test x"${QTOPIA4_CFLAGS}" != x ; then
3207       echo "        QTOPIA 4.x flags are: $QTOPIA4_CFLAGS"
3208     else
3209       echo "        QTOPIA 4.x flags are: default include path"
3210     fi
3211     echo "        QTOPIA 4.x libs are: $QTOPIA4_LIBS"
3212   else
3213     PKG_ERR([No QTOPIA 4.x library development package installed!])
3214     PKG_SUGGEST([Install it from http://trolltech.com/downloads/ as binary packages are not available.]) dnl TODO: This link is no longer valid.
3215   fi
3219 # -o x$build_kparts3 = xyes
3220 if test x$build_kde3 = xyes; then
3221   if test x"$has_kde3" = xyes; then
3222     echo "        KDE 3.x flags are: $KDE3_CFLAGS"
3223     echo "        KDE 3.x libs are: $KDE3_LIBS"
3224   else
3225     PKG_ERR([No KDE 3.x development package installed!])
3226     PKG_SUGGEST([Install version 3.x of the KDE development environment from http://kde.org])
3227     DEB_INSTALL([kdelibs4-dev])
3228     RPM_INSTALL([kdelibs3-devel])
3229     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.])
3230   fi
3233 if test x"${JPEG_LIBS}" != x ; then
3234   if test x"${JPEG_CFLAGS}" != x ; then
3235     echo "        JPEG flags are: $JPEG_CFLAGS"
3236   else
3237     echo "        JPEG flags are: default include path"
3238   fi
3239   echo "        JPEG libs are: $JPEG_LIBS"
3240 else
3241   PKG_ERR([No JPEG library development package installed!])
3242   PKG_SUGGEST([Install it from http://ijg.org])
3243   DEB_INSTALL([libjpeg-dev])
3244   RPM_INSTALL([libjpeg-devel])
3247 if test x"${GIF_LIBS}" != x ; then
3248   if test x"${GIF_CFLAGS}" != x ; then
3249     echo "        GIF flags are: $GIF_CFLAGS"
3250   else
3251     echo "        GIF flags are: default include path"
3252   fi
3253   echo "        GIF libs are: $GIF_LIBS"
3254 else
3255   PKG_ERR([No GIF library development package installed!])
3256   PKG_SUGGEST([Install it from http://sourceforge.net/projects/giflib/])
3257   DEB_INSTALL([libungif-dev])
3258   DEB_ALTERNATIVE([libgif-dev])
3259   RPM_INSTALL([libgif-devel])
3260   RPM_ALTERNATIVE([giflib-devel])
3261   RPM_ALTERNATIVE([libungif-devel])
3264 if test x"${PNG_LIBS}" != x ; then
3265   if test x"${PNG_CFLAGS}" != x ; then
3266     echo "        PNG flags are: $PNG_CFLAGS"
3267   else
3268     echo "        PNG flags are: default include path"
3269   fi
3270   echo "        PNG libs are: $PNG_LIBS"
3271 else
3272   PKG_REC([No PNG library development package installed!])
3273   PKG_SUGGEST([Gnash will be built without support for dynamic loading of PNG files.])
3274   PKG_SUGGEST([Install it from http://www.libpng.org])
3275   DEB_INSTALL([libpng12-dev])
3276   RPM_INSTALL([libpng-devel])
3279 if test x"${build_ovg}" = x"yes"; then
3280   if test x"${has_openvg}" = xyes; then
3281     echo "        OpenVG flags are: $OPENVG_CFLAGS"
3282     echo "        OpenVG libs are: $OPENVG_LIBS"
3283     else
3284       echo "        ERROR: No OpenVG development package installed!" >&3
3285       echo "               You need to install the libmesa development package" >&3
3286       echo "               or .deb users: apt-get install libopenvg1-mesa-dev" >&3
3287       echo "               or .rpm users: yum install mesa-libOpenVG-devel-7.8.1-7.fc13.i686" >&3
3288       echo "               or use a different renderer with --enable-renderer=" >&3
3289   fi
3292 if test x"${build_ogl}" = x"yes"; then
3293   if test x"$OPENGL_LIBS" != x; then
3294     if test x"$OPENGL_CFLAGS" != x; then
3295       echo "        OpenGL flags are: $OPENGL_CFLAGS"
3296     else
3297       echo "        OpenGL flags are: default include path"
3298     fi
3299     echo "        OpenGL libs are: $OPENGL_LIBS"
3300     else
3301       PKG_ERR([No OpenGL development package installed!])
3302       PKG_SUGGEST([You need to install the libmesa development package])
3303       DEB_INSTALL([libgl1-mesa-dev])
3304       RPM_INSTALL([mesa-libGL-devel])
3305       RPM_ALTERNATIVE([xorg-x11-Mesa-libGL])
3306       PKG_ALTERNATIVE([or use a different renderer with --enable-renderer=])
3307   fi
3310 if test x"${build_gles1}" = x"yes"; then
3311   if test x"${has_gles1}" = xyes; then
3312     if test x"${GLES1_CFLAGS}" != x; then
3313       echo "        OpenGLES1 flags are: ${GLES1_CFLAGS}"
3314     else
3315       echo "        OpenGLES1 flags are: default include path"
3316     fi
3317     echo "        OpenGLES1 libs are: ${GLES1_LIBS}"
3318   else
3319       PKG_ERR([No OpenGL-ES development package installed!])
3320       PKG_SUGGEST([You need to install the this from source probably])
3321       PKG_ALTERNATIVE([or use a different renderer with --enable-renderer=])
3322   fi
3325 dnl GLEXT is only needed for GTK/OpenGL
3326 if test x$build_gtk = xyes -a x$build_ogl = xyes ; then
3327   if test x"$GLEXT_LIBS" != x; then
3328     if test x"$GLEXT_CFLAGS" != x; then
3329       echo "        GtkGLExt flags are: $GLEXT_CFLAGS"
3330     else
3331       echo "        GtkGLExt flags are: default include path"
3332     fi
3333       echo "        GtkGLExt libs are: $GLEXT_LIBS"
3334   else
3335     PKG_ERR([No GtkGLExt development package installed!])
3336     PKG_SUGGEST([It is needed to build the GTK/OpenGL GUI/renderer combination.])
3337     PKG_SUGGEST([Install it from http://gtkglext.sourceforge.net])
3338     DEB_INSTALL([libgtkglext1-dev])
3339     RPM_INSTALL([gtkglext-devel])
3340     PKG_ALTERNATIVE([or --enable-gui=sdl or --enable-renderer=agg])
3341   fi
3344 if test x$build_gtk = xyes; then #{
3345   if test x"$GTK2_LIBS" != x; then
3346     if test x"$GTK2_CFLAGS" != x; then
3347       echo "        GTK2 flags are: $GTK2_CFLAGS"
3348     else
3349       echo "        GTK2 flags are: default include path"
3350     fi
3351       echo "        GTK2 libs are: $GTK2_LIBS"
3352   else
3353     PKG_ERR([No GTK2 development package installed!])
3354     PKG_SUGGEST([Install it from http://gtk.org])
3355     DEB_INSTALL([libgtk2.0-dev])
3356     RPM_INSTALL([gtk2-devel])
3357   fi
3359   if test x"$PANGO_LIBS" != x; then
3360     if test x"$PANGO_CFLAGS" != x; then
3361       echo "        Pango flags are: $PANGO_CFLAGS"
3362     else
3363       echo "        Pango flags are: default include path"
3364     fi
3365     echo "        Pango libs are: $PANGO_LIBS"
3366   else
3367     PKG_ERR([No Pango development package installed!])
3368     PKG_SUGGEST([Install it from http://pango.org])
3369     DEB_INSTALL([libpango1.0-dev])
3370     RPM_INSTALL([pango-devel])
3371   fi
3373   if test x"$GLIB_LIBS" != x; then
3374     if test x"$GLIB_CFLAGS" != x; then
3375       echo "        GLib flags are: $GLIB_CFLAGS"
3376     else
3377       echo "        GLib flags are: default include path"
3378     fi
3379     echo "        GLib libs are: $GLIB_LIBS"
3380   else
3381     PKG_ERR([No GLib development package installed!])
3382     PKG_SUGGEST([Install it from http://gtk.org])
3383     DEB_INSTALL([libglib2.0-dev])
3384     RPM_INSTALL([glib2-devel])
3385   fi
3387   if test x"$ATK_LIBS" != x; then
3388     if test x"$ATK_CFLAGS" != x; then
3389       echo "        ATK flags are: $ATK_CFLAGS"
3390     else
3391       echo "        ATK flags are: default include path"
3392     fi
3393       echo "        ATK libs are: $ATK_LIBS"
3394   else
3395     PKG_ERR([No ATK development package installed!])
3396     PKG_SUGGEST([Install it from http://atk.org])
3397     DEB_INSTALL([libatk1.0-dev])
3398     RPM_INSTALL([atk-devel])
3399   fi
3403 if test x"$build_media_gst" = x"yes"; then
3404   if test x"$missing_codecs" != x; then   
3405       echo "        Your Gstreamer installation is missing these codecs: $missing_codecs"
3406       echo "        Please install the gstreamer-ffmpeg for Gstreamer"
3407   fi  
3408   if test x"$GSTREAMER_LIBS" != x; then
3409     if test x"$GSTREAMER_CFLAGS" != x; then
3410       echo "        Gstreamer flags are: $GSTREAMER_CFLAGS"
3411     else
3412       echo "        Gstreamer flags are: default include path"
3413     fi
3414     echo "        Gstreamer libs are: $GSTREAMER_LIBS"
3415   else
3416     PKG_ERR([GST media handling requested but gstreamer-0.10+ not found])
3417     PKG_SUGGEST([Install it from http://www.gstreamer.net])
3418     DEB_INSTALL([libgstreamer0.10-dev])
3419     RPM_INSTALL([gstreamer-devel])
3420     YAST_INSTALL([gstreamer010-devel])
3421   fi
3422   if test x"$has_gstreamer_pbutils" != "xyes"; then
3423     PKG_REC([If the user has not installed the necessary Gstreamer plugins, Gstreamer can pop up a message prompting them to.])
3424     PKG_SUGGEST([Install gstpbutils (>= 0.10.15) from http://www.gstreamer.net for that to be enabled])
3425     DEB_INSTALL([libgstreamer-plugins-base0.10-dev])
3426     PKG_SUGGEST([or .rpm users: simply install the below package]) dnl TODO: Can/should this notice be done cleaner?
3427     PKG_SUGGEST([Also see --with-gstpbutils-incl and --with-gstpbutils-lib])
3428   fi
3429   if test x"$has_gstreamer_plugins_base" = "xno"; then
3430     dnl TODO: Check if this is really a mandatory asset!
3431     PKG_ERR([Base plugins are required for gstreamer media!])
3432     PKG_SUGGEST([Install gstreamer-plugins-base from http://www.gstreamer.net])
3433     DEB_INSTALL([libgstreamer-plugins-base0.10-dev])
3434     RPM_INSTALL([gstreamer-plugins-base-devel])
3435   fi
3438 dnl TODO: figure out some RPM package names.
3439 dnl TODO: The following tests is probably incorrect for any/older/exotic systems! Could someone experienced look at it?
3440 if test x"${build_media_ffmpeg}" = x"yes"; then
3441   if test x"$FFMPEG_LIBS" != x; then
3442     echo "        MP3 and video support enabled through FFmpeg"
3443     if test x"$FFMPEG_CFLAGS" != x; then
3444       echo "        FFmpeg flags are: $FFMPEG_CFLAGS"
3445     else
3446       echo "        FFmpeg flags are: default include path"
3447     fi
3448     echo "        FFmpeg libs are: $FFMPEG_LIBS"
3449   else
3450     PKG_ERR([No FFmpeg development package installed!])
3451     PKG_SUGGEST([You can install FFmpeg from http://ffmpeg.org])
3452     DEB_INSTALL([libavcodec-dev])
3453     RPM_INSTALL([ffmpeg-devel])
3454     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3455   fi
3457   if test x"${avformat_h}" = x; then
3458     PKG_ERR([FFmpeg's avformat header is installed but not libavformat!])
3459     PKG_SUGGEST([You can install FFmpeg from http://ffmpeg.org])
3460     DEB_INSTALL([libavformat-dev])
3461     YAST_INSTALL([libavformat-api]) dnl (but currently installs into /usr/lib64)
3462     PKG_ALTERNATIVE(or explicitly set the path using --with-ffmpeg-incl=)
3463     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3464   fi
3466   if test x"${have_ffmpeg_swscale}" = "xno"; then
3467     PKG_ERR([No libswscale development package installed!])
3468     PKG_SUGGEST([You can install libswscale from http://ffmpeg.org])
3469     DEB_INSTALL([libswscale-dev])
3470     PKG_ALTERNATIVE(or reconfigure with --enable-media=gst)
3471   fi
3474 if test x$build_cairo = xyes; then
3475   if test x"$CAIRO_LIBS" != x; then
3476     if test x"$CAIRO_CFLAGS" != x; then
3477       echo "        Cairo flags are: $CAIRO_CFLAGS"
3478     else
3479       echo "        Cairo flags are: default include path"
3480     fi
3481     echo "        Cairo libs are: $CAIRO_LIBS"
3482   else
3483     PKG_ERR([No Cairo development package installed!])
3484     PKG_SUGGEST([You need to have the Cairo development package installed if you have used --enable-render=cairo to configure.])
3485     PKG_SUGGEST([Install it from http://cairographics.org])
3486     DEB_INSTALL([libcairo-dev])
3487     RPM_INSTALL([cairo-devel])
3488   fi
3491 if test x$build_fltk = xyes; then
3492   if test x"$FLTK2_LIBS" != x; then
3493     if test x"$FLTK2_CFLAGS" != x; then
3494       echo "        FLTK flags are: $FLTK2_CFLAGS"
3495     else
3496       echo "        FLTK flags are: default include path"
3497     fi
3498       echo "        FLTK libs are: $FLTK2_LIBS"
3499   else
3500     PKG_ERR([No FLTK2 development package installed!])
3501     PKG_SUGGEST([Install it from http://fltk.org])
3502     PKG_ALTERNATIVE(or change to a different gui with --enable-gui=...)
3503   fi
3506 if test x$build_fltk = xyes; then
3507   if test x"$XFT_LIBS" != x; then
3508     if test x"$XFT_CFLAGS" != x; then
3509       echo "        Xft flags are: $XFT_CFLAGS"
3510     else
3511       echo "        Xft flags are: default include path"
3512     fi
3513     echo "        Xft libs are: $XFT_LIBS"
3514   fi
3517 # See whether SDL is required
3518 need_sdl=false
3519 test x$build_sdl = xyes                 && need_sdl=true
3520 test x$build_sound_sdl = xyes   && need_sdl=true
3522 if $need_sdl; then
3523   if test x"$SDL_LIBS" != x; then
3524     echo "        SDL flags are: $SDL_CFLAGS"
3525     echo "        SDL libs are: $SDL_LIBS"
3526   else
3527     PKG_ERR([No SDL development package installed!])
3528     PKG_SUGGEST([Install it from http://www.libsdl.org/download-1.2.php])
3529     DEB_INSTALL([libsdl1.2-dev])
3530     RPM_INSTALL([SDL-devel])
3531     PKG_ALTERNATIVE(or change to a different gui with --enable-gui=...)
3532   fi
3534 unset need_sdl
3536 if test x"$nsapi" = x"yes"; then
3537     echo "        Plugin will be installed in ${FIREFOX_PLUGINS}"
3540 if test x"${pthreads}" = x"yes"; then
3541   if test x"$PTHREAD_CFLAGS" != x; then
3542     echo "        POSIX Threads flags are: $PTHREAD_CFLAGS"
3543   fi
3544   if test x"${PTHREAD_LIBS}" != x; then
3545     echo "        POSIX Threads lib is: $PTHREAD_LIBS"
3546   else
3547     if test x"${cross_compiling}" = xno; then
3548       echo "ERROR: No pthread development package installed!" >&3
3549     fi
3550   fi
3553 if test x"${docbook}" = x"yes"; then
3554   if test x"$MAKEINFO" = x; then
3555     PKG_ERR([No makeinfo tools installed!])
3556     PKG_SUGGEST([Install it from http://www.gnu.org/software/texinfo/])
3557     DEB_INSTALL([texinfo])
3558     RPM_INSTALL([texinfo])
3559     RPM_ALTERNATIVE([texinfo-tex])
3560   fi
3561   dnl low-level tools
3562   if test x"$DB2X_TEXIXML" = x -o x"$DB2X_MANXML" = x -o x"$DB2X_XSLTPROC" = x; then
3563     dnl high-level tools
3564     if test x"${DB2X_TEXI}" = x -o x"${DB2X_MAN}" = x; then
3565       PKG_ERR([No DocBook2X tools installed!])
3566       PKG_SUGGEST([Install it from http://docbook2x.sourceforge.net])
3567       dnl TODO: Could someone look at this and confirm the needed software is installed?
3568       dnl FIXME: I removed the texidocbook and docbook-utilsnfo packages as they are not on my system.
3569       DEB_INSTALL([docbook2x docbook-xml docbook-xsl texinfo xsltproc])
3570       PKG_ALTERNATIVE([or configure without --enable-docbook])
3571     fi
3572   else
3573     echo "        You have version $db2x_version of the DocBook2X tools."
3574   fi
3575 else
3576   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.])
3579 if test x"$CURL_LIBS" != x; then
3580   if test x"$CURL_CFLAGS" != x; then
3581     echo "        CURL flags are: $CURL_CFLAGS"
3582   else
3583     echo "        CURL flags are: default include path"
3584   fi
3585     echo "        CURL libs are: $CURL_LIBS"
3586 else
3587   PKG_REC([If you install the CURL library, Gnash will be able to display remote content (streaming from URLs) using CURL.])
3588   PKG_SUGGEST([Install libcurl from http://curl.haxx.se/libcurl])
3589   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?
3590   DEB_ALTERNATIVE([libcurl-dev])
3591   RPM_INSTALL([curl-devel])
3594 if test x"$SPEEX_LIBS" != x; then
3595   if test x"$SPEEX_CFLAGS" != x; then
3596     echo "        Speex flags are: $SPEEX_CFLAGS"
3597   else
3598     echo "        Speex flags are: default include path"
3599   fi
3600     echo "        Speex libs are: $SPEEX_LIBS"
3601 else
3602   PKG_REC([If you install the Speex library, Gnash will be able to decoded Speex encoded audio in FLV files.])
3603   PKG_SUGGEST([Install libspeex from http://speex.org])
3604   DEB_INSTALL([libspeex-dev])
3605   RPM_INSTALL([speex-devel])
3608 if test x"$SPEEXDSP_LIBS" != x; then
3609   if test x"$SPEEXDSP_CFLAGS" != x; then
3610     echo "        Speex DSP flags are: $SPEEXDSP_CFLAGS"
3611   else
3612     echo "        Speex DSP flags are: default include path"
3613   fi
3614     echo "        Speex DSP libs are: $SPEEXDSP_LIBS"
3615 else
3616   PKG_REC([If you install the Speex DSP library, Gnash will be able to resample Speex encoded audio in FLV files.])
3617   PKG_SUGGEST([Install libspeexdsp from http://speex.org])
3618   DEB_INSTALL([libspeexdsp-dev])
3619   RPM_INSTALL([speex-devel])
3622 if test x"$ext_dbus" = xyes; then
3623   if test x"$DBUS_LIBS" != x; then
3624     if test x"$DBUS_CFLAGS" != x; then
3625       echo "        DBUS flags are: $DBUS_CFLAGS"
3626     else
3627       echo "        DBUS flags are: default include path"
3628     fi
3629       echo "        DBUS libs are: $DBUS_LIBS"
3630   else
3631     PKG_WAR([No DBUS development package was found! Gnash will be built without support for remote controls.])
3632     PKG_SUGGEST([Install libdbus from http://www.dbus.org])
3633     DEB_INSTALL([dbus-dev])
3634     DEB_ALTERNATIVE([libdbus-1-dev])
3635     RPM_INSTALL([dbus-devel])
3636   fi
3639 if test x$build_agg = xyes; then # {
3640   echo "        AGG Pixel format is: $pixelformat"
3641   if test x"$AGG_LIBS" != x -a x"${agg25}" == xyes; then # {
3642     if test x"$AGG_CFLAGS" != x; then # {
3643       echo "        AGG flags are: $AGG_CFLAGS"
3644     else # }{
3645       echo "        AGG flags are: default include path"
3646     fi # }
3647     echo "        AGG libs are: $AGG_LIBS"
3648   else # }{
3649     if test x"$AGG_LIBS" != x -a x"${agg25}" != xyes; then
3650       PKG_ERR([Your installation of AGG appears to be version 2.4 or older. Please upgrade to AGG 2.5 or greater.])
3651     else
3652       PKG_ERR([No AGG development package installed!])
3653     fi
3654     PKG_SUGGEST([Install it from http://www.antigrain.com])
3655     DEB_INSTALL([libagg-dev])
3656     RPM_INSTALL([agg-devel])
3657   fi # }
3658 fi # }
3660 dnl TODO: This package is handled a bit stupidly in regard to the package
3661 dnl suggestion system. It would be better to check for each package
3662 dnl separately, instead of passing the missing ones in variables..
3663 if test x"$BOOST_LIBS" != x; then
3664   echo "        BOOST flags are: $BOOST_CFLAGS"
3665   echo "        BOOST libs are: $BOOST_LIBS"
3666   echo "        BOOST libs for cygnal are: $BOOST_CYGNAL_LIBS"
3668   if test x"${missing_headers}" != x; then
3669     for i in ${missing_headers}; do
3670       PKG_ERR([The Boost $i header is not installed])
3671       PKG_SUGGEST([Install it from http://www.boost.org])
3672     done
3673   fi
3675   if test x"${cygnal}" = x"yes"; then
3676     if test x"${cygnal_missing_libs}" != x; then
3677       for i in ${cygnal_missing_libs}; do
3678         PKG_ERR([No Boost $i package installed])
3679         PKG_SUGGEST([Install it from http://www.boost.org])
3680         debtmppkg="libboost-`echo ${i} | sed 's/_/-/g'`-dev"
3681         DEB_INSTALL([$debtmppkg])
3682         PKG_ALTERNATIVE([or configure with --disable-cygnal])
3683       done
3684     fi
3685   fi
3687   if test x"${missing_libs}" != x; then
3688     for i in ${missing_libs}; do
3689       PKG_ERR([No Boost $i package installed])
3690       PKG_SUGGEST([Install it from http://www.boost.org])
3691       debtmppkg="libboost-`echo ${i} | sed 's/_/-/g'`-dev"
3692       DEB_INSTALL([$debtmppkg])
3693     done
3694   fi
3695 else
3696   PKG_ERR([No Boost development package installed])
3697   PKG_SUGGEST([Install it from http://www.boost.org])
3698   dnl I am not sure that libboost-program-options-dev should be passed here, but
3699   dnl it seems like the cleanest way to get it.
3700   if test x"$cygnal" = xyes; then
3701     DEB_INSTALL([libboost-dev libboost-thread-dev libboost-program-options-dev libboost-date-time-dev])
3702   else
3703     DEB_INSTALL([libboost-dev libboost-thread-dev libboost-program-options-dev])
3704   fi
3705   RPM_INSTALL([boost-devel])
3708 dnl don't look for the flash compilers when cross compiling.
3709 if test x"$testsuite" = x"yes"; then
3710   if test x$cross_compiling = xno; then
3711     if test x"$MING_LIBS" != x; then
3712       echo "        MING flags are $MING_CFLAGS"
3713       echo "        MING libs are $MING_LIBS"
3714     else
3715       PKG_WAR([You need to have the Ming development package installed to run most of the tests in Gnash testsuite.])
3716       PKG_SUGGEST([Install it from http://www.libming.org/])
3717       DEB_INSTALL([libming-dev])
3718       RPM_INSTALL([libming-devel])
3719     fi
3721     if test x"$MAKESWF" != x; then
3722       echo "        MING version code is $MING_VERSION_CODE"
3723       echo "        MAKESWF is $MAKESWF"
3724     else
3725       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.])
3726       PKG_SUGGEST([Install it from http://www.libming.org/])
3727       DEB_INSTALL([libming-util])
3728       RPM_INSTALL([ming-util])
3729       RPM_ALTERNATIVE([ming-utils])
3730     fi
3732     if test x"$MAKESWF" != x && test $MING_VERSION_CODE -lt 00040006; then
3733       echo "        WARNING: You have an older version of Ming installed and will not" >&4
3734       echo "                 be able to run all of the tests in Gnash testsuite." >&4
3735       echo "                 Install the latest version from http://www.libming.org" >&4
3736     fi
3738     if test x"$SWFDEC_TESTSUITE" != x; then
3739       echo "        SWFDEC testsuite dir is $SWFDEC_TESTSUITE"
3740     fi
3742     if test x"$MTASC" != x; then
3743       echo "        MTASC is $MTASC"
3744       echo "        MTASC CLASSPATH is $MTASC_CLASSPATH"
3745     else
3746       PKG_WAR([You need to have the MTASC compiler packages installed to run some of the tests in Gnash testsuite.])
3747       PKG_SUGGEST([Install it from http://mtasc.org])
3748       DEB_INSTALL([mtasc])
3749       RPM_INSTALL([mtasc])
3750     fi
3752     if test x"$HAXE" != x; then
3753       echo "        HAXE is $HAXE"
3754       echo "        HAXE CLASSPATH is $HAXE_CLASSPATH"
3755     else
3756       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.])
3757       PKG_SUGGEST([Install it from http://haxe.org])
3758       DEB_INSTALL([haxe])
3759       RPM_INSTALL([haxe])
3760     fi
3762     if test x"$SWFMILL" != x; then
3763       echo "        SWFMILL is $SWFMILL"
3764       if test x"$ENABLE_AVM2" != x -a "$SWFMILL_VERSION" -lt 00021206; then
3765         PKG_WAR([You are building Gnash with AVM2 support but your swfmill version is too old to run AS3 tests.])
3766       fi
3767     else
3768       PKG_WAR([You need to have the swfmill tool installed to run some of the tests in Gnash testsuite.])
3769       PKG_SUGGEST([Install it from http://swfmill.org])
3770       DEB_INSTALL([swfmill])
3771       RPM_INSTALL([swfmill])
3772     fi
3774     if test x"$SWFC" != x; then
3775       echo "        SWFC is $SWFC"
3776     else
3777       PKG_WAR([You need to have swfc from SWFTools installed to run some of the tests in Gnash testsuite.])
3778       PKG_SUGGEST([Install it from http://swftools.org])
3779       DEB_INSTALL([swftools])
3780       RPM_INSTALL([swftools])
3781     fi
3783     if test x"$AS3COMPILE" != x; then
3784       echo "        AS3COMPILE is $AS3COMPILE"
3785     else
3786       PKG_WAR([You need to have as3compile from SWFTools installed to run some of the tests in Gnash testsuite.])
3787       PKG_SUGGEST([Install it from http://swftools.org])
3788     fi
3790     if test x"$HTTP_TESTSUITE" != x; then
3791       echo "        HTTP testsuite dir is $HTTP_TESTSUITE"
3792     fi
3794     if test x"$RED5_HOST" != x; then
3795       echo "        RED5 testing host is $RED5_HOST"
3796     fi
3797   fi
3800   if test x"$PERL" != x; then
3801     echo "        PERL is $PERL"
3802   else
3803     PKG_WAR([You need to have perl installed to run some of the tests in Gnash testsuite.])
3804     PKG_SUGGEST([Install it from http://perl.org])
3805     DEB_INSTALL([perl])
3806     RPM_INSTALL([perl])
3807   fi
3809 if test x"$testsuite" = x"yes"; then
3810   if test x"$CSOUND" != x; then
3811     echo "        CSOUND is $CSOUND"
3812   else
3813     echo "        WARNING: You need to have csound installed" >&4
3814     echo "                 to have real fun." >&4
3815     echo "                 Install it from http://www.csounds.com/" >&4
3816     echo "                 or .deb users: apt-get install csound" >&4
3817     echo "                 or .rpm users: yum install csound" >&4
3818   fi
3821 if test x"$Z_LIBS" != x; then
3822   if test x"$Z_CFLAGS" != x; then
3823     echo "        Z flags are: $Z_CFLAGS"
3824   else
3825     echo "        Z flags are: default include path"
3826   fi
3827   echo "        Z libs are: $Z_LIBS"
3828 else
3829   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.])
3830   PKG_SUGGEST([Install it from http://zlib.net])
3831   DEB_INSTALL([zlib1g-dev])
3832   RPM_INSTALL([zlib-devel])
3833   PKG_ALTERNATIVE([It may still be possible to configure without zlib.])
3836 if test x"$FREETYPE2_LIBS" != x; then
3837   if test x"$FREETYPE2_CFLAGS" != x; then
3838     echo "        FreeType flags are: $FREETYPE2_CFLAGS"
3839   else
3840     echo "        FreeType flags are: default include path"
3841   fi
3842   echo "        FreeType libs are: $FREETYPE2_LIBS"
3843 else
3844   PKG_REC([You need to have the freetype development packages installed to use device fonts.])
3845   PKG_SUGGEST([Install it from http://freetype.org])
3846   DEB_INSTALL([libfreetype6-dev])
3847   RPM_INSTALL([freetype-devel])
3848   PKG_ALTERNATIVE([It may still be possible to configure without freetype.])
3851 if test x"$FONTCONFIG_LIBS" != x; then
3852   if test x"$FONTCONFIG_CFLAGS" != x; then
3853     echo "        Fontconfig flags are: $FONTCONFIG_CFLAGS"
3854   else
3855     echo "        Fontconfig flags are: default include path"
3856   fi
3857   echo "        Fontconfig libs are: $FONTCONFIG_LIBS"
3858 else
3859   PKG_REC([You need to have the fontconfig development packages installed to use device fonts.])
3860   PKG_SUGGEST([Install it from http://fontconfig.org])
3861   DEB_INSTALL([libfontconfig1-dev])
3862   RPM_INSTALL([fontconfig-devel])
3863   PKG_ALTERNATIVE([It may still be possible to configure without fontconfig.])
3866 if test x$ext_mysql = xyes; then
3867   if test x$mysql != xno; then
3868     if test x"$MYSQL_LIBS" != x; then
3869       echo "        MYSQL flags are: $MYSQL_CFLAGS"
3870       echo "        MYSQL libs are: $MYSQL_LIBS"
3871     else
3872       PKG_ERR([No MySQL development package is installed.])
3873       PKG_SUGGEST([Install it from http://mysql.org])
3874       DEB_INSTALL([libmysqlclient-dev])
3875       RPM_INSTALL([mysql-devel])
3876       PKG_ALTERNATIVE([or reconfigure without --enable-extensions=mysql])
3877     fi
3878   fi
3881 if test "$GMSGFMT" = ":"; then
3882   PKG_WAR([You need the gettext package installed to use translations. Required for building a package or 'make distcheck'])
3883   PKG_SUGGEST([Install it from http://www.gnu.org/software/gettext/])
3884   DEB_INSTALL([gettext])
3885   RPM_INSTALL([gettext])
3888 if test x"${build_vaapi}" = x"yes"; then
3889   if test x"${LIBVA_CFLAGS}" = xyes; then
3890       echo "        LIBVA flags are: default"
3891     else
3892       echo "        LIBVA flags are: $LIBVA_CFLAGS"
3893       echo "        LIBVA libraries are: $LIBVA_LIBS"
3894   fi
3895   if test x$use_libva_x11 = xyes; then
3896     if test x"${LIBVA_X11_CFLAGS}" = xyes; then
3897       echo "        LIBVA X11 flags are: default"
3898     else
3899       echo "        LIBVA X11 flags are: $LIBVA_X11_CFLAGS"
3900       echo "        LIBVA X11 libraries are: $LIBVA_X11_LIBS"
3901     fi
3902   fi
3903   if test x$use_libva_glx = xyes; then
3904     if test x"${LIBVA_GLX_CFLAGS}" = xyes; then
3905       echo "        LIBVA GLXflags are: default"
3906     else
3907       echo "        LIBVA GLX flags are: $LIBVA_GLX_CFLAGS"
3908     fi
3909     echo "        LIBVA GLX libraries are: $LIBVA_GLX_LIBS"
3910   fi
3913 if test x"$ac_cv_gcc_visibility" != xyes; then
3914   if test x"$npapi" = xyes; then
3915     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!])
3916   fi
3919 if test x"$npapi" = xyes; then
3920   if test x"$has_npapi" = xyes; then
3921     echo "        NPAPI flags are: $NPAPI_CFLAGS"
3922   else
3923     PKG_ERR([No xulrunner development package is installed!])
3924     PKG_SUGGEST([Install it from http://releases.mozilla.org/pub/mozilla.org/xulrunner])
3925     DEB_INSTALL([xulrunner-dev]) or 
3926     DEB_INSTALL([firefox-dev])
3927     RPM_INSTALL([xulrunner-devel])
3928   fi
3929 else
3930   echo "        NPAPI plugin is disabled"
3933 if test x"${DEJAGNU}" != x""; then
3934   echo "        DEJAGNU's runtest is $DEJAGNU"
3935 else
3936   PKG_WAR([You need the dejagnu package installed to get a summary after running 'make check'.])
3937   PKG_SUGGEST([Install it from http://www.gnu.org/software/dejagnu/])
3938   DEB_INSTALL([dejagnu])
3939   RPM_INSTALL([dejagnu])
3942 dnl Haiku
3943 if test x"${build_haiku}" = xyes -o x"${build_sound_mkit}" = xyes -o x"${build_media_haiku}" = x"yes"; then
3944     echo "        Haiku libs are: $HAIKU_LIBS"
3947 if test x"$has_ltdl" = x"yes";then
3948   echo "        LIBLTDL flags are: $LTDL_CFLAGS"
3949   echo "        LIBLTDL libs are: $LTDL_LIBS"
3950 else
3951   if test x"${extensions_support}" != xno; then
3952     PKG_ERR([No libltdl development package is installed, yet --disable-extensions was not specified.])
3953     PKG_SUGGEST([Install it from ftp://ftp.gnu.org/gnu/libtool/])
3954     DEB_INSTALL([libltdl-dev])
3955     RPM_INSTALL([libtool-ltdl-devel])
3956   fi
3959 if test x"$python" = x"yes"; then
3960   if test x"$has_python" = x"yes"; then
3961     echo "        PYTHON flags are: $PYTHON_CFLAGS"
3962     echo "        PYTHON libs are: $PYTHON_LIBS"
3963     echo "        PYTHON executable is: $PYTHON"
3964   else
3965     PKG_ERR([No Python development package is installed, but it's enabled.])
3966   fi
3968 if test x${build_ssl} = xyes; then
3969   if test x"${has_ssl}" = xyes; then
3970     if test x"${SSL_CFLAGS}" = xyes; then
3971       echo "        SSL flags are: default"
3972     else
3973       echo "        SSL flags are: $SSL_CFLAGS"
3974     fi
3975     echo "        SSL libs are: $SSL_LIBS"
3976   else
3977     PKG_ERR([No SSL development package is installed, but it's enabled."])
3978   fi
3981 if test x${build_ssh} = xyes; then
3982   if test x"${has_ssh}" = xyes; then
3983     if test x"${SSH_CFLAGS}" = xyes; then
3984       echo "        SSH flags are: default"
3985     else
3986       echo "        SSH flags are: $SSH_CFLAGS"
3987     fi
3988     echo "        SSH libs are: $SSH_LIBS"
3989   else
3990     PKG_ERR([No SSH development package is installed, but it's enabled."])
3991   fi
3994 if test x"${build_all_as3}" = x"yes"; then
3995   echo "        Building the entire ActionScript class libary"
3996 else
3997   echo "        Only building these ActionScript classes into the library:"
3998   echo "     ${classlist}"
4001 if test x"$testsuite" = x"yes"; then
4002   if test x"$NETCAT" != x; then
4003     echo "        You have netcat installed, which is only used for testing"
4004   else
4005     echo "        Install netcat for networking test support"
4006   fi
4007   if test x"$WGET" != x; then
4008     echo "        You have wget installed, which is only used for testing"
4009   else
4010     echo "        Install wget for networking test support"
4011   fi
4014 if test x$cross_compiling = xyes; then
4015    if test x"${android_ndk}" != xno; then
4016       AC_MSG_NOTICE([This build is setup for cross compiling for Android])
4017    else
4018       AC_MSG_NOTICE([This build is setup for cross compiling])
4019    fi
4022 echo "--------"
4024 if test x"${cygnal}" = x"yes"; then
4025   echo "        Building Cygnal media server enabled (default). Use --disable-cygnal to disable."
4026 else
4027   echo "        Building Cygnal media server disabled."
4030 if test x"${with_top_level}" != x; then
4031   echo "        Top level for cross compiling support files is: $with_top_level"
4034 if test x"${build_gtk}" = xyes -a x"${pixelformat}" = xrgb565; then
4035   echo "        WARNING: Pixel format RGB565 selected in combination with the" >&4
4036   echo "                 GTK GUI. Only a hacked GTK will work (e.g. on the OLPC)." >&4
4039 if test x"${extensions_list}" != x; then
4040   echo "        Building extensions: ${extensions_list}"
4043 if test x"${extensions_support}" = xno; then
4044   echo "        Extension support disabled."
4047 if test x"${security_list}" != x; then
4048   echo "        Enabling security features: ${security_list}"
4051 if test x"${statistics_list}" != x; then
4052   echo "        Enabling statistics collecting for: ${statistics_list}"
4055 if test x"${SUPPORTED_GUIS}" = x; then
4056   AC_MSG_ERROR(no supported GUIs found);
4059 echo "        GUI toolkits supported: ${SUPPORTED_GUIS}"
4060 echo "        Renderers supported: ${renderer_list}"
4061 echo "        Hardware Acceleration: ${device_list}"
4062 echo "        Media handlers: ${media_list}"
4063 echo "        Using ${add_sound} for sound handling"
4065 if test x"$docbook" = x"yes"; then
4066   echo '        DocBook document processing enabled (for "make html" and "make pdf")'
4067   if test x"$docbook_styles" != x; then
4068     echo "        Docbook styles sheets in $docbook_styles"
4069   fi
4070 else
4071   echo "        DocBook document processing disabled (default)"
4074 dnl The Framebuffer GUI has several other settings. As it doesn't have X11,
4075 dnl we have to handle input devics ourselves.
4076 if test x"${build_fb}" = xyes; then
4077 echo "        Using ${input_events} for Input"
4078   if test x"${fakefb}" != x; then
4079     echo "        Using shared memory as a fake framebuffer"
4080   fi
4081   if test x"${offscreen}" = xyes; then
4082     echo "        Using offscreen rendering"
4083   fi
4084   if test x"${doublebuf}" = xyes; then
4085     echo "        Using double buffering when rendering"
4086   fi
4089 if test -s $cwarn; then
4090   echo ""
4091   cat $cwarn
4092   rm $cwarn
4093   echo ""
4094   echo "Gnash should still compile even with these warnings."
4095   echo "If it doesn't, report the warnings as a bug."
4096 else
4097   rm $cwarn
4100 if test -s $crec; then
4101   echo ""
4102   cat $crec
4103   rm $crec
4104   echo ""
4105   echo "Gnash should still compile, but you'll miss important support"
4106 else
4107   rm $crec
4110 if test -s $cerr; then
4111   echo ""
4112   cat $cerr >&2
4115 deb_err="`cat $deb_err`"
4116 deb_war="`cat $deb_war`"
4117 deb_rec="`cat $deb_rec`"
4118 rpm_err="`cat $rpm_err`"
4119 rpm_war="`cat $rpm_war`"
4120 rpm_rec="`cat $rpm_rec`"
4121 yast_err="`cat $yast_err`"
4122 yast_war="`cat $yast_war`"
4123 yast_rec="`cat $yast_rec`"
4125 # Pipe stderr to /dev/null since Fedora complains when target isn't there.
4126 if test x`which apt-get 2>/dev/null` != x; then
4127   if test x"$deb_err" != x -o x"$deb_war" != x -o x"$deb_rec" != x; then
4128     echo "#!/bin/sh" > deb-attempt-install-dependencies.sh
4129     echo "packages=\"$deb_err $deb_war $deb_rec\"" >> deb-attempt-install-dependencies.sh
4130     echo "PKGCOMMAND=\"apt-get install -y -q\"" >> deb-attempt-install-dependencies.sh
4131     cat ${srcdir}/base-attempter.sh >> deb-attempt-install-dependencies.sh
4132     chmod +x deb-attempt-install-dependencies.sh
4133     echo ""
4134     echo ".deb users might be able to install most dependencies by executing:"
4135     echo "sudo ./deb-attempt-install-dependencies.sh"
4136   fi
4139 if test x`which yum 2>/dev/null` != x; then
4140   if test x"$rpm_err" != x -o x"$rpm_war" != x -o x"$deb_rec" != x; then
4141     echo "#!/bin/sh" > rpm-attempt-install-dependencies.sh
4142     echo "packages=\"$rpm_err $rpm_war  $rpm_rec\"" >> rpm-attempt-install-dependencies.sh
4143     echo "PKGCOMMAND=\"yum install -y \""    >> rpm-attempt-install-dependencies.sh
4144     cat ${srcdir}/base-attempter.sh >> rpm-attempt-install-dependencies.sh
4145     chmod +x rpm-attempt-install-dependencies.sh
4146     echo ""
4147     echo ".rpm users might be able to install most dependencies by executing:"
4148     echo "sudo ./rpm-attempt-install-dependencies.sh"
4149   fi
4152 dnl TODO: Add support for yast here, which AFAIK is used on OpenSuse.
4154 dnl If anything critical is missing, don't bother to continue
4155 if test -s $cerr; then
4156   echo ""
4157   rm $cerr
4158   AC_MSG_ERROR([Please install required packages])
4159 else
4160   rm $cerr
4163 rm -rf $tmp
4165 if test x"$fork" = x"no"; then
4166   echo ""
4167   AC_MSG_ERROR([Currently only forking the standalone player works!])
4169 echo ""
4171 # Local Variables:
4172 # c-basic-offset: 2
4173 # tab-width: 2
4174 # indent-tabs-mode: nil
4175 # End: