ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/JSOC/target.mk
Revision: 1.32
Committed: Fri Feb 5 19:08:01 2016 UTC (7 years, 7 months ago) by arta
Branch: MAIN
CVS Tags: NetDRMS_Ver_8-12, Ver_9-1, Ver_9-0, NetDRMS_Ver_8-11, Ver_8-11, Ver_8-12, NetDRMS_Ver_9-1, NetDRMS_Ver_9-0
Changes since 1.31: +1 -0 lines
Log Message:
For test-fl-query.

File Contents

# Content
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 ifeq ($(MACH),)
14 MACH = $(JSOC_MACHINE)
15 endif
16
17 OBJDIR := _$(MACH)
18 PROJOBJDIR := $(OBJDIR)/proj
19
20 all: $(PROJOBJDIR) $(OBJDIR)
21
22 # Define the rules to build in the target subdirectories.
23 #
24 MAKETARGET = $(MAKE) --no-print-directory -C $@ -f $(WORKINGDIR)/Makefile \
25 SRCDIR=$(WORKINGDIR) $(MAKECMDGOALS)
26
27 .PHONY: $(PROJOBJDIR) $(OBJDIR)
28
29 # Create the project-specific directories too, if they exist.
30 # 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
34 $(OBJDIR):
35 +@[ -d bin/$(MACH) ] || mkdir -p bin/$(MACH)
36 +@[ -d lib/$(MACH) ] || mkdir -p lib/$(MACH)
37 +@[ -d $@ ] || mkdir -p $@
38 +@[ -d $@/base/drms/apps ] || mkdir -p $@/base/drms/apps
39 +@[ -d $@/base/drms/apps/test ] || mkdir -p $@/base/drms/apps/test
40 +@[ -d $@/base/drms/libs/api/client ] || mkdir -p $@/base/drms/libs/api/client
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 +@[ -d $@/base/export/apps ] || mkdir -p $@/base/export/apps
47 +@[ -d $@/base/export/libs/util ] || mkdir -p $@/base/export/libs/util
48 +@[ -d $@/base/export/libs/exportDRMS ] || mkdir -p $@/base/export/libs/exportDRMS
49 +@[ -d $@/base/libs/cjson ] || mkdir -p $@/base/libs/cjson
50 +@[ -d $@/base/libs/cmdparams/test ] || mkdir -p $@/base/libs/cmdparams/test
51 +@[ -d $@/base/libs/db/client ] || mkdir -p $@/base/libs/db/client
52 +@[ -d $@/base/libs/db/server ] || mkdir -p $@/base/libs/db/server
53 +@[ -d $@/base/libs/defs/fpic ] || mkdir -p $@/base/libs/defs/fpic
54 +@[ -d $@/base/libs/dstruct/fpic ] || mkdir -p $@/base/libs/dstruct/fpic
55 +@[ -d $@/base/libs/json ] || mkdir -p $@/base/libs/json
56 +@[ -d $@/base/libs/jsmn ] || mkdir -p $@/base/libs/jsmn
57 +@[ -d $@/base/libs/inthandles ] || mkdir -p $@/base/libs/inthandles
58 +@[ -d $@/base/libs/qdecoder/md5 ] || mkdir -p $@/base/libs/qdecoder/md5
59 +@[ -d $@/base/libs/threads/fpic ] || mkdir -p $@/base/libs/threads/fpic
60 +@[ -d $@/base/libs/timeio/fpic ] || mkdir -p $@/base/libs/timeio/fpic
61 +@[ -d $@/base/libs/misc/fpic ] || mkdir -p $@/base/libs/misc/fpic
62 +@[ -d $@/base/libs/fitsrw/fpic ] || mkdir -p $@/base/libs/fitsrw/fpic
63 +@[ -d $@/base/libs/errlog ] || mkdir -p $@/base/libs/errlog
64 +@[ -d $@/base/local/libs/dsds ] || mkdir -p $@/base/local/libs/dsds
65 +@[ -d $@/base/local/libs/soi ] || mkdir -p $@/base/local/libs/soi
66 +@[ -d $@/base/sums/apps ] || mkdir -p $@/base/sums/apps
67 +@[ -d $@/base/sums/libs/api ] || mkdir -p $@/base/sums/libs/api
68 +@[ -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 +@[ -d $@/proj/cookbook ] || mkdir -p $@/proj/cookbook
73 +@$(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 # as removing the target directories!
95 #
96 .PHONY: clean
97 clean:
98 rm -rf $(OBJDIR); rm -rf bin/$(MACH); rm -rf lib/$(MACH)
99