# --- variables defined by configure ---
CC = gcc
CFLAGS = -O -DHAVE_UNDERSCORE -L./ -looptools -Wl,-Lc:/cygwin/lib -lml32i2b -lgdi32 -Lc:/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 -lg2c
FC = g77
FFC = g77
FFLAGS = -O0 -DQEXT=DBLE
MCC = mprep.exe 
MCCFLAGS = -o 
MCCTARGETS = LoopTools.exe
PREFIX = 
# --- end defs by configure ---

LIBDIR = $(PREFIX)/lib
INCLUDEDIR = $(PREFIX)/include
BINDIR = $(PREFIX)/bin

LIBTARGETS = libooptools.a libooptools_check.a
BINTARGETS = $(MCCTARGETS) utils/ccf utils/F77
INCLUDETARGETS = include/looptools.h include/clooptools.h include/ltproto.h


all: $(LIBTARGETS) $(MCCTARGETS)

install: all
	-mkdir $(PREFIX)
	-mkdir $(LIBDIR) $(BINDIR) $(INCLUDEDIR)
	cp $(LIBTARGETS) $(LIBDIR)
	cp $(INCLUDETARGETS) $(INCLUDEDIR)
	cp $(BINTARGETS) $(BINDIR)


ff_objs:
	cd ff ; $(MAKE) FC="$(FC)" FFLAGS="$(FFLAGS)"
	touch ff_objs

lt_objs:
	cd fortran ; $(MAKE) FC="$(FFC)" FFLAGS="$(FFLAGS)" \
	                     CC="$(CC)" CFLAGS="$(CFLAGS)" CHECK=0
	touch lt_objs

ltcheck_objs:
	cd fortran ; $(MAKE) FC="$(FFC)" FFLAGS="$(FFLAGS)" \
	                     CC="$(CC)" CFLAGS="$(CFLAGS)" CHECK=1
	cd check ; $(MAKE) FC="$(FFC)" FFLAGS="$(FFLAGS)"
	touch ltcheck_objs


libooptools.a: ff_objs lt_objs
	$(AR) $(ARFLAGS) $@ ff/*.o fortran/*.o0

libooptools_check.a: ff_objs ltcheck_objs
	$(AR) $(ARFLAGS) $@ ff/*.o fortran/*.o1 check/*.o

LoopTools.c: mma/LoopTools.tm
	$(MCC) $(MCCFLAGS) $@ mma/LoopTools.tm

LoopTools.exe: LoopTools.c
	$(CC) -o $@ LoopTools.c $(CFLAGS)

clean:
	cd ff ; $(MAKE) clean
	cd fortran ; $(MAKE) clean
	cd check ; $(MAKE) clean
	$(RM) $(RMFLAGS) $(LIBTARGETS) $(MCCTARGETS) ff_objs lt_objs ltcheck_objs fortran/*.for ff/*.for check/*.for


