]> git.sesse.net Git - vlc/blobdiff - extras/contrib/Makefile
contrib: Build fat binary using binary contrib on Mac OS X.
[vlc] / extras / contrib / Makefile
index c0317e01524a27b7d5576cd58705f1cd3f9c4bb8..73d132c4a8e27a9cede30e28b9cd97995652bb46 100644 (file)
 
 include ./config.mak
 
-BUILDDIRS = bin doc etc include info lib man sbin share tmp gecko-sdk Sparkle
+BUILDDIRS = hosts build
 
 ifdef HAVE_DARWIN_OS
-TARGETALL=using-bin
+TARGETALL=fat-bin
 else
 TARGETALL=using-src
 endif
@@ -47,26 +47,52 @@ src: using-src
 
 ifdef HAVE_DARWIN_OS
 
-CONTRIBREV=18
+CONTRIBREV=22
+
 contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2:
        $(WGET) http://downloads.videolan.org/pub/videolan/testing/contrib/$@
 
-using-bin: contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
+hosts/$(HOST)/.$(CONTRIBREV): contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
        @if test -d tmp; then \
                echo "Move away ./tmp, it's in the way" ; \
                exit 1 ; \
        fi
        mkdir tmp
+       mkdir -p $(PREFIX)
        (cd tmp && tar jxvf ../$<)
        ./change_prefix.sh tmp @@CONTRIB_PREFIX@@  $(PREFIX)
-       (cd tmp && find . -type d) | while read dir; do mkdir -p -- "$$dir"; done
-       (cd tmp && find . -not -type d) | while read i; do mv -f -- tmp/"$$i" "$$i"; done
+       (cd tmp && find . -type d) | while read dir; do mkdir -p -- "$(PREFIX)/$$dir"; done
+       (cd tmp && find . -not -type d) | while read i; do mv -f -- tmp/"$$i" "$(PREFIX)/$$i"; done
        rm -rf tmp
     # libiconv.la is no longer present on Snow Leopard, so fix possible references to it, which would
     # result in linking issues
 ifdef HAVE_DARWIN_10
        (cd $(PREFIX)/lib && sed -e 's%/usr/lib/libiconv.la%$(PREFIX)/lib/libiconv.la%g' -i.orig *.la && rm -f *.la.orig)
+       (cd src && $(MAKE) .iconv)
 endif
+       touch $@
+
+using-bin: hosts/$(HOST)/.$(CONTRIBREV) 
+
+hosts/fat/.$(CONTRIBREV)-from-archs:
+       @if test -d tmp; then \
+               echo "Move away ./tmp, it's in the way" ; \
+               exit 1 ; \
+       fi
+       # FIXME - Doing this without rerunning bootstrap & make would be nicer
+       ./bootstrap i686-apple-darwin10 && make && \
+       ./bootstrap x86_64-apple-darwin10 && make && \
+       mkdir tmp;
+       cp -R hosts/x86_64-apple-darwin10/ tmp;
+       (cd tmp/lib && find . -name "*.dylib" -or -name "*.a") | while read lib; do rm tmp/lib/$$lib \
+          lipo -create hosts/x86_64-apple-darwin10/lib/$$lib hosts/i686-apple-darwin10/lib/$$lib -output tmp/lib/$$lib; \
+       done;
+       rm -Rf hosts/fat && \
+       mv tmp hosts/fat && \
+       touch $@
+        
+fat-bin: hosts/fat/.$(CONTRIBREV)-from-archs
+
 endif
 
 clean-src:
@@ -89,26 +115,24 @@ package-macosx:
                exit 1 ; \
        fi
        mkdir tmp
-       tar cf - bin sbin include lib share/aclocal* share/autoconf* \
-               share/automake* share/gettext* share/libtool* gecko-sdk Sparkle \
-               | (cd tmp; tar xf -)
+       (cd $(PREFIX); tar cf - *) | (cd tmp; tar xf -)
        ./change_prefix.sh tmp $(PREFIX) @@CONTRIB_PREFIX@@
        (cd tmp; tar cf - .) | bzip2 -c > contrib-macosx.tar.bz2
        rm -rf tmp
        rm -f contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
        mv contrib-macosx.tar.bz2 contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
 
-DISTDIR = usr/win32
+DISTDIR = usr/win$*
 
-package-win32:
+package-win%:
        @if test -d tmp; then \
                echo "Move away ./tmp, it's in the way" ; \
                exit 1 ; \
        fi
        mkdir -p tmp/$(DISTDIR)
-       tar cf - --dereference bin sbin include lib share/aclocal*\
+       (cd $(PREFIX); tar cf - --dereference bin sbin include lib share/aclocal*\
                share/autoconf* share/qt4* \
-               share/automake* share/gettext* gecko-sdk\
+               share/automake* share/gettext* gecko-sdk)\
                | (cd tmp/$(DISTDIR); tar xpf -)
 #kludge for live.com
        mkdir -p tmp/$(DISTDIR)/live.com
@@ -119,14 +143,10 @@ package-win32:
        done;
 # Change Prefix.
        ./change_prefix.sh tmp $(PREFIX) $(DISTDIR)
-# Hack for qt4
-       (cd tmp/$(DISTDIR)/bin; mv uic.exe uic.ex; mv rcc.exe rcc.ex; mv moc.exe moc.ex)
-#      Remove unused and potentially harmful files     
-       (cd tmp/$(DISTDIR)/bin; rm -rfv *.exe; chmod a+x *)
-# Hack for qt4
-       (cd tmp/$(DISTDIR)/bin; mv uic.ex uic.exe; mv rcc.ex rcc.exe; mv moc.ex moc.exe)
+# Remove unused and potentially harmful files (but skip qt4 executables)
+       (cd tmp/$(DISTDIR)/bin && rm -fv `find . -name 'uic.exe' -o -name 'rcc.exe' -o -name 'moc.exe' -o -name '*.exe' -printf '%p '` && chmod a+x * || true)
 # Tar it.
-       (cd tmp; tar cf - $(DISTDIR)) | bzip2 -c > contrib-`date +%Y%m%d`-win32-bin-gcc-`$(CC) --version|head -n 1|cut -f 3 -d ' '`-runtime-`/bin/echo -e "#include <_mingw.h>\n__MINGW32_VERSION"|$(CC) -E -|grep -v ^#|grep -v ' '`-only.tar.bz2
+       (cd tmp; tar cf - $(DISTDIR)) | bzip2 -c > contrib-`date +%Y%m%d`-win$*-bin-gcc-`$(CC) --version|head -n 1|cut -f 3 -d ' '`-runtime-`/bin/echo -e "#include <_mingw.h>\n__MINGW32_VERSION"|$(CC) -E -|grep -v ^#|grep -v ' '`-only.tar.bz2
        rm -rf tmp
 
-.PHONY: all clean-src clean-bin clean package-macosx package-win32
+.PHONY: all clean-src clean-bin clean package-macosx