(file) Return to target.mk CVS log (file) (dir) Up to [Development] / JSOC

  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 arta  1.13 ifeq ($(MACH),)
 14            MACH = $(JSOC_MACHINE)
 15            endif
 16            
 17            OBJDIR 		:= _$(MACH)
 18 arta  1.5  PROJOBJDIR	:= $(OBJDIR)/proj
 19 arta  1.1  
 20            all:    $(PROJOBJDIR) $(OBJDIR)
 21            
 22            # Define the rules to build in the target subdirectories.
 23            #
 24 arta  1.17 MAKETARGET = $(MAKE) --no-print-directory -C $@ -f $(WORKINGDIR)/Makefile \
 25 jsoc  1.11 		SRCDIR=$(WORKINGDIR) $(MAKECMDGOALS)
 26 arta  1.1  
 27 arta  1.34 .PHONY: $(PROJOBJDIR) $(OBJDIR)
 28            
 29            $(PROJOBJDIR)::
 30            	+@[ -d $@ ] || mkdir -p $@
 31 arta  1.1  
 32            # Create the project-specific directories too, if they exist.
 33 arta  1.34 # This supplementary target.mk file is built by the configure script, using either
 34 arta  1.27 # configsdp.txt (for a JSOC-SDP checkout) or a custom configuration file as input.
 35 arta  1.34 PATH_FILES := $(shell find $(WORKINGDIR)/proj -name paths.mk -printf "%p ")
 36            -include $(PATH_FILES)
 37 arta  1.1  
 38            $(OBJDIR):
 39 arta  1.13 	+@[ -d bin/$(MACH) ] || mkdir -p bin/$(MACH)
 40            	+@[ -d lib/$(MACH) ] || mkdir -p lib/$(MACH)
 41 arta  1.1  	+@[ -d $@ ] || mkdir -p $@
 42 arta  1.5  	+@[ -d $@/base/drms/apps ] || mkdir -p $@/base/drms/apps
 43 arta  1.32 	+@[ -d $@/base/drms/apps/test ] || mkdir -p $@/base/drms/apps/test
 44 arta  1.5  	+@[ -d $@/base/drms/libs/api/client ] || mkdir -p $@/base/drms/libs/api/client
 45            	+@[ -d $@/base/drms/libs/api/server ] || mkdir -p $@/base/drms/libs/api/server
 46 arta  1.33 	+@[ -d $@/base/drms/libs/api/server-fpic ] || mkdir -p $@/base/drms/libs/api/server-fpic
 47 arta  1.5  	+@[ -d $@/base/drms/libs/main/c ] || mkdir -p $@/base/drms/libs/main/c
 48            	+@[ -d $@/base/drms/libs/main/f ] || mkdir -p $@/base/drms/libs/main/f
 49            	+@[ -d $@/base/drms/libs/main/idl ] || mkdir -p $@/base/drms/libs/main/idl
 50            	+@[ -d $@/base/drms/libs/meta ] || mkdir -p $@/base/drms/libs/meta
 51 arta  1.33 	+@[ -d $@/base/drms/libs/py ] || mkdir -p $@/base/drms/libs/py
 52 arta  1.22 	+@[ -d $@/base/export/apps ] || mkdir -p $@/base/export/apps
 53            	+@[ -d $@/base/export/libs/util ] || mkdir -p $@/base/export/libs/util
 54 arta  1.26 	+@[ -d $@/base/export/libs/exportDRMS ] || mkdir -p $@/base/export/libs/exportDRMS
 55 arta  1.31 	+@[ -d $@/base/libs/cjson ] || mkdir -p $@/base/libs/cjson
 56 arta  1.18 	+@[ -d $@/base/libs/cmdparams/test ] || mkdir -p $@/base/libs/cmdparams/test
 57 arta  1.5  	+@[ -d $@/base/libs/db/client ] || mkdir -p $@/base/libs/db/client
 58            	+@[ -d $@/base/libs/db/server ] || mkdir -p $@/base/libs/db/server
 59 arta  1.33 	+@[ -d $@/base/libs/db/server-fpic ] || mkdir -p $@/base/libs/db/server-fpic
 60 arta  1.10 	+@[ -d $@/base/libs/defs/fpic ] || mkdir -p $@/base/libs/defs/fpic
 61 arta  1.5  	+@[ -d $@/base/libs/dstruct/fpic ] || mkdir -p $@/base/libs/dstruct/fpic
 62 arta  1.22 	+@[ -d $@/base/libs/json ] || mkdir -p $@/base/libs/json
 63 arta  1.29 	+@[ -d $@/base/libs/jsmn ] || mkdir -p $@/base/libs/jsmn
 64 arta  1.5  	+@[ -d $@/base/libs/inthandles ] || mkdir -p $@/base/libs/inthandles
 65 arta  1.19 	+@[ -d $@/base/libs/qdecoder/md5 ] || mkdir -p $@/base/libs/qdecoder/md5
 66 arta  1.5  	+@[ -d $@/base/libs/threads/fpic ] || mkdir -p $@/base/libs/threads/fpic
 67            	+@[ -d $@/base/libs/timeio/fpic ] || mkdir -p $@/base/libs/timeio/fpic
 68            	+@[ -d $@/base/libs/misc/fpic ] || mkdir -p $@/base/libs/misc/fpic
 69 arta  1.6  	+@[ -d $@/base/libs/fitsrw/fpic ] || mkdir -p $@/base/libs/fitsrw/fpic
 70 arta  1.8  	+@[ -d $@/base/libs/errlog ] || mkdir -p $@/base/libs/errlog
 71 arta  1.5  	+@[ -d $@/base/local/libs/dsds ] || mkdir -p $@/base/local/libs/dsds
 72            	+@[ -d $@/base/local/libs/soi ] || mkdir -p $@/base/local/libs/soi
 73            	+@[ -d $@/base/sums/apps ] || mkdir -p $@/base/sums/apps
 74            	+@[ -d $@/base/sums/libs/api ] || mkdir -p $@/base/sums/libs/api
 75            	+@[ -d $@/base/sums/libs/pg ] || mkdir -p $@/base/sums/libs/pg
 76            	+@[ -d $@/base/util/apps ] || mkdir -p $@/base/util/apps
 77 arta  1.1  	+@$(MAKETARGET)
 78            
 79            # These rules keep make from trying to use the match-anything rule below to
 80            # rebuild the makefiles--ouch!  Obviously, if you don't follow my convention
 81            # of using a `.mk' suffix on all non-standard makefiles you'll need to change
 82            # the pattern rule.
 83            #
 84            Makefile : ;
 85            %.mk :: ;
 86            
 87            
 88            # Anything we don't know how to build will use this rule.  The command is a
 89            # do-nothing command, but the prerequisites ensure that the appropriate
 90            # recursive invocations of make will occur.
 91            #
 92            % :: $(PROJOBJDIR) $(OBJDIR) ; :
 93            
 94            
 95            # The clean rule is best handled from the source directory: since we're
 96            # rigorous about keeping the target directories containing only target files
 97            # and the source directory containing only source files, `clean' is as trivial
 98 arta  1.1  # as removing the target directories!
 99            #
100            .PHONY: clean
101            clean:
102 arta  1.13 	rm -rf $(OBJDIR); rm -rf bin/$(MACH); rm -rf lib/$(MACH)

Karen Tian
Powered by
ViewCVS 0.9.4