> >>>>> "Bruce" == Bruce Momjian <[EMAIL PROTECTED]> writes: > > Bruce> I have the following compile error on 1.04: cd . && rm -f > Bruce> stamp-cat-id && echo timestamp > stamp-cat-id file=./`echo sv | > Bruce> sed 's,.*/,,'`.gmo \ && case "PATH=../src:$PATH msgfmt" in \ > Bruce> */msgfmt) rm -f $file && PATH=../src:$PATH msgfmt -o $file > Bruce> sv.po;; \ *) touch $file ;; \ esac gmake[1]: *** No rule to > Bruce> make target `s.gmo', needed by `all-yes'. Stop. gmake[1]: > Bruce> Leaving directory `/var/local/src/lyx/lyx-1.0.4/po' gmake: *** > Bruce> [all] Error 1 > > Bruce> It is complaining it can't find s.gmo. Well, I don't have an > Bruce> s.gmo in my distribution. I had a similar problem with 1.02. > > Bruce> I looked around, and see a mention of s.gmo in po/Makefile and > Bruce> po/Makefile.in, so I am stumped. > > What was the relevant line? Do you have some shell variables like > CATALOGS or LINGUAS set to this `s'? [CC'ing developer list.] OK, I have a patch to fix this. I thought that po/Makefile.in was generated by configure. I did not realize that only po/Makefile.in.in was distributed, and the others were generated. Looking through configure, I found the code that generates po/Makefile and po/Makefile.in, and found out how s.gmo was being placed in there. In configure, there is: NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; esac There are two problems with this. First ${var1=var2} is not defined in either BSD sh or bash manual pages. ${var1:=var2} with the colon is defined, but it says to assign var1 to equal var2 if var1 is null. In the case of BSD 'sh', var1 is continually reassigned during the loop, causing duplicates and improper values. Not sure if I should report this to BSDI as a bug because the behavior of using := as a 'for' loop argument is pretty strange. The proper code is attached. A simple use of ${var1:-var2} does the trick. LINGUAS is assigned right after the loop anyway, so there is no need to assign a value to it as part of the for loop. Seems few people are using BSD sh as /bin/sh anymore. -- Bruce Momjian | http://www.op.net/~candle [EMAIL PROTECTED] | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
*** ./config/gettext.m4.orig Mon Oct 4 10:41:02 1999 --- ./config/gettext.m4 Mon Oct 4 10:42:12 1999 *************** *** 216,222 **** else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= ! for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; esac --- 216,222 ---- else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= ! for lang in ${LINGUAS:-$ALL_LINGUAS}; do case "$ALL_LINGUAS" in *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; esac