Simon Josefsson wrote:
> >   - a 'make' program that considers equal time stamps as "up-to-date"
> >     (a condition fulfilled by all 'make' programs except HP-UX make),
> 
> Yes you are right.  But for users, advice should be practical -- is
> there any reasonable way to solve the problem on HP-UX other than to
> install GNU make?

Installing GNU make on these old platforms is the reasonable fix, yes.
(But I don't think we have any users on HP-UX any more, for several
years already.)
And we know of no other 'make' implementation that behaves like the
HP-UX one.

> >   - a POSIX file system (not the Haiku file system, which assigns slightly
> >     different mtimes at random when the tarball is unpacked).
> 
> There is the idea to store modification times of files in a text file
> suitable for parsing and re-setting the modifications time of files via
> some script.  Would that work on Haiku, or is it impossible to get a
> predictable mtime on a file?

On Haiku, it is possible to get a predictable mtime if it is different
from the mtimes of all the other files on the file system.

A script like this essentially works:

  #!/bin/sh
  touch `find . -type f -print`
  sleep 1
  touch aclocal.m4
  sleep 1
  touch configure
  sleep 1
  touch config.h.in
  sleep 1
  touch `find . -name Makefile.am -print | sed -e 's/am$/in/'`

Tested with libtasn1-4.20.0.tar.gz on an older Haiku without automake 1.16:
- By default, it fails like this:

CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/sh 
'/boot/home/libtasn1-4.20.0/build-aux/missing' aclocal-1.16 
/boot/home/libtasn1-4.20.0/build-aux/missing: line 81: aclocal-1.16: command 
not found
WARNING: 'aclocal-1.16' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <https://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <https://www.gnu.org/software/autoconf>
         <https://www.gnu.org/software/m4/>
         <https://www.perl.org/>
Makefile:1640: recipe for target '../aclocal.m4' failed
make: *** [../aclocal.m4] Error 127

- With the script applied after unpacking the tarball, the build
  mostly succeeds. It fails because 'help2man' is missing.
  I guess this can be fixed by adding some 'touch doc/*.1' command
  to the script.

Bruno




Reply via email to