source: trunk/src/Makefile@ 2034

Last change on this file since 2034 was 2012, checked in by WataruKawasaki, 14 years ago

New Development: Yes

JIRA Issue: Yes (CAS-2373, CAS-2620)

Ready for Test: Yes

Interface Changes: Yes

What Interface Changed: For Scantable::polyBaseline(), parameters and return value have been changed.

Test Programs:

Put in Release Notes: Yes

Module(s): sdbaseline, sd.linefinder

Description: (1) CAS-2373-related:

(1.1) Modified Scantable::polyBaseline() to have the row-based loop inside.

Now it fits and subtracts baseline for all rows and also output info
about the fitting result to logger and text file, while in the
previous version this method just did baseline fitting/subtraction
for one row only and had to be put inside a row-based loop at the
python side ("poly_baseline()" in scantable.py) and result output had
also to be controlled at the python side. Using a test data from NRO
45m telescope (348,000 rows, 512 channels), the processing time of
scantable.poly_baseline() has reduced from 130 minutes to 5-6 minutes.

(1.2) For accelerating the another polynomial fitting function, namely

scantable.auto_poly_baseline(), added a method
Scantable::autoPolyBaseline(). This basically does the same thing
with Scantable::polyBaseline(), but uses linefinfer also to
automatically flag the line regions.

(1.3) To make linefinder usable in Scantable class, added a method

linefinder.setdata(). This makes it possible to apply linefinder
for a float-list data given as a parameter, without setting scantable,
while it was indispensable to set scantable to use linefinger previously.

(2) CAS-2620-related:

Added Scantable::cubicSplineBaseline() and autoCubicSplineBaseline() for
fit baseline using the cubic spline function. Parameters include npiece
(number of polynomial pieces), clipthresh (clipping threshold), and
clipniter (maximum iteration number).



File size: 7.1 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
11ifndef ASAPROOT
12 ASAPROOT := $(abspath ..)
13endif
14ATNFD := external-alma
15
16# the casa environment AIPSPATH has to be defined
17CASAROOT := $(word 1, $(CASAPATH))
18CASAARCH := $(word 2, $(CASAPATH))
19
20CXXFLAGS := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=CXXFLAGS eval_vars) && echo $$CXXFLAGS)
21CXXOPTS := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=COPTFLAGS eval_vars) && echo $$COPTFLAGS)
22LDFLAGS := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=LD_FLAGS eval_vars) && echo $$LD_FLAGS)
23
24COREINCD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=COREINCD eval_vars) && echo $$COREINCD)
25CORELIB := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=CORELIB eval_vars) && echo $$CORELIB)
26WCSLIBLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=WCSLIBLIBD eval_vars) && echo $$WCSLIBLIBD)
27WCSLIBLIB := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=WCSLIBLIB eval_vars) && echo $$WCSLIBLIB)
28PYTHONROOT := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONROOT eval_vars) && echo $$PYTHONROOT)
29PYTHONLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONLIBD eval_vars) && echo $$PYTHONLIBD)
30PYTHONINCD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONINCD eval_vars) && echo $$PYTHONINCD)
31PYTHONLIB := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=PYTHONLIB eval_vars) && echo $$PYTHONLIB)
32BOOSTROOT := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=BOOSTROOT eval_vars) && echo $$BOOSTROOT)
33RPFITSLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=RPFITSLIBD eval_vars) && echo $$RPFITSLIBD)
34CFITSIOLIBD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=CFITSIOLIBD eval_vars) && echo $$CFITSIOLIBD)
35CFITSIOINCD := $(shell $(shell make -s -f $(CASAROOT)/$(CASAARCH)/makedefs VARS=CFITSIOINCD eval_vars) && echo $$CFITSIOINCD)
36
37CASAINC := -I$(CASAROOT)/code/include -I$(COREINCD) -I$(CASAROOT)/$(CASAARCH)/include
38CASALIB := $(CASAROOT)/$(CASAARCH)/lib
39CASACORELIB := $(filter $(CASALIB)/libcasa%, $(CORELIB))
40
41# the compiler
42ifndef CXX
43 CXX := g++
44endif
45
46# compiler flags
47CXXFLAGS += -fPIC -DHAVE_LIBPYRAP
48
49PYRAPD := external/libpyrap
50PYRAPLIBD := $(ASAPROOT)/$(PYRAPD)
51PYRAPINCD := $(ASAPROOT)/$(PYRAPD)/pyrap-0.3.2
52PYRAPLIB := -L$(PYRAPLIBD) -lpyrap
53
54
55CFITSIOLIB := -lcfitsio
56
57#rpfits
58RPFITSLIB := -lrpfits
59
60G2CROOT := /usr
61G2CLIB := -lgfortran
62
63# links to external libraries
64CASAPPLIB := -L$(ASAPROOT)/$(ATNFD) -latnf $(CORELIB) $(PYRAPLIB)\
65 -L$(WCSLIBLIBD) $(WCSLIBLIB) \
66 -L$(RPFITSLIBD) $(RPFITSLIB) $(CFITSIOLIB) $(G2CLIB) -lstdc++
67
68# darwin specific CASA flags
69ifeq ($(shell uname), Darwin)
70 CASAPPLIB += -framework vecLib
71else
72 CASAPPLIB += -llapack -lblas
73endif
74
75LD := $(CXX)
76
77# has to be build with same g++ version as casa
78BOOSTLIB := -L$(BOOSTROOT)/lib -lboost_python
79BOOSTINC := -I$(BOOSTROOT)/include/boost -I$(BOOSTROOT)/include
80
81LDFLAGS += -shared
82
83
84# DO NOT MODIFY AFTER THIS
85INCDIRS := -I. $(CASAINC) -I$(CFITSIOINCD) $(BOOSTINC) $(addprefix -I, $(PYTHONINCD)) -I$(ASAPROOT)/$(ATNFD) -I$(PYRAPINCD)
86LIBS := $(PYTHONLIB) $(BOOSTLIB) $(CASAPPLIB)
87
88CCOBJECTS := MathUtils.o \
89 RowAccumulator.o \
90 Logger.o \
91 LineCatalog.o \
92 STAttr.o \
93 STHeader.o \
94 STFiller.o \
95 STMath.o \
96 STSubTable.o \
97 STMolecules.o \
98 STTcal.o \
99 STFocus.o \
100 STWeather.o \
101 STFrequencies.o \
102 STHistory.o \
103 STSelector.o \
104 STLineFinder.o \
105 STFitter.o \
106 STFitEntry.o \
107 STFit.o \
108 STPol.o \
109 STPolLinear.o \
110 STPolCircular.o \
111 STPolStokes.o \
112 STWriter.o \
113 STAsciiWriter.o \
114 STFITSImageWriter.o \
115 STAtmosphere.o \
116 Scantable.o \
117 FillerBase.o \
118 NROFiller.o \
119 PKSFiller.o \
120 AsapLogSink.o \
121 Templates.o
122
123PYOBJECTS := python_Scantable.o \
124 python_STFiller.o \
125 python_STSelector.o \
126 python_STMath.o \
127 python_Fitter.o \
128 python_Logger.o \
129 python_STLineFinder.o \
130 python_STFitEntry.o \
131 python_STWriter.o \
132 python_LineCatalog.o \
133 python_SrcType.o \
134 python_STAtmosphere.o \
135 python_STCoordinate.o \
136 python_Filler.o \
137 python_LogSink.o \
138 python_asap.o
139
140OBJECTS := $(CCOBJECTS) $(PYOBJECTS)
141
142HEADERS := MathUtils.h \
143 LineCatalog.h \
144 Lorentzian1D.h \
145 Lorentzian1DParam.h \
146 Logger.h \
147 STAttr.h \
148 STHeader.h \
149 Scantable.h \
150 STFiller.h \
151 STMath.h \
152 RowAccumulator.h \
153 STSubTable.h \
154 STMolecules.h \
155 STTcal.h \
156 STFocus.h \
157 STWeather.h \
158 STHistory.h \
159 STFrequencies.h \
160 STDefs.h \
161 STWriter.h \
162 STSelector.h \
163 STFitter.h \
164 STFit.h \
165 STFitEntry.h \
166 STLineFinder.h \
167 Factory.h \
168 FactoryBase.h \
169 STPol.h \
170 STPolStokes.h \
171 STPolCircular.h \
172 STPolLinear.h \
173 STWriter.h \
174 STAsciiWriter.h \
175 STFITSImageWriter.h \
176 IndexedCompare.h \
177 STAtmosphere.h \
178 STCoordinate.h \
179 FillerBase.h \
180 NROFiller.h \
181 PKSFiller.h \
182 AsapLogSink.h
183
184# external libraries
185ifeq ($(shell uname), Darwin)
186 ATNF := $(ASAPROOT)/$(ATNFD)/libatnf.dylib
187 PYRAP := $(ASAPROOT)/$(PYRAPD)/libpyrap.dylib
188else
189 ATNF := $(ASAPROOT)/$(ATNFD)/libatnf.so
190 PYRAP := $(ASAPROOT)/$(PYRAPD)/libpyrap.so
191endif
192
193STATICCCLIB := libasap.a
194MEMBERS := $(patsubst %,$(STATICCCLIB)(%),$(CCOBJECTS))
195
196.SUFFIXES: .c .o .cpp .cc .cxx .C
197
198.cpp.o:
199 -@ echo
200 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
201
202.cc.o:
203 -@ echo
204 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
205
206.cxx.o:
207 -@ echo
208 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
209
210.C.o:
211 -@ echo
212 $(CXX) $(CXXOPTS) -c $(CXXFLAGS) $(INCDIRS) -o $@ $<
213
214
215.PHONY : all clean objects realclean relink
216
217all : $(TARGET)
218
219relink : cleanso $(TARGET)
220
221objects : $(OBJECTS)
222
223$(TARGET) : $(OBJECTS)
224 -@ echo
225 $(LD) $(LDFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)
226
227$(OBJECTS) : $(HEADERS) $(CASACORELIB) $(ATNF) $(PYRAP)
228
229staticlib: $(MEMBERS)
230
231clean :
232 -rm -f $(OBJECTS)
233
234cleanso :
235 -rm -f $(TARGET)
236
237realclean : clean cleanso
238
239test: objects tasap2.o
240 -@ echo
241 $(LD) -g -o /tmp/tasap2 $(OBJECTS) $(LIBS) tasap2.o
Note: See TracBrowser for help on using the repository browser.