]> sjero.net Git - linphone/blob - Makefile.am
Add fmtp parameters to opus payload to enable FEC and DTX
[linphone] / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 # let make re-run automake upon need
4 ACLOCAL_AMFLAGS = -I m4 $(ACLOCAL_MACOS_FLAGS)
5
6 SUBDIRS = build m4 pixmaps po @ORTP_DIR@ @MS2_DIR@ \
7                 coreapi console gtk share scripts tools
8
9
10
11 ACLOCAL_FLAGS=-I$(top_srcdir)/m4
12
13 OPTIONAL_SOUNDS=\
14                 share/sounds/linphone/rings/synth.wav \
15                 share/sounds/linphone/rings/tapping.wav \
16                 share/sounds/linphone/rings/orig.wav \
17                 share/sounds/linphone/rings/sweet.wav \
18                 share/sounds/linphone/rings/rock.wav
19
20
21 INSTALLDIR=$(abs_top_builddir)/linphone-install
22 INSTALLDIR_WITH_PREFIX=$(INSTALLDIR)/$(prefix)
23 ZIPFILE=$(abs_top_builddir)/$(PACKAGE)-win32-$(VERSION).zip
24 ZIP_EXCLUDED=include lib \
25                 $(OPTIONAL_SOUNDS)
26
27 SDK_ZIPFILE=$(abs_top_builddir)/lib$(PACKAGE)-win32-$(VERSION).zip
28 SDK_EXCLUDED= \
29         bin/linphone.exe \
30         lib/*.la \
31         share/linphone \
32         share/pixmaps \
33         share/locale \
34         share/gnome \
35         $(OPTIONAL_SOUNDS)
36
37
38 GTK_PREFIX=/
39 GTK_THEME=Outcrop
40 GTK_FILELIST=gtk+-2.22.1.filelist
41 GTK_FILELIST_PATH=$(abs_top_srcdir)/$(GTK_FILELIST)
42 LINPHONEDEPS_FILELIST=linphone-deps.filelist
43 WINBINDIST_FILES=`cat $(abs_top_srcdir)/$(LINPHONEDEPS_FILELIST)`
44 ISS_SCRIPT=linphone.iss
45 ISS_SCRIPT_PATH=$(abs_top_srcdir)/$(ISS_SCRIPT)
46 #path to Inno Setup 5 compiler
47 ISCC=ISCC.exe
48 PACKAGE_WIN32_FILELIST=$(PACKAGE)-win32.filelist
49 PACKAGE_BUNDLE_FILE=$(top_srcdir)/build/macos/$(PACKAGE).bundle
50
51 EXTRA_DIST =            BUGS  \
52                         README.arm \
53                         README.mingw \
54                         README.macos \
55                         autogen.sh \
56                         linphone.spec \
57                         linphone.spec.in \
58                         $(GTK_FILELIST) \
59                         gen-gtkfilelist.sh \
60                         $(LINPHONEDEPS_FILELIST) \
61                         $(ISS_SCRIPT).in
62
63 DISTCLEANFILES= $(ISS_SCRIPT) $(PACKAGE_WIN32_FILELIST)
64
65 CLEANFILES=Portfile Portfile-devel
66
67 # `make rpm'
68
69 all-local: linphone.spec linphone.iss
70
71 linphone.spec: linphone.spec.in
72
73 .phony: rpm rpm-novideo rpm-base
74 rpm-base:
75         $(MAKE) dist
76         -rm -f $(PACKAGE)-$(VERSION).tar
77         gunzip $(PACKAGE)-$(VERSION).tar.gz
78 #remove ms2 and ortp spec file to make sure linphone spec file is used bu rpmbuild
79         tar --delete --file=$(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)/mediastreamer2/mediastreamer2.spec
80         tar --delete --file=$(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)/oRTP/ortp.spec
81         gzip $(PACKAGE)-$(VERSION).tar
82
83 rpm: rpm-base
84 # <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2068410>
85         TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz
86
87 rpm-novideo: rpm-base
88 # <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2068410>
89         TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz --without video
90
91 #a zip containing win32 binaries, suitable to generate an installer
92
93 if BUILD_ZRTP
94 WINBINDIST_FILES+=./bin/libzrtpcpp.dll ./bin/msys-1.0.dll ./bin/msys-crypto-1.0.0.dll
95 endif
96
97 if BUILD_TUNNEL
98 WINBINDIST_FILES+=./bin/libtunnel-0.dll
99 endif
100
101 other-cherrypick:
102         cd $(GTK_PREFIX) && \
103         for file in $(WINBINDIST_FILES) ; do \
104                 if test -d $$file; then \
105                         $(MKDIR_P) $(INSTALLDIR_WITH_PREFIX)/$$file ;\
106                 else \
107                         cp $$file $(INSTALLDIR_WITH_PREFIX)/$$file ;\
108                 fi \
109         done
110         cp /mingw/bin/libgcc_s*.dll \
111                 /mingw/bin/libstdc++-6.dll \
112                 /mingw/bin/libintl-8.dll \
113                 /mingw/bin/libiconv-2.dll \
114                 /mingw/bin/pthreadGC2.dll \
115                 $(INSTALLDIR_WITH_PREFIX)/bin/.
116
117
118 gtk-cherrypick:
119         cd $(GTK_PREFIX) && \
120         for file in `cat $(GTK_FILELIST_PATH)` ; do \
121                 if test -d $$file; then \
122                         $(MKDIR_P) $(INSTALLDIR_WITH_PREFIX)/$$file ;\
123                 else \
124                         cp $$file $(INSTALLDIR_WITH_PREFIX)/$$file ;\
125                 fi \
126         done && \
127         $(MKDIR_P) $(INSTALLDIR_WITH_PREFIX)/share/themes && \
128         cp -rf share/themes/$(GTK_THEME) $(INSTALLDIR_WITH_PREFIX)/share/themes/.
129
130 zip:
131         rm -f $(ZIPFILE)
132         rm -rf $(INSTALLDIR)
133         $(MKDIR_P) $(INSTALLDIR)
134         make install DESTDIR=$(INSTALLDIR)
135 #remove unwanted linphone stuff
136         cd $(INSTALLDIR_WITH_PREFIX) && rm -rf $(ZIP_EXCLUDED)
137 #add gtk dlls and files
138         make gtk-cherrypick
139         make other-cherrypick
140         cp -f $(top_srcdir)/gtk/gtkrc $(INSTALLDIR_WITH_PREFIX)/.
141         cp -f $(top_srcdir)/README $(INSTALLDIR_WITH_PREFIX)/.
142         cp -f $(top_srcdir)/COPYING $(INSTALLDIR_WITH_PREFIX)/.
143         cd $(INSTALLDIR_WITH_PREFIX) && zip -r $(ZIPFILE) *
144
145 sdk:
146         rm -f $(SDK_ZIPFILE)
147         rm -rf $(INSTALLDIR)
148         $(MKDIR_P) $(INSTALLDIR)
149         make install DESTDIR=$(INSTALLDIR)
150 # remove unwanted stuff (gtk interface)
151         cd $(INSTALLDIR_WITH_PREFIX) && rm -rf $(SDK_EXCLUDED)
152         make other-cherrypick
153         cp -f $(top_srcdir)/README $(INSTALLDIR_WITH_PREFIX)/.
154         cp -f $(top_srcdir)/COPYING $(INSTALLDIR_WITH_PREFIX)/.
155         cd $(INSTALLDIR_WITH_PREFIX) && zip -r $(SDK_ZIPFILE) *
156
157 filelist: zip
158         cd $(INSTALLDIR_WITH_PREFIX) && \
159         rm -f $(PACKAGE_WIN32_FILELIST) && \
160         for file in `find` ; do \
161                 if ! test -d $$file ; then \
162                         echo "Source: $$file; Destdir: {app}\\`dirname $$file`; Flags: ignoreversion" \
163                         >> $(PACKAGE_WIN32_FILELIST) ;\
164                 fi \
165         done
166
167
168 ### WINDOWS
169
170 setup.exe: filelist
171         cp $(ISS_SCRIPT) $(INSTALLDIR_WITH_PREFIX)/.
172         cd $(INSTALLDIR_WITH_PREFIX) && \
173         $(ISCC) $(ISS_SCRIPT) 
174         mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-$(VERSION)-setup.exe
175         rm -rf $(INSTALLDIR_WITH_PREFIX)/Output
176         rm -f $(INSTALLDIR_WITH_PREFIX)/$(PACKAGE_WIN32_FILELIST)
177         rm -f $(INSTALLDIR_WITH_PREFIX)/$(ISS_SCRIPT)
178
179 ###
180
181 newdate:
182         cd gtk && $(MAKE) newdate
183
184 if HAVE_MD5SUM
185 GEN_MD5=`$(MD5SUM) linphone-$(VERSION).tar.gz | awk {'print $$4'}`
186 else
187 GEN_MD5=`$(MD5SUM) linphone-$(VERSION).tar.gz | awk {'print $$1'}`
188 endif
189
190 Portfile: $(top_srcdir)/scripts/Portfile.tmpl dist
191         sed -e 's/\@VERSION\@/$(LINPHONE_VERSION)/g' \
192           -e 's/\@LINPHONE_MD5\@/$(GEN_MD5)/' < $< > $@
193
194 Portfile-devel: $(top_srcdir)/scripts/Portfile-devel.tmpl dist
195         sed -e 's/\@VERSION\@/$(LINPHONE_VERSION)/g' \
196           -e 's/\@LINPHONE_MD5\@/$(GEN_MD5)/' < $< > $@
197
198
199 ### MAC
200
201 MACAPPNAME=Linphone.app
202 MACAPPZIP=$(PACKAGE)-$(VERSION).app.zip
203 BUNDLEPREFIX=./
204 BUNDLEDIR=$(BUNDLEPREFIX)$(MACAPPNAME)
205 LIBICONV_HACK=$(top_builddir)/build/macos/libiconv.2.dylib
206
207 $(LIBICONV_HACK):
208         cd $(top_builddir)/build/macos && \
209         wget http://download-mirror.savannah.gnu.org/releases/linphone/misc/libiconv.2.dylib
210
211 bundle: $(LIBICONV_HACK)
212         rm -rf $(INSTALLDIR)
213         $(MKDIR_P) $(INSTALLDIR)
214         make install DESTDIR=$(INSTALLDIR)
215         BUNDLE_PREFIX=$(BUNDLEPREFIX) \
216         LINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
217         LIBLINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
218         MS2_PLUGINS_INSTALL_PREFIX=$(prefix) \
219         gtk-mac-bundler $(PACKAGE_BUNDLE_FILE)
220         printf "[Pango]\nModuleFiles=./etc/pango/pango.modules\n" \
221         > $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc
222         cp -f $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig
223         sed -e 's:@executable_path.*/::g' $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig  > $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules
224         cp -f $(LIBICONV_HACK) $(BUNDLEDIR)/Contents/Resources/lib/.
225         cd $(BUNDLEDIR)/.. && rm -f $(MACAPPZIP) && zip -r $(MACAPPZIP) $(MACAPPNAME) && cd -
226
227 ###
228 ### CLEAN
229
230 clean-local:
231         rm -rf $(BUNDLEDIR)
232 discovery:
233         touch specs.cpp
234         $(CC) --include $(top_builddir)/config.h \
235           $(TUNNEL_CFLAGS) $(CFLAGS) $(MEDIASTREAMER2_CFLAGS) $(ORTP_CFLAGS) -E -P -v -dD specs.cpp