[sword-devel] PHP SWIG Bindings and Extension Development

Greg Hellings greg.hellings at gmail.com
Thu Apr 13 08:01:06 EDT 2023


The language contribution for it just not have needed it, and no one has
bothered to add it since.

--Greg

On Thu, Apr 13, 2023, 06:49 Patrick Stephan <pstephan1187 at gmail.com> wrote:

> Do you have any idea why?
>
> - Patrick
> On Apr 13, 2023 at 6:40 AM -0500, Greg Hellings <greg.hellings at gmail.com>,
> wrote:
>
> Without the missing std_list.i file, it won't. If they've added that into
> their head, then you'll be golden. But it has been missing since the days
> of PHP4.
>
> --Greg
>
> On Thu, Apr 13, 2023, 06:12 Patrick Stephan <pstephan1187 at gmail.com>
> wrote:
>
>> Something I discovered last night is that swig installed from apt-get
>> (which I am doing) is at version 4.0, which supports up to php 7.4.
>> Tonight, I will attempt to build swig from source, which supports php 8.
>> I’m crossing my fingers that that helps.
>>
>> - Patrick
>> On Apr 13, 2023 at 6:05 AM -0500, Greg Hellings <greg.hellings at gmail.com>,
>> wrote:
>>
>> Patrick,
>>
>> It has been a long time since I touched the PHP bonding build process.
>> But the basic shortcoming you are encouraging is that Swig lacks support
>> for converting a list from C++ into PHP.
>>
>> This isn't because PHP has no list, but because Swig bindings for PHP
>> never got it added, at least not with the filename the other languages have.
>>
>> You will need to either go to the upstream Swig project and submit that
>> feature, or write one and bundle it just for the PHP bindings directly in
>> Sword. It's also possible the feature or include file is just different in
>> PHP from Python and Perl, so if you discover that, then you could update
>> our bindings to include the proper file. Obviously, in the spirit of FOSS
>> collaboration, doing engagements directly in Swig would be preferred. Until
>> then, PHP bindings will be unavailable unless you develop some other
>> workaround to missing lists.
>>
>> --Greg
>>
>> On Wed, Apr 12, 2023, 23:06 Patrick Stephan <pstephan1187 at gmail.com>
>> wrote:
>>
>>> Alright... So I've gotten a little bit farther...
>>>
>>> I was missing the `libtoolize --force` command before autogen. After
>>> including that command and replacing the php4 references with php8 in the
>>> php.m4, Makefile.am, and Makefile.in, I no longer get the "No rule to make
>>> target 'phpswig'. Stop." error.
>>>
>>> When I run the `make phpswig` command, this is what I get:
>>> ```
>>> mkdir -p php
>>> /usr/bin/swig -php -c++ -o php/Sword.cxx -I. -I/usr/include/sword
>>> ./sword.i
>>> templates.i:3: Error: Unable to find 'std_list.i'
>>> make: *** [Makefile:972: phpswig] Error 1
>>> ```
>>>
>>> That `std_list.i` file appears to be a swig file that is in its python
>>> and perl files, but not in its php files. I imagine that is what is causing
>>> this error. Does anyone know how to overcome this?
>>>
>>> - Patrick
>>> On Apr 12, 2023 at 1:50 AM -0500, Peter von Kaehne <refdoc at gmx.net>,
>>> wrote:
>>>
>>> I am not on my computer and speak from old memory but there is a
>>> two-step for Perl so I guess that may be for php too .
>>>
>>>
>>>
>>> Sent from my phone. Please forgive misspellings and weird “corrections”
>>>
>>> On 12 Apr 2023, at 06:46, Patrick Stephan <pstephan1187 at gmail.com>
>>> wrote:
>>>
>>> 
>>> Hello!
>>>
>>> First off, I want to thank everyone for their work in this project. It's
>>> an incredible work to make God's word more readily available.
>>>
>>> As the subject of the email suggests, I am trying to interface with the
>>> sword library with PHP. I am attempting to use the SWIG bindings provided,
>>> but there are no current PHP bindings provided. There does appear to be
>>> some older PHP 4 (PHP 8 is the current major version available) references
>>> in the Makefiles and configure file in `bindings/swig/package/` and a
>>> php4.m4 file. Attempting to run `make phpswig` (when you might run `make
>>> perlswig` according to the readme file in the swig directory) returns a "No
>>> rule to make target 'phpswig'. Stop." error. I have made some attempts to
>>> replace `php4` with `php8`, but that changes nothing. Anyway, I am
>>> attempting to create (or revive) PHP bindings for the sword library and
>>> would love some direction on where/how to get started. I have practically
>>> no experience with c/c++ or make files or swig, but if someone could give
>>> me a shove in the right direction, I think I can figure it out.
>>>
>>> Thank you everyone!
>>>
>>> - Patrick
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>>
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20230413/64345efe/attachment.htm>


More information about the sword-devel mailing list