Integrate the TrIPE server into the Java edifice.
[tripe-android] / Makefile
index 6e5ca0e..5edb29a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -40,7 +40,7 @@ CC                     = gcc
 CFLAGS                  = -O2 -g -Wall -pedantic -Werror
 
 ## Native linker.
-LD                      = gcc
+LD                      = gcc -Wl,-z,defs
 LDFLAGS.so              = -shared
 
 ## External `pkg-config' packages required.
@@ -107,14 +107,30 @@ V_AT_0                     = @
 ###--------------------------------------------------------------------------
 ### External native packages.
 
-PKGS_CFLAGS            := $(foreach p,$(PKGS),$(shell pkg-config --cflags $p))
-PKGS_LIBS              := $(foreach p,$(PKGS),$(shell pkg-config --libs $p))
+EXTPREFIX               = $(abs_builddir)/$(OUTDIR)/inst
+
+join-paths              = $(if $(filter /%,$2),$2,$1/$2)
+ext-srcdir              = $(or $($1_SRCDIR),../$1)
+
+PKG_CONFIG              = PKG_CONFIG_LIBDIR=$(OUTDIR)/inst/lib/pkgconfig \
+                               pkg-config --static
+
+PKGS_CFLAGS            := $(foreach p,$(PKGS),$(shell $(PKG_CONFIG) --cflags $p))
+PKGS_LIBS              := $(foreach p,$(PKGS),$(shell $(PKG_CONFIG) --libs $p))
 
 ALL_CFLAGS              = $(CFLAGS) -fPIC \
                                $(addprefix -I,$(JNI_INCLUDES)) \
+                               -I$(OUTDIR)/inst/include \
+                               -I$(call ext-srcdir,tripe)/common \
+                               -I$(call ext-srcdir,tripe)/priv \
+                               -I$(call ext-srcdir,tripe)/server \
+                               -I$(OUTDIR)/build/tripe/config \
                                $(PKGS_CFLAGS)
 
-LIBS                    = $(PKGS_LIBS)
+LIBS                    = $(OUTDIR)/build/tripe/server/libtripe.a \
+                               $(OUTDIR)/build/tripe/priv/libpriv.a \
+                               $(OUTDIR)/build/tripe/common/libcommon.a \
+                               -L$(OUTDIR)/inst/lib $(PKGS_LIBS)
 
 ###--------------------------------------------------------------------------
 ### Various other tweaks and overrides.
@@ -177,14 +193,16 @@ $(OUTDIR)/%.class-stamp: %.scala
 ###--------------------------------------------------------------------------
 ### Native-code libraries.
 
-SHLIBS                 += toy
-toy_SOURCES             = jni.c
+SHLIBS                 += tripe
+tripe_SOURCES           = jni.c
 
 shlibfile               = $(patsubst %,$(OUTDIR)/lib%.so,$1)
 SHLIBFILES              = $(call shlibfile,$(SHLIBS))
 TARGETS                        += $(SHLIBFILES)
 ALL_SOURCES            += $(foreach l,$(SHLIBS),$($l_SOURCES))
 
+$(call objects,$(tripe_SOURCES),.o): $(call stamps,ext,tripe)
+
 $(SHLIBFILES): $(OUTDIR)/lib%.so: $$(call objects,$$($$*_SOURCES),.o)
        $(call v_tag,LD)$(LD) $(LDFLAGS.so) -o$@ $^ $(LIBS)
 
@@ -203,7 +221,6 @@ CLASSES                     += tar:util
 CLASSES                        += progress:sys,util
 CLASSES                        += keys:progress,tar,sys,util
 CLASSES                        += terminal:progress,sys,util
-CLASSES                        += main:sys
 
 ## Machinery for parsing the `CLASSES' list.
 COMMA                   = ,
@@ -224,11 +241,6 @@ DISTFILES          += $(foreach c,$(CLASSES),\
 ###--------------------------------------------------------------------------
 ### External packages.
 
-EXTPREFIX               = $(abs_builddir)/$(OUTDIR)/inst
-
-join-paths              = $(if $(filter /%,$2),$2,$1/$2)
-ext-srcdir              = $(or $($1_SRCDIR),../$1)
-
 EXTERNALS              += adns
 adns_CONFIG             = --disable-dynamic