EXECS = equiv c-unions cpp-unions derived.class derived2.class

CFLAGS = -std=c11 -Wpedantic

all:            equiv c-unions cpp-unions derived.class derived2.class

equiv:          equiv.f
	gfortran -o $@ $<

c-unions:       unions.c
	gcc -o $@ $<

cpp-unions:     unions.cc
	g++ -o $@ $<

derived.class:  derived.java
	javac $<

derived2.class:  derived2.java
	javac $<

test:           all
	./c-unions
	./cpp-unions
	./equiv
	java derived2
	java derived

clean:
	rm -f *~ $(EXECS) *.o *.class
