CC = gcc
CCFLAGS = 
CCP = g++
CCPFLAGS = -fPIC -I../include -I../qubtree -I../_qubtree
#-O2
LN = g++
LNFLAGS = -shared -fPIC -lpthread -lm -g
OBJ = obj

OBJS =  ${OBJ}/filterdatad.o \
        ${OBJ}/qubfits.o \
        ${OBJ}/QUB_LMFitter.o \
        ${OBJ}/QUB_BasicCurve.o \
        ${OBJ}/QUB_Curve_Expo.o \
        ${OBJ}/QUB_Curve_DecExpo.o \
        ${OBJ}/QUB_Curve_Gaussian.o \
	${OBJ}/lmmin.o \
	${OBJ}/lm_eval.o

default: libqubfits.so

libqubfits.so: ${OBJS}
	${LN} ${LNFLAGS} -o libqubfits.so ${OBJS}

clean:
	rm -f ${OBJ}/* libqubfits.so


${OBJ}/filterdatad.o: filterdatad.cpp qubfits.h
	${CCP} ${CCPFLAGS} -c filterdatad.cpp -o ${OBJ}/filterdatad.o
${OBJ}/qubfits.o: qubfits.cpp qubfits.h
	${CCP} ${CCPFLAGS} -c qubfits.cpp -o ${OBJ}/qubfits.o
${OBJ}/QUB_LMFitter.o: QUB_LMFitter.cpp QUB_LMFitter.h qubfits.h
	${CCP} ${CCPFLAGS} -c QUB_LMFitter.cpp -o ${OBJ}/QUB_LMFitter.o
${OBJ}/QUB_BasicCurve.o: QUB_BasicCurve.cpp QUB_BasicCurve.h qubfits.h
	${CCP} ${CCPFLAGS} -c QUB_BasicCurve.cpp -o ${OBJ}/QUB_BasicCurve.o
${OBJ}/QUB_Curve_Expo.o: QUB_Curve_Expo.cpp QUB_Curve_Expo.h QUB_BasicCurve.h
	${CCP} ${CCPFLAGS} -c QUB_Curve_Expo.cpp -o ${OBJ}/QUB_Curve_Expo.o
${OBJ}/QUB_Curve_DecExpo.o: QUB_Curve_DecExpo.cpp QUB_Curve_DecExpo.h QUB_BasicCurve.h
	${CCP} ${CCPFLAGS} -c QUB_Curve_DecExpo.cpp -o ${OBJ}/QUB_Curve_DecExpo.o
${OBJ}/QUB_Curve_Gaussian.o: QUB_Curve_Gaussian.cpp QUB_Curve_Gaussian.h QUB_BasicCurve.h
	${CCP} ${CCPFLAGS} -c QUB_Curve_Gaussian.cpp -o ${OBJ}/QUB_Curve_Gaussian.o
${OBJ}/lmmin.o: lmmin.c lmmin.h
	${CC} ${CCPFLAGS} -c lmmin.c -o ${OBJ}/lmmin.o
${OBJ}/lm_eval.o: lm_eval.c lm_eval.h lmmin.h
	${CC} ${CCPFLAGS} -c lm_eval.c -o ${OBJ}/lm_eval.o
