Hi Jonathan, Congratulations on the patch, and thanks for making it complete. It looks great, but I can see a couple of minor problems. My main complaint is that your tests do not show that building a upc program actually work.
[...] JH> @itemx maude_LFLAGS JH> @itemx maude_OBJCFLAGS JH> @itemx maude_RFLAGS JH> [EMAIL PROTECTED] maude_UPCFLAGS JH> @itemx maude_YFLAGS There is at least one other place in the manual that lists *FLAGS variables and could use an update : "Flag Variables Ordering" section of the FAQ. [...] JH> [EMAIL PROTECTED] Unified Parallel C Support JH> [EMAIL PROTECTED] Unified Parallel C Support JH> + JH> [EMAIL PROTECTED] Unified Parallel C support JH> [EMAIL PROTECTED] Support for Unified Parallel C JH> + JH> +Automake includes some support for Unified Parallel C. JH> + JH> +Any package including Unified Parallel C code must define the output variable JH> [EMAIL PROTECTED] in @file{configure.ac}; the simplest way to do this is to use JH> +the @code{AM_PROG_UPC} macro (@pxref{Particular Programs, , Particular JH> +Program Checks, autoconf, The Autoconf Manual}). This reference to the Autoconf manual looks wrong, since you're submitting AM_PROG_UPC to Automake and documenting it elsewhere in this manual. [...] JH> @@ -4967,6 +5010,9 @@ JH> @vindex OBJCLINK JH> Objective C (@code{OBJCLINK}) JH> @item JH> [EMAIL PROTECTED] UPCLINK JH> +Unified Parallel C (@code{UPCLINK}) JH> [EMAIL PROTECTED] JH> @vindex LINK JH> C (@code{LINK}) JH> @end enumerate This part explains how the linker is chosen when languages are mixed. I could not find the part of the patch that implements this selection, nor any test-case for it. (The linker is chosen by resolve_linker() in automake.in.) [...] JH> Index: m4/depend.m4 JH> =================================================================== JH> RCS file: /cvs/automake/automake/m4/depend.m4,v JH> retrieving revision 1.37 JH> diff -u -r1.37 depend.m4 JH> --- m4/depend.m4 6 Jun 2006 20:55:44 -0000 1.37 JH> +++ m4/depend.m4 31 Jul 2006 00:28:25 -0000 JH> @@ -34,6 +34,7 @@ JH> ifelse([$1], CC, [depcc="$CC" am_compiler_list=], JH> [$1], CXX, [depcc="$CXX" am_compiler_list=], JH> [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], JH> + [$1], UPC, [depcc="$UPC" am_compiler_list='gcc3 gcc'], JH> [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], JH> [depcc="$$1" am_compiler_list=]) Why restrict the dependency methods to gcc3 and gcc ? I don't know UPC. My understanding from http://www.gwu.edu/~upc/download.html is that several compilers exist, and they are not all based on gcc. Have you used any other ? If The hp version is based on the hp C compiler, it probably requires one of the "hp*" dependency methods. I believe it wouldn't be wrong to try them all like we do for C/C++. [...] JH> Index: tests/upc.test JH> =================================================================== JH> RCS file: tests/upc.test JH> diff -N tests/upc.test JH> --- /dev/null 1 Jan 1970 00:00:00 -0000 JH> +++ tests/upc.test 31 Jul 2006 00:28:26 -0000 [...] JH> +# Test that `.upc' extension works. JH> +# From Ralf Corsepius (for C++). JH> + JH> +. ./defs || exit 1 JH> + JH> +cat >> configure.in << 'END' JH> +AM_PROG_UPC JH> +END JH> + JH> +cat > Makefile.am << 'END' JH> +bin_PROGRAMS = hello JH> +hello_SOURCES = hello.upc JH> +END JH> + JH> +$ACLOCAL || exit 1 JH> +$AUTOMAKE || exit 1 JH> + JH> +grep '^\.SUFFIXES:.*\.upc' Makefile.in Please test that compiling a UPC "Hello World" project actually works, by going as far as running "make" and maybe running the generated binary itself (if that makes sense). I'd even run "make distcheck" just to be sure the clean rules and the like work OK. grepping Makefile.in is not enough to ensure that configure and Makefile can actually build anything. grep tests are weak. There are too much of them in the testsuite and we should try to move away from them. Actually running ./configure && $MAKE to make sure it did what they should gives better coverage. You really should regard the test case as a way to protect your new feature from future changes to Automake, so use it like you'd do in a project, demonstrating how you need the feature to work. As said above, another point you've documented but not demonstrated is how upc mixes with other languages. Regards, -- Alexandre Duret-Lutz Shared books are happy books. http://www.bookcrossing.com/friend/gadl