From 9648222ef0ad7cd4478d61c3ffd6fe9926a859df Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 11 Sep 2014 15:47:31 +0200 Subject: [PATCH] Support specifying a JAR manifest --- jars.mk | 2 +- lib.mk | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/jars.mk b/jars.mk index 186a81df1..abe3f9fe5 100644 --- a/jars.mk +++ b/jars.mk @@ -16,7 +16,7 @@ define build-jar $$(trace-javac) javac $(GLOBAL_JAVACFLAGS) $$($(1)_JAVACFLAGS) -d $$($(1)_TMPDIR) \ $$(foreach fn, $$($(1)_SOURCES), '$$(fn)') \ -cp "$$(subst $$(space),,$$(foreach jar,$$($(1)_JARS),$$($$(jar)_PATH):))$$$$CLASSPATH" - $$(trace-jar) jar cf $$($(1)_PATH) -C $$($(1)_TMPDIR) . + $$(trace-jar) jar cfm $$($(1)_PATH) <(echo -e '$$(subst $$(newline),\n,$$($(1)_MANIFEST))') -C $$($(1)_TMPDIR) . @rm -rf $$($(1)_TMPDIR) $(1)_INSTALL_DIR ?= $$(libdir)/java diff --git a/lib.mk b/lib.mk index 16a43f45e..31308deaa 100644 --- a/lib.mk +++ b/lib.mk @@ -14,11 +14,22 @@ dist-files := OS = $(shell uname -s) +# Use bash (required for process substitution in the JAR function). +SHELL = bash + + # Hack to define a literal space. space := space += +# Hack to define a literal newline. +define newline + + +endef + + # Default installation paths. prefix ?= /usr/local libdir ?= $(prefix)/lib