On Wed, Feb 29, 2012 at 10:06 PM, Christian Ferrari <cam...@yahoo.com>wrote:

> >>  >>>>>    > 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/*
>

Yes I forgot about those, but your are right :)

Autotools are little complicated when you want to dive into them.

One may read
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool
or
paper http://shop.oreilly.com/product/9781593272067.do for deeper help and
understanding :)

Julien.P


> 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.
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to