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