source: trunk/src/Makefile @ 2012

Last change on this file since 2012 was 2012, checked in by WataruKawasaki, 13 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.