1## A very generic makefile for recursing in sub-directories that respect the usual release control rules 2 3NAME = SMM.doc 4 5SUBDIRS = timed timed 6 7SOURCES = Makefile 8 9FASTCP = /bin/cp 10RM = /bin/rm 11MKDIRS = /bin/mkdir -p 12CHOWN = /usr/sbin/chown 13ECHO = echo 14 15all:: 16 @$(MAKE) build \ 17 "TARGET = all" \ 18 "OBJROOT = ./Objects" \ 19 "SYMROOT = ./Symbols" \ 20 "RC_CFLAGS = $(RC_CFLAGS)" \ 21 "RC_ARCHS = $(RC_ARCHS)" 22 23build:: $(OBJROOT) $(SYMROOT) recurse 24 25recurse:: 26 @echo '====' make $(TARGET) for: $(SUBDIRS) '====' 27 @HERE=`pwd`; \ 28 cd ${OBJROOT}; \ 29 ABSOROOT=`pwd`; \ 30 cd $$HERE; \ 31 cd ${SYMROOT}; \ 32 ABSSROOT=`pwd`; \ 33 cd $$HERE; \ 34 for i in ${SUBDIRS}; \ 35 do \ 36 echo == make $(TARGET) for $$i ==; \ 37 (cd $$i; ${MAKE} $(TARGET) \ 38 OBJROOT="$$ABSOROOT/$$i" \ 39 SYMROOT="$$ABSSROOT/$$i" \ 40 DSTROOT="$(DSTROOT)" \ 41 SRCROOT="$(SRCROOT)/$$i" \ 42 RC_CFLAGS="$(RC_CFLAGS)" \ 43 RC_ARCHS="$(RC_ARCHS)" \ 44 || exit 1); \ 45 done 46 @echo '====' make $(TARGET) for $(SUBDIRS) done '====' 47 48installhdrs:: 49 50install:: $(DSTROOT) 51 @$(MAKE) build \ 52 "TARGET = install" \ 53 "DSTROOT = $(DSTROOT)" \ 54 "OBJROOT = $(OBJROOT)" \ 55 "SYMROOT = $(SYMROOT)" \ 56 "RC_CFLAGS = $(RC_CFLAGS)" \ 57 "RC_ARCHS = $(RC_ARCHS)" 58 59installsrc:: 60 $(MKDIRS) $(SRCROOT) 61 @$(FASTCP) $(SOURCES) $(SRCROOT) 62 @$(MAKE) recurse "TARGET = $@" 63 64clean: 65 @$(RM) -rf Objects Symbols *_obj sym 66 @$(MAKE) recurse "TARGET = $@" 67 68copy:: DEST 69 @$(MAKE) installsrc "SRCROOT = $(DEST)" 70 71$(DSTROOT): 72 $(MKDIRS) -m 755 $@ 73 $(CHOWN) root:wheel $@ 74 75$(SYMROOT): 76 @$(MKDIRS) $(SYMROOT) 77 78$(OBJROOT): 79 @$(MKDIRS) $(OBJROOT) 80 81SRCROOT DEST: 82 @if [ -n "${$@}" ]; then exit 0; \ 83 else $(ECHO) Must define $@; exit 1; fi 84 85BACKUPROOT = $(PROJECT_BACKUP_DIR)/$(NAME)_proj/$(USER)/Archives 86 87backup:: 88 $(MAKE) installsrc SRCROOT=`backupname $(BACKUPROOT)/$(NAME)` 89 90help:: 91 @$(ECHO) 'Makefile targets are:' 92 @$(ECHO) 'install: makes install (fat)' 93 @$(ECHO) 'copy: copies the sources to DEST' 94 @$(ECHO) 'installsrc: copies the sources to SRCROOT' 95 96