Hi,
ich habe in einem Projekt unter anderem Skripte, die ihre Einstellungen von einer gemeinsamen Konfigurationsdatei beziehen. Da --bindir und --sysconfdir bei configure gesetzt werden können, und ich im voraus nicht weiß, wo die Skripte und Konfigurationsdateien installiert werden, habe ich den alle Pfadangaben in den Skripten durch Tags ersetzt, die ich dann wiederrum durch die von configure gesetzten Pfade ersetzen will. Die Skripte, die die Tags enthalten, haben alle die Endung ".in". Mein Makefile.am sieht zur Zeit so aus:
Code:
bin_FILES = ic \
ic-fetch \
ic-log \
ic-play \
ic-x
sbin_FILES = ic-setup
bin_SCRIPTS = $(bin_FILES)
sbin_SCRIPTS = $(sbin_FILES)
EXTRA_DIST = ic.in ic-fetch.in ic-log.in ic-play.in ic-x.in
ic:
sed -e "s|%bindir%|@bindir@|g" \
-e "s|%sbindir%|@sbindir@|g" \
-e "s|%sysconfdir%|@sysconfdir@|g" \
-e "s|%pkgdatadir%|@pkgdatadir@|g" \
ic.in > ic
ic-fetch:
sed -e "s|%bindir%|@bindir@|g" \
-e "s|%sbindir%|@sbindir@|g" \
-e "s|%sysconfdir%|@sysconfdir@|g" \
-e "s|%pkgdatadir%|@pkgdatadir@|g" \
ic-fetch.in > ic-fetch
ic-log:
sed -e "s|%bindir%|@bindir@|g" \
-e "s|%sbindir%|@sbindir@|g" \
-e "s|%sysconfdir%|@sysconfdir@|g" \
-e "s|%pkgdatadir%|@pkgdatadir@|g" \
ic-log.in > ic-log
ic-play:
sed -e "s|%bindir%|@bindir@|g" \
-e "s|%sbindir%|@sbindir@|g" \
-e "s|%sysconfdir%|@sysconfdir@|g" \
-e "s|%pkgdatadir%|@pkgdatadir@|g" \
ic-play.in > ic-play
ic-x:
sed -e "s|%bindir%|@bindir@|g" \
-e "s|%sbindir%|@sbindir@|g" \
-e "s|%sysconfdir%|@sysconfdir@|g" \
-e "s|%pkgdatadir%|@pkgdatadir@|g" \
ic-x.in > ic-x
ic-setup:
sed -e "s|%bindir%|@bindir@|g" \
-e "s|%sbindir%|@sbindir@|g" \
-e "s|%sysconfdir%|@sysconfdir@|g" \
-e "s|%pkgdatadir%|@pkgdatadir@|g" \
ic-setup.in > ic-setup
all-local: $(bin_FILES) $(sbin_FILES)
clean-local:
rm -f $(bin_FILES) $(sbin_FILES)
Das funktioniert zumindest Mal, sieht aber nicht gerade elegant aus.
Zuerst würde mich interessieren, ob man einzelnen sed Aufrufe zu einem Aufruf für alle Skripte ersetzen kann, da es ja überall die gleichen sind.
Zum Anderen bin ich mir nicht sicher, ob das so gehandhabt wird, oder ob es eine bessere Möglichkeit gibt, die Tags in den Skripte zu ersetzen ?
Danke und Gruß,
micha
Lesezeichen