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

Karen Tian
Powered by
ViewCVS 0.9.4