CC = gcc -g
LINKER= gcc -g

EXE=
CFLAGS = \
  -L../../../lib \
  -I../../../include

LIBS = -lluc4c_nc -llucky_nc -lgmp -lm -ldl -lstdc++ 
LUC2C=../../../bin/luc2c

ifeq ($(HOSTTYPE),mac)
	LINKER=g++ -g
	LIBS = -lluc4c_nc -llucky_nc -lgmp -lm -ldl 
endif

ifeq ($(HOSTTYPE),cross-win32)
  EXE=
  CFLAGS = \
   -L../../../lib \
   -I../../../include \
    -Winline -Wimplicit-function-declaration 

  LIBS = -lluc4c_nc -llucky_nc -lgmp -lws2_32 -lm -lstdc++   -lole32
  LUC2C=../../../bin/luc2c$(EXE) 
  LINKER=i586-mingw32msvc-gcc
  CC= i586-mingw32msvc-cc
endif

ifeq ($(HOSTTYPE),cross-win32)
  EXE=
  CFLAGS = \
   -L../../../lib \
   -I../../../include \
    -Winline -Wimplicit-function-declaration 

  LIBS = -lluc4c_nc -llucky_nc -lgmp -lws2_32 -lm -lstdc++   -mno-cygwin  -lole32
  LUC2C=../../../bin/luc2c$(EXE) 
endif

ifeq ($(HOSTTYPE),cygwin)
  EXE=.exe
  CFLAGS = \
    -L../../../lib  \
    -I../../../include \
    -Winline -Wimplicit-function-declaration 

  LIBS = -lluc4c_nc -llucky_nc -lgmp -lws2_32 -lm -lstdc++
  LUC2C=../../../bin/luc2c$(EXE) 
endif


################################################################
# Calling lucky from C

foo.c: foo.luc
	$(LUC2C) foo.luc

foo.o : foo.c
	$(CC) -c $(CFLAGS) foo.c

call_foo.o: call_foo.c
	$(CC) -c $(CFLAGS) call_foo.c

foo$(EXE): foo.o call_foo.o 
	$(LINKER) $(CFLAGS) -o $@ $^  $(LIBS) 


################################################################

clean:
	rm -f run *.o *~ foo foo.h foo.c *.gp *.plot *.rif


test : clean foo$(EXE)
ifeq ($(HOSTTYPE),win32)
	foo$(EXE) 
else
	./foo > test.rif
	rm -f test.res && diff -u -i  test.rif.exp test.rif > test.res
	[ ! -s test.res ] && make clean 
endif

utest:
	cp test.rif test.rif.exp 


