Makefile: Drop the classfile outputs down a level.
[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
13CC = gcc
14CFLAGS = -O0 -g -Wall -fPIC $(addprefix -I,$(INCLUDES))
15
16LD = gcc
17LDFLAGS.so = -shared
18
19JAVAC = javac
b4cf5ec4 20JAVAFLAGS =
3a2f1a4b 21
81502866 22SCALAC = fsc
b4cf5ec4 23SCALAFLAGS = -optimise
3a2f1a4b
MW
24
25all::
26.PHONY: all
27
28%.o: %.c
29 $(call v_tag,CC)$(CC) -c $(CFLAGS) -MMD -o$@ $<
30CLEANFILES += *.o *.d
31
2a02a846 32CLASSDIR = cls/
3a2f1a4b 33%.stamp: %.java
2a02a846
MW
34 $(call v_tag,JAVAC)mkdir -p $(CLASSDIR) && \
35 $(JAVAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(JAVAFLAGS) $< && \
36 echo built >$@
3a2f1a4b 37%.stamp: %.scala
2a02a846
MW
38 $(call v_tag,SCALAC)mkdir -p $(CLASSDIR) && \
39 $(SCALAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(SCALAFLAGS) $< && \
40 echo built >$@
3a2f1a4b 41CLEANFILES += *.stamp
2a02a846 42clean::; rm -rf $(CLASSDIR)
3a2f1a4b
MW
43
44objects = $(patsubst %.c,%$2,$1)
45
46TARGETS += libtoy.so
47libtoy.so_SOURCES = jni.c
48libtoy.so: $(call objects,$(libtoy.so_SOURCES),.o)
49 $(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^
50
3a2f1a4b
MW
51TARGETS += jni.stamp
52
53TARGETS += sock.stamp
54sock.stamp: jni.stamp
55
56TARGETS += main.stamp
57main.stamp: jni.stamp sock.stamp
58
59all:: $(TARGETS)
60ALLSOURCES += $(foreach t,$(TARGETS),$($t_SOURCES))
61
62clean::; rm -f $(CLEANFILES) $(TARGETS)
63.PHONY: clean
64
65-include $(call objects,$(ALLSOURCES),.d)