summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2025-12-08 12:40:00 -0300
committerEuAndreh <eu@euandre.org>2025-12-08 13:09:22 -0300
commit417604ab968e59daf28449922291bd80b47183d8 (patch)
tree7c6fe0aab3c489409ed807d55bdaa9083bfb1c8e /Makefile
parentBundle jars as a single one (diff)
downloaddatomic-417604ab968e59daf28449922291bd80b47183d8.tar.gz
datomic-417604ab968e59daf28449922291bd80b47183d8.tar.xz
share/java/: Get jars from zip
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile53
1 files changed, 33 insertions, 20 deletions
diff --git a/Makefile b/Makefile
index 2b329ba..ae914c7 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,7 @@ EXEC = ./
## Where to store the installation. Empty by default.
DESTDIR =
LDLIBS =
+PROVERSION = datomic-pro-1.0.7469
JAVA = java -client
CLASSPATH = $(JARPATH)/clojure.jar
@@ -42,8 +43,6 @@ all:
include deps.mk
-sources.dir = $(sources.jar:.jar=.dir) $(NAME).dir
-
etc-files = \
etc/init.sql \
etc/logback.xml \
@@ -62,22 +61,25 @@ inits = \
derived-assets = \
+ src/$(PROVERSION)/dir.sentinel \
+ lib/dir.sentinel \
+ extracted.sentinel \
$(inits) \
$(NAME).jar \
+ $(NAME).dir \
unit.jar \
integration.jar \
bin/transactor \
bin/$(NAME) \
- $(sources.dir) \
dir-transactor.sentinel \
- dir-peer.sentinel \
transactor.jar \
peer.jar \
side-assets = \
+ src/$(PROVERSION)/ \
+ lib/ \
src/*.class \
tests/*.class \
- peer.d \
transactor.d \
@@ -87,24 +89,40 @@ side-assets = \
all: $(derived-assets)
-$(inits) $(sources.dir___): Makefile deps.mk
+$(inits) src/$(PROVERSION)/dir.sentinel: Makefile deps.mk
+$(NAME).dir: $(NAME).jar
+
+
+src/$(PROVERSION)/dir.sentinel: src/$(PROVERSION).zip
+ cd src && unzip -o $(PROVERSION).zip
+ touch $@
+
+lib/dir.sentinel: src/$(PROVERSION)/dir.sentinel
+ mkdir -p $(@D)
+ cp src/$(PROVERSION)/lib/console/*.jar $(@D)
+ cp src/$(PROVERSION)/lib/*.jar $(@D)
+ cp src/$(PROVERSION)/*.jar $(@D)
+ touch $@
+extracted.sentinel: lib/dir.sentinel
+ +$(MAKE) `find lib/*.jar | sed s:\.jar$$:.dir:`
+ touch $@
-src/$(NAME)__init.class: src/$(NAME).clj
- $(JAVA) --class-path src:share/java/*:$(CLASSPATH) clojure.main -e \
+src/$(NAME)__init.class: src/$(NAME).clj lib/dir.sentinel
+ $(JAVA) --class-path src:lib/*:$(CLASSPATH) clojure.main -e \
'(binding [*compile-path* "src"] \
(compile (quote $(NAME))))'
touch $@
tests/unit__init.class: tests/unit.clj $(NAME).jar
- CP='tests:share/java/*:$(NAME).jar:$(CLASSPATH)'; \
+ CP='tests:lib/*:$(NAME).jar:$(CLASSPATH)'; \
$(JAVA) --class-path "$$CP" clojure.main -e \
'(binding [*compile-path* "tests"] \
(compile (quote unit)))'
touch $@
tests/integration__init.class: tests/integration.clj $(NAME).jar
- CP='tests:share/java/*:$(NAME).jar:$(CLASSPATH)'; \
+ CP='tests:lib/*:$(NAME).jar:$(CLASSPATH)'; \
$(JAVA) --class-path "$$CP" clojure.main -e \
'(binding [*compile-path* "tests"] \
(compile (quote integration)))'
@@ -118,19 +136,14 @@ integration.jar: tests/integration__init.class
unit.jar integration.jar:
cd tests && jar -cvf ../$@ $**.class
-dir-transactor.sentinel: $(sources.dir)
- rsync -a --delete $(sources.jar:.jar=.dir/) $(NAME).dir/ transactor.d
- touch $@
-
-dir-peer.sentinel: $(sources.dir)
- rsync -a --delete $(sources.jar:.jar=.dir/) $(NAME).dir/ peer.d
+dir-transactor.sentinel: extracted.sentinel $(NAME).dir
+ rsync -a --delete lib/*.dir/ $(NAME).dir/ transactor.d
touch $@
transactor.jar: dir-transactor.sentinel
-peer.jar: dir-peer.sentinel
-transactor.jar peer.jar:
cd $*.d && jar -cf ../$@ .
-
+peer.jar: transactor.jar
+ ln -s transactor.jar peer.jar
@@ -173,7 +186,7 @@ install: all
cp src/$(NAME).clj '$(DESTDIR)$(SRCDIR)'
cp $(NAME).jar '$(DESTDIR)$(JAVADIR)'
cp transactor.jar '$(DESTDIR)$(JAVADIR)'
- cp peer.jar '$(DESTDIR)$(JAVADIR)'
+ cp -P peer.jar '$(DESTDIR)$(JAVADIR)'
## Uninstalls from $(DESTDIR)$(PREFIX). This is a perfect mirror
## of the "install" target, and removes *all* that was installed.