#
# ogolny makefile do kompilowania programow
#

GCC_OPT = -Wall -O2
GPP_OPT = -Wall -O2
PPC_OPT = -Ci -Cr -Co -gl

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

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_JAVA= $(patsubst %.java,%.e,$(PRG_JAVA))
EXE     = $(EXE_C) $(EXE_CPP) $(EXE_PAS) $(EXE_ML) $(EXE_JAVA)

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: %.java
	javac $^
	echo "java -cp \`dirname \$$0\` $*" > $*.e
	chmod 755 $*.e

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

mrproper: clean

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

