On Fri, Dec 03, 1999 at 02:18:52PM -0500, Richard Gillilan wrote:
> Peter Daniel Kirchner wrote:
> >
> > Mystery solved!
> >
> > Those using non-"dist" sources (e.g. from cvs) and not using BOTH gcc and
> > GNU make need to run
> > automake --include-deps
> > instead of
> > automake
> >
> > Per http://www.fsf.org/manual/automake/html_mono/automake.html#SEC29
> > Automake's automatic dependency tracking currently requires the use of both
> > GNU make and gcc. make
> > dist runs automake --include-deps to remove the Gnu make + gcc requirement
> > for the distribution.
> >
> > We could also add "AUTOMAKE_OPTIONS = no-dependencies " to the Makefile.am
> > files, but that would
> > preclude those who happen to be using gcc and Gnu make from having
> > dynamically updated dependencies.
> >
> > whew!
> > pete
> >
>
> Jari's suggestion of using automake -a -i
> worked for me except that I had to edit
> one file (DXApplication.C) and override
> the following block of code:
>
> #if defined(OS2) || NeedNestedPrototypes
> int (*func)(Display *);
> #else
> int (*func)();
> #endif
>
> The SGI compiler I'm using chokes on
> nested prototypes and needs the "else"
> option.
>
> I just restored the block above and
> did a clean remake using automake --include-deps.
> The makefile now works (as it did with -a -i), but
> the compile still chokes at DXApplication.C.
>
> I'm trying to track down where and how NeedNestedPrototypes
> is set. I'm new to all these autotools, so perhaps you can
> point me in the right direction.
>
> Richard
I've been passing through the same steps today ---
NeedNestedPrototypes is defined in the X11 configuration stuff.
The /usr/include/X11/Xlib.h provided on AIX 4.3.x has a prototype
for XSetAfterFunction which does not have a nested prototype in the
type of the return value (what is being assigned to "func" in DXApplication.C).
But NeedNestedPrototypes IS defined.
Solutions???
1) put an explicit cast between the assignment and the function call.
This forces the return value to be what it should have been if IBM and
SGI had gotten more recent X include files.
2) fix the include file on the system. Naahhh.
3) change NeedNestedPrototypes to
(NeedNestedPrototypes && !defined(_AIX) && !defined(SGI))
or whatever is appropriate.
Yechh. This will fail when/if the Xlib.h is finally fixed.
I think I am going to do #1 for now.
I have other fixes in progress, mostly things that go wrong if you
do a checkout with CVSREAD:
1) in src/exec/dxmods/, there is no dependency to force building
of _compparse.h before trying to build _complex.o
Add _complex.o: _compparse.h line to end of Makefile.am.
2) src/exec/dxmods has a copy of y.output checked into the tree.
Either fix Makefile.am to do -$(RM) y.output before running $(YACC),
or delete it from the tree.
3) several other places in the same Makefile.am, and in
src/exec/libdx/local.mk, "rm" is used without the -f option.
If cp (of a readonly file) results in another readonly file, this
becomes important, as in _plane.c and tmp.c.
Should use -$(RM) (which is defined with -f already) everywhere.
-- ddj
Dave Johnson
Brown University TCASCV
[EMAIL PROTECTED]