Bladeren bron

20171025 heap2exec (Linux (Debian) braucht ml-lpt package und hat kein heap2exec, dann den heap hilfsweise via script ausführen)

Altlast 7 jaren geleden
bovenliggende
commit
4c75b73421
4 gewijzigde bestanden met toevoegingen van 14 en 4 verwijderingen
  1. 1 1
      Makefile.in
  2. 5 1
      README.md
  3. 3 2
      src/Makefile.in
  4. 5 0
      src/runheap.in

+ 1 - 1
Makefile.in

@@ -57,7 +57,7 @@ dist/nodes2grafana.txz:
 
 install: install-bin install-crontab install-dashboard
 
-install-bin: src/nodes2prom src/json-pp etc/nodes2prometheus.sh
+install-bin: src/nodes2prom src/json-pp etc/nodes2prometheus.sh %%HEAP_FILES%%
 	%%INSTALL_BIN_CMD%% $> %%BIN_DIR%%
 
 install-crontab: etc/crontab

+ 5 - 1
README.md

@@ -18,7 +18,11 @@ Nach erfolgreichem `make` (s.u.) findet sich der tarball in `dist/nodes2grafana.
 
 ## Benötigte Software
 
-Benötigt wird außer den üblichen verdächtigen Un*x-utilities nur [SML/NJ](http://www.smlnj.org/), da der Konverter in SML'97 programmiert ist. Das smlnj package sollte vollständig sein, d.h. auch `ml-build` und `heap2exec` enthalten. Dies ist beim FreeBSD port lang/smlnj der Fall.
+Benötigt wird außer den üblichen verdächtigen Un*x-utilities nur [SML/NJ](http://www.smlnj.org/), da der Konverter in SML'97 programmiert ist.
+
+- Das smlnj package sollte vollständig sein, d.h. muss auch `ml-build` enthalten.
+- Wenn `heap2exec` vorhanden ist (wie beim FreeBSD port lang/smlnj), dann wird es zur Erstellung von executables genutzt. Ansonsten wird ein script installiert, dass einen heap mit Hilfe der SML/NJ runtime ausführt.
+- Für auf Debian basierende Distributionen benötigt man außer dem smlnj package auch das ml-lpt package.
 
 ## Konfiguration
 

+ 3 - 2
src/Makefile.in

@@ -10,13 +10,13 @@ promconfig.sml: promconfig.sml.in
 	../conf/substitute.sh $> $@
 
 nodes2prom: nodes2prom.%%HEAP_SUFFIX%%
-	heap2exec nodes2prom.%%HEAP_SUFFIX%% nodes2prom
+	heap2exec nodes2prom.%%HEAP_SUFFIX%% nodes2prom || { ../conf/substitute.sh runheap.in $@ && chmod +x $@ ; }
 
 nodes2prom.%%HEAP_SUFFIX%%: promconfig.sml nodes2prom.cm nodes2prom.sml json_lib
 	ml-build nodes2prom.cm Main.main nodes2prom
 
 json-pp: json-pp.%%HEAP_SUFFIX%%
-	heap2exec json-pp.%%HEAP_SUFFIX%% json-pp
+	heap2exec json-pp.%%HEAP_SUFFIX%% json-pp || { ../conf/substitute.sh runheap.in $@ && chmod +x $@ ; }
 
 json-pp.%%HEAP_SUFFIX%%: json-pp.cm json-pp.sml json_lib
 	ml-build json-pp.cm Main.main json-pp
@@ -24,6 +24,7 @@ json-pp.%%HEAP_SUFFIX%%: json-pp.cm json-pp.sml json_lib
 clean:
 	rm -rf ${BINFILES}
 	rm -rf ${CLEANFILES}
+	cd .. && rm -f %%HEAP_FILES%%
 
 # START: ml-makedepend (JSON/json-lib.cm:json_lib); DO NOT DELETE!
 json_lib: \

+ 5 - 0
src/runheap.in

@@ -0,0 +1,5 @@
+#!/bin/sh
+
+CMD=`basename "$0"`
+
+%%RUN_SML%% @SMLcmdname="$CMD" @SMLload="$0.%%HEAP_SUFFIX%%" "$@"