summaryrefslogtreecommitdiff
path: root/Makefile
blob: abb04a292a76759aab653be865e336bf9330c113 (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
top=$(shell pwd)

all: extract

extract: \
	build/maven \
	build/maven-extras \
	build/slf4j
download: \
	upstream/apache-maven-$(shell cat apache-maven-version.txt) \
	upstream/maven-svn
	upstream/slf4j-git

# touch this file to trigger network updates
network:
	touch $@

################################################################################

mvn_ver=$(shell cat apache-maven-version.txt)
upstream/apache-maven-${mvn_ver}-src.tar.gz: upstream/apache-maven-%-src.tar.gz:
	ver=$* && \
	mirror='http://archive.apache.org/dist' && \
	mkdir -p ${@D} && \
	wget -c -O $@ "$${mirror}/maven/maven-$${ver%%.*}/$${ver}/source/${@F}"
upstream/apache-maven-${mvn_ver}: upstream/apache-maven-%: upstream/apache-maven-%-src.tar.gz
	cd ${@D} && tar xaf "${top}/$<"
	cd $@ && git init && git add . && git commit -m 'tarball of apache maven $*'
build/maven: upstream/apache-maven-${mvn_ver}
	rm -rf $@
	mkdir -p $@
	lndir -silent "${top}/$<" "${top}/$@"

################################################################################

upstream/maven-svn: maven-svn-map.txt network
	if ! [[ -d "$@/.svn" ]]; then \
		mkdir -p ${@D} && \
		svn checkout --depth=empty https://svn.apache.org/repos/asf/maven "$@"; \
	else \
		cd "$@" && svn update; \
	fi
	cd "$@" && \
	while read svnpath localpath; do \
		svn update --parents "$$svnpath"; \
	done <"${top}/$<"
	touch $@
maven-svn-version.txt: upstream/maven-svn maven-svn-map.txt
	while read svnpath localpath; do \
		cd "${top}/$</$${svnpath}" && \
		LANG=C svn log -l 1 .|sed -n 2p; \
	done <"${top}/maven-svn-map.txt" | \
	cut -d'|' -f3 | date --file=- --utc --iso-8601 | sort | sed -n '$$p' > "${top}/$@"
build/maven-extras: upstream/maven-svn maven-svn-map.txt
	rm -rf $@
	mkdir -p $@
	while read svnpath localpath; do \
		mkdir -p "${top}/$@/$${localpath}" && \
		lndir -silent "${top}/$</$${svnpath}" "${top}/$@/$${localpath}"; \
	done <maven-svn-map.txt

################################################################################

upstream/slf4j-git: slf4j-version.txt network
	if ! [[ -d "$@/.git" ]]; then \
		git clone git://github.com/qos-ch/slf4j.git "$@"; \
	else \
		cd "$@" && git fetch --all -p; \
	fi
	cd "$@" && git checkout v_$$(cat "${top}/$<")
build/slf4j: upstream/slf4j-git
	rm -rf $@
	mkdir -p $@
	lndir -silent "${top}/$<" "${top}/$@"