aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-04-27 19:32:39 +0200
committerJonas Smedegaard <dr@jones.dk>2025-04-27 19:32:39 +0200
commit48758609f9c4e8ac1a273a0f22acd375b09a0caa (patch)
treec2cec395d9ab3e26fdc23206a65779de58d0f618 /README.md
parentbe5e7f47f2dc30330ad1c13e12a369eaf3c323fd (diff)
document build routines
Diffstat (limited to 'README.md')
-rw-r--r--README.md124
1 files changed, 124 insertions, 0 deletions
diff --git a/README.md b/README.md
index 27e8ba4..b7c9969 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,130 @@ Bachelorizer is publicly available as [source].
[source]: <https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z3Xeo1Wg65SQAhD6QFTtVWQmjVHJU>
"Web instance of sources for Bachelorizer"
+## Code execution
+
+The code has only been verified to work from command-line
+(it is unknown if it works in IDEs like Eclipse, Intellij or NetBeans).
+
+GNUMake files are provided for building, packaging and running the code.
+
+For those not using GNUMake,
+Concrete example commands are provided below,
+with notes on OpenJDK versions the commands are known to work with.
+
+Execution succeeds with OpenJDK 17, 21, 22, 23, 24 and build 20 of 25,
+except JavaFX/OpenJFX-related code failing with OpenJDK 17 and 21.
+
+OpenJDK versions before 23 emit many errors
+due to not recognizing the Markdown-flavored javadoc comments.
+
+Code has been tested only against the following library releases:
+
+* JavaFX/OpenJFX 11.0.11
+ from <https://packages.debian.org/sid/openjfx>.
+* SQLite JDBC 3.46.1.3
+ from <https://packages.debian.org/sid/libxerial-sqlite-jdbc-java>.
+
+### Executing from source
+
+The command `make runsrc-dk.biks.bachelorizer`
+is equivalent to these three commands:
+
+```sh
+rm -rf mods/com.example.portfolio3
+javac -Xlint -Xdoclint -implicit:none -d mods/com.example.portfolio3 \
+ src/com.example.portfolio3/module-info.java \
+ src/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/AdjListGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/AdjMapGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Edge.java \
+ src/com.example.portfolio3/com/example/portfolio3/GraphAlgorithms.java \
+ src/com.example.portfolio3/com/example/portfolio3/Graph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Graphs.java \
+ src/com.example.portfolio3/com/example/portfolio3/MatrixGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Vertex.java
+java --module-path /usr/share/openjfx/lib:mods/com.example.portfolio3 \
+ --add-modules javafx.base,javafx.controls,javafx.graphics \
+ --enable-native-access=javafx.graphics \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Main.java
+```
+
+### Executing from class files
+
+The command `make runclass-dk.biks.bachelorizer`
+is equivalent to these five commands:
+
+```sh
+rm -rf mods/com.example.portfolio3
+javac -Xlint -Xdoclint -implicit:none -d mods/com.example.portfolio3 \
+ src/com.example.portfolio3/module-info.java \
+ src/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/AdjListGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/AdjMapGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Edge.java \
+ src/com.example.portfolio3/com/example/portfolio3/GraphAlgorithms.java \
+ src/com.example.portfolio3/com/example/portfolio3/Graph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Graphs.java \
+ src/com.example.portfolio3/com/example/portfolio3/MatrixGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Vertex.java
+rm -rf mods/dk.biks.bachelorizer
+javac --module-path /usr/share/openjfx/lib:mods/com.example.portfolio3 \
+ --add-modules javafx.base,javafx.controls,javafx.graphics \
+ -Xlint -Xdoclint -implicit:none \
+ -d mods/dk.biks.bachelorizer \
+ src/dk.biks.bachelorizer/module-info.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Main.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Combi.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Window.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Control.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/GUI.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Person.java
+java --module-path mods/dk.biks.bachelorizer \
+:/usr/share/openjfx/lib:mods/com.example.portfolio3 \
+ --add-modules javafx.base,javafx.controls,javafx.graphics \
+ --enable-native-access=javafx.graphics \
+ -m dk.biks.bachelorizer/dk.biks.bachelorizer.Main
+```
+
+### Executing from jar containers
+
+The command `make runjar-dk.biks.bachelorizer`
+is equivalent to these six commands:
+
+```sh
+rm -rf mods/com.example.portfolio3
+javac -Xlint -Xdoclint -implicit:none -d mods/com.example.portfolio3 \
+ src/com.example.portfolio3/module-info.java \
+ src/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/AdjListGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/AdjMapGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Edge.java \
+ src/com.example.portfolio3/com/example/portfolio3/GraphAlgorithms.java \
+ src/com.example.portfolio3/com/example/portfolio3/Graph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Graphs.java \
+ src/com.example.portfolio3/com/example/portfolio3/MatrixGraph.java \
+ src/com.example.portfolio3/com/example/portfolio3/Vertex.java
+rm -rf mods/dk.biks.bachelorizer
+javac --module-path /usr/share/openjfx/lib:mods/com.example.portfolio3 \
+ --add-modules javafx.base,javafx.controls,javafx.graphics \
+ -Xlint -Xdoclint -implicit:none \
+ -d mods/dk.biks.bachelorizer \
+ src/dk.biks.bachelorizer/module-info.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Main.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Combi.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Window.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Control.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/GUI.java \
+ src/dk.biks.bachelorizer/dk/biks/bachelorizer/Person.java
+jar --create --file dk.biks.bachelorizer.jar \
+ --main-class dk.biks.bachelorizer.Main \
+ -C mods/dk.biks.bachelorizer .
+java --module-path dk.biks.bachelorizer.jar\
+:/usr/share/openjfx/lib:mods/com.example.portfolio3 \
+ --enable-native-access=javafx.graphics \
+ --module dk.biks.bachelorizer
+```
+
## License
Copyright © 2025 Jonas Smedegaard