CFLAGS = -O2 -g -Wall -pedantic -Werror
## Native linker.
-LD = gcc
+LD = gcc -Wl,-z,defs
LDFLAGS.so = -shared
## External `pkg-config' packages required.
###--------------------------------------------------------------------------
### 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.
###--------------------------------------------------------------------------
### 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)
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 = ,
###--------------------------------------------------------------------------
### 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