#############################################################################
# Makefile for building: TMC
# Generated by qmake (1.04a) (Qt 3.1.1) on: Tue Mar 23 09:51:05 2004
# Project:  TMC.pro
# Template: app
# Command: $(QMAKE) -o Makefile TMC.pro
#############################################################################

# further hand edits by sjs; no longer uses qmake

####### Compiler, tools and options # all moved to env vars in build script
#CPLFLAGS = -I. -fpermissive -I/usr/local/include 
#CPL = g++ -g ${GCC_FLAG} ${SYS_FLAG} 
#CC       = gcc
#CXX      = g++
#CFLAGS   = -DGCC_3 -g -pipe -Wno-deprecated
#CXXFLAGS = -DGCC_3 -g -pipe -Wno-deprecated

CXXFLAGS = ${CPLFLAGS}

INCPATH  = -I$(QTDIR)/mkspecs/default -I./include\
        -I$(QTDIR)/include \
	-I$(SDDAS_HOME)/include\
	-I$(CDF_HOME)/include\
	-I./src/qdos\
	-I./include
LINK     = g++
LIBS     = $(SUBLIBS)\
	-L$(QT_LIB_DIR) -lqt-mt\
	-L/usr/X11R6/lib -lXext -lX11 -lm\
	-L$(SDDAS_HOME)/lib -lPromote -ltrec_idfs -lbase_idfs -lVIDF\
	$(DBWRAPPER_LIB) -lserver -lCfg -ldB\
	-lant\
	-ldl\
	$(SQLITE3FLAG) $(MYSQLCLIENTFLAG) $(CRYPTFLAG)\
	-L./lib -lqdos -lqlapack -lqblas ${GFORT_FLAG}\
	-L$(CDF_LIB) -lcdf -lfl
AR       = ar cqs
MOC      = $(QTDIR)/bin/moc
UIC      = $(QTDIR)/bin/uic
QMAKE    = qmake
TAR      = tar -cf
GZIP     = gzip -9f
COPY     = cp -f
COPY_FILE= $(COPY) -p
COPY_DIR = $(COPY) -pR
DEL_FILE = rm -f
SYMLINK  = ln -sf
DEL_DIR  = rmdir
MOVE     = mv -f
CHK_DIR_EXISTS= test -d
MKDIR    = mkdir -p

####### Output directory

OBJECTS_DIR = .obj/

####### Files

HEADERS = include/write_data_files.h \
        include/truncated_moments_corrector.h \
        include/QTMC_idfs_utils.h \
        include/tmc_routines.h \
        include/idfs_retrieval.h \
        include/Idfs.h \
        include/qdutil_copies.h\
        include/tmcform.ui.h\
        include/tmcform.h\
        include/Qpeace_err_diag.h\
	include/tmc_data.h
SOURCES = src/main.cpp \
                src/write_data_files.cpp \
                src/tmnewt.c \
                src/truncated_moments_corrector.c \
                src/QTMC_idfs_utils.c \
                src/tmc_routines.cpp \
                src/idfs_retrieval.c \
                src/Idfs.cpp \
                src/qdutil_copies.cpp\
                src/tmcform.cpp\
		src/tmc_data.cpp
OBJECTS = obj/main.o \
                obj/write_data_files.o \
                obj/tmnewt.o \
                obj/truncated_moments_corrector.o \
                obj/QTMC_idfs_utils.o \
                obj/tmc_routines.o \
                obj/idfs_retrieval.o \
                obj/Idfs.o \
                obj/qdutil_copies.o \
                obj/tmcform.o\
		obj/tmc_data.o

FORMS = include/tmcform.ui
UICDECLS = include/tmcform.h
UICIMPLS = include/tmcform.cpp
SRCMOC   = moc/moc_tmcform.cpp
OBJMOC = obj/moc_tmcform.o
DIST	   = TMC.pro
QMAKE_TARGET = QTMC
DESTDIR  = ./bin/
TARGET   = QTMC

first: all
####### Implicit rules

.SUFFIXES: .c .cpp .cc .cxx .C

.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: Makefile_wQt $(TARGET) 
	$(MOVE) $(TARGET) $(DESTDIR)

$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
	$(LINK) $(LFLAGS) -o  $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)

mocables: $(SRCMOC)

$(MOC): 
	( cd $(QTDIR)/src/moc ; $(MAKE) )

Makefile: TMC.pro  $(QTDIR)/mkspecs/default/qmake.conf 
	$(QMAKE) -o Makefile TMC.pro
qmake: 
	@$(QMAKE) -o Makefile TMC.pro

mocclean:
	-$(DEL_FILE) $(OBJMOC)
	-$(DEL_FILE) $(SRCMOC)

uiclean:
	-$(DEL_FILE) $(UICIMPLS) $(UICDECLS)

yaccclean:
lexclean:
clean: mocclean #uiclean
	-$(DEL_FILE) $(OBJECTS) 
	-$(DEL_FILE) moc/*
	-$(DEL_FILE) lib/*
	-$(DEL_FILE) src/qdos/*.o
	-$(DEL_FILE) src/qdos/DCMyacc.c
	-$(DEL_FILE) src/qblas/*.o
	-$(DEL_FILE) src/qlapack/*.o
	-$(DEL_FILE) *~ core *.core


####### Sub-libraries

distclean: clean
	-$(DEL_FILE) $(TARGET) $(TARGET)


FORCE:

####### Compile

obj/main.o: src/main.cpp include/tmcform.h \
		include/tmc_routines.h \
		include/QTMC_idfs_utils.h \
		include/qdutil_copies.h \
		include/idfs_retrieval.h \
		include/write_data_files.h \
		include/truncated_moments_corrector.h \
		include/Idfs.h\
		include/tmcform.ui.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/main.o src/main.cpp

obj/write_data_files.o: src/write_data_files.cpp include/write_data_files.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/write_data_files.o src/write_data_files.cpp

obj/tmnewt.o: src/tmnewt.c include/truncated_moments_corrector.h
	$(CC) -c $(CFLAGS) $(INCPATH) -o obj/tmnewt.o src/tmnewt.c

obj/truncated_moments_corrector.o: src/truncated_moments_corrector.c include/truncated_moments_corrector.h
	$(CC) -c $(CFLAGS) $(INCPATH) -o obj/truncated_moments_corrector.o src/truncated_moments_corrector.c

obj/QTMC_idfs_utils.o: src/QTMC_idfs_utils.c include/QTMC_idfs_utils.h
	$(CC) -c $(CFLAGS) $(INCPATH) -o obj/QTMC_idfs_utils.o src/QTMC_idfs_utils.c

obj/tmc_routines.o: src/tmc_routines.cpp include/tmc_routines.h \
		include/QTMC_idfs_utils.h \
		include/qdutil_copies.h \
		include/idfs_retrieval.h \
		include/write_data_files.h \
		include/truncated_moments_corrector.h \
		include/Idfs.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/tmc_routines.o src/tmc_routines.cpp
	
obj/tmc_data.o: src/tmc_data.cpp include/tmc_data.h 
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/tmc_data.o src/tmc_data.cpp


obj/idfs_retrieval.o: src/idfs_retrieval.c include/idfs_retrieval.h \
		include/QTMC_idfs_utils.h
	$(CC) -c $(CFLAGS) $(INCPATH) -o obj/idfs_retrieval.o src/idfs_retrieval.c

obj/Idfs.o: src/Idfs.cpp include/Idfs.h \
		include/QTMC_idfs_utils.h \
		include/idfs_retrieval.h \
		include/qdutil_copies.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/Idfs.o src/Idfs.cpp

obj/qdutil_copies.o: src/qdutil_copies.cpp include/qdutil_copies.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/qdutil_copies.o src/qdutil_copies.cpp


obj/tmcform.o: src/tmcform.cpp include/tmcform.ui.h \
		include/tmcform.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/tmcform.o src/tmcform.cpp

obj/moc_tmcform.o: moc/moc_tmcform.cpp include/tmcform.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_tmcform.o moc/moc_tmcform.cpp

moc/moc_tmcform.cpp: $(MOC) include/tmcform.h
	$(MOC) include/tmcform.h -o moc/moc_tmcform.cpp

qblas:
	( cd $(QTMC_HOME)/src/qblas ; $(MAKE) all)
qdos:
	( cd $(QTMC_HOME)/src/qdos ; $(MAKE) libqdos.so; mv libqdos.so ${QTMC_HOME}/lib)
	
qlapack: 
	( cd $(QTMC_HOME)/src/qlapack ; $(MAKE) all)


####### Install

install: all 

uninstall: 

