Commit ca3e9173 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

contrib: Allow install dir and build dir override for contribs.

parent 6201f61b
...@@ -11,10 +11,6 @@ phrasebooks ...@@ -11,10 +11,6 @@ phrasebooks
*.bak *.bak
toolchain.cmake toolchain.cmake
# Ignore fetched contrib # Ignore fetched contrib
src/* build-src/*
# But not our files # But not our files
!Makefile !*.mak
!src/Distributions/*
!src/Patches
!src/packages.mak
!src/Makefile
# ***************************************************************************
# Makefile : Build vlc-contrib files
# ***************************************************************************
# Copyright (C) 2003-2010 the VideoLAN team
# $Id$
#
# Authors: Christophe Massiot <massiot@via.ecp.fr>
# Derk-Jan Hartman <hartman at videolan dot org>
# Christophe Mutricy <xtophe at videolan dot org>
# Felix Paul Kühne <fkuehne at videolan dot org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
# ***************************************************************************
include ./config.mak
BUILDDIRS = hosts build
ifdef HAVE_DARWIN_OS
TARGETALL=using-bin
else
TARGETALL=using-src
endif
all: $(TARGETALL)
using-src:
$(MAKE) -C src
#Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
# configure.ac/Makefile.am change in the vlc root dir
cp -R $(PREFIX)/share/aclocal/* ../../m4/
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)
endif
# shortcut
src: using-src
ifdef HAVE_DARWIN_OS
CONTRIBREV=34
contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2:
$(WGET) http://downloads.videolan.org/pub/videolan/testing/contrib/$@
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 -- "$(PREFIX)/$$dir"; done
(cd tmp && find . -not -type d) | while read i; do mv -f -- tmp/"$$i" "$(PREFIX)/$$i"; done
rm -rf tmp
# install the gecko-sdk, which isn't part of the package for size and speed reasons
(cd src && rm -rf *gecko* && $(MAKE) .gecko)
# 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 && rm -f .iconv && $(MAKE) .iconv)
endif
touch hosts/$(HOST)/.$(CONTRIBREV)
using-bin: hosts/$(HOST)/.$(CONTRIBREV)
endif
clean:
rm -rf $(BUILDDIRS)
$(MAKE) -C src clean
clean-bin:
rm -rf $(BUILDDIRS)
$(MAKE) -C src clean-dots
distclean:
$(MAKE) clean
$(MAKE) -C src clean-src
rm -rf config.mak distro.mak
bin: using-bin
package-macosx:
@if test -d tmp; then \
echo "Move away ./tmp, it's in the way" ; \
exit 1 ; \
fi
mkdir tmp
(cd $(PREFIX); tar cf - Sparkle bin sbin include lib share/aclocal* share/autoconf* \
share/automake* share/gettext* share/libtool*) | (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/win$*
package-win%:
@if test -d tmp; then \
echo "Move away ./tmp, it's in the way" ; \
exit 1 ; \
fi
mkdir -p tmp/$(DISTDIR)
(cd $(PREFIX); tar cf - --dereference bin sbin include lib share/aclocal*\
share/autoconf* share/qt4* \
share/automake* share/gettext* gecko-sdk)\
| (cd tmp/$(DISTDIR); tar xpf -)
#kludge for live.com
mkdir -p tmp/$(DISTDIR)/live.com
for i in groupsock liveMedia UsageEnvironment BasicUsageEnvironment; do \
mkdir -p tmp/$(DISTDIR)/live.com/$$i/include; \
cp -r src/live/$$i/include tmp/$(DISTDIR)/live.com/$$i; \
cp src/live/$$i/lib$${i}.a tmp/$(DISTDIR)/live.com/$$i; \
done;
# Change Prefix.
./change_prefix.sh tmp $(PREFIX) $(DISTDIR)
# 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`-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
rm -rf tmp
.PHONY: all clean-src clean-bin clean package-macosx
/Users/steg/Sources/vlc/extras/contrib/contrib.mak
\ No newline at end of file
...@@ -32,12 +32,14 @@ set +x ...@@ -32,12 +32,14 @@ set +x
usage() usage()
{ {
cat << EOF cat << EOF
usage: $0 [-t target] [-d distro] usage: $0 [-t target] [-d distro] [-b buildir] [-i installdir]
OPTIONS: OPTIONS:
-t Force target -t target Force target to "target"
-d Force distro -d distro Force distro to "distro"
-h Help -b buildir Set build dir to "builddir"
-i installdir Install to "installdir"
-h Show some help
EOF EOF
} }
...@@ -58,10 +60,8 @@ info() ...@@ -58,10 +60,8 @@ info()
ensure_macosx_sdk_presence() ensure_macosx_sdk_presence()
{ {
if test -e /Developer/SDKs; then if ! test -e /Developer/SDKs; then
echo "SDKs found. Everything is fine." >&2 error "Your Developer Tools' SDKs were not found.\nYou need to add extra symbolic links to /Developer to achieve correctly\nbuilt contribs.\nHave a look at the OSX-Compile-HOWTO for details." >&2
else
echo "ERROR:\nYour Developer Tools' SDKs were not found.\nYou need to add extra symbolic links to /Developer to achieve correctly\nbuilt contribs.\nHave a look at the OSX-Compile-HOWTO for details." >&2
exit 1 exit 1
fi fi
} }
...@@ -69,7 +69,7 @@ ensure_macosx_sdk_presence() ...@@ -69,7 +69,7 @@ ensure_macosx_sdk_presence()
DISTRO= DISTRO=
BUILDDIR=. BUILDDIR=.
while getopts “ht:d:” OPTION while getopts “ht:d:b:i:” OPTION
do do
case $OPTION in case $OPTION in
h) h)
...@@ -82,6 +82,12 @@ do ...@@ -82,6 +82,12 @@ do
d) d)
DISTRO=$OPTARG DISTRO=$OPTARG
;; ;;
b)
BUILDDIR=$OPTARG
;;
i)
PREFIX=$OPTARG
;;
?) ?)
usage usage
exit exit
...@@ -92,10 +98,35 @@ done ...@@ -92,10 +98,35 @@ done
BUILD=`gcc -dumpmachine` BUILD=`gcc -dumpmachine`
if test "x$TARGET" = "x"; then if test "x$TARGET" = "x"; then
info "No target specified, using '$BUILD'"
TARGET="$BUILD" TARGET="$BUILD"
info "No target specified, using '$TARGET'"
fi fi
if test "x$PREFIX" = "x"; then
PREFIX="`pwd`/hosts/$TARGET"
info "No install dir specified, using '$PREFIX'"
fi
# Make sure prefix is absolute and existing
mkdir -p "${PREFIX}"
PREFIX=`cd "${PREFIX}" && pwd`
#
# Set up build dir
#
mkdir -p "${BUILDDIR}"
# Install build dir makefile
ln -sf "`pwd`/contrib.mak" "${BUILDDIR}/Makefile"
# Create the 'build-src' folder to build from source
mkdir -p "${BUILDDIR}/build-src"
ln -sf "`pwd`/src/contrib-src.mak" "${BUILDDIR}/build-src/Makefile"
ln -sf "`pwd`/src/packages.mak" "${BUILDDIR}/build-src/packages.mak"
ln -sf "`pwd`/src/Patches" "${BUILDDIR}/build-src/Patches"
# Create config.mak
config_mak="${BUILDDIR}/config.mak" config_mak="${BUILDDIR}/config.mak"
rm -f "${config_mak}" rm -f "${config_mak}"
{ {
...@@ -103,6 +134,7 @@ rm -f "${config_mak}" ...@@ -103,6 +134,7 @@ rm -f "${config_mak}"
echo "# Make changes if you know what you're doing." echo "# Make changes if you know what you're doing."
} > "${config_mak}" } > "${config_mak}"
# Create distro.mak
distro_mak="${BUILDDIR}/distro.mak" distro_mak="${BUILDDIR}/distro.mak"
rm -f "${distro_mak}" rm -f "${distro_mak}"
{ {
...@@ -326,8 +358,9 @@ cat src/Distributions/"${DISTRO}".mak >> "${distro_mak}" ...@@ -326,8 +358,9 @@ cat src/Distributions/"${DISTRO}".mak >> "${distro_mak}"
add_makefile_cfg "BUILD = $BUILD" add_makefile_cfg "BUILD = $BUILD"
add_makefile_cfg "HOST = $TARGET" add_makefile_cfg "HOST = $TARGET"
add_makefile_cfg "SRCDIR = `pwd`"
add_makefile_cfg "PREFIX = `pwd`/hosts/$TARGET" add_makefile_cfg "PREFIX = ${PREFIX}"
add_makefile_cfg "VLCROOTDIR = `pwd`/../.."
ln -sfn hosts/$TARGET build ln -sfn hosts/$TARGET build
......
# ***************************************************************************
# Makefile : Build vlc-contrib files
# ***************************************************************************
# Copyright (C) 2003-2010 the VideoLAN team
# $Id$
#
# Authors: Christophe Massiot <massiot@via.ecp.fr>
# Derk-Jan Hartman <hartman at videolan dot org>
# Christophe Mutricy <xtophe at videolan dot org>
# Felix Paul Kühne <fkuehne at videolan dot org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
# ***************************************************************************
include ./config.mak
BUILDDIRS = hosts build
ifdef HAVE_DARWIN_OS
TARGETALL=using-bin
else
TARGETALL=using-src
endif
all: $(TARGETALL)
using-src:
$(MAKE) -C build-src
#Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
# configure.ac/Makefile.am change in the vlc root dir
cp -R $(PREFIX)/share/aclocal/* $(VLCROOTDIR)/m4
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)
endif
# shortcut
src: using-src
ifdef HAVE_DARWIN_OS
CONTRIBREV=34
contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2:
$(WGET) http://downloads.videolan.org/pub/videolan/testing/contrib/$@
.$(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 ../$<)
$(SRCDIR)/change_prefix.sh tmp @@CONTRIB_PREFIX@@ $(PREFIX)
(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
# install the gecko-sdk, which isn't part of the package for size and speed reasons
(cd build-src && rm -rf *gecko* && $(MAKE) .gecko)
# 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 build-src && rm -f .iconv && $(MAKE) .iconv)
endif
touch .$(CONTRIBREV)
using-bin: .$(CONTRIBREV)
endif
clean:
rm -rf $(BUILDDIRS)
$(MAKE) -C build-src clean
clean-bin:
rm -rf $(BUILDDIRS)
$(MAKE) -C build-src clean-dots
distclean:
$(MAKE) clean
$(MAKE) -C build-src clean-src
rm -rf config.mak distro.mak
bin: using-bin
package-macosx:
@if test -d tmp; then \
echo "Move away ./tmp, it's in the way" ; \
exit 1 ; \
fi
mkdir tmp
(cd $(PREFIX); tar cf - Sparkle bin sbin include lib share/aclocal* share/autoconf* \
share/automake* share/gettext* share/libtool*) | (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/win$*
package-win%:
@if test -d tmp; then \
echo "Move away ./tmp, it's in the way" ; \
exit 1 ; \
fi
mkdir -p tmp/$(DISTDIR)
(cd $(PREFIX); tar cf - --dereference bin sbin include lib share/aclocal*\
share/autoconf* share/qt4* \
share/automake* share/gettext* gecko-sdk)\
| (cd tmp/$(DISTDIR); tar xpf -)
#kludge for live.com
mkdir -p tmp/$(DISTDIR)/live.com
for i in groupsock liveMedia UsageEnvironment BasicUsageEnvironment; do \
mkdir -p tmp/$(DISTDIR)/live.com/$$i/include; \
cp -r build-src/live/$$i/include tmp/$(DISTDIR)/live.com/$$i; \
cp build-src/live/$$i/lib$${i}.a tmp/$(DISTDIR)/live.com/$$i; \
done;
# Change Prefix.
./change_prefix.sh tmp $(PREFIX) $(DISTDIR)
# 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`-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
rm -rf tmp
.PHONY: all clean-src clean-bin clean package-macosx
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment