#******************************************************************#
#                                                                  #
# Makefile for         AMIGA analysis software                     #
#                     =========================                    #
#                                                                  #
# current version 1.0 (30/01/2005), Alexander Knebe                #
#******************************************************************#

.PHONY: clean veryclean

#*******************************************************************#

amigaPk:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amigaXi:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amigaVstat:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amigaSigmaR:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amigaHaloVellipsoid:		DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
HaloTracker:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS} -DTRACKER -DMULTIMASS
MergerTree:		DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}

CFLAGS  =       ${OPTIMIZE} ${CCFLAGS} ${DEFINEFLAGS}
LFLAGS  =       ${LNFLAGS}

export DEFINEFLAGS

LIBS = 	../src/libio_serial/libio_serial.a \
	../src/libio/libio.a \
	../src/libahf/libahf.a \
	../src/libmhd/libmhd.a \
	../src/libgravity/libgravity.a \
	../src/libparticles/libparticles.a \
	../src/libutility/libutility.a \
	../src/libgrids/libgrids.a


# HOW TO MAKE THE ACTUAL PROGRAMMES
amigaPk:	amigaPk.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amigaPk amigaPk.c ${LIBS} ${LIBS} -lm

amigaXi:	amigaXi.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amigaXi amigaXi.c ${LIBS} ${LIBS} -lm

amigaVstat:	amigaVstat.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amigaVstat amigaVstat.c ${LIBS} ${LIBS} -lm

amigaSigmaR:	amigaSigmaR.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amigaSigmaR amigaSigmaR.c ${LIBS} ${LIBS} -lm
	
amigaHaloVellipsoid:	amigaHaloVellipsoid.c ${LIBS} ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amigaHaloVellipsoid amigaHaloVellipsoid.c ${LIBS} -lm

HaloTracker:	HaloTracker.c ${LIBS} 
	$(CC) $(CFLAGS) $(LFLAGS) -o HaloTracker ${LIBS} HaloTracker.c  ${LIBS} -lm 

MergerTree:	MergerTree.c  ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o MergerTree  ${LIBS} MergerTree.c  ${LIBS} -lm
	
MergerTreeF:	MergerTree.f
	$(FC) -O2 -o MergerTreeF MergerTree.f

FindHalo:	FindHalo.c
	$(CC) $(CFLAGS) $(LFLAGS) -o FindHalo FindHalo.c -lm
	
FindHaloPairs:	FindHaloPairs.c
	$(CC) $(CFLAGS) $(LFLAGS) -o FindHaloPairs FindHaloPairs.c -lm
	
FindHaloPairs2:	FindHaloPairs2.c
	$(CC) $(CFLAGS) $(LFLAGS) -o FindHaloPairs2 FindHaloPairs2.c -lm
	
HaloHistory:		HaloHistory.f
	$(FC) -O2 -o HaloHistory HaloHistory.f

HaloHaloXi:		HaloHaloXi.f
	$(FC) -O2 -o HaloHaloXi HaloHaloXi.f


# HOW TO MAKE THE LIBRARIES
../src/libio_serial/libio_serial.a:
	cd ../src/libio_serial ; ${MAKE} libio_serial.a

../src/libio/libio.a:
	cd ../src/libio ; ${MAKE} libio.a

../src/libahf/libahf.a:
	cd ../src/libahf ; ${MAKE} libahf.a

../src/libmhd/libmhd.a:
	cd ../src/libmhd ; ${MAKE} libmhd.a

../src/libgravity/libgravity.a:
	cd ../src/libgravity ; ${MAKE} libgravity.a

../src/libgrids/libgrids.a:
	cd ../src/libgrids ; ${MAKE} libgrids.a

../src/libparticles/libparticles.a:
	cd ../src/libparticles ; ${MAKE} libparticles.a

../src/libutility/libutility.a:
	cd ../src/libutility ; ${MAKE} libutility.a



clean:
	rm -f   amigaPk amigaXi amigaVstat amigaSigmaR amigaHaloVellipsoid HaloTracker MergerTree HaloHistory HaloHaloXi *.o

veryclean:
	rm -f   amigaPk amigaXi amigaVstat amigaSigmaR amigaHaloVellipsoid HaloTracker MergerTree HaloHistory HaloHaloXi *.o *~ *~.*
