Implement yes/no/auto for FB gui. Defaults to auto. Build only on linux and if AGG...
[gnash.git] / configure.ac
blob58002127fe3170cdf2e9229f675d3caca100f969
1 dnl  
2 dnl  Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
3 dnl  
4 dnl  This program is free software; you can redistribute it and/or modify
5 dnl  it under the terms of the GNU General Public License as published by
6 dnl  the Free Software Foundation; either version 3 of the License, or
7 dnl  (at your option) any later version.
8 dnl  
9 dnl  This program is distributed in the hope that it will be useful,
10 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl  GNU General Public License for more details.
13 dnl  You should have received a copy of the GNU General Public License
14 dnl  along with this program; if not, write to the Free Software
15 dnl  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16 dnl  
18 AC_PREREQ(2.50)
19 AC_INIT(gnash, 0.8.9dev)
20 AC_CONFIG_SRCDIR([libcore/as_object.h])
21 AC_CONFIG_HEADERS([gnashconfig.h])
23 dnl AC_CONFIG_SUBDIRS(libltdl)
24 AC_CANONICAL_BUILD
25 AC_CANONICAL_HOST
27 dnl --------------------------------------------------------
28 dnl Figure out development tool stuff
29 dnl --------------------------------------------------------
31 AC_PROG_CC
32 AC_PROG_CXX
33 AC_EXEEXT
34 AC_PROG_INSTALL
35 AM_COMPILER_LIB
37 dnl Set the default values for Flash Version. These are converted into
38 dnl various strings to make JavaScript or ActionScript detectors
39 dnl recognize Gnash as a SWF Player.
40 DEFAULT_FLASH_MAJOR_VERSION="10"
41 DEFAULT_FLASH_MINOR_VERSION="1"
42 DEFAULT_FLASH_REV_NUMBER="999"
43 AC_SUBST(DEFAULT_FLASH_MAJOR_VERSION)
44 AC_SUBST(DEFAULT_FLASH_MINOR_VERSION)
45 AC_SUBST(DEFAULT_FLASH_REV_NUMBER)
47 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_MAJOR_VERSION], ["${DEFAULT_FLASH_MAJOR_VERSION}"], [Default Flash major version])
48 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_MINOR_VERSION], ["${DEFAULT_FLASH_MINOR_VERSION}"], [Default Flash minor version])
49 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_REV_NUMBER], ["${DEFAULT_FLASH_REV_NUMBER}"], [Default Flash revision number])
51 dnl TODO: use host/build/target -- whatever is more appropriate
52 case "${host}" in
53   *-apple-*)
54     DEFAULT_FLASH_PLATFORM_ID="MAC"
55     DEFAULT_FLASH_SYSTEM_OS="MacOS"
56     ;;
57   *-openbsd*)
58     DEFAULT_FLASH_PLATFORM_ID="BSD"
59     DEFAULT_FLASH_SYSTEM_OS="OpenBSD"
60     ;;
61   *-freebsd* | *-kfreebsd*)
62     DEFAULT_FLASH_PLATFORM_ID="BSD"
63     DEFAULT_FLASH_SYSTEM_OS="FreeBSD"
64     ;;
65   *-netbsd*)
66     DEFAULT_FLASH_PLATFORM_ID="BSD"
67     DEFAULT_FLASH_SYSTEM_OS="NetBSD"
68     ;;
69   *-linux-gnu)
70     DEFAULT_FLASH_PLATFORM_ID="LNX"
71     DEFAULT_FLASH_SYSTEM_OS="GNU/Linux"
72     ;;
73   *-linux*)
74     DEFAULT_FLASH_PLATFORM_ID="LNX"
75     DEFAULT_FLASH_SYSTEM_OS="Linux"
76     ;;
77   *-cygwin* | *-mingw* | *-pw32*)
78     DEFAULT_FLASH_PLATFORM_ID="WIN"
79     DEFAULT_FLASH_SYSTEM_OS="Windows"
80     ;;
81   *-*solaris*)
82     DEFAULT_FLASH_PLATFORM_ID="SUN"
83     DEFAULT_FLASH_SYSTEM_OS="Solaris"
84     ;;
85   *-os2*)
86     DEFAULT_FLASH_PLATFORM_ID="OS2"
87     DEFAULT_FLASH_SYSTEM_OS="OS/2"
88     ;;
89   *-sco*)
90     DEFAULT_FLASH_PLATFORM_ID="SCO"
91     DEFAULT_FLASH_SYSTEM_OS="SCO/Unix"
92     ;;
93   *-irix*)
94     DEFAULT_FLASH_PLATFORM_ID="IRX"
95     DEFAULT_FLASH_SYSTEM_OS="IRIX"
96     ;;
97   *-hpux*)
98     DEFAULT_FLASH_PLATFORM_ID="HPX"
99     DEFAULT_FLASH_SYSTEM_OS="HPUX"
100     ;;    
101   *-amigaos*)
102     DEFAULT_FLASH_PLATFORM_ID="OS4"
103     DEFAULT_FLASH_SYSTEM_OS="AmigaOS4"
104     ;;    
105   *-haiku*)
106     DEFAULT_FLASH_PLATFORM_ID="HAIKU"
107     DEFAULT_FLASH_SYSTEM_OS="Haiku"
108     ;;    
109   *-gnu*)
110     DEFAULT_FLASH_PLATFORM_ID="GNU"
111     DEFAULT_FLASH_SYSTEM_OS="GNU/HURD"
112     ;;    
113   *)
114     DEFAULT_FLASH_PLATFORM_ID="UNK"
115     DEFAULT_FLASH_SYSTEM_OS="Unknown"
116     ;;
117 esac
119 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_PLATFORM_ID], ["${DEFAULT_FLASH_PLATFORM_ID}"], [Default 3-letter platform identifier for version string])
120 AC_DEFINE_UNQUOTED([DEFAULT_FLASH_SYSTEM_OS], ["${DEFAULT_FLASH_SYSTEM_OS}"], [Default value for System.capabilities.os])
122 AC_SUBST(DEFAULT_FLASH_PLATFORM_ID)
123 AC_SUBST(DEFAULT_FLASH_SYSTEM_OS)
125 DEFAULT_STREAMS_TIMEOUT=60
126 AC_SUBST(DEFAULT_STREAMS_TIMEOUT)
127 AC_DEFINE_UNQUOTED([DEFAULT_STREAMS_TIMEOUT], [${DEFAULT_STREAMS_TIMEOUT}], [Default streams timeout in seconds])
129 DEFAULT_SOL_SAFEDIR="~/.gnash/SharedObjects"
130 AC_SUBST(DEFAULT_SOL_SAFEDIR)
131 AC_DEFINE_UNQUOTED([DEFAULT_SOL_SAFEDIR], ["${DEFAULT_SOL_SAFEDIR}"], [Default SharedObject base directory])
134 dnl Some things you can only do by looking at the platform name.
135 case "${host}" in
136   powerpc-apple-darwin*)
137     AC_DEFINE([__powerpc64__], [1], [this is a 64 bit powerpc])
138     darwin=yes
139     AC_DEFINE([DARWIN_HOST], [1], [this is a Darwin platform])
140     ;;
141   *-apple-darwin*)
142     darwin=yes
143     AC_DEFINE([DARWIN_HOST], [1], [this is a Darwin platform])
144     ;;
145     dnl Unfortunately, all BSD distributions are not identical, so 
146     dnl as tacky as it is to look for the distribution name, we don't
147     dnl have much choice. The use of these should be avoid as much as possible.
148   *-openbsd*)
149     bsd=yes
150     openbsd=yes
151     AC_DEFINE([OPENBSD_HOST], [1], [this is an OpenBSD platform])
152     ;;
153   *-freebsd* | *-kfreebsd*)
154     bsd=yes
155     freebsd=yes
156     AC_DEFINE([FREEBSD_HOST], [1], [this is a FreeBSD platform])
157     ;;
158   *-netbsd*)
159     bsd=yes
160     netbsd=yes
161     AC_DEFINE([NETBSD_HOST], [1], [this is a NetBSD platform])
162     ;;
163   *-*solaris*)
164     solaris=yes
165     AC_DEFINE([SOLARIS_HOST], [1], [this is a Solaris platform])
166     ;;
167   *-*linux*)
168     linux=yes
169     AC_DEFINE([LINUX_HOST], [1], [this is a Linux platform])
170     ;;
171   *-cygwin* | *-mingw* | *-pw32*)
172     windows=yes
173     AC_DEFINE([WIN32_HOST], [1], [this is a Win32 platform])
174     ;;
175   *64-*-*bsd*)
176     bsd_os=bsd 
177     AC_DEFINE([WORDSIZE], [64], [this is a 64 platform])
178     ;;
179   *-*amigaos*)
180     amigaos4=yes
181     AC_DEFINE([AMIGAOS4_HOST], [1], [this is an AmigaOS4 platform])
182     ;;
183   *-*haiku*)
184     haiku=yes
185     AC_DEFINE([HAIKU_HOST], [1], [this is a Haiku platform])
186     ;;
187   *-gnu*)
188     gnu=yes
189     AC_DEFINE([GNU_HOST], [1], [this is a GNU platform])
190     ;;
191 esac
194 AM_CONDITIONAL(PLUGIN_LINK_UNDEFINED, test x$openbsd_os = xopenbsd)
195 AM_CONDITIONAL(WIN32, test x$windows = xyes)
196 AM_CONDITIONAL(HAIKU, test x$haiku = xyes)
197 AM_CONDITIONAL(AMIGAOS4, test x$amigaos4 = xyes)
199 dnl Get build date for helping us debugging
200 BUILDDATE="`date +%Y%m%d`"
201 AC_SUBST(BUILDDATE)
203 dnl These are required by automake
204 dnl AM_INIT_AUTOMAKE(gnash, "trunk$BUILDDATE")
205 AM_INIT_AUTOMAKE
206 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
207 AM_MAINTAINER_MODE
208 AC_PROG_MAKE_SET
210 dnl AC_DISABLE_STATIC dnl Disable building static libs.
212 AM_GNU_GETTEXT([external])
213 AM_CONDITIONAL(HAS_GETTEXT, test x$ac_cv_path_XGETTEXT != x)
214 dnl AM_GNU_GETTEXT_VERSION(0.15)
216 dnl This is primarily used when compiling for a similar architecture,
217 dnl like pentium->geode, which can use the same compiler, but have
218 dnl different development libraries.
220 dnl I want to deprecate this option for the new sysroot name to be
221 dnl consistant with other tools. This will be left for a while as 
222 dnl a transistion.
223 AC_ARG_WITH(top_level,
224   AC_HELP_STRING([--with-top-level],
225   [top level directory for cross compiling files]),
226   with_top_level=${withval} ;
227   cross_compiling=yes)
229 AC_ARG_WITH(sysroot,
230   AC_HELP_STRING([--with-sysroot],
231   [system root directory for cross compiling]),
232   with_top_level=${withval} ;
233   cross_compiling=yes)
235 dnl Android is a little different when using a standard cross toolchain,
236 dnl so we have to configure especially for it for now. Usually it's
237 dnl something like this:
239 dnl arm-linux-eabi-gcc -Wl,--dynamic-linker -Wl,/system/bin/linker
240 dnl -nostdlib -Wl,-rpath -Wl,/system/lib -Wl,-rpath
241 dnl -Wl,/opt/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib
242 dnl -L/opt/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib
243 dnl -lc -o hello
244 dnl  /opt/android-ndk-r3/build/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
245 dnl Recent versions of G++ (I'm using 4.5 from source
246 android_ndk=no
247 AC_ARG_WITH([android],
248   AC_HELP_STRING([--with-android], [directory where android NDK is installed]),
249         android_ndk=${withval}
250         if test x"${withval}" != x; then
251           android_ndk=${withval}
252         else
253           android_ndk=/opt/android-ndk-r3/build/platforms/android-5/arch-arm
254         fi
256 CROSS_CXXFLAGS=
257 if test x"${android_ndk}" != xno; then
258 dnl  LDFLAGS=-Wl,--dynamic-linker -Wl,/system/bin/linker -nostdlib -Wl,-rpath -Wl,/system/lib -Wl,-rpath -Wl,${android_ndk}/usr/lib -L${android_ndk}/usr/lib -lc -o hello ${android_ndk}/usr/lib/crtbegin_dynamic.o
259 dnl  CROSS_CXXFLAGS=-mandroid -fexceptions -I${android_ndk}/include
260   CROSS_CXXFLAGS=-mandroid -fexceptions
261   if test x"${with_top_level}" = x; then
262     with_top_level=/usr/local/android-arm/sysroot/usr
263     cross_compiling=yes
264   fi
265   ANDROID_NDK=${android_ndk}
266   AC_DEFINE(ANDROID, [1], [This is an Android build])
267 else
268   ANDROID_NDK=
270 AC_SUBST(ANDROID_NDK)
271 AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
273 AC_ARG_WITH(cpu,
274   AC_HELP_STRING([--with-cpu],[specify a cpu when cross compiling.]),
275   [case "${withval}" in
276     geode) with_cpu=geode ;;
277     *)   AC_MSG_ERROR([bad value ${enableval} for --with-cpu option]) ;;
278    esac],with_cpu=none)
280 if test x"$with_cpu" != x"none"; then
281 dnl   $CXXFLAGS="$CXXFLAGS -march=${with_cpu}"
282    cross_compiling=yes
285 AC_C_BIGENDIAN
286 AC_C_CONST
287 AC_C_INLINE
289 AM_CONDITIONAL(ENABLE_SHARED, [test x"${enable_shared}" = xyes])
290 AM_CONDITIONAL(ENABLE_STATIC, [test x"${enable_shared}" = xno])
291 dnl -- AM_CONDITIONAL(STATIC_GUI, test x"${dynamic_gui}" = xno -o x"${enable_shared}" = xno)
293 AC_PATH_PROG(DEJAGNU, runtest)
295 dnl AC_CHECK_LIB(ltdl, lt_dlmutex_register, AC_DEFINE(LT_DLMUTEX, 1, [Has lt_dlmutex_register]),
296 dnl                                         AC_DEFINE(LT_DLMUTEX, 0, [doesn't have lt_dlmutex_register]) )
298 dnl These options are for Cygnal, which collects optional statistics
299 dnl on all the network traffic By default, we turn on statistics
300 dnl collecting for the incoming and outgoing queues, since those are
301 dnl required to be compatiable with FMS 3, and the ActionScript server
302 dnl management API. buffers are the lowest level data storage, this
303 dnl data is the time spent in the queue, and is primarily only used
304 dnl for tuning the queueing API in Gnash. Memoryis the same, it's only
305 dnl used by developers for tuning performance of memory allocations in
306 dnl Gnash.
307 buffers=no
308 que=no
309 memory=no
310 cache=yes
311 stat_proplookup=no
312 AC_ARG_WITH(statistics,
313   AC_HELP_STRING([--with-statistics=], [Specify which statistics features to enable]),
314   if test -n ${withval}; then
315     if test "x${withval}" != "xno"; then
316       extlist="${withval}"
317       withval=`echo ${withval} | tr '\054' ' ' `
318     else
319       extlist=""
320       withval=""
321     fi
322   fi
323   statistics_list=""
324   nstatistics=0
325   while test -n "${withval}" ; do
326     val=`echo ${withval} | cut -d ' ' -f 1`
327     [case "${val}" in
328       buffers)
329         buffers=yes
330         nstatistics=$((nstatistics+1))
331         ;;
332       que)
333         que=yes
334         nstatistics=$((nstatistics+1))
335         ;;
336       memory)
337         memory=yes
338         nstatistics=$((nstatistics+1))
339         ;;
340       cache)
341         cache=yes
342         nstatistics=$((nstatistics+1))
343         ;;
344       proplookup)
345         stat_proplookup=yes
346         nstatistics=$((nstatistics+1))
347         ;;
348       all|ALL)
349         buffers=yes
350         memory=yes
351         queu=yes
352         cache=yes
353         stat_proplookup=yes
354         nstatistics=5           dnl this must be incremented if you add anything
355         ;;
356       *) AC_MSG_ERROR([invalid statistics feature specified: ${withval} given (accept: buffers|que|memory|cache|proplookup|all)])
357         ;;
358       esac]
359     withval=`echo ${withval} | cut -d ' ' -f 2-6`
360     if test "x$val" = "x$withval"; then
361       break;
362     fi
363   done
365 if test x${buffers} = xyes; then
366   statistics_list="${statistics_list} buffers"
367   AC_DEFINE(USE_STATS_BUFFERS, [1], [Support statistics collecting for the queue buffers])
368   AC_MSG_WARN([This option will effect your performance])
371 if test x${memory} = xyes; then
372   statistics_list="${statistics_list} memory"
373   AC_DEFINE(USE_STATS_MEMORY, [1], [Support statistics collecting for all memory profiling])
374   AC_MSG_WARN([This option will effect your performance])
377 if test x${que} = xyes; then
378   statistics_list="${statistics_list} queues"
379   AC_DEFINE(USE_STATS_QUEUE, [1], [Support statistics collecting for the queues])
382 if test x${cache} = xyes; then
383   statistics_list="${statistics_list} cache"
384   AC_DEFINE(USE_STATS_CACHE, [1], [Support statistics collecting for the cache])
387 if test x${stat_proplookup} = xyes; then
388   statistics_list="${statistics_list} proplookup"
389   AC_DEFINE(GNASH_STATS_OBJECT_URI_NOCASE, [1], [Collecting and report stats about ObjectURI case lookups])
390   AC_DEFINE(GNASH_STATS_PROPERTY_LOOKUPS, [1], [Collecting and report stats about property lookups])
391   AC_DEFINE(GNASH_STATS_STRING_TABLE_NOCASE, [1], [Collecting and report stats about string_table::key case lookups])
394 dnl this is just so Makefile can print the same list
395 STATISTICS_LIST="$statistics_list"
396 AC_SUBST(STATISTICS_LIST)
399 # These settings are compile time options for the security
400 # setting for anything that lets gnash exchange data with
401 # other applications. Currently this only supports Shared
402 # Objects and Local Connections. Shared Objects are like
403 # your web browsers cookies, and Local Connections use
404 # shared memory to execute methods remotely, and to
405 # exchange data.
407 # The default is to enable everything, and these can
408 # also be controlled dynamically by the $HOME/.gnashrc
409 # file.
411 solreadonly=no
412 localconnection=yes
413 lctrace=yes
415 AC_ARG_WITH(security,
416   AC_HELP_STRING([--with-security=], [Specify which security features to enable]),
417   if test -n ${withval}; then
418     if test "x${withval}" != "xno"; then
419       extlist="${withval}"
420       withval=`echo ${withval} | tr '\054' ' ' `
421     else
422       extlist=""
423       withval=""
424     fi
425   fi
426   security_list=""
427   nsecurity=0
428   while test -n "${withval}" ; do
429     val=`echo ${withval} | cut -d ' ' -f 1`
430 dnl    security_list="${security_list} ${val}"
431     [case "${val}" in
432       solreadonly)
433         solreadonly=yes
434         nsecurity=$((nsecurity+1))
435         ;;
436       lc)
437         localconnection=yes
438         nsecurity=$((nsecurity+1))
439         ;;
440       lctrace)
441         lctrace=yes
442         nsecurity=$((nsecurity+1))
443         ;;
444       all|ALL)
445         solreadonly=yes
446         lc=yes
447         lctrace=yes
448         nsecurity=3
449         ;;
450       *) AC_MSG_ERROR([invalid security feature specified: ${withval} given (accept: solreadonly|lc|lctrace)])
451         ;;
452       esac]
453     withval=`echo ${withval} | cut -d ' ' -f 2-6`
454     if test "x$val" = "x$withval"; then
455       break;
456     fi
457   done
459 if test xlctrace = xyes; then
460   security_list="${security_list} lctrace"
461   AC_DEFINE(USE_LC_TRACE, [1],
462            [Support LocalConnection])
463   AC_MSG_NOTICE([This build supports LocalConnection tracing])
464   AC_MSG_WARN([This option will effect your performance])
467 if test x$localconnection = xyes; then
468   security_list="${security_list} localconnection"
469   AC_DEFINE(USE_LC, [1],
470                  [Support LocalConnection])
471   AC_MSG_NOTICE([This build supports LocalConnection])
473 if test x$solreadonly = xyes; then
474   security_list="${security_list} solreadonly"
475   AC_DEFINE(USE_SOL_READONLY, [1],
476                  [Shared Objects are read-only])
477   AC_MSG_NOTICE([Shared Objects are read-only])
479 SECURITY_LIST="$security_list"
480 AC_SUBST(SECURITY_LIST)
482 dnl For Haiku, we know the sysroot is in a non-standard place
483 dnl it is important that -lagg comes before -lbe
484 if test x"${haiku}" = xyes; then
485   HAIKU_LIBS=-lbe
486   AC_SUBST(HAIKU_LIBS)
489 dnl Darwin uses libtool instead of ar to produce libraries. We determine which one
490 dnl we have here now. For some reason on Darwin, we don't get the
491 dnl count from grep via stdin correctly. Writing a temp file does the
492 dnl trick, so although it's ugly, that's what we gotta do...
493 AC_MSG_CHECKING([which type of library archiver we have])
494 rm -f .tmp
495 libtool > .tmp 2>&1
496 archiver=`grep -c dynamic .tmp 2>&1`
497 rm -f .tmp
498 dnl is there any good way to report what we found here?
499 AC_MSG_RESULT()
500 if test x"${archiver}" != x && test "${archiver}" -eq 1; then
501 dnl   if test "$enable_shared" = no; then
502 dnl     AR="libtool -static"
503 dnl   else
504 dnl     AR="libtool -dynamic"
505 dnl     CXXFLAGS="${CXXFLAGS} -dynamic"
506    export MACOSX_DEPLOYMENT_TARGET="10.3"
507 dnl   fi
508 dnl   AR_FLAGS="-o"
509    darwin=yes
510 else
511    darwin=no
514 dnl When cross compiling, limit the search directories cause otherwise
515 dnl we may get the host headers or libraries by accident. These values
516 dnl are exported, so all the other configure tests in macros/*.m4 use
517 dnl these same settings rather than duplicating them like we used to.
518 dnl To override thise, use the --with-*-incl= and --with-*-libs=
519 dnl options to configure.
520 if test x$cross_compiling = xyes; then
521   AC_MSG_NOTICE([Configuring Gnash for cross compilation])
522   export pkgroot="`$CXX -print-search-dirs | grep "install:" | sed -e 's/install: //' -e 's:/lib/gcc/.*::'`"
523   dnl pkgroot only works correctly with builds of cross tools not in
524   dnl /usr, ie... installed from the distribution packages, or just
525   dnl plain installed in the system tools. This contaminates configure
526   dnl when building for variations of the same basic architecture,
527   dnl like i686-linux -> i586-mingw32.
528   if test x${pkgroot} = "/usr"; then
529     export pkgroot=""
530   fi
531   export incllist="`eval echo ${with_top_level}/include ${pkgroot}/${host_alias}/include ${pkgroot}/include`"
532   export libslist="`eval echo ${with_top_level}/lib ${pkgroot}/${host_alias}/lib ${pkgroot}/lib64 ${pkgroot}/lib32 ${pkgroot}/lib`"
533   export pathlist="`eval echo ${pkgroot}/${host_alias}/bin:${pkgroot}/bin`"
534   npapi=no
535 else
536   AC_MSG_NOTICE([Configuring Gnash for native compilation])
537   export incllist="`eval cat ${srcdir}/macros/incllist`"
538   export libslist="`eval cat ${srcdir}/macros/libslist`"
539   export pathlist=$PATH
542 if test x"${android_ndk}" != xno; then
543    incllist="${android_ndk}/include ${incllist}"
546 AM_CONDITIONAL(CROSS_COMPILING, [ test x$cross_compiling = xyes ])
548 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
549 dnl !! 
550 dnl !! IMPORTANT NOTICE 
551 dnl !!
552 dnl !!  Any call to GNASH_PATH_XXX must be be given *after* this snippet.
553 dnl !!  This is to ensure that PKG_CONFIG, cross_compiling and incllist are
554 dnl !!  properly set at the time of call.
555 dnl !!
556 dnl !!  Also GNASH_PKG_FIND has to be called later. Not sure
557 dnl !!  why but calling before breaks detection of CPP (see
558 dnl !!  gnash-dev mailing archives for June 12 2009
559 dnl !!  http://lists.gnu.org/archive/html/gnash-dev/2009-06/index.html
560 dnl !! 
561 dnl !! 
562 dnl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
564 dnl Check for PKG_CONFIG before any GNASH_PATH call
565 PKG_PROG_PKG_CONFIG
567 dnl --------------------------------------------------------
568 dnl  GUI selection
569 dnl --------------------------------------------------------
571 build_haiku=no
572 build_aos4=no      dnl AmigaOS4 GUI
573 build_kde3=no      dnl WARNING: doesn't work (see https://savannah.gnu.org/bugs/index.php?31782)
574 build_kde4=no
575 build_qtopia3=no
576 build_qtopia4=no
577 build_gtk=no
578 build_fb=no                     dnl Raw framebuffer
579 build_fltk=no
580 build_sdl=no
581 build_riscos=no                 dnl Native OS2 GUI
582 build_aqua=no                   dnl Native MacOSX
583 build_hildon=no                 dnl Native LIMO
584 build_alp=no                    dnl Acess Linux Platform using Hiker
585 build_dump=no
586 AC_ARG_ENABLE(gui,
587   AC_HELP_STRING([--enable-gui=], [Enable support for the specified GUI toolkits (default=gtk,kde4)]),
588   [if test -n ${enableval}; then
589     enableval=`echo ${enableval} | tr '\054' ' ' `
590   fi
591   while test -n "${enableval}" ; do
592     val=`echo ${enableval} | cut -d ' ' -f 1`
593     case "${val}" in
594       gtk|GTK|gtk2|GTK2)
595         build_gtk=yes
596         ;;
597       kde3|KDE3)
598         build_kde3=yes
599         ;;
600       kde4|KDE4)
601         build_kde4=yes
602         ;;
603       qtopia3|QTOPIA3)
604         build_qtopia3=yes
605         ;;
606       qtopia4|QTOPIA4)
607         build_qtopia4=yes
608         ;;
609       sdl|SDL)
610         build_sdl=yes
611         ;;
612       aqua|AQUA|Aqua)
613         build_aqua=yes
614         ;;
615       riscos|RISCOS|RiscOS)
616         build_riscos=yes
617         ;;
618       fltk|FLTK|fltk2|FLTK2)
619         build_fltk=yes
620         ;;
621       fb|FB)
622         build_fb=yes
623         ;;
624       aos4|AOS4)
625         build_aos4=yes
626         ;;
627       haiku|HAIKU)
628         build_haiku=yes
629         ;;
630       dump|DUMP)
631         build_dump=yes
632         ;;
633       all|ALL)
634         build_dump=yes
635         dnl BSD doesn't have a framebuffer interface
636         if test x${linux} = xyes; then
637           build_fb=yes
638         fi
639         build_kde4=yes
640         build_sdl=yes
641         ;;
642       *) AC_MSG_ERROR([invalid gui ${enableval} given (accept: gtk|kde3|kde4|fltk|sdl|riscos|aqua|fb|qtopia3|qtopia4|dump|aos4|haiku)])
643          ;;
644       esac
645     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
646     if test "x$val" = "x$enableval"; then
647       break;
648     fi
649   done],
650   [ dnl Run the following code if no --enable-gui is given
651   build_fb=auto
652   if test x"${openbsd_os}" = x"openbsd"; then
653     build_kde3=yes;
654     build_gtk=yes;
655   else if test x"${haiku}" = xyes; then
656     build_haiku=yes;
657   else
658     build_kde4=auto
659     build_gtk=yes
660     build_dump=auto
661   fi
662   fi
663   ]
666 if test x"${build_haiku}" = xyes; then
667   if test x"$haiku" != xyes; then
668     echo "        ERROR: Can not build Haiku gui outside of Haiku
669 operating system." >&3
670   fi
673 dnl We can use Xephyr or fbe to create a fake framebuffer instead of real
674 dnl video memory. This lets us test on a desktop machine.
675 AC_ARG_WITH(fakefb,
676 AC_HELP_STRING([--with-fakefb],
677  [specify a file to be mapped instead of a real framebuffer]),
678  with_fakefb=${withval})
680 fakefb=
681 if test x"${with_fakefb}" = xyes; then
682   dnl This is the default file name fbe uses.
683   fakefb=/tmp/fbe_buffer
684 else
685   if test x"${with_fakefb}" != x; then
686     fakefb=${with_fakefb}
687   fi
689 FAKEFB=${fakefb}
690 AC_SUBST(FAKEFB)
692 if test x"${fakefb}" != x; then
693     AC_DEFINE(ENABLE_FAKE_FRAMEBUFFER, [1], [Enable using a file instead of a real framebuffer])
697 dnl --------------------------------------------------------
698 dnl  Sound handler selection
699 dnl --------------------------------------------------------
700 add_sound=
701 build_sound_none=no
702 build_sound_sdl=no
703 build_sound_ahi=no
704 build_sound_mkit=no
705 AC_ARG_ENABLE(sound,
706   AC_HELP_STRING([--enable-sound=[[sdl|ahi|mkit]]], [Use the specified sound handler (default=sdl)]),
707      [case "${enableval}" in
708       sdl|SDL|Sdl)
709         build_sound_sdl=yes
710         add_sound="sdl"
711         ;;
712       none|NONE|None)
713         build_sound_none=yes
714         add_sound="none"
715         ;;
716       ahi|AHI|Ahi)
717         build_sound_ahi=yes
718         add_sound="ahi"
719         ;;
720       mkit|MKIT|Mkit)
721         build_sound_mkit=yes
722         add_sound="mkit"
723         ;;
724      esac],
725   [if test x"${haiku}" = xyes; then
726      build_sound_mkit=yes
727      add_sound="mkit"
728    else
729      if test x${build_sound_none} = xno; then
730        build_sound_sdl=yes
731        add_sound=sdl
732      fi
733    fi]
736 dnl --------------------------------------------------------
737 dnl  Media handler selection
738 dnl --------------------------------------------------------
739 build_media_gst=no
740 build_media_ffmpeg=auto
741 build_media_none=no
742 AC_ARG_ENABLE(media,
743   AC_HELP_STRING([--enable-media=handler],
744     [Enable media handling support using the specified handler: gst, ffmpeg or none (no sound) [[gst]] ]),
745   
746     if test -n ${enableval}; then
747       enableval=`echo ${enableval} | tr '\054' ' ' `
748     fi
749     dnl When --enable-media is given, all media defaults to off
750     dnl except the explicitly enabled ones
751     build_media_ffmpeg=no
752     build_media_gst=no
753     while test -n "${enableval}"; do
754       val=`echo ${enableval} | cut -d ' ' -f 1`
755       [case "${val}" in
756         GST|gst)
757           build_media_gst=yes
758           media_list="${media_list}gst "
759           ;;
760         FFMPEG|ffmpeg)
761           build_media_ffmpeg=yes
762           media_list="${media_list}ffmpeg "
763           ;;
764         no|NO|none)
765           build_media_none=yes
766           media_list="none"
767           ;;
768         *)
769           AC_MSG_ERROR([bad value ${enableval} for --enable-media option])
770           ;;
771      
772       esac]
773       enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
774       if test "x$val" = "x$enableval"; then
775         break;
776       fi
777     done,
778     [if test x"${build_haiku}" = xyes; then
779         build_media_ffmpeg=yes
780         build_media_haiku=yes
781         media_list="ffmpeg haiku"
782      else
783         build_media_gst=yes
784         media_list="gst"
785     fi]
788 dnl If no render is selected, and media handling isn't disabled, them enable gst
789 if test x${build_media_none} = xno -a x${build_media_gst} = xno -a x${build_media_ffmpeg} = xno; then
790   build_media_gst=yes
793 if test x"$build_media_ffmpeg" != x"no"; then # yes or auto
794   GNASH_PATH_FFMPEG
795   if test x"${build_media_ffmpeg}" = xauto; then
796     dnl TODO: have GNASH_PATH_FFMPEG set ${has_ffmpeg}
797     if test x"$FFMPEG_LIBS" != x; then
798       build_media_ffmpeg=yes
799       media_list="${media_list} ffmpeg"
800     else
801       build_ogl=no
802     fi
803   fi
806 MEDIA_CONFIG="${media_list}"
807 AC_SUBST(MEDIA_CONFIG)
810 dnl -------------------------------
811 dnl Input Device selection
812 dnl -------------------------------
814 dnl Multiple input devices are supported. These can all work in
815 dnl varying combinations, so several may be listed. These are only
816 dnl required when using the Framebuffer, as without the X11 desktop,
817 dnl Gnash has to handle all these internally. This can get
818 dnl messy, as one might want to use a touchscreen with a normal mouse
819 dnl or keyboard attached. 
820 dnl By default, don't build any of these, as they are only for the Framebuffer
821 dnl running without X11.
822 if test x"${build_fb}" = xyes; then
823 build_ps2mouse=yes
824 build_ps2keyboard=no
825 build_input_events=yes
826 build_tslib=yes
827 input_events="PS/2 Mouse, Input Devices, Touchscreen via Tslib"
828 else
829 build_ps2mouse=no
830 build_ps2keyboard=no
831 build_input_events=no
832 build_tslib=no
833 input_events=
835 AC_ARG_ENABLE(input,
836   AC_HELP_STRING([--enable-input=], [Enable support for the specified input devices for the framebuffer GUI (default=ps2mouse|ps2keyboard|events|touchscreen)]),
837   [if test -n ${enableval}; then
838     enableval=`echo ${enableval} | tr '\054' ' ' `
839   fi
840   while test -n "${enableval}" ; do
841     val=`echo ${enableval} | cut -d ' ' -f 1`
842     case "${val}" in
843       ps2m*|PS2m*|m*|M*)        dnl a PS/2 style mouse
844         build_ps2mouse=yes
845         input_events="${input_events}, PS/2 Mouse"
846         ;;
847       ps2k*|PS2K*|k*|K*)        dnl a PS/2 style keyboard
848         build_ps2keyboard=yes
849         input_events="${input_events}, PS/2 Keyboard"
850         ;;
851       i*|I*|ev*|Ev*)    dnl use the new Input Event, which supports both
852         input_events="${input_events}, Input Event Device"
853         build_input_events=yes
854         ;;
855       t*|T*) dnl use a touchscreen with tslib, which works like a mouse
856         build_tslib=yes
857         input_events="${input_events}, Touchscreen"
858         ;;
859       *) AC_MSG_ERROR([invalid input device list! ${enableval} given (accept: ps2mouse|keyboard|events,touchscreen)])
860          ;;
861       esac
862     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
863     if test "x$val" = "x$enableval"; then
864       break;
865     fi
866   done],
869 if test x"${build_tslib}" = xyes; then
870   AC_DEFINE(USE_TSLIB, [1], [Use a tslib supported touchscreen])
871   GNASH_PKG_FIND(ts, [tslib.h], [Touchscreen library], ts_config)
873 AM_CONDITIONAL(ENABLE_TSLIB, [test x${ac_cv_header_tslib_h} != xno])
875 if test x"${build_ps2mouse}" = xyes; then
876   AC_DEFINE(USE_MOUSE_PS2, [1], [Add support for a directly using a PS/2 Mouse])
878 AM_CONDITIONAL(ENABLE_MOUSE, [test x"${build_ps2mouse}" = xyes])
880 if test x"${build_ps2keyboard}" = xyes; then
881   AC_DEFINE(USE_KEYBOARD_PS2, [1], [Add support for directly using a PS/2 Keyboard])
883 if test x"${build_input_events}" = xyes; then
884   AC_DEFINE(USE_INPUT_EVENTS, [1], [Add support for a directly using Linux Input Event Devices])
886 AM_CONDITIONAL(ENABLE_INPUT_EVENTS, [test x"${build_input_events}" = xyes])
887 dnl this is enabled if we have any input devices at all
888 AM_CONDITIONAL(ENABLE_INPUT_DEVICES, [test x"${input_events}" != x])
890 dnl -------------------------------
891 dnl Renderer Selection
892 dnl -------------------------------
893 input_events=
894 dnl By default, we want to to build all renderers
895 build_ovg=no
896 build_gles=no
897 build_ogl=auto
898 build_agg=yes
899 build_cairo=yes
900 renderer_list="AGG Cairo"
901 nrender=3
902 AC_ARG_ENABLE(renderer,
903   AC_HELP_STRING([--enable-renderer=], [Enable support for the specified renderers (ogl|gles|cairo|agg|all, default=all)]),
904   if test -n ${enableval}; then
905     if test "x${enableval}" != "xno" -o "x${enableval}" != "xnone" ; then
906       renderer_list="none"
907       enableval=`echo ${enableval} | tr '\054' ' ' `
908     else
909       renderer_list=""
910       enableval=""
911     fi
912   fi
913   renderer_list=""
914   nrender=0
915   build_ovg=no
916   build_ogl=no
917   build_gles=no
918   build_agg=no
919   build_cairo=no
920   while test -n "${enableval}" ; do
921     val=`echo ${enableval} | cut -d ' ' -f 1`
922     [case "${val}" in
923       no*|NO*)
924         renderer_list="none"
925         build_ovg=no
926         build_ogl=no
927         build_gles=no
928         build_agg=no
929         build_cairo=no
930         nrender=1
931         ;;
932       all|ALL)
933         renderer_list="OpenGL, Cairo, AGG"
934         build_ogl=yes
935         build_agg=yes
936         build_cairo=yes
937         build_ovg=yes
938         nrender=4
939         ;;
940       ogl|OGL|OpenGL|opengl)
941         renderer_list="${renderer_list} OpenGL"
942         build_gles=no
943         build_ogl=yes
944         nrender=$((nrender+1))
945         ;;
946       gles|GLES|GL-ES|gl-es)
947         renderer_list="${renderer_list} OpenGL-ES"
948         build_gles=yes
949         build_ogl=no
950         nrender=$((nrender+1))
951         ;;
952       ovg|OVG|OpenVG|openvg)
953         renderer_list="${renderer_list} OpenVG"
954         build_ogv=yes
955         nrender=$((nrender+1))
956         ;;
957       agg|AGG)
958         renderer_list="${renderer_list} AGG"
959         build_agg=yes
960         nrender=$((nrender+1))
961         ;;
962       cairo|CAIRO|Cairo*)
963         renderer_list="${renderer_list} Cairo"
964         build_cairo=yes
965         nrender=$((nrender+1))
966         ;;
967       *) AC_MSG_ERROR([invalid renderer specified: ${enableval} given (accept:  (ogl|cairo|agg|all)])
968         ;;
969       esac]
970     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
971     if test "x$val" = "x$enableval"; then
972       break;
973     fi
974   done
976 dnl 16 bit: RGB555, RGB565
977 dnl 24 bit: RGB24, BGR24
978 dnl 32 bit: RGBA32, BGRA32
979 pixelformat=all
980 AC_ARG_WITH(pixelformat,
981   AC_HELP_STRING([--with-pixelformat=], [Use the specified pixel format for AGG (default=all)]),
982   [if test -n ${withval}; then
983     pixelformat="${withval}"
984     withval=`echo ${withval} | tr '\054' ' ' `
985   fi
986   while test -n "${withval}" ; do
987     val=`echo ${withval} | cut -d ' ' -f 1`
988     case "${val}" in
989       all)
990         # allow special value "all" set by user (handled below)
991         ;; 
992       argb32|ARGB32)
993         AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32])
994         ;;
995       abgr32|ABGR32)
996         AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32])
997         ;;
998       bgra32|BGRA32)
999         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1000         ;;
1001       bgr24|BGR24)
1002         AC_DEFINE(PIXELFORMAT_BGR24, [1], [BGR24])
1003         ;;
1004       rgba32|RGBA32)
1005         AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32])
1006         ;;
1007       rgb24|RGB24)
1008         AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24])
1009         ;;
1010       rgb555|RGB555)
1011         AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555])
1012         ;;
1013       rgb565|RGB565)
1014         AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565])
1015         ;;
1016       *) AC_MSG_ERROR([invalid pixel format ${withval} given (accept: all|RGB555|RGB565|RGB24|BGR24|BGRA32|RGBA32|ARGB32|ABGR32)])
1017          ;;
1018       esac
1019     withval=`echo ${withval} | cut -d ' ' -f 2-6`
1020     if test "x$val" = "x$withval"; then
1021       break;
1022     fi
1023   done],
1024   [if test x$build_haiku = xyes -a x$build_sdl != xyes; then
1025         AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32])
1026         pixelformat=BGRA32
1027    fi]
1030 if test x$pixelformat = xall; then
1031   if test x$build_agg = xyes; then
1032     ### The fact that we're building GTK doesn't mean we're not also
1033     ### building KDE or SDL, each needing its own pixel format !
1034     #if test x$build_gtk = xyes; then
1035     #  AC_DEFINE(PIXELFORMAT_RGB24, [1], [RGB24 pixel format])
1036     #  pixelformat="RGB24"
1037     #else
1038       AC_DEFINE(PIXELFORMAT_RGB555, [1], [RGB555 pixel format])
1039       AC_DEFINE(PIXELFORMAT_RGB565, [1], [RGB565 pixel format])
1040       AC_DEFINE(PIXELFORMAT_RGB24,  [1], [RGB24 pixel format])
1041       AC_DEFINE(PIXELFORMAT_BGR24,  [1], [BGR24 pixel format])
1042       AC_DEFINE(PIXELFORMAT_RGBA32, [1], [RGBA32 pixel format])
1043       AC_DEFINE(PIXELFORMAT_BGRA32, [1], [BGRA32 pixel format])
1044       AC_DEFINE(PIXELFORMAT_ARGB32, [1], [ARGB32 pixel format])
1045       AC_DEFINE(PIXELFORMAT_ABGR32, [1], [ABGR32 pixel format])
1046     #fi
1047   fi
1050 if test x"${build_ogl}" != xno; then # yes or auto
1051   GNASH_PATH_OPENGL
1052   if test x"${build_ogl}" = xauto; then
1053     if test xyes = x"${has_opengl}"; then
1054       build_ogl=yes
1055       renderer_list="${renderer_list} OpenGL"
1056     else
1057       build_ogl=no
1058     fi
1059   fi
1062 AM_CONDITIONAL(BUILD_OVG_RENDERER, [ test x$build_ovg = xyes ])
1063 AM_CONDITIONAL(BUILD_GLES_RENDERER, [ test x$build_gles = xyes ])
1064 AM_CONDITIONAL(BUILD_OGL_RENDERER, [ test x$build_ogl = xyes])
1065 AM_CONDITIONAL(BUILD_AGG_RENDERER, [ test x$build_agg = xyes ])
1066 AM_CONDITIONAL(BUILD_CAIRO_RENDERER, [ test x$build_cairo = xyes ])
1068 if test x"${build_ogl}" = xyes; then
1069    AC_DEFINE([RENDERER_OPENGL], [], [Use OpenGL renderer])
1072 if test x"$build_agg" = xyes; then
1073   AC_DEFINE([RENDERER_AGG], [], [Use AntiGrain renderer])
1076 if test x"$build_cairo" = xyes; then
1077   GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1078   AC_DEFINE([RENDERER_CAIRO], [], [Use cairo renderer])
1081 if test x"${build_agg}" = xyes; then
1082    GNASH_PATH_AGG
1085 dnl VA API is used by default for all H.264 videos. HW requirements:
1086 dnl     * AMD GPUs with UVD2 and xvba-video VA driver
1087 dnl     * NVIDIA GPUs with vdpau-video VA driver
1088 dnl     * All HW with a VA driver supporting the VA/GLX extensions or
1089 dnl     vaPutSurface(Pixmap,...). This may include the Intel
1090 dnl     Moorestown platform and future G45 VA driver.
1091 dnl NOTE: it is possible to use Gnash/VAAPI on platforms with an Intel
1092 dnl GMA500 but you currently will have to build the AGG renderer
1093 dnl instead of the OGL (OpenGL) one. 
1095 build_vaapi=yes
1096 hwaccel_list="VAAPI"
1097 nhwaccel=1
1098 AC_ARG_ENABLE(hwaccel,
1099   AC_HELP_STRING([--enable-hwaccel], [Specify which accleration to support to enable (none,vaapi,omap)]),
1100   if test -z ${enableval}; then
1101       hwaccel_list="none"
1102       nhwaccel=0
1103       enableval=""
1104   fi
1105   while test -n "${enableval}" ; do
1106     val=`echo ${enableval} | cut -d ' ' -f 1`
1107     [case "${val}" in
1108       no*|NO*)
1109         hwaccel_list="none"
1110         build_vaapi=no
1111         build_omap=no
1112         nhwaccel=0
1113         ;;
1114       va*|VA*)
1115         hwaccel_list="${hwaccel_list} vaapi"
1116         build_vaapi=yes
1117         nhwaccel=$((nhwaccel+1))
1118         ;;
1119       all|ALL)
1120         hwaccel_list="VAAPI OMAP"
1121         nhwaccel=2
1122         build_omap=yes
1123         build_vaapi=yes
1124         ;;
1125       omap*|OMAP*)
1126         hwaccel_list="${hwaccel_list} omap"
1127         build_omap=yes
1128         nhwaccel=$((nhwaccel+1))
1129         ;;
1130       *) AC_MSG_ERROR([invalid hwaccel feature specified: ${enableval} given (accept: none,vaapi,omap)])
1131         ;;
1132       esac]
1133     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1134     if test "x$val" = "x$enableval"; then
1135       break;
1136     fi
1137   done
1140 if test x"${have_ffmpeg_vaapi}" = x"yes" -a x"${build_vaapi}" = x"yes"; then
1141   use_libva=no
1142   use_libva_x11=no
1143   use_libva_glx=no
1144   dnl if the version of FFmpeg is recent enough, (r20957, 52.45.0), then
1145   dnl look for VAAPI support so we can use use the VAAPI enabled FFmpeg.
1146   if test x"${have_ffmpeg_vaapi}" = xyes; then
1147     use_libva=yes
1148     GNASH_PKG_FIND([libva],
1149       [va/va.h],
1150       [Video Acceleration API],
1151       vaInitialize
1152     )
1154     use_libva_x11=yes
1155     GNASH_PKG_FIND([libva_x11],
1156       [va/va_x11.h],
1157       [VA API (X11 display)],
1158       vaGetDisplay,
1159       [], [-lva-x11]
1160     )
1162     if test x$build_ogl = xyes; then
1163       use_libva_glx=yes
1164       GNASH_PKG_FIND([libva_glx],
1165         [va/va_glx.h],
1166         [VA API (GLX display)],
1167         vaGetDisplayGLX,
1168         [], [-lva-glx]
1169       )
1170     fi
1171   fi
1174 dnl libVA drivers. We declare conditional for both the option being
1175 dnl selected, as well as whether or not it's found. This we can
1176 dnl generate better error handling if it's not found.
1177 AM_CONDITIONAL(BUILD_OMAP, test x"${build_omap}" = xyes)
1178 AM_CONDITIONAL(USE_VAAPI, test x"${use_libva}" = xyes)
1180 dnl Only build the vaapi support if we have a version of FFmpeg that
1181 dnl supports it.
1182 if test x"${have_ffmpeg_vaapi}" = x"yes" -a x"${found_libva_incl}" = xyes; then
1183   build_vaapi=yes
1184   hwaccel_list="VAAPI"
1185   nhwaccel=1
1186 else
1187   build_vaapi=no
1188   hwaccel_list=""
1189   nhwaccel=0
1192 dnl Until the hwaccel patches in FFmpeg wind up in the ffmpeg-plugin,
1193 dnl restrict using HW Accel to using FFmpeg directly.
1194 dnl test xyes = xyes -a ( x != xyes -o x != xyes )
1195 if test x"${build_vaapi}" = x"yes" -a x"${have_ffmpeg}" != x"yes"; then
1196   AC_MSG_ERROR(["Hardware acceleration currently not supported unless using FFmpeg."])
1199 AM_CONDITIONAL(HAVE_VAAPI, test x"${found_libva_incl}" = xyes)
1200 AM_CONDITIONAL(HAVE_VAAPI_GLX, test x"${found_libva_glx_incl}" = xyes)
1201 AM_CONDITIONAL(HAVE_VAAPI_X11, test x"${found_libva_x11_incl}" = xyes)
1204 AC_PATH_PROG(PERL, perl)
1205 AM_CONDITIONAL(HAVE_PERL, test x"$PERL" != x)
1207 AC_PATH_PROG(CSOUND, csound)
1208 AM_CONDITIONAL(HAVE_CSOUND, test x"$CSOUND" != x)
1210 AC_PATH_PROG(GIT, git)
1211 AC_SUBST(GIT)
1213 dnl -------------------------------------
1214 dnl LIRC
1215 dnl -------------------------------------
1216 AC_ARG_ENABLE(lirc, AC_HELP_STRING([--enable-lirc], [Disable support for Lirc]),
1217 [case "${enableval}" in
1218   yes) lirc=yes ;;
1219   no)  lirc=no ;;
1220   *)   AC_MSG_ERROR([bad value ${enableval} for enable-lirc option]) ;;
1221 esac], lirc=no)
1223 if test x"$lirc" = x"yes"; then
1224   AC_DEFINE([USE_LIRC], [], [LIRC daemon support])
1226 AM_CONDITIONAL(USE_LIRC, test x$lirc = xyes)
1228 dnl --------------------------------------------------------
1229 dnl Extension selection
1230 dnl --------------------------------------------------------
1231 ext_dejagnu=no
1232 ext_mysql=no
1233 ext_fileio=no
1234 ext_gtk=no
1235 ext_lirc=no
1236 ext_dbus=no
1237 ext_all=no
1238 ext_launcher=no
1239 extensions_list=
1240 nextensions=0
1241 AC_ARG_ENABLE(extensions,
1242   AC_HELP_STRING([--enable-extensions=], [Specify which extensions to build]),
1243   if test -n ${enableval}; then
1244     if test "x${enableval}" != "xno"; then
1245       extlist="${enableval}"
1246       enableval=`echo ${enableval} | tr '\054' ' ' `
1247     else
1248       extlist=""
1249       enableval=""
1250     fi
1251   fi
1252   nextensions=0
1253   while test -n "${enableval}" ; do
1254     val=`echo ${enableval} | cut -d ' ' -f 1`
1255     extensions_list="${extensions_list} ${val}"
1256     [case "${val}" in
1257       dejagnu|DEJAGNU|dj|DJ)
1258         AC_DEFINE(USE_DEJAGNU_EXT, [1], [Build the DejaGnu extension])
1259         AC_MSG_NOTICE([Adding DejaGnu extension])
1260         ext_dejagnu=yes
1261         nextensions=$((nextensions+1))
1262         ;;
1263       mysql|MYSQL|sql|SQL)
1264         AC_DEFINE(USE_MYSQL_EXT, [1], [Build the MySQL extension])
1265         AC_MSG_NOTICE([Adding MySql extension])
1266         ext_mysql=yes
1267         nextensions=$((nextensions+1))
1268         ;;
1269       fileio|FILEIO|io|IO)
1270         AC_DEFINE(USE_FILEIO_EXT, [1], [Build the FileIO extension])
1271         AC_MSG_NOTICE([Adding FileIO extension])
1272         ext_fileio=yes
1273         nextensions=$((nextensions+1))
1274         ;;
1275       gtk|GTK|gtk2|GTK2)
1276         AC_DEFINE(USE_GTK_EXT, [1], [Build the GTK extension])
1277         ext_gtk=yes
1278         nextensions=$((nextensions+1))
1279         ;;
1280       launcher|LAUNCHER)
1281         AC_DEFINE(USE_LAUNCHER_EXT, [1], [Build the Launcher extension])
1282         ext_launcher=yes
1283         nextensions=$((nextensions+1))
1284         ;;
1285       lirc|LIRC)
1286         AC_DEFINE(USE_LIRC_EXT, [1], [Build the LIRC extension])
1287         ext_lirc=yes
1288         nextensions=$((nextensions+1))
1289         ;;
1290       dbus|DBUS)
1291         AC_DEFINE(USE_DBUS_EXT, [1], [Build the DBUS extension])
1292         ext_dbus=yes
1293         nextensions=$((nextensions+1))
1294         ;;
1295       all|ALL)
1296         AC_DEFINE(USE_GTK_EXT, [1], [Build all the extensions])
1297         ext_dejagnu=yes
1298         ext_mysql=yes
1299         ext_fileio=yes
1300         ext_gtk=yes
1301         ext_lirc=yes
1302         ext_dbus=yes
1303         ext_launcher=yes
1304         ext_all=yes
1305         nextensions=9
1306         ;;
1307       *) AC_MSG_ERROR([invalid extension specified: ${enableval} given (accept: MYSQL|DEJAGNU|FILEIO|GTK|LIRC|DBUS|METOME|ALL)])
1308          ;;
1309       esac]
1310     enableval=`echo ${enableval} | cut -d ' ' -f 2-6`
1311     if test "x$val" = "x$enableval"; then
1312       break;
1313     fi
1314   done
1315   EXTENSIONS_LIST="$extensions_list"
1316   AC_SUBST(EXTENSIONS_LIST)
1319 if test x$ext_dbus = xyes; then
1320   GNASH_PATH_DBUS
1323 if test x$ext_mysql = xyes; then
1324   GNASH_PATH_MYSQL
1327 AM_CONDITIONAL(BUILD_DEJAGNU_EXT, [ test x$ext_dejagnu = xyes ])
1328 AM_CONDITIONAL(BUILD_FILEIO_EXT, [ test x$ext_fileio = xyes ])
1329 AM_CONDITIONAL(BUILD_MYSQL_EXT, [ test x$ext_mysql = xyes ])
1330 AM_CONDITIONAL(BUILD_LAUNCHER_EXT, [ test x$ext_launcher = xyes ])
1331 AM_CONDITIONAL(BUILD_GTK_EXT, [ test x$ext_gtk = xyes ])
1332 AM_CONDITIONAL(BUILD_LIRC_EXT, [ test x$ext_lirc = xyes ])
1333 AM_CONDITIONAL(BUILD_DBUS_EXT, [ test x$ext_dbus = xyes ])
1334 AM_CONDITIONAL(BUILD_EXTENSIONS, [ test -n "$extensions_list"])
1336 GNASH_PKG_CLASSFILE
1338 ltmajor=0
1339 AC_MSG_CHECKING([For the version of libtool])
1340 if test -d ${srcdir}/libltdl/libltdl; then
1341   ltver=2.x
1342 else
1343   ltver=1.x
1345 ltmajor=`echo $ltver | cut -d '.' -f 1`
1346 AC_MSG_RESULT([$ltver])
1347 if test $ltmajor -eq 1; then
1348   AC_LIBLTDL_CONVENIENCE
1349   AC_LIBTOOL_DLOPEN
1350   if test x"${windows}" = x"yes"; then
1351     dnl The following macro may be empty; the colon is necessary
1352     dnl in this case to avoid an empty if statement (which is a syntax error).
1353     AC_LIBTOOL_WIN32_DLL
1354     :
1355   fi
1356   AC_DISABLE_STATIC
1357 else
1358   LT_INIT([dlopen win32-dll disable-static])
1359   LTDL_INIT([convenience recursive])
1361 AC_LIB_LTDL
1363 DLOPEN="-dlopen"
1364 DLPREOPEN="-dlpreopen"
1365 AC_SUBST(DLOPEN)
1366 AC_SUBST(DLPREOPEN)
1368 dnl dnl Substitute INCLTDL and LIBLTDL in the Makefiles
1369 AC_SUBST(INCLTDL)
1370 AC_SUBST(LIBLTDL)
1372 AC_PROG_LIBTOOL
1373 AC_SUBST(LIBTOOL_DEPS)
1375 AM_CONDITIONAL(LIBLTDL2, [test $ltmajor -eq 2])
1376 AM_CONDITIONAL(LIBLTDL1, [test $ltmajor -eq 1])
1377 AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)
1378 AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
1380 dnl --------------------------------------------------------
1381 dnl SOL dir
1382 dnl --------------------------------------------------------
1383 soldir=/tmp
1384 AC_ARG_WITH(soldir,
1385  AC_HELP_STRING([--with-soldir],
1386  [directory for .sol files]),
1387  with_soldir=${withval})
1388 if test x${with_soldir} != x; then
1389   soldir=${with_soldir}
1391 SOLDIR=${soldir}
1392 AC_SUBST(SOLDIR)
1394 dnl --------------------------------------------------------
1395 dnl AVM2
1396 dnl --------------------------------------------------------
1397 dnl AC_ARG_ENABLE(avm2,
1398 dnl   AC_HELP_STRING([--enable-avm2], [Enable support for AS3]),
1399 dnl   [case "${enableval}" in
1400 dnl     yes) avm2=yes ;;
1401 dnl     no)  avm2=no ;;
1402 dnl     *)   AC_MSG_ERROR([bad value ${enableval} for enable-avm2 option]) ;;
1403 dnl   esac], avm2=no
1404 dnl )
1405 dnl AM_CONDITIONAL(ENABLE_AVM2, [test x"$avm2" = xyes])
1406 dnl if test x$avm2 = xyes; then
1407 dnl     AC_DEFINE(ENABLE_AVM2, [1], [Enable AVM2 code])
1408 dnl fi
1409 AM_CONDITIONAL(ENABLE_AVM2, false)
1411 dnl This option is only used if you want Gnash to interwork with 
1412 dnl the Adobe player using the LocalConnection class.
1413 dnl lckey=0xdd3adabd
1414 AC_ARG_WITH(lckey,
1415  AC_HELP_STRING([--with-lckey],
1416  [shared memory key for your system]),
1417  with_lckey=${withval})
1419 if test x${with_lckey} != x; then
1420   lckey=${with_lckey}
1421 else
1422   lckey=0xcbc384f8
1424 LC_KEY=${lckey}
1425 AC_SUBST(LC_KEY)
1427 AC_ARG_ENABLE(python,
1428   AC_HELP_STRING([--enable-python],[Enable python for the python wrapper]),
1429 [case "${enableval}" in
1430   yes) python=yes ;;
1431   no)  python=no ;;
1432   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-python option]) ;;
1433 esac],python=no)
1435 dnl Look for python, which is optional. If enabled, a python loadable
1436 dnl module of Gnash is created.
1437 GNASH_PATH_PYTHON
1438 AM_CONDITIONAL([USE_PYTHON], test x"$python" = xyes)
1439 AM_CONDITIONAL([HAS_PYTHON], test x"$has_python" = xyes)
1441 # Maybe use jemalloc, which handles memory fragmentation for
1442 # ECAMscript languages better than the regular system malloc.
1443 # This seems like a good idea, as both the other player and
1444 # Mozilla/Firefox both recently switched to using jemalloc.
1445 AC_ARG_ENABLE(jemalloc,
1446   AC_HELP_STRING([--enable-jemalloc],[Enable jemalloc instead of system malloc]),
1447 [case "${enableval}" in
1448   yes) jemalloc=yes ;;
1449   no)  jemalloc=no ;;
1450   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-jemalloc option]) ;;
1451 esac],jemalloc=yes)
1453 dnl There is some weird stuff going on with NetBSD and jemalloc, so don't 
1454 dnl build it for now.
1455 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
1456   jemalloc=no
1458 dnl If the compiler doesn't have local thread storage enabled, don't try to
1459 dnl use jemalloc.
1460 if test x"${jemalloc}" = x"yes"; then
1461   AC_TRY_COMPILE([], [
1462     extern __thread int global_i; ],
1463     has_local_thread_storage=yes
1464   )
1465   if test x"${has_local_thread_storage}" = x"yes"; then
1466     AC_DEFINE([HAVE_LOCAL_THREAD_STORAGE], [1], [Has __thread (local thread storage) support])
1467     AC_DEFINE([USE_JEMALLOC], [], [Use jemalloc instead of system malloc])
1468   else
1469     jemalloc=no
1470   fi
1473 dnl We can search libs for mallinfo to decide whether we have it or not.
1474 dnl This is added to the linker flags when it's found. Usually it's -lc, but
1475 dnl on OpenSolaris it's -lmalloc, so this fixes the build.
1476 AC_SEARCH_LIBS([mallinfo], [c malloc],
1477                AC_DEFINE(HAVE_MALLINFO, [1], [Has mallinfo()])
1478                mallinfo=yes
1479                )
1481 AM_CONDITIONAL([HAVE_MALLINFO], test x$mallinfo = xyes)
1482 AM_CONDITIONAL(JEMALLOC, test x$jemalloc = xyes)
1484 AC_ARG_ENABLE(fps-debug,
1485   AC_HELP_STRING([--enable-fps-debug],[Enable FPS debugging code]),
1486 [case "${enableval}" in
1487   yes) AC_DEFINE([GNASH_FPS_DEBUG], [1], [Enable FPS debugging code])
1488 esac])
1490 dnl When we're making binary releases, it's often nice to just statically link
1491 dnl the final executables so we don't worry about what's installed, or which
1492 dnl version it is.
1493 AC_ARG_ENABLE(allstatic,
1494   AC_HELP_STRING([--enable-allstatic],[Enable using static libraries when possible for dependencies]),
1495 [case "${enableval}" in
1496   yes) allstatic=yes ;;
1497   no)  allstatic=no ;;
1498   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-allstatic option]) ;;
1499 esac],allstatic=no)
1500 AM_CONDITIONAL(ALLSTATIC, test x$allstatic = xyes)
1503 dnl --------------------------------------------------------
1504 dnl SHM
1505 dnl --------------------------------------------------------
1506 AC_ARG_WITH(shm,
1507   AC_HELP_STRING([--with-shm],[specify a shared memory type.]),
1508   [case "${withval}" in
1509     sysv) with_shm=sysv
1510           ;;
1511     posix) with_shm=posix
1512           ;;    
1513     *)   AC_MSG_ERROR([bad value ${enableval} for --with-shm option (try sysv or posix])
1514           ;;
1515    esac],with_shm=sysv)
1517 if test x"${with_shm}" = x"sysv"; then
1518   AC_DEFINE([USE_SYSV_SHM], [1], [Use SYSV shared memory for compatability])
1519   dnl IPC_INFO isn't portable, and doesn't exist on BSD
1520   AC_TRY_COMPILE([#include <sys/ipc.h> #include <sys/shm.h>], [
1521     int flag = IPC_INFO; ],
1522     AC_DEFINE([HAVE_IPC_INFO], [1], [Use shm_info])
1523   )
1524 else
1525   AC_DEFINE([USE_POSIX_SHM], [1], [Use POSIX shared memory])
1528 dnl --------------------------------------------------------
1529 dnl Disable menus
1530 dnl --------------------------------------------------------
1531 dnl Don't add the GUI menu. Some educational systems think this adds
1532 dnl clutter and confusion, like on the OLPC.
1533 AC_ARG_ENABLE(menus,
1534   AC_HELP_STRING([--disable-menus],[Disable the GUI menus]),
1535 [case "${enableval}" in
1536   yes) menus=yes ;;
1537   no)  menus=no ;;
1538   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-menus option]) ;;
1539 esac],menus=yes)
1541 if test x"$menus" = x"yes"; then
1542   AC_DEFINE([USE_MENUS], [], [GUI Menu support])
1544 AM_CONDITIONAL(MENUS, test x$menus = xyes)
1546 dnl --------------------------------------------------------
1547 dnl Disable SWF information
1548 dnl --------------------------------------------------------
1549 dnl Don't gather SWF information in tree form. This takes
1550 dnl resources and memory that can be saved if there's no
1551 dnl need to examine SWF internals.
1552 AC_ARG_ENABLE(swftree,
1553   AC_HELP_STRING([--disable-swftree],[Disable showing SWF properties]),
1554 [case "${enableval}" in
1555   yes) swftree=yes ;;
1556   no)  swftree=no ;;
1557   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-swf-properties option]) ;;
1558 esac],swftree=yes)
1560 if test x"$swftree" = x"yes"; then
1561   AC_DEFINE([USE_SWFTREE], [], [View SWF information])
1563 AM_CONDITIONAL(SWFTREE, test x$swftree = xyes)
1565 dnl --------------------------------------------------------
1566 dnl Disable testsuite
1567 dnl --------------------------------------------------------
1568 dnl Disable running any tests for "make check". This may sound stupid, but
1569 dnl this option is designed to solely be used by maintainers in the 
1570 dnl DISTCHECK_CONFIGURE_FLAGS when building packages. Gnash's testing infrastructure
1571 dnl is complex, and often the the testsuites will work, but due to some obscure reason,
1572 dnl make distcheck fails.
1573 AC_ARG_ENABLE(testsuite,
1574   AC_HELP_STRING([--disable-testsuite],[Disable the testsuite, maintainers option only]),
1575 [case "${enableval}" in
1576   yes) testsuite=yes ;;
1577   no)  testsuite=no ;;
1578   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-testsuite option]) ;;
1579 esac],testsuite=yes)
1581 if test x"$testsuite" = x"yes"; then
1582   AC_DEFINE([USE_TESTSUITE], [], [Testsuite support, maintainers option only])
1584 AM_CONDITIONAL(TESTSUITE, test x$testsuite = xyes)
1586 dnl --------------------------------------------------------
1587 dnl Write the file to disk in the plugin
1588 dnl --------------------------------------------------------
1589 AC_ARG_ENABLE(write,
1590   AC_HELP_STRING([--enable-write], [Makes the Mozilla plugin write the currently playing SWF movie to /tmp.]),
1591 [case "${enableval}" in
1592   yes) write=yes ;;
1593   no)  write=no ;;
1594   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-write option]) ;;
1595 esac],write=no)
1597 if test x"$write" = x"yes"; then
1598   AC_DEFINE([WRITE_FILE], [], [Write files while streaming])
1601 dnl --------------------------------------------------------
1602 dnl Write a standalone gnash launcher to disk from the plugin
1603 dnl --------------------------------------------------------
1604 AC_ARG_ENABLE(sa-launcher,
1605   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.]),
1606 [case "${enableval}" in
1607   yes) sa_launcher=yes ;;
1608   no)  sa_launcher=no ;;
1609   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-sa-launcher option]) ;;
1610 esac],sa_launcher=yes)
1612 if test x"$sa_launcher" = x"yes"; then
1613   AC_DEFINE([CREATE_STANDALONE_GNASH_LAUNCHER], [], [Add support for writing a standalone executable launcher for movies embedded in web pages])
1616 dnl --------------------------------------------------------
1617 dnl Build the cygnal server if specified.
1618 dnl --------------------------------------------------------
1619 AC_ARG_ENABLE(cygnal,
1620   AC_HELP_STRING([--enable-cygnal], [Enable building of the Cygnal server]),
1621 [case "${enableval}" in
1622   yes) cygnal=yes ;;
1623   no)  cygnal=no ;;
1624   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cygnal option]) ;;
1625 esac],cygnal=no)
1626 AM_CONDITIONAL(CYGNAL, test x$cygnal = xyes)
1628 dnl --------------------------------------------------------
1629 dnl Build the cgibins server if specified.
1630 dnl --------------------------------------------------------
1631 AC_ARG_ENABLE(cgibins,
1632   AC_HELP_STRING([--enable-cgibins], [Enable building of the CGIs for Cygnal]),
1633 [case "${enableval}" in
1634   yes) cgibin=yes ;;
1635   no)  cgibin=no ;;
1636   *)   AC_MSG_ERROR([bad value ${enableval} for enable-cgibins option]) ;;
1637 esac],cgibin=yes)
1638 AM_CONDITIONAL(USE_CGI, test x$cgibin = xyes)
1639 if test x"${cgibin}" = x"yes"; then
1640   AC_DEFINE([USE_CGIBIN], [1], [Enable cgi-bin processes for Cygnal])
1643 dnl --------------------------------------------------------
1644 dnl Fix the Intel 810 LOD bias problem
1645 dnl --------------------------------------------------------
1646 AC_ARG_ENABLE(i810-lod-bias,
1647   AC_HELP_STRING([--enable-i810-lod-bias], [Enable fix for Intel 810 LOD bias problem]),
1648 [case "${enableval}" in
1649   yes) i810lodbias=yes ;;
1650   no)  i810lodbias=no ;;
1651   *)   AC_MSG_ERROR([bad value ${enableval} for enable-i810-lod-bias option]) ;;
1652 esac])
1654 if test x"${i810lodbias}" = xyes; then
1655     AC_DEFINE([FIX_I810_LOD_BIAS], [], [Fix i810 LOD bias problem])
1658 dnl --------------------------------------------------------
1659 dnl  Double buffer
1660 dnl --------------------------------------------------------
1661 dnl Add an option for double buffering when rendering, currently only used by
1662 dnl the frmaebuffer GUI.
1663 dnl If defined, an internal software-buffer is used for rendering and is then
1664 dnl copied to the video RAM. This avoids flicker and is faster for complex 
1665 dnl graphics, as video RAM access is usually slower. (strongly suggested)
1666 AC_ARG_ENABLE(doublebuf,
1667   AC_HELP_STRING([--enable-doublebuf], [Enable support for double buffering when rendering]),
1668   [case "${enableval}" in
1669     yes) doublebuf=yes ;;
1670     no)  doublebuf=no ;;
1671     *)   AC_MSG_ERROR([bad value ${enableval} for enable-doublebuf option]) ;;
1672   esac], doublebuf=no
1674 AM_CONDITIONAL(ENABLE_DBUF, [test x"$doublebuf" = xyes])
1675 if test x$doublebuf = xyes; then
1676     AC_DEFINE(ENABLE_DOUBLE_BUFFERING, [1], [Enable double buffering])
1679 dnl --------------------------------------------------------
1680 dnl  Offscreen buffer
1681 dnl --------------------------------------------------------
1682 dnl This enables rendering to an offscreen buffer, instead of directly to window
1683 AC_ARG_ENABLE(offscreen,
1684   AC_HELP_STRING([--enable-offscreen], [Enable support for rendering offscreen]),
1685   [case "${enableval}" in
1686     yes) offscreen=yes ;;
1687     no)  offscreen=no ;;
1688     *)   AC_MSG_ERROR([bad value ${enableval} for enable-offscreen option]) ;;
1689   esac], offscreen=no
1693 dnl --------------------------------------------------------
1694 dnl  SSH support selection
1695 dnl --------------------------------------------------------
1696 dnl Enable using libssh with libnet
1697 AC_ARG_ENABLE(ssh,
1698   AC_HELP_STRING([--enable-ssh], [Enable using SSH for network authentication]),
1699 [case "${enableval}" in
1700   yes) build_ssh=yes ;;
1701   no)  build_ssh=no ;;
1702   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssh option]) ;;
1703 esac], build_ssh=no)
1705 AM_CONDITIONAL(BUILD_SSH, test x"${build_ssh}" = xyes)
1706 if test x"${build_ssh}" = xyes; then
1707   GNASH_PKG_FIND(ssh, [libssh/libssh.h], [libssh library], ssh_socket_init)
1708 dnl  GNASH_PKG_FIND(poppler, [popt.h], [Poppler library], poppler_init)
1710 if test x"${has_ssh}" = x"yes"; then
1711   AC_DEFINE([USE_SSH], [1], [Use SSH for authentication])
1714 dnl --------------------------------------------------------
1715 dnl  SSL support selection
1716 dnl --------------------------------------------------------
1718 dnl Enable using OpenSSL with libnet.
1719 AC_ARG_ENABLE(ssl,
1720   AC_HELP_STRING([--enable-ssl], [Enable using OpenSSL directly]),
1721 [case "${enableval}" in
1722   yes) build_ssl=yes ;;
1723   no)  build_ssl=no ;;
1724   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ssl option]) ;;
1725 esac], build_ssl=no)
1727 with_cert=
1728 with_pem=
1729 AM_CONDITIONAL(BUILD_SSL, test x"${build_ssl}" = xyes)
1730 AC_ARG_WITH(cert,
1731   AC_HELP_STRING([--with-cert],
1732   [cert file for SSL]),
1733   with_cert=${withval})
1734 AC_ARG_WITH(pem,
1735   AC_HELP_STRING([--with-pe],
1736   [pem file for SSL]),
1737   with_pem=${withval})
1739 if test x"${build_ssl}" = xyes; then
1740   GNASH_PKG_FIND(ssl, [openssl/ssl.h], [OpenSSL library], SSL_library_init)
1742 if test x"${has_ssl}" = x"yes"; then
1743   AC_DEFINE([USE_SSL], [1], [Use SSL for authentication])
1746 dnl -----------------------------------------------------------
1747 dnl   Verify dependencies for requested GUIs are met, and
1748 dnl   disable build of the GUIS for which deps are NOT met
1749 dnl ------------------------------------------------------------
1751 dnl Look for scratchbox (used in GNASH_PATH_ALP)
1752 dnl FIXME: move it in macros/alp.m4 or at least after
1753 dnl        the build_alp conditional ?
1754 sbox=no
1755 if test x"${SBOX_REDIRECT_FROM_DIRS}" != x; then
1756   sbox=yes
1759 if test x$build_gtk = xyes -o $build_alp = xyes; then
1760    GNASH_PATH_GTK2
1761    GNASH_PATH_PANGO
1762    GNASH_PKG_FIND(atk, [atk/atk.h], [atk library], atk_focus_tracker_init, [1.0])
1763    if test x"${build_ogl}" = xyes; then
1764       GNASH_PATH_GLEXT
1765    fi
1766    if test x"${build_cairo}" = xyes; then
1767       GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
1768    fi
1772 if test x"${build_kde4}" != xno -o x"${build_qtopia4}" != xno; then
1773  GNASH_PATH_QT4
1776 if test x"${build_kde4}" != xno; then
1777   GNASH_PATH_KDE4
1780 if test x"${build_kde4}" = xauto; then
1781   if test x"${has_qt4}" = xyes -a x"${has_kde4}" = xyes; then
1782      build_kde4=yes
1783   else
1784      build_kde4=no
1785   fi
1788 if test x"${build_kde3}" != xno -o x"${build_qtopia3}" != xno; then
1789  GNASH_PATH_QT3
1792 if test x"${build_kde3}" != xno; then
1793   GNASH_PATH_KDE3
1797 if test x"${build_kde3}" = xauto; then
1798   if test x"${has_qt3}" = xyes -a x"${has_kde3}" = xyes; then
1799      build_kde3=yes
1800   else
1801      build_kde3=no
1802   fi
1805 dnl Check possibility to build DUMP gui, if requested
1806 if test x"${build_dump}" != xno; then
1807   if test x"${build_agg}" = xyes; then
1808     build_dump=yes
1809   else
1810     if test x"${build_dump}" = xyes; then
1811       dnl SHOULD we just check at the end of file instead ?
1812       AC_MSG_ERROR(dump GUI cannot be built without AGG renderer);
1813     fi
1814     build_dump=no
1815   fi
1818 dnl Check possibility to build FB gui, if requested
1819 dnl FB dependencies are a linux system (linux/fb.h) 
1820 dnl and AGG renderer
1821 if test x"${build_fb}" != xno; then
1822   if test x"${linux}" = xyes; then
1823     if test x"${build_agg}" = xyes; then
1824       build_fb=yes
1825     else
1826       if test x"${build_fb}" = xyes; then
1827         dnl SHOULD we just check at the end of file instead ?
1828         AC_MSG_ERROR([fb GUI cannot be built without AGG renderer])
1829       fi
1830       AC_MSG_NOTICE([fb GUI won't be built (needs AGG renderer)])
1831       build_fb=no
1832     fi
1833   else
1834     if test x"${build_fb}" = xyes; then
1835       dnl SHOULD we just check at the end of file instead ?
1836       AC_MSG_ERROR(fb GUI cannot be built on non-linux platforms);
1837     fi
1838     AC_MSG_NOTICE([fb GUI won't be built (non-linux platform)])
1839     build_fb=no
1840   fi
1843 dnl TODO: add checks for all other GUIs
1845 dnl -----------------------------------------------------------
1846 dnl Try to ignore stupid dependencies
1847 dnl -----------------------------------------------------------
1849 AC_MSG_CHECKING(linker --as-needed support)
1850 gcc_cv_ld_as_needed=no
1851 # Check if linker supports --as-needed and --no-as-needed options
1852 if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
1853   gcc_cv_ld_as_needed=yes
1855 if test x"$gcc_cv_ld_as_needed" = xyes; then
1856   LDFLAGS="$LDFLAGS -Wl,--as-needed"
1858 AC_MSG_RESULT($gcc_cv_ld_as_needed)
1860 dnl AC_MSG_CHECKING(linker --no-undefined support)
1861 dnl gcc_cv_ld_undef_needed=no
1862 dnl # Check if linker supports --no-undefined
1863 dnl if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
1864 dnl     gcc_cv_ld_undef_needed=yes
1865 dnl fi
1866 dnl if test x"$gcc_cv_ld_undef_needed" = xyes; then
1867 dnl     LDFLAGS=" ${LDFLAGS} -Wl,--no-undefined"
1868 dnl fi
1869 dnl AC_MSG_RESULT($gcc_cv_ld_undef_needed)
1871 AC_DEFINE(USE_GIF, [1], [Use the GIF library])
1872 AC_DEFINE(USE_PNG, [1], [Use the PNG library])
1873 AM_CONDITIONAL(USE_GIF, true)
1874 AM_CONDITIONAL(USE_PNG, true)
1876 dnl GNASH_PKG_FIND(dmalloc, [dmalloc.h], [dmalloc], mallinfo)
1877 AM_CONDITIONAL(HAVE_DMALLOC, [ test x$has_dmalloc = xyes ])
1879 AC_PATH_TOOL([AUTOTRACE], [autotrace])
1880 AC_HEADER_DIRENT
1882 dnl -----------------------------------------------------------------
1883 dnl PLUGIN RELATED STUFF
1884 dnl -----------------------------------------------------------------
1886 dnl Zip is used insted of tar when building an xpi package
1887 dnl for Mozilla/Firefox.
1888 AC_PATH_PROG(ZIP, zip, ,[${pathlist}])
1890 dnl !! This has been moved here to make --enable-npapi work
1891 dnl !! All of plugin-related macro calls could be moved into
1892 dnl !! a specialized macros/plugin.m4
1894 dnl ----------------------------------------------------
1895 dnl Add KPARTS support, if specified or KDE gui is built
1896 dnl ----------------------------------------------------
1898 AC_ARG_ENABLE(kparts3,
1899   AC_HELP_STRING([--disable-kparts3], [Disable support for Konqueror 3.x plugin (default: enabled if kde3 gui is)]),
1900 [case "${enableval}" in
1901   yes) build_kparts3=yes ;;
1902   no)  build_kparts3=no ;;
1903   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts3 option]) ;;
1904 esac],build_kparts3=$build_kde3)
1906 dnl --------------------------------------------------------
1907 dnl Add KPARTS 4.x support, if specified or KDE gui is built
1908 dnl --------------------------------------------------------
1910 AC_ARG_ENABLE(kparts4,
1911   AC_HELP_STRING([--disable-kparts4], [Disble support for Konqueror 4.x plugin (default: enabled if kde4 gui is)]),
1912 [case "${enableval}" in
1913   yes) build_kparts4=yes ;;
1914   no)  build_kparts4=no ;;
1915   *)   AC_MSG_ERROR([bad value ${enableval} for --disable-kparts4 option]) ;;
1916 esac],build_kparts4=$build_kde4)
1918 dnl -----------------------------------------------------------
1919 dnl Add NPAPI support, if specified or GTK or KDE4 gui is built
1920 dnl -----------------------------------------------------------
1922 AC_ARG_ENABLE(npapi,
1923   AC_HELP_STRING([--disable-npapi], [Disable NPAPI plugin build (default: enabled if gtk or kde4 gui is)]),
1924   [case "${enableval}" in
1925     yes) npapi=yes ;;
1926     no)  npapi=no ;;
1927     *)   AC_MSG_ERROR([bad value ${enableval} for disable-npapi option]) ;;
1928   esac],
1929   if test x$build_gtk = xyes -o x$build_kde4 = xyes; then
1930     npapi=yes
1931   fi
1934 dnl -----------------------------------------------------------------
1935 dnl Enable us to disable building all browser plugins in one command.
1936 dnl -----------------------------------------------------------------
1938 AC_ARG_ENABLE(plugins,
1939   AC_HELP_STRING([--disable-plugins], [Disable all browser plugins from building (default=no)]),
1940   [case "${enableval}" in
1941     yes) plugins=yes ;;
1942     no)  plugins=no ;;
1943     *)   AC_MSG_ERROR([bad value ${enableval} for disable-plugins option]) ;;
1944   esac],
1945   plugins=yes
1947 if test x$plugins = xno; then
1948   npapi=no
1949   build_kparts3=no
1950   build_kparts4=no
1954 dnl Set the general plugins install policy here
1956 AC_ARG_WITH(plugins-install,
1957   AC_HELP_STRING([--with-plugins-install=system|user|prefix], [Policy for plugins install. Default: user.]),
1958         [case "${withval}" in
1959           user) PLUGINS_INSTALL_POLICY=user ;;
1960           system) PLUGINS_INSTALL_POLICY=system ;;
1961           prefix) PLUGINS_INSTALL_POLICY=prefix ;;
1962           *)  AC_MSG_ERROR([bad value ${withval} for --with-plugins-install]) ;;
1963          esac 
1964         ], PLUGINS_INSTALL_POLICY=user) 
1967 GNASH_PATH_FIREFOX
1969 dnl -----------------------------------------------------------------
1970 dnl END OF PLUGIN RELATED STUFF
1971 dnl -----------------------------------------------------------------
1973 dnl IRIX-hack.
1974 case $host in
1975   *-*-irix*)
1976   dnl ABI-check
1977   save_LIBS=$LIBS
1978   dir="/usr/lib /usr/lib32 /usr/lib/lib64"
1979   for i in $dir; do
1980     LIBS=-L$i
1981     AC_SEARCH_LIBS(XDisableAccessControl, X11, [
1982       xpathed=$i
1983       break
1984     ])
1985     unset ac_cv_search_XDisableAccessControl
1986   done
1987   ac_x_libraries=$xpathed
1988   x_libraries=$xpathed
1989   LIBS=$save_LIBS
1990   ;;
1991 esac
1993 AM_CONDITIONAL(LIRC, [test x$lirc_ext = xyes])
1995 AC_CHECK_HEADERS(endian.h machine/endian.h)
1996 AC_CHECK_HEADERS(malloc.h malloc/malloc.h)
1997 AC_CHECK_HEADERS(getopt.h)
1998 AC_CHECK_HEADERS(libgen.h)
1999 AC_CHECK_HEADERS(pwd.h)
2000 AC_CHECK_HEADERS(sys/utsname.h)
2001 AC_CHECK_HEADERS(signal.h)
2002 AC_CHECK_HEADERS(unistd.h)
2003 AC_CHECK_HEADERS(sys/time.h)
2004 AC_CHECK_HEADERS(ieeefp.h)
2005 dnl libcurl3-dev on Ubuntu has a dependency on lber, and Gnash won't link
2006 dnl on most machines without it. While it isn't diretly used by Gnash at all,
2007 dnl it's to work around an Ubuntu packaging bug.
2008 AC_CHECK_LIB(lber, ber_free)
2009 AC_CHECK_LIB(bz2, BZ2_bzopen)
2010 AC_CHECK_LIB(c, getpwnam, AC_DEFINE(HAVE_GETPWNAM, 1, [Has getpwnam] ))
2012 dnl X11 is needed for fltk (at least),
2013 dnl and probably for many other guis too ...
2014 dnl if ! test x$build_fb = xyes; then # <--- this is wrong as build_x is non-exclusive
2015 dnl AC_PATH_XTRA
2016 dnl AC_CHECK_LIB(Xmu, XmuCvtStringToOrientation)
2017 dnl AC_CHECK_LIB(gmp, _gmp_get_memory_functions)
2018   GNASH_PATH_X11
2019   AC_CHECK_LIB(Xi, XInput_find_display)
2020   AC_CHECK_LIB(X11, XDisableAccessControl)
2021 dnl fi
2022 AM_CONDITIONAL(HAVE_X11, [test x$x11 = xyes])
2023 AC_CHECK_LIB(rt, shm_unlink)
2024 AC_CHECK_FUNCS(shm_open shm_unlink)
2025 AC_TRY_COMPILE([#include <strings.h>], [
2026   char *p1 = (char *)"Hello";
2027   char *p2 = (char *)"World";
2028   strcasecmp(p1, p2); ],
2029   AC_DEFINE(HAVE_STRINGCASECMP, [1], [Has strcasecmp])
2032 dnl if test x$cross_compiling = xno; then
2033 AC_LANG_PUSH(C++)
2034 AC_MSG_CHECKING([to see if float formatting is broken])
2035 AC_RUN_IFELSE([
2036   AC_LANG_PROGRAM([#include <cmath>
2037     void testFloat(double d, double& s)
2038     {
2039         d /= 1000.0;
2040         s = std::fmod(d, 86400.0);
2041     }], [
2042      double d = 3.0935415006117e+23;
2043      double s;
2044      testFloat(d, s);
2045      if (static_cast<int>(s) != 61440) {
2046          return 1;
2047      }])],                         dnl end of LANG_PROGRAM
2048      broken_float=no,              dnl returns 0, works
2049      broken_float=yes,             dnl returns 1, broken
2050      broken_float=no               dnl cross compiling
2051 )                                  dnl end of RUN_IFELSE
2052 AC_LANG_POP(C++)
2053 dnl fi
2055 if test x${broken_float} = xyes; then
2056   AC_MSG_RESULT([yes])
2057   AC_DEFINE(HAVE_BROKEN_FLOAT, [1], [Has broken float support])
2058 else
2059   AC_MSG_RESULT([no])
2061 AM_CONDITIONAL(BROKEN_FLOAT, [ test x$broken_float = xyes ])
2063 dnl See if ipc_perm structure has the ipc_perm.key field, and if so,
2064 dnl which variant of the name is used.
2065 ipc_key=no
2066 AC_TRY_COMPILE([
2067   #include <sys/ipc.h>
2068   #include <sys/shm.h>], [
2069  struct shmid_ds shmseg;      
2070  key_t x = shmseg.shm_perm.key;],
2071  ipc_key=yes
2072  AC_DEFINE(IPC_PERM_KEY, [key], [Has the key field in ipc_perm])
2075 if test x$ipc_key = xno; then
2076   AC_TRY_COMPILE([
2077     #include <sys/ipc.h>
2078     #include <sys/shm.h>], [
2079     struct shmid_ds shmseg;      
2080     key_t x = shmseg.shm_perm.__key;],
2081     AC_DEFINE(IPC_PERM_KEY, [__key], [Has the key field in ipc_perm])
2082     ipc_key=yes
2083   )
2086 dnl AC_CHECK_FUNCS(strcasecmp stricmp)
2087 dnl AC_CHECK_FUNCS(vsnprintf)
2089 AC_CACHE_CHECK([for finite], ac_cv_finite,
2090  [AC_TRY_COMPILE([
2091    #include <math.h>
2092    #ifdef HAVE_IEEEFP_H
2093    #include <ieeefp.h>
2094    #endif],
2095  [double x; int y; y = finite(x);],
2096  ac_cv_finite=yes,
2097  ac_cv_finite=no
2099 if test x"$ac_cv_finite" = x"yes"; then
2100   AC_SEARCH_LIBS(finite, m,
2101     [AC_DEFINE(HAVE_FINITE, [1], [Has finite])]
2102   )
2105 AC_LANG_PUSH(C++)
2106 AC_CACHE_CHECK([for isfinite], ac_cv_isfinite,
2107  [AC_TRY_COMPILE([#include <cmath>],
2108  [using namespace std; double x; int y; y = isfinite(x);],
2109  ac_cv_isfinite=yes,
2110  ac_cv_isfinite=no
2112 AC_LANG_POP(C++)
2113 if test x"$ac_cv_isfinite" = x"yes"; then
2114   dnl Don't give up if isfinite is not found in -lm
2115   dnl isfinite is defined as a macro in C99.
2116   AC_SEARCH_LIBS(isfinite, m)
2117   AC_DEFINE(HAVE_ISFINITE, [1], [Has isfinite])
2120 AC_LANG_PUSH(C++)
2121 AC_CACHE_CHECK([whether $CXX implements __PRETTY_FUNCTION__], ac_cv_implements___PRETTY_FUNCTION__, [
2122   AC_TRY_LINK([#include <cstdio>
2123 ], 
2124     [ std::printf("%s", __PRETTY_FUNCTION__); ], 
2125     [ ac_cv_implements___PRETTY_FUNCTION__="yes" ],
2126     [ ac_cv_implements___PRETTY_FUNCTION__="no" ]
2127   )
2129 if test "x$ac_cv_implements___PRETTY_FUNCTION__" = "xyes" ; then
2130   AC_DEFINE(HAVE_PRETTY_FUNCTION, [1], [__PRETTY_FUNCTION__ is defined])
2133 AC_CACHE_CHECK([whether $CXX implements __FUNCTION__], ac_cv_implements___FUNCTION__, [
2134   AC_TRY_LINK([#include <cstdio>
2135 ], 
2136     [ std::printf("%s", __FUNCTION__); ], 
2137     [ ac_cv_implements___FUNCTION__="yes" ],
2138     [ ac_cv_implements___FUNCTION__="no" ]
2139   )
2141 if test "x$ac_cv_implements___FUNCTION__" = "xyes" ; then
2142   AC_DEFINE(HAVE_FUNCTION, [1], [__FUNCTION__ is defined])
2145 AC_CACHE_CHECK([whether $CXX implements __func__], ac_cv_implements___func__, [
2146   AC_TRY_LINK([#include <cstdio>
2147 ], 
2148     [ std::printf("%s", __func__); ], 
2149     [ ac_cv_implements___func__="yes" ],
2150     [ ac_cv_implements___func__="no" ]
2151   )
2153 if test "x$ac_cv_implements___func__" = "xyes" ; then
2154   AC_DEFINE(HAVE_func, [1], [__func__ is defined])
2156 AC_LANG_POP(C++)
2157 AC_REPLACE_FUNCS(getopt)
2159 dnl Date portability stuff, used in server/asobj/Date.cpp
2160 AC_CHECK_FUNCS(gettimeofday)
2161 AC_CHECK_FUNCS(ftime)
2162 AC_CHECK_FUNCS(tzset)
2163 AC_CHECK_FUNCS(localtime_r)
2165 AC_CACHE_CHECK([whether struct tm has tm_gmtoff], ac_cv_tm_gmtoff, [
2166         AC_TRY_LINK([
2167 /* ctime(1) says "The glibc version of struct tm has additional fields
2168  * defined  when _BSD_SOURCE was set before including <time.h>"
2169  * In practice, you don't need to define it yourself (tested on glibc-2.2.1 
2170  * and 2.3.6) but if you *do* define it yourself, it makes *all* functions
2171  * favour BSD-like behaviour over of GNU/POSIX, which seems dangerous.
2172  */
2173 // #define _BSD_SOURCE 1
2174 #include <time.h>
2175 ], 
2176                 [ struct tm tm; long l = tm.tm_gmtoff; ], 
2177                 [ ac_cv_tm_gmtoff="yes" ],
2178                 [ ac_cv_tm_gmtoff="no" ]
2179         )
2181 if test "x$ac_cv_tm_gmtoff" = "xyes" ; then
2182         AC_DEFINE(HAVE_TM_GMTOFF, [1], [struct tm has member tm_gmtoff])
2185 AC_CACHE_CHECK([whether timezone is a long], ac_cv_long_timezone, [
2186         AC_TRY_LINK([
2187 /* On Linux/glibc, tzset(3) says "extern long timezone;" (seconds West of GMT)
2188  * but on BSD char *timezone(int,int) is a function returning a string name.
2189  * The BSD function timegm() may be the equivalent, but this should
2190  * not be necessary because on BSD the code should use tm.tm_gmtoff instead
2191  * (use of long timezone is a fallback strategy for when tm_gmtoff exists not).
2192  */
2193 #include <stdio.h>
2194 #include <time.h>
2195 extern long timezone;
2196   ], 
2197     [ printf("%ld", timezone); ], 
2198     [ ac_cv_long_timezone="yes" ],
2199     [ ac_cv_long_timezone="no" ]
2200    )
2202 if test "x$ac_cv_long_timezone" = "xyes" ; then
2203   AC_DEFINE(HAVE_LONG_TIMEZONE, [1], [extern timezone is a long integer, not a function])
2206 AC_CHECK_FUNCS(sysconf)
2207 AC_CHECK_FUNCS(shmget shmat shmdt mmap)
2208 AC_CHECK_FUNCS(memmove)
2209 AC_CHECK_FUNCS(scandir)         dnl supported by BSD and Linux, but you never know...
2210 dnl AC_CHECK_FUNC(strndup, AC_DEFINE(HAVE_STRNDUP, 1, [Has strndup()] ))
2211 AC_CHECK_FUNC(clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Has clock_gettime()] ))
2212 dnl AC_CHECK_FUNCS(strlcpy, AC_DEFINE(HAVE_STRLCPY_PROTO, [1],[Define if you have the strlcpy prototype]))
2213 dnl AC_CHECK_FUNCS(strlcat, AC_DEFINE(HAVE_STRLCAT_PROTO, [1],[Define if you have the strlcat prototype]))
2214 dnl Look for Win32 networking stuff
2215 AC_CHECK_HEADERS(winsock.h)
2216 AC_CHECK_HEADERS(winsock2.h)
2217 AC_CHECK_FUNCS(socket)
2218 AC_CHECK_FUNCS(CreateFileMappingA)
2220 dnl Shm::resize() uses this if it exists
2221 AC_CHECK_LIB(c, mremap)
2223 GNASH_PKG_FIND(nspr, [nspr.h], [Netscape Portable Runtime (NSPR)], PR_Init)
2225 AC_PATH_TOOL(WINDRES, [windres])
2226 AC_SUBST(WINDRES)
2228 GNASH_PKG_FIND(z, [zlib.h], [zlib compression library], compress)
2229 GNASH_PKG_FIND(jpeg, [jpeglib.h], [jpeg images], jpeg_mem_init)
2230 if test x"${openbsd_os}" = x"yes"; then
2231   GNASH_PKG_FIND(libpng, [png.h], [png images], png_info_init)
2232 else
2233   GNASH_PKG_FIND(png, [png.h], [png images], png_info_init)
2235 GNASH_PKG_FIND(gif, [gif_lib.h], [gif images], DGifOpen)
2236 if test x"${GIF_LIBS}" = x ; then
2237  GNASH_PKG_FIND(ungif, [gif_lib.h], [gif images], DGifOpen)
2238  GIF_LIBS=${UNGIF_LIBS}
2239  GIF_CFLAGS=${UNGIF_CFLAGS}
2241 if test x"$testsuite" = x"yes"; then
2242   GNASH_PKG_INCLUDES([dejagnu], [dejagnu.h])
2245 GNASH_PKG_FIND(speex, [speex.h], [speex audio codec], speex_decode_int)
2246 AM_CONDITIONAL(HAVE_SPEEX, [ test x$has_speex = xyes ])
2247 if test x$has_speex = xyes ; then
2248   AC_DEFINE([DECODING_SPEEX], [1], [Speex codec available])
2251 GNASH_PKG_FIND(speexdsp, [speex_resampler.h], [speex DSP utilities], speex_resampler_process_int)
2252 if test x$has_speexdsp = xyes ; then
2253   AC_DEFINE([RESAMPLING_SPEEX], [1], [Speex resampler available])
2256 dnl Find freetype and fontconfig
2257 GNASH_PATH_FREETYPE2
2258 GNASH_PKG_FIND(fontconfig, [fontconfig/fontconfig.h], [fontconfig library], FcFontMatch)
2260 if test x$cross_compiling = xno; then
2261   AC_PATH_MING
2264 if test x"$MING_VERSION_CODE" = x; then
2265  MING_VERSION_CODE=00000000
2268 AM_CONDITIONAL(ENABLE_MING,
2269         [ test x"$MAKESWF" != x -a $MING_VERSION_CODE -gt 00040000 ])
2271 AM_CONDITIONAL(MING_VERSION_0_4,
2272         [ test $MING_VERSION_CODE -ge 00040000  ])
2273 AM_CONDITIONAL(MAKESWF_SUPPORTS_PREBUILT_CLIPS,
2274         [ test $MING_VERSION_CODE -ge 00040002  ])
2275 AM_CONDITIONAL(MING_SUPPORTS_INIT_ACTIONS,
2276         [ test $MING_VERSION_CODE -ge 00040004  ])
2277 AM_CONDITIONAL(MING_SUPPORTS_REPLACE_TAG,
2278         [ test $MING_VERSION_CODE -ge 00040005 ])
2279 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_ADD_CHARACTER,
2280         [ test $MING_VERSION_CODE -ge 00040005 ])
2281 AM_CONDITIONAL(MING_SUPPORTS_STREAMING_SOUND,
2282         [ test $MING_VERSION_CODE -ge 00040006 ])
2283 AM_CONDITIONAL(MING_SUPPORTS_SWFBUTTON_SET_DEPTH,
2284         [ test $MING_VERSION_CODE -ge 00040006 ])
2285 AM_CONDITIONAL(MING_VERSION_0_4_3,
2286         [ test $MING_VERSION_CODE -ge 00040300 ])
2287 AM_CONDITIONAL(MING_VERSION_0_4_4,
2288         [ test $MING_VERSION_CODE -ge 00040400 ])
2290 if test x$cross_compiling = xno; then
2291     AC_ARG_WITH([swfdec_testsuite],
2292         AC_HELP_STRING([--with-swfdec-testsuite],
2293             [directory where swfdec testsuite (the 'test' dir) is]),
2294         if test x"${withval}" = xyes; then
2295             dir=`dirname $0`
2296             dir=`cd ${dir} && pwd`
2297             withval="${dir}/testsuite/swfdec/src/test"
2298         fi
2299         SWFDEC_TESTSUITE=${withval}
2300     )
2301     AC_SUBST(SWFDEC_TESTSUITE)
2303 AM_CONDITIONAL(ENABLE_SWFDEC_TESTSUITE, [ test x"$SWFDEC_TESTSUITE" != x ])
2305 if test x$cross_compiling = xno; then
2306   AC_ARG_ENABLE([http_testsuite],
2307       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2308           AC_HELP_STRING([--enable-http-testsuite=<baseurl>],
2309                   [Enable http based testsuite (default url is http://www.gnashdev.org/testcases)]),
2310               [case "${enableval}" in
2311              no) HTTP_TESTSUITE="" ;;
2312             yes) HTTP_TESTSUITE="http://www.gnashdev.org/testcases" ;;
2313               *) HTTP_TESTSUITE="${enableval}";;
2314            esac])
2315   AC_SUBST(HTTP_TESTSUITE)
2317 AM_CONDITIONAL(ENABLE_HTTP_TESTSUITE, [ test x"$HTTP_TESTSUITE" != x ])
2319 if test x$cross_compiling = xno; then
2320   AC_ARG_ENABLE([red5_testing],
2321       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2322           AC_HELP_STRING([--enable-red5-testing=<host>],
2323                   [Enable red5 based testing (default host is www.gnashdev.org)]),
2324               [case "${enableval}" in
2325              no) RED5_HOST="" ;;
2326             yes) RED5_HOST="www.gnashdev.org" ;;
2327               *) RED5_HOST="${enableval}";;
2328            esac])
2329   AC_SUBST(RED5_HOST)
2331 AM_CONDITIONAL(ENABLE_RED5_TESTING, [ test x"$RED5_HOST" != x ])
2333 if test x$cross_compiling = xno; then
2334   AC_ARG_ENABLE([rtmpy_testing],
2335       dnl # TODO: find out how to add [quotes] around '=<baseurl>'
2336           AC_HELP_STRING([--enable-rtmpy-testing=<host>],
2337                   [Enable rtmpy based testing (default host is www.gnashdev.org)]),
2338               [case "${enableval}" in
2339              no) RTMPY_HOST="" ;;
2340             yes) RTMPY_HOST="www.gnashdev.org" ;;
2341               *) RTMPY_HOST="${enableval}";;
2342            esac])
2343   AC_SUBST(RTMPY_HOST)
2345 AM_CONDITIONAL(ENABLE_RTMPY_TESTING, [ test x"$RTMPY_HOST" != x ])
2347 dnl The name might differ between systems.
2348 if test x"$testsuite" = x"yes"; then
2349 AC_PATH_PROGS(NETCAT, [nc netcat])
2350 AC_PATH_PROG(WGET, wget)
2352 AM_CONDITIONAL(HAS_NETCAT, [ test x"$NETCAT" != x ])
2353 AM_CONDITIONAL(HAS_WGET, [ test x"$WGET" != x ])
2356 dnl See if we can use the swfmill, mtasc, swfc and haxe based testsuites 
2358 if test x"$testsuite" = x"yes" -a x$cross_compiling = xno; then
2359   AC_PATH_PROG(AS3COMPILE, as3compile)
2360   AC_PATH_PROG(SWFC, swfc)
2361   AC_PATH_SWFMILL
2362   AC_PATH_MTASC
2363   AC_PATH_HAXE
2366 AM_CONDITIONAL(ENABLE_SWFMILL, [ test x"$SWFMILL" != x ])
2367 AM_CONDITIONAL(SWFMILL_AS3_SUPPORT,
2368         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2370 dnl SWFMILL versions older than 0.3 didn't get function2 flags order correctly
2371 AM_CONDITIONAL(SWFMILL_FUNCTION2_FLAGS_ORDER_CORRECT,
2372         [ test x"$SWFMILL" != x && test $SWFMILL_VERSION -ge 00021206 ])
2374 AM_CONDITIONAL(ENABLE_AS3COMPILE, [ test x"$AS3COMPILE" != x ])
2375 AM_CONDITIONAL(ENABLE_MTASC, [ test x"$MTASC" != x ])
2376 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2377 AM_CONDITIONAL(ENABLE_SWFC, [ test x"$SWFC" != x ])
2378 AM_CONDITIONAL(ENABLE_HAXE, [ test x"$HAXE" != x ])
2380 AC_PATH_PROG(DOXYGEN, doxygen)
2381 AM_CONDITIONAL(ENABLE_DOXYGEN, [ test x"$DOXYGEN" != x ])
2383 dnl currently unused
2384 dnl GNASH_PKG_FIND(ogg, [ogg.h], [decode ogg streams], ogg_stream_init)
2386 if test x$build_sdl = xyes -o x$build_sound_sdl = xyes; then
2387   GNASH_PATH_SDL
2390 AM_CONDITIONAL(HAVE_SDL, [ test x$has_SDL = xyes ])
2392 dnl Qtopia is a desktop environment for embedded devices.
2393 dnl GNASH_PATH_QTOPIA3
2394 dnl GNASH_PATH_QTOPIA4
2395 has_qtopia3=no
2396 has_qtopia4=no
2399 AM_CONDITIONAL(HAVE_QTOPIA3, [test x$has_qtopia3 = xyes])
2400 AM_CONDITIONAL(HAVE_QTOPIA4, [test x$has_qtopia4 = xyes])
2401 AM_CONDITIONAL(HAVE_KDE3,    [test x$has_kde3 = xyes])
2402 AM_CONDITIONAL(HAVE_KDE4,    [test x$has_kde4 = xyes])
2403 AM_CONDITIONAL(HAVE_QT3,     [test x$has_qt3 = xyes])
2404 AM_CONDITIONAL(HAVE_QT4,     [test x$has_qt4 = xyes])
2406 AM_CONDITIONAL(WITH_KDE4,    [test "$with_kde4" != "no"])
2407 AM_CONDITIONAL([QT_X11],     [test "$platform" = "X11"])
2408 AM_CONDITIONAL([QTOPIA],     [test "$platform" = "Qtopia"])
2409 AM_CONDITIONAL([QT_OSX],     [test "$platform" = "OSX"])
2410 AM_CONDITIONAL([QT_OS9],     [test "$platform" = "OS9"])
2411 AM_CONDITIONAL([QT_WIN32],   [test "$platform" = "Win32"])
2413 dnl Need GLIB for both GTK and GST
2414 if test x"${build_gtk}" = xyes -o x"${build_media_gst}" = xyes; then
2415   GNASH_PATH_GLIB
2418 AM_CONDITIONAL(HAVE_GLIB, [ test x"${has_glib}" = xyes ])
2420 if test x$npapi = xyes; then
2421   if ! test x$build_gtk = xyes -o x$build_kde4 = xyes; then
2422     AC_MSG_WARN(["Enabled NPAPI plugin, but it's not supported by the selected GUI"])
2423   fi
2426 if test x$windows = xyes -a x$npapi = xyes; then
2427   if test "x$NSPR_CFLAGS" = x -a "x$NSPR_LIBS" = x; then
2428     AC_MSG_ERROR(["On Win32, NPAPI plugin requires NSPR."])
2429   fi
2430   if test "x$WINDRES" = x; then
2431     AC_MSG_ERROR(["On Win32, NPAPI plugin requires windres."])
2432   fi
2435 dnl Need GLIB for NPAPI plugin
2436 if test x$npapi = xyes; then
2437   GNASH_PATH_GLIB
2440 dnl if kde isn't installed, even if it's specified, don't try to build
2441 dnl the KPARTS plugin, which is KDE based.
2442 if test x$has_kde3 = xno -a x$build_kparts3 = xyes; then
2443   build_kparts3=no
2444 dnl  build_kde3=no
2445   AC_MSG_WARN(["Disabling KPARTS 3.x plugin, no KDE development found"])
2448 if test x$build_kde3 = xno -a x$build_kparts3 = xyes; then
2449   AC_MSG_WARN(["Enabled KPARTS 3.x plugin, but you aren't building a KDE based GUI!"])
2451 if test x$has_kde4 = xno -a x$build_kparts4 = xyes; then
2452   build_kparts4=no
2453 dnl  build_kde4=no
2454   AC_MSG_WARN(["Disabling KPARTS 4.x plugin, no KDE 4.x development found"])
2457 if test x$build_kde4 = xno -a x$kparts4 = xyes; then
2458   AC_MSG_WARN(["Enabled KPARTS 4.x plugin, but you aren't building a KDE 4.x based GUI!"])
2461 AM_CONDITIONAL(BUILD_QTOPIA3_GUI,  [ test x$build_qtopia3 = xyes ])
2462 AM_CONDITIONAL(BUILD_QTOPIA4_GUI,  [ test x$build_qtopia4 = xyes ])
2464 dnl Drop these conditionals ?
2465 AM_CONDITIONAL(BUILD_QT3_GUI,
2466     [ test x"${build_kde3}" = xyes -o x"${build_qtopia3}" = xyes ])
2467 AM_CONDITIONAL(BUILD_QT4_GUI,
2468     [ test x"${build_kde4}" = xyes -o x"${build_qtopia4}" = xyes ])
2470 AM_CONDITIONAL(BUILD_KDE3_GUI,     [ test x$build_kde3 = xyes ])
2471 AM_CONDITIONAL(BUILD_KDE4_GUI,     [ test x$build_kde4 = xyes ])
2473 AM_CONDITIONAL(BUILD_GTK_GUI,      [ test x$build_gtk = xyes ])
2474 AM_CONDITIONAL(BUILD_FLTK_GUI,     [ test x$build_fltk = xyes ])
2475 AM_CONDITIONAL(BUILD_SDL_GUI,      [ test x$build_sdl = xyes ])
2476 AM_CONDITIONAL(BUILD_FB_GUI,       [ test x$build_fb = xyes ])
2477 AM_CONDITIONAL(BUILD_AQUA_GUI,     [ test x$build_aqua = xyes ])
2478 AM_CONDITIONAL(ALLSTATIC,          [ test x$build_aqua = xyes ]) dnl the Aqua-binary is always static.
2479 AM_CONDITIONAL(BUILD_RISCOS_GUI,   [ test x$build_riscos = xyes ])
2480 AM_CONDITIONAL(BUILD_DUMP_GUI,     [ test x$build_dump = xyes ])
2481 AM_CONDITIONAL(BUILD_AMIGAOS4_GUI, [ test x$build_aos4 = xyes ])
2482 AM_CONDITIONAL(BUILD_HAIKU_GUI,    [ test x$build_haiku = xyes ])
2484 # plugin building flags
2485 AM_CONDITIONAL(NPAPI,   [test x"${npapi}" = xyes])
2486 AM_CONDITIONAL(KPARTS3, [test x"${build_kparts3}" = xyes])
2487 AM_CONDITIONAL(KPARTS4, [test x"${build_kparts4}" = xyes])
2489 if test x"${build_gles}" = xyes; then
2490   GNASH_PKG_FIND(EGL, [EGL/egl.h], [EGL library], eglGetDisplay)
2491   GNASH_PATH_GLES
2494 if test x"${build_ogv}" = xyes; then
2495   GNASH_PKG_FIND(EGL, [EGL/egl.h], [EGL library], eglGetDisplay)
2496   GNASH_PKG_FIND(OpenVG, [vg/openvg.h], [OpenVG library], vgDrawImage)
2499 if test x"${build_gtk}" = xyes; then
2500   AC_ARG_ENABLE(ghelp,
2501     AC_HELP_STRING([--enable-ghelp], [Enable support for the GNOME help system]),
2502     [case "${enableval}" in
2503       yes) ghelp=yes ;;
2504       no)  ghelp=no ;;
2505       *)   AC_MSG_ERROR([bad value ${enableval} for enable-ghelp option]) ;;
2506     esac], ghelp=no
2507   )
2509   if test x"${ghelp}" = x"yes" ; then
2510     AC_PATH_PROG(SCROLLKEEPER, scrollkeeper-config, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2511     AC_PATH_PROG(SCROLLUPDATE, scrollkeeper-update, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2512     AC_PATH_PROG(SCROLLINSTALL, scrollkeeper-preinstall, [], [$PATH:/usr/bin/X11:/usr/local/bin/X11:/opt/X11])
2514     if test x"$SCROLLKEEPER" = x -o x"$SCROLLUPDATE" = x -o x"$SCROLLINSTALL" = x ; then
2515       ghelp=no
2516       AC_MSG_WARN([You need to install scrollkeeper for gnome help])
2517     fi
2518   fi
2520 AM_CONDITIONAL(GHELP, [test x${ghelp} = xyes])
2522 if test x${build_fltk} = xyes; then
2523   GNASH_PKG_FIND(Xft, [Xft.h], [xft library], XftGlyphRender)
2526 dnl Some systems have a pervered set of dependencies.
2527 dnl Fedora Core 6 appears to have a dependency on expat for fontconfig.
2528 dnl We only need the library, but this is the easy wind to find it.
2529 GNASH_PKG_FIND(expat, [expat.h], [Expat library], XML_ErrorString)
2531 dnl these conditionals were moved out of kde.m4
2532 AM_CONDITIONAL(HAS_KDE3, [test x$has_kde3 = xyes])
2533 # used to disable x11-specific stuff on special platforms
2534 AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
2535 AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
2536 AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
2538 AM_CONDITIONAL(HAVE_GLEXT, [test x$glext = xyes])
2540 dnl We don't have GTKGLExt, so default to SDL, and don't build the Firefox plugin
2541 if test x$glext = xno -a x$build_ogl = xyes; then
2542   if test x$gtk2 = xyes -a x$build_gtk = xyes; then
2543     AC_ERROR([You have GTK installed, but not GtkGLExt. You need GtkGLExt to use the OpenGL renderer. Attempting to build SDL version])
2544   fi
2545   gui=sdl
2546   npapi=no
2547   AC_MSG_WARN([GTK2 specified for the GUI, but GtkGlExt is not present. Trying SDL instead.])
2550 missing_codecs=""
2551 if test x"$build_media_gst" = "xyes"; then
2552   AC_PATH_PROG(GST_INSPECT, gst-inspect, ,[${pathlist}])
2553   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2554     AC_PATH_PROG(GST_INSPECT, gst-inspect-0.10, ,[${pathlist}])
2555   fi
2556   if test "x$GST_INSPECT" != "x" -a x"${darwin}" = xno ; then
2557     dnl FIXME: there may be multiple acceptable plugins that are acceptable for
2558     dnl our use. For example, mad or FFmpeg will play mp3.
2559     codecs="ffdec_flv ffdec_flashsv ffdec_vp6f ffdec_flashsv mad vorbisdec ffdec_vp6"
2560     for i in $codecs; do
2561        hits="`$GST_INSPECT $i | grep -c 'Long name'`"
2562        if test $hits -eq 0; then
2563          missing_codecs="$missing_codecs $i"
2564          AC_MSG_WARN([Missing codec: $i])
2565        fi
2566     done
2567   fi
2568   GNASH_PKG_FIND(gstreamer_plugins_base, [gst/interfaces/probeprobe.h], [gstreamer interfaces library], gst_property_probe_probe_and_get_values_name, [0.10])
2569   GNASH_PKG_FIND(gstreamer_app, [gst/app/gstappsink.h], [gstreamer app library], call_gmon_start, [0.10])
2570   GNASH_PKG_FIND(gstreamer, [gst/gst.h], [gstreamer library], gst_init, [0.10])
2571   dnl if cross compiling, we're usually not going to be able to pop up
2572   dnl the codec installer to download the package to install, so disable
2573   dnl it if cross compiling with gstreamer support.
2574   if test x$cross_compiling = xno; then
2575     GNASH_PKG_FIND(gstreamer_pbutils, [gst/pbutils/install-plugins.h], [gstreamer PB Utils library], gst_install_plugins_supported, [0.10])
2576   fi
2577   dnl when cross compiling Gstreamer, not all supplied SDKs include all the
2578   dnl development libraries since most devices don't need to support plugin
2579   dnl development, only the runtime. In these caes we often have the header
2580   dnl files but not the libraries.
2581   if test x"${has_gstreamer_plugins_base}" = xyes; then
2582     GSTREAMER_LIBS="-lgstinterfaces-0.10 $GSTREAMER_LIBS"
2583     AC_DEFINE(HAS_GSTREAMER_PLUGINS_BASE, [1], [Has the Gstreamer Plugin Dev package installed])
2584   fi
2587 AM_CONDITIONAL(HAVE_CAIRO, [true])
2588 dnl AM_CONDITIONAL(HAVE_CAIRO, [test x"${has_cairo}" = xyes])
2589 AM_CONDITIONAL(HAVE_OPENGL, [true])
2590 dnl AM_CONDITIONAL(HAVE_OPENGL, test x"${has_opengl}" = xyes)
2592 AM_CONDITIONAL(USE_SOUND_SDL, test x$build_sound_sdl = xyes)
2593 AM_CONDITIONAL(USE_SOUND_AHI, test x$build_sound_ahi = xyes)
2594 AM_CONDITIONAL(USE_SOUND_MKIT, test x$build_sound_mkit = xyes)
2595 AM_CONDITIONAL(USE_FFMPEG_ENGINE, test x"${build_media_ffmpeg}" = x"yes")
2596 AM_CONDITIONAL(USE_GST_ENGINE, test x"${build_media_gst}" = x"yes")
2597 AM_CONDITIONAL(HAVE_OPENGL, test x"${OPENGL_LIBS}" != x)
2598 dnl for now the Haiku media handler is experimental
2599 AM_CONDITIONAL(USE_HAIKU_ENGINE, test x"$build_media_haiku" = xyes)
2601 if test x"${build_media_ffmpeg}" = x"yes"; then
2602   AC_DEFINE([ENABLE_FFMPEG_MEDIA],  [1], [Use FFmpeg for media decoding])
2605 if test x"${build_media_gst}" = x"yes"; then
2606   AC_DEFINE([ENABLE_GST_MEDIA],  [1], [Use gstreamer for media decoding])
2609 if test x"${build_media_haiku}" = x"yes"; then
2610   AC_DEFINE([ENABLE_HAIKU_MEDIA],  [1], [Use haiku for media decoding])
2613 if test x$build_sound_mkit = xyes; then
2614   if test x"${haiku}" != xyes; then
2615     AC_MSG_ERROR([Media Kit sound handling is supported only under Haiku]);
2616   else
2617     AC_DEFINE([SOUND_MKIT],  [1], [Use Haiku's Media Kit for sound handling])
2618   fi
2621 if test x"${build_sound_sdl}" = xyes; then
2622   AC_DEFINE([SOUND_SDL],  [1], [Use SDL for sound handling])
2625 if test x"${build_sound_ahi}" = xyes; then
2626   if test x"$amigaos4" != xyes; then
2627     AC_MSG_ERROR([AHI sound handling is supported only under AmigaOS]);
2628   else
2629     AC_DEFINE([SOUND_AHI],  [1], [Use AmigaOS AHI for sound handling])
2630   fi
2633 if test x$build_fltk = xyes; then
2634   GNASH_PKG_FIND(fltk2, [fltk/FL_API.h], [Fast Light Toolkit], fl_window_flush)
2637 AM_CONDITIONAL(HAVE_FLTK2, [ test x$has_fltk2 = xyes ])
2638 AM_CONDITIONAL(HAS_XFT, [ test x$has_xft = xyes ])
2640 GNASH_DOCBOOK
2641 AM_CONDITIONAL(ENABLE_INFO, test x${INSTALL_INFO} != x)
2642 AM_CONDITIONAL(DOCBOOK, test x$docbook = xyes)
2643 AM_CONDITIONAL(ENABLE_TEXI, [ test x"$DB2X_TEXI" != x -o x"$DB2X_TEXIXML" != x ])
2644 AM_CONDITIONAL(ENABLE_PDF, [ test x"$DB2X_PDF" ])
2645 AM_CONDITIONAL(ENABLE_HTML, [ test x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2646 AM_CONDITIONAL(ENABLE_FOP, [ test x"$FOP" != x -a x"$docbook_styles" != x ])
2647 AM_CONDITIONAL(ENABLE_XMLTEX, [ test x"$PDFXMLTEX" != x -a x"$XSLTPROC" != x -a x"$docbook_styles" != x ])
2648 dnl  AM_CONDITIONAL(ENABLE_DBLATEX, [ test x"$DBLATEX" != x ])
2649 AM_CONDITIONAL(ENABLE_MAN, [ test x"$DB2X_MAN" != x -o x"$DB2X_MANXML" != x ])
2650 AM_CONDITIONAL(HAVE_AGG, [test x"${AGG_LIBS}" != x])
2652 GNASH_PATH_CURL
2654 dnl Define winsock if we're on windows. We could do something complicated,
2655 dnl but since AC_EXEEXT does it for us, we'll do this the easy way.
2656 if test x"$EXEEXT" = "exe"; then
2657   AC_DEFINE(HAVE_WINSOCK,1,[This is defined is we are on Win32])
2660 dnl ****************************************
2661 dnl *** Check for ELF visibility support ***
2662 dnl ****************************************
2664 AC_ARG_ENABLE([visibility],
2665   AC_HELP_STRING([--enable-visibility], [Use ELF visibility attributes]), [], [enable_visibility=no])
2667 if test x"$enable_visibility" != x"no"; then
2668   dnl Check whether the compiler supports the visibility attribute
2669   save_CFLAGS="$CFLAGS"
2670   CFLAGS="$CFLAGS -Wall -Werror"
2671   AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
2672   AC_COMPILE_IFELSE(AC_LANG_SOURCE(
2673     [
2674       void __attribute__ ((visibility("default"))) test_default (void) {}
2675       void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
2676       int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
2677     ]),
2678     [
2679       AC_DEFINE([HAVE_GNUC_VISIBILITY], [1], [Define this for GCC-visibility.])
2680       AC_MSG_RESULT([yes])
2681     ],
2682     [
2683       AC_MSG_RESULT([no])
2684     ]
2685   )
2686   CFLAGS="$save_CFLAGS"
2689 AC_ARG_ENABLE([pch],
2690   AC_HELP_STRING([--enable-pch], [Enable precompiled header support]), [], [enable_pch=no])
2692 AM_CONDITIONAL([ENABLE_PCH], [test x"$enable_pch" != x"no"])
2694 PCH_FLAGS="-include all-includes.h -Winvalid-pch"
2695 AC_SUBST(PCH_FLAGS)
2697 GNASH_PATH_PTHREADS
2699 GNASH_PATH_BOOST
2700 dnl AX_GCC_ARCHFLAG(no)
2702 AC_ARG_ENABLE([strict],
2703   AC_HELP_STRING([--enable-strict],[Accept only standards compliant code (GCC only)]),
2704   [case "${enableval}" in
2705     yes) strict=yes ;;
2706     no) strict=no ;;
2707     *) AC_MSG_ERROR([bad value ${enableval} for --enable-strict option]) ;;
2708   esac],
2709   [strict=no]
2712 if test x"$strict" = x"yes" -a x$build_agg = xyes; then
2713    AC_MSG_ERROR([agg renderer will fail with --enable-strict.]);        
2716 # We want warnings, lots of warnings  :-)
2717 # It should be possible to build with -ansi, not with
2718 # -pedantic because of agg.
2720 # -ansi was actually dropped because it hides 'fileno', which
2721 # is used in a few places
2723 if test x"$GCC" = x"yes"; then
2724   CXXFLAGS="$CXXFLAGS \
2725     $CROSS_CXXFLAGS \
2726     -W \
2727     -Wall \
2728     -Wcast-align \
2729     -Wcast-qual \
2730     -Wpointer-arith \
2731     -Wreturn-type \
2732     -Wnon-virtual-dtor \
2733     -Wunused \
2734     "
2735   CFLAGS="$CFLAGS \
2736     $CROSS_CXXFLAGS \
2737     -W \
2738     -Wall \
2739     -Wcast-align \
2740     -Wcast-qual \
2741     -Wpointer-arith \
2742     -Wreturn-type \
2743     -Wmissing-declarations \
2744     -Wmissing-prototypes \
2745     -Wstrict-prototypes \
2746     "
2747   if test x"$strict" = x"yes"; then
2748     CXXFLAGS="$CXXFLAGS \
2749       -Wextra \   
2750       -pedantic \
2751       -Wno-long-long \
2752       "
2754     CFLAGS="$CFLAGS \
2755       -pedantic \
2756       -Wno-long-long \
2757       -ansi \
2758       "
2759   fi
2762 AC_ARG_ENABLE([cassert],
2763   AC_HELP_STRING([--disable-cassert],[Disable assertion checking]),
2764   [case "${enableval}" in
2765     yes) cassert=yes ;;
2766     no) cassert=no ;;
2767     *) AC_MSG_ERROR([bad value ${enableval} for --enable-cassert option]) ;;
2768   esac],
2769   [cassert=yes]
2772 if test x"$cassert" = x"no"; then
2773     CXXFLAGS="$CXXFLAGS \
2774       -DNDEBUG \
2775       "
2776     CFLAGS="$CFLAGS \
2777       -DNDEBUG \
2778       "
2781 dnl /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
2782 AC_DEFUN([CHECK_VISIBILITY_GCC_BUG],
2783   [
2784     AC_CACHE_CHECK([if -fvisibility-inlines-hidden is broken], ac_cv_gcc_visibility_bug, [
2785         AC_LANG_PUSH(C++)
2786         save_CXXFLAGS=$CXXFLAGS
2787         save_LDFLAGS=$LDFLAGS
2788         CXXFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
2789         LDFLAGS="$LDFLAGS -shared -fPIC"
2791         AC_TRY_LINK(
2792         [          
2793           template<typename CharT>
2794           struct VisTest
2795           {
2796             inline VisTest ();
2797           };
2798           template<typename CharT>
2799           inline VisTest<CharT>::VisTest()
2800         {}
2801         extern template class VisTest<char>;  // It works if we drop that line
2802         int some_function( int do_something ) __attribute__((visibility("default")));
2803         int some_function( int )
2804           {
2805             VisTest<char> a;
2806             return 0;
2807           }
2808         ], [],
2809         ac_cv_gcc_visibility_bug=no, ac_cv_gcc_visibility_bug=yes)
2811         CXXFLAGS=$save_CXXFLAGS
2812         LDFLAGS=$save_LDFLAGS
2813         AC_LANG_POP(C++)
2814       ]
2815     )
2816     if test x$ac_cv_gcc_visibility_bug = xno; then
2817       CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
2818     fi
2819   ]
2822 CHECK_VISIBILITY_GCC_BUG
2824 if test x$ac_cv_gcc_visibility_bug = xno; then
2825   AC_LANG_PUSH(C++)
2826   AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
2827   save_CXXFLAGS=$CXXFLAGS
2828   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2829   AC_LINK_IFELSE([AC_LANG_PROGRAM()], 
2830                  [ac_cv_gcc_visibility=yes;
2831                   AC_MSG_RESULT([yes])],
2832                  [ac_cv_gcc_visibility=no;
2833                   AC_MSG_RESULT([no])]);
2834   CXXFLAGS="$save_CXXFLAGS"
2835   AC_LANG_POP(C++)
2839 AM_CONDITIONAL(VISIBILITY_WORKS, test x"$ac_cv_gcc_visibility" = xyes)
2841 if test x"$ac_cv_gcc_visibility" = xyes -a x"$enable_visibility" != xno; then
2842   CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
2845 dnl Define convienience constants so Gnash can print out the
2846 dnl default configuration of the build.
2847 RENDERER_CONFIG="${renderer_list}"
2848 RENDERER_LIBS=
2849 for rend in `echo "${add_renderer}" | tr ',' ' '`; do
2850         RENDERER_LIBS="${RENDERER_LIBS} \$(top_builddir)/librender/libgnash${rend}.la"
2851 done
2852 dnl echo "RENDERER_LIBS=$RENDERER_LIBS"
2853 AC_SUBST(RENDERER_LIBS)
2854 AC_SUBST(RENDERER_CONFIG)
2856 HWACCEL_CONFIG="${hwaccel_list}"
2857 AC_SUBST(HWACCEL_CONFIG)
2859 dnl check for missing libraries and disable them.
2860 if test x"$BOOST_LIBS" != x; then
2861   if test x"${cygnal_missing_libs}" != x; then
2862     for i in ${cygnal_missing_libs}; do
2863       if test $i = serialization; then
2864         AC_DEFINE([BOOST_MULTI_INDEX_DISABLE_SERIALIZATION], ["1"], [if the library is missing, don't use it.])
2865       fi
2866     done
2867   fi
2870 CYGNAL_PATHS
2872 SUPPORTED_GUIS=
2873 if test x$build_qtopia3 = xyes; then
2874   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia3"
2876 if test x$build_qtopia4 = xyes; then
2877   SUPPORTED_GUIS="${SUPPORTED_GUIS},qtopia4"
2879 if test x$build_fb = xyes; then
2880   SUPPORTED_GUIS="${SUPPORTED_GUIS},fb"
2882 if test x$build_fltk = xyes; then
2883   SUPPORTED_GUIS="${SUPPORTED_GUIS},fltk"
2885 if test x$build_kde3 = xyes; then
2886   SUPPORTED_GUIS="${SUPPORTED_GUIS},kde3"
2888 if test x$build_kde4 = xyes; then
2889   SUPPORTED_GUIS="${SUPPORTED_GUIS},kde4"
2891 if test x$build_gtk = xyes; then
2892   SUPPORTED_GUIS="${SUPPORTED_GUIS},gtk"
2894 if test x$build_sdl = xyes; then
2895   SUPPORTED_GUIS="${SUPPORTED_GUIS},sdl"
2897 if test x$build_riscos = xyes; then
2898   SUPPORTED_GUIS="${SUPPORTED_GUIS},riscos"
2900 if test x$build_aqua = xyes; then
2901   SUPPORTED_GUIS="${SUPPORTED_GUIS},aqua"
2903 if test x$build_dump = xyes; then
2904   SUPPORTED_GUIS="${SUPPORTED_GUIS},dump"
2906 if test x$build_aos4 = xyes; then
2907   SUPPORTED_GUIS="${SUPPORTED_GUIS},aos4"
2909 if test x$build_haiku = xyes; then
2910   SUPPORTED_GUIS="${SUPPORTED_GUIS},haiku"
2912 SUPPORTED_GUIS="`echo ${SUPPORTED_GUIS} | sed 's/,//'`" # Strip leading comma
2913 AC_SUBST(SUPPORTED_GUIS)
2915 dnl AC_CONFIG_LINKS(doc/C/images)
2916 dnl AC_CONFIG_LINKS(gnashconfig.h,libltdl/config.h)
2917 AC_CONFIG_LINKS(cygnal/testsuite/cygnal.all/cygnalrc:cygnal/testsuite/cygnal.all/cygnalrc.in)
2918 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc:testsuite/libbase.all/gnashrc.in)
2919 AC_CONFIG_LINKS(testsuite/libbase.all/gnashrc-local:testsuite/libbase.all/gnashrc-local.in)
2921 AC_CONFIG_FILES(gnash.pc:gnash.pc.in)
2923 AC_OUTPUT(Makefile
2924 po/Makefile
2925 libltdl/Makefile
2926 libmedia/Makefile
2927 libsound/Makefile
2928 libbase/Makefile
2929 libcore/Makefile
2930 libcore/vm/Makefile
2931 libcore/parser/Makefile
2932 libvaapi/Makefile
2933 librender/Makefile
2934 utilities/Makefile
2935 doc/Makefile
2936 doc/C/Makefile
2937 doc/Doxyfile
2938 testsuite/Makefile
2939 testsuite/media/Makefile
2940 testsuite/libbase.all/Makefile
2941 testsuite/as3compile.all/Makefile
2942 testsuite/actionscript.all/Makefile
2943 testsuite/samples/Makefile
2944 testsuite/swfdec/Makefile
2945 testsuite/misc-ming.all/Makefile
2946 testsuite/misc-ming.all/action_order/Makefile
2947 testsuite/misc-ming.all/displaylist_depths/Makefile
2948 testsuite/misc-ming.all/loop/Makefile
2949 testsuite/misc-ming.all/loading/Makefile
2950 testsuite/misc-mtasc.all/Makefile
2951 testsuite/misc-haxe.all/Makefile
2952 testsuite/misc-haxe.all/classes.all/Makefile
2953 testsuite/misc-swfmill.all/Makefile
2954 testsuite/misc-swfmill.all/trace-as2/Makefile
2955 testsuite/misc-swfmill.all/trace-as3/Makefile
2956 testsuite/misc-swfc.all/Makefile
2957 testsuite/network.all/Makefile
2958 testsuite/movies.all/Makefile
2959 testsuite/libcore.all/Makefile
2960 testsuite/libmedia.all/Makefile
2961 gui/Makefile
2962 gui/fb/Makefile
2963 gui/Info.plist
2964 gui/pythonmod/Makefile
2965 extensions/Makefile
2966 extensions/dejagnu/Makefile
2967 extensions/mysql/Makefile
2968 extensions/fileio/Makefile
2969 extensions/gtk2/Makefile
2970 extensions/lirc/Makefile
2971 extensions/dbus/Makefile
2972 plugin/Makefile
2973 plugin/npapi/Makefile
2974 plugin/klash/Makefile
2975 plugin/klash4/Makefile
2976 plugin/win32/Makefile
2977 plugin/aos4/Makefile
2978 cygnal/Makefile
2979 cygnal/libnet/Makefile
2980 cygnal/libamf/Makefile
2981 cygnal/cgi-bin/Makefile
2982 cygnal/cgi-bin/echo/Makefile
2983 cygnal/cgi-bin/oflaDemo/Makefile
2984 cygnal/cgi-bin/fitcDemo/Makefile
2985 cygnal/testsuite/Makefile
2986 cygnal/testsuite/libamf.all/Makefile
2987 cygnal/testsuite/libnet.all/Makefile
2988 cygnal/testsuite/cygnal.all/Makefile
2992 ########################## Final report begins... ############################
2995 cerr=/tmp/gnash-configure-errors.$$
2996 cwarn=/tmp/gnash-configure-warnings.$$
2997 crec=/tmp/gnash-configure-recommended.$$
2998 echo ""
3000 #trap 'rm cerr' 0 # trap isn't a good idea, might override other traps
3001 exec 3> $cerr 
3002 exec 4> $cwarn
3003 exec 5> $crec
3005 echo "Configurable options are:"
3007 if test x"${i810lodbias}" = x"yes"; then
3008   echo "        Intel 810 LOD bias hack enabled"
3009 else
3010   echo "        Intel 810 LOD bias hack disabled (default). Use --enable-i810-lod-bias to enable."
3013 if test x"${pthreads}" = x"yes"; then
3014   echo "        POSIX Threads support enabled (default)"
3015 else
3016   if test x"${build_haiku}" = x"yes"; then
3017      echo "        POSIX Thread support built into C library."
3018   els
3019      echo "        POSIX Thread support disabled."
3020   fi
3023 if test x"${dmalloc}" = x"yes"; then
3024   echo "        DMalloc support enabled"
3025   echo "        For a list of the command-line options enter: dmalloc --usage"
3026 else
3027   echo "        DMalloc support disabled (default). Use --enable-dmalloc to enable."
3030 if test x"${npapi}" = x"yes"; then
3031   echo "        NPAPI plugin enabled (default). Use --disable-npapi to disable."
3032   echo "            NPAPI plugin will be installed in ${FIREFOX_PLUGINS}"
3033 else
3034   echo "        NPAPI plugin disabled."
3037 if test x"${build_kparts3}" = x"yes"; then
3038   echo "        KPARTS 3.x plugin enabled (default). Use --disable-kparts3 to disable"
3039   echo "            KPARTS 3.x plugin will be installed in ${KDE3_PLUGINDIR}"
3040   echo "            KPARTS 3.x service will be installed in ${KDE3_SERVICESDIR}"
3041   echo "            KPARTS 3.x config dir will be in ${KDE3_CONFIGDIR}"
3042   echo "            KPARTS 3.x appsdata will be installed in ${KDE3_APPSDATADIR}"
3043 else
3044   echo "        KPARTS 3.x plugin disabled."
3047 if test x"${build_kparts4}" = x"yes"; then
3048   echo "        KPARTS 4.x plugin enabled (default). Use --disable-kparts4 to disable"
3049   echo "            KPARTS 4.x plugin will be installed in ${KDE4_PLUGINDIR}"
3050   echo "            KPARTS 4.x service will be installed in ${KDE4_SERVICESDIR}"
3051   echo "            KPARTS 4.x config dir will be in ${KDE4_CONFIGDIR}"
3052   echo "            KPARTS 4.x appsdata will be installed in ${KDE4_APPSDATADIR}"
3053 else
3054   echo "        KPARTS 4.x plugin disabled."
3057 dnl -- if test x"${dynamic_gui}" = x"yes"; then
3058 dnl --   echo "        Loadable GUI & renderer enabled."
3059 dnl -- else
3060 dnl --   echo "        Loadable GUI & renderer disabled (default). Use --enable-dynamic-gui to enable."
3061 dnl -- fi
3063 # set a variable if we shouldn't continue. This way we can print
3064 # out everything that is missing in one pass, hopefully making it
3065 # easy for new developers to get everything they need installed.
3067 echo "Configured paths for ${build} are:"
3069 dnl Dump QT3 options is the user specified a QTOPIA3 or KDE3 GUI
3070 if test x"${build_kde3}" = xyes -o x"${build_qtopia3}" = xyes; then
3071   if test x"${has_qt3}" = xyes; then
3072     echo "        QT3 flags are: ${QT3_CFLAGS}"
3073     echo "        QT3 libs are: ${QT3_LIBS}"
3074   else
3075     echo "        ERROR: No QT 3.x development package installed!" >&3
3076     echo "               Install a QT 3.x development environment from http://trolltech.com" >&3
3077     echo "               or .deb users: apt-get install libqt3-mt-dev" >&3
3078     echo "               or change to a different gui with --enable-gui=..." >&3
3079   fi
3082 dnl Dump QT4 options is the user specified a QTOPIA4 or KDE4 GUI
3083 if test x"${build_kde4}" = xyes -o x"${build_qtopia4}" = xyes; then
3084   if test x"${has_qt4}" = xyes; then
3085     echo "        QT4 flags are: ${QT4_CFLAGS}"
3086     echo "        QT4 libs are: ${QT4_LIBS}"
3087   else
3088     echo "        ERROR: No QT 4.x development package installed!" >&3
3089     echo "               Install a QT 4.x development environment from http://trolltech.com" >&3
3090     echo "               or .deb users: apt-get install qt4-dev-tools" >&3
3091     echo "               or change to a different gui with --enable-gui=..." >&3
3092   fi
3095 if test x"$build_qtopia3" = xyes; then
3096   if test x"${QTOPIA3_LIBS}" != x ; then
3097     if test x"${QTOPIA3_CFLAGS}" != x ; then
3098       echo "        QTOPIA 3.x flags are: $QTOPIA3_CFLAGS"
3099     else
3100       echo "        QTOPIA 3.x flags are: default include path"
3101     fi
3102     echo "        QTOPIA 3.x libs are: $QTOPIA3_LIBS"
3103   else
3104     echo "        ERROR: No QTOPIA 3.x library development package installed!" >&3
3105     echo "               Install it from http://trolltech.com/downloads/" >&3
3106     echo "               binary packages are not available." >&3
3107   fi
3110 if test x"$build_qtopia4" = xyes; then
3111   if test x"${QTOPIA4_LIBS}" != x ; then
3112     if test x"${QTOPIA4_CFLAGS}" != x ; then
3113       echo "        QTOPIA 4.x flags are: $QTOPIA4_CFLAGS"
3114     else
3115       echo "        QTOPIA 4.x flags are: default include path"
3116     fi
3117     echo "        QTOPIA 4.x libs are: $QTOPIA4_LIBS"
3118   else
3119     echo "        ERROR: No QTOPIA 4.x library development package installed!" >&3
3120     echo "               Install it from http://trolltech.com/downloads/" >&3
3121     echo "               binary packages are not available." >&3
3122   fi
3126 # -o x$build_kparts3 = xyes
3127 if test x$build_kde3 = xyes; then
3128   if test x"$has_kde3" = xyes; then
3129     echo "        KDE 3.x flags are: $KDE3_CFLAGS"
3130     echo "        KDE 3.x libs are: $KDE3_LIBS"
3131   else
3132       echo "        ERROR: No KDE 3.x development package installed!" >&3
3133       echo "               To disable the KDE 3.x gui," >&3
3134       echo "               reconfigure using --enable-gui=<list-of-guis>" >&3
3135       echo "               and omit "kde" from the list." >&3
3136       echo "               or avoid --enable-gui=... as a whole." >&3
3137       echo "               To be able to build the kde 3.x gui," >&3
3138       echo "               install version 3.x of the KDE development environment" >&3
3139       echo "               from http://kde.org" >&3
3140       echo "               or .deb users: apt-get install kdelibs4-dev" >&3
3141       echo "               or .rpm users: yum install kdelibs3-devel." >&3
3142   fi
3145 # -o x$build_kparts4 = xyes
3146 if test x$build_kde4 = xyes; then
3147   if test x"$has_kde4" = xyes; then
3148     echo "        KDE 4.x flags are: $KDE4_CFLAGS"
3149     echo "        KDE 4.x libs are: $KDE4_LIBS"
3150   else
3151       echo "        ERROR: No KDE 4.x development package installed!" >&3
3152       echo "               To disable the KDE 4.x gui," >&3
3153       echo "               reconfigure using --enable-gui=<list-of-guis>" >&3
3154       echo "               and omit "kde4" from the list" >&3
3155       echo "               or avoid --enable-gui=... as a whole." >&3
3156       echo "               To be able to build the kde 4.x gui," >&3
3157       echo "               install version 4.x of the KDE development environment" >&3
3158       echo "               from http://kde.org" >&3
3159       echo "               or .deb users: apt-get install kdelibs5-dev" >&3
3160       echo "               or .rpm users: yum install kdelibs-devel." >&3
3161   fi
3164 if test x"${JPEG_LIBS}" != x ; then
3165   if test x"${JPEG_CFLAGS}" != x ; then
3166     echo "        JPEG flags are: $JPEG_CFLAGS"
3167   else
3168     echo "        JPEG flags are: default include path"
3169   fi
3170   echo "        JPEG libs are: $JPEG_LIBS"
3171 else
3172   echo "        ERROR: No JPEG library development package installed!" >&3
3173   echo "               Install it from http://ijg.org" >&3
3174   echo "               or .deb users: apt-get install libjpeg-dev" >&3
3175   echo "               or .rpm users: yum install libjpeg-devel" >&3
3178 if test x"${GIF_LIBS}" != x ; then
3179   if test x"${GIF_CFLAGS}" != x ; then
3180     echo "        GIF flags are: $GIF_CFLAGS"
3181   else
3182     echo "        GIF flags are: default include path"
3183   fi
3184   echo "        GIF libs are: $GIF_LIBS"
3185 else
3186   echo "        ERROR: No GIF library development package installed!" >&3
3187   echo "               Install it from http://sourceforge.net/projects/giflib/" >&3
3188   echo "               or .deb users: apt-get install libungif-dev" >&3
3189   echo "               or maybe     : apt-get install libgif-dev" >&3
3190   echo "               or .rpm users: yum install libungif-devel" >&3
3193 if test x"${PNG_LIBS}" != x ; then
3194   if test x"${PNG_CFLAGS}" != x ; then
3195     echo "        PNG flags are: $PNG_CFLAGS"
3196   else
3197     echo "        PNG flags are: default include path"
3198   fi
3199   echo "        PNG libs are: $PNG_LIBS"
3200 else
3201   echo "        RECOMMENDED: No PNG library development package installed!" >&5
3202   echo "                     Gnash will be built without support for dynamic loading of PNG files." >&5
3203   echo "                     Install it from http://www.libpng.org" >&5
3204   echo "                     or .deb users: apt-get install libpng12-dev" >&5
3205   echo "                     or .rpm users: yum install libpng-devel" >&5
3208 if test x"${build_ogl}" = x"yes"; then
3209   if test x"$OPENGL_LIBS" != x; then
3210     if test x"$OPENGL_CFLAGS" != x; then
3211       echo "        OpenGL flags are: $OPENGL_CFLAGS"
3212     else
3213       echo "        OpenGL flags are: default include path"
3214     fi
3215     echo "        OpenGL libs are: $OPENGL_LIBS"
3216     else
3217       echo "        ERROR: No OpenGL development package installed!" >&3
3218       echo "               You need to install the libmesa development package" >&3
3219       echo "               or .deb users: apt-get install libgl1-mesa-dev" >&3
3220       echo "               or .rpm users: yum install xorg-x11-Mesa-libGL" >&3
3221       echo "               or use a different renderer with --enable-renderer=" >&3
3222   fi
3225 if test x"${build_gles}" = x"yes"; then
3226   if test x"${has_gles}" != x; then
3227     if test x"$GLES_CFLAGS" != x; then
3228       echo "        OpenGL-ES flags are: $GLES_CFLAGS"
3229     else
3230       echo "        OpenGL-ES flags are: default include path"
3231     fi
3232     echo "        OpenGL-ES libs are: $GLES_LIBS"
3233   else
3234       echo "        ERROR: No OpenGL-ES development package installed!" >&3
3235       echo "               You need to install the this from source proobably" >&3
3236       echo "               or use a different renderer with --enable-renderer=" >&3
3237   fi
3240 dnl GLEXT is only needed for GTK/OpenGL
3241 if test x$build_gtk = xyes -a x$build_ogl = xyes ; then
3242   if test x"$GLEXT_LIBS" != x; then
3243     if test x"$GLEXT_CFLAGS" != x; then
3244       echo "        GtkGLExt flags are: $GLEXT_CFLAGS"
3245     else
3246       echo "        GtkGLExt flags are: default include path"
3247     fi
3248       echo "        GtkGLExt libs are: $GLEXT_LIBS"
3249   else
3250     if test x$build_gtk = xyes; then
3251       if test x$build_ogl = xyes; then
3252         echo "        ERROR: No GtkGLExt development package installed!" >&3
3253         echo "               It is needed to build the GTK/OpenGL GUI/renderer combination." >&3
3254         echo "               Either install it from http://gtkglext.sourceforge.net" >&3
3255         echo "               or .deb users: apt-get install libgtkglext1-dev" >&3
3256         echo "               or .rpm users: yum install gtkglext-devel" >&3
3257         echo "               or --enable-gui=sdl or --enable-renderer=agg" >&3
3258       fi
3259     fi
3260   fi
3264 if test x$build_gtk = xyes; then #{
3265   if test x"$GTK2_LIBS" != x; then
3266     if test x"$GTK2_CFLAGS" != x; then
3267       echo "        GTK2 flags are: $GTK2_CFLAGS"
3268     else
3269       echo "        GTK2 flags are: default include path"
3270     fi
3271       echo "        GTK2 libs are: $GTK2_LIBS"
3272   else
3273     echo "        ERROR: No GTK2 development package installed!" >&3
3274     echo "               Install it from http://gtk.org" >&3
3275     echo "               or .deb users: apt-get install libgtk2.0-dev" >&3
3276     echo "               or .rpm users: yum install gtk2-devel" >&3
3277   fi
3279   if test x"$PANGO_LIBS" != x; then
3280     if test x"$PANGO_CFLAGS" != x; then
3281       echo "        Pango flags are: $PANGO_CFLAGS"
3282     else
3283       echo "        Pango flags are: default include path"
3284     fi
3285     echo "        Pango libs are: $PANGO_LIBS"
3286   else
3287     echo "        ERROR: No Pango development package installed!" >&3
3288     echo "               Install it from http://pango.org" >&3
3289     echo "               or .deb users: apt-get install libpango1.0-dev" >&3
3290     echo "               or .rpm users: yum install pango-devel" >&3
3291   fi
3293   if test x"$GLIB_LIBS" != x; then
3294     if test x"$GLIB_CFLAGS" != x; then
3295       echo "        GLib flags are: $GLIB_CFLAGS"
3296     else
3297       echo "        GLib flags are: default include path"
3298     fi
3299     echo "        GLib libs are: $GLIB_LIBS"
3300   else
3301     echo "        ERROR: No GLib development package installed!" >&3
3302     echo "               Install it from http://gtk.org" >&3
3303     echo "               or .deb users: apt-get install libglib2.0-dev" >&3
3304     echo "               or .rpm users: yum install glib2-devel" >&3
3305   fi
3307   if test x"$ATK_LIBS" != x; then
3308     if test x"$ATK_CFLAGS" != x; then
3309       echo "        ATK flags are: $ATK_CFLAGS"
3310     else
3311       echo "        ATK flags are: default include path"
3312     fi
3313       echo "        ATK libs are: $ATK_LIBS"
3314   else
3315     echo "        ERROR: No ATK development package installed!" >&3
3316     echo "               Install it from http://gtk.org" >&3
3317     echo "               or .deb users: apt-get install libatk1.0-dev" >&3
3318     echo "               or .rpm users: yum install atk-devel" >&3
3319   fi
3323 if test x"$build_media_gst" = x"yes"; then
3324   if test x"$missing_codecs" != x; then   
3325       echo "        Your Gstreamer installation is missing these codecs: $missing_codecs"
3326       echo "        Please install the gstreamer-ffmpeg for Gstreamer"
3327   fi  
3328   if test x"$GSTREAMER_LIBS" != x; then
3329     if test x"$GSTREAMER_CFLAGS" != x; then
3330       echo "        Gstreamer flags are: $GSTREAMER_CFLAGS"
3331     else
3332       echo "        Gstreamer flags are: default include path"
3333     fi
3334     echo "        Gstreamer libs are: $GSTREAMER_LIBS"
3335     if test x"$has_gstreamer_pbutils" != "xyes"; then
3336       echo "        RECOMMENDED: If the user has not installed the necessary Gstreamer plugins," >&5
3337       echo "                     Gstreamer can pop up a message prompting them to." >&5
3338       echo "                     Install gstpbutils (>= 0.10.15) from http://www.gstreamer.net for that to be enabled" >&5
3339       echo "                     or .deb users: apt-get install libgstreamer-plugins-base0.10-dev" >&5
3340       echo "                     Also see --with-gstpbutils-incl and --with-gstpbutils-lib" >&5
3341     fi
3342     if test x"$has_gstreamer_plugins_base" = "xno"; then
3343       dnl check if this is really a mandatory asset !
3344       echo "        ERROR: base plugins are required for gstreamer media" >&3
3345       echo "                        Install gstreamer-plugins-base from http://www.gstreamer.net" >&3
3346       echo "                        or .rpm users: yum install gstreamer-plugins-base-devel" >&3
3347       echo "                        or .deb users: apt-get install libgstreamer-plugins-base0.10-dev" >&3
3348     fi
3349   else
3350     echo "        ERROR: GST media handling requested but gstreamer-0.10+ not found" >&3
3351     echo "               Install it from http://www.gstreamer.net" >&3
3352     echo "               or .deb users: apt-get install libgstreamer0.10-dev" >&3
3353     echo "               or .rpm users: yum install gstreamer-devel" >&3
3354     echo "               or             yast install gstreamer010-devel" >&3
3355   fi
3358   if test x"${build_media_ffmpeg}" = x"yes"; then
3359     if test x"$FFMPEG_LIBS" != x; then
3360       echo "        MP3 and video support enabled through FFmpeg"
3361       if test x"${ffmpeg_version_check}" != xok; then
3362         echo "        ERROR: You have version ${ffmpeg_version} of FFmpeg installed," >&3
3363         if test x"${have_ffmpeg_swscale}" = "xno"; then
3364           echo "               with no swscale enabled." >&3
3365         else
3366           echo "               with swscale enabled." >&3
3367         fi
3368         echo "               This setup isn't supported!" >&3
3369         echo "               Version 51.11.0 or newer is required, enabling swscale if >= 52.0.0." >&3
3370         echo "               You can install libswscale from http://ffmpeg.org" >&3
3371         echo "               or .deb users: apt-get install libswscale-dev" >&3
3372       else
3373         if test x"${avformat_h}" = x; then
3374           echo "        ERROR: FFmpeg's libavcodec header is installed but not libavformat." >&3
3375           echo "               You can install FFmpeg from http://ffmpeg.org" >&3
3376           echo "               or .deb users: apt-get install libavformat-dev" >&3
3377           echo "               or YaST users: yast -i libavformat-api (but currently installs into /usr/lib64)" >&3
3378           echo "               or explicitly set the path using --with-ffmpeg-incl=" >&5
3379           echo "               or reconfigure with --enable-media=gst" >&3
3380         else
3381           if test x"$FFMPEG_CFLAGS" != x; then
3382             echo "        FFmpeg flags are: $FFMPEG_CFLAGS"
3383           else
3384             echo "        FFmpeg flags are: default include path"
3385           fi
3386           echo "        FFmpeg libs are: $FFMPEG_LIBS"
3387         fi
3388       fi
3389     else
3390       echo "        ERROR: No FFmpeg development package installed!" >&3
3391       echo "               You can install FFmpeg from http://ffmpeg.org" >&3
3392       echo "               or .deb users: apt-get install libavformat-dev" >&3
3393       echo "               or .rpm users: yum install ffmpeg-devel" >&3
3394       echo "               or reconfigure with --enable-media=gst" >&3
3395     fi
3396   fi
3398 if test x$build_cairo = xyes; then
3399   if test x"$CAIRO_LIBS" != x; then
3400     if test x"$CAIRO_CFLAGS" != x; then
3401       echo "        Cairo flags are: $CAIRO_CFLAGS"
3402     else
3403       echo "        Cairo flags are: default include path"
3404     fi
3405     echo "        Cairo libs are: $CAIRO_LIBS"
3406   else
3407     echo "        ERROR: No Cairo development package installed!" >&3
3408     echo "               You need to have the Cairo development package installed" >&3
3409     echo "               if you have used --enable-render=cairo to configure." >&3
3410     echo "               Install it from http://cairographics.org" >&3
3411     echo "               or .deb users: apt-get install libcairo-dev" >&3
3412     echo "               or .rpm users: yum install cairo-devel" >&3
3413   fi
3416 if test x$build_fltk = xyes; then
3417   if test x"$FLTK2_LIBS" != x; then
3418     if test x"$FLTK2_CFLAGS" != x; then
3419       echo "        FLTK flags are: $FLTK2_CFLAGS"
3420     else
3421       echo "        FLTK flags are: default include path"
3422     fi
3423       echo "        FLTK libs are: $FLTK2_LIBS"
3424   else
3425     echo "        ERROR: No FLTK2 development package installed!" >&3
3426     echo "               There are currently no Debian or RPM packages for FLTK2;" >&3
3427     echo "               see http://www.fltk.org to install it from source." >&3
3428     echo "               or change to a different gui with --enable-gui=..." >&3
3429 dnl What it was for FLTK 1:
3430 dnl    echo "               or .deb users: apt-get install fltk-1.1-dev"
3431 dnl    echo "               or .rpm users: yum install fltk-devel"
3432   fi
3435 if test x$build_fltk = xyes; then
3436   if test x"$XFT_LIBS" != x; then
3437     if test x"$XFT_CFLAGS" != x; then
3438       echo "        Xft flags are: $XFT_CFLAGS"
3439     else
3440       echo "        Xft flags are: default include path"
3441     fi
3442       echo "        Xft libs are: $XFT_LIBS"
3443 dnl     else
3444 dnl       echo "        ERROR: No Xft development package installed!" >&3
3445 dnl       echo "               Install the xft development package" >&3
3446 dnl       echo "               or .deb users: apt-get install libxft-dev" >&3
3447 dnl       echo "               or .rpm users: yum install xft-devel" >&3
3448   fi
3451 # See whether SDL is required
3452 need_sdl=false
3453 test x$build_sdl = xyes                 && need_sdl=true
3454 test x$build_sound_sdl = xyes   && need_sdl=true
3456 if $need_sdl; then
3457   if test x"$SDL_LIBS" != x; then
3458     echo "        SDL flags are: $SDL_CFLAGS"
3459     echo "        SDL libs are: $SDL_LIBS"
3460   else
3461     echo "        ERROR: No SDL development package installed!" >&3
3462     echo "               Install it from http://www.libsdl.org/download-1.2.php" >&3
3463     echo "               or .deb users: apt-get install libsdl1.2-dev" >&3
3464     echo "               or .rpm users: yum install SDL-devel" >&3
3465     test x$build_sdl = xyes &&
3466         echo "               or select a different GUI with --enable-gui= " >&3
3467   fi
3469 unset need_sdl
3471 if test x"$nsapi" = x"yes"; then
3472 dnl  if test x"$FIREFOX_CFLAGS" != x; then
3473 dnl    echo "        Firefox flags are: $FIREFOX_CFLAGS"
3474 dnl    echo "        Firefox libs are: $FIREFOX_LIBS"
3475     echo "        Plugin will be installed in ${FIREFOX_PLUGINS}"
3476 dnl  else
3477 dnl    echo "        ERROR: No Firefox or Mozilla development package installed!" >&3
3478 dnl  fi
3481 if test x"${pthreads}" = x"yes"; then
3482   if test x"$PTHREAD_CFLAGS" != x; then
3483     echo "        POSIX Threads flags are: $PTHREAD_CFLAGS"
3484   fi
3485   if test x"${PTHREAD_LIBS}" != x; then
3486     echo "        POSIX Threads lib is: $PTHREAD_LIBS"
3487   else
3488     if test x"${cross_compiling}" = xno; then
3489       echo "ERROR: No pthread development package installed!" >&3
3490     fi
3491   fi
3494 if test x"${docbook}" = x"yes"; then
3495   if test x"$MAKEINFO" = x; then
3496     echo "        ERROR: no makeinfo tools installed!" >&3
3497     echo "               Either install it from http://www.gnu.org/software/texinfo/" >&3
3498     echo "               or .deb users: apt-get install texinfo" >&3
3499     echo "               or configure without --enable-docbook" >&3
3500   fi
3501   dnl low-level tools
3502   if test x"$DB2X_TEXIXML" = x -o x"$DB2X_MANXML" = x -o x"$DB2X_XSLTPROC" = x; then
3503     dnl high-level tools
3504     if test x"${DB2X_TEXI}" = x -o x"${DB2X_MAN}" = x; then
3505       echo "        ERROR: No DocBook2X tools installed!" >&3
3506       echo "               Either install it from http://docbook2x.sourceforge.net" >&3
3507       echo "               or .deb users: apt-get install docbook docbook2x docbook-utils" >&3
3508       echo "                              docbook-xml docbook-xsl texinfo xsltproc" >&3
3509       echo "               or configure without --enable-docbook" >&3
3510     fi
3511   else
3512     echo "        You have version $db2x_version of the DocBook2X tools."
3513   fi
3514 else
3515   echo "        WARNING: without --enable-docbook we will use the cached" >&4
3516   echo "                 documentation files included in the gnash distribution." >&4
3517   echo "                 If you change files in doc/C, you should --enable-docbook." >&4
3520 if test x"$CURL_LIBS" != x; then
3521   if test x"$CURL_CFLAGS" != x; then
3522     echo "        CURL flags are: $CURL_CFLAGS"
3523   else
3524     echo "        CURL flags are: default include path"
3525   fi
3526     echo "        CURL libs are: $CURL_LIBS"
3527 else
3528   echo "        RECOMMENDED: If you install the CURL library, Gnash will be able to" >&5
3529   echo "                     display remote content (streaming from URLs) using CURL." >&5
3530   echo "                     Install libcurl from http://curl.haxx.se/libcurl" >&5
3531   echo "                     or .deb users: apt-get install libcurl-dev" >&5
3532   echo "                     or .rpm users: yum install curl-devel" >&5
3535 if test x"$SPEEX_LIBS" != x; then
3536   if test x"$SPEEX_CFLAGS" != x; then
3537     echo "        Speex flags are: $SPEEX_CFLAGS"
3538   else
3539     echo "        Speex flags are: default include path"
3540   fi
3541     echo "        Speex libs are: $SPEEX_LIBS"
3542 else
3543   echo "        RECOMMENDED: If you install the Speex library, Gnash will be able to" >&5
3544   echo "                     decoded Speex encoded audio in FLV files." >&5
3545   echo "                     Install libspeex from http://speex.org" >&5
3546   echo "                     or .deb users: apt-get install libspeex-dev" >&5
3547   echo "                     or .rpm users: yum install speex-devel" >&5
3550 if test x"$ext_dbus" = xyes; then
3551   if test x"$DBUS_LIBS" != x; then
3552     if test x"$DBUS_CFLAGS" != x; then
3553       echo "        DBUS flags are: $DBUS_CFLAGS"
3554     else
3555       echo "        DBUS flags are: default include path"
3556     fi
3557       echo "        DBUS libs are: $DBUS_LIBS"
3558   else
3559     echo "        WARNING: DBUS library not found." >&4
3560     echo "                 Gnash will be built without support for remote controls." >&4
3561     echo "                 Why not install libdbus from http://www.dbus.org" >&4
3562     echo "                 or .deb users: apt-get install dbus-dev" >&4
3563     echo "                 or .rpm users: yum install dbus-devel" >&4
3564   fi
3567 if test x$build_agg = xyes; then # {
3568   echo "        AGG Pixel format is: $pixelformat"
3569     if test x"$AGG_LIBS" != x; then # {
3570       if test x"${agg25}" != xyes; then # {
3571         echo "        ERROR: Your installation of AGG appears to be version 2.4 or older." >&3
3572         echo "               Please upgrade to AGG 2.5 or greater." >&3
3573         echo "               Install it from http://www.antigrain.com" >&3
3574         echo "               or .deb users: apt-get install libagg-dev" >&3
3575         echo "               or .rpm users: yum install agg-devel" >&3
3576       else # }{
3577         if test x"$AGG_CFLAGS" != x; then # {
3578           echo "        AGG flags are: $AGG_CFLAGS"
3579         else # }{
3580           echo "        AGG flags are: default include path"
3581         fi # }
3582         echo "        AGG libs are: $AGG_LIBS"
3583       fi # }
3584     else # }{
3585       echo "        ERROR: No AGG development package installed!" >&3
3586       echo "               Install it from http://www.antigrain.com" >&3
3587       echo "               or .deb users: apt-get install libagg-dev" >&3
3588       echo "               or .rpm users: yum install agg-devel" >&3
3589     fi # }
3590 fi # }
3592 if test x"$BOOST_LIBS" != x; then
3593         echo "        BOOST flags are: $BOOST_CFLAGS"
3594         echo "        BOOST libs are: $BOOST_LIBS"
3595         echo "        BOOST libs for cygnal are: $BOOST_CYGNAL_LIBS"
3596     dnl fi
3597     if test x"${missing_headers}" != x; then
3598       for i in ${missing_headers}; do
3599         echo "        ERROR: The BOOST $i header file is needed!" >&3
3600         echo "               Install it from http://boost.org" >&3
3601         echo "               or from a Boost development package" >&3
3602       done
3603     fi
3605     if test x"${cygnal}" = x"yes"; then
3606         if test x"${cygnal_missing_libs}" != x; then
3607           for i in ${cygnal_missing_libs}; do
3608             echo "          ERROR: The BOOST $i library is required for cygnal!" >&4
3609             echo "                 Either configure with --disable-cygnal or" >&4
3610             echo "                 install it from http://www.boost.org" >&4
3611             echo "                 or .deb users: apt-get install libboost-"`echo ${i} | sed 's/_/-/g'`"-dev" >&4
3612           done
3613         fi
3614     fi
3616     if test x"${missing_libs}" != x; then
3617       for i in ${missing_libs}; do
3618         echo "        ERROR: The BOOST $i library is needed!" >&3
3619         echo "               Install it from http://boost.org" >&3
3620         echo "               or .deb users: apt-get install libboost-"`echo ${i} | sed 's/_/-/g'`"-dev" >&3
3621       done
3622     fi
3623 else
3624     echo "        ERROR: No BOOST development package installed!" >&3
3625     echo "               Install it from http://www.boost.org" >&3
3626     echo "               or .deb users: apt-get install libboost-dev libboost-thread-dev" >&3
3627     if test x"$cygnal" = xyes; then
3628     echo "                              and libboost-date-time-dev (for cygnal)" >&3
3629     fi
3630     echo "               or .rpm users: yum install boost-devel" >&3
3633 dnl don't look for the flash compilers when cross compiling.
3634 if test x"$testsuite" = x"yes"; then
3635   if test x$cross_compiling = xno; then
3636     if test x"$MING_LIBS" != x; then
3637       echo "        MING flags are $MING_CFLAGS"
3638       echo "        MING libs are $MING_LIBS"
3639     else
3640       echo "        WARNING: You need to have the Ming development package" >&4
3641       echo "                 installed to run most of the tests in Gnash testsuite." >&4
3642       echo "                 Install it from http://www.libming.org/" >&4
3643       echo "                 or .deb users: apt-get install libming-dev" >&4
3644     fi
3646     if test x"$MAKESWF" != x; then
3647       echo "        MING version code is $MING_VERSION_CODE"
3648       echo "        MAKESWF is $MAKESWF"
3649     else
3650       echo "        WARNING: You need to have the Ming utilities package" >&4
3651       echo "                 version 0.4 or higher installed to run" >&4
3652       echo "                 many of the tests in Gnash testsuite." >&4
3653       echo "                 Install it from http://www.libming.org" >&4
3654       echo "                 or .deb users: apt-get install libming-util" >&4
3655     fi
3657     if test x"$MAKESWF" != x && test $MING_VERSION_CODE -lt 00040006; then
3658       echo "        WARNING: You have an older version of Ming installed and will not" >&4
3659       echo "                 be able to run all of the tests in Gnash testsuite." >&4
3660       echo "                 Install the latest version from http://www.libming.org" >&4
3661     fi
3663     if test x"$SWFDEC_TESTSUITE" != x; then
3664       echo "        SWFDEC testsuite dir is $SWFDEC_TESTSUITE"
3665     fi
3667     if test x"$MTASC" != x; then
3668       echo "        MTASC is $MTASC"
3669       echo "        MTASC CLASSPATH is $MTASC_CLASSPATH"
3670     else
3671       echo "        WARNING: You need to have the MTASC compiler packages installed" >&4
3672       echo "                 to run some of the tests in Gnash testsuite." >&4
3673       echo "                 You can install it from http://mtasc.org" >&4
3674       echo "                 or .deb users: apt-get install mtasc" >&4
3675     fi
3677     if test x"$HAXE" != x; then
3678       echo "        HAXE is $HAXE"
3679       echo "        HAXE CLASSPATH is $HAXE_CLASSPATH"
3680     else
3681       echo "        WARNING: You need to have the HAXE compiler package " >&4
3682       echo "                 version 2.00 or higher installed" >&4
3683       echo "                 to run some of the tests in Gnash testsuite." >&4
3684       echo "                 You can install it from http://haxe.org" >&4
3685       echo "                 or .deb users: apt-get install haxe" >&4
3686     fi
3688     if test x"$SWFMILL" != x; then
3689       echo "        SWFMILL is $SWFMILL"
3690       if test x"$ENABLE_AVM2" != x -a "$SWFMILL_VERSION" -lt 00021206; then
3691         echo "        WARNING: You are building Gnash with AVM2 support but" >&4
3692         echo "                 your swfmill version is too old to run AS3" >&4
3693         echo "                 tests." >&4
3694       fi
3695     else
3696       echo "        WARNING: You need to have the 'swfmill' tool installed" >&4
3697       echo "                 to run some of the tests in Gnash testsuite." >&4
3698       echo "                 You can install it from http://swfmill.org/" >&4
3699       echo "                 or .deb users: apt-get install swfmill" >&4
3700     fi
3702     if test x"$SWFC" != x; then
3703       echo "        SWFC is $SWFC"
3704     else
3705       echo "        WARNING: You need to have 'swfc' from SWFTools installed" >&4
3706       echo "                 to run some of the tests in Gnash testsuite." >&4
3707       echo "                 You can install it from http://www.swftools.org/" >&4
3708       echo "                 or .deb users: apt-get install swftools" >&4
3709     fi
3711     if test x"$AS3COMPILE" != x; then
3712       echo "        AS3COMPILE is $AS3COMPILE"
3713     else
3714       echo "        WARNING: you need as3compile from SWFTools" >&4
3715       echo "                 to run some of the tests in Gnash testsuite." >&4
3716       echo "                 You can install it from http://www.swftools.org/" >&4
3717     fi
3719     if test x"$HTTP_TESTSUITE" != x; then
3720       echo "        HTTP testsuite dir is $HTTP_TESTSUITE"
3721     fi
3723     if test x"$RED5_HOST" != x; then
3724       echo "        RED5 testing host is $RED5_HOST"
3725     fi
3726   fi
3729   if test x"$PERL" != x; then
3730     echo "        PERL is $PERL"
3731   else
3732     echo "        WARNING: You need to have perl installed" >&4
3733     echo "                 to run some of the tests in Gnash testsuite." >&4
3734   fi
3736 if test x"$testsuite" = x"yes"; then
3737   if test x"$CSOUND" != x; then
3738     echo "        CSOUND is $CSOUND"
3739   fi
3742 if test x"$Z_LIBS" != x; then
3743   if test x"$Z_CFLAGS" != x; then
3744     echo "        Z flags are: $Z_CFLAGS"
3745   else
3746     echo "        Z flags are: default include path"
3747   fi
3748   echo "        Z libs are: $Z_LIBS"
3749 else
3750   echo "        RECOMMENDED: You need to have the zlib development packages installed" >&5
3751   echo "                     to play compressed SWF (most of them from version 6 up)" >&5
3752   echo "                     and to display some kinds of JPEG files." >&5
3753   echo "                     Install it from http://www.zlib.net" >&5
3754   echo "                     or .deb users: apt-get install zlib1g-dev" >&5
3755   echo "                     or .rpm users: yum install zlib-devel." >&5
3756   echo "                     It may still be possible to configure without zlib." >&5
3759 if test x"$FREETYPE2_LIBS" != x; then
3760   if test x"$FREETYPE2_CFLAGS" != x; then
3761     echo "        FreeType flags are: $FREETYPE2_CFLAGS"
3762   else
3763     echo "        FreeType flags are: default include path"
3764   fi
3765   echo "        FreeType libs are: $FREETYPE2_LIBS"
3766 else
3767   echo "        RECOMMENDED: You need to have the freetype development packages installed" >&5
3768   echo "                     to use device fonts." >&5
3769   echo "                     Install it from http://www.freetype.org" >&5
3770   echo "                     or .deb users: apt-get install libfreetype6-dev" >&5
3771   echo "                     or .rpm users: yum install freetype-devel" >&5
3772   echo "                     It may still be possible to configure without freetype." >&5
3775 if test x"$FONTCONFIG_LIBS" != x; then
3776   if test x"$FONTCONFIG_CFLAGS" != x; then
3777     echo "        Fontconfig flags are: $FONTCONFIG_CFLAGS"
3778   else
3779     echo "        Fontconfig flags are: default include path"
3780   fi
3781   echo "        Fontconfig libs are: $FONTCONFIG_LIBS"
3782 else
3783   echo "        RECOMMENDED: You need to have the fontconfig development packages installed" >&5
3784   echo "                     to use device fonts." >&5
3785   echo "                     Install it from http://www.fontconfig.org" >&5
3786   echo "                     or .deb users: apt-get install libfontconfig1-dev" >&5
3787   echo "                     or .rpm users: yum install fontconfig-devel" >&5
3788   echo "                     It may still be possible to configure without fontconfig." >&5
3791 if test x$ext_mysql = xyes; then
3792   if test x$mysql != xno; then
3793     if test x"$MYSQL_LIBS" != x; then
3794       echo "        MYSQL flags are: $MYSQL_CFLAGS"
3795       echo "        MYSQL libs are: $MYSQL_LIBS"
3796     else
3797       echo "        ERROR: No MySQL development package is installed." >&3
3798       echo "               Either reconfigure without --enable-extensions=mysql" >&3
3799       echo "               or install MySQL header files from http://www.mysql.org" >&3
3800       echo "               or .deb users: apt-get install libmysqlclient-dev" >&3
3801       echo "                 or .rpm users: yum install mysql-devel" >&4
3802     fi
3803   fi
3806 if test "$GMSGFMT" = ":"; then
3807   echo "        WARNING: You need the gettext package installed to use translations." >&4
3808   echo "                 Required for building a package or 'make distcheck'" >&4
3809   echo "                 Install it from http://www.gnu.org/software/gettext/" >&4
3810   echo "                 or .deb users: apt-get install gettext" >&4
3811   echo "                 or .rpm users: yum install gettext" >&4
3814 if test x"${build_vaapi}" = x"yes"; then
3815   if test x"${LIBVA_CFLAGS}" = xyes; then
3816       echo "        LIBVA flags are: default"
3817     else
3818       echo "        LIBVA flags are: $LIBVA_CFLAGS"
3819       echo "        LIBVA libraries are: $LIBVA_LIBS"
3820   fi
3821   if test x$use_libva_x11 = xyes; then
3822     if test x"${LIBVA_X11_CFLAGS}" = xyes; then
3823       echo "        LIBVA X11 flags are: default"
3824     else
3825       echo "        LIBVA X11 flags are: $LIBVA_X11_CFLAGS"
3826       echo "        LIBVA X11 libraries are: $LIBVA_X11_LIBS"
3827     fi
3828   fi
3829   if test x$use_libva_glx = xyes; then
3830     if test x"${LIBVA_GLX_CFLAGS}" = xyes; then
3831       echo "        LIBVA GLXflags are: default"
3832     else
3833       echo "        LIBVA GLX flags are: $LIBVA_GLX_CFLAGS"
3834     fi
3835     echo "        LIBVA GLX libraries are: $LIBVA_GLX_LIBS"
3836   fi
3839 if test x"$ac_cv_gcc_visibility" != xyes; then
3840   if test x"$npapi" = xyes; then
3841     echo "        WARNING: NPAPI (mozilla) plugin is enabled, but your compiler"
3842     echo "                 does not support symbol visibility. This may cause "
3843     echo "                 the plugin to malfunction and may result in small "
3844     echo "                 children being eaten. You have been warned!"
3845   fi
3848 if test x"${DEJAGNU}" != x""; then
3849   echo "        DEJAGNU's runtest is $DEJAGNU"
3850 else
3851   echo "        WARNING: You need the dejagnu package installed to get a summary" >&4
3852   echo "                 report after running ''make check''" >&4
3853   echo "                 Install it from http://www.gnu.org/software/dejagnu/" >&4
3854   echo "                 or .deb users: apt-get install dejagnu" >&4
3855   echo "                 or .rpm users: yum install dejagnu" >&4
3858 dnl Haiku
3859 if test x"${build_haiku}" = xyes -o x"${build_sound_mkit}" = xyes -o x"${build_media_haiku}" = x"yes"; then
3860     echo "        Haiku libs are: $HAIKU_LIBS"
3863 if test x"$python" = x"yes"; then
3864   if test x"$has_python" = x"yes"; then
3865     echo "        PYTHON flags are: $PYTHON_CFLAGS"
3866     echo "        PYTHON libs are: $PYTHON_LIBS"
3867     echo "        PYTHON executable is are: $PYTHON"
3868   else
3869     echo "        ERROR: No Python development package is installed, but it's enabled." >&3
3870   fi
3872 if test x${build_ssl} = xyes; then
3873   if test x"${has_ssl}" = xyes; then
3874     if test x"${SSL_CFLAGS}" = xyes; then
3875       echo "        SSL flags are: default"
3876     else
3877       echo "        SSL flags are: $SSL_CFLAGS"
3878     fi
3879     echo "        SSL libs are: $SSL_LIBS"
3880   else
3881     echo "        ERROR: No SSL development package is installed, but it's enabled." >&3
3882   fi
3885 if test x${build_ssh} = xyes; then
3886   if test x"${has_ssh}" = xyes; then
3887     if test x"${SSH_CFLAGS}" = xyes; then
3888       echo "        SSH flags are: default"
3889     else
3890       echo "        SSH flags are: $SSH_CFLAGS"
3891     fi
3892     echo "        SSH libs are: $SSH_LIBS"
3893   else
3894     echo "        ERROR: No SSH development package is installed, but it's enabled." >&3
3895   fi
3898 if test x"${build_all_as3}" = x"yes"; then
3899   echo "        Building the entire ActionScript class libary"
3900 else
3901   echo "        Only building these ActionScript classes into the library:"
3902   echo "     ${classlist}"
3905 if test x"$testsuite" = x"yes"; then
3906   if test x"$NETCAT" != x; then
3907     echo "        You have netcat installed, which is only used for testing"
3908   else
3909     echo "        Install netcat for networking test support"
3910   fi
3911   if test x"$WGET" != x; then
3912     echo "        You have wget installed, which is only used for testing"
3913   else
3914     echo "        Install wget for networking test support"
3915   fi
3918 if test x$cross_compiling = xyes; then
3919    if test x"${android_ndk}" != xno; then
3920       AC_MSG_NOTICE([This build is setup for cross compiling for Android])
3921    else
3922       AC_MSG_NOTICE([This build is setup for cross compiling])
3923    fi
3926 echo "--------"
3928 if test x"${cygnal}" = x"yes"; then
3929   echo "        Building Cygnal media server enabled (default). Use --disable-cygnal to disable."
3930 else
3931   echo "        Building Cygnal media server disabled."
3934 if test x"${with-top_level}" != x; then
3935   echo "        Top level for cross compiling support files is: $with_top_level"
3938 if test x"${build_gtk}" = xyes -a x"${pixelformat}" = xrgb565; then
3939   echo "        WARNING: Pixel format RGB565 selected in combination with the" >&4
3940   echo "                 GTK GUI. Only a hacked GTK will work (e.g. on the OLPC)." >&4
3943 if test x"${extensions_list}" != x; then
3944   echo "        Building extensions: ${extensions_list}"
3947 if test x"${security_list}" != x; then
3948   echo "        Enabling security features: ${security_list}"
3951 if test x"${hwaccel_list}" != xnone; then
3952   echo "        Enabling hardware acceleration features: ${hwaccel_list}"
3955 if test x"${statistics_list}" != x; then
3956   echo "        Enabling statistics collecting for: ${statistics_list}"
3959 if test x"${SUPPORTED_GUIS}" = x; then
3960   AC_MSG_ERROR(no supported GUIs found);
3963 echo "        GUI toolkits supported: ${SUPPORTED_GUIS}"
3964 echo "        Renderers supported: ${renderer_list}"
3965 echo "        Hardware Acceleration: ${hwaccel_list}"
3966 echo "        Media handlers: ${media_list}"
3967 echo "        Using ${add_sound} for sound handling"
3968 echo "        Using $with_shm mode for shared memory"
3970 if test x"$docbook" = x"yes"; then
3971   echo '        DocBook document processing enabled (for "make html" and "make pdf")'
3972   if test x"$docbook_styles" != x; then
3973     echo "        Docbook styles sheets in $docbook_styles"
3974   fi
3975 else
3976   echo "        DocBook document processing disabled (default)"
3979 dnl The Framebuffer GUI has several other settings. As it doesn't have X11,
3980 dnl we have to handle input devices ourselves.
3981 if test x"${build_fb}" = xyes; then
3982 echo "        Using ${input_events} for Input"
3983   if test x"${fakefb}" != x; then
3984     echo "        Using shared memory as a fake framebuffer"
3985   fi
3986   if test x"${offscreen}" = xyes; then
3987     echo "        Using offscreen rendering"
3988   fi
3989   if test x"${doublebuf}" = xyes; then
3990     echo "        Using double buffering when rendering"
3991   fi
3994 if test -s $cwarn; then
3995   echo ""
3996   cat $cwarn
3997   rm $cwarn
3998   echo ""
3999   echo "Gnash should still compile even with these warnings."
4000   echo "If it doesn't, report the warnings as a bug."
4001 else
4002   rm $cwarn
4005 if test -s $crec; then
4006   echo ""
4007   cat $crec
4008   rm $crec
4009   echo ""
4010   echo "Gnash should still compile, but you'll miss important support"
4011 else
4012   rm $crec
4015 dnl If anything critical is missing, don't bother to continue
4016 if test -s $cerr; then
4017   echo ""
4018   cat $cerr >&2
4019   rm $cerr
4020   AC_MSG_ERROR([Please install required packages])
4021 else
4022   rm $cerr
4026 if test x"$fork" = x"no"; then
4027   AC_MSG_ERROR([Currently only forking the standalone player works!])
4029 echo ""
4031 # Local Variables:
4032 # c-basic-offset: 2
4033 # tab-width: 2
4034 # indent-tabs-mode: nil
4035 # End: