summaryrefslogtreecommitdiffstats
path: root/source.mk
blob: 099d68e49b49493caff6a1ba3ba31d37a30fe228 (plain)
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
NON_FREE_FILES = \
	gcc/doc/fsf-funding.7 \
	gcc/doc/g++.1 \
	gcc/doc/gcc.1 \
	gcc/doc/gcc.info \
	gcc/doc/gccint.info \
	gcc/doc/gccint.texi \
	gcc/doc/gcc.texi \
	gcc/doc/gcov.1 \
	gcc/doc/gcov.texi \
	gcc/doc/gfortran.1 \
	gcc/doc/include/funding.texi \
	gcc/doc/invoke.texi \
	gcc/fortran/gfc-internals.texi \
	gcc/fortran/gfortran.info \
	gcc/fortran/gfortran.texi \
	gcc/fortran/intrinsic.texi \
	gcc/fortran/invoke.texi \
	libgomp/libgomp.info \
	libgomp/libgomp.texi
NEEDED_FILES = \
	gcc/doc/gcc.texi \
	gcc/doc/invoke.texi \
	gcc/doc/gcov.texi \
	gcc/doc/include/funding.texi \
	gcc/doc/gccint.texi \
	libgomp/libgomp.texi

UPSTREAM_VER = $$(printf '%s\n' '$(OPK_SOURCE_VERSION_UPSTREAM)' | \
	sed 's/^\([0-9a-z.~-][0-9a-z.~-]*\)+sip[1-9][0-9]*.*$$/\1/')
UPSTREAM_ARCHIVE = gcc-$(UPSTREAM_VER).tar.bz2
UPSTREAM_URL = http://ftp.gnu.org/gnu/gcc/gcc-$(UPSTREAM_VER)/$(UPSTREAM_ARCHIVE)
SOURCE_ARCHIVE = ../gcc-4.7-$(OPK_SOURCE_VERSION_UPSTREAM).orig.tar.bz2
GCC_KEYS = 745C015A B75C61B8 902C9419 F71EDF1C FC26A641 C3C45C06

$(SOURCE_ARCHIVE):
	wget "$(UPSTREAM_URL)"
	if gpg --version >/dev/null 2>&1; then \
		wget "$(UPSTREAM_URL).sig" && \
		{ \
			[ -e ../gcc-keyring.gpg ] || \
			gpg --keyring ../gcc-keyring.gpg --no-default-keyring \
				--recv-keys $(GCC_KEYS); \
		} && \
		gpg --verify --keyring ../gcc-keyring.gpg \
			"$(UPSTREAM_ARCHIVE).sig" || \
		exit ${?}; \
	fi
	tar -xjf "$(UPSTREAM_ARCHIVE)"
	for file in $(NON_FREE_FILES); do \
		rm -f "gcc-$(UPSTREAM_VER)/$${file}"; \
	done
	for file in $(NEEDED_FILES); do \
		>"gcc-$(UPSTREAM_VER)/$${file}"; \
	done
	tar -cjf '$(SOURCE_ARCHIVE)' "gcc-$(UPSTREAM_VER)"
	rm -Rf "gcc-$(UPSTREAM_VER)"
	rm -f "$(UPSTREAM_ARCHIVE)"

source: $(SOURCE_ARCHIVE)