4610d77357e8081f6e13fa165eb06f57379114e4
[navit-package] / navit / Makefile.am
1 include $(top_srcdir)/Makefile.inc
2 comma=,
3 SUBDIRS=fib-1.1 support
4 if PLUGINS
5   SUBDIRS += .
6 endif
7 DIST_SUBDIRS=binding map maptool fib-1.1 font fonts gui graphics osd speech support vehicle xpm maps
8 SUBDIRS+=binding map font gui graphics osd speech vehicle xpm
9
10 if FONTS
11   SUBDIRS += fonts
12 endif
13 if !PLUGINS
14   SUBDIRS += .
15 endif
16
17 SUBDIRS+=maptool
18
19 if BUILD_SAMPLEMAP
20   SUBDIRS += maps
21 endif
22
23
24 AM_CPPFLAGS = -I$(top_srcdir)/navit/fib-1.1 @NAVIT_CFLAGS@ @ZLIB_CFLAGS@ -DPREFIX=\"@prefix@\" -DLIBDIR=\"@libdir@\" -DMODULE=navit
25 BUILT_SOURCES = version.h navit_config.h
26
27 if BIN_NAVIT
28   bin_PROGRAMS = navit
29 endif
30
31 if SHARED_LIBNAVIT
32   lib_LTLIBRARIES        = libnavit.la
33   libnavit_la_LDFLAGS = -avoid-version @MODULE_LDFLAGS@ -no-undefined -Wl,--no-undefined
34   libnavit_la_LIBADD = @NAVIT_LIBS@ @WORDEXP_LIBS@ @ZLIB_LIBS@ @INTLLIBS@ -Lfib-1.1 -lfib @MODULE_LIBADD@
35 else
36   noinst_LTLIBRARIES        = libnavit.la
37 endif
38
39 pkgdata_DATA = navit.xml
40
41 EXTRA_DIST = navit_shipped.xml navit.dtd
42
43 libnavit_la_SOURCES = announcement.c atom.c attr.c cache.c callback.c command.c compass.c config_.c coord.c country.c data_window.c debug.c \
44         event.c event_glib.h file.c graphics.c gui.c item.c layout.c log.c main.c map.c \
45         linguistics.c mapset.c maptype.c menu.c messages.c navit.c navigation.c osd.c param.c phrase.c plugin.c popup.c \
46         profile.c projection.c roadprofile.c route.c routech.c search.c speech.c start_real.c transform.c track.c \
47         util.c vehicle.c vehicleprofile.c xmlconfig.c announcement.h atom.h attr.h attr_def.h cache.h callback.h color.h command.h compass.h config_.h coord.h country.h \
48         data.h data_window.h data_window_int.h debug.h destination.h draw_info.h endianess.h event.h \
49         file.h graphics.h gtkext.h gui.h item.h item_def.h keys.h log.h layer.h layout.h linguistics.h main.h map-share.h map.h\
50         map_data.h mapset.h maptype.h menu.h messages.h navigation.h navit.h osd.h \
51         param.h phrase.h plugin.h point.h plugin_def.h projection.h popup.h route.h profile.h roadprofile.h search.h speech.h start_real.h \
52         transform.h track.h util.h vehicle.h vehicleprofile.h window.h xmlconfig.h zipfile.h \
53         navit_nls.h sunriset.c sunriset.h
54
55 XSLTS=@XSLTS@
56 navit.xml: navit_shipped.xml  $(foreach xslt, $(subst $(comma), ,$(XSLTS)), $(addsuffix .xslt,$(addprefix xslt/,$(xslt))))
57         cp $< navit.xml.new
58         if [ ! -f "$(builddir)/navit.dtd" ]; then cp -f $(srcdir)/navit.dtd $(builddir)/navit.dtd; fi
59         for i in $^; do if [ "$${i%.xslt}" != "$$i" ]; then echo "Applying $$i" ; @SAXON@ -snone navit.xml.new $$i >navit.xml.tmp || exit ; mv navit.xml.tmp navit.xml.new || exit ; fi ; done
60         mv navit.xml.new navit.xml
61         rm -f navit.xml.tmp
62         
63
64 if SUPPORT_ANDROID
65   libnavit_la_SOURCES += android.c
66   navit_SOURCES =
67   navit_LDADD =
68
69 android/AndroidManifest.xml: android/AndroidManifest.xml.in
70         mkdir -p $(builddir)/android
71         sed '0,/<uses-sdk/!d' <$< >$@
72         for i in $(subst $(comma), ,@ANDROID_PERMISSIONS@); do echo "    <uses-permission android:name=\"android.permission.$$i\" />" >>$@; done
73         sed '0,/<uses-sdk/d' <$< >>$@
74         
75
76 android/build.xml: android/AndroidManifest.xml
77         mkdir -p android
78         if [ "$(builddir)" != "$(srcdir)" ]; then cp -rp $(srcdir)/android/* $(builddir)/android; fi
79         android update project -t 3 -p android
80
81 apk: all android/build.xml navit.xml
82         mkdir -p android/libs/armeabi
83         cp .libs/*.so */*/.libs/*.so android/libs/armeabi
84         for i in $(shell cd $(srcdir)/xpm && echo *.xpm); do convert $(srcdir)/xpm/$$i android/res/drawable/$${i%.xpm}.png; done 
85         for i in $(shell cd $(srcdir)/xpm && echo *.png); do cp $(srcdir)/xpm/$$i android/res/drawable/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done
86         if [ "$(builddir)" != "$(srcdir)" ]; then for i in $(shell cd $(builddir)/xpm && echo *.png); do cp $(builddir)/xpm/$$i android/res/drawable/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done ; fi
87         mkdir -p android/res/raw
88         for i in $(shell cd ../po && echo *.mo); do cp ../po/$$i android/res/raw/$$( echo $$i | tr "[A-Z]" "[a-z]") ; done
89         cp navit.xml android/res/raw
90         cd android && ant debug
91
92 else
93 navit_SOURCES = start.c
94 navit_LDADD = libnavit.la @NAVIT_LIBS@ @WORDEXP_LIBS@ @ZLIB_LIBS@ @INTLLIBS@ -Lfib-1.1 -lfib
95
96 endif
97
98 if EVENT_GLIB
99   libnavit_la_SOURCES += event_glib.c
100 endif
101
102 if !PLUGINS
103   navit_SOURCES += builtin.c
104   navit_LDADD += $(wildcard $(top_builddir)/navit/*/*/*.la)
105 endif
106
107 if SUPPORT_WIN32
108   navit_LDADD += resource.rsc
109 if SUPPORT_WIN32CE
110   navit_LDADD += -lcommctrl
111 else
112   navit_LDADD += -lgdi32 -lcomctl32
113 endif
114
115 resource.rsc: $(top_srcdir)/navit/gui/win32/resources/resource.rc
116         $(WINDRES) -I $(top_srcdir)/navit/gui/win32/resources $(top_srcdir)/navit/gui/win32/resources/resource.rc resource.rsc
117 endif
118
119 .PHONY: version.h.tmp
120
121 version.h.tmp:
122         echo "#include \"config.h\"" >version.h.tmp
123 if SOURCE_MODE_SVN
124         echo "#define SVN_VERSION \"$$(LANG=C svnversion 2>/dev/null)\"" >>version.h.tmp
125 else
126         echo "#define SVN_VERSION \"@SOURCE_MODE@\"" >>version.h.tmp
127 endif
128         echo "#define NAVIT_VARIANT \"@NAVIT_VARIANT@\"" >>version.h.tmp
129         if ! diff version.h.tmp version.h >/dev/null 2>/dev/null; \
130         then \
131                 mv version.h.tmp version.h; \
132         fi
133
134 version.h: version.h.tmp
135
136 navit_config.h: ../config.h
137         cp ../config.h navit_config.h.tmp
138         if ! diff navit_config.h.tmp navit_config.h >/dev/null 2>/dev/null; \
139         then \
140                 mv navit_config.h.tmp navit_config.h; \
141         fi
142
143
144 distclean-local:
145         rm -f version.h version.h.tmp navit_config.h navit_config.h.tmp builtin.c support-builtin.c navit.xml
146         if [ "$(builddir)" != "$(srcdir)" ]; then rm -f navit.dtd; fi
147
148 builtin.c: $(top_builddir)/config.h
149         ls $(top_builddir)/navit/*/*/*.la | sed -e "s/.la/_init(void);/" -e "s/.*lib/extern void module_/" >builtin.c
150         echo "extern void builtin_init(void);" >>builtin.c
151         echo "void builtin_init(void) {" >>builtin.c
152         ls $(top_builddir)/navit/*/*/*.la | sed -e "s/.la/_init();/" -e "s/.*\\/lib/    module_/" >>builtin.c
153         echo "}" >>builtin.c
154 support-builtin.c: $(top_builddir)/config.h
155         ls $(top_builddir)/navit/support/*/*.la | sed -e "s/.la/_init(void);/" -e "s/.*lib/extern void module_/" >support-builtin.c
156         echo "extern void builtin_init(void);" >>support-builtin.c
157         echo "void builtin_init(void) {" >>support-builtin.c
158         ls $(top_builddir)/navit/support/*/*.la | sed -e "s/.la/_init();/" -e "s/.*\\/lib/      module_/" >>support-builtin.c
159         echo "}" >>support-builtin.c