summaryrefslogtreecommitdiff
path: root/Makefile
blob: 7b30d5d99b203b9b65ef5581f6b0a66ad05dac82 (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
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
143
144
# Created by Fabien Tassin <fta@sofaraway.org> in Sept 2007

MOZ_CLIENT = mozilla/client.mk
CVS_LOC    = :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot

STAMP ?= stamped

ifdef DEBIAN_DATE
DEBIAN_CO_DATE   = $(shell echo "-D \"$(DEBIAN_DATE)\"" | sed -e 's/[rt]/ /')
endif

############################################################################
DEBIAN_FF3_TARGET   := firefox-orig
DEBIAN_FF3_APPNAME  := firefox-trunk
DEBIAN_FF3_FILE     := mozilla/browser/config/version.txt
DEBIAN_FF3_URL      := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyBrowser&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_XUL_TARGET   := xulrunner-orig
DEBIAN_XUL_APPNAME  := xulrunner-1.9
DEBIAN_XUL_FILE     := mozilla/config/milestone.txt
DEBIAN_XUL_URL      := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyBrowser&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_NSS_TARGET   := nss-orig
DEBIAN_NSS_APPNAME  := nss-trunk
DEBIAN_NSS_FILE     := mozilla/security/nss/lib/nss/nss.h
DEBIAN_NSS_URL      := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=NSS&module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fdbm+mozilla%2Fsecurity%2Fnss+mozilla%2Fsecurity%2Fcoreconf+mozilla%2Fsecurity%2Fdbm&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=month&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_NSPR_TARGET  := nspr-orig
DEBIAN_NSPR_APPNAME := nspr-trunk
DEBIAN_NSPR_FILE    := mozilla/nsprpub/configure.in
DEBIAN_NSPR_URL     := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fnsprpub&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=1177522884&maxdate=1588258884&cvsroot=%2Fcvsroot'

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

EXCLUDE := --exclude=CVS --exclude=.cvsignore
GET     := wget -O - -q --read-timeout=10 --user-agent='' --tries=3 $$URL 2> /dev/null | grep "href='http://webtools" | head -1 | tr '<>' '@' | cut -d@ -f5 | tr -d ':-' | sed -e 's/&nbsp;/t/'

help:
	@echo "Usage:"
	@echo "   make client                Fetch and patch mozilla client"
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_FF3_TARGET) $(DEBIAN_FF3_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_XUL_TARGET) $(DEBIAN_XUL_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_NSS_TARGET) $(DEBIAN_NSS_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_NSPR_TARGET) $(DEBIAN_NSPR_APPNAME)
	@echo
	@echo "  you can also recreate a tarball from a specific timestamp by specifying"
	@echo "  DEBIAN_DATE in the form YYYYMMDDtHHMM"
	@echo
	@echo "  Ex: make DEBIAN_DATE=20070911t1711 nspr-orig"

deps:
	@if [ ! -f /usr/bin/cvs ]   ; then echo "**ERROR** Depends on missing cvs. Abort"; exit 1; fi
	@if [ ! -f /usr/bin/quilt ] ; then echo "**ERROR** Depends on missing quilt. Abort"; exit 1; fi
	@if [ ! -f /usr/bin/wget ]  ; then echo "**ERROR** Depends on missing wget. Abort"; exit 1; fi

$(MOZ_CLIENT): deps
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $@
	rm -rf .pc $(STAMP)

$(DEBIAN_FF3_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $@
$(DEBIAN_XUL_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $@
$(DEBIAN_NSS_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $@
$(DEBIAN_NSPR_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $@

client: $(STAMP)

$(STAMP): $(MOZ_CLIENT)
	@echo Patching
	quilt --quiltrc /dev/null push -a || test $$? = 2
	touch $(STAMP)

unpatch:
	@echo Unpatching
	-quilt --quiltrc /dev/null pop -a -R || test $$? = 2
	rm -rf .pc $(STAMP)

clean: unpatch
	rm -rf cvsco.log* $(MOZ_CLIENT) mozilla

all: $(DEBIAN_FF3_TARGET) $(DEBIAN_XUL_TARGET) $(DEBIAN_NSS_TARGET)

$(DEBIAN_FF3_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_FF3_FILE)
	URL=$(DEBIAN_FF3_URL) ; \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_FF3_DATE=$(DEBIAN_DATE) ; else DEBIAN_FF3_DATE=`$(GET)` ; fi ; \
	DEBIAN_FF3_CO_DATE="`echo $$DEBIAN_FF3_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_FF3_VERSION="`cat $(DEBIAN_FF3_FILE) | sed -e 's/a\([0-9]*\)pre/~a\1/'`~cvs$$DEBIAN_FF3_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=xulbrowser MOZ_CO_DATE="$$DEBIAN_FF3_CO_DATE" &&  \
	rm -rf $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz && \
	mkdir $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION && \
	echo "Creating $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION/browser-snapshot-$$DEBIAN_FF3_DATE.tar.bz2 ..." && \
	tar jcf $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION/browser-snapshot-$$DEBIAN_FF3_DATE.tar.bz2 $(EXCLUDE) mozilla && \
	rm -f $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION && \
	rm -rf mozilla cvsco.log* $(STAMP) .pc $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION ; \
	ls -l $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz

$(DEBIAN_XUL_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_XUL_FILE)
	URL=$(DEBIAN_XUL_URL) ; \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_XUL_DATE=$(DEBIAN_DATE) ; else DEBIAN_XUL_DATE=`$(GET)` ; fi ; \
	DEBIAN_XUL_CO_DATE="`echo $$DEBIAN_XUL_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_XUL_VERSION="`tail -1 $(DEBIAN_XUL_FILE) | sed -e 's/\(a[0-9]*\)pre/~\1/'`~cvs$$DEBIAN_XUL_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=xulrunner MOZ_CO_DATE="$$DEBIAN_XUL_CO_DATE" && \
	mkdir $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION && \
	mv mozilla $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION && \
	rm -f $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION ; \
	ls -l $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz

$(DEBIAN_NSS_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_NSS_FILE)
	URL=$(DEBIAN_NSS_URL) ; \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_NSS_DATE=$(DEBIAN_DATE) ; else DEBIAN_NSS_DATE=`$(GET)` ; fi ; \
	DEBIAN_NSS_CO_DATE="`echo $$DEBIAN_NSS_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_NSS_VERSION="`grep -E '^\#define NSS_V(MAJOR|MINOR|PATCH)' $(DEBIAN_NSS_FILE) | awk '{print $$3}' | tr '\n' '.' | sed -e 's,\.$$,,'`'~cvs$$DEBIAN_NSS_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=nss MOZ_CO_DATE="$$DEBIAN_NSS_CO_DATE" && \
	mkdir $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION && \
	mv mozilla $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION && \
	rm -f $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION ; \
	ls -l $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz

$(DEBIAN_NSPR_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_NSPR_FILE)
	URL=$(DEBIAN_NSPR_URL) ; \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_NSPR_DATE=$(DEBIAN_DATE) ; else DEBIAN_NSPR_DATE=`$(GET)` ; fi ; \
	DEBIAN_NSPR_CO_DATE="`echo $$DEBIAN_NSPR_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_NSPR_VERSION="`grep -E '^MOD_(MAJOR|MINOR|PATCH)_VERSION' $(DEBIAN_NSPR_FILE) | cut -d= -f2 | tr '\n' '.' | sed -e 's,\.$$,,'`~cvs$$DEBIAN_NSPR_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=nspr MOZ_CO_DATE="$$DEBIAN_NSPR_CO_DATE" && \
	mkdir $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION && \
	mv mozilla $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION && \
	rm -f $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION ; \
	ls -l $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz

.PHONY : all clean help deps client unpatch