# $Id: Makefile,v 1.20 2012/01/02 19:25:58 garyb Exp $
CXX = g++
INCLUDES = -I utilities -I images -I astrometry -I sbp 
LIBS = -lm -lfftw3 -ltmv -lcfitsio -lCCfits -ltmv_symband -lblas -llapack -lpthread -fopenmp
OPTFLAGS = -O3 -DASSERT

SUBDIRS = utilities images astrometry
CXXFLAGS = $(OPTFLAGS) $(INCLUDES)
SRC = $(shell ls *.cpp)

SUBOBJ = images/FITS.o \
	utilities/StringStuff.o \
        images/Image.o \
        images/FITSImage.o \
	utilities/Poly2d.o \
	utilities/Pset.o \
	astrometry/PixelMap.o \
	astrometry/PolyMap.o \
	astrometry/SCAMPMap.o \
        astrometry/Astrometry.o \
	images/HeaderFromStream.o 

all: MaskMap PSFHomTest

MaskMap: MaskMap.o $(SUBOBJ)
	$(CXX) $(CXXFLAGS) $^  $(LIBS) -o $@

PSFHomTest: PSFHomTest.o PSFEx.o sbp/SBPixel.o sbp/SBProfile.o utilities/fft.o utilities/Interpolant.o utilities/GTable.o utilities/Laguerre.o utilities/BinomFact.o utilities/Shear.o $(SUBOBJ)
	$(CXX) $(CXXFLAGS) $^  $(LIBS) -o $@

###############################################################
## Standard stuff:
###############################################################

export OPTFLAGS
export CXX

subs:
	for dir in $(SUBDIRS); do (cd $$dir && $(MAKE)); done

depend:
	for dir in $(SUBDIRS); do (cd $$dir && $(MAKE) depend); done
	$(CXX) $(CXXFLAGS) -MM $(SRC) > .$@

clean:
	for dir in $(SUBDIRS); do (cd $$dir && $(MAKE) clean); done
	rm -f *.o */*.o *~ *.dvi *.aux core .depend

ifeq (.depend, $(wildcard .depend))
include .depend
endif

.PHONY: all install dist depend clean 
