Erste Version zu "Clojure" authored by Rolf Niepraschk's avatar Rolf Niepraschk
# Clojure-Installation und Kompilieren der Messprogramme
## Vorbereitung
Die folgenden Schritte sind als Vorbereitung des Kompilierens und zur Ausführung der Messprogramme notwendig.
```
sudo apt install default-jre curl rlwrap ant
/etc/environment <-- Variablen (CE3 / SE3)
METIS*
CAL*
JAVA*
Der spätere Build-Prozess benutzt nicht oder nicht immer die übliche Umgebungsvariable `https_proxy` für das Herunterladen externer Bibliotheken. Um trotzdem erfolgreich zu sein, muss die folgende Konfigurationsdatei angelegt werden und Angaben zum Proxy-Server enthalten:
```
touch ~/.m2/settings.xml
https://gitlab1.ptb.de/vaclab/metis
```
## Clojure-Installation
```
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
chmod +x linux-install.sh
sudo ./linux-install.sh
rm linux-install.sh
```
Anmerkung: Dieser Ablauf führt zur Installation der Clojure-Skripte
und -Bibliotheken (siehe [»Install Clojure«](https://clojure.org/guides/install_clojure)):
```
/usr/local/bin/clj
/usr/local/bin/clojure
/usr/local/lib/clojure
```
## Kompilieren der jar-Dateien für die Messprogramme »devhub«, »devproxy« und »metis«
### Klonen des Programmcodes
Wegen der Übersichtlichkeit sollten die folgenden Git-Repositorien unterhalb eines Unterverzeichisses (z.B. `~/myapps`) angelegt werden.
```
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/devproxy.git
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/devhub.git
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/metis.git
```
Anmerkung: Mithilfe der Konstrukte `$(printf %s '??????????'|jq -Rr @uri)` werden Nutzername und Password URL-encoded zu Bestandteilen der Gitlab-URL (siehe danach Eintrag in `.git/config`). Damit erübrigt sich jetzt und später deren manuelle Eingabe.
Installation einer für »devhub« benötigte Java-Bibliothek (VXI11-Kommunikation):
```
git clone https://github.com/mikef5410/jvxi11.git
cd jvxi11
ant
# Der Fehler beim Erzeugen der Dokumentation wegen fehlendem
# Programm »javadoc« kann ignoriert werden.
cd ..
cp -pvr --parents jvxi11/external jvxi11/dist devhub/resources/
```
Anmerkung: Es ist nicht ausgeschlossen, dass sich die Erzeugung der jvxi11-Bibliothek auch automatisieren ließe, wenn man die Angaben in `devhub/deps.edn` geeignet anpassen könnte/würde.
### Erzeugen der jar-Dateien für die Messprogramme
```
cd devhub
./make_jar
cd devproxy
./make_jar
cd metis
./make_jar
```
Die gewünschten jar-Dateien befinden sich danach jeweils in `target/`.