1 |
# $Header: /home/cvsuser/cvsroot/JSOC/proj/globalhs/apps/Rules.mk,v 1.39 2015/02/15 05:05:37 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 |
# 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 |
|
60 |
S_$(d) := $(notdir $(EXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_SOCK_$(d)) $(DURCON) $(INV2D)) |
61 |
|
62 |
# Local rules |
63 |
$(OBJ_$(d)): $(SRCDIR)/$(d)/Rules.mk |
64 |
$(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 |
65 |
$(OBJ_$(d)): CF_TGT := $(CF_TGT) -DCDIR="\"$(SRCDIR)/$(d)\"" -DCVSTAG="\"$(GLOBALHS_TAG)\"" |
66 |
$(INV2DOBJ): $(SRCDIR)/$(d)/Rules.mk |
67 |
$(INV2DOBJ): FF_TGT := $(FF_TGT) -I$(SRCDIR)/$(d)/../libs/inv2d |
68 |
$(INV2D): LL_TGT := $(LL_TGT) -lmkl_em64t |
69 |
|
70 |
$(JV2TS) : $(LIBPROJECTION) |
71 |
$(JREBINSMOOTH) $(MKYLMS) : $(LIBINTERP) |
72 |
$(JTSFIDDLE) : $(LIBDTGF) |
73 |
$(JPKBGN) : $(LIBPKBGN) |
74 |
$(JPKBGN360D) : $(LIBPKBGN360D) |
75 |
$(JPKBGN360D:%=%.o) : $(JPKBGNSRC) |
76 |
$(COMP) |
77 |
|
78 |
$(INV2D) : $(LIBINV2D) |
79 |
$(INV2D) : $(INV2DOBJ) |
80 |
$(FLINK) |
81 |
$(SLBIN) |
82 |
|
83 |
ifeq ($(GLOBALHSTAGOVERRIDE),) |
84 |
.PHONY: force_globalhsapps |
85 |
$(OBJ_$(d)) $(INV2DOBJ): force_globalhsapps |
86 |
force_globalhsapps: |
87 |
[[ $(GLOBALHS_TAG) =~ globalhs ]] |
88 |
endif |
89 |
|
90 |
NOIPO_$(d) := |
91 |
MKL := -lmkl |
92 |
|
93 |
ifeq ($(JSOC_MACHINE), linux_avx) |
94 |
MKL := $(NOIPO_$(d)) -lmkl_em64t |
95 |
endif |
96 |
|
97 |
ifeq ($(JSOC_MACHINE), linux_x86_64) |
98 |
MKL := $(NOIPO_$(d)) -lmkl_em64t |
99 |
endif |
100 |
|
101 |
ifeq ($(JSOC_MACHINE), linux_ia32) |
102 |
MKL := $(NOIPO_$(d)) -lmkl_lapack -lmkl_ia32 |
103 |
endif |
104 |
|
105 |
SVML_$(d) := |
106 |
GUIDE_$(d) := |
107 |
|
108 |
ALL_$(d) := $(MODEXE_$(d)) $(MODEXE_SOCK_$(d)) $(MODEXE_USEF_$(d)) $(MODEXE_USEF_SOCK_$(d)) |
109 |
$(ALL_$(d)) : LL_TGT := $(LL_TGT) $(GSLLIBS) $(CFITSIOLIBS) $(FFTW3FLIBS) $(MKL) $(SVML_$(d)) $(GUIDE_$(d)) |
110 |
|
111 |
$(DURCON) : $(SRCDIR)/$(d)/durcon.c $(SRCDIR)/$(d)/Rules.mk |
112 |
cc -o $@ $< |
113 |
$(SLBIN) |
114 |
|
115 |
# Shortcuts |
116 |
.PHONY: $(S_$(d)) globalhs |
117 |
$(S_$(d)): %: $(d)/% |
118 |
globalhs : $(ALL_$(d)) $(DURCON) $(INV2D) |
119 |
|
120 |
|
121 |
# Standard things |
122 |
-include $(DEP_$(d)) |
123 |
|
124 |
d := $(dirstack_$(sp)) |
125 |
sp := $(basename $(sp)) |