~mdw
/
tripe-android
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Makefile: Move all artifacts into a subdirectory.
[tripe-android]
/
Makefile
diff --git
a/Makefile
b/Makefile
index
a03ba64
..
d99d6bd
100644
(file)
--- a/
Makefile
+++ b/
Makefile
@@
-15,7
+15,8
@@
PKGS_CFLAGS := $(foreach p,$(PKGS),$(shell pkg-config --cflags $p))
PKGS_LIBS := $(foreach p,$(PKGS),$(shell pkg-config --libs $p))
CC = gcc
PKGS_LIBS := $(foreach p,$(PKGS),$(shell pkg-config --libs $p))
CC = gcc
-CFLAGS = -O2 -g -Wall -fPIC $(addprefix -I,$(INCLUDES))
+CFLAGS = -O2 -g -Wall -pedantic -Werror \
+ -fPIC $(addprefix -I,$(INCLUDES))
CFLAGS += $(PKGS_CFLAGS)
LD = gcc
CFLAGS += $(PKGS_CFLAGS)
LD = gcc
@@
-26,7
+27,8
@@
JAVAC = javac
JAVAFLAGS =
SCALAC = fsc
JAVAFLAGS =
SCALAC = fsc
-SCALAFLAGS = -optimise
+SCALAFLAGS = -optimise -Xlint -Xlint:-package-object-classes \
+ -Yinline-warnings:false
## Hack around https://issues.scala-lang.org/browse/SI-9689
SCALAFLAGS += -Yno-load-impl-class
## Hack around https://issues.scala-lang.org/browse/SI-9689
SCALAFLAGS += -Yno-load-impl-class
@@
-34,47
+36,54
@@
SCALAFLAGS += -Yno-load-impl-class
all::
.PHONY: all
all::
.PHONY: all
-%.o: %.c
- $(call v_tag,CC)$(CC) -c $(CFLAGS) -MMD -o$@ $<
-CLEANFILES += *.o *.d
+OUTDIR = out/
-CLASSDIR = cls/
-%.stamp: %.java
+out/%.o: %.c
+ $(call v_tag,CC)mkdir -p $(OUTDIR) && $(CC) -c $(CFLAGS) -MMD -o$@ $<
+CLEANFILES += $(OUTDIR)*.o $(OUTDIR)*.d
+
+stamp = $(patsubst %,$(OUTDIR)%.stamp,$1)
+CLASSDIR = $(OUTDIR)cls/
+$(OUTDIR)%.stamp: %.java
$(call v_tag,JAVAC)mkdir -p $(CLASSDIR) && \
$(JAVAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(JAVAFLAGS) $< && \
echo built >$@
$(V_AT)$(SCALAC) -reset
$(call v_tag,JAVAC)mkdir -p $(CLASSDIR) && \
$(JAVAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(JAVAFLAGS) $< && \
echo built >$@
$(V_AT)$(SCALAC) -reset
-%.stamp: %.scala
+
$(OUTDIR)
%.stamp: %.scala
$(call v_tag,SCALAC)mkdir -p $(CLASSDIR) && \
$(SCALAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(SCALAFLAGS) $< && \
echo built >$@
$(call v_tag,SCALAC)mkdir -p $(CLASSDIR) && \
$(SCALAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(SCALAFLAGS) $< && \
echo built >$@
-CLEANFILES += *.stamp
+CLEANFILES +=
$(OUTDIR)
*.stamp
clean::; rm -rf $(CLASSDIR)
clean::; rm -rf $(CLASSDIR)
-objects = $(patsubst %.c,%$2,$1)
+objects = $(patsubst %.c,
$(OUTDIR)
%$2,$1)
-TARGETS += libtoy.so
+TARGETS +=
$(OUTDIR)
libtoy.so
libtoy.so_SOURCES = jni.c
libtoy.so_SOURCES = jni.c
-libtoy.so: $(call objects,$(libtoy.so_SOURCES),.o)
+
$(OUTDIR)
libtoy.so: $(call objects,$(libtoy.so_SOURCES),.o)
$(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^ $(LIBS)
$(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^ $(LIBS)
-TARGETS += util.stamp
-
-TARGETS += jni.stamp
-jni.stamp: util.stamp
-
-TARGETS += sys.stamp
-sys.stamp: jni.stamp util.stamp
-
-TARGETS += admin.stamp
-admin.stamp: util.stamp
-
-TARGETS += main.stamp
-main.stamp: jni.stamp
+CLASSES += util
+CLASSES += sys
+sys_DEPS = util
+CLASSES += admin
+admin_DEPS = sys util
+CLASSES += tar
+tar_DEPS = util
+CLASSES += keys
+keys_DEPS = tar sys util
+CLASSES += main
+main_DEPS = sys
+
+$(foreach c,$(CLASSES),$(eval $(call stamp,$c): $(call stamp,$($c_DEPS))))
+TARGETS += $(call stamp,$(CLASSES))
all:: $(TARGETS)
ALLSOURCES += $(foreach t,$(TARGETS),$($t_SOURCES))
all:: $(TARGETS)
ALLSOURCES += $(foreach t,$(TARGETS),$($t_SOURCES))
+repl: $(TARGETS)
+ scala -cp $(CLASSDIR) -Djava.library.path=$(OUTDIR)
+
clean::; rm -f $(CLEANFILES) $(TARGETS)
.PHONY: clean
clean::; rm -f $(CLEANFILES) $(TARGETS)
.PHONY: clean