X-Git-Url: https://git.distorted.org.uk/~mdw/tripe-android/blobdiff_plain/3a2f1a4ba4cc824e192c9d144b317a215e79c8d6..8eabb4ff13562f3550499ee599297f7e97fa8754:/Makefile diff --git a/Makefile b/Makefile index 2cf811a..a03ba64 100644 --- a/Makefile +++ b/Makefile @@ -6,21 +6,30 @@ v_tag_0 = @printf " %-8s %s\n" "$1" "$@"; V_AT = $(V_AT_$V) V_AT_0 = @ -JDK = /usr/lib/jvm/java-8-openjdk-amd64 +JDK = /usr/lib/jvm/default-java JDK_PLAT = linux INCLUDES = $(JDK)/include $(JDK)/include/$(JDK_PLAT) +PKGS = mLib catacomb +PKGS_CFLAGS := $(foreach p,$(PKGS),$(shell pkg-config --cflags $p)) +PKGS_LIBS := $(foreach p,$(PKGS),$(shell pkg-config --libs $p)) + CC = gcc -CFLAGS = -O0 -g -Wall -fPIC $(addprefix -I,$(INCLUDES)) +CFLAGS = -O2 -g -Wall -fPIC $(addprefix -I,$(INCLUDES)) +CFLAGS += $(PKGS_CFLAGS) LD = gcc +LIBS = $(PKGS_LIBS) LDFLAGS.so = -shared JAVAC = javac -JAVAFLAGS = -d . +JAVAFLAGS = + +SCALAC = fsc +SCALAFLAGS = -optimise -SCALAC = scalac -SCALAFLAGS = -d . -optimise +## Hack around https://issues.scala-lang.org/browse/SI-9689 +SCALAFLAGS += -Yno-load-impl-class all:: .PHONY: all @@ -29,28 +38,39 @@ all:: $(call v_tag,CC)$(CC) -c $(CFLAGS) -MMD -o$@ $< CLEANFILES += *.o *.d +CLASSDIR = cls/ %.stamp: %.java - $(call v_tag,JAVAC)$(JAVAC) $(JAVAFLAGS) $< && echo built >$@ + $(call v_tag,JAVAC)mkdir -p $(CLASSDIR) && \ + $(JAVAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(JAVAFLAGS) $< && \ + echo built >$@ + $(V_AT)$(SCALAC) -reset %.stamp: %.scala - $(call v_tag,SCALAC)$(SCALAC) $(SCALAFLAGS) $< && echo built >$@ + $(call v_tag,SCALAC)mkdir -p $(CLASSDIR) && \ + $(SCALAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(SCALAFLAGS) $< && \ + echo built >$@ CLEANFILES += *.stamp +clean::; rm -rf $(CLASSDIR) objects = $(patsubst %.c,%$2,$1) TARGETS += libtoy.so libtoy.so_SOURCES = jni.c libtoy.so: $(call objects,$(libtoy.so_SOURCES),.o) - $(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^ + $(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^ $(LIBS) -clean::; rm -rf uk/ +TARGETS += util.stamp TARGETS += jni.stamp +jni.stamp: util.stamp + +TARGETS += sys.stamp +sys.stamp: jni.stamp util.stamp -TARGETS += sock.stamp -sock.stamp: jni.stamp +TARGETS += admin.stamp +admin.stamp: util.stamp TARGETS += main.stamp -main.stamp: jni.stamp sock.stamp +main.stamp: jni.stamp all:: $(TARGETS) ALLSOURCES += $(foreach t,$(TARGETS),$($t_SOURCES))