aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 45ac4160406ab048890a90573bf5f6480b899636 (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
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
PARROT_VER = 4.5.0
PARROT_REL = devel/$(PARROT_VER)
NQP_VER    = 2012.06.1
RAKUDO_VER = 2012.06

DISTDIR = rakudo-star-$(VERSION)
BUILD_DIR   = $(DISTDIR)/build

PARROT      = parrot-$(PARROT_VER)
PARROT_TGZ  = $(PARROT).tar.gz
PARROT_DIR  = $(DISTDIR)/$(PARROT)

NQP         = nqp-$(NQP_VER)
NQP_TGZ     = $(NQP).tar.gz
NQP_DIR     = $(DISTDIR)/$(NQP)

RAKUDO      = rakudo-$(RAKUDO_VER)
RAKUDO_TGZ  = $(RAKUDO).tar.gz
RAKUDO_DIR  = $(DISTDIR)/$(RAKUDO)


## If you add a module here, don't forget to update MODULES
## in skel/tools/build/Makefile.in to actually install it
MODULES_DIR = $(DISTDIR)/modules
MODULES = \
  git://github.com/masak/ufo \
  git://github.com/jnthn/zavolaj \
  git://github.com/masak/xml-writer \
  git://github.com/moritz/svg \
  git://github.com/moritz/Math-RungeKutta \
  git://github.com/moritz/svg-plot \
  git://github.com/moritz/Math-Model \
  git://github.com/tadzik/perl6-Term-ANSIColor \
  git://github.com/jnthn/test-mock \
  git://github.com/perlpilot/Grammar-Profiler-Simple \
  git://github.com/jnthn/grammar-debugger \
  git://github.com/moritz/json \
  git://github.com/snarkyboojum/Perl6-MIME-Base64 \
  git://github.com/cosimo/perl6-digest-md5 \
  git://github.com/tadzik/perl6-File-Tools \
  git://github.com/tadzik/panda \
  git://github.com/supernovus/perl6-http-status \
  git://github.com/moritz/perl6-http-easy \
  git://github.com/tadzik/Bailador \
  git://github.com/perl6/DBIish \
  git://github.com/ihrd/uri \
  git://github.com/cosimo/perl6-lwp-simple \
  git://github.com/bbkr/jsonrpc \
  git://github.com/perl6/Pod-To-HTML \
  git://github.com/perl6/doc \

DISTTARGETS = \
  $(PARROT_DIR) \
  $(NQP_DIR) \
  $(RAKUDO_DIR) \
  $(MODULES_DIR) \
  star-patches \
  $(DISTDIR)/MANIFEST \

dist: version_check $(DISTDIR) $(DISTTARGETS)

version_check:
	@[ -n "$(VERSION)" ] || ( echo "\nTry 'make VERSION=yyyy.mm'\n\n"; exit 1)

always:

$(DISTDIR): always
	mkdir -p $(DISTDIR)
	cp -av skel/. $(DISTDIR)
	perl build/skel-template.pl $(DISTDIR)

$(PARROT_DIR): $(PARROT_TGZ)
	tar -C $(DISTDIR) -xvzf $(PARROT_TGZ)

$(PARROT_TGZ):
	wget http://ftp.parrot.org/releases/$(PARROT_REL)/$(PARROT_TGZ)

$(NQP_DIR): $(NQP_TGZ)
	tar -C $(DISTDIR) -xvzf $(NQP_TGZ)

$(NQP_TGZ):
	wget --no-check-certificate https://github.com/downloads/perl6/nqp/$(NQP_TGZ)

$(RAKUDO_DIR): $(RAKUDO_TGZ)
	tar -C $(DISTDIR) -xvzf $(RAKUDO_TGZ)
	
$(RAKUDO_TGZ):
	wget --no-check-certificate https://github.com/downloads/rakudo/rakudo/$(RAKUDO_TGZ)

$(MODULES_DIR): always
	mkdir -p $(MODULES_DIR)
	cd $(MODULES_DIR); for repo in $(MODULES); do git clone $$repo.git; done
	# use versions before the &dir API change
	cd $(MODULES_DIR)/ufo; git checkout e889d21c3bbee0f49b3a6d8ef6a6593c6be24ac9
	cd $(MODULES_DIR)/perl6-File-Tools; git checkout 4573308b3572ad3abe47b5a685697c6e31d30a78
	cd $(MODULES_DIR)/panda; git checkout 30a73cae58bca562019250cbff76ff950c640a2c
	# cd $(MODULES_DIR)/yaml-pm6; git checkout rakudo-star-1

star-patches:
	[ ! -f build/$(VERSION)-patch.pl ] || DISTDIR=$(DISTDIR) perl build/$(VERSION)-patch.pl

$(DISTDIR)/MANIFEST:
	touch $(DISTDIR)/MANIFEST
	find $(DISTDIR) -name '.*' -prune -o -type f -print | sed -e 's|^[^/]*/||' >$(DISTDIR)/MANIFEST
	## add the two dot-files from Parrot MANIFEST
	echo "$(PARROT)/.gitignore" >>$(DISTDIR)/MANIFEST
	echo "$(PARROT)/tools/dev/.gdbinit" >>$(DISTDIR)/MANIFEST

release: dist tarball

tarball:
	perl -ne 'print "$(DISTDIR)/$$_"' $(DISTDIR)/MANIFEST |\
	    tar -zcv -T - -f $(DISTDIR).tar.gz