This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ccache and -MMD / *.d issue


"Christopher Faylor" <cgf@redhat.com> wrote:
> >What *is* an issue (if anyone's still listening to my witterings) is the
> >Makefile in the cygwin source directory. If you compile from the top
level,
> >the -MMD flag gets lost, while if you compile in the cygwin directory
> >itself, it's fine.
>
> I don't know what you mean by "top level" but if you compile from the
> winsup directory, it doesn't happen that way here (obviously?).

By top-level, I meant the `obj' directory, i.e. (ascii art time):

    .../src/
            newlib/
            winsup/
                cygwin/
                utils/
    .../obj/
            i686-pc-cygwin/
                newlib/
                winsup/
                    cygwin/
                    utils/

That is, if you compile in the .../obj/i686-pc-cygwin/winsup/cygwin
directory (or in the .../obj/i686-pc-cygwin/winsup directory, as you point
out), you get the .d files created; but if you compile from the obj
directory itself (i.e. to build newlib as well as cygwin), you don't get any
.d files (in the cygwin directory).

I assume (but I've assumed too much recently to be confident about anything
anymore) that this is because the top-level (.../obj) Makefile defines
CFLAGS (without including -MMD) and this interferes with the definition in
.../obj/i686-pc-cygwin/winsup/cygwin/Makefile. But I'm not awake enough
right now to figure out recursive makefile issues.

(The makefile in the bzip2 directory doesn't suffer this problem by the
way.)

Really strangely, the -fbuiltin from the CFLAGS gets picked up but not
the -MMD from the same CFLAGS+=... statement in .../cygwin/Makefile. I'm
totally confused is all I can say.

I've attached the result of running make in the .../obj directory with just
a single .o file removed in the .../obj/i686-pc-cygwin/winsup/cygwin
directory. The build command includes -fbuiltin but not -MMD. What gives?

I think it's time for bed is presumably what gives.

// Conrad

Attachment: make.log.bz2
Description: Binary data

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]