Hi all I just became maintainer of a rather large-scale cross-platform project. Our configure/makefiles are written somewhat awkwardly and self-implemented, and after some deliberation and study, We decided to port to autoconf/automake.
1. I am currently experimenting on a stock x86 RH7.2, and replaced the default automake/autoconf with automake 1.7 and autoconf 2.54 (moving the old /usr/bin/autostuff and /usr/share/automake/ out of the way while at it). 2. When doing tests on a hello-world project, I run into some warning message: == snip Use of uninitialized value in split at /usr/bin/automake line 5044, <GEN0> line 87. == end snip urp?! my Makefile.am script looks like: === start snip == noinst_PROGRAMS = hello hello_SOURCES = hello.c === end snip == and my configure.in looks like: === start snip == # Process this file with autoconf to produce a configure script. AC_INIT(hello, 1.0, [EMAIL PROTECTED]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([hello.c]) AC_CONFIG_HEADER([config.h]) # Checks for programs. AC_PROG_CXX AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_CONFIG_FILES([]) AC_OUTPUT(Makefile) === end snip == 3. I get a Makefile, run make and get: == start snippet == 10:23|[Natasha] mikisu:~/testdir#make make all-am make[1]: Entering directory `/home/mikis/testdir' if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT hello.o -MD -MP -MF ".deps/hello.Tpo" \ -c -o hello.o `test -f 'hello.c' || echo './'`hello.c; \ then mv ".deps/hello.Tpo" ".deps/hello.Po"; \ else rm -f ".deps/hello.Tpo"; exit 1; \ fi gcc -g -O2 -o hello hello.o make[1]: Leaving directory `/home/mikis/testdir' == end snippet == What's with the "if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT hello.o -MD -MP -MF ".deps/hello.Tpo" \ -c -o hello.o `test -f 'hello.c' || echo './'`hello.c; \ then mv ".deps/hello.Tpo" ".deps/hello.Po"; \ else rm -f ".deps/hello.Tpo"; exit 1; \ fi" section? Do I want it soiling our dev team's screens? I've never seen it on GNU sw projects.. .. and I can't for the life of me figure out any defines/macros/whatevers in there. If this is relevant to me as a package maintainer, are there FM's to RT? If not, how do I ask make to hide it? 4. Can someone explain what aclocal is? (or tell me what to go read? :-) 5. 4. Is there any good automake+autoconf tutorial other than http://www.gnu.org/manual/automake/text/automake.txt ? That aside, I would really love an A->Z walkthrough to RTFM - of putting a package together, of what I need to package with my tarball (assuming not all systems I deploy to have BSD install scripts and such), in short - comprehensive packaging-oriented (and not automake-oriented) docs? Thanks! -- Miki Shapiro <[EMAIL PROTECTED]> Coder - Unixophile - Boarder - Quake God Aladdin Knowledge Systems --------------------------------------------- Tel: +972-(4)-8811403 ICQ: 3EE853 --------------------------------------------- C++ Berkeley Burton Tribes Have board. Will ride. ******************************* IMPORTANT ! ********************************** The content of this email and any attachments are confidential and intended for the named recipient(s) only. If you have received this email in error please notify the sender immediately. Do not disclose the content of this message or make copies. This email was scanned by eSafe Mail for viruses, vandals and other malicious content. ******************************************************************************