1#
2# Makefile for dosfstools (mkdosfs and dosfsck)
3#
4
5CPP = $(CC) -E
6OPTFLAGS = -O2 -fomit-frame-pointer
7WARNFLAGS = -Wall
8DEBUGFLAGS = 
9CFLAGS = $(OPTFLAGS) $(WARNFLAGS) $(DEBUGFLAGS)
10LDFLAGS =
11
12PREFIX = $(INSTALLDIR)
13SBINDIR = $(PREFIX)/sbin
14MANDIR = $(PREFIX)/usr/man/man8
15
16.PHONY: clean distclean install depend
17.EXPORT_ALL_VARIABLES:
18
19all dep clean install:
20#	$(MAKE) -C mkdosfs $@
21	$(MAKE) -C dosfsck $@
22
23distclean:
24#	$(MAKE) -C mkdosfs $@
25	$(MAKE) -C dosfsck $@
26	rm -f TAGS .#* .new* \#*# *~
27
28TAGS:
29	etags -d -T `find . -name '*.[ch]'`
30
31dist: binary tar
32
33tar: distclean
34	cd ..; \
35	name="$(notdir $(shell pwd))"; \
36	namev="$$name-$(shell perl -ne 'print "$$1\n" if /VERSION.*"(\S+)"/;' version.h)"; \
37	mv $$name $$namev; \
38	tar cf $$namev.src.tar `find $$namev \( -name CVS -o -path $$namev/debian \) -prune -o ! -type d -print`; \
39	gzip -9f $$namev.src.tar; \
40	mv $$namev $$name
41
42binary: all
43	doit=""; [ root = "`whoami`" ] || doit=sudo; $$doit $(MAKE) binary-sub
44	cd tmp; \
45	name="$(notdir $(shell pwd))"; \
46	namev="$$name-$(shell perl -ne 'print "$$1\n" if /VERSION.*"(\S+)"/;' version.h)"; \
47	arch=`uname -m | sed 's/i.86/i386/'`; \
48	nameva=$$namev.$$arch.tar; \
49	tar cf ../../$$nameva * ; \
50	gzip -9f ../../$$nameva
51	doit=""; [ root = "`whoami`" ] || doit=sudo; $$doit rm -rf tmp
52
53binary-sub:
54	@[ root = "`whoami`" ] || (echo "Must be root for this!"; exit 1)
55	mkdir -p tmp/$(SBINDIR) tmp/$(MANDIR)
56	$(MAKE) install PREFIX=$(shell pwd)/tmp
57
58# usage: make diff OLDVER=<last-release-number>
59diff:
60	@if [ "x$(OLDVER)" = "x" ]; then \
61		echo "Usage: make diff OLDVER=<last-release-number>"; \
62		exit 1; \
63	fi; \
64	name="$(notdir $(shell pwd))"; \
65	namev="$$name-$(shell perl -ne 'print "$$1\n" if /VERSION.*"(\S+)"/;' version.h)"; \
66	cvs diff -u -rRELEASE-$(OLDVER) >../$$namev.diff; \
67	gzip -9f ../$$namev.diff
68
69
70# usage: make release VER=<release-number>
71release:
72	@if [ "x$(VER)" = "x" ]; then \
73		echo "Usage: make release VER=<release-number>"; \
74		exit 1; \
75	fi
76	if [ -d CVS ]; then \
77		modified=`cvs status 2>/dev/null | awk '/Status:/ { if ($$4 != "Up-to-date") print $$2 }'`; \
78		if [ "x$$modified" != "x" ]; then \
79			echo "There are modified files: $$modified"; \
80			echo "Commit first"; \
81			exit 1; \
82		fi; \
83	fi
84	sed "/VERSION/s/\".*\"/\"$(VER)\"/" <version.h >version.h.tmp
85	date="`date +'%d %b %Y'`"; sed "/VERSION_DATE/s/\".*\"/\"$$date\"/" <version.h.tmp >version.h
86	rm version.h.tmp
87	if [ -d CVS ]; then \
88		cvs commit -m"Raised version to $(VER)" version.h; \
89		cvs tag RELEASE-`echo $(VER) | sed 's/\./-/g'`; \
90	fi
91
92