]> git.sesse.net Git - vlc/blob - extras/contrib/contrib.mak
Compat: relicense strcasestr to LGPL
[vlc] / extras / contrib / contrib.mak
1 # ***************************************************************************
2 # Makefile : Build vlc-contrib files
3 # ***************************************************************************
4 # Copyright (C) 2003-2011 the VideoLAN team
5 # $Id$
6
7 # Authors: Christophe Massiot <massiot@via.ecp.fr>
8 #          Derk-Jan Hartman <hartman at videolan dot org>
9 #          Christophe Mutricy <xtophe at videolan dot org>
10 #          Felix Paul Kühne <fkuehne at videolan dot org>
11 #
12 # This program is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 2 of the License, or    
15 # (at your option) any later version.
16 #
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25 # ***************************************************************************
26
27 include ./config.mak
28
29 BUILDDIRS = hosts build
30
31 ifdef HAVE_MACOSX
32 TARGETALL=using-bin
33 else
34 TARGETALL=using-src
35 endif
36
37 all: $(TARGETALL)
38
39 using-src:
40         $(MAKE) -C build-src tools
41         $(MAKE) -C build-src
42
43 ifdef HAVE_MACOSX_DARWIN_10
44         (cd $(PREFIX)/lib && sed -e 's%/usr/lib/libiconv.la%$(PREFIX)/lib/libiconv.la%g' -i.orig *.la && rm -f *.la.orig)
45 endif
46
47 # shortcut
48 src: using-src
49
50 ifdef HAVE_DARWIN_OS
51
52 CONTRIBREV=50
53
54 contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2:
55         $(WGET) http://downloads.videolan.org/pub/videolan/testing/contrib/macosx/$@
56
57 .$(CONTRIBREV): contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
58         @if test -d tmp; then \
59                 echo "Move away ./tmp, it's in the way" ; \
60                 exit 1 ; \
61         fi
62         mkdir tmp
63         mkdir -p $(PREFIX)
64         (cd tmp && tar jxvf ../$<)
65         $(SRCDIR)/change_prefix.sh tmp @@CONTRIB_PREFIX@@  $(PREFIX)
66         (cd tmp && find . -type d) | while read dir; do mkdir -p -- "$(PREFIX)/$$dir"; done
67         (cd tmp && find . -not -type d) | while read i; do mv -f -- tmp/"$$i" "$(PREFIX)/$$i"; done
68         rm -rf tmp
69         # install the gecko-sdk, which isn't part of the package for size and speed reasons
70         (cd build-src && rm -rf *gecko* && $(MAKE) .gecko)
71     # libiconv.la is no longer present on Snow Leopard, so fix possible references to it, which would
72     # result in linking issues
73 ifdef HAVE_MACOSX_DARWIN_10
74         (cd $(PREFIX)/lib && sed -e 's%/usr/lib/libiconv.la%$(PREFIX)/lib/libiconv.la%g' -i.orig *.la && rm -f *.la.orig)
75         (cd build-src && rm -f .iconv && $(MAKE) .iconv-from-os)
76 endif
77         touch .$(CONTRIBREV)
78
79 using-bin: .$(CONTRIBREV) 
80
81 endif
82
83 clean:
84         rm -rf $(BUILDDIRS)
85         $(MAKE) -C build-src clean
86
87 clean-bin:
88         rm -rf $(BUILDDIRS)
89         $(MAKE) -C build-src clean-dots
90
91 distclean:
92         rm -rf $(BUILDDIRS) config.mak distro.mak build-src toolchain.cmake Makefile
93
94 bin: using-bin
95
96 package-macosx:
97         @if test -d tmp; then \
98                 echo "Move away ./tmp, it's in the way" ; \
99                 exit 1 ; \
100         fi
101         mkdir tmp
102         (cd $(PREFIX); tar cf - Sparkle Growl BGHUDAppKit bin sbin include lib share/aclocal* share/autoconf* \
103                 share/automake* share/gettext* share/libtool*) | (cd tmp; tar xf -)
104         ./change_prefix.sh tmp $(PREFIX) @@CONTRIB_PREFIX@@
105         (cd tmp; tar cf - .) | bzip2 -c > contrib-macosx.tar.bz2
106         rm -rf tmp
107         rm -f contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
108         mv contrib-macosx.tar.bz2 contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2
109
110 DISTDIR = usr/win$*
111
112 package-win%:
113         @if test -d tmp; then \
114                 echo "Move away ./tmp, it's in the way" ; \
115                 exit 1 ; \
116         fi
117         mkdir -p tmp/$(DISTDIR)
118         (cd $(PREFIX); tar cf - --dereference bin sbin include lib share/aclocal*\
119                 share/autoconf* share/qt4* \
120                 share/automake* share/gettext* gecko-sdk)\
121                 | (cd tmp/$(DISTDIR); tar xpf -)
122 #kludge for live.com
123         mkdir -p tmp/$(DISTDIR)/live.com
124         for i in groupsock liveMedia UsageEnvironment BasicUsageEnvironment; do \
125                 mkdir -p  tmp/$(DISTDIR)/live.com/$$i/include; \
126                 cp -r build-src/live/$$i/include tmp/$(DISTDIR)/live.com/$$i; \
127                 cp build-src/live/$$i/lib$${i}.a  tmp/$(DISTDIR)/live.com/$$i; \
128         done;
129 # Change Prefix.
130         ./change_prefix.sh tmp $(PREFIX) $(DISTDIR)
131 # Remove unused and potentially harmful files (but skip qt4 executables)
132         (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)
133 # Tar it.
134         (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#define CONCAT2(a,b) a##b\n#define CONCAT(a,b) CONCAT2(a,b)\n#ifdef __MINGW64_VERSION_MAJOR\nCONCAT(CONCAT(__MINGW64_VERSION_MAJOR,.),__MINGW64_VERSION_MINOR)\n#else\n__MINGW32_VERSION\n#endif"|$(CC) -E -|tail -1`-only.tar.bz2
135         rm -rf tmp
136
137 .PHONY: all clean-src clean-bin clean package-macosx