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

Reply via email to