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

GCC_OPT = -Wall -lm -static -O2
GPP_OPT = -Wall -lm -static -O2
PPC_OPT = -O2 -XS -Xt -Ci -Cr -Co -gl
JAV_OPT = -O -client

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

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_JAV	= $(patsubst sol%.java,%.e,$(PRG_JAV))
EXE     = $(EXE_C) $(EXE_CPP) $(EXE_PAS) $(EXE_ML) $(EXE_JAV)

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

%.e: sol%.java
	javac $(JAV_OPT) $^
	echo "java -client -cp \`dirname \$$0\` sol$*" > $*.e
	chmod 755 $*.e

mrproper: clean

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

