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