]> sjero.net Git - linphone/blob - Makefile.am
Merge remote-tracking branch 'private/dev_videoios'
[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
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=$(shell cd $(top_builddir) && pwd)/linphone-install
22 INSTALLDIR_WITH_PREFIX=$(INSTALLDIR)/$(prefix)
23 ZIPFILE=$(shell cd $(top_builddir) && pwd)/$(PACKAGE)-win32-$(VERSION).zip
24 ZIP_EXCLUDED=include lib \
25                 $(OPTIONAL_SOUNDS)
26
27 SDK_ZIPFILE=$(shell cd $(top_builddir) && pwd)/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=$(shell cd $(top_srcdir) && pwd)/$(GTK_FILELIST)
42 LINPHONEDEPS_FILELIST=linphone-deps.filelist
43 WINBINDIST_FILES=$(shell cat $(top_srcdir)/$(LINPHONEDEPS_FILELIST))
44 ISS_SCRIPT=linphone.iss
45 ISS_SCRIPT_PATH=$(shell cd $(top_srcdir) && pwd)/$(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 = config.rpath  BUGS linphone.kdevelop  \
52                                 README.arm \
53                                 README.mingw \
54                                 README.macos \
55                                 autogen.sh \
56                                 linphone.spec.in \
57                                 $(GTK_FILELIST) \
58                                 gen-gtkfilelist.sh \
59                                 $(LINPHONEDEPS_FILELIST) \
60                                 $(ISS_SCRIPT).in
61
62 DISTCLEANFILES= $(ISS_SCRIPT) $(PACKAGE_WIN32_FILELIST)
63
64 CLEANFILES=Portfile Portfile-devel
65
66 # `make rpm'
67
68 all-local: linphone.spec linphone.iss
69
70 linphone.spec: linphone.spec.in
71
72 .phony: rpm
73 rpm:
74         $(MAKE) dist
75         cd oRTP && $(MAKE) dist && mv -f ortp*.tar.gz ../
76         cd mediastreamer2 && $(MAKE) dist && mv -f mediastreamer*.tar.gz ../
77 # Create "Specfile" at the same level as the tarball content
78         -rm -f $(PACKAGE)-$(VERSION).tar
79         gunzip $(PACKAGE)-$(VERSION).tar.gz
80         cp $(PACKAGE).spec Specfile
81         tar --append --file=$(PACKAGE)-$(VERSION).tar Specfile
82         gzip $(PACKAGE)-$(VERSION).tar
83 # <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2068410>
84         TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz
85
86 #a zip containing win32 binaries, suitable to generate an installer
87
88 if BUILD_ZRTP
89 WINBINDIST_FILES+=./bin/libzrtpcpp.dll ./bin/msys-1.0.dll ./bin/msys-crypto-1.0.0.dll
90 endif
91
92 other-cherrypick:
93         cd $(GTK_PREFIX) && \
94         for file in $(WINBINDIST_FILES) ; do \
95                 if test -d $$file; then \
96                         mkdir -p $(INSTALLDIR_WITH_PREFIX)/$$file ;\
97                 else \
98                         cp $$file $(INSTALLDIR_WITH_PREFIX)/$$file ;\
99                 fi \
100         done
101         cp /mingw/bin/libgcc_s*.dll \
102                 /mingw/bin/libstdc++-6.dll \
103                 /mingw/bin/libintl-8.dll \
104                 /mingw/bin/libiconv-2.dll \
105                 /mingw/bin/pthreadGC2.dll \
106                 $(INSTALLDIR_WITH_PREFIX)/bin/.
107
108
109 gtk-cherrypick:
110         cd $(GTK_PREFIX) && \
111         for file in `cat $(GTK_FILELIST_PATH)` ; do \
112                 if test -d $$file; then \
113                         mkdir -p $(INSTALLDIR_WITH_PREFIX)/$$file ;\
114                 else \
115                         cp $$file $(INSTALLDIR_WITH_PREFIX)/$$file ;\
116                 fi \
117         done && \
118         mkdir -p  $(INSTALLDIR_WITH_PREFIX)/share/themes && \
119         cp -rf share/themes/$(GTK_THEME) $(INSTALLDIR_WITH_PREFIX)/share/themes/.
120
121 zip:
122         rm -f $(ZIPFILE)
123         rm -rf $(INSTALLDIR)
124         mkdir -p $(INSTALLDIR)
125         make install DESTDIR=$(INSTALLDIR)
126 #remove unwanted linphone stuff
127         cd $(INSTALLDIR_WITH_PREFIX) && rm -rf $(ZIP_EXCLUDED)
128 #add gtk dlls and files
129         make gtk-cherrypick
130         make other-cherrypick
131         cp -f $(top_srcdir)/gtk/gtkrc $(INSTALLDIR_WITH_PREFIX)/.
132         cp -f $(top_srcdir)/README $(INSTALLDIR_WITH_PREFIX)/.
133         cp -f $(top_srcdir)/COPYING $(INSTALLDIR_WITH_PREFIX)/.
134         cd $(INSTALLDIR_WITH_PREFIX) && zip -r $(ZIPFILE) *
135
136 sdk:
137         rm -f $(SDK_ZIPFILE)
138         rm -rf $(INSTALLDIR)
139         mkdir -p $(INSTALLDIR)
140         make install DESTDIR=$(INSTALLDIR)
141 # remove unwanted stuff (gtk interface)
142         cd $(INSTALLDIR_WITH_PREFIX) && rm -rf $(SDK_EXCLUDED)
143         make other-cherrypick
144         cp -f $(top_srcdir)/README $(INSTALLDIR_WITH_PREFIX)/.
145         cp -f $(top_srcdir)/COPYING $(INSTALLDIR_WITH_PREFIX)/.
146         cd $(INSTALLDIR_WITH_PREFIX) && zip -r $(SDK_ZIPFILE) *
147
148 filelist: zip
149         cd $(INSTALLDIR_WITH_PREFIX) && \
150         rm -f $(PACKAGE_WIN32_FILELIST) && \
151         for file in `find` ; do \
152                 if ! test -d $$file ; then \
153                         echo "Source: $$file; Destdir: {app}\\`dirname $$file`; Flags: ignoreversion" \
154                         >> $(PACKAGE_WIN32_FILELIST) ;\
155                 fi \
156         done
157
158 setup.exe: filelist
159         cp $(ISS_SCRIPT) $(INSTALLDIR_WITH_PREFIX)/.
160         cd $(INSTALLDIR_WITH_PREFIX) && \
161         $(ISCC) $(ISS_SCRIPT) 
162         mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-$(VERSION)-setup.exe
163         rm -rf $(INSTALLDIR_WITH_PREFIX)/Output
164         rm -f $(INSTALLDIR_WITH_PREFIX)/$(PACKAGE_WIN32_FILELIST)
165         rm -f $(INSTALLDIR_WITH_PREFIX)/$(ISS_SCRIPT)
166
167 newdate:
168         cd gtk && $(MAKE) newdate
169
170 if HAVE_MD5SUM
171 GEN_MD5=$(shell $(MD5SUM) linphone-$(VERSION).tar.gz | awk {'print $$4'})
172 else
173 GEN_MD5=$(shell $(MD5SUM) linphone-$(VERSION).tar.gz | awk {'print $$1'})
174 endif
175
176 Portfile:       $(top_srcdir)/scripts/Portfile.tmpl dist
177         sed -e 's/\@VERSION\@/$(LINPHONE_VERSION)/g' \
178           -e 's/\@LINPHONE_MD5\@/$(GEN_MD5)/' < $< > $@
179
180 Portfile-devel: $(top_srcdir)/scripts/Portfile-devel.tmpl dist
181         sed -e 's/\@VERSION\@/$(LINPHONE_VERSION)/g' \
182           -e 's/\@LINPHONE_MD5\@/$(GEN_MD5)/' < $< > $@
183
184 MACAPPNAME=Linphone.app
185 MACAPPZIP=$(PACKAGE)-$(VERSION).app.zip
186 BUNDLEDIR=$(shell echo "$$HOME/Desktop/$(MACAPPNAME)")
187 LIBICONV_HACK=$(top_builddir)/build/macos/libiconv.2.dylib
188
189 $(LIBICONV_HACK):
190         cd $(top_builddir)/build/macos && \
191         wget http://download-mirror.savannah.gnu.org/releases/linphone/misc/libiconv.2.dylib
192
193 bundle: $(LIBICONV_HACK)
194         rm -rf $(INSTALLDIR)
195         mkdir -p $(INSTALLDIR)
196         make install DESTDIR=$(INSTALLDIR)
197         LINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
198         LIBLINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
199         gtk-mac-bundler $(PACKAGE_BUNDLE_FILE)
200         printf "[Pango]\nModuleFiles=./etc/pango/pango.modules\n" \
201         > $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc 
202         cp -f $(LIBICONV_HACK) $(BUNDLEDIR)/Contents/Resources/lib/.
203         cd $(BUNDLEDIR)/.. && rm -f $(MACAPPZIP) && zip -r $(MACAPPZIP) $(MACAPPNAME)
204
205
206