1 |
# $Header: /home/cvsuser/cvsroot/JSOC/proj/globalhs/apps/Rules.mk,v 1.37 2014/05/22 15:34:20 tplarson Exp $ |
2 |
|
3 |
# Standard things |
4 |
sp := $(sp).x |
5 |
dirstack_$(sp) := $(d) |
6 |
d := $(dir) |
7 |
|
8 |
# 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 |
|
11 |
# GLOBALHS_TAG is defined in Rules.mk in the parent directory, |
12 |
# its definition is repeated here for ease of reading |
13 |
#GLOBALHS_TAG := $(shell $(SRCDIR)/proj/globalhs/scripts/checkglobalhstags $(SRCDIR)) |
14 |
|
15 |
# Local variables |
16 |
|
17 |
MODEXE_$(d) := $(addprefix $(d)/, jretile jrebinsmooth undistortmdi jtsslice mkylms) |
18 |
MODEXE := $(MODEXE) $(MODEXE_$(d)) |
19 |
|
20 |
MODEXE_USEF_$(d) := $(addprefix $(d)/, jv2ts jtsfiddle jpkbgn jpkbgn360d) |
21 |
MODEXE_USEF := $(MODEXE_USEF) $(MODEXE_USEF_$(d)) |
22 |
|
23 |
MODEXE_SOCK_$(d) := $(MODEXE_$(d):%=%_sock) |
24 |
MODEXE_SOCK := $(MODEXE_SOCK) $(MODEXE_SOCK_$(d)) |
25 |
|
26 |
MODEXE_USEF_SOCK_$(d) := $(MODEXE_USEF_$(d):%=%_sock) |
27 |
MODEXE_USEF_SOCK := $(MODEXE_USEF_SOCK) $(MODEXE_USEF_SOCK_$(d)) |
28 |
|
29 |
JV2TS := $(addprefix $(d)/, jv2ts jv2ts_sock) |
30 |
JRETILE := $(addprefix $(d)/, jretile jretile_sock) |
31 |
JTSFIDDLE := $(addprefix $(d)/, jtsfiddle jtsfiddle_sock) |
32 |
JTSSLICE := $(addprefix $(d)/, jtsslice jtsslice_sock) |
33 |
JPKBGN := $(addprefix $(d)/, jpkbgn jpkbgn_sock) |
34 |
JPKBGN360D := $(addprefix $(d)/, jpkbgn360d jpkbgn360d_sock) |
35 |
JREBINSMOOTH := $(addprefix $(d)/, jrebinsmooth jrebinsmooth_sock) |
36 |
UNDISTORTMDI := $(addprefix $(d)/, undistortmdi undistortmdi_sock) |
37 |
MKYLMS := $(addprefix $(d)/, mkylms mkylms_sock) |
38 |
DURCON := $(d)/durcon |
39 |
INV2D := $(d)/inv2d.x |
40 |
INV2DOBJ := $(d)/inv2d.o |
41 |
|
42 |
JPKBGNSRC := $(SRCDIR)/$(d)/jpkbgn.c |
43 |
|
44 |
EXE_$(d) := $(MODEXE_$(d)) $(MODEXE_USEF_$(d)) |
45 |
OBJ_$(d) := $(EXE_$(d):%=%.o) |
46 |
DEP_$(d) := $(OBJ_$(d):%=%.d) |
47 |
CLEAN := $(CLEAN) \ |
48 |
$(OBJ_$(d)) \ |
49 |
$(EXE_$(d)) \ |
50 |
$(MODEXE_SOCK_$(d)) \ |
51 |
$(MODEXE_USEF_SOCK_$(d)) \ |
52 |
$(DEP_$(d)) \ |
53 |
$(DURCON) \ |
54 |
$(INV2D) $(INV2DOBJ) |
55 |
|
56 |
|
57 |
TGT_BIN := $(TGT_BIN) $(EXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_SOCK_$(d)) $(DURCON) $(INV2D) |
58 |
|
59 |
S_$(d) := $(notdir $(EXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_SOCK_$(d)) $(DURCON) $(INV2D)) |
60 |
|
61 |
# Local rules |
62 |
$(OBJ_$(d)): $(SRCDIR)/$(d)/Rules.mk |
63 |
$(OBJ_$(d)): CF_TGT := $(GSLH) $(FFTWH) -I$(SRCDIR)/$(d)/../../libs/stats -I$(SRCDIR)/$(d)/../../libs/interpolate -I$(SRCDIR)/$(d)/../libs/projection -I$(SRCDIR)/$(d)/../libs/pkbgn |
64 |
$(OBJ_$(d)): CF_TGT := $(CF_TGT) -DCDIR="\"$(SRCDIR)/$(d)\"" -DCVSTAG="\"$(GLOBALHS_TAG)\"" |
65 |
$(INV2DOBJ): $(SRCDIR)/$(d)/Rules.mk |
66 |
$(INV2DOBJ): FF_TGT := $(FF_TGT) -I$(SRCDIR)/$(d)/../libs/inv2d |
67 |
$(INV2D): LL_TGT := $(LL_TGT) -lmkl_em64t |
68 |
|
69 |
$(JV2TS) : $(LIBPROJECTION) |
70 |
$(JREBINSMOOTH) $(MKYLMS) : $(LIBINTERP) |
71 |
$(JTSFIDDLE) : $(LIBDTGF) |
72 |
$(JPKBGN) : $(LIBPKBGN) |
73 |
$(JPKBGN360D) : $(LIBPKBGN360D) |
74 |
$(JPKBGN360D:%=%.o) : $(JPKBGNSRC) |
75 |
$(COMP) |
76 |
|
77 |
$(INV2D) : $(LIBINV2D) |
78 |
$(INV2D) : $(INV2DOBJ) |
79 |
$(FLINK) |
80 |
$(SLBIN) |
81 |
|
82 |
.PHONY: force_globalhsapps |
83 |
$(OBJ_$(d)) $(INV2DOBJ): force_globalhsapps |
84 |
force_globalhsapps: |
85 |
[[ $(GLOBALHS_TAG) =~ globalhs ]] |
86 |
|
87 |
NOIPO_$(d) := |
88 |
MKL := -lmkl |
89 |
|
90 |
ifeq ($(JSOC_MACHINE), linux_avx) |
91 |
MKL := $(NOIPO_$(d)) -lmkl_em64t |
92 |
endif |
93 |
|
94 |
ifeq ($(JSOC_MACHINE), linux_x86_64) |
95 |
MKL := $(NOIPO_$(d)) -lmkl_em64t |
96 |
endif |
97 |
|
98 |
ifeq ($(JSOC_MACHINE), linux_ia32) |
99 |
MKL := $(NOIPO_$(d)) -lmkl_lapack -lmkl_ia32 |
100 |
endif |
101 |
|
102 |
SVML_$(d) := |
103 |
GUIDE_$(d) := |
104 |
|
105 |
ALL_$(d) := $(MODEXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_$(d)) $(MODEXE_USEF_SOCK_$(d)) |
106 |
$(ALL_$(d)) : LL_TGT := $(LL_TGT) $(GSLLIBS) $(CFITSIOLIBS) $(FFTW3FLIBS) $(MKL) $(SVML_$(d)) $(GUIDE_$(d)) |
107 |
|
108 |
$(DURCON) : $(SRCDIR)/$(d)/durcon.c $(SRCDIR)/$(d)/Rules.mk |
109 |
cc -o $@ $< |
110 |
$(SLBIN) |
111 |
|
112 |
# Shortcuts |
113 |
.PHONY: $(S_$(d)) globalhs |
114 |
$(S_$(d)): %: $(d)/% |
115 |
globalhs : $(ALL_$(d)) $(DURCON) $(INV2D) |
116 |
|
117 |
|
118 |
# Standard things |
119 |
-include $(DEP_$(d)) |
120 |
|
121 |
d := $(dirstack_$(sp)) |
122 |
sp := $(basename $(sp)) |