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

.PHONY: clean veryclean

#*******************************************************************#
ascii2amiga:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amiga2ascii:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amiga2asciiSample:	DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amiga2gadget:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
mlapm2amiga:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amiga2mlapm:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amiga2tipsy:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
gadget2ascii:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
galaxy2amiga:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
art2amiga:				DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
lcone2ascii:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
halos2geom:				DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
halos2binary:			DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
stat2halos:				DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
amigagrid2ascii:		DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS} -DHYDRO -DMONOATOMIC
sorthalos:				DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
ahf2binary:				DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}
ramses2gadget:		DEFINEFLAGS	=	-DVERBOSE -DHEADER ${MASTER_DEFINEFLAGS}

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

export DEFINEFLAGS

LIBS = 	../src/libio_serial/libio_serial.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
amiga2ascii:	amiga2ascii.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amiga2ascii amiga2ascii.c ${LIBS} ${LIBS} -lm

amiga2ascii2:   amiga2ascii2.c\
	                                ../src/libio/libio.a
        $(CC) -DHAVE_STDINT_H -DHAVE_STDBOOL_H -DNONC99=0 $(CFLAGS) $(LFLAGS) -o amiga2ascii2 amiga2ascii2.c ../src/libio/libio.a -lm

../src/libio/libio.a:
	make -C ../src/libio/

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

amiga2ascii2:	amiga2ascii2.c ${LIBS}
	$(CC) -DHAVE_STDINT_H -DHAVE_STDBOOL_H -DNONC99=0 $(CFLAGS) $(LFLAGS) -o amiga2ascii2 amiga2ascii2.c ${LIBS} ${LIBS} -lm

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

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

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

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

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

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

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

halos2geom:		halos2geom.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o halos2geom halos2geom.c ${LIBS} ${LIBS} -lm
	
ahf2binary:		ahf2binary.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o ahf2binary ahf2binary.c ${LIBS} ${LIBS} -lm
	
stat2halos:		stat2halos.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o stat2halos stat2halos.c ${LIBS} ${LIBS} -lm
	
sorthalos:		sorthalos.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o sorthalos sorthalos.c ${LIBS} ${LIBS} -lm
	
gadget2ascii:		gadget2ascii.c
	$(CC) $(CFLAGS) $(LFLAGS) -o gadget2ascii gadget2ascii.c -lm
	
amigagrid2ascii:	amigagrid2ascii.c ${LIBS}
	$(CC) $(CFLAGS) $(LFLAGS) -o amigagrid2ascii amigagrid2ascii.c ${LIBS} ${LIBS} -lm

ramses2gadget:		ramses2gadget.f90
	$(FC) $(CFLAGS) $(LFLAGS) -x f95-cpp-input -o ramses2gadget ramses2gadget.f90

# HOW TO MAKE THE LIBRARIES
../src/libio_serial/libio_serial.a:
	cd ../src/libio_serial ; ${MAKE} libio_serial.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 ramses2gadget *.o

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