#
# ogolny makefile do kompilowania programow
# 2005.07.22 - modyfikacja parametrow kompilacji  (aiwanicki)
#

GCC_OPT = -Wall -Wshadow -lm -static -O2 -fomit-frame-pointer
GPP_OPT = -Wall -Wshadow -lm -static -O2 -fomit-frame-pointer
PPC_OPT = -O2 -XS -Xt -Ci -Cr -Co -gl

PRG_C 	= $(wildcard *.c) 
PRG_CPP = $(wildcard *.cpp) 
PRG_PAS = $(wildcard *.pas)
PRG_ML  = $(wildcard *.ml)
PRG     = $(PRG_C) $(PRG_CPP) $(PRG_PAS) $(PRG_ML)

EXE_C   = $(patsubst %.c,%.e,$(PRG_C))
EXE_CPP = $(patsubst %.cpp,%.e,$(PRG_CPP))
EXE_PAS = $(patsubst %.pas,%.e,$(PRG_PAS))
EXE_ML  = $(patsubst %.ml,%.e,$(PRG_ML))
EXE     = $(EXE_C) $(EXE_CPP) $(EXE_PAS) $(EXE_ML)

all: $(EXE)

%.e: %.pas
	ppc386 $(PPC_OPT) $*.pas 
	mv $* $*.e

%.e: %.c
	gcc $(GCC_OPT) $^ -o $*.e

%.e: %.cpp
	g++ $(GPP_OPT) $^ -o $*.e

%.e: %.ml
	ocamlopt $^ -o $*.e
	rm -f *.cmx
	rm -f *.cmi
	rm -f *.cmo

mrproper: clean

clean:
	rm -f *.o
	rm -f *.e
	rm -f *~
	rm -f *.cmx
	rm -f *.cmi
	rm -f *.cmo

