diff options
| author | EuAndreh <eu@euandre.org> | 2025-12-08 12:40:00 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2025-12-08 13:09:22 -0300 |
| commit | 417604ab968e59daf28449922291bd80b47183d8 (patch) | |
| tree | 7c6fe0aab3c489409ed807d55bdaa9083bfb1c8e /Makefile | |
| parent | Bundle jars as a single one (diff) | |
| download | datomic-417604ab968e59daf28449922291bd80b47183d8.tar.gz datomic-417604ab968e59daf28449922291bd80b47183d8.tar.xz | |
share/java/: Get jars from zip
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 53 |
1 files changed, 33 insertions, 20 deletions
@@ -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. |
