File: Makefile

package info (click to toggle)
isrcsubmit 2.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 592 kB
  • sloc: python: 1,254; makefile: 128; sh: 2
file content (142 lines) | stat: -rw-r--r-- 3,306 bytes parent folder | download | duplicates (3)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
version := 2.0.1
current := isrcsubmit-$(version)

downloads := ../web/isrcsubmit.jonnyjd.net/downloads/
upload := ftp://isrcsubmit.jonnyjd.net/downloads/
musicbrainzngs := musicbrainzngs-0.5
discid := discid-1.1.0
libdiscid := libdiscid-0.6.1

scripts := isrcsubmit.py $(current).py
#scripts := $(current).py
tar := $(current)
win32 := $(current)-win32
mac := $(current)-mac
all := $(scripts) $(tar).tar.gz $(win32).zip $(mac).zip

source_repo := ..
source_branch := master
source_dir := isrcsubmit

# TODO: make sure isrcsubmit.py is really updated!

tag_ref := $(source_repo)/.git/refs/tags/v$(version)
branch_ref := $(source_repo)/.git/refs/heads/$(source_branch)
ifeq ($(wildcard $(tag_ref)),)
	source_ref := $(branch_ref)
else
	source_ref := $(tag_ref)
endif

ifeq ($(shell cd $(source_repo) && git tag -l v$(version)),)
	source_checkout := cd $(source_repo) git checkout $(source_branch)
else
	source_checkout := cd $(source_repo) git checkout v$(version)
endif

define cp_source =
	cp -a $(source_dir)/ $(1)
	rm -rf $(1)/.git
endef

base_libs := $(musicbrainzngs) $(discid) $(libdiscid)
define cp_base_libs =
	mv $(1)/COPYING $(1)/COPYING.isrcsubmit
	mv $(1)/AUTHORS $(1)/AUTHORS.isrcsubmit
	mkdir $(1)/src
	cp -ar $(musicbrainzngs)/musicbrainzngs $(1)/
	cp -ar $(musicbrainzngs) $(1)/src/
	cp -ar $(discid)/discid $(1)/
	cp -ar $(discid) $(1)/src/
	cp -ar $(libdiscid) $(1)/src/
endef


all: $(all)


upload: $(all)
	cp -a $^ $(downloads)
	cd $(downloads) && ftpsync -cn . $(upload)


isrcsubmit.py: $(source_ref)
	cp -a $(source_dir)/isrcsubmit.py .

$(current).py: $(source_ref)
	cp -a $(source_dir)/isrcsubmit.py $(current).py

tar: $(tar).tar.gz
$(tar).tar.gz: $(source_ref)
	$(call cp_source, $(tar))
	tar --owner=root --group=root -czf $@ $(tar)
	rm -rf $(tar)

win32: $(win32).zip
$(win32).zip: $(source_ref) $(base_libs) $(libdiscid)-win32.zip mediatools
	$(call cp_source, $(win32))
	$(call cp_base_libs, $(win32))
	unzip $(libdiscid)-win32.zip
	cp -a $(libdiscid)-win32/discid.dll $(win32)/
	cp -ar mediatools $(win32)/
	cp -a mediatools.exe $(win32)/
	zip -qr $@ $(win32)
	rm -rf $(libdiscid)-win32
	rm -rf $(win32)

mac: $(mac).zip
$(mac).zip: $(source_ref) $(base_libs) $(libdiscid)-mac.zip
	$(call cp_source, $(mac))
	$(call cp_base_libs, $(mac))
	unzip $(libdiscid)-mac.zip
	cp -a $(libdiscid)-mac/universal/libdiscid.0.dylib $(mac)/
	zip -qr $@ $(mac)
	rm -rf $(libdiscid)-mac
	rm -rf $(mac)

# sources:
#
$(source_dir):
	git clone -b $(source_branch) $(source_repo) $@

$(source_ref): $(source_dir)
	cd $^ && git pull
	$(source_checkout)


# libraries:
#
$(musicbrainzngs): $(musicbrainzngs).tar.gz
	tar -xzf $^
$(musicbrainzngs).tar.gz:
	wget http://pypi.python.org/packages/source/m/musicbrainzngs/$@

$(discid): $(discid).tar.gz
	tar -xzf $^
$(discid).tar.gz:
	wget http://pypi.python.org/packages/source/d/discid/$@

libdiscid: $(libdiscid)
$(libdiscid): $(libdiscid).tar.gz
	tar -xzf $^

$(libdiscid).tar.gz:
	wget http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/$@

$(libdiscid)-%.zip:
	wget http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/$@

mediatools: mediatools.zip
	unzip -o $^

mediatools.zip:
	wget http://www.flanagan-family.com/$@


clean:
	rm -rf $(source_dir)
	rm -f $(all)
	rm -rf $(base_libs)
	rm -rf mediatools mediatools.exe

.PHONY: $(source_ref)