broken ddk-6.2.0 Makefile(s)???

Hello!
I am trying to compile Johan Phearbear’s (sp?) Broadcom 4400 driver (which
he had ported from Linux to QNX 6.2.1) in QNX 6.2.0, in the hope that MAYBE
in can run the Broadcom 570x hardware in a Dell Latitude notebook.

The compile of his source is failing with multiple errors because it is not
finding the header files in the drvr subdirectory in the ddk-6.2.0/network
tree. It is not finding them because the make files are simply are not
pointing to it. (They are pointing to /usr/include.)

Sadly, I am not sufficiently familiar with “make” to easily navigate my way
through the labryinthine maze of make-related files and then translate the
peculiar dialect of south-central Indian pre-Davidian Sanskrit to determine
precisely WHERE the “include” file definition is made so I may fix it or
patch it.

Annoyingly, I can manually patch together and correct the one compile line
and successfully generate the first object file, but I cannot carry on from
there. (With these recursive makes, “make -n” does not give you a list
of what would happen; it just gets you to the next level.)

Before I spend more time trying to hack my way through this jungle, I
thought I’d see if someone had an easier way to fix things.

Is anyone able to enlighten me?

Rich B.

Richard Bonomo,6289 Chamberlin,263-4683, <bonomo@sal.wisc.edu> wrote:
RBC > Hello!
RBC > I am trying to compile Johan Phearbear’s (sp?) Broadcom 4400 driver (which
RBC > he had ported from Linux to QNX 6.2.1) in QNX 6.2.0, in the hope that MAYBE
RBC > in can run the Broadcom 570x hardware in a Dell Latitude notebook.

RBC > The compile of his source is failing with multiple errors because it is not
RBC > finding the header files in the drvr subdirectory in the ddk-6.2.0/network
RBC > tree. It is not finding them because the make files are simply are not
RBC > pointing to it. (They are pointing to /usr/include.)

RBC > Sadly, I am not sufficiently familiar with “make” to easily navigate my way
RBC > through the labryinthine maze of make-related files and then translate the
RBC > peculiar dialect of south-central Indian pre-Davidian Sanskrit to determine
RBC > precisely WHERE the “include” file definition is made so I may fix it or
RBC > patch it.

RBC > Annoyingly, I can manually patch together and correct the one compile line
RBC > and successfully generate the first object file, but I cannot carry on from
RBC > there. (With these recursive makes, “make -n” does not give you a list
RBC > of what would happen; it just gets you to the next level.)

RBC > Before I spend more time trying to hack my way through this jungle, I
RBC > thought I’d see if someone had an easier way to fix things.

RBC > Is anyone able to enlighten me?

RBC > Rich B.

It might help to post the makefile.

Bill Caroselli wrote:

Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:
RBC > Hello!
RBC > I am trying to compile Johan Phearbear’s (sp?) Broadcom 4400 driver
(which RBC > he had ported from Linux to QNX 6.2.1) in QNX 6.2.0, in the
hope that MAYBE RBC > in can run the Broadcom 570x hardware in a Dell
Latitude notebook.

RBC > The compile of his source is failing with multiple errors because it
is not RBC > finding the header files in the drvr subdirectory in the
ddk-6.2.0/network
RBC > tree. It is not finding them because the make files are simply are
not
RBC > pointing to it. (They are pointing to /usr/include.)

RBC > Sadly, I am not sufficiently familiar with “make” to easily navigate
my way RBC > through the labryinthine maze of make-related files and then
translate the RBC > peculiar dialect of south-central Indian pre-Davidian
Sanskrit to determine RBC > precisely WHERE the “include” file definition
is made so I may fix it or RBC > patch it.

RBC > Annoyingly, I can manually patch together and correct the one
compile line RBC > and successfully generate the first object file, but I
cannot carry on from
RBC > there. (With these recursive makes, “make -n” does not give you a
list RBC > of what would happen; it just gets you to the next level.)

RBC > Before I spend more time trying to hack my way through this jungle,
I RBC > thought I’d see if someone had an easier way to fix things.

RBC > Is anyone able to enlighten me?

RBC > Rich B.

It might help to post the makefile.

Here it is:

LIST=CPU
ifndef QRECURSE
QRECURSE=recurse.mk
ifdef QCONFIG
QRDIR=$(dir $(QCONFIG))
endif
endif
include $(QRDIR)$(QRECURSE)


Rich

Richard Bonomo,6289 Chamberlin,263-4683, <bonomo@sal.wisc.edu> wrote:
RBC > Bill Caroselli wrote:

Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:

It might help to post the makefile.

RBC > Here it is:

RBC > LIST=CPU
RBC > ifndef QRECURSE
RBC > QRECURSE=recurse.mk
RBC > ifdef QCONFIG
RBC > QRDIR=$(dir $(QCONFIG))
RBC > endif
RBC > endif
RBC > include $(QRDIR)$(QRECURSE)


Ouch! That’s one of those very QNX specific makefiles. It has NO
useful information in it. All of the good stuff is in recurse.mk. I’m
sure that your recurse.mk is the same as mine so I won’t ask you to
post it.

I do a lot of tricky stuff with make files but I find that the QNX make
files add levels of indirection that I don’t require.

I’ll see what I can suggest.

Bill Caroselli wrote:

Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:
RBC > Bill Caroselli wrote:

Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:

It might help to post the makefile.

RBC > Here it is:

RBC > LIST=CPU
RBC > ifndef QRECURSE
RBC > QRECURSE=recurse.mk
RBC > ifdef QCONFIG
RBC > QRDIR=$(dir $(QCONFIG))
RBC > endif
RBC > endif
RBC > include $(QRDIR)$(QRECURSE)


Ouch! That’s one of those very QNX specific makefiles. It has NO
useful information in it. All of the good stuff is in recurse.mk. I’m
sure that your recurse.mk is the same as mine so I won’t ask you to
post it.

I do a lot of tricky stuff with make files but I find that the QNX make
files add levels of indirection that I don’t require.

I’ll see what I can suggest.

This is problem I ran into. I made an effort to trace things back and
see where the definition of include files is made, but it is well hidden
to non-Make-guru’s like myself. I thank you for the effort you are making.

Richard Bonomo,6289 Chamberlin,263-4683, wrote:

Bill Caroselli wrote:


Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:
RBC > Bill Caroselli wrote:


Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:

It might help to post the makefile.

RBC > Here it is:

RBC > LIST=CPU
RBC > ifndef QRECURSE
RBC > QRECURSE=recurse.mk
RBC > ifdef QCONFIG
RBC > QRDIR=$(dir $(QCONFIG))
RBC > endif
RBC > endif
RBC > include $(QRDIR)$(QRECURSE)


Ouch! That’s one of those very QNX specific makefiles. It has NO
useful information in it. All of the good stuff is in recurse.mk. I’m
sure that your recurse.mk is the same as mine so I won’t ask you to
post it.

I do a lot of tricky stuff with make files but I find that the QNX make
files add levels of indirection that I don’t require.

I’ll see what I can suggest.


This is problem I ran into. I made an effort to trace things back and
see where the definition of include files is made, but it is well hidden
to non-Make-guru’s like myself. I thank you for the effort you are making.

Rich,

If you are working from a development kit similar to the ones I’m
familiar with, the include file definition is made in the common.mk
file in the devn directory. Use EXTRA_INCVPATH to add include
search paths, EXTRA_LIBVPATH to add library search paths & LIBS to
add libraries. See

http://www.qnx.com/developers/docs/momentics621_docs/neutrino/prog/make_convent.html

If you’ve got a line in common.mk that looks like:

EXTRA_INCVPATH = $(PROJECT_ROOT)/public $(PROJECT_ROOT)/public/drvr
$(USE_ROOT_nto)/usr/include/drvr

then the intent is to use drvr include and library files from the
prebuilt directory at the root of the kit. Running make in the
kit’s root directory will copy the drvr stuff from the prebuilt
directory to the scratch directory, and copy the configuration
override file, qconf-override.mk to the src directory at the root of
the kit. Thereafter, when you run make at the lower levels of the
kit, the override file will automatically be included to appropriately
define USE_ROOT_nto so that the EXTRA_INCVPATH above will point to
the drvr include path of the scratch area for the compiler.

Clear as mud,


Doug

Doug Fowley <DougFowley1956@yahoo.com> wrote:

DF > Rich,

DF > If you are working from a development kit similar to the ones I’m
DF > familiar with, the include file definition is made in the common.mk
DF > file in the devn directory. Use EXTRA_INCVPATH to add include
DF > search paths, EXTRA_LIBVPATH to add library search paths & LIBS to
DF > add libraries. See

DF > http://www.qnx.com/developers/docs/momentics621_docs/neutrino/prog/make_convent.html

DF > If you’ve got a line in common.mk that looks like:

DF > EXTRA_INCVPATH = $(PROJECT_ROOT)/public $(PROJECT_ROOT)/public/drvr
DF > $(USE_ROOT_nto)/usr/include/drvr

DF > then the intent is to use drvr include and library files from the
DF > prebuilt directory at the root of the kit. Running make in the
DF > kit’s root directory will copy the drvr stuff from the prebuilt
DF > directory to the scratch directory, and copy the configuration
DF > override file, qconf-override.mk to the src directory at the root of
DF > the kit. Thereafter, when you run make at the lower levels of the
DF > kit, the override file will automatically be included to appropriately
DF > define USE_ROOT_nto so that the EXTRA_INCVPATH above will point to
DF > the drvr include path of the scratch area for the compiler.

DF > Clear as mud,

What he said.

I feel better now about my decision not to use the QNX makefiles.

Bill Caroselli wrote:

Doug Fowley <> DougFowley1956@yahoo.com> > wrote:

DF > Rich,

DF > If you are working from a development kit similar to the ones I’m
DF > familiar with, the include file definition is made in the common.mk
DF > file in the devn directory. Use EXTRA_INCVPATH to add include
DF > search paths, EXTRA_LIBVPATH to add library search paths & LIBS to
DF > add libraries. See

DF > > http://www.qnx.com/developers/docs/momentics621_docs/neutrino/prog/make_convent.html

DF > If you’ve got a line in common.mk that looks like:

DF > EXTRA_INCVPATH = $(PROJECT_ROOT)/public $(PROJECT_ROOT)/public/drvr
DF > $(USE_ROOT_nto)/usr/include/drvr

DF > then the intent is to use drvr include and library files from the
DF > prebuilt directory at the root of the kit. Running make in the
DF > kit’s root directory will copy the drvr stuff from the prebuilt
DF > directory to the scratch directory, and copy the configuration
DF > override file, qconf-override.mk to the src directory at the root of
DF > the kit. Thereafter, when you run make at the lower levels of the
DF > kit, the override file will automatically be included to appropriately
DF > define USE_ROOT_nto so that the EXTRA_INCVPATH above will point to
DF > the drvr include path of the scratch area for the compiler.

DF > Clear as mud,

What he said.

I feel better now about my decision not to use the QNX makefiles.

But building drivers without them is a real pain. It would sure be nice if they were better
documented. I can’t count the hours I’ve spent trying to plod through the existing
documentation, and I still fell that it’s all “Clear as mud”.

Murf

Doug Fowley wrote:

Richard Bonomo,6289 Chamberlin,263-4683, wrote:
Bill Caroselli wrote:


Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:
RBC > Bill Caroselli wrote:


Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:

It might help to post the makefile.

RBC > Here it is:

RBC > LIST=CPU
RBC > ifndef QRECURSE
RBC > QRECURSE=recurse.mk
RBC > ifdef QCONFIG
RBC > QRDIR=$(dir $(QCONFIG))
RBC > endif
RBC > endif
RBC > include $(QRDIR)$(QRECURSE)


Ouch! That’s one of those very QNX specific makefiles. It has NO
useful information in it. All of the good stuff is in recurse.mk. I’m
sure that your recurse.mk is the same as mine so I won’t ask you to
post it.

I do a lot of tricky stuff with make files but I find that the QNX make
files add levels of indirection that I don’t require.

I’ll see what I can suggest.


This is problem I ran into. I made an effort to trace things back and
see where the definition of include files is made, but it is well hidden
to non-Make-guru’s like myself. I thank you for the effort you are
making.


Rich,

If you are working from a development kit similar to the ones I’m
familiar with, the include file definition is made in the common.mk
file in the devn directory. Use EXTRA_INCVPATH to add include
search paths, EXTRA_LIBVPATH to add library search paths & LIBS to
add libraries. See


http://www.qnx.com/developers/docs/momentics621_docs/neutrino/prog/make_convent.html

If you’ve got a line in common.mk that looks like:

EXTRA_INCVPATH = $(PROJECT_ROOT)/public $(PROJECT_ROOT)/public/drvr
$(USE_ROOT_nto)/usr/include/drvr

then the intent is to use drvr include and library files from the
prebuilt directory at the root of the kit. Running make in the
kit’s root directory will copy the drvr stuff from the prebuilt
directory to the scratch directory, and copy the configuration
override file, qconf-override.mk to the src directory at the root of
the kit. Thereafter, when you run make at the lower levels of the
kit, the override file will automatically be included to appropriately
define USE_ROOT_nto so that the EXTRA_INCVPATH above will point to
the drvr include path of the scratch area for the compiler.

Clear as mud,


Doug

Dear Doug, Bill, and John,

I think I checked this out, but I will look again (I am using 6.2.0, but
I would hope that there are not huge differences), and report what I find.

Rich

Doug Fowley wrote:

Richard Bonomo,6289 Chamberlin,263-4683, wrote:
Bill Caroselli wrote:


Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:
RBC > Bill Caroselli wrote:


Richard Bonomo,6289 Chamberlin,263-4683, <> bonomo@sal.wisc.edu> > wrote:

It might help to post the makefile.

RBC > Here it is:

RBC > LIST=CPU
RBC > ifndef QRECURSE
RBC > QRECURSE=recurse.mk
RBC > ifdef QCONFIG
RBC > QRDIR=$(dir $(QCONFIG))
RBC > endif
RBC > endif
RBC > include $(QRDIR)$(QRECURSE)


Ouch! That’s one of those very QNX specific makefiles. It has NO
useful information in it. All of the good stuff is in recurse.mk. I’m
sure that your recurse.mk is the same as mine so I won’t ask you to
post it.

I do a lot of tricky stuff with make files but I find that the QNX make
files add levels of indirection that I don’t require.

I’ll see what I can suggest.


This is problem I ran into. I made an effort to trace things back and
see where the definition of include files is made, but it is well hidden
to non-Make-guru’s like myself. I thank you for the effort you are
making.


Rich,

If you are working from a development kit similar to the ones I’m
familiar with, the include file definition is made in the common.mk
file in the devn directory. Use EXTRA_INCVPATH to add include
search paths, EXTRA_LIBVPATH to add library search paths & LIBS to
add libraries. See


http://www.qnx.com/developers/docs/momentics621_docs/neutrino/prog/make_convent.html

If you’ve got a line in common.mk that looks like:

EXTRA_INCVPATH = $(PROJECT_ROOT)/public $(PROJECT_ROOT)/public/drvr
$(USE_ROOT_nto)/usr/include/drvr

then the intent is to use drvr include and library files from the
prebuilt directory at the root of the kit. Running make in the
kit’s root directory will copy the drvr stuff from the prebuilt
directory to the scratch directory, and copy the configuration
override file, qconf-override.mk to the src directory at the root of
the kit. Thereafter, when you run make at the lower levels of the
kit, the override file will automatically be included to appropriately
define USE_ROOT_nto so that the EXTRA_INCVPATH above will point to
the drvr include path of the scratch area for the compiler.

Clear as mud,


Doug

Dear Doug,

OK, that did it! (I do not know that the driver will actually WORK,
but the compiler did find the appropriate includes, and the compilation
did go through.

Running “make” in the appropriate higher level directory was something
I either did not know, or had forgotten quite some time ago.

Thanks!

Rich