chiark / gitweb /
shake it all up
[tripe-android] / Makefile
CommitLineData
3a2f1a4b
MW
1### -*-makefile-*-
2
3V = 0
4v_tag = $(call v_tag_$V,$1)
5v_tag_0 = @printf " %-8s %s\n" "$1" "$@";
6V_AT = $(V_AT_$V)
7V_AT_0 = @
8
ac8e32b7 9JDK = /usr/lib/jvm/default-java
3a2f1a4b
MW
10JDK_PLAT = linux
11INCLUDES = $(JDK)/include $(JDK)/include/$(JDK_PLAT)
12
8eabb4ff
MW
13PKGS = mLib catacomb
14PKGS_CFLAGS := $(foreach p,$(PKGS),$(shell pkg-config --cflags $p))
15PKGS_LIBS := $(foreach p,$(PKGS),$(shell pkg-config --libs $p))
16
3a2f1a4b 17CC = gcc
8eabb4ff
MW
18CFLAGS = -O2 -g -Wall -fPIC $(addprefix -I,$(INCLUDES))
19CFLAGS += $(PKGS_CFLAGS)
3a2f1a4b
MW
20
21LD = gcc
8eabb4ff 22LIBS = $(PKGS_LIBS)
3a2f1a4b
MW
23LDFLAGS.so = -shared
24
25JAVAC = javac
b4cf5ec4 26JAVAFLAGS =
3a2f1a4b 27
81502866 28SCALAC = fsc
b4cf5ec4 29SCALAFLAGS = -optimise
3a2f1a4b 30
8eabb4ff
MW
31## Hack around https://issues.scala-lang.org/browse/SI-9689
32SCALAFLAGS += -Yno-load-impl-class
33
3a2f1a4b
MW
34all::
35.PHONY: all
36
37%.o: %.c
38 $(call v_tag,CC)$(CC) -c $(CFLAGS) -MMD -o$@ $<
39CLEANFILES += *.o *.d
40
2a02a846 41CLASSDIR = cls/
3a2f1a4b 42%.stamp: %.java
2a02a846
MW
43 $(call v_tag,JAVAC)mkdir -p $(CLASSDIR) && \
44 $(JAVAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(JAVAFLAGS) $< && \
45 echo built >$@
8eabb4ff 46 $(V_AT)$(SCALAC) -reset
3a2f1a4b 47%.stamp: %.scala
2a02a846
MW
48 $(call v_tag,SCALAC)mkdir -p $(CLASSDIR) && \
49 $(SCALAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(SCALAFLAGS) $< && \
50 echo built >$@
3a2f1a4b 51CLEANFILES += *.stamp
2a02a846 52clean::; rm -rf $(CLASSDIR)
3a2f1a4b
MW
53
54objects = $(patsubst %.c,%$2,$1)
55
56TARGETS += libtoy.so
57libtoy.so_SOURCES = jni.c
58libtoy.so: $(call objects,$(libtoy.so_SOURCES),.o)
8eabb4ff
MW
59 $(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^ $(LIBS)
60
61TARGETS += util.stamp
3a2f1a4b 62
8eabb4ff 63TARGETS += sys.stamp
25c35469 64sys.stamp: util.stamp
3a2f1a4b 65
7894831e 66TARGETS += admin.stamp
25c35469 67admin.stamp: util.stamp sys.stamp
7894831e 68
3a2f1a4b 69TARGETS += main.stamp
25c35469 70main.stamp: sys.stamp
3a2f1a4b
MW
71
72all:: $(TARGETS)
73ALLSOURCES += $(foreach t,$(TARGETS),$($t_SOURCES))
74
75clean::; rm -f $(CLEANFILES) $(TARGETS)
76.PHONY: clean
77
78-include $(call objects,$(ALLSOURCES),.d)