Hi,
When compiling make-3.79 on BeOS, I encountered the following problems:
1) Compilation error in arscan.c. BeOS doesn't have the <ar.h> header file.
But it has archive libraries, and uses the GNU binutils to create them.
I therefore copied the contents of glibc's <ar.h> into arscan.c, and
verified using "od -x" that it accurately represents the data layout of
archive libraries on BeOS.
2000-04-17 Bruno Haible <[EMAIL PROTECTED]>
* arscan.c [BeOS]: Add replacement for nonexistent <ar.h>.
diff -r -c3 make-3.79.orig/arscan.c make-3.79/arscan.c
*** make-3.79.orig/arscan.c Sat Jan 22 06:43:03 2000
--- make-3.79/arscan.c Sun Apr 16 01:38:13 2000
***************
*** 232,238 ****
#endif
#ifndef WINDOWS32
! # include <ar.h>
#else
/* These should allow us to read Windows (VC++) libraries (according to Frank
* Libbrecht <[EMAIL PROTECTED]>)
--- 232,255 ----
#endif
#ifndef WINDOWS32
! # ifndef __BEOS__
! # include <ar.h>
! # else
! /* BeOS 5 doesn't have <ar.h> but has archives in the same format
! * as many other Unices. */
! # define ARMAG "!<arch>\n" /* String that begins an archive file. */
! # define SARMAG 8 /* Size of that string. */
! # define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
! struct ar_hdr
! {
! char ar_name[16]; /* Member file name, sometimes / terminated. */
! char ar_date[12]; /* File date, decimal seconds since Epoch. */
! char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
! char ar_mode[8]; /* File mode, in ASCII octal. */
! char ar_size[10]; /* File size, in ASCII decimal. */
! char ar_fmag[2]; /* Always contains ARFMAG. */
! };
! # endif
#else
/* These should allow us to read Windows (VC++) libraries (according to Frank
* Libbrecht <[EMAIL PROTECTED]>)
2) Error during "make distclean":
./configure
make
make install
make distclean
breaks as follows:
$ make distclean
Making distclean in .
make[1]: Entering directory `/bework/gnubuild/make-3.79'
rm -f config.h
rm -f *.tab.c
rm -f TAGS ID
rm -f Makefile build.sh
rm -f config.cache config.log stamp-h stamp-h[0-9]*
test -z "make" || rm -f make
test -z "loadavg" || rm -f loadavg
rm -f *.o core *.core
rm -f make.aux make.cp make.cps make.dvi make.fn make.fns make.ky \
make.kys make.ps make.log make.pg make.toc make.tp make.tps \
make.vr make.vrs make.op make.tr make.cv make.cn
test -z "loadavg.c" || rm -f loadavg.c
make[1]: Leaving directory `/bework/gnubuild/make-3.79'
Making distclean in i18n
/bin/sh: /bework/gnubuild/make-3.79/./make: No such file or directory
make: *** [distclean-recursive] Error 1
$
Apparently $(MAKE) = /bework/gnubuild/make-3.79/./make has been removed
during the "make distclean". I think, recursing into the subdirectories
first, and removing the files in the current directory afterwards should
fix the problem.
Bruno