panama tools and demos
[panamaz] / test-api / Makefile
1
2 CFLAGS=-g -fPIC
3
4 JAVA_HOME ?= /home/notzed/src/openjdk-panama-14
5 JAVAC=$(JAVA_HOME)/bin/javac
6 JAVA=$(JAVA_HOME)/bin/java
7
8 all: bin/libapi.so bin/api.classes bin/classes/api/test/TestAPI.class
9
10 bin/classes/api/test/TestAPI.class: api/test/TestAPI.java bin/api.classes
11         $(JAVAC) -cp bin/classes -d bin/classes $<
12
13 bin/api.classes: bin/api.pm
14         ../src/generate -d bin/java -t api -c APILib -lapi ./bin/api.pm
15         $(JAVAC) -d bin/classes bin/java/api/*.java
16         touch $@
17
18 bin/api.pm: api.h
19         gcc -fplugin=../src/export.so -fplugin-arg-export-output=$@ ./$< -o /dev/null
20
21 bin/api.o: api.c api.h
22         $(CC) $(CFLAGS) -c -o $@ $<
23
24 bin/libapi.so: bin/api.o
25         $(CC) -o $@ -shared $^
26
27 check: all
28         $(JAVA) -Djava.library.path=bin -cp bin/classes api.test.TestAPI
29
30 clean:
31         rm -rf bin
32
33 .PHONY: check clean
34
35 $(if $(filter clean,$(MAKECMDGOALS)),,$(shell mkdir -p bin))