Update release procedure to use "git" instead of CVS
[profile/ivi/syslinux.git] / Makefile.private
1 ## -*- makefile -*- ------------------------------------------------------
2 ##   
3 ##   Copyright 2000-2005 H. Peter Anvin - All Rights Reserved
4 ##
5 ##   This program is free software; you can redistribute it and/or modify
6 ##   it under the terms of the GNU General Public License as published by
7 ##   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
8 ##   Boston MA 02111-1307, USA; either version 2 of the License, or
9 ##   (at your option) any later version; incorporated herein by reference.
10 ##
11 ## -----------------------------------------------------------------------
12 # $Id$
13
14 #
15 # This should only be used by the maintainer to generate official binaries
16 # for release.  Please do not "make official" and distribute the binaries,
17 # please.
18 #
19 .PHONY: official release
20
21 CVS     = cvs -d hpa@terminus.zytor.com:/home/hpa/cvsroot
22
23 PRIVATE = Makefile.private .depend */.depend
24
25 GIT_DIR ?= .git
26 ABS_GIT_DIR := $(shell cd '$(GIT_DIR)' && pwd)
27
28 isolinux.iso: all
29         cp isolinux-debug.bin isolinux-test/isolinux/isolinux.bin
30         mkisofs -v -r -J \
31                 -b isolinux/isolinux.bin -c isolinux/boot.cat \
32                 -no-emul-boot -boot-load-size 4 -boot-info-table \
33                 -o isolinux.iso isolinux-test
34
35 burn: isolinux.iso
36         cdrecord -v blank=fast isolinux.iso
37
38 official:
39         $(MAKE) spotless
40         $(MAKE) all DATE=`date +'%Y-%m-%d'`
41         $(MAKE) dist
42
43 release:
44         test -d release
45         rm -f $(GIT_DIR)/refs/tags/syslinux-$(VERSION)
46         cg-tag syslinux-$(VERSION)
47         -rm -rf release/syslinux-$(VERSION)
48         -rm -f release/syslinux-$(VERSION).*
49         mkdir -p release/syslinux-$(VERSION)
50         cd release && env GIT_DIR='$(ABS_GIT_DIR)' cg-export -r syslinux-$(VERSION) syslinux-$(VERSION)
51         find release/syslinux-$(VERSION) \
52                 \( -name '*~' -or -name '#*' \) -type f -print0 | \
53                 xargs -0rt rm -f
54         find release/syslinux-$(VERSION) -name CVS -type d -print0 | \
55                 xargs -0rt rm -rf
56         sed -e 's/@@VERSION@@/$(VERSION)/g' -e 's/@@RPMVERSION@@/$(VERSION)/g' \
57                 < release/syslinux-$(VERSION)/syslinux.spec.in \
58                 > release/syslinux-$(VERSION)/syslinux.spec
59         rm -f release/syslinux-$(VERSION)/syslinux.spec.in
60         $(MAKE) -C release/syslinux-$(VERSION) spotless
61         $(MAKE) -C release/syslinux-$(VERSION) depend
62         $(MAKE) -C release/syslinux-$(VERSION) official
63         cd release/syslinux-$(VERSION) && rm -rf $(PRIVATE)
64         cd release && tar cvvf - syslinux-$(VERSION) | \
65                 gzip -9 > syslinux-$(VERSION).tar.gz
66         cd release/syslinux-$(VERSION) && \
67                 zip -9r ../syslinux-$(VERSION).zip *
68
69
70 PRERELDIR := release/syslinux-$(VERSION)-pre
71 PRERELNO  := $(shell cat $(PRERELDIR)/.prerel 2>/dev/null || echo 1)
72 PREREL    := syslinux-$(VERSION)-pre$(PRERELNO)
73 RPMPREREL := $(shell $(PERL) -e 'printf "%.2f.%d\n", $(VERSION)-0.01, $(PRERELNO);')
74
75 prerel:
76         test -d release
77         rm -f $(GIT_DIR)/refs/tags/syslinux-$(VERSION)
78         cg-tag syslinux-$(VERSION)
79         $(CVS) tag -F `echo $(PREREL) | sed -e 's/\./_/g'`
80         mkdir -p $(PRERELDIR) $(PRERELDIR)/uu
81         -rm -rf $(PRERELDIR)/$(PREREL)
82         -rm -f $(PRERELDIR)/$(PREREL).*
83         mkdir -p $(PRERELDIR)/$(PREREL)
84         cd $(PRERELDIR) && env GIT_DIR='$(ABS_GIT_DIR)' cg-export -r $(PREREL) $(PREREL)
85         find $(PRERELDIR)/$(PREREL) \
86                 \( -name '*~' -or -name '#*' \) -type f -print0 | \
87                 xargs -0rt rm -f
88         find $(PRERELDIR)/$(PREREL) -name CVS -type d -print0 | \
89                 xargs -0rt rm -rf
90         sed -e 's/@@VERSION@@/$(VERSION)-pre$(PRERELNO)/g' \
91             -e 's/@@RPMVERSION@@/$(RPMPREREL)/g' \
92                 < $(PRERELDIR)/$(PREREL)/syslinux.spec.in \
93                 > $(PRERELDIR)/$(PREREL)/syslinux.spec
94         rm -f $(PRERELDIR)/$(PREREL)/syslinux.spec.in
95         $(MAKE) -C $(PRERELDIR)/$(PREREL) spotless
96         $(MAKE) -C $(PRERELDIR)/$(PREREL) depend
97         $(MAKE) -C $(PRERELDIR)/$(PREREL) all DATE=`printf '%s-pre%d          ' $(VERSION) $(PRERELNO) | dd bs=10 count=1 2>/dev/null`
98         $(MAKE) -C $(PRERELDIR)/$(PREREL) dist
99         cd $(PRERELDIR)/$(PREREL) && rm -rf $(PRIVATE)
100         cd $(PRERELDIR) && tar cvvf - $(PREREL) | \
101                 gzip -9 > $(PREREL).tar.gz 
102         cd $(PRERELDIR) && \
103                 uuencode $(PREREL).tar.gz $(PREREL).tar.gz > uu/$(PREREL).uu
104         cd $(PRERELDIR)/$(PREREL) && \
105                 zip -9r ../$(PREREL).zip *
106         expr $(PRERELNO) + 1 > $(PRERELDIR)/.prerel
107
108 unprerel:
109         expr $(PRERELNO) - 1 > $(PRERELDIR)/.prerel
110         @echo Next release will be syslinux-$(VERSION)-pre`cat $(PRERELDIR)/.prerel`