X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe-android/blobdiff_plain/a5ec891a1f3cbe4ae9aad5d2252f39b483ed543e..3bb2303d42adb3f37420f168b009ecfe64f888cd:/Makefile diff --git a/Makefile b/Makefile index 6e5ca0e..5edb29a 100644 --- 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