Re: Newbie: issues developing a new extension

From: Date: Wed, 29 Feb 2012 21:06:52 +0000
Subject: Re: Newbie: issues developing a new extension
References: 1 2 3 4 5 6 7 8  Groups: php.internals 
Request: Send a blank email to internals+get-58350@lists.php.net to get a copy of this message
>> >>>>>    > 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.

« previous php.internals (#58350) next »