-
Notifications
You must be signed in to change notification settings - Fork 2
/
extra.mk
executable file
·79 lines (75 loc) · 2.23 KB
/
extra.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# (c) 2011 Mandriva, http://www.mandriva.com
#
# $Id$
#
# This file is part of Pulse 2, http://pulse2.mandriva.org
#
# Pulse 2 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.
#
# Pulse 2 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 Pulse 2; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
#
# These rules allow to fetch and extract an extra archive.
#
# Variables to set:
# extra_archive: archive file name
# extra_uri: uri to fetch archive from
#
# Variables set:
# extra_srcdir: path to root source dir
#
extra_srcdir = sources
extract = $(shell \
orig=`readlink -f $(extra_archive)`; \
mime=`file --brief --mime-type $$orig`; \
if test "$$mime" = "application/zip"; then \
echo 'unzip -d'; \
elif test "$$mime" = "application/x-gzip"; then \
echo 'tar zxCf'; \
elif test "$$mime" = "application/x-bzip2"; then \
echo 'tar jxCf'; \
elif test "$$mime" = "application/x-xz"; then \
echo 'tar JxCf'; \
else \
echo 'echo Unknown archive mimetype; exit 1'; \
fi)
$(extra_srcdir): $(extra_archive)
if test "x$(extra_archive)" != "x"; then \
tmpdir=$(shell mktemp -d --tmpdir=$(CURDIR)) && \
$(extract) $$tmpdir/ $< && \
mv $$tmpdir/* $@ && \
rm -rf $$tmpdir; \
else \
echo "###"; \
echo "### extra_archive is not set. Exiting."; \
echo "###"; \
exit 1; \
fi
$(extra_archive):
@if test "x$(extra_uri)" != "x"; then \
if test -e /usr/src/$(extra_archive); then \
ln -fs /usr/src/$(extra_archive) $@; \
else \
wget -O $@ $(extra_uri); \
fi; \
else \
echo "###"; \
echo "### No URI provided to retrieve: $@"; \
echo "###"; \
false; \
fi
distclean-local: distclean-extra
distclean-extra:
rm -rf tmp.*
rm -rf $(extra_srcdir)