# Simple Makefile for Echidna
#

.SUFFIXES: .o .c .f
.c.o:
	$(CC) -c $(CFLAGS) $(IFLAGS) $(DFLAGS) $<
.f.o:
	$(F77) -c $(FFLAGS) $<


# Macros

CC = cc
CFLAGS = -O3 -fexpensive-optimizations -Wall
#CFLAGS = -g -Wall
F77 = f77
FFLAGS = -O3 -fexpensive-optimizations
#FFLAGS = -g
LIBS = -lm
IFLAGS = -I.

#DFLAGS = -DPARACHECK -DNOWEIGHT   # comment this line and uncomment the next if you want the old version
DFLAGS = -DPARACHECK
#DFLAGS = 

SRC=3dech.c min.c 3dio.c util.c sort.o tom548.f
OBJ=3dech.o min.o 3dio.o util.o sort.o tom548.o


# Explicit rule

all: 3dech_racs

3dech: $(OBJ)
	$(F77) $(FFLAGS) -o 3dech $(OBJ) $(LIBS)

3dech_racs: 3dech_racs.o min.o 3dio.o util.o sort.o tom548.o racs.o
	$(F77) $(FFLAGS) -o 3dech_racs 3dech_racs.o min.o 3dio.o util.o sort.o tom548.o racs.o $(LIBS)

3dech_manual: 3dech_manual.o min.o 3dio.o util.o sort.o tom548.o racs.o
	$(F77) $(FFLAGS) -o 3dech_manual 3dech_manual.o min.o 3dio.o util.o sort.o tom548.o racs.o $(LIBS)

clean: 
	rm -f *.o 3dech 3dech_racs racs.o

# Implicit rules

3dech.o: 3dech.c mydef.h util.h rmacros.h 3dio.h min.h sort.h
3dech_racs.o: 3dech_racs.c mydef.h util.h rmacros.h 3dio.h min.h sort.h racs.h physconst.h
3dech_manual.o: 3dech_manual.c mydef.h util.h rmacros.h 3dio.h min.h sort.h racs.h physconst.h
3dio.o: 3dio.c 3dio.h mydef.h util.h rmacros.h
racs.o: racs.c mydef.h rmacros.h 
min.o: min.c min.h
sort.o: sort.h mydef.h
util.o: util.c mydef.h util.h
