1 tplarson 1.42 # $Header: /home/cvsuser/cvsroot/JSOC/proj/globalhs/apps/Rules.mk,v 1.41 2016/12/15 20:41:37 arta Exp $
|
2 tplarson 1.29
|
3 tplarson 1.1 # Standard things
4 sp := $(sp).x
5 dirstack_$(sp) := $(d)
6 d := $(dir)
7
|
8 tplarson 1.28 # all checks for icc being the compiler are removed; this condition is already checked in localization/Rules.mk
9 # if the compiler is other than icc, this make file will not be included.
|
10 tplarson 1.29
|
11 tplarson 1.33 # GLOBALHS_TAG is defined in Rules.mk in the parent directory,
12 # its definition is repeated here for ease of reading
|
13 tplarson 1.34 #GLOBALHS_TAG := $(shell $(SRCDIR)/proj/globalhs/scripts/checkglobalhstags $(SRCDIR))
|
14 tplarson 1.29
|
15 tplarson 1.28 # Local variables
16
|
17 tplarson 1.29 MODEXE_$(d) := $(addprefix $(d)/, jretile jrebinsmooth undistortmdi jtsslice mkylms)
|
18 tplarson 1.28 MODEXE := $(MODEXE) $(MODEXE_$(d))
19
|
20 tplarson 1.35 MODEXE_USEF_$(d) := $(addprefix $(d)/, jv2ts jtsfiddle jpkbgn jpkbgn360d)
|
21 tplarson 1.28 MODEXE_USEF := $(MODEXE_USEF) $(MODEXE_USEF_$(d))
|
22 arta 1.9
|
23 tplarson 1.28 MODEXE_SOCK_$(d) := $(MODEXE_$(d):%=%_sock)
24 MODEXE_SOCK := $(MODEXE_SOCK) $(MODEXE_SOCK_$(d))
|
25 tplarson 1.19
|
26 tplarson 1.28 MODEXE_USEF_SOCK_$(d) := $(MODEXE_USEF_$(d):%=%_sock)
27 MODEXE_USEF_SOCK := $(MODEXE_USEF_SOCK) $(MODEXE_USEF_SOCK_$(d))
|
28 arta 1.3
|
29 tplarson 1.29 JV2TS := $(addprefix $(d)/, jv2ts jv2ts_sock)
|
30 arta 1.3 JRETILE := $(addprefix $(d)/, jretile jretile_sock)
|
31 tplarson 1.29 JTSFIDDLE := $(addprefix $(d)/, jtsfiddle jtsfiddle_sock)
32 JTSSLICE := $(addprefix $(d)/, jtsslice jtsslice_sock)
|
33 arta 1.3 JPKBGN := $(addprefix $(d)/, jpkbgn jpkbgn_sock)
|
34 tplarson 1.35 JPKBGN360D := $(addprefix $(d)/, jpkbgn360d jpkbgn360d_sock)
|
35 tplarson 1.22 JREBINSMOOTH := $(addprefix $(d)/, jrebinsmooth jrebinsmooth_sock)
|
36 tplarson 1.29 UNDISTORTMDI := $(addprefix $(d)/, undistortmdi undistortmdi_sock)
37 MKYLMS := $(addprefix $(d)/, mkylms mkylms_sock)
|
38 tplarson 1.14 DURCON := $(d)/durcon
|
39 tplarson 1.36 INV2D := $(d)/inv2d.x
40 INV2DOBJ := $(d)/inv2d.o
|
41 arta 1.3
|
42 tplarson 1.35 JPKBGNSRC := $(SRCDIR)/$(d)/jpkbgn.c
43
|
44 arta 1.3 EXE_$(d) := $(MODEXE_$(d)) $(MODEXE_USEF_$(d))
|
45 tplarson 1.1 OBJ_$(d) := $(EXE_$(d):%=%.o)
|
46 tplarson 1.22 DEP_$(d) := $(OBJ_$(d):%=%.d)
|
47 tplarson 1.1 CLEAN := $(CLEAN) \
48 $(OBJ_$(d)) \
49 $(EXE_$(d)) \
|
50 arta 1.3 $(MODEXE_SOCK_$(d)) \
51 $(MODEXE_USEF_SOCK_$(d)) \
52 $(DEP_$(d)) \
|
53 tplarson 1.36 $(DURCON) \
54 $(INV2D) $(INV2DOBJ)
55
|
56 tplarson 1.1
|
57 arta 1.40 # Remove globalhs from 'default make'. To do a release, run 'make; make globalhs'.
58 # TGT_BIN := $(TGT_BIN) $(EXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_SOCK_$(d)) $(DURCON) $(INV2D)
|
59 tplarson 1.1
|
60 tplarson 1.36 S_$(d) := $(notdir $(EXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_SOCK_$(d)) $(DURCON) $(INV2D))
|
61 tplarson 1.1
62 # Local rules
|
63 tplarson 1.22 $(OBJ_$(d)): $(SRCDIR)/$(d)/Rules.mk
|
64 arta 1.41 $(OBJ_$(d)): CF_TGT := $(CFITSIOH) $(GSLH) $(FFTWH) -I$(SRCDIR)/$(d)/../../libs/stats -I$(SRCDIR)/$(d)/../../libs/interpolate -I$(SRCDIR)/$(d)/../libs/projection -I$(SRCDIR)/$(d)/../libs/pkbgn
65 $(OBJ_$(d)): CF_TGT := $(CF_TGT) -DCDIR="\"$(SRCDIR)/$(d)\"" -DCVSTAG="\"$(GLOBALHS_TAG)\""
|
66 tplarson 1.42 #$(INV2DOBJ): FF_TGT := $(FF_TGT) -I$(SRCDIR)/$(d)/../libs/inv2d
|
67 tplarson 1.36 $(INV2D): LL_TGT := $(LL_TGT) -lmkl_em64t
|
68 arta 1.7
|
69 tplarson 1.29 $(JV2TS) : $(LIBPROJECTION)
70 $(JREBINSMOOTH) $(MKYLMS) : $(LIBINTERP)
71 $(JTSFIDDLE) : $(LIBDTGF)
72 $(JPKBGN) : $(LIBPKBGN)
|
73 tplarson 1.35 $(JPKBGN360D) : $(LIBPKBGN360D)
74 $(JPKBGN360D:%=%.o) : $(JPKBGNSRC)
75 $(COMP)
|
76 tplarson 1.29
|
77 tplarson 1.42 # the following include file makes use of the -mcmodel compiler flag
78 # DO NOT COPY THIS FILE WITHOUT A THOROUGH UNDERSTANDING OF THIS FLAG
79 include $(SRCDIR)/$(d)/invobj.mk
80
|
81 tplarson 1.36 $(INV2D) : $(LIBINV2D)
82 $(INV2D) : $(INV2DOBJ)
83 $(FLINK)
84 $(SLBIN)
85
|
86 tplarson 1.39 ifeq ($(GLOBALHSTAGOVERRIDE),)
|
87 tplarson 1.29 .PHONY: force_globalhsapps
|
88 tplarson 1.37 $(OBJ_$(d)) $(INV2DOBJ): force_globalhsapps
|
89 tplarson 1.32 force_globalhsapps:
90 [[ $(GLOBALHS_TAG) =~ globalhs ]]
|
91 tplarson 1.39 endif
|
92 tplarson 1.28
93 NOIPO_$(d) :=
94 MKL := -lmkl
95
96 ifeq ($(JSOC_MACHINE), linux_avx)
97 MKL := $(NOIPO_$(d)) -lmkl_em64t
|
98 arta 1.8 endif
99
|
100 tplarson 1.28 ifeq ($(JSOC_MACHINE), linux_x86_64)
101 MKL := $(NOIPO_$(d)) -lmkl_em64t
102 endif
|
103 arta 1.3
|
104 tplarson 1.28 ifeq ($(JSOC_MACHINE), linux_ia32)
105 MKL := $(NOIPO_$(d)) -lmkl_lapack -lmkl_ia32
|
106 arta 1.8 endif
107
108 SVML_$(d) :=
109 GUIDE_$(d) :=
110
|
111 tplarson 1.22 ALL_$(d) := $(MODEXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_$(d)) $(MODEXE_USEF_SOCK_$(d))
|
112 tplarson 1.29 $(ALL_$(d)) : LL_TGT := $(LL_TGT) $(GSLLIBS) $(CFITSIOLIBS) $(FFTW3FLIBS) $(MKL) $(SVML_$(d)) $(GUIDE_$(d))
|
113 tplarson 1.22
|
114 tplarson 1.33 $(DURCON) : $(SRCDIR)/$(d)/durcon.c $(SRCDIR)/$(d)/Rules.mk
|
115 tplarson 1.14 cc -o $@ $<
116 $(SLBIN)
117
|
118 tplarson 1.1 # Shortcuts
|
119 arta 1.3 .PHONY: $(S_$(d)) globalhs
|
120 tplarson 1.1 $(S_$(d)): %: $(d)/%
|
121 tplarson 1.38 globalhs : $(ALL_$(d)) $(DURCON) $(INV2D)
|
122 tplarson 1.1
|
123 arta 1.9
|
124 tplarson 1.1 # Standard things
125 -include $(DEP_$(d))
126
127 d := $(dirstack_$(sp))
128 sp := $(basename $(sp))
|