![]() ![]() |
![]() |
1 arta 1.1 # This is used to jump from a source directory to a target directory. 2 3 .SUFFIXES: 4 5 6 # Find the target directory(ies). 7 # 8 ifndef JSOC_MACHINE 9 JSOC_MACHINE := $(shell build/jsoc_machine.csh) 10 export JSOC_MACHINE 11 endif 12 13 OBJDIR := _$(JSOC_MACHINE) 14 PROJOBJDIR := $(OBJDIR)/src/proj 15 16 all: $(PROJOBJDIR) $(OBJDIR) 17 18 # Define the rules to build in the target subdirectories. 19 # 20 MAKETARGET = $(MAKE) --no-print-directory -C $@ -f $(CURDIR)/Makefile \ 21 SRCDIR=$(CURDIR) $(MAKECMDGOALS) 22 arta 1.1 23 .PHONY: $(PROJOBJDIR) $(OBJDIR) 24 25 # Create the project-specific directories too, if they exist. 26 -include $(CURDIR)/src/proj/target.mk 27 28 $(OBJDIR): 29 +@[ -d bin/$(JSOC_MACHINE) ] || mkdir -p bin/$(JSOC_MACHINE) 30 +@[ -d lib/$(JSOC_MACHINE) ] || mkdir -p lib/$(JSOC_MACHINE) 31 +@[ -d $@ ] || mkdir -p $@ 32 +@[ -d $@/src/base/drms/apps ] || mkdir -p $@/src/base/drms/apps 33 +@[ -d $@/src/base/drms/libs/api/client ] || mkdir -p $@/src/base/drms/libs/api/client 34 +@[ -d $@/src/base/drms/libs/api/client_fpic ] || mkdir -p $@/src/base/drms/libs/api/client_fpic 35 +@[ -d $@/src/base/drms/libs/api/server ] || mkdir -p $@/src/base/drms/libs/api/server 36 +@[ -d $@/src/base/drms/libs/main/c ] || mkdir -p $@/src/base/drms/libs/main/c 37 +@[ -d $@/src/base/drms/libs/main/f ] || mkdir -p $@/src/base/drms/libs/main/f 38 +@[ -d $@/src/base/drms/libs/main/idl ] || mkdir -p $@/src/base/drms/libs/main/idl 39 40 +@[ -d $@/src/base/libs/cmdparams/fpic ] || mkdir -p $@/src/base/libs/cmdparams/fpic 41 +@[ -d $@/src/base/libs/db/client ] || mkdir -p $@/src/base/libs/db/client 42 +@[ -d $@/src/base/libs/db/client_fpic ] || mkdir -p $@/src/base/libs/db/client_fpic 43 arta 1.1 +@[ -d $@/src/base/libs/db/server ] || mkdir -p $@/src/base/libs/db/server 44 +@[ -d $@/src/base/libs/dstruct/fpic ] || mkdir -p $@/src/base/libs/dstruct/fpic 45 +@[ -d $@/src/base/libs/ricecomp/fpic ] || mkdir -p $@/src/base/libs/ricecomp/fpic 46 +@[ -d $@/src/base/libs/inthandles ] || mkdir -p $@/src/base/libs/inthandles 47 +@[ -d $@/src/base/libs/threads/fpic ] || mkdir -p $@/src/base/libs/threads/fpic 48 +@[ -d $@/src/base/libs/timeio/fpic ] || mkdir -p $@/src/base/libs/timeio/fpic 49 +@[ -d $@/src/base/libs/misc/fpic ] || mkdir -p $@/src/base/libs/misc/fpic 50 +@[ -d $@/src/base/local/libs/dsds ] || mkdir -p $@/src/base/local/libs/dsds 51 +@[ -d $@/src/base/local/libs/soi ] || mkdir -p $@/src/base/local/libs/soi 52 +@[ -d $@/src/base/sums/apps ] || mkdir -p $@/src/base/sums/apps 53 +@[ -d $@/src/base/sums/libs/api ] || mkdir -p $@/src/base/sums/libs/api 54 +@[ -d $@/src/base/sums/libs/pg ] || mkdir -p $@/src/base/sums/libs/pg 55 +@[ -d $@/src/base/util/apps ] || mkdir -p $@/src/base/util/apps | ||
56 arta 1.2 +@[ -d $@/src/proj/example/apps ] || mkdir -p $@/src/proj/example/apps | ||
57 arta 1.1 +@$(MAKETARGET) 58 59 # These rules keep make from trying to use the match-anything rule below to 60 # rebuild the makefiles--ouch! Obviously, if you don't follow my convention 61 # of using a `.mk' suffix on all non-standard makefiles you'll need to change 62 # the pattern rule. 63 # 64 Makefile : ; 65 %.mk :: ; 66 67 68 # Anything we don't know how to build will use this rule. The command is a 69 # do-nothing command, but the prerequisites ensure that the appropriate 70 # recursive invocations of make will occur. 71 # 72 % :: $(PROJOBJDIR) $(OBJDIR) ; : 73 74 75 # The clean rule is best handled from the source directory: since we're 76 # rigorous about keeping the target directories containing only target files 77 # and the source directory containing only source files, `clean' is as trivial 78 arta 1.1 # as removing the target directories! 79 # 80 .PHONY: clean 81 clean: 82 rm -rf $(OBJDIR); rm -rf bin/$(JSOC_MACHINE); rm -rf lib/$(JSOC_MACHINE) 83 |
Karen Tian |
Powered by ViewCVS 0.9.4 |