Makefile 2.5 KB

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