Re: VMS, configure.com and nonxs_ext
"Craig A. Berry" <[email protected]>
| Newsgroups | gmane.comp.lang.perl.ports.vms,gmane.comp.lang.perl.perl5.porters |
|---|---|
| Message-ID | <[email protected]> |
On Sep 7, 2009, at 4:46 PM, Nicholas Clark wrote:
> On Mon, Sep 07, 2009 at 08:55:29PM +0100, Nicholas Clark wrote:
>> This might be rather a big favour request.
>
> This might be easier than I first thought
It occurred to me we ought to revisit this after getting vms/ext into
ext. I don't think it will be huge, but it does involve grokking some
DCL that has to work rather hard to do what it's doing. I'll take a
look.
>
>> Would it be possible to augment the configure.com code that finds
>> extensions
>> to correctly partition "nonxs_extensions" from "known_extensions"?
>> (being the rather bonkers way that Configure partitions XS and non-XS
>> extensions)
>>
There's also dynamic_ext, right? Shouldn't dynamic_ext plus
nonxs_extensions equal known_extensions?
> I think that "every" XS extension has exactly one file named *.xs in
> it. Try
> running
>
> perl -nlwe 'print $1 if m!^(ext/[^\/]+/\S+\.xs\b)!' MANIFEST
>
> exclude from the output ext/DynaLoader (which is already a special
> case in
> configure.com) and lines matching 'fallback/constants.xs' and one has
> the list of all XS extensions. I hope that this algorithm is easy to
> encode in DCL.
>
Well, I think what we would do is something like
$ if f$search("[.ext.''xxx']*.xs") .nes. ""
$ then
$ dynamic_ext = dynamic_ext + " ''xxx'"
$ else
$ nonxs_extensions = nonxs_extentions + " ''xxx'"
$ endif
If xxx is "Foo-Bar", that checks the filesystem for the presence of
ext/Foo-Bar/*.xs. This would have to be done before xxx has gone
through the replace_dash_with_slash logic, or xxx could possibly be a
saved dash-containing version that we drag around for this purpose.
________________________________________
Craig A. Berry
mailto:[email protected]
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser