Add FSCommand URL scheme implementation to MovieClip.getURL().
[gnash.git] / Makefile.am
blobda605ccc2fda7bbe02001643bd7669dab5cb428c
1
2 #   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
3 #   Free Software Foundation, Inc.
4
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
19 ## Process this file with automake to produce Makefile.in
20 # no-portability allows us to use GNU make variable assignments
21 # without automake complaining.
22 AUTOMAKE_OPTIONS = 1.6.0 -Wno-portability
24 ACLOCAL_AMFLAGS = -I macros -I cygnal
25 noinst_SCRIPT = autogen.sh
27 CXXFLAGS += $(CROSS_CXXFLAGS)
28 LDFLAGS += $(CROSS_LDFLAGS)
31 ## Any custom ./configure switch we want to be
32 ## given at 'make distcheck' time should go here
34 ## We set plugins install dirs to a user-writable 
35 ## and likely unused directory for now to avoid
36 ## permission problems and unexpected unistalls
37 ## from home dir. Ideally we should put them somewhere
38 ## under ${prefix} to make the uninstall check effective
39 ## (and I believe it should actually be the default when
40 ## --prefix is given, but that's another story --strk)
42 ## We also want to build everything possible, since we're
43 ## testing builds. We also don't use optimization, is makes
44 ## the build go faster.
45 DISTCHECK_CONFIGURE_FLAGS = \
46         --with-plugins-install=prefix \
47         --enable-extensions=all \
48         --enable-gui=all \
49         --enable-renderer=all \
50         --enable-python \
51         --enable-cygnal
53 # Only build all devices on Linux, as Input Events are
54 # primarily a Linux only thing.
55 if LINUX
56 DISTCHECK_CONFIGURE_FLAGS += --enable-device=all
57 else
58 DISTCHECK_CONFIGURE_FLAGS += --disable-jemalloc
59 endif
61 if CYGNAL
62 CYGNAL_DIR = cygnal
63 endif
65 if BUILD_DEVICES
66 DEVICES_DIR = libdevice
67 endif
69 if TESTSUITE
70 TEST_DIR = testsuite
71 endif
73 if BUILD_EXTENSIONS
74 EXT_DIR = extensions
75 endif
77 if BUILD_LIBSOUND
78 SOUND_DIR = libsound
79 endif
81 if BUILD_LIBMEDIA
82 MEDIA_DIR = libmedia
83 endif
85 SUBDIRS = \
86         desktop \
87         $(DEVICES_DIR) \
88         libbase \
89         $(MEDIA_DIR) \
90         $(SOUND_DIR) \
91         libcore \
92         librender \
93         gui \
94         plugin \
95         $(CYGNAL_DIR) \
96         utilities \
97         $(EXT_DIR) \
98         doc \
99         po \
100         $(TEST_DIR) \
101         $(NULL)
103 # man_MANS = doc/gnash.1 doc/gprocessor.1 doc/dumpshm.1 soldumper.1
105 EXTRA_DIST =  \
106         README \
107         README.git \
108         autogen.sh \
109         config.rpath \
110         base-attempter.sh \
111         macros/incllist macros/libslist \
112         doc/changelogs/ChangeLog-0.8.0 \
113         doc/changelogs/ChangeLog-0.8.1 \
114         doc/changelogs/ChangeLog-0.8.2 \
115         doc/changelogs/ChangeLog-0.8.3 \
116         doc/changelogs/ChangeLog-0.8.4 \
117         doc/changelogs/ChangeLog-0.8.5 \
118         doc/changelogs/ChangeLog-0.8.6 \
119         doc/changelogs/ChangeLog-0.8.7 \
120         doc/changelogs/ChangeLog-0.8.8 \
121         packaging/deb.am \
122         packaging/snapshot.am \
123         packaging/alp.am \
124         packaging/ipkg.am \
125         packaging/bsd.am \
126         packaging/rpm.am \
127         packaging/gnash.xpm \
128         packaging/klash.xpm \
129         revno.h
131 # dist-hook:
132 #       @test -d "$(distdir)/packaging" || $(mkinstalldirs) "$(distdir)/packaging"
133 #       cp -p $(srcdir)/*.am $(top_distdir)/packaging/
135 CLEANFILES = .configline
136 DISTCLEANFILES = revno.h .lastmod deb-attempt-install-dependencies.sh rpm-attempt-install-dependencies.sh
137 MAINTAINERCLEANFILES = revno.h .lastmod
138 BUILT_SOURCES = revno.h .configline
141 # Extract info from the repository to include in the build.
142 # If top source dir is not a git repository or git is not installed,
143 # keep the current revno.h file (which should be part of any distribution).
144 # It's primarily used by the testsuites and when building binary packages
145 # from multiple branches.
147 # This ia a big hack around makes's built in dependency checking, as the
148 # key file here isn't part of the normal files. In the source tree for
149 # developers, the .git/index files changes on any commits or pulls. We
150 # only want to regenerate this file if that file changes, so we have to
151 # do the dependency check ourselves.
152 revno.h:
153         @if test \! -f .lastmod -o \! -f revno.h ; then \
154           touch -t 197001010000 .lastmod; \
155         fi; \
156         if test -d $(top_srcdir)/.git -a x"${GIT}" != x; then \
157           if test $(top_srcdir)/.git/index -nt .lastmod; then \
158             echo "Getting build info for revno.h"; \
159             revno="`cd $(top_srcdir) ; $(GIT) rev-list HEAD | wc -l`"; \
160             comm_id="`cd $(top_srcdir) ; $(GIT) rev-parse --short HEAD`"; \
161             nick="`cd $(top_srcdir) ; $(GIT) branch | grep '^\*' | cut -d ' ' -f 2`"; \
162           fi \
163         else \
164           if test \! -f revno.h; then \
165             revno="$(NOW)"; \
166             comm_id="none"; \
167             nick="$(VERSION)"; \
168           fi; \
169         fi; \
170         if test \! -z "$${revno}"; then \
171           echo "Generating revno.h ($${nick} $${revno} $${comm_id})"; \
172           echo "#define BRANCH_REVNO \"$${revno}\"" > revno.h; \
173           echo "#define BRANCH_NICK \"$${nick}\"" >> revno.h; \
174           echo "#define COMMIT_ID \"$${comm_id}\"" >> revno.h; \
175           touch .lastmod; \
176         fi
178 .configline: revno.h
179         -@rm -f .configline
180         @head config.log | grep " .*/configure " | sed -e 's:^  . .*configure ::' > .configline
183 # Precompiled header support
185 include $(srcdir)/pch.am
188 # Binary tarball packaging
190 include $(srcdir)/packaging/snapshot.am
193 # Build an RPM package
195 include $(srcdir)/packaging/rpm.am
197 # Build a Debian/Ubuntu .deb GNU/Linux package
198 include $(srcdir)/packaging/deb.am
201 # Build a Debian Familiar .ipk GNU/Linux package. These are always
202 # cross compiled, typically for the ARM or XScale.
204 include $(srcdir)/packaging/ipkg.am
207 # Access Linux Platform support.
209 include $(srcdir)/packaging/alp.am
212 # BSD package building
214 include $(srcdir)/packaging/bsd.am
216 mudflap:
217         @echo "Rebuilding with GCC Mudflap support"
218         $(MAKE) CXXFLAGS="$(CXXFLAGS) -fmudflapth" LDFLAGS="$(LDFLAGS) -lmudflapth"
220 mudflap-check:
221         @echo "Rechecking with GCC Mudflap support"
222         $(MAKE) check CXXFLAGS="$(CXXFLAGS) -fmudflap" LDFLAGS="$(LDFLAGS) -lmudflap"
224 # Set a few variables to what features we selected so we can dump it with the
225 # test of the config
226 dumpconfig:
227         @echo ""
228         @echo "Building in directories: $(SUBDIRS)"
229         @echo "Some directories may be excluded from the build"
230         @uname -a
231         $(CXX) -v
232         @echo "CXXFLAGS: $(CXXFLAGS)"
233         @echo "CFLAGS: $(CFLAGS)"
234         @echo "LDFLAGS: $(LDFLAGS)"
235         @echo ""
236         @echo "Image decoding support..."
237         @echo " JPEG_CFLAGS is $(JPEG_CFLAGS)"
238         @echo " JPEG_LIBS is $(JPEG_LIBS)"
239         @echo " PNG_CFLAGS is $(PNG_CFLAGS)"
240         @echo " PNG_LIBS is $(PNG_LIBS)"
241         @echo " GIF_CFLAGS is $(GIF_CFLAGS)"
242         @echo " GIF_LIBS is $(GIF_LIBS)"
243         @echo "Audio decoding support..."
244 if USE_GST_ENGINE
245         @echo " GSTREAMER_CFLAGS is $(GSTREAMER_CFLAGS)"
246         @echo " GSTREAMER_LIBS is $(GSTREAMER_LIBS)"
247         @echo " GSTREAMER_PBUTILS_CFLAGS is $(GSTREAMER_PBUTILS_CFLAGS)"
248         @echo " GSTREAMER_PBUTILS_LIBS is $(GSTREAMER_PBUTILS_LIBS)"
249 endif
250 if USE_FFMPEG_ENGINE
251         @echo " FFMPEG_CFLAGS is $(FFMPEG_CFLAGS)"
252         @echo " FFMPEG_LIBS is $(FFMPEG_LIBS)"
253 endif
254 if HAVE_SPEEX
255         @echo " SPEEX_CFLAGS is $(SPEEX_CFLAGS)"
256         @echo " SPEEXDSP_CFLAGS is $(SPEEXDSP_CFLAGS)"
257         @echo " SPEEX_LIBS is $(SPEEX_LIBS)"
258         @echo " SPEEXDSP_LIBS is $(SPEEXDSP_LIBS)"
259 endif
260         @echo "GUI Toolkit decoding support..." 
261         @echo " SDL_CFLAGS is $(SDL_CFLAGS)"
262         @echo " SDL_LIBS is $(SDL_LIBS)"
263 if BUILD_KDE3_GUI
264         @echo " KDE3_CFLAGS is $(KDE3_CFLAGS)"
265         @echo " KDE3_LIBS is $(KDE3_LIBS)"
266         @echo " QT3_CFLAGS is $(QT3_CFLAGS)"
267         @echo " QT3_LIBS is $(QT3_LIBS)"
268 endif
269 if BUILD_QT4_GUI
270         @echo " QT4_CFLAGS is $(QT4_CFLAGS)"
271         @echo " QT4_LIBS is $(QT4_LIBS)"
272 endif
273 if KPARTS4
274         @echo " KDE4_CFLAGS is $(KDE4_CFLAGS)"
275         @echo " KDE4_LIBS is $(KDE4_LIBS)"
276 endif
277 if BUILD_QT4_GUI
278         @echo " QT4_CFLAGS is $(QT4_CFLAGS)"
279         @echo " QT4_LIBS is $(QT4_LIBS)"
280 endif
281 if BUILD_QTOPIA3_GUI
282         @echo " QTOPIA3_CFLAGS is $(QTOPIA3_CFLAGS)"
283         @echo " QTOPIA3_LIBS is $(QTOPIA3_LIBS)"
284 endif
285 if BUILD_QTOPIA4_GUI
286         @echo " QTOPIA4_CFLAGS is $(QTOPIA4_CFLAGS)"
287         @echo " QTOPIA4_LIBS is $(QTOPIA4_LIBS)"
288 endif
289 if BUILD_FLTK_GUI
290         @echo " FLTK2_CFLAGS is $(FLTK2_CFLAGS)"
291         @echo " FLTK2_LIBS is $(FLTK2_LIBS)"
292         @echo " XFT_CFLAGS is $(XFT_CFLAGS)"
293         @echo " XFT_LIBS is $(XFT_LIBS)"
294 endif
295 if HAIKU
296         @echo " HAIKU_LIBS is $(HAIKU_LIBS)"
297 endif
298 if BUILD_GTK_GUI
299         @echo " GTK2_CFLAGS is $(GTK2_CFLAGS)"
300         @echo " GTK2_LIBS is $(GTK2_LIBS)"
301         @echo " PANGO_CFLAGS is $(PANGO_CFLAGS)"
302         @echo " PANGO_LIBS is $(PANGO_LIBS)"
303         @echo " ATK_CFLAGS is $(ATK_CFLAGS)"
304         @echo " ATK_LIBS is $(ATK_LIBS)"
305 endif
306         @echo " X11_CFLAGS is $(X11_CFLAGS)"
307         @echo " X11_LIBS is $(X11_LIBS)"
308         @echo "Support libraries..."
309         @echo " LTDL_CFLAGS is $(LTDL_CFLAGS)"
310         @echo " LTDL_LIBS is $(LTDL_LIBS)"
311         @echo " GLIB_CFLAGS is $(GLIB_CFLAGS)"
312         @echo " GLIB_LIBS is $(GLIB_LIBS)"
313         @echo " Z_CFLAGS is $(Z_CFLAGS)"
314         @echo " Z_LIBS is $(Z_LIBS)"
315         @echo " FREETYPE_CFLAGS is $(FREETYPE2_CFLAGS)"
316         @echo " FREETYPE_LIBS is $(FREETYPE2_LIBS)"
317         @echo " FONTCONFIG_CFLAGS is $(FONTCONFIG_CFLAGS)"
318         @echo " FONTCONFIG_LIBS is $(FONTCONFIG_LIBS)"
319         @echo " LIBINTL is $(LIBINTL)"
320 if BUILD_MYSQL_EXT
321         @echo " MYSQL_CFLAGS is $(MYSQL_CFLAGS)"
322         @echo " MYSQL_LIBS is $(MYSQL_LIBS)"
323 endif
324         @echo " PTHREAD_CFLAGS is $(PTHREAD_CFLAGS)"
325         @echo " PTHREAD_LIBS is $(PTHREAD_LIBS)"
326         @echo " CURL_CFLAGS is $(CURL_CFLAGS)"
327         @echo " CURL_LIBS is $(CURL_LIBS)"
328         @echo " BOOST_CFLAGS is $(BOOST_CFLAGS)"
329         @echo " BOOST_LIBS is $(BOOST_LIBS)"
330         @if test -n "$(BOOST_CYGNAL_LIBS)"; then \
331           echo "        BOOST_CYGNAL_LIBS is $(BOOST_CYGNAL_LIBS)"; \
332         fi
333 if ENABLE_MING
334         @echo " MING_VERSION_CODE $(MING_VERSION_CODE) "
335         @echo " MING_LIBS $(MING_LIBS) "
336         @echo " MING_CFLAGS $(MING_CFLAGS) "
337         @echo " MAKESWF $(MAKESWF) "
338 endif
339 if ENABLE_MTASC
340         @echo " MTASC $(MTASC)"
341         @echo " MTASC CLASSPATH $(MTASC_CLASSPATH)"
342 endif
343 if ENABLE_HAXE
344         @echo " HAXE $(HAXE)"
345         @echo " HAXE CLASSPATH $(HAXE_CLASSPATH)"
346 endif
347 if ENABLE_SWFMILL
348         @echo " SWFMILL $(SWFMILL) "
349         @echo " SWFMILL_VERSION_CODE $(SWFMILL_VERSION) "
350 endif
351 if ENABLE_SWFC
352         @echo " SWFC $(SWFC) "
353 endif
354 if ENABLE_SWFDEC_TESTSUITE
355         @echo " SWFDEC_TESTSUITE $(SWFDEC_TESTSUITE)"
356 endif
357 if ENABLE_HTTP_TESTSUITE
358         @echo " HTTP_TESTSUITE $(HTTP_TESTSUITE)"
359 endif
360 if ENABLE_RED5_TESTING
361         @echo " RED5_HOST $(RED5_HOST)"
362 endif
363         @echo "Graphics support..."     
364 if BUILD_CAIRO_RENDERER
365         @echo " CAIRO_CFLAGS is $(CAIRO_CFLAGS)"
366         @echo " CAIRO_LIBS is $(CAIRO_LIBS)"
367 endif
368 if BUILD_OGL_RENDERER
369         @echo " GLEXT_CFLAGS is $(GLEXT_CFLAGS)"
370         @echo " GLEXT_LIBS is $(GLEXT_LIBS)"
371         @echo " OPENGL_CFLAGS is $(OPENGL_CFLAGS)"
372         @echo " OPENGL_LIBS is $(OPENGL_LIBS)"
373 endif
374 if BUILD_OVG_RENDERER
375         @echo " OPENVG_CFLAGS is $(OPENVG_CFLAGS)"
376         @echo " OPENVG_LIBS is $(OPENVG_LIBS)"
377 endif
378 if BUILD_GLES1_RENDERER
379         @echo " GLES1_CFLAGS is $(GLES1_CFLAGS)"
380         @echo " GLES1_LIBS is $(GLES1_LIBS)"
381 endif
382 if BUILD_GLES2_RENDERER
383         @echo " GLES2_CFLAGS is $(GLES2_CFLAGS)"
384         @echo " GLES2_LIBS is $(GLES2_LIBS)"
385 endif
386 if BUILD_AGG_RENDERER
387         @echo " AGG_CFLAGS is $(AGG_CFLAGS)"
388         @echo " AGG_LIBS is $(AGG_LIBS)"
389 endif
390         @echo ""
391         @echo "A blank value for CFLAGS means the header is installed in the"
392         @echo "default system header location. All the LIBS should have a"
393         @echo "legit value"
394         @echo ""
395         @echo "Configurable options are:"
396         @echo " Media handlers: $(MEDIA_CONFIG)"
397         @echo " Renderer engines: $(RENDERER_CONFIG)"
398         @echo " Hardware Acceleration: $(HWACCEL_CONFIG)"
400 if BUILD_SSL
401         @echo " SSL_CFLAGS is $(SSL_CFLAGS)"
402         @echo " SSL_LIBS is $(SSL_LIBS)"
403 endif
404 if BUILD_SSH
405         @echo " SSH_CFLAGS is $(SSH_CFLAGS)"
406         @echo " SSH_LIBS is $(SSH_LIBS)"
407 endif
408 if BUILD_GTK_GUI
409         @echo " Supported GUI: GTK"
410 endif
411 if BUILD_DUMP_GUI
412         @echo " Supported GUI: Dump"
413 endif
414 if BUILD_KDE3_GUI
415         @echo " Supported GUI: KDE3"
416 endif
417 if BUILD_QT4_GUI
418         @echo " Supported GUI: QT4"
419 endif
420 if BUILD_QTOPIA3_GUI
421         @echo " Supported GUI: QTOPIA3"
422 endif
423 if BUILD_QTOPIA4_GUI
424         @echo " Supported GUI: QTOPIA4"
425 endif
426 if BUILD_SDL_GUI
427         @echo " Supported GUI: SDL"
428 endif
429 if BUILD_FLTK_GUI
430         @echo " Supported GUI: FLTK"
431 endif
432 if BUILD_AQUA_GUI
433         @echo " Supported GUI: AQUA"
434 endif
435 if BUILD_FB_GUI
436         @echo " Supported GUI: FB"
437 endif
438 if BUILD_AMIGAOS4_GUI
439        @echo " Supported GUI: AMIGAOS4"
440 endif
441 if BUILD_HAIKU_GUI
442         @echo " Supported GUI: Haiku"
443 endif
444 if JEMALLOC
445         @echo " Using jemalloc memory manager"
446 endif
448         @if test -n "$(EXTENSIONS_LIST)" ; then \
449           echo "        Extensions added are: $(EXTENSIONS_LIST)"; \
450         fi
451         @if test -n "$(SECURITY_LIST)" ; then \
452           echo "        Security features enabled are: $(SECURITY_LIST)"; \
453         fi
454         @if test -n "$(STATISTICS_LIST)" ; then \
455           echo "        Statistics features enabled are: $(STATISTICS_LIST)"; \
456         fi
457 if KPARTS3
458         @echo " KPARTS 3.x (KDE) plugin enabled"
459         @echo "   KPARTS 3.x plugin install dir: $(KDE_PLUGINDIR)"
460         @echo "   KPARTS 3.x service install dir: $(KDE_SERVICESDIR)"
461         @echo "   KPARTS 3.x config dir: ${KDE_CONFIGDIR}"
462         @echo "   KPARTS 3.x appsdata dir: ${KDE_APPSDATADIR}"
463 else
464         @echo " KPARTS 3.x (KDE) plugin disabled"
465 endif
466 if KPARTS4
467         @echo " KPARTS 4.x (KDE) plugin enabled"
468         @echo "   KPARTS 4.x plugin install dir: $(KDE4_PLUGINDIR)"
469         @echo "   KPARTS 4.x service install dir: $(KDE4_SERVICESDIR)"
470         @echo "   KPARTS 4.x config dir: ${KDE4_CONFIGDIR}"
471         @echo "   KPARTS 4.x appsdata dir: ${KDE4_APPSDATADIR}"
472 else
473         @echo " KPARTS 4.x (KDE) plugin disabled"
474 endif
476 if NPAPI
477         @echo " NPAPI (Mozilla) plugin enabled"
478         @echo "   NPAPI plugin install dir: $(FIREFOX_PLUGINS)"
479 else
480         @echo " NPAPI (Mozilla) plugin disabled"
481 endif
482 if USE_PYTHON
483         @echo " PYTHON support enabled"
484 else
485         @echo " PYTHON support disabled"
486 endif
488 if TESTSUITE
489 check-local:
490         $(MAKE) anal
492 anal testreport checksum:
493         $(srcdir)/testsuite/analyse-results.sh $(MODE)
494 endif
496 .PHONY : dumpconfig \
497         revno.h \
498         anal \
499         testreport \
500         checksum \
501         check \
502         mudflap \
503         mudflap-check \
504         install-plugins \
505         uninstall-plugins \
506         install-plugin \
507         apidoc
509 install-plugins install-plugin uninstall-plugins install-pkglib:
510         $(MAKE) -C plugin $@
512 apidoc:
513         $(MAKE) -C doc $@
515 pkgconfigdir = $(libdir)/pkgconfig
516 pkgconfig_DATA = \
517         gnash.pc \
518         $(NULL)
520 SWFDEC_REPO=git://anongit.freedesktop.org/git/swfdec/swfdec
521 SWFDEC_MOUNT=$(top_builddir)/testsuite/swfdec/src
522 fetch-swfdec:
523         if test -d "$(SWFDEC_MOUNT)"; then \
524             cd "$(SWFDEC_MOUNT)" && git pull && git branch -v; \
525         else \
526             git clone $(SWFDEC_REPO) "$(SWFDEC_MOUNT)"; \
527         fi 
529 package:
530         @if test -f /etc/debian_version; then $(MAKE) deb; \
531           else if test -f /etc/redhat-release; then $(MAKE) rpm; \
532             else echo "Gnash will not be packaged for this platform"; \
533         fi;fi
535 packageclean:
536         -test -z "$(CLEANFILES)" || rm -rf $(CLEANFILES)
538 # these files are created when building packages
539 CLEANFILES += *.deb *.dsc *.gz *.bz2 *.changes deb-copy-stamp gnash*git* gnash-* rpmbuild gnash.spec .rpmmacros