1 # Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
 2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 3 #
 4 # This code is free software; you can redistribute it and/or modify it
 5 # under the terms of the GNU General Public License version 2 only, as
 6 # published by the Free Software Foundation.
 7 #
 8 # This code is distributed in the hope that it will be useful, but WITHOUT
 9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11 # version 2 for more details (a copy is included in the LICENSE file that
12 # accompanied this code).
13 #
14 # You should have received a copy of the GNU General Public License version
15 # 2 along with this work; if not, write to the Free Software Foundation,
16 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17 #
18 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 # or visit www.oracle.com if you need additional information or have any
20 # questions.
21 
22 #===============================================================================
23 # Leyden-premain + Quarkus getting-started demo
24 #  - https://quarkus.io/guides/getting-started
25 #  - https://quarkus.io/guides/lifecycle
26 #
27 # See ../lib/DemoSupport.gmk for the "make" targets that build the demo, run the
28 # demo, and gather benchmarking data.
29 #===============================================================================
30 
31 # The following needs to be defined before including ../lib/DemoSupport.gmk
32 DEMO_NAME       = quarkus-getting-started
33 DEMO_SRC        = getting-started/src/main/java/Main.java
34 DEMO_JAR        = getting-started/target/getting-started-1.0.0-SNAPSHOT-runner.jar
35 DEMO_CMDLINE    = -DautoQuit=true -Dquarkus.http.port=0 -jar ${DEMO_JAR}
36 # This is for uploading into Artifactory, usually to a path like
37 #    https://xxxx.com/artifactory/yyyy/io/quarkus/quarkus-getting-started/1.0.0b/quarkus-getting-started-1.0.0b.zip
38 DEMO_ARTIFACT   = quarkus-getting-started-1.0.0b.zip
39 
40 include ../lib/DemoSupport.gmk
41 
42 # Create the project using instructions from https://quarkus.io/guides/getting-started, then
43 # add the Main class which prints out the timing data and exits.
44 ${DEMO_SRC}: Main.java
45 	rm -rf getting-started
46 	JAVA_HOME=${BLDJDK_HOME} ${MVN} \
47 	    io.quarkus.platform:quarkus-maven-plugin:3.9.3:create \
48 	    -DprojectGroupId=org.acme \
49 	    -DprojectArtifactId=getting-started \
50 	    -Dextensions='rest'
51 	cp Main.java ${DEMO_SRC}
52 
53 # We package the app in the "legacy-jar" to be CDS friendly
54 # See https://quarkus.io/guides/class-loading-reference:
55 #  "everything is loaded in the system ClassLoader, so it is a completely flat classpath."
56 # See https://www.cheat-sheets.org/saved-copy/quarkus-cheat-sheet.pdf
57 ${DEMO_JAR}: ${DEMO_SRC}
58 	cd getting-started && JAVA_HOME=${BLDJDK_HOME} ${MVN} -Dquarkus.package.type=legacy-jar install
59 
60 ${DEMO_ARTIFACT}: ${DEMO_JAR}
61 	${JAR} cvfM ${DEMO_ARTIFACT} \
62 		-C getting-started/target .
63 
64 clean: clean0
65 	rm -rf getting-started ${DEMO_ARTIFACT}
66 
67 clean0:
68 	rm -f *.cds *.cds.code *.classlist *.jsa *~ *.log *.log.* hs_err_*
69