news about the Qt integration?

2009-11-01 Thread Gergely Risko
Hi Ralf,

Have you managed to look into my patches about the Qt MOC integration?

Thanks,
Gergely





Re: news about the Qt integration?

2009-11-01 Thread Ralf Wildenhues
Hello Gergely,

* Gergely Risko wrote on Sun, Nov 01, 2009 at 07:36:08PM CET:
 Have you managed to look into my patches about the Qt MOC integration?

No; and I'm really sorry about that.  I hope to have some more Automake
time next weekend though.

My next Automake work items are the zsh testsuite fixes, OBJCXX, then
your QT patch series.

Cheers,
Ralf




Re: news about the Qt integration?

2009-11-01 Thread RISKÓ Gergely
On Sun, 1 Nov 2009 20:11:07 +0100, Ralf Wildenhues ralf.wildenh...@gmx.de 
writes:

 My next Automake work items are the zsh testsuite fixes, OBJCXX, then
 your QT patch series.

Thank you, and do not feel hurried by me, I was just asking.  The
paperwork is still pending in the company of mine anyway, but let's hope
it gets solved as soon as possible.

Cheers,
Gergely




Re: QT Plugins, target build order AND BUILT_SOURCES

2009-11-01 Thread Ralf Wildenhues
Hello Andre,

Your example is pretty complex, and doesn't make the problem obvious.
Merely adding libCustomPlugin.la to BUILT_SOURCES doesn't seem to
introduce a cycle in the build dependencies, at least from a 'make -n'
in an example package that has this Makefile.am but no other files.

It may help to see a reduced example package that still has the cycle.

Cheers,
Ralf




Re: OS independent build results

2009-11-01 Thread Ralf Wildenhues
Hello Andreas,

* Andreas Otto wrote on Sun, Oct 25, 2009 at 07:20:16PM CET:
   currently I try to improve my build environment. I want to add OS 
   independent build results like
 
   java class files or mono clr libraries/excutable 
 
   into the distribution
   
   1) the problem is the VPATH build. the files from above are
   in the srcdir and not in the builddir (1'st location)

If the tools needing them are from you, you can peek at how automake-
generated rules deal with files that can be in both trees, by trying
first the build dir file and then falling back on prepending $(srcdir)/.

If you need a compiler or other tool to find files, either you may be
able to pass some flags like -I$(srcdir) or so, or you copy (or symlink;
you can use $(LN_S) to have the latter but fall back to the former; see
'info Autoconf --index LN_S' for more info).

Yet another possibility is to just update all files in the source tree:
as long as a shipping tarball won't ever change for a user building from
the tarball, and the generated files are not system-dependent, that
should work.

   2) if one of the prerequisite file are touched
   (java - *.java, mono - *.cs)
  the new class or clr file(s) are in the builddir (2'nd location)
 after the build
 
   - now I have 2 locations from which the dist or a other command
  like the java jar can take the files

   3) only for case 2) the VPATH build have to clean up the files

Recent Automake has an internal variable CONFIG_CLEAN_VPATH_FILES.
Files listed in this variable are removed only if $(srcdir) != ..
If this would help you, we can try to make a public API for this
variable.

   4) for a very special vase VB.NET CLR files can only be compiled
 on a special OS (Windows). A non-Windows OS should use
 the dist files and print a WARNING message if a build have to be 
 done

You can turn on system-dependent parts of a makefile with conditionals,
see 'info Automake Conditionals'.  You can extend installation with
install-{data,exec}-{local,hook}, see 'info Automake Extending'.

 one solution would be that vor a VPATH build I can specify a set
 of dirs/files (in a variable) to COPIED first from the srcdir
 into the builddir, these copied files have to be removed in a
 distclean - attention the copy have only be done if the
 target of the same name is not available

You can loop over files and use 'test -f' on the target file.

If you have problems with a specific rule, please show the code you
have.

HTH.  Cheers,
Ralf




Re: OS independent build results

2009-11-01 Thread Andreas Otto
Hi,

  this is my solution:

  this add a new target .vpath_hook to the build environment and this target
  copy the files/directories listed in VPATH_FILES from the src into the
  build environment. the copy is necessary because tools like JAR
  expect the files in the build directory. .vpath_hook is the FIRST
  target in BUILT_SOURCES to garantee that the copy is done before
  any furter action are done.


1. acinclude.m4

#
# SC_SET_VPATH_HOOK --
#
#   add support for VPATH build
#
# Arguments:
#   none
#   need variable VPATH_FILES be defined
#
# Results:
#
#   Add a new variable VPATH_HOOK/CLEANUP/DIST  to automake
#
#

AC_DEFUN([SC_SET_VPATH_HOOK], [
AC_MSG_CHECKING([add VPATH hook])
AC_SUBST([VPATH_HOOK], ['@if test ! -f .vpath_files -a $(srcdir) != . 
; then (cd $(srcdir)  cp -r $(VPATH_FILES) $(abs_builddir);)  touch 
.vpath_files  chmod -R u+w $(VPATH_FILES)  echo VPATH copy; else true; 
fi  touch .vpath_hook'])
AC_SUBST([VPATH_HOOK_CLEANUP], ['-rm -f .vpath_hook; test -f .vpath_files 
 rm -fr .vpath_files $(VPATH_FILES)'])
AC_SUBST([VPATH_HOOK_DIST], ['-rm -f $(distdir)/.vpath_hook'])
])

2. example java Automake.am:

...
#
## VPATH setup

.vpath_hook:
$(VPATH_HOOK)

VPATH_FILES = javamsgque javamsgque_MqS.h javamsgque_MqBufferS.h 
javamsgque_MqS_WAIT.h javamsgque.jar

BUILT_SOURCES = .vpath_hook $(mqs_DATA) javamsgque_MqS.h 
javamsgque_MqBufferS.h
MAINTAINERCLEANFILES = $(BUILT_SOURCES) javamsgque_MqS_WAIT.h 
javamsgque/*.class
...

distclean-local:
$(VPATH_HOOK_CLEANUP)

dist-hook: $(MQS_MAIN)
$(VPATH_HOOK_DIST)
mkdir $(distdir)/javamsgque
chmod u+w $(distdir)/javamsgque
cp javamsgque/*.class $(distdir)/javamsgque
chmod u+w $(distdir)/javamsgque/*.class



!important! is that make clean should not clean the *.class files.
I use the MAINTAINERCLEANFILES to clean this files also



Re: OS independent build results

2009-11-01 Thread Ralf Wildenhues
* Andreas Otto wrote on Sun, Nov 01, 2009 at 12:17:05PM CET:
   this add a new target .vpath_hook to the build environment and this target
   copy the files/directories listed in VPATH_FILES from the src into the
   build environment. the copy is necessary because tools like JAR
   expect the files in the build directory. .vpath_hook is the FIRST
   target in BUILT_SOURCES to garantee that the copy is done before
   any furter action are done.

Note that parallel make (make -jN) does not guarantee that .vpath_hook
is completed before the other BUILT_SOURCES are updated.  Not sure if
you need that, but if you do, you could make the former a prerequisite
of the latter ones.

Cheers,
Ralf




is anyone using threaded automake?

2009-11-01 Thread Ralf Wildenhues
Since the 1.11 release I have not seen one bug report about
$AUTOMAKE_JOBS aka. automake running several Perl threads to
update several Makefile.in files concurrently, for speed.
If you have more than a couple of Makefile.am files and a SMP
system, then it should help.

Is anyone using it?  Has anyone seen issues with it?

Bugs could manifest in unstable Makefile.in content,
i.e., running it a second time creates a different file,
and/or unstable warning/error output from automake, thus by
definition be hard to detect and hard to debug.  Which is
why I'm asking whether I should assume it just works or
nobody uses it or there is not enough use to expose bugs.

Thanks,
Ralf




Re: is anyone using threaded automake?

2009-11-01 Thread Ralf Wildenhues
Hi Jason,

* Jason Sewall wrote on Sun, Nov 01, 2009 at 06:28:31PM CET:
 On Sun, Nov 1, 2009 at 6:45 AM, Ralf Wildenhues wrote:
 
  Is anyone using it?  Has anyone seen issues with it?
 
 I didn't even know it existed, but I just tried it out and it seems to
 generate correct output for a project I have with 12 Makefile.am
 files. I have a quad core machine and set AUTOMAKE_JOBS=4.
 
 The performance gains are fairly small, however:
 $ AUTOMAKE_JOBS=1 time automake
 1.31user 0.19system 0:01.51elapsed 100%CPU
 
 $ AUTOMAKE_JOBS=4 time automake
 1.62user 0.24system 0:01.14elapsed 163%CPU

Yeah, the perl thread spawning really has high overhead, and the output
synchronization isn't all that performant either.  I did get quite
acceptable speedup out of a 150-makefile project.

 And they are imperceptible with autoreconf.

Oh well.

Thanks for testing,
Ralf