Hi, I'm trying to build a slightly modified libunistring-0.9.3 on OpenBSD 4.5. With GNU make, there is no problem. But with /usr/bin/make, I get this error:
$ wget http://www.haible.de/bruno/gnu/libunistring-0.9.3a.tar.gz [This tarball was generated with automake's "make distcheck" rule.] $ tar xvfz libunistring-0.9.3a.tar.gz $ cd libunistring-0.9.3 $ ./configure --prefix=$HOME/gnu $ make make all-recursive Making all in doc restore=: && backupdir=".am$$" && am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && rm -rf $backupdir && mkdir $backupdir && if (env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= /bin/sh /home/bruno/libunistring-0.9.3/build-aux/missing --run makeinfo --version) >/dev/null 2>&1; then for f in ./libunistring.info ./libunistring.info-[0-9] ./libunistring.info-[0-9][0-9] ./libunistring.i[0-9] ./libunistring.i[0-9][0-9]; do if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; done; else :; fi && cd "$am__cwd"; if env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= /bin/sh /home/bruno/libunistring-0.9.3/build-aux/missing --run makeinfo -I . --no-split -I . -o ./libunistring.info ./libunistring.texi; then rc=0; CDPATH="${ZSH_VERSION+.}:" && cd .; else rc=$?; CDPATH="${ZSH_VERSION+.}:" && cd . && $restore $backupdir/* `echo "././libunistring.info" | sed 's|[^/]*$||'`; fi; rm -rf $backupdir; exit $rc ./libunistring.texi:5: warning: unrecognized encoding name `UTF-8'. .//uninorm.texi:198: Unknown command `arrow'. .//uninorm.texi:198: Misplaced {. .//uninorm.texi:198: Misplaced }. .//uninorm.texi:198: Unknown command `arrow'. .//uninorm.texi:198: Misplaced {. .//uninorm.texi:198: Misplaced }. makeinfo: Removing output file `./libunistring.info' due to errors; use --force to preserve. *** Error code 1 Stop in /home/bruno/libunistring-0.9.3/doc (line 846 of Makefile). *** Error code 1 Stop in /home/bruno/libunistring-0.9.3 (line 885 of Makefile). *** Error code 1 Stop in /home/bruno/libunistring-0.9.3 (line 788 of Makefile). The problem is in the doc/ directory the order of the time stamps: $ cd doc $ ls -lrt libunistring.texi libunistring.info version.texi stamp-vti -rw-r--r-- 1 bruno users 35868 Jan 1 03:38 libunistring.texi -rw-r--r-- 1 bruno users 98 Mar 29 11:16 version.texi -rw-r--r-- 1 bruno users 295312 Mar 30 00:11 libunistring.info -rw-r--r-- 1 bruno users 98 May 2 23:30 stamp-vti together with these rules and dependencies: (1) all: all-am (2) all-am: Makefile $(INFO_DEPS) all-local INFO_DEPS = $(srcdir)/libunistring.info (3) .texi.info: ... (4) $(srcdir)/libunistring.info: libunistring.texi $(srcdir)/version.texi $(libunistring_TEXINFOS) (5) $(srcdir)/version.texi: $(srcdir)/stamp-vti (6) $(srcdir)/stamp-vti: libunistring.texi $(top_srcdir)/configure ... Rules (1)-(6) are all generated by automake. The problem is that the stamp-vti rule (6) can leave on disk a stamp-vti file that is newer than version.texi. The OpenBSD 'make' then interprets rule (5) as a declaration that version.texi is out-of-date. But when version.texi is out-of-date, rule (4) says that libunistring.info should be rebuilt, and this requires more than the "usual tools" (namely, a new enough 'makeinfo' program). Can the stamp-vti handling be rewritten some way? Or should the GNU standards and the INSTALL file be changed to specify that on OpenBSD, GNU 'make' is necessary for building packages? Bruno
