Aber einen Massen Diff mit 460 Zeilen, ohne Info dazu, was das verbessern soll, werde ich nicht übernehmen. Dedizierte Diffs je Thema, mit konkreter Beschreibung was damit verbessern soll und nur mit Änderungen für dieses eine Thema, sind immer willkommen.
Tja, das hat sich mit der Zeit so ergeben. Dass ich das nicht wieder alles in seine Einzelteile zerlegen möchte, versteht du aber sicherlich auch.
Im Wesentlichen habe ich ein paar Default-Variablen aus vdr.pc hinzugefügt, weil ich einige davon in meiner Umgebung brauche. Das sollte aber auch in anderen Umgebungen das Bauen nicht beeinträchtigen.
Das "Entering/Leaving directory" habe ich entsorgt, weil die untergeordneten Makefiles das Verzeichnis als Teil von "CC", "LD" usw. mit ausgeben. Die Unterverzeichnisse plugin und command habe ich durch Variablen adressiert, ebenso praktisch auch die Namen aller anderen Verzeichnisse, Binärdateien und Man-Pages.
Dort, wo es bei mir zur Installation notwendig ist, habe ich ein sudo vorangestellt, sodass ich nicht als root bauen muss. Auch habe ich manche Installationsschritte nochmals aufgeteilt, so dass für jede Gruppe von Dateien eine eigene Regel vorhanden ist, bspw. für die Logos.
Zusammen mit dem Patch (hier ein Update, denn in einem Test hat ein -r gefehlt):
… gestaltet sich der Durchlauf dann wie folgt (die Installationspfade entsprechen meiner Umgebung, nicht dem Linux-Standard):
[BASH 2134] make clean
compiler: g++
version: 11
VDR plugin API version is 9
compiler: g++
version: 11
VDR plugin API version is 9
compiler: g++
version: 11
compiler: g++
version: 11
[BASH 2135] make -j4 install
compiler: g++
version: 11
VDR plugin API version is 9
compiler: g++
version: 11
VDR plugin API version is 9
CC plugin/ markad.o
CC plugin/ status.o
CC plugin/ menu.o
CC plugin/ setup.o
CC plugin/ debug.o
GT plugin/ po/markad.pot
PO plugin/ po/de_DE.po
PO plugin/ po/es_ES.po
PO plugin/ po/fi_FI.po
PO plugin/ po/it_IT.po
PO plugin/ po/sk_SK.po
MO plugin/ po/de_DE.mo
MO plugin/ po/es_ES.mo
MO plugin/ po/fi_FI.mo
MO plugin/ po/it_IT.mo
MO plugin/ po/sk_SK.mo
IN plugin/ /usr/local/vdr/locale/de_DE/LC_MESSAGES/vdr-markad.mo
IN plugin/ /usr/local/vdr/locale/es_ES/LC_MESSAGES/vdr-markad.mo
IN plugin/ /usr/local/vdr/locale/fi_FI/LC_MESSAGES/vdr-markad.mo
IN plugin/ /usr/local/vdr/locale/it_IT/LC_MESSAGES/vdr-markad.mo
IN plugin/ /usr/local/vdr/locale/sk_SK/LC_MESSAGES/vdr-markad.mo
LD plugin/ libvdr-markad.so
IN plugin/ /usr/local/vdr/lib/libvdr-markad.so.9
compiler: g++
version: 11
compiler: g++
version: 11
CC command/ evaluate.o
CC command/ debug.o
CC command/ index.o
CC command/ logo.o
CC command/ encoder.o
CC command/ decoder.o
CC command/ audio.o
CC command/ video.o
CC command/ marks.o
CC command/ markad-standalone.o
CC command/ osd.o
CC command/ criteria.o
CC command/ vps.o
CC command/ tools.o
CC command/ overlap.o
CC command/ sobel.o
CC command/ test.o
GT command/ po/markad.pot
IN command/ /usr/local/vdr/share/markad/logos
GZ command/ markad.1.gz
PO command/ po/cs_CZ.po
PO command/ po/de_DE.po
PO command/ po/fi_FI.po
PO command/ po/it_IT.po
PO command/ po/sk_SK.po
IN command/ /usr/local/vdr/man/man1/markad.1.gz
MO command/ po/cs_CZ.mo
MO command/ po/de_DE.mo
MO command/ po/fi_FI.mo
MO command/ po/it_IT.mo
MO command/ po/sk_SK.mo
IN command/ /usr/local/vdr/locale/cs_CZ/LC_MESSAGES/markad.mo
IN command/ /usr/local/vdr/locale/de_DE/LC_MESSAGES/markad.mo
IN command/ /usr/local/vdr/locale/fi_FI/LC_MESSAGES/markad.mo
IN command/ /usr/local/vdr/locale/it_IT/LC_MESSAGES/markad.mo
IN command/ /usr/local/vdr/locale/sk_SK/LC_MESSAGES/markad.mo
LN command/ /usr/share/locale/cs_CZ/LC_MESSAGES/markad.mo
LN command/ /usr/share/locale/de_DE/LC_MESSAGES/markad.mo
LN command/ /usr/share/locale/fi_FI/LC_MESSAGES/markad.mo
LN command/ /usr/share/locale/it_IT/LC_MESSAGES/markad.mo
LN command/ /usr/share/locale/sk_SK/LC_MESSAGES/markad.mo
LD command/ markad
IN command/ /usr/local/vdr/bin/markad
[BASH 2136] make -j4 install
compiler: g++
version: 11
VDR plugin API version is 9
IN plugin/ /usr/local/vdr/lib/libvdr-markad.so.9
compiler: g++
version: 11
IN command/ /usr/local/vdr/bin/markad
IN command/ /usr/local/vdr/share/markad/logos
IN command/ /usr/local/vdr/man/man1/markad.1.gz
Display More
Die mehrfache Ausgabe von Compiler- und API-Version ist etwas unschön und ließe sich vielleicht noch adressieren.
Ein grundsätzliches Problem ist auch, dass die Installation von Dateien in praktisch allen Plugins ohne Prüfung der Zeitstempel, somit also bei jedem Aufruf von make erfolgt, selbst wenn das eigentlich gar nicht notwendig wäre. Das könnte man zwar ändern, muss man aber nicht. Ich erinnere mich noch an das Drama, als alle Makefiles auf das neue Build-Konzept umgestellt wurden…
Wenn du jetzt fragst, was ich gewonnen habe, wenn ja sowieso alle Dateien installiert werden: Beim Aufruf von make erkennt man jetzt sofort, ob es eine "echte" Codeänderung gegeben hat und nicht nur ein Update von version.h. Mir ist das wichtig genug, um den Aufwand für den Patch zu spendieren.