Re: Newbie: issues developing a new extension
>> >>>>> > Dear all,
>>
>> >
>> >>>
>> >>>>> > I'm asking your help because I'm not
> able to
>> > solve an
>> >> issue
>> >>>> probably
>> >>>>> related to some foolish mistake I have not yet
> discovered.
>> >>>>> > I'm trying to develop an experimental
> extension to
>> >> interface LIXA
>> >>>>> library (http:/lixa.sourceforge.net/).
>> >>>>> >
>> >>>>> > I have created the basic stuff (config.m4,
> lixa..c,
>> > php_lixa.h
>> >> and so
>> >>>> on).
>> >>>>> >
>> >>>>> > If I use this sequence from the ext/lixa
> directory:
>> >>>>> >
>> >>>>> > /opt/php/bin/phpize
>> >>>>> > ./configure --help
>> >>>>> >
>> >>>>> > I can see the lixa extension is available:
>> >>>>> >
>> >>>>> > [...]
>> >>>>> > Optional Packages:
>> >>>>> > --with-PACKAGE[=ARG] use PACKAGE
> [ARG=yes]
>> >>>>> > --without-PACKAGE do not use PACKAGE
> (same as
>> >>>> --with-PACKAGE=no)
>> >>>>> > --with-libdir=NAME Look for libraries
> in .../NAME
>> >
>> >> rather than
>> >>>>> .../lib
>> >>>>> > --with-php-config=PATH Path to php-config
> php-config
>> >>>>> > --with-lixa=FILE Include LIXA
> support. File is
>> > the
>> >> path to
>> >>>>> lixa-config
>> >>>>> >
>> >>>>> > [...]
>> >>>>> >
>> >>>>> > and I can compile with:
>> >>>>> >
>> >>>>> > ./configure
> --with-lixa=/opt/lixa/bin/lixa-config
>> >>>>> --with-php-config=/opt/php/bin/php-config
>> >>>>> >
>> >>>>> > the build process runs as expected and the
> extension is
>> >> available
>> >>>> after
>> >>>>> an addition to php.ini
>> > (extension=[...]/ext/lixa/modules/lixa.so).
>> >>>>>
>> >>>>> Great, you are done. Why do you want to go any
> further than
>> > this?
>> >> You
>> >>>>> built your extension and it is available from PHP
> exactly
>> > like any
>> >> pecl
>> >>>>> extension.
>> >>>>>
>> >>>>
>> >>>> and if you're using apache, reboot it and check your
> phpinfo()
>> > page
>> >> for
>> >>>> your extension.
>> >>>> if you're connected up via the command line you can
> run
>> > "php
>> >> -m"
>> >>>> to see if
>> >>>> your modules exists.
>> >>>>
>> >>>>
>> >>>>>
>> >>>>> -Rasmus
>> >>>>>
>> >>>
>> >>> Dear all,
>> >>> I would like to see my extension as any other extension,
> like MySQL,
>> >> PostgreSQL, Oracle and so on because:
>> >>> 1. LIXA itself is useless without those resource managers
>> >>> 2. I need to patch other extensions to implement the
> interfaces
>> > between
>> >> LIXA and MySQL/PostgreSQL/Oracle.
>> >>> What's the difference between an "internal"
> extension
>> > (like
>> >>> MySQL/PostgreSQL/Oracle) and an "external"
> extension as the
>> > one I
>> >>> produced?
>> >>> Thanks in advance, your help is precious.
>> >>
>> >>
>> >> The PHP source archive bundles several extensions under the ext/
>> >> directory, these are the extensions are listed when you run
>> >> ./configure --help
>> >>
>> >> I don't understand why you want your extension to show up
> there, but
>> >> to do so you have to place your extension in that folder and run
>> >> ./buildconf --force
>> >> PHP will not automatically scan your filesystem for possible
> extension
>> >> directories to list them under ./configure
>> >> I'm sure you have seen, and used, http://pecl.php.net - these
>> >> extensions don't show up when you build PHP.
>> >>
>> >> The standard way to build "external" extensions however
> is to use
>> >> pecl, or manually build them as shared modules (as you did
> first).
>> >>
>> >>
>> >> -Hannes
>> >>
>> >
>> > That's the point: I tryed
>> > ./buildconf --force
>> > but it didn't include my extension.
>> >
>> > This is an excerpt from my initial post:
>> >
>> >> If I use this sequence from the PHP root directory:
>> >
>> >> ./buildconf --force
>> >> as described here:
>> > talks.somabo.de/200510_zend_conf_php_extension_development.pdf
>> >
>> >> I cannot see "lixa" as an available option of my
> configure:
>> >
>> >> ./configure --help|grep lixa
>> >> is empty.
>> >
>> >> If I try to build PHP anyway, I obtain:
>> >
>> >> tiian@mojan:~/src/swig/php5.4-201202241630$ ./configure
>> > --with-lixa=/opt/lixa/bin/lixa-config
>> >> configure: WARNING: unrecognized options: --with-lixa
>> >
>> > Do you have any idea how to debug why "buildconf --force"
> does not
>> > pick-up my extension?
>>
>
> You should rm -f configure manually before invoking buildconf --force. It
> wont overwrite configure by itself.
>
> Julien.P
>
Dear Julien,
your suggestion is precious but unfortunately some more files must be deleted.
After a bit of hacking I've found out this working sequence:
tiian@mojan:~/php5.4-201202241630$ rm configure autom4te.cache/*
tiian@mojan:~/php5.4-201202241630$ ./buildconf --force
Forcing buildconf
rebuilding configure
rebuilding main/php_config.h.in
tiian@mojan:~/php5.4-201202241630$ ./configure --help|grep lixa
--with-lixa=FILE Include LIXA support. File is the path to lixa-config program
Thanks again for your needful help!
Regards
Ch.F.
Thread (10 messages)