1+ include utils/java-shell-for-make/enable-java-shell.mk
2+
3+ ifeq ($(OS ) , WINDOWS)
4+ MVN := mvn.cmd
5+ else
16MVN := mvn
2- M2_HOME := $(shell $(MVN ) org.apache.maven.plugins:maven-help-plugin:3.4.0:effective-settings \
3- | grep localRepository \
4- | sed 's| * <localRepository>\(.* \) </localRepository> *|\1|g' )
7+ endif
8+
9+ mvn := try { \
10+ System.setProperty("jdk.lang.Process.allowAmbiguousCommands", "true"); \
11+ List<String> cmd = new ArrayList<>(); \
12+ for (String x : "$(MVN ) ".split("\\s+")) cmd.add(x); \
13+ for (String x : commandLineArgs) cmd.add(x); \
14+ exec(cmd); } \
15+ finally { \
16+ System.setProperty("jdk.lang.Process.allowAmbiguousCommands", "false"); }
17+
18+ M2_HOME := $(shell \
19+ exitOnError( \
20+ /* cd into random directory without pom.xml in order to force Maven "stub" project * / \
21+ captureOutput(err::println, \
22+ Files.createTempDirectory("mvn-stub-") .toFile(), \
23+ "$(CURDIR ) /$(SHELL ) ", $(call quote-for-java,$(mvn ) ) , "--", \
24+ "org.apache.maven.plugins:maven-help-plugin:3.4.0:effective-settings", \
25+ "-Doutput=$(CURDIR ) /effective-settings.xml")); \
26+ println( \
27+ xpath(new File("effective-settings.xml"), \
28+ "/*/*[local-name()='localRepository']/text()") \
29+ .replace('\\', '/')); \
30+ )
531
632LOUISUTDML_VERSION := 2.11.0-p1
733LOUIS_VERSION := 3.21.0-p2
834
9- rwildcard = $(shell [ -d $1 ] && find $1 -type f -name '$2' | sed 's/ / \\ /g' )
35+ rwildcard = $(shell if (new File("$1") .isDirectory()) glob("$1**/$2").forEach(x -> println(x.getPath().replace('\\', '/').replace(" ", " \\ "))); )
1036
1137install : \
1238 $(M2_HOME ) /be/docarch/oxt-maven-plugin/1.0-SNAPSHOT/oxt-maven-plugin-1.0-SNAPSHOT.jar \
1339 $(M2_HOME ) /be/docarch/l10n-maven-plugin/1.0-SNAPSHOT/l10n-maven-plugin-1.0-SNAPSHOT.jar \
1440 $(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -aarch64-MacOSX-gpp-shared.nar \
1541 $(M2_HOME ) /org/liblouis/louisutdml/$(LOUISUTDML_VERSION ) /louisutdml-$(LOUISUTDML_VERSION ) -aarch64-MacOSX-gpp-shared.nar \
1642 $(M2_HOME ) /org/liblouis/louisutdml/$(LOUISUTDML_VERSION ) /louisutdml-$(LOUISUTDML_VERSION ) -aarch64-MacOSX-gpp-executable.nar
17- $( MVN ) clean install -Pmacosx_aarch64
43+ exec( " $( SHELL ) " , $( call quote-for-java, $( mvn ) ) , " -- " , " clean" , " install" , " -Pmacosx_aarch64" ) ;
1844
1945# Maven can not automatically resolve these dependencies
2046$(M2_HOME ) /be/docarch/oxt-maven-plugin/1.0-SNAPSHOT/oxt-maven-plugin-1.0-SNAPSHOT.jar : \
2147 utils/oxt-maven-plugin/pom.xml \
2248 $(call rwildcard,utils/oxt-maven-plugin/src/main/,* )
23- cd $(dir $< ) && $(MVN ) clean install
49+ exec(new File( " $( dir $< ) " ), " $( CURDIR ) / $( SHELL ) " , $( call quote-for-java, $( mvn ) ) , " -- " , " clean" , " install" ) ;
2450
2551$(M2_HOME ) /be/docarch/l10n-maven-plugin/1.0-SNAPSHOT/l10n-maven-plugin-1.0-SNAPSHOT.jar : \
2652 utils/l10n-maven-plugin/pom.xml \
2753 $(call rwildcard,utils/l10n-maven-plugin/src/main/,* )
28- cd $(dir $< ) && $(MVN ) clean install
54+ exec(new File( " $( dir $< ) " ), " $( CURDIR ) / $( SHELL ) " , $( call quote-for-java, $( mvn ) ) , " -- " , " clean" , " install" ) ;
2955
3056$(M2_HOME ) /com/github/maven-nar/nar-maven-plugin/3.5.3-SNAPSHOT/nar-maven-plugin-3.5.3-SNAPSHOT.jar : \
3157 utils/nar-maven-plugin/pom.xml \
3258 $(call rwildcard,utils/nar-maven-plugin/src/main/,* )
33- cd $(dir $< ) && $(MVN ) clean install
59+ exec(new File( " $( dir $< ) " ), " $( CURDIR ) / $( SHELL ) " , $( call quote-for-java, $( mvn ) ) , " -- " , " clean" , " install" ) ;
3460
3561ifneq (,$(findstring -SNAPSHOT,$(LOUIS_VERSION ) ) )
3662$(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -aarch64-MacOSX-gpp-shared.nar : \
3763 libs/liblouis/pom.xml \
3864 $(call rwildcard,libs/liblouis/src/,* )
39- $(MAKE ) -C $(dir $< ) clean compile-macosx install
65+ exec( " $( MAKE) " , " -C " , " $( dir $< ) " , " clean" , " compile-macosx" , " install" ) ;
4066else
4167$(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -aarch64-MacOSX-gpp-shared.nar :
42- $(MVN ) org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get \
43- -Dartifact=org.liblouis:louis:$(LOUIS_VERSION ) :nar:aarch64-MacOSX-gpp-shared
68+ exec(" $( SHELL) " , $( call quote-for-java,$( mvn) ) , " --" , \
69+ " org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get" , \
70+ " -Dartifact=org.liblouis:louis:$( LOUIS_VERSION) :nar:aarch64-MacOSX-gpp-shared" );
4471endif
4572
4673ifneq (,$(findstring -SNAPSHOT,$(LOUISUTDML_VERSION ) ) )
@@ -49,7 +76,7 @@ $(M2_HOME)/org/liblouis/louisutdml/$(LOUISUTDML_VERSION)/louisutdml-$(LOUISUTDML
4976 libs/liblouisutdml/pom.xml \
5077 $(call rwildcard,libs/liblouisutdml/src/,* ) \
5178 $(M2_HOME ) /com/github/maven-nar/nar-maven-plugin/3.5.3-SNAPSHOT/nar-maven-plugin-3.5.3-SNAPSHOT.jar
52- $(MAKE ) -C $(dir $< ) clean compile-macosx install
79+ exec( " $( MAKE) " , " -C " , " $( dir $< ) " , " clean" , " compile-macosx" , " install" ) ;
5380endif
5481
5582install-windows : \
@@ -58,27 +85,29 @@ install-windows : \
5885 $(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -i686-w64-mingw32-gpp-executable.nar \
5986 $(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -x86_64-w64-mingw32-gpp-executable.nar \
6087 $(M2_HOME ) /org/liblouis/louisutdml/$(LOUISUTDML_VERSION ) /louisutdml-$(LOUISUTDML_VERSION ) -i686-w64-mingw32-gpp-executable.nar
61- $( MVN ) clean install -Pwindows_x86
88+ exec( " $( SHELL ) " , $( call quote-for-java, $( mvn ) ) , " -- " , " clean" , " install" , " -Pwindows_x86" ) ;
6289
6390ifneq (,$(findstring -SNAPSHOT,$(LOUIS_VERSION ) ) )
6491$(M2_HOME)/org/liblouis/louis/$(LOUIS_VERSION)/louis-$(LOUIS_VERSION)-i686-w64-mingw32-gpp-executable.nar \
6592$(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -x86_64-w64-mingw32-gpp-executable.nar : \
6693 libs/liblouis/pom.xml \
6794 $(call rwildcard,libs/liblouis/src/,* )
68- $(MAKE ) -C $(dir $< ) clean compile-windows install
95+ exec( " $( MAKE) " , " -C " , " $( dir $< ) " , " clean" , " compile-windows" , " install" ) ;
6996else
7097$(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -i686-w64-mingw32-gpp-executable.nar :
71- $(MVN ) org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get \
72- -Dartifact=org.liblouis:louis:$(LOUIS_VERSION ) :nar:i686-w64-mingw32-gpp-executable
98+ exec(" $( SHELL) " , $( call quote-for-java,$( mvn) ) , " --" , \
99+ " org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get" , \
100+ " -Dartifact=org.liblouis:louis:$( LOUIS_VERSION) :nar:i686-w64-mingw32-gpp-executable" );
73101$(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -x86_64-w64-mingw32-gpp-executable.nar :
74- $(MVN ) org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get \
75- -Dartifact=org.liblouis:louis:$(LOUIS_VERSION ) :nar:x86_64-w64-mingw32-gpp-executable
102+ exec(" $( SHELL) " , $( call quote-for-java,$( mvn) ) , " --" , \
103+ " org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get" , \
104+ " -Dartifact=org.liblouis:louis:$( LOUIS_VERSION) :nar:x86_64-w64-mingw32-gpp-executable" );
76105endif
77106
78107ifneq (,$(findstring -SNAPSHOT,$(LOUISUTDML_VERSION ) ) )
79108$(M2_HOME ) /org/liblouis/louisutdml/$(LOUISUTDML_VERSION ) /louisutdml-$(LOUISUTDML_VERSION ) -i686-w64-mingw32-gpp-executable.nar : \
80109 libs/liblouisutdml/pom.xml \
81110 $(call rwildcard,libs/liblouisutdml/src/,* ) \
82111 $(M2_HOME ) /org/liblouis/louis/$(LOUIS_VERSION ) /louis-$(LOUIS_VERSION ) -i686-w64-mingw32-gpp-executable.nar
83- $(MAKE ) -C $(dir $< ) clean compile-windows install
112+ exec( " $( MAKE) " , " -C " , " $( dir $< ) " , " clean" , " compile-windows" , " install" ) ;
84113endif
0 commit comments