[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: upc (Unified Parallel C) support in automake (was: Re: AM_PROG_UPC)

From: Too, Justin A.
Subject: Re: upc (Unified Parallel C) support in automake (was: Re: AM_PROG_UPC)
Date: Mon, 2 May 2011 12:18:34 -0700
User-agent: Microsoft-MacOutlook/

Hi Stefano

On 4/30/11 1:10 PM, "Stefano Lattarini" <address@hidden>

>[adding automake and bug-automake lists]
>[follow-ups might drop autoconf list IMHO]
>Hello Justin and Ralf, and sorry for the delay.
>On Saturday 30 April 2011, Justin  wrote:
>> On 4/29/11 8:57 PM, "Ralf Corsepius" <address@hidden> wrote:
>> >On 04/30/2011 01:16 AM, Too, Justin A. wrote:
>> >> Hi all,
>> >>
>> >> In my I simply invoke: AC_PROG_UPC
>> >>
>> >> Š
>> >> $ aclocal Š
>> >> warning: macro `AM_PROG_UPC' not found
>> >>library
>> >> Š
>> >> $ autoconf
>> >> error: possibly undefined macro: AM_PROG_UPC
>> >> If this token and others are legitimate, please use m4patternallow.
>> >> See the Autoconf documentation.
>> >>
>> >> Is this a non-standard macro?
>> >Yes.
>> >
>No, it's not (well, it shouldn't be).  It is defined in the file
>`upc.m4' provided by automake.  Thus the failure above, if not due
>to some misconfiguration or user error, is an automake bug.

Sorry, the problem was not critical.  It turns out that my system
installation of Automake is 1.9, but /usr/share/aclocal/upc.m4 did not
exist.  I've got 'upc.m4' in place now so it seems to make it pass
'aclocal' and 'automake' now.

I've got another somewhat related issue, and that is: how can I
conditionally use the macro AM_PROG_UPC?  Most users won't have UPC in
their path so I'd like to only check for UPC if the user configures
explicitly with UPC.  If I wrap the macro call like so:

if test "xwith_upc" = "xyes" ; then

I get "configure: error: conditional "am__fastdepUPC" was never defined.
Usually this means the macro was only invoked conditionally.".   In the
configure script, it looks like UPC-related code is generated outside of
my block in addition to inside of the block.

Thanks for the advise,

>Justin, could you please provide more details about the failure you
>encountered?  What system are you on?  Which automake version are you
>using?  What is the content of your and files?
>And everything else you think might be useful.
>> >[Apart of this, AM_PROG_UPC violates auto*tools naming conventions;
>> >AM_*/AM_* prefixed macros are reserved for autoconf rsp. automake.]
>> >
>> >> Then, how can I add UPC support to my Autotools project?
>> >Non-standard macros need to be supplied by either the package itself or
>> >by other packages.
>> >
>> >There are several ways to do so, so answering your question would
>> >require knowing more details about the package you are trying to build.
>> Currently, I'm setting my upc file extensions to .c so that they will
>> compile without complaint from Automake, however it's obviously more
>> if they had a .upc extension:
>> foo_la_SOURCES = \
>>  main.c
>>  test.c
>> I want:
>> foo_la_SOURCES = \
>>  main.upc
>>  test.upc
>Well, this should be supported out of the box with Automake (there is
>even a testcase about this in the automake testsuite)...  Have you really
>tried it?  Does it fail for you?  If yes, what is the error?
>> I found this documentation:
>>     18.2 Handling new file extensions
>> So I'm assuming I can do this:
>> .upc.o:
>>         upcc -c -o $@ $<
>> But this would have to be in every where I'd want to compile
>> UPC.  Also, I would have to do a lot of configure checking and setting
>> myself so that I can use $(UPC) as the compiler in my rule, check that
>> upc/upcc is available, etc.  The AM_PROG_UPC macro seemed like the most
>> convenient method.
>You might take a look at this documentation instead:
>Admittedly, it is sketchy and suboptimal, and could benefit from some
>extensions and examples. I will probably write patch sooner or later
>if nobody beats me (but I hope somebody will do, since I know nothing
>about UPC and doesn't have it available for testing).
>  Stefano

reply via email to

[Prev in Thread] Current Thread [Next in Thread]