#FC     = g77
#FFLAGS = -O2
#LDFLAGS = -O2
#FC = ifort
#FFLAGS = -O2 -w -convert big_endian  -Vaxlib
#LDFLAGS = -O2 -w  -convert big_endian  -Vaxlib
CC     = gcc   
CFLAGS = -c -g
FC = ifort 
FFLAGS =  -O3 -axW -ftz -unroll -xW -openmp -i-dynamic -mcmodel=medium -convert big_endian
LDFLAGS = -O3 -axW -ftz -unroll -xW -openmp -i-dynamic -mcmodel=medium -convert big_endian

#FFLAGS = -O3  -Bstatic -byteswapio -fastsse -Mipa=fast
#LDFLAGS = -O3  -Bstatic  -byteswapio -fastsse -Mipa=fast

#FC     = pgf77
#FFLAGS = -O3  -mp  -byteswapio -mcmodel=medium -Mlarge_arrays -Mnoframe -Munroll -Knoieee
#LDFLAGS = -O3  -mp   -byteswapio -mcmodel=medium -Mlarge_arrays -Mnoframe -Munroll -Knoieee
#FFLAGS = -O3 
#LDFLAGS = -O3 


BIN     = PMhalosM PMstartM PMsel PMmodels PMselectM PMselect PMpowerM
OBJS    = PMhalosM.o PMauxiliary.o PMstartM.o PMselectM.o PMpowerM.o\
           PMfields.o PM_to_ASCIIm.o PM_to_ASCII.o
HEADERS = PMparameters.h PMinitial.h PMlists.h 

#$(BIN) : $(OBJS)   
#	$(FC) $(LDFLAGS) $(OBJS) -o $(BIN) $(LIB)

#$(OBJS): $(HEADERS)

PMmain: PMmain.o PMauxiliary.o 
	$(FC) $(LDFLAGS) -o PMmain PMmain.o PMauxiliary.o $(LIB)

PMpower: PMpower.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMpower PMpower.o PMauxiliary.o $(LIB)

PMpowerM: PMpowerM.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o PMpowerM PMpowerM.o PMauxiliary.o $(LIB)

PMpowerM1: PMpowerM1.o 
	$(FC) $(LDFLAGS) -o PMpowerM1 PMpowerM1.o  $(LIB)

PMmodels: PMmodels.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o PMmodels PMmodels.o $(LIB)

PMhalos: PMhalos.o PMauxiliary.o PMparameters.h PMlists.h
	$(FC) $(LDFLAGS) -o  PMhalos PMhalos.o PMauxiliary.o  $(LIB)

PMhalosM: PMhalosM.o PMauxiliary.o PMparameters.h PMlists.h
	$(FC) $(LDFLAGS) -o   PMhalosM PMhalosM.o PMauxiliary.o $(LIB)

PMhalosM2: PMhalosM2.o PMauxiliary.o PMparameters.h PMlists2.h
	$(FC) $(LDFLAGS) -o   PMhalosM2 PMhalosM2.o PMauxiliary.o $(LIB)

PMstartM: PMstartM.o PMparameters.h 
	$(FC) $(LDFLAGS) -o  PMstartM PMstartM.o  $(LIB)

PMstartM.o: PMstartM.f PMparameters.h

PMstartCR: PMstartCR.o 
	$(FC) $(LDFLAGS) -o PMstartCR PMstartCR.o   $(LIB)

PMstartCRm2: PMstartCRm2.o
	$(FC) $(LDFLAGS) -o  PMstartCRm2 PMstartCRm2.o   $(LIB)

PMfields: PMfields.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMfields PMfields.o PMauxiliary.o  $(LIB)

PM_to_ASCIIm: PM_to_ASCIIm.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o   PM_to_ASCIIm PM_to_ASCIIm.o PMauxiliary.o  $(LIB)

PMselectM: PMselectM.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMselectM PMselectM.o PMauxiliary.o  $(LIB)

PMsel: PMsel.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMsel PMsel.o PMauxiliary.o  $(LIB)

PMgalaxy3: PMgalaxy3.o PMgalaxy.o
	$(FC) $(LDFLAGS) -o  PMgalaxy3p PMgalaxy3.o PMgalaxy.o  $(LIB)

PMgalaxy4: PMgalaxy4.o PMgalaxy.o
	$(FC) $(LDFLAGS) -o  PMgalaxy4 PMgalaxy4.o PMgalaxy.o  $(LIB)

PMgalaxy5: PMgalaxy5.o PMgalaxy.o handle_files_f77.o readTipsy.o 
	g77 -O2 -o  PMgalaxy5 PMgalaxy5.o  PMgalaxy.o handle_files_f77.o readTipsy.o 

.f.o: 
	$(FC) -c $(FFLAGS) $<

InOutDMtip_f77 : InOutDMtip_f77.o 
	$(CC)  $(CFLAGS) InOutDMtip_f77.c

handle_files_f77 : handle_files_f77.o
	$(CC)  $(CFLAGS) handle_files_f77.c

readTipsy : readTipsy.o
	$(CC)  $(CFLAGS) readTipsy.o  


clean:
	rm -f *.o
