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

Re: [MacPerl-Modules] Building module : one step further



On Wed, 8 Mar 2000, [iso-8859-1] Fran=E7ois LETELLIER wrote:

> BTW, the tutotial (mpxstut) is not accurate on a couple of points :
> 1/ I found no way to use h2xs_app.plx to actually process a .h file. It's
> OK to get a skeleton, but otherwise ???
> 2/ h2xs_app.plx needs to find mac_h2xs in @INC.

Don't know.

> 3/ xsubpp has to be extensively edited to modify the paths it contains
> ($xsubpp, @options to find the typemaps, ...)

I didn't think it was too extensive, but...

I added a $srcdir to point to my MacPerl source, and $extdir is built from
this.  All others are built from either $srcdir or $extdir.

I also added the line
push(@options, '-typemap', "$path:typemap")  if  (-e "$path:typemap");
so that typemaps used by the external in question are included.

I may have made other changes, too, that I don't remember anymore.

Ultimately, I would like to see xsubpp get run from inside the makefile,
where $srcdir and all necessary $extdir info is available, and where it
should be anyway.  But with MacOS X coming, it may just be easier to wait
until things are fixed for free.  :)


> Well, after struggling with the above, I eventually went to *compiling* t=
he
> C code generated by xsubpp. CodeWarrior reports 100 errors (my C code is =
3
> lines long), due to dupplicate definitions of #defines or typedefs.
> Obviously, some .h files are included twice or - what is worse - some of
> them define the same things, but don't have compliant "include guards".

As it says in the Tutorials, the Access Path order is important.  In the
CodeWarrior IDE, I have "(Project)" stuff _above_ my MacPerl Src path, and
"(Compiler)" stuff above my perl,sfio/include, and GUSI/include paths.
That order has worked for me.

Also, #defining MULTIPLICITY is important--don't forget it like I did
(once).

After everything, you will still get warnings, but shouldn't see errors.
The CW Linker should treat multiple definitions as a warning, unless you
tell it otherwise. Things are a little messy right now, but there's hope
for the future.


HTH.


--
MattLangford=20


=3D=3D=3D=3D Want to unsubscribe from this list?
=3D=3D=3D=3D Send mail with body "unsubscribe" to macperl-modules-request@m=
acperl.org