source: branches/newfiller/src/Makefile @ 1792

Last change on this file since 1792 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.