automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: depcomp deficiency [was: m4-1.4.7 build feedback]


From: Nelson H. F. Beebe
Subject: Re: depcomp deficiency [was: m4-1.4.7 build feedback]
Date: Wed, 27 Sep 2006 07:23:45 -0600 (MDT)

Thanks for the comments on the automake testing in the depcomp
code.

The BSD folks are a different religion from the GNU folks, so
conflicts in software interfaces are to be expected.  Here
is the synopsis of the c89 compiler in FreeBSD 5.0:

        NAME
             c89 - POSIX.2 C language compiler

        SYNOPSIS
             c89 [-c] [-D name[=value]] ... [-E] [-g] [-I directory ...]
                 [-L directory ...] [-o outfile] [-O] [-s] [-U name ...] 
operand ...

        DESCRIPTION
             This is the name of the C language compiler as required by the 
IEEE Std
             1003.2 (``POSIX.2'') standard.

In FreeBSD 6.1, we have

        NAME
             c89 -- POSIX.2 C language compiler

        SYNOPSIS
             c89 [-cEgOs] [-D name[=value]] ... [-I directory] ... [-L 
directory] ...
                 [-o outfile] [-U name] ... operand ...

In NetBSD 1.6 and 3.0, we have

        SYNOPSIS
             c89 [-pedantic] [-pedantic-errors] [-D_ANSI_SOURCE] [options ...]

        DESCRIPTION
             Calls the C compiler (cc) with the given options, using a C 
language
             environment compatible with the ANSI X3.159-1989 (``ANSI C89'') 
specifi-
             cation.

        STANDARDS
             c89 conforms to IEEE Std 1003.2-1992 (``POSIX.2'').

        HISTORY
             c89 appeared in NetBSD 1.4.

OpenBSD 3.5 and 3.9 are Western Orthodox, and thus don't provide
either c89 or c99.

Here is what POSIX (IEEE Std 1003.1-2001: Revision of IEEE Std
1003.1-1996 and IEEE Std 1003.2-1992) has to say:

8176 NAME
8177                 c99 -- compile standard C programs

8178 SYNOPSIS
8179 CD              c99 [-c] [-D name[=value]]...[-E] [-g] [-I directory] ... 
[-L directory]
8180                         ... [-o outfile] [-Ooptlevel] [-s] [-U name]... 
operand ...
8181

8182 DESCRIPTION
8183                 The c99 utility is an interface to the standard C 
compilation system; it shall accept source code
8184                 conforming to the ISO C standard. The system conceptually 
consists of a compiler and link
8185                 editor. The files referenced by operands shall be compiled 
and linked to produce an executable
8186                 file. (It is unspecified whether the linking occurs 
entirely within the operation of c99; some
8187                 implementations may produce objects that are not fully 
resolved until the file is executed.)
...
8518           The c99 utility is based on the c89 utility originally 
introduced in the ISO POSIX-2: 1993 standard.
...
9065           The c99 utility is added as a replacement for c89, which is 
withdrawn in this issue.

As far as I can see, POSIX-2001's requirements for compiler options
are met by the BSD c89 and c99.  In particular, there are no
provisions for generation of dependencies, like gcc's -M option family
offers.

I've never understood why some packages feel the need to generate
dependencies at build time at every end-user site, rather than at a
single developer site.  In my own packages, I maintain the Makefile
dependencies myself, and don't require their generation during builds.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: address@hidden  -
- 155 S 1400 E RM 233                       address@hidden  address@hidden -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]