]> sjero.net Git - linphone/blobdiff - Makefile.am
Aac-eld add missing header according to RFC3640 3.3.6
[linphone] / Makefile.am
index 37abf47a9f9abb46f0fbe48a940b2651a013e256..36466ab9eea510178a15a584255a085de5c31d2a 100644 (file)
@@ -3,14 +3,8 @@
 # let make re-run automake upon need
 ACLOCAL_AMFLAGS = -I m4 $(ACLOCAL_MACOS_FLAGS)
 
-if EXTERNAL_ORTP
-ORTP_DIR =
-else
-ORTP_DIR = oRTP
-endif
-
-SUBDIRS = m4 pixmaps po $(ORTP_DIR) mediastreamer2\
-               coreapi console gtk-glade share scripts
+SUBDIRS = build m4 pixmaps po @ORTP_DIR@ @MS2_DIR@ \
+               coreapi console gtk share scripts tools
 
 
 
@@ -24,15 +18,15 @@ OPTIONAL_SOUNDS=\
                share/sounds/linphone/rings/rock.wav
 
 
-INSTALLDIR=$(shell cd $(top_builddir) && pwd)/linphone-install
+INSTALLDIR=$(abs_top_builddir)/linphone-install
 INSTALLDIR_WITH_PREFIX=$(INSTALLDIR)/$(prefix)
-ZIPFILE=$(shell cd $(top_builddir) && pwd)/$(PACKAGE)-win32-$(VERSION).zip
+ZIPFILE=$(abs_top_builddir)/$(PACKAGE)-win32-$(VERSION).zip
 ZIP_EXCLUDED=include lib \
                $(OPTIONAL_SOUNDS)
 
-SDK_ZIPFILE=$(shell cd $(top_builddir) && pwd)/lib$(PACKAGE)-win32-$(VERSION).zip
+SDK_ZIPFILE=$(abs_top_builddir)/lib$(PACKAGE)-win32-$(VERSION).zip
 SDK_EXCLUDED= \
-       bin/linphone-3.exe \
+       bin/linphone.exe \
        lib/*.la \
        share/linphone \
        share/pixmaps \
@@ -41,32 +35,32 @@ SDK_EXCLUDED= \
        $(OPTIONAL_SOUNDS)
 
 
-GTK_PREFIX=/usr
-GTK_FILELIST=gtk+-2.18.5.filelist
-GTK_FILELIST_PATH=$(shell cd $(top_srcdir) && pwd)/$(GTK_FILELIST)
+GTK_PREFIX=/
+GTK_THEME=Outcrop
+GTK_FILELIST=gtk+-2.22.1.filelist
+GTK_FILELIST_PATH=$(abs_top_srcdir)/$(GTK_FILELIST)
 LINPHONEDEPS_FILELIST=linphone-deps.filelist
-WINBINDIST_FILES=$(shell cat $(top_srcdir)/$(LINPHONEDEPS_FILELIST))
+WINBINDIST_FILES=`cat $(abs_top_srcdir)/$(LINPHONEDEPS_FILELIST)`
 ISS_SCRIPT=linphone.iss
-ISS_SCRIPT_PATH=$(shell cd $(top_srcdir) && pwd)/$(ISS_SCRIPT)
+ISS_SCRIPT_PATH=$(abs_top_srcdir)/$(ISS_SCRIPT)
 #path to Inno Setup 5 compiler
-ISCC=/c/Program\ Files/Inno\ Setup\ 5/ISCC.exe
+ISCC=ISCC.exe
 PACKAGE_WIN32_FILELIST=$(PACKAGE)-win32.filelist
-
-EXTRA_DIST = config.rpath  BUGS linphone.kdevelop  \
-                               intltool-extract.in     \
-                               intltool-merge.in       \
-                               intltool-update.in \
-                               README.arm \
-                               README.mingw \
-                               README.macos \
-                               autogen.sh \
-                               linphone.spec.in \
-                               $(GTK_FILELIST) \
-                               gen-gtkfilelist.sh \
-                               $(LINPHONEDEPS_FILELIST) \
-                               $(ISS_SCRIPT).in
-
-DISTCLEANFILES= intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache $(ISS_SCRIPT) $(PACKAGE_WIN32_FILELIST)
+PACKAGE_BUNDLE_FILE=$(top_srcdir)/build/macos/$(PACKAGE).bundle
+
+EXTRA_DIST =           BUGS  \
+                       README.arm \
+                       README.mingw \
+                       README.macos \
+                       autogen.sh \
+                       linphone.spec \
+                       linphone.spec.in \
+                       $(GTK_FILELIST) \
+                       gen-gtkfilelist.sh \
+                       $(LINPHONEDEPS_FILELIST) \
+                       $(ISS_SCRIPT).in
+
+DISTCLEANFILES= $(ISS_SCRIPT) $(PACKAGE_WIN32_FILELIST)
 
 CLEANFILES=Portfile Portfile-devel
 
@@ -76,56 +70,74 @@ all-local: linphone.spec linphone.iss
 
 linphone.spec: linphone.spec.in
 
-.phony: rpm
-rpm:
+.phony: rpm rpm-novideo rpm-base
+rpm-base:
        $(MAKE) dist
-       cd oRTP && $(MAKE) dist && mv -f ortp*.tar.gz ../
-       cd mediastreamer2 && $(MAKE) dist && mv -f mediastreamer*.tar.gz ../
-# Create "Specfile" at the same level as the tarball content
        -rm -f $(PACKAGE)-$(VERSION).tar
        gunzip $(PACKAGE)-$(VERSION).tar.gz
-       cp $(PACKAGE).spec Specfile
-       tar --append --file=$(PACKAGE)-$(VERSION).tar Specfile
+#remove ms2 and ortp spec file to make sure linphone spec file is used bu rpmbuild
+       tar --delete --file=$(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)/mediastreamer2/mediastreamer2.spec
+       tar --delete --file=$(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)/oRTP/ortp.spec
        gzip $(PACKAGE)-$(VERSION).tar
+
+rpm: rpm-base
 # <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2068410>
        TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz
 
+rpm-novideo: rpm-base
+# <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2068410>
+       TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz --without video
+
 #a zip containing win32 binaries, suitable to generate an installer
 
+if BUILD_ZRTP
+WINBINDIST_FILES+=./bin/libzrtpcpp.dll ./bin/msys-1.0.dll ./bin/msys-crypto-1.0.0.dll
+endif
+
+if BUILD_TUNNEL
+WINBINDIST_FILES+=./bin/libtunnel-0.dll
+endif
+
 other-cherrypick:
        cd $(GTK_PREFIX) && \
        for file in $(WINBINDIST_FILES) ; do \
                if test -d $$file; then \
-                       mkdir -p $(INSTALLDIR_WITH_PREFIX)/$$file ;\
+                       $(MKDIR_P) $(INSTALLDIR_WITH_PREFIX)/$$file ;\
                else \
                        cp $$file $(INSTALLDIR_WITH_PREFIX)/$$file ;\
                fi \
        done
-       cp /mingw/bin/libgcc_s*.dll $(INSTALLDIR_WITH_PREFIX)/bin/.
+       cp /mingw/bin/libgcc_s*.dll \
+               /mingw/bin/libstdc++-6.dll \
+               /mingw/bin/libintl-8.dll \
+               /mingw/bin/libiconv-2.dll \
+               /mingw/bin/pthreadGC2.dll \
+               $(INSTALLDIR_WITH_PREFIX)/bin/.
 
 
 gtk-cherrypick:
        cd $(GTK_PREFIX) && \
        for file in `cat $(GTK_FILELIST_PATH)` ; do \
                if test -d $$file; then \
-                       mkdir -p $(INSTALLDIR_WITH_PREFIX)/$$file ;\
+                       $(MKDIR_P) $(INSTALLDIR_WITH_PREFIX)/$$file ;\
                else \
                        cp $$file $(INSTALLDIR_WITH_PREFIX)/$$file ;\
                fi \
        done && \
-       cp -rf share/themes $(INSTALLDIR_WITH_PREFIX)/share/.
+       $(MKDIR_P) $(INSTALLDIR_WITH_PREFIX)/share/themes && \
+       cp -rf share/themes/$(GTK_THEME) $(INSTALLDIR_WITH_PREFIX)/share/themes/.
 
 zip:
        rm -f $(ZIPFILE)
        rm -rf $(INSTALLDIR)
-       mkdir -p $(INSTALLDIR)
+       $(MKDIR_P) $(INSTALLDIR)
        make install DESTDIR=$(INSTALLDIR)
 #remove unwanted linphone stuff
        cd $(INSTALLDIR_WITH_PREFIX) && rm -rf $(ZIP_EXCLUDED)
 #add gtk dlls and files
        make gtk-cherrypick
        make other-cherrypick
-       cp -f $(top_srcdir)/gtk-glade/gtkrc $(INSTALLDIR_WITH_PREFIX)/.
+       cp -f $(top_srcdir)/gtk/gtkrc $(INSTALLDIR_WITH_PREFIX)/.
        cp -f $(top_srcdir)/README $(INSTALLDIR_WITH_PREFIX)/.
        cp -f $(top_srcdir)/COPYING $(INSTALLDIR_WITH_PREFIX)/.
        cd $(INSTALLDIR_WITH_PREFIX) && zip -r $(ZIPFILE) *
@@ -133,7 +145,7 @@ zip:
 sdk:
        rm -f $(SDK_ZIPFILE)
        rm -rf $(INSTALLDIR)
-       mkdir -p $(INSTALLDIR)
+       $(MKDIR_P) $(INSTALLDIR)
        make install DESTDIR=$(INSTALLDIR)
 # remove unwanted stuff (gtk interface)
        cd $(INSTALLDIR_WITH_PREFIX) && rm -rf $(SDK_EXCLUDED)
@@ -152,6 +164,9 @@ filelist: zip
                fi \
        done
 
+
+### WINDOWS
+
 setup.exe: filelist
        cp $(ISS_SCRIPT) $(INSTALLDIR_WITH_PREFIX)/.
        cd $(INSTALLDIR_WITH_PREFIX) && \
@@ -161,15 +176,60 @@ setup.exe: filelist
        rm -f $(INSTALLDIR_WITH_PREFIX)/$(PACKAGE_WIN32_FILELIST)
        rm -f $(INSTALLDIR_WITH_PREFIX)/$(ISS_SCRIPT)
 
+###
+
 newdate:
-       cd gtk-glade && $(MAKE) newdate
+       cd gtk && $(MAKE) newdate
 
+if HAVE_MD5SUM
+GEN_MD5=`$(MD5SUM) linphone-$(VERSION).tar.gz | awk {'print $$4'}`
+else
+GEN_MD5=`$(MD5SUM) linphone-$(VERSION).tar.gz | awk {'print $$1'}`
+endif
 
-Portfile:      $(top_srcdir)/scripts/Portfile.tmpl dist
+Portfile: $(top_srcdir)/scripts/Portfile.tmpl dist
        sed -e 's/\@VERSION\@/$(LINPHONE_VERSION)/g' \
-         -e 's/\@LINPHONE_MD5\@/$(shell md5sum linphone-$(VERSION).tar.gz | awk {'print $$1'})/' < $< > $@
+         -e 's/\@LINPHONE_MD5\@/$(GEN_MD5)/' < $< > $@
 
 Portfile-devel:        $(top_srcdir)/scripts/Portfile-devel.tmpl dist
        sed -e 's/\@VERSION\@/$(LINPHONE_VERSION)/g' \
-         -e 's/\@LINPHONE_MD5\@/$(shell md5sum linphone-$(VERSION).tar.gz | awk {'print $$1'})/' < $< > $@
+         -e 's/\@LINPHONE_MD5\@/$(GEN_MD5)/' < $< > $@
+
 
+### MAC
+
+MACAPPNAME=Linphone.app
+MACAPPZIP=$(PACKAGE)-$(VERSION).app.zip
+BUNDLEPREFIX=./
+BUNDLEDIR=$(BUNDLEPREFIX)$(MACAPPNAME)
+LIBICONV_HACK=$(top_builddir)/build/macos/libiconv.2.dylib
+
+$(LIBICONV_HACK):
+       cd $(top_builddir)/build/macos && \
+       wget http://download-mirror.savannah.gnu.org/releases/linphone/misc/libiconv.2.dylib
+
+bundle: $(LIBICONV_HACK)
+       rm -rf $(INSTALLDIR)
+       $(MKDIR_P) $(INSTALLDIR)
+       make install DESTDIR=$(INSTALLDIR)
+       BUNDLE_PREFIX=$(BUNDLEPREFIX) \
+       LINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
+       LIBLINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
+       MS2_PLUGINS_INSTALL_PREFIX=$(prefix) \
+       gtk-mac-bundler $(PACKAGE_BUNDLE_FILE)
+       printf "[Pango]\nModuleFiles=./etc/pango/pango.modules\n" \
+       > $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc
+       cp -f $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig
+       sed -e 's:@executable_path.*/::g' $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig  > $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules
+       cp -f $(LIBICONV_HACK) $(BUNDLEDIR)/Contents/Resources/lib/.
+       cd $(BUNDLEDIR)/.. && rm -f $(MACAPPZIP) && zip -r $(MACAPPZIP) $(MACAPPNAME) && cd -
+
+###
+### CLEAN
+
+clean-local:
+       rm -rf $(BUNDLEDIR)
+discovery:
+       touch specs.cpp
+       $(CC) --include $(top_builddir)/config.h \
+          $(TUNNEL_CFLAGS) $(CFLAGS) $(MEDIASTREAMER2_CFLAGS) $(ORTP_CFLAGS) -E -P -v -dD specs.cpp