Makefile für Compose erweitert.
make - erzeugt XCompose gemäß Userkonfiguration make config - erfragt interaktiv Userkonfiguration make install - erzeugt und installiert ins Homeverzeichnis eigene_compose_erstellen ist damit ersetzt und kann gelöscht werden.
This commit is contained in:
parent
374592de28
commit
e5b1c004c7
109
Compose/Makefile
109
Compose/Makefile
|
@ -1,60 +1,101 @@
|
||||||
|
#
|
||||||
|
# Neo/Compose/Makefile
|
||||||
|
# Autor: hcw@gmx.de
|
||||||
|
|
||||||
|
# Ort der Modul-Dateien
|
||||||
|
#
|
||||||
SRC = ./src
|
SRC = ./src
|
||||||
|
MODULES_FILES = $(wildcard $(SRC)/*.module)
|
||||||
|
MODULES = $(notdir $(basename $(MODULES_FILES)))
|
||||||
|
|
||||||
DEFAULTS = \
|
# Liste von Demofiles, werden bei 'make all' erzeugt.
|
||||||
base \
|
# Im Grunde ist dies seit 'make config' überflüssig.
|
||||||
base_math \
|
#
|
||||||
base_greek \
|
DEMOFILES = \
|
||||||
base_math_greek_lang \
|
XCompose_base \
|
||||||
base_greek_lang \
|
XCompose_base_math \
|
||||||
base_roman
|
XCompose_base_math_greek_lang \
|
||||||
|
XCompose_base_greek_lang \
|
||||||
MODULES_SRC = $(wildcard $(SRC)/*.module)
|
XCompose_base_roman
|
||||||
MODULES = $(notdir $(basename $(MODULES_SRC)))
|
|
||||||
|
|
||||||
|
# Hilfsprogramme
|
||||||
|
#
|
||||||
CHECKCOMPOSE = ./check-compose.pl
|
CHECKCOMPOSE = ./check-compose.pl
|
||||||
|
CONFIGURE = /bin/bash ./configure.sh
|
||||||
|
|
||||||
help :
|
# Nutzerkonfiguration für Zusammenstellung der Datei XCompose.
|
||||||
@echo Available modules: $(MODULES).
|
# Datei .config wird von 'make config' interaktiv geschrieben.
|
||||||
@echo Type \`make XCompose_mod1_mod2_mod3\' to create
|
# Defaultwert, falls .config noch nicht existiert.
|
||||||
@echo " " compose file from modules \`mod1\', \`mod2\', and \`mod3\'.
|
#
|
||||||
@echo Type \`make all\' to create default file set.
|
-include ./.config
|
||||||
@echo Type \`make clean\' to cleanup directory.
|
USER_XCOMPOSE ?= XCompose_base_math
|
||||||
@echo Copy the file XCompose_mod1_mod2_mod3 to \~/.XCompose afterwards.
|
|
||||||
|
|
||||||
all : $(addprefix XCompose_, $(DEFAULTS))
|
#
|
||||||
|
# 'make' bzw. 'make all' erzeugt die Datei XCompose ohne Installation
|
||||||
|
#
|
||||||
|
|
||||||
XCompose%: $(MODULES_SRC)
|
all : XCompose $(DEMOFILES)
|
||||||
@echo Creating file $@
|
|
||||||
echo "#" >$@
|
#
|
||||||
echo "# Automatically generated file. Do not edit." >>$@
|
# 'make config' führt interaktive Abfrage der Konfiguration durch
|
||||||
echo "#" >>$@
|
# und legt Ergebnis in .config ab
|
||||||
for i in \
|
#
|
||||||
`echo $@ | sed -e 's/XCompose//;s/_/ /g'`;\
|
|
||||||
|
config :
|
||||||
|
$(CONFIGURE) $(MODULES)
|
||||||
|
|
||||||
|
#
|
||||||
|
# 'make XCompose_foo_bar_baz' erzeugt Datei aus Modulen foo bar baz
|
||||||
|
#
|
||||||
|
|
||||||
|
XCompose_% : $(MODULES_FILES)
|
||||||
|
@echo "Erzeuge $@."
|
||||||
|
@echo "#" >$@
|
||||||
|
@echo "# Automatically generated file $@. Do not edit." >>$@
|
||||||
|
@echo "#" >>$@
|
||||||
|
@for i in \
|
||||||
|
`echo $@ | sed -e 's/XCompose//;s/_/ /g'` ;\
|
||||||
do \
|
do \
|
||||||
fn=$(SRC)/$$i.module;\
|
fn=$(SRC)/$$i.module ;\
|
||||||
if [ -e $$fn ]; then \
|
if [ -e $$fn ]; then \
|
||||||
echo "# begin include module $$i" >>$@ ;\
|
echo "# begin include module $$i" >>$@ ;\
|
||||||
cat $$fn >>$@ ;\
|
cat $$fn >>$@ ;\
|
||||||
echo "# end include module $$i" >>$@ ;\
|
echo "# end include module $$i" >>$@ ;\
|
||||||
else \
|
else \
|
||||||
echo "*** Warning: file $$fn not found";\
|
echo "*** Warnung: Datei $$fn kann nicht eingebunden werden" ;\
|
||||||
fi \
|
fi \
|
||||||
done
|
done
|
||||||
|
|
||||||
XCompose : XCompose_base
|
XCompose : $(USER_XCOMPOSE) $(wildcard .config)
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
check :
|
#
|
||||||
@for i in XCompose*; do \
|
# Installiere ins Homeverzeichnis
|
||||||
|
#
|
||||||
|
|
||||||
|
install : XCompose
|
||||||
|
cp XCompose $${HOME}/.XCompose
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test der XCompose-Dateien auf Korrektheit
|
||||||
|
#
|
||||||
|
|
||||||
|
check :
|
||||||
|
@for i in $(wildcard XCompose*) ; do \
|
||||||
$(CHECKCOMPOSE) -q $$i || (\
|
$(CHECKCOMPOSE) -q $$i || (\
|
||||||
echo Problem in file $$i. ;\
|
echo Problem in Datei $$i. ;\
|
||||||
echo Run \`$(CHECKCOMPOSE) $$i\' for more details. ); done
|
echo Mehr Informationen mit \`$(CHECKCOMPOSE) $$i\'. ); done
|
||||||
|
|
||||||
|
#
|
||||||
|
# weitere Standard-Targets
|
||||||
|
#
|
||||||
|
|
||||||
clean :
|
clean :
|
||||||
-rm -f XCompose_*
|
-rm -f XCompose_*
|
||||||
-rm -f XCompose
|
-rm -f XCompose
|
||||||
|
|
||||||
|
distclean : clean
|
||||||
|
-rm -f .config
|
||||||
|
|
||||||
|
.PHONY : all config check clean distclean install
|
||||||
.PHONY : clean help check
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
# Erzeuge Konfiguration in .config
|
||||||
|
#
|
||||||
|
# Aufruf erfolgt über Makefile mittels 'make config'
|
||||||
|
#
|
||||||
|
# Autor: hcw@gmx.de
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kommandozeilenparameter: Liste der verfügbaren Module
|
||||||
|
MODULES=$*
|
||||||
|
|
||||||
|
# Pfade und Dateinamen
|
||||||
|
CONFFILE=.config
|
||||||
|
MODPATH=./src
|
||||||
|
MODSUFFIX=.module
|
||||||
|
|
||||||
|
if [ ! -e $CONFFILE ] ; then
|
||||||
|
# leere Konfiguration erzeugen
|
||||||
|
echo "USER_XCOMPOSE = base " > $CONFFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# verfügbare Module auslesen und Kurzbeschreibung anzeigen
|
||||||
|
#
|
||||||
|
|
||||||
|
selprompt=
|
||||||
|
PS3="Gewählte Module sind mit '+' gekennzeichnet.
|
||||||
|
Auswahl (angegebene Ziffer oder 0 für Ende) > "
|
||||||
|
|
||||||
|
echo Verfügbare Module für XCompose:
|
||||||
|
for i in ${MODULES}; do
|
||||||
|
sed -n "
|
||||||
|
/^#configinfo[ \t]*/{
|
||||||
|
s//$i /
|
||||||
|
s/^\(.\{10\}\) */\1/
|
||||||
|
p;q
|
||||||
|
}
|
||||||
|
|
||||||
|
\${
|
||||||
|
s/.*/$i - ohne Beschreibung/
|
||||||
|
s/^\(.\{10\}\) */\1/
|
||||||
|
p
|
||||||
|
}" ${MODPATH}/${i}${MODSUFFIX}
|
||||||
|
|
||||||
|
if grep -q $i $CONFFILE; then
|
||||||
|
selprompt="${selprompt} ${i}+ ";
|
||||||
|
else
|
||||||
|
selprompt="${selprompt} ${i} ";
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
#
|
||||||
|
# Nutzereingabe
|
||||||
|
#
|
||||||
|
|
||||||
|
again=true
|
||||||
|
|
||||||
|
while ${again} ; do
|
||||||
|
again=false
|
||||||
|
select MOD in ${selprompt}; do
|
||||||
|
case "X$MOD" in
|
||||||
|
X)
|
||||||
|
if [ "X$REPLY" != "X0" ]; then again=true; fi ;;
|
||||||
|
*)
|
||||||
|
again=true
|
||||||
|
selprompt=`echo $selprompt | sed "s/$MOD/$MOD+/;s/++//"` ;;
|
||||||
|
esac
|
||||||
|
break
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
#
|
||||||
|
# Configfile erzeugen
|
||||||
|
#
|
||||||
|
|
||||||
|
echo $selprompt | sed '
|
||||||
|
s/$/ / # letztes Wort mit Leerzeichen abschließen
|
||||||
|
s/[^ +]\+ / /g # Wörter ohne plus am Ende löschen
|
||||||
|
s/+//g # alle Pluszeichen löschen
|
||||||
|
s/^ *// # Leerzeichen am Anfang und Ende löschen
|
||||||
|
s/ *$// # Leerzeichen am Anfang und Ende löschen
|
||||||
|
s/ \+/_/g # Leerzeichen normalisieren
|
||||||
|
s/^/USER_XCOMPOSE = XCompose_/
|
||||||
|
' > $CONFFILE
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Gewählte Module:
|
||||||
|
cat $CONFFILE
|
||||||
|
|
||||||
|
grep -q base $CONFFILE || echo "*** Warnung: Modul 'base' wurde nicht gewählt."
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Weiter mit 'make' bzw. 'make install'"
|
|
@ -1,3 +1,4 @@
|
||||||
|
#configinfo Standard-Definitionen (weitgehend auch außerhalb Neo verwendet)
|
||||||
# standard Definitions by Neo keyboard layout
|
# standard Definitions by Neo keyboard layout
|
||||||
|
|
||||||
# diacritical marks
|
# diacritical marks
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#configinfo Griechische Buchstaben mit Akzenten
|
||||||
|
|
||||||
|
|
||||||
# additional Definitions by Neo keyboard layout - greek letters
|
# additional Definitions by Neo keyboard layout - greek letters
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Autogenerated list of Klingon Numericals (k0-k3999, K0-K3999)
|
# Autogenerated list of Klingon Numericals (k0-k3999, K0-K3999)
|
||||||
#
|
#
|
||||||
# File encoding: UTF-8
|
# File encoding: UTF-8
|
||||||
# File format: Linux-Compose-Definitions
|
# File format: Linux-Compose-Definitions
|
||||||
|
@ -6,6 +6,7 @@
|
||||||
# Licence (short name): CC-BY-SA 3.0 DE
|
# Licence (short name): CC-BY-SA 3.0 DE
|
||||||
# Licence (full name): Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland
|
# Licence (full name): Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland
|
||||||
# Licence-URL: http://creativecommons.org/licenses/by-sa/3.0/de/
|
# Licence-URL: http://creativecommons.org/licenses/by-sa/3.0/de/
|
||||||
|
#configinfo Klingonische Zahlen 0 bis 3999
|
||||||
|
|
||||||
|
|
||||||
<Multi_key> <k> <0> <space> : "pagh" # KLINGON NUMERAL 0
|
<Multi_key> <k> <0> <space> : "pagh" # KLINGON NUMERAL 0
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#configinfo IPA (international phonetic alphabet)
|
||||||
|
|
||||||
# IPA-Compose by aleχ, 2009, CC-BY-SA DE 3.
|
# IPA-Compose by aleχ, 2009, CC-BY-SA DE 3.
|
||||||
<Multi_key> <B> <B> : "ʙ" U0299 # LATIN LETTER SMALL CAPITAL B
|
<Multi_key> <B> <B> : "ʙ" U0299 # LATIN LETTER SMALL CAPITAL B
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#configinfo mathematische Sonderzeichen
|
||||||
|
|
||||||
|
|
||||||
# additional Definitions by Neo keyboard layout - mathematical symbols
|
# additional Definitions by Neo keyboard layout - mathematical symbols
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
# Licence (short name): CC-BY-SA 3.0 DE
|
# Licence (short name): CC-BY-SA 3.0 DE
|
||||||
# Licence (full name): Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland
|
# Licence (full name): Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland
|
||||||
# Licence-URL: http://creativecommons.org/licenses/by-sa/3.0/de/
|
# Licence-URL: http://creativecommons.org/licenses/by-sa/3.0/de/
|
||||||
|
#configinfo römische Zahlen 1 bis 3999
|
||||||
|
|
||||||
|
|
||||||
<Multi_key> <r> <1> <space> : "ⅰ" # SMALL ROMAN NUMERAL 1
|
<Multi_key> <r> <1> <space> : "ⅰ" # SMALL ROMAN NUMERAL 1
|
||||||
|
|
Loading…
Reference in New Issue