annotate Building.rst @ 31:99a0eb385c9a default tip

Work around annoying Swing glitch.
author David Barts <n5jrn@me.com>
date Sat, 20 Aug 2022 09:19:49 -0700
parents 404eb7e57fe6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
1 [This file automatically generated by pandoc from 'Building.html'.]
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
2
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
3 Building ImagePrep
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
4 ==================
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
5
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
6 ImagePrep is a pure Java application. As such it is easy to build:
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
7
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
8 Install prerequisites:
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
9
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
10 a. `Apache Ant <https://ant.apache.org/>`__
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
11 b. `Launch4j <http://launch4j.sourceforge.net/>`__, if you are building
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
12 on Windows
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
13 c. Java JDK 1.8 or better (see notes below).
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
14 d. `Kotlin <https://kotlinlang.org/>`__
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
15
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
16 Type ``ant clean`` to be sure you’re starting with a clean slate.
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
17
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
18 Use one of the following commands:
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
19
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
20 a. ``ant jar`` — to build a “fat JAR” containing the application (and
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
21 the Kotlin runtime)
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
22 b. ``ant macapp`` — to build a Macintosh application
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
23 c. ``ant deb`` — to build a Debian package for the Gnome desktop
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
24 d. ``ant winapp`` — to build a Windows application (requires
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
25 `Launch4j <http://launch4j.sourceforge.net/>`__)
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
26
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
27 Which Version of Java to Use?
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
28 -----------------------------
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
29
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
30 In short, Java 1.8. Most systems don’t yet have OpenJDK 11 or greater
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
31 installed, so using a compiler newer than 1.8 is asking for trouble. All
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
32 code *should* build on OpenJDK 11 or greater, with the exception of the
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
33 OS-dependent code for the Macintosh (which will have to be recoded to
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
34 use the ``java.awt.Desktop`` class). The latter would be a net win, as
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
35 it is portable, and would spell the death of the only bit of
404eb7e57fe6 Standardize things for Linux packaging.
David Barts <n5jrn@me.com>
parents:
diff changeset
36 OS-dependent Kotlin code in this application.