wip
[tripe-android] / Makefile
index cd8e4a4..a03ba64 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,10 +10,16 @@ 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
@@ -22,6 +28,9 @@ JAVAFLAGS              =
 SCALAC                  = fsc
 SCALAFLAGS              = -optimise
 
+## Hack around https://issues.scala-lang.org/browse/SI-9689
+SCALAFLAGS             += -Yno-load-impl-class
+
 all::
 .PHONY: all
 
@@ -34,6 +43,7 @@ CLASSDIR               = cls/
        $(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)mkdir -p $(CLASSDIR) && \
                $(SCALAC) -d $(CLASSDIR) -cp $(CLASSDIR) $(SCALAFLAGS) $< && \
@@ -46,17 +56,21 @@ 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)
+
+TARGETS                        += util.stamp
 
 TARGETS                        += jni.stamp
+jni.stamp: util.stamp
 
-TARGETS                        += sock.stamp
-sock.stamp: jni.stamp
+TARGETS                        += sys.stamp
+sys.stamp: jni.stamp util.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))