Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:58405 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 9221 invoked from network); 1 Mar 2012 10:08:56 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Mar 2012 10:08:56 -0000 Authentication-Results: pb1.pair.com smtp.mail=julienpauli@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=julienpauli@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.170 as permitted sender) X-PHP-List-Original-Sender: julienpauli@gmail.com X-Host-Fingerprint: 209.85.215.170 mail-ey0-f170.google.com Received: from [209.85.215.170] ([209.85.215.170:34805] helo=mail-ey0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AB/F0-46815-6BA4F4F4 for ; Thu, 01 Mar 2012 05:08:54 -0500 Received: by eaao10 with SMTP id o10so115779eaa.29 for ; Thu, 01 Mar 2012 02:08:51 -0800 (PST) Received-SPF: pass (google.com: domain of julienpauli@gmail.com designates 10.14.95.202 as permitted sender) client-ip=10.14.95.202; Authentication-Results: mr.google.com; spf=pass (google.com: domain of julienpauli@gmail.com designates 10.14.95.202 as permitted sender) smtp.mail=julienpauli@gmail.com; dkim=pass header.i=julienpauli@gmail.com Received: from mr.google.com ([10.14.95.202]) by 10.14.95.202 with SMTP id p50mr2577071eef.78.1330596531536 (num_hops = 1); Thu, 01 Mar 2012 02:08:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=3ccEt2QWgz5O+yjadcUbUNKMfSvUHb7Bn43SSlqCPWk=; b=w4mgwRaVDBTubjGWrnjuxaAkOkFgEd3+/PZy2vtu9ecAPAebn2LTGB5x1c+IekOgve 6xr5AHTI6cEQ/NIpHzYevE2uYsXIzAIF576s4XSbbBo+4NV6I7htAdhu6WPr41QVoskT XAoT0wzoPXp13HyKP71OnMe7+dBQJZZKxRq60= Received: by 10.14.95.202 with SMTP id p50mr1989385eef.78.1330596531373; Thu, 01 Mar 2012 02:08:51 -0800 (PST) MIME-Version: 1.0 Sender: julienpauli@gmail.com Received: by 10.213.29.2 with HTTP; Thu, 1 Mar 2012 02:08:11 -0800 (PST) In-Reply-To: <1330549612.48948.YahooMailNeo@web29501.mail.ird.yahoo.com> References: <1330464316.3034.YahooMailNeo@web29505.mail.ird.yahoo.com> <4F4D4E79.1080602@lerdorf.com> <1330501833.99416.YahooMailNeo@web29504.mail.ird.yahoo.com> <1330502673.12982.YahooMailNeo@web29506.mail.ird.yahoo.com> <1330508863.61296.YahooMailNeo@web29501.mail.ird.yahoo.com> <1330549612.48948.YahooMailNeo@web29501.mail.ird.yahoo.com> Date: Thu, 1 Mar 2012 11:08:11 +0100 X-Google-Sender-Auth: uQByobqPFOSKRIENMyz6SVv5sZY Message-ID: To: Christian Ferrari Cc: "internals@lists.php.net" Content-Type: multipart/alternative; boundary=bcaec52be6b39788e904ba2ba5c9 Subject: Re: [PHP-DEV] Newbie: issues developing a new extension From: jpauli@php.net (jpauli) --bcaec52be6b39788e904ba2ba5c9 Content-Type: text/plain; charset=ISO-8859-1 On Wed, Feb 29, 2012 at 10:06 PM, Christian Ferrari 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 > > --bcaec52be6b39788e904ba2ba5c9--