Files
jami-daemon/extras/tools/tools.mak
Adrien Beraud 7bdaca8a8c tools: use batch mode
Further log cleanup for Android;
prevent showing the list of files for
build tools, which is almost never useful
and can print a lot of lines (eg. gettext).

Change-Id: Ic87fd110035c3d715273194efb360fbf19de6dab
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
2017-08-07 16:19:09 -04:00

274 lines
6.1 KiB
Makefile

# Copyright (C) 2003-2011 the VideoLAN team
#
# 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 packages.mak
#
# common rules
#
AUTOCONF=$(PREFIX)/bin/autoconf
export AUTOCONF
# Set following to non-empty to remove uneeded progression reports (i.e. with automatics builds)
BATCH_MODE = 1
ifeq ($(shell curl --version >/dev/null 2>&1 || echo FAIL),)
download = curl $(if ${BATCH_MODE},-sS) -f -L --retry-delay 10 --retry 2 -- "$(1)" > "$@"
else ifeq ($(shell wget --version >/dev/null 2>&1 || echo FAIL),)
download = rm -f $@.tmp && \
wget $(if ${BATCH_MODE},-nv) --passive -t 2 -w 10 -c -p -O $@.tmp "$(1)" && \
touch $@.tmp && \
mv $@.tmp $@
else ifeq ($(which fetch >/dev/null 2>&1 || echo FAIL),)
download = rm -f $@.tmp && \
fetch -p -o $@.tmp "$(1)" && \
touch $@.tmp && \
mv $@.tmp $@
else
download = $(error Neither curl nor wget found!)
endif
UNPACK = $(RM) -R $@ \
$(foreach f,$(filter %.tar.gz %.tgz,$^), && tar xzf $(f) $(if ${BATCH_MODE},,-v)) \
$(foreach f,$(filter %.tar.bz2,$^), && tar xjf $(f) $(if ${BATCH_MODE},,-v)) \
$(foreach f,$(filter %.tar.xz,$^), && tar xJf $(f) $(if ${BATCH_MODE},,-v)) \
$(foreach f,$(filter %.zip,$^), && unzip $(if ${BATCH_MODE},-q) $(f))
UNPACK_DIR = $(basename $(basename $(notdir $<)))
APPLY = (cd $(UNPACK_DIR) && patch -p1) <
MOVE = mv $(UNPACK_DIR) $@ && touch $@
#
# package rules
#
# yasm
yasm-$(YASM_VERSION).tar.gz:
$(call download,$(YASM_URL))
yasm: yasm-$(YASM_VERSION).tar.gz
$(UNPACK)
$(MOVE)
.yasm: yasm
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .yasm
CLEAN_PKG += yasm
DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
# cmake
cmake-$(CMAKE_VERSION).tar.gz:
$(call download,$(CMAKE_URL))
cmake: cmake-$(CMAKE_VERSION).tar.gz
$(UNPACK)
$(MOVE)
.cmake: cmake
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .cmake
CLEAN_PKG += cmake
DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
# libtool
libtool-$(LIBTOOL_VERSION).tar.xz:
$(call download,$(LIBTOOL_URL))
libtool: libtool-$(LIBTOOL_VERSION).tar.xz
$(UNPACK)
$(MOVE)
.libtool: libtool .automake
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
ln -sf libtool $(PREFIX)/bin/glibtool
ln -sf libtoolize $(PREFIX)/bin/glibtoolize
touch $@
CLEAN_PKG += libtool
DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.xz
CLEAN_FILE += .libtool
# GNU tar (with xz support)
tar-$(TAR_VERSION).tar.bz2:
$(call download,$(TAR_URL))
tar: tar-$(TAR_VERSION).tar.bz2
$(UNPACK)
$(MOVE)
.tar: tar
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_PKG += tar
DISTCLEAN_PKG += tar-$(TAR_VERSION).tar.bz2
CLEAN_FILE += .tar
# xz
xz-$(XZ_VERSION).tar.bz2:
$(call download,$(XZ_URL))
xz: xz-$(XZ_VERSION).tar.bz2
$(UNPACK)
$(MOVE)
.xz: xz
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_PKG += xz
DISTCLEAN_PKG += xz-$(XZ_VERSION).tar.bz2
CLEAN_FILE += .xz
# autoconf
autoconf-$(AUTOCONF_VERSION).tar.gz:
$(call download,$(AUTOCONF_URL))
autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
$(UNPACK)
$(MOVE)
.autoconf: autoconf .pkg-config
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .autoconf
CLEAN_PKG += autoconf
DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
# automake
automake-$(AUTOMAKE_VERSION).tar.gz:
$(call download,$(AUTOMAKE_URL))
automake: automake-$(AUTOMAKE_VERSION).tar.gz
$(UNPACK)
$(MOVE)
.automake: automake .autoconf
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .automake
CLEAN_PKG += automake
DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
# m4
m4-$(M4_VERSION).tar.gz:
$(call download,$(M4_URL))
m4: m4-$(M4_VERSION).tar.gz
$(UNPACK)
$(MOVE)
.m4: m4
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .m4
CLEAN_PKG += m4
DISTCLEAN_PKG += m4-$(M4_VERSION).tar.gz
# pkg-config
pkg-config-$(PKGCFG_VERSION).tar.gz:
$(call download,$(PKGCFG_URL))
pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
$(UNPACK)
mv pkg-config-lite-$(PKGCFG_VERSION) pkg-config-$(PKGCFG_VERSION)
$(MOVE)
.pkg-config: pkgconfig
(cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .pkg-config
CLEAN_PKG += pkgconfig
DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
# gas-preprocessor
gas-preprocessor-$(GAS_VERSION).pl:
$(call download,$(GAS_URL))
.gas: gas-preprocessor-$(GAS_VERSION).pl
mkdir -p $(PREFIX)/bin
cp gas-preprocessor-$(GAS_VERSION).pl $(PREFIX)/bin/gas-preprocessor.pl
chmod a+x $(PREFIX)/bin/gas-preprocessor.pl # needs to be executable
touch $@
CLEAN_FILE += .gas
DISTCLEAN_PKG += gas-preprocessor-$(GAS_VERSION).pl
# GNU sed
sed-$(SED_VERSION).tar.bz2:
$(call download,$(SED_URL))
sed: sed-$(SED_VERSION).tar.bz2
$(UNPACK)
$(MOVE)
.sed: sed
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_PKG += sed
DISTCLEAN_PKG += sed-$(SED_VERSION).tar.bz2
CLEAN_FILE += .sed
# GNU gettext
gettext-$(GETTEXT_VERSION).tar.gz:
$(call download,$(GETTEXT_URL))
gettext: gettext-$(GETTEXT_VERSION).tar.gz
$(UNPACK)
$(MOVE)
.gettext: gettext
(cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
touch $@
CLEAN_FILE += .gettext
CLEAN_PKG += gettext
DISTCLEAN_PKG += gettext-$(CMAKE_VERSION).tar.gz
#
#
#
clean:
rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
distclean: clean
rm -fr $(DISTCLEAN_PKG)
.PHONY: all clean distclean