Now includes aliases for constants. Fixes some issues with the vulkan 1.3 registry.
[panamaz] / maven.make
1 #
2 # Copyright (C) 2021 Michael Zucchi
3 #
4 # This is the copyright for maven.make
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 #
19
20 # This lets one download maven packages using simple automake syntax.
21
22 # maven_<name>_URL = baseurl
23
24 # Define the base url.  maven_central_URL is already defined as
25 # maven_central_URL:=https://repo1.maven.org/maven2
26
27 # maven_<name>_JARS = group:artifact:version group:artifact:version ...
28
29 # Define the artifacts required from the given maven repository.
30
31 # That's it!
32
33 # It defines several make targets.
34
35 # make maven-init
36 #  Will download the jar files.
37
38 # make maven-verify
39 #  Will download and check the signatures using gpg.  The public key
40 #  required for verification must be imported to gpg separately.
41
42 # make distclean
43 #  Will delete .lib
44
45 # define maven central
46 maven_central_URL:=https://repo1.maven.org/maven2
47 maven_repository_URL:=https://mvnrepository.com/artifact
48
49 # find out what repositories the makefile defined
50 maven_REPOS=$(patsubst maven_%_URL,%,$(filter maven_%_URL,$(.VARIABLES)))
51
52 # (group artifact version baseurl)
53 define maven_func=
54 .lib/$2-$3.jar:
55         mkdir -p .lib
56         wget -O $$@ $(4)/$(subst .,/,$1)/$2/$3/$2-$3.jar || ( rm $$@ ; exit 1 )
57 .lib/$2-$3.jar.asc: .lib/$2-$3.jar
58         wget -O $$@ $(4)/$(subst .,/,$1)/$2/$3/$2-$3.jar.asc
59         gpg --batch --verify $$@ $$< || ( rm $$@ ; echo "GPG verification failed, you may need to import the public key." ; exit 1 )
60 maven-init: .lib/$2-$3.jar
61 maven-verify: .lib/$2-$3.jar.asc
62 endef
63
64 maven-init:
65 maven-verify:
66
67 .PHONY: maven-init maven-verify
68
69 $(foreach repo,$(maven_REPOS),\
70         $(foreach jar,$(maven_$(repo)_JARS), \
71                 $(eval $(call maven_func,$(word 1,$(subst :, ,$(jar))),$(word 2,$(subst :, ,$(jar))),$(word 3,$(subst :, ,$(jar))),$(maven_$(repo)_URL)))))
72
73 distclean:
74         rm -rf .lib