2002-06-18 15:50:33

by James Bottomley

[permalink] [raw]
Subject: make dep fails on 2.5.22

The problem is in drivers/scsi because of the auto generated header files for
certain scsi scripts.

It currently errors out for me with my NCR_D700 controller because 53c700.c
requires 53c700_d.h which is an automatically generated header file and thus
doesn't exist when make dep is run.

I can fix this by adding the rule:

$(MODVERDIR)/53c700.ver: 53c700_d.h

but this looks wrong. The dependency is already listed in the existing rule:

53c700.o: 53c700_d.h

Is there any way we can cause make deps to see dynamically generated header
files, which will globally fix the problem? Otherwise, perhaps just adding an
extra variable into the Makefile to tell make dep about the necessary dynamic
headers would be in order?

James



2002-06-18 16:22:23

by Kai Germaschewski

[permalink] [raw]
Subject: Re: make dep fails on 2.5.22

On Tue, 18 Jun 2002, James Bottomley wrote:

> It currently errors out for me with my NCR_D700 controller because 53c700.c
> requires 53c700_d.h which is an automatically generated header file and thus
> doesn't exist when make dep is run.
>
> I can fix this by adding the rule:
>
> $(MODVERDIR)/53c700.ver: 53c700_d.h
>
> but this looks wrong. The dependency is already listed in the existing rule:
>
> 53c700.o: 53c700_d.h

Well, actually, it looks right to me: It says to build the .ver file, we
need the header (since it'll be included during the process).

It looks somewhat ugly, but I think it's one of the very few places where
something like this is needed. Of course, if there was a way to tell make
"$(MODVERDIR)/%.ver has the same prequisites as %.o" that'd be nicer, but
there isn't AFAICT.

Another possibility would be to record these kind of explicit dependencies
on generated files into variables, so Rules.make could do the right thing.

Something like

53c700.o-needs := 53c700_d.h

But I'm not sure that's so much nicer.

--Kai

2002-06-18 16:28:30

by James Bottomley

[permalink] [raw]
Subject: Re: make dep fails on 2.5.22

[email protected] said:
> Well, actually, it looks right to me: It says to build the .ver file,
> we need the header (since it'll be included during the process).

OK, I can fix all the SCSI auto generated headers this way and submit the
patch. By "wrong" I meant it doesn't appeal to my programmer's sense of
laziness to have two separate rules for the same thing, but I can live with it.

James


2002-06-18 16:54:16

by Kai Germaschewski

[permalink] [raw]
Subject: Re: make dep fails on 2.5.22

On Tue, 18 Jun 2002, James Bottomley wrote:

> [email protected] said:
> > Well, actually, it looks right to me: It says to build the .ver file,
> > we need the header (since it'll be included during the process).
>
> OK, I can fix all the SCSI auto generated headers this way and submit the
> patch. By "wrong" I meant it doesn't appeal to my programmer's sense of
> laziness to have two separate rules for the same thing, but I can live with it.

I think this one is the only one (at least in drivers/scsi), since it's
only needed for objects which export symbols, i.e are listed in
$(export-objs).

--Kai