If using pear is not an option, like for building shared PECL extensions from CVS, or for unreleased PECL packages, then creating a shared extension may also be done by manually using the phpize command. The pear command essentially does this but it may also be done manually. Assuming the source file is named extname.tgz, and that it was downloaded into the current directory, consider the following:
$ pear download extname $ gzip -d < extname.tgz | tar -xvf - $ cd extname $ phpize $ ./configure && make
Upon success, this will create extname.so and put it into the modules/ and/or .libs/ directory within the extname/ source. Move this shared extension (extname.so) into the PHP extensions directory, and adjust php.ini accordingly.