summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: c232922d20afa721562fb9fe8334fca8b1cf09da (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
PL=rebootin
SH_FILES=detectloader installkernel installkernel.sysconfig kernel_remove_initrd
SH=$(SH_FILES) kheader
MAN=rebootin.8 detectloader.8
FROMPERLFILES=kheader
ARCH=$(shell uname -m)

UTILS = bootloader-utils.spec Makefile
FILES = $(PL) $(SH_FILES) $(MAN) $(UTILS) $(FROMPERLFILES:%=%.pl)

PACKAGE=bootloader-utils
VERSION=1.16
TAG = $(VERSION)

SVN_URL := $(shell svn info | sed -n '/^URL[^:]*:  *\(.*\)/s//\1/p')
SVNROOT := $(shell dirname $(SVN_URL))
SVNCOPY = $(SVN_URL)

all: $(FROMPERLFILES) check

check:
	@for i in $(SH);do /bin/bash -n $$i || exit 1;echo $$i syntax OK;done
	@for i in $(PL);do perl -c $$i ||exit 1;done

install: check
	install -d $(ROOT)/usr/share/man/man8/
	install -d $(ROOT)/{,usr}/sbin
	install -d $(ROOT)/etc/sysconfig
	install -d $(ROOT)/etc/rc.d/init.d
	install -m644 $(MAN) $(ROOT)/usr/share/man/man8/
	install -m755 installkernel $(ROOT)/sbin/
	install -m755 kernel_remove_initrd $(ROOT)/sbin/
	install -m644 installkernel.sysconfig $(ROOT)/etc/sysconfig/installkernel
	install -m755 rebootin detectloader $(ROOT)/usr/sbin/
	install -m755 kheader $(ROOT)/etc/rc.d/init.d/kheader

$(FROMPERLFILES) : %: %.pl
	rm -f $@
	perl $< > $@
	chmod a-w $@

clean:
	rm -f *~ $(FROMPERLFILES) $(PACKAGE)-*.tar.bz2

# rules to build a test dist

localdist: cleandist dir localcopy tar

cleandist:
	rm -rf $(PACKAGE)-$(VERSION) $(PACKAGE)-$(VERSION).tar.bz2

dir:
	mkdir $(PACKAGE)-$(VERSION)

localcopy:
	tar c $(FILES) | tar x -C $(PACKAGE)-$(VERSION)


# rules to build a distributable dist

dist: cleandist 
	@if [ -e ".svn" ]; then \
		$(MAKE) dist-svn; \
	elif [ -e ".git" ]; then \
		$(MAKE) dist-git; \
	else \
		echo "Unknown SCM (not SVN nor GIT)";\
		exit 1; \
	fi;
	$(info $(PACKAGE)-$(VERSION).tar.xz is ready)

dist-git:
	 @git archive --prefix=$(PACKAGE)-$(VERSION)/ HEAD | xz  >../$(PACKAGE)-$(VERSION).tar.xz;

dist-svn:
	svn export $(SVNROOT)/releases/$(TAG) $(PACKAGE)-$(VERSION)
	tar cvfa $(PACKAGE)-$(VERSION).tar.xz $(PACKAGE)-$(VERSION)
	rm -rf $(PACKAGE)-$(VERSION)

svntag:
	-svn mkdir $(SVN_BASE)/releases/$(TAG) -m "created directory $(TAG)"
	svn copy $(SVNCOPY) $(SVNROOT)/releases/$(TAG) -m "Tagged as $(TAG)"

localchangelog:
#svn2cl is available in our contrib.
	svn cat `dirname $(SVNROOT)`/common/username.xml > $$TMPDIR/username.xml; \
	svn2cl --authors $$TMPDIR/username.xml --accum; \
	rm -f ChangeLog.bak $$TMPDIR/username.xml

changelog: localchangelog
	svn commit -m "Generated by svn2cl the `date '+%d_%b'`" ChangeLog

# Makefile ends here