source: branches/newfiller/src/Makefile@ 1793

Last change on this file since 1793 was 1792, checked in by Takeshi Nakazato, 14 years ago
  1. Bug fixes on NROFiller.
  1. Makefile is updated to compile NROFiller
  1. Uncommented the line to create NROFiller in FillerWrapper.h


File size: 6.8 KB
Line 
1### Notice:
2### This Makefile assumes CASA+CASACore enviroment.
3### For who wants to build ASAP with older CASA without CASACore,
4### 1. Replace $(CASAPATH) with $(AIPSPATH).
5### 2. CASAINC should be
6### '-I$(CASAROOT)/code/include -I$(CASAROOT)/code/casa'
7### 3. Replase library names in G2CARCH '-lcasa_*' with '-l*'.
8### 4. Comment-IN the definition of 'CXXOPTS'.
9TARGET := /tmp/_asap.so
10
11# the casa environment AIPSPATH has to be defined
12CASAROOT := $(word 1, $(CASAPATH))
13CASAARCH := $(word 2, $(CASAPATH))
14
15COREINCD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=COREINCD eval_vars) && echo $$COREINCD)
16CORELIB := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=CORELIB eval_vars) && echo $$CORELIB)
17WCSLIBLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=WCSLIBLIBD eval_vars) && echo $$WCSLIBLIBD)
18WCSLIBLIB := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=WCSLIBLIB eval_vars) && echo $$WCSLIBLIB)
19PYTHONROOT := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONROOT eval_vars) && echo $$PYTHONROOT)
20PYTHONLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONLIBD eval_vars) && echo $$PYTHONLIBD)
21PYTHONINCD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONINCD eval_vars) && echo $$PYTHONINCD)
22PYTHONLIB := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONLIB eval_vars) && echo $$PYTHONLIB)
23#PYTHONVER := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONVER eval_vars) && echo $$PYTHONVER)
24BOOSTROOT := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=BOOSTROOT eval_vars) && echo $$BOOSTROOT)
25RPFITSLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=RPFITSLIBD eval_vars) && echo $$RPFITSLIBD)
26
27CASAINC := -I$(CASAROOT)/code/include -I$(COREINCD) -I$(CASAROOT)/$(CASAARCH)/include
28CASALIB := $(CASAROOT)/$(CASAARCH)/lib
29#USELIB := lib64
30USELIB := lib
31
32# the compiler
33ifndef CXX
34 CXX := g++
35endif
36
37# compiler flags
38CXXFLAGS := -fPIC -O3 -g
39CXXFLAGS += -ansi -Wno-long-long -Wall
40#CXXOPTS := -DAIPS_64B
41
42# darwin specific flags
43ifeq "$(CASAARCH)" "darwin"
44 #CXXFLAGS +=-DAIPS_DARWIN -arch i386 #For 10.6
45 CXXFLAGS +=-DAIPS_DARWIN
46 #CXXFLAGS += -Wno-long-double
47endif
48
49# cfitsio
50CFITSIOROOT := /usr
51CFITSIOINC := -I$(CFITSIOROOT)/include/cfitsio
52CFITSIOLIB := -lcfitsio
53
54#rpfits
55RPFITSROOT := /usr
56RPFITSLIB := -lrpfits
57
58G2CROOT := /usr
59G2CLIB := -lgfortran
60
61# This assumes all casa libs are static only (*.a)
62# if not than there might by symbol resolution errors.
63CASAPPLIB := -L$(CASALIB) -latnf $(CORELIB) \
64 -L$(WCSLIBLIBD) $(WCSLIBLIB) \
65 -L$(RPFITSLIBD) $(RPFITSLIB) $(CFITSIOLIB) $(G2CLIB) -lstdc++
66
67# darwin specific CASA flags
68ifeq "$(CASAARCH)" "darwin"
69 CASAPPLIB += -framework vecLib
70else
71 CASAPPLIB += -llapack -lblas
72endif
73
74# python
75PYTHONINC := $(addprefix -I,$(PYTHONINCD))
76PYTHONLIB := -L$(PYTHONLIBD) $(PYTHONLIB)
77
78# use python universal build
79#ifeq "$(CASAARCH)" "darwin"
80# PYVERSION := 2.5
81# PYTHONROOT := /Library/Frameworks/Python.framework/Versions/$(PYVERSION)
82# PYTHONINC := -I$(PYTHONROOT)/include/python$(PYVERSION)
83# PYTHONLIB := -L$(PYTHONROOT)/lib -framework Python
84#endif
85
86# the linker
87LD := $(CXX)
88
89# has to be build with same g++ version as casa
90BOOSTLIB := -L$(BOOSTROOT)/lib -lboost_python
91BOOSTINC := -I$(BOOSTROOT)/include/boost -I$(BOOSTROOT)/include
92
93LDFLAGS := -shared -Wl$(TARGET) -s -Xlinker -rpath -Xlinker $(BOOSTROOT)/lib:$(PYTHONROOT)/lib:$(CASALIB)
94ifeq "$(CASAARCH)" "darwin"
95 LDFLAGS := -bundle
96endif
97
98
99# DO NOT MODIFY AFTER THIS
100INCDIRS := -I. $(CASAINC) $(CFITSIOINC) $(BOOSTINC) $(PYTHONINC)
101LIBS := $(PYTHONLIB) $(BOOSTLIB) $(CASAPPLIB)
102
103CCOBJECTS := MathUtils.o \
104 RowAccumulator.o \
105 Logger.o \
106 LineCatalog.o \
107 STAttr.o \
108 STHeader.o \
109 STFiller.o \
110 STMath.o \
111 STSubTable.o \
112 STMolecules.o \
113 STTcal.o \
114 STFocus.o \
115 STWeather.o \
116 STFrequencies.o \
117 STHistory.o \
118 STSelector.o \
119 STLineFinder.o \
120 STFitter.o \
121 STFitEntry.o \
122 STFit.o \
123 STPol.o \
124 STPolLinear.o \
125 STPolCircular.o \
126 STPolStokes.o \
127 STWriter.o \
128 STAsciiWriter.o \
129 STFITSImageWriter.o \
130 STAtmosphere.o \
131 Scantable.o \
132 FillerBase.o \
133 NROFiller.o \
134 Templates.o
135PYOBJECTS := python_Scantable.o \
136 python_STFiller.o \
137 python_STSelector.o \
138 python_STMath.o \
139 python_Fitter.o \
140 python_Logger.o \
141 python_STLineFinder.o \
142 python_STFitEntry.o \
143 python_STWriter.o \
144 python_LineCatalog.o \
145 python_SrcType.o \
146 python_STAtmosphere.o \
147 python_STCoordinate.o \
148 python_Filler.o \
149 python_asap.o
150
151OBJECTS := $(CCOBJECTS) $(PYOBJECTS)
152
153HEADERS := MathUtils.h \
154 Lorentzian1D.h \
155 Lorentzian1DParam.h \
156 Logger.h \
157 STAttr.h \
158 STHeader.h \
159 Scantable.h \
160 STFiller.h \
161 STMath.h \
162 RowAccumulator.h \
163 STSubTable.h \
164 STMolecules.h \
165 STTcal.h \
166 STFocus.h \
167 STWeather.h \
168 STHistory.h \
169 STFrequencies.h \
170 STDefs.h \
171 STWriter.h \
172 STSelector.h \
173 STFitter.h \
174 STFit.h \
175 STFitEntry.h \
176 STLineFinder.h \
177 Factory.h \
178 FactoryBase.h \
179 STPol.h \
180 STPolStokes.h \
181 STPolCircular.h \
182 STPolLinear.h \
183 STWriter.h \
184 STAsciiWriter.h \
185 STFITSImageWriter.h \
186 IndexedCompare.h \
187 STAtmosphere.h \
188 STCoordinate.h
189
190STATICCCLIB := libasap.a
191MEMBERS := $(patsubst %,$(STATICCCLIB)(%),$(CCOBJECTS))
192
193.SUFFIXES: .c .o .cpp .cc .cxx .C
194
195.cpp.o:
196 -@ echo
197 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
198
199.cc.o:
200 -@ echo
201 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
202
203.cxx.o:
204 -@ echo
205 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
206
207.C.o:
208 -@ echo
209 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
210
211
212.PHONY : all clean objects realclean relink
213
214all : $(TARGET)
215
216relink : cleanso $(TARGET)
217
218objects : $(OBJECTS)
219
220$(TARGET) : $(OBJECTS)
221 -@ echo
222 $(LD) $(LDFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)
223
224$(OBJECTS) : $(HEADERS)
225
226staticlib: $(MEMBERS)
227
228clean :
229 -rm -f $(OBJECTS)
230
231cleanso :
232 -rm -f $(TARGET)
233
234realclean : clean cleanso
235
236test: objects tasap2.o
237 -@ echo
238 $(LD) -g -o /tmp/tasap2 $(OBJECTS) $(LIBS) tasap2.o
Note: See TracBrowser for help on using the repository browser.