Re: automake not descending into subdirectories to create Makefile.in's

2008-09-25 Thread Ben Pfaff
Laura Hughes (lahughes) [EMAIL PROTECTED] writes:

 My directory struct looks like this:
  
 topdir/
src/
src/basic_utilities
src/ethernet_tests/bc5709_tests
src/ethernet_tests/bc57711_tests
src/mezzanine_card_tests
[...]
 AC_CONFIG_FILES([Makefile
  basic_utilities/Makefile
  ethernet_tests/Makefile
  ethernet_tests/bc5709_tests/Makefile
  ethernet_tests/bc57711_tests/Makefile
  mezzanine_card_tests/Makefile])

It looks to me that there is a missing src/ at the beginning of
most of those lines.
-- 
I was born lazy.  I am no lazier now than I was forty years ago, 
 but that is because I reached the limit forty years ago.  You can't 
 go beyond possibility.
--Mark Twain





Re: automake not descending into subdirectories to create Makefile.in's

2008-09-25 Thread Ralf Wildenhues
Hello Laura,

* Laura Hughes (lahughes) wrote on Thu, Sep 25, 2008 at 09:44:07PM CEST:
 My directory struct looks like this:
  
 topdir/
src/
src/basic_utilities
src/ethernet_tests/bc5709_tests
src/ethernet_tests/bc57711_tests
src/mezzanine_card_tests
  
 My files:
 topdir/configure.ac:
 AC_PREREQ(2.59)
 AC_INIT(cisco_diags, 1.0.1)
 AC_CONFIG_SRCDIR([Makefile])

The Makefile file is not actually part of the source tree: it is
generated by configure in the build tree (from the Makefile.in file in
the source tree).  So it's better to list some file like a .c file:
  AC_CONFIG_SRCDIR([src/basic_utilities/show_hardware_info.c])

 AM_CONFIG_HEADER([src/include/diags_config.h])
 AM_INIT_AUTOMAKE(no-installinfo, no-installman, nostdinc,
 no-texinfo.tex)

Automake's options need to be listed space-separated here.
I think the commas will pretty much cause it to ignore all
but the first option.

 AC_CONFIG_SUBDIRS(src)

Do you actually need this?  It is necessary only if you have another
configure script in src/.

 # Checks for programs.
 AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_RANLIB
[...]

 AC_CHECK_FUNCS([strchr strrchr strtol])
  
 AC_CONFIG_FILES([Makefile
  basic_utilities/Makefile
  ethernet_tests/Makefile
  ethernet_tests/bc5709_tests/Makefile
  ethernet_tests/bc57711_tests/Makefile
  mezzanine_card_tests/Makefile])

It looks like you should list
  src/Makefile

here, too.  Wait: wouldn't that be 
  src/ethernet_tests/Makefile

instead of
  ethernet_tests/Makefile

and likewise for the other Makefiles?  That explains the errors you are
seeing.

 AC_OUTPUT

 topdir/Makefile.am
 AUTOMAKE_OPTIONS = foreign

You don't need this line if you add
  foreign

to the list of options as argument to AM_INIT_AUTOMAKE in configure.ac.

 EXTRA_CFLAGS = @EXTRA_CFLAGS@

You don't need this line if you put
  AC_SUBST([EXTRA_CFLAGS], ...)

in configure.ac.

Same issues in the other Makefile.am files.

 AM_CFLAGS = -Wall -W -Wstrict-prototypes $(EXTRA_CFLAGS)
 SUBDIRS = src
  
 topdir/src/Makefile.am
 AUTOMAKE_OPTIONS = foreign
 CC = @CC@

You don't need this line.

 EXTRA_CFLAGS = @EXTRA_CFLAGS@
 AM_CFLAGS = -Wall -W -Wstrict-prototypes $(EXTRA_CFLAGS)
 SUBDIRS = basic_utilities ethernet_tests mezzanine_card_tests
[...]

 configure.ac:25: required file `basic_utilities/Makefile.in' not found
 configure.ac:25: required file `ethernet_tests/Makefile.in' not found
 configure.ac:25: required file `ethernet_tests/bc5709_tests/Makefile.in'
 not found
 configure.ac:25: required file
 `ethernet_tests/bc57711_tests/Makefile.in' not found
 configure.ac:25: required file `mezzanine_card_tests/Makefile.in' not
 found

Hope that helps.

Cheers,
Ralf