Re: builddir vs. srcdir

2005-03-18 Thread Paul Pogonyshev

 Hello,

 On Sat, Mar 12, 2005 at 06:56:20PM +0200, Paul Pogonyshev wrote:
  Everything seems to work just fine and as expected,

 your code, which is in whole cited below, doesn't actually know
 about the dependency
 foo.c foo.h: foo.list

 So if you change the .list file, the other files won't be rebuilt.
 This might be a dangerous bug.

It doesn't know about the dependency, but the files will be rebuilt
as a ``side-effect'' of the timestamp rule.  I actually just tried
this out.

 In general, stamps are always dangerous, so it's good to avoid them if
 possible.  I'd try something like this:

 [file `aux/list.make']
 SUFFIXES = .list
 .list.c: Makefile $(PARSE_LIST_COMMAND)
   $(PARSE_LIST_BUILD_RULE)
 .list.h: Makefile $(PARSE_LIST_COMMAND)
   $(PARSE_LIST_BUILD_RULE)
 PARSE_LIST_BUILD_RULE =   \
   $(PARSE_LIST_COMMAND) $(PARSE_LIST_FLAGS)   \
   `test -f '$' || echo '$(srcdir)/'`$ $*.h $*.c   \
   touch $*.h

 [usage]
 LIST_FILES = foo.list bar.list
 # Prevent problems with parallel make:
 foo.h: foo.c
 bar.h: bar.c

 PARSE_LIST_COMMAND = ...
 PARSE_LIST_FLAGS   = ...

 noinst_LIBRARIES = libfoo.a
 libfoo_a_SOURCES = ... $(LIST_FILES)

 # This hint is needed only for included files; *.c files
 # are handled by normal target dependencies:
 BUILT_SOURCES = $(LIST_FILES:.list=.h)

 MOSTLYCLEANFILES =  $(LIST_FILES:.list=.h) $(LIST_FILES:.list=.c)

 include $(top_srcdir)/aux/list.make

Sorry, but I'll stick with my setup.  My parser depends on my lowest-
level library (`libutils') and almost the whole build-tree depends on
the generated files.  So, when I touched my `libutils' in any way, I
would get a full-blown rebuild of the project.  That's why I used `cmp'
and only replaced the `.[ch]' files with the newly generated if they
differed.  And so I need timestamps to avoid unecessary commands run
all the time (I want to see ``nothing to be done...'' when it is the
case.)

 Let me add some comments:
 1) The maintainer of Automake said that $(LIST_FILES:.list=.h) is safe,
and I trust him.

Oh, great, that is what I was looking for!

 2) nodist_libfoo_a_SOURCES was redundant, especially the .c files.
Automake knows how to transform .list to .o, and listing the
intermediate files again could cause problems.

With your setup, yes.  Not with mine, unfortunately.

 3) I try to have the BUILT_SOURCES hist as small as possible, so when
the .c file is a prerequisite of the corresponding .o, there is no
need to pre-build it using BUILT_SOURCES.
 4) With parallel make, the PARSE_LIST_COMMAND cnnot be run twice in
parallel, because of the foo.c: foo.h dependency.  So we are safe.

I need to add this rule in my setup too.

Anyway, even if I don't accept your advice this time, thank you for
the help.  :)

Paul





Post-processing target?

2005-03-18 Thread Kevin Teich
Hello,
Short version: How can I create a target or otherwise specify some 
post-processing script to run after a binary is built, so that it can be 
conditionally run on one platform but not another to create an additional 
file that is copied along with the main binary during installation?

Long version:
I am developing an app using Qt in Linux that I'd like to compile on 
various Linuxes and Mac OS X. It works fine with Qt's qmake program that 
generates Makefiles, but that route doesn't let me develop on Linux and 
compile on Linux and Max OS X, due to the way qmake works. I've 
reverse-engineered a Makefile.am based on the Makefile that qmake outputs 
that works on all my Linux targets. However, for the Mac OS X target, I 
need to do some extra stuff to make the infamous bundle.

Basically I need to do some post-processing on the target after it's built 
to create the bundle directory, copy in a few files, and copy in the 
binary I just built. Then I'd like to have that bundle installed along 
with binary in the installation directory.

My binary's name is scuba2. The bundle is a directory called scuba2.app 
with the target binary in it and some other magic files generated from 
templates. I start with a definition for scuba2.app which requires the 
additional target which are actually just chunks of script that do the 
right thing. Roughly, it looks like this:

scuba2.app: bundle_file1 bundle_file2 bundle_binary
bundle_file1:
make bundle dir, use sed to make file from template in bundle dir
bundle_file2:
make bundle dir, use sed to make file from template in bundle dir
bundle_binary: scuba2
make bundle dir, copy scuba2 into bundle dir
I have an AM_CONDITIONAL in my configure to define a variable SCUBA_BUNDLE 
to be true on Macs. Where should I go from here? I've tried:

if SCUBA_BUNDLE
scuba2_DEPENDENCIES=scuba2.app
endif
But that just creates a circular dependency because scuba2.app requires 
scuba2, and I'm guessing that automake requires the _DEPENDENCIES before 
the main binary. I think I want something like:

if SCUBA_BUNDLE
scuba2_POST_PROCESSING=scuba2.app
endif
Any suggestions?
I'm using automake 1.6.3 and autoconf 2.5.7 on Mac OS X 10.3.
Thanks.
--
Kevin Teich



Reminder: National Conference

2005-03-18 Thread Sonia Maden
Title: DiversityBusiness.com | 2004 Multicultural Business Conference

















Friendly Reminder:
If you have not register for the upcoming conference you still have time to do so!
If you only attend one conference a year you will not want to miss this opportunity to hear from the nation's leading experts on business and diversity. You will also have the chance to meet with the Top 50 corporations for diversity and the nation's leading diversity owned companies.
DiversityBusiness.cominvites you to attend the Fifth National Multicultural Business Conference taking place on March 30- April 1, 2005 at the beautiful Foxwoods Resort Casino located in Mashantucket, CT. 
Come and share your business ideas with other DiversityBusiness.com members and Fortune 500 companies.The conference offers Education, Training and Networking for: 

Chief Diversity Officers 
Supplier Diversity Executives 
Women Entrepreneurs 
Purchasing, Marketing and Human Resource Executives 
Minority and Small Business Entrepreneurs 
Government Decision-makers 
Financial Services Professionals 
Diversity Professionals
To register or for more event information logon to: www.diversitybusiness.com/conference 





Featured Speakers include:







 Jane Applegate America's leading expert on the entrepreneurial market 










Miriam MuleyDirector Diversity Marketing  Sales, General Motors Multicultural Markets and Their Impact on Corporate Revenue


















 Dr.Sondra Thiederman One of the nation's leading experts on workplace diversity and cross-cultural business






 
 

Chin-Ning Chu The New Renaissance Woman












 Gerri Mason HallVice President, Diversity Business Strategy - AmtraK









 Marilyn D. JohnsonVice President Market Development - IBM








 






 

Michelle Johnson Director Supplier Diversity, The Home Depot






 Robert McCormes-BallouDirector, Vendor Diversity, Office Depot









 Julia HubbelThe Art of Business Networking



















 Durie WhiteOperations Director, Office of Small and Disadvantaged Business Utilization, U.S. Department of State









 Ralph ThomasAssociate Administrator - NASA









Anthony (Tony) BellDepartment of Homeland Security









Jonah Cooper, Jr.Director of Business and Resource Development, Rutgers University 
  Kenton Clarke
 President  CEODiversityBusiness.com







Over 1,000 attendee's are expected including over 100 Fortune 500 companies already confirmed. Seating is limited so please confirm your attendance as early as possible. 
To register or for more event information logon to: www.diversitybusiness.com/conference I look forward to seeing you. 




Sincerely,Kenton Clarke President  CEOwww.DiversityBusiness.com 





To be removed from this mailing list Click Here




automake-1.9.5

2005-03-18 Thread Tom Burger
Hi!
I've been trying to compile automake on my computer. 507 tests failed...
Attached is the script I run to configure: configure-vu.
output of configure is in configure.out
output of make is in make.out
output of make check is in make-check.out
uname -a:
SunOS flits 5.9 Generic_112233-11 sun4u sparc SUNW,Sun-Fire-V440
Tnx, Tom
www.few.vu.nl/~tvburger/build/

#!/bin/sh
PATH=/opt/gnu/grep-2.5.1a/bin:/opt/gnu/autoconf-2.59/bin:/usr/ccs/bin:/usr/bin:/usr/local/bin
CC='/opt/gnu/gcc-3.4.3/bin/gcc -O2 -mcpu=v9'
export PATH CC
 
./configure \
  --prefix=/opt/gnu/automake-1.9.5

checking build system type... sparc-sun-solaris2.9
checking for a BSD-compatible install... lib/install-sh -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for perl... /usr/bin/perl
checking for tex... tex
checking whether autoconf is installed... yes
checking whether autoconf works... yes
checking whether autoconf is recent enough... yes
checking whether ln works... yes
checking for grep that handles long lines and -e... 
/opt/gnu/grep-2.5.1a/bin/grep
checking for egrep... /opt/gnu/grep-2.5.1a/bin/grep -E
checking for fgrep... /opt/gnu/grep-2.5.1a/bin/grep -F
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating lib/Automake/Makefile
config.status: creating lib/Automake/tests/Makefile
config.status: creating lib/Makefile
config.status: creating lib/am/Makefile
config.status: creating m4/Makefile
config.status: creating tests/Makefile
config.status: creating tests/defs
config.status: creating tests/aclocal-1.9
config.status: creating tests/automake-1.9

Making check in .
make[1]: Entering directory `/net/build.sparc/gnu/automake-1.9.5'
make[1]: Nothing to be done for `check-am'.
make[1]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5'
Making check in doc
make[1]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/doc'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/doc'
Making check in m4
make[1]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/m4'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/m4'
Making check in lib
make[1]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/lib'
Making check in Automake
make[2]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/lib/Automake'
Making check in tests
make[3]: Entering directory 
`/net/build.sparc/gnu/automake-1.9.5/lib/Automake/tests'
/opt/gnu/make-3.80/bin/make  check-TESTS
make[4]: Entering directory 
`/net/build.sparc/gnu/automake-1.9.5/lib/Automake/tests'
PASS: Condition.pl
PASS: DisjConditions.pl
PASS: Version.pl
PASS: Wrap.pl
==
All 4 tests passed
==
make[4]: Leaving directory 
`/net/build.sparc/gnu/automake-1.9.5/lib/Automake/tests'
make[3]: Leaving directory 
`/net/build.sparc/gnu/automake-1.9.5/lib/Automake/tests'
make[3]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/lib/Automake'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/lib/Automake'
make[2]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/lib/Automake'
Making check in am
make[2]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/lib/am'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/lib/am'
make[2]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/lib'
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/lib'
make[1]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/lib'
Making check in tests
make[1]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/tests'
/opt/gnu/make-3.80/bin/make  defs aclocal-1.9 automake-1.9
make[2]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/tests'
make[2]: `defs' is up to date.
make[2]: `aclocal-1.9' is up to date.
make[2]: `automake-1.9' is up to date.
make[2]: Leaving directory `/net/build.sparc/gnu/automake-1.9.5/tests'
/opt/gnu/make-3.80/bin/make  check-TESTS
make[2]: Entering directory `/net/build.sparc/gnu/automake-1.9.5/tests'
FAIL: aclibobj.test
FAIL: aclocal.test
PASS: aclocal3.test
FAIL: aclocal4.test
FAIL: aclocal5.test
FAIL: aclocal6.test
FAIL: aclocal7.test
FAIL: aclocal8.test
FAIL: aclocal9.test
FAIL: acloca10.test
FAIL: acloca11.test
FAIL: acloca12.test
FAIL: acloca13.test
FAIL: acloca14.test
FAIL: acloca15.test
FAIL: acloca16.test
FAIL: acloca17.test
FAIL: acoutnoq.test
FAIL: acoutpt.test
FAIL: acoutpt2.test
FAIL: acoutqnl.test
FAIL: acoutbs.test
FAIL: acsilent.test
FAIL: acsubst.test
FAIL: acsubst2.test
FAIL: all.test
FAIL: alloca.test
FAIL: alloca2.test
FAIL: alpha.test
FAIL: alpha2.test
FAIL: amassign.test
PASS: ammissing.test
FAIL: ansi.test
FAIL: ansi2.test
FAIL: ansi3.test
FAIL: ansi3b.test
FAIL: ansi4.test
FAIL: