This contains the machinery required to build and package TOPCAT, STILTS and STIL for release. It does the starjava build in a submodule, then applies additional packaging and generates web pages suitable for uploading. These end up as the package web pages currently hosted here:
and the package release archives hosted here:
- https://www.star.bristol.ac.uk/mbt/releases/stil/
- https://www.star.bristol.ac.uk/mbt/releases/stilts/
- https://www.star.bristol.ac.uk/mbt/releases/topcat/
In principle, you can just write make build at the top level.
However, this probably doesn't work.
The problem is that the DMG file has to be built on a Mac, but the java compilation (hence jar files) have to be built using a Java 8 JDK, and there doesn't appear to be a good and up to date Java 8 JDK that runs nicely on Mac. The DMG build depends on the jar file built for topcat, and the topcat deployment depends on the DMG file.
Here is what I currently do.
- Do the starjava build on Linux (this is somewhat time-consuming):
make build-starjava
- Do the DMG build on Mac:
- copy
starjava/lib/topcat/topcat-full.jarjust built on Linux to thedmgdirectory on Mac make build-dmg
- copy
- Copy
dmg/topcat-all.dmgjust built on Mac to thedmgdirectory on Linux - Continue with the rest of the build on Linux:
make buildmake test
If it becomes possible to build the whole thing on one platform then this can get much simpler.
Once built, you can then do
make stage
to prepare the files that will appear in public web pages,
look at them in the www subdirectory to check they're OK, and then
make deploy-pagesmake deploy-archive
to copy them there. The implementation details of the deployment step will need to change depending on where the web pages are being deployed.
The STIL package should be updated in the maven central repository,
at https://central.sonatype.com/artifact/uk.ac.starlink/stil.
This is done using the uploadmaven target in the stil subdirectory.
Homebrew configuration is done by the file
This seems to take care of itself, automatically getting updated when the files for a new version are deployed. Look at the ruby file itself to see what it's doing.