I just spent some time and "autoconfiscated" your bzip2. It will bring standard ./configure ; make ; make install installation, seamless support of DESTDIR, automatic check for supported CFLAGS, standard shared library support, automatic large files CFLAGS check and all things that are supported by automake. It makes obsolete Makefile-libbz2_so and README.COMPILATION.PROBLEMS. Now configure should automatically detect correct build flags. In case of any problem or question feel free to contact me. It would be nice to release it as a new upstream version to prevent per-distribution shared library patching done by nearly each Linux vendor separately. Manual: Just copy attachments to a single directory, add bzip2-1.0.6.tar.gz and run prepare_script. If you have autotools installed, you will get "autoconfiscated" version bzip2-1.0.6.2.tar.gz. When you want to make release, just run make dist. To test completeness of it, run make distcheck. configure.ac contains several commented-out lines. You should either silently delete them or incorporate its results to code, e. g. "#ifdef HAVE_SYS_TYPES_H" to your code. In any API change of the bzip2, please read libtool versioning manual to edit BZIP2_LT_* values. Any change in autostuff files need regeneration by autoreconf. If you add AM_MAINTAINER_MODE to configure.ac, autostuff files will be re-generated automatically with --enable-maintainer-mode (for more see info automake). Results: bzip2-1.0.6.2.tar.gz results should be exactly equal to bzip2-1.0.6.tar.gz with following exceptions: TODO: Some files are mandatory for autoconf based packages: AUTHORS ChangeLog. My script creates only dummies. Some sections of these files are now obsolete and should refer to INSTALL file: README words* (actually, words0 and words2 seems to be unused and may be deleted completely) New features: Trivial link man pages for bzcat and bunzip2 added. bzip2.pc file for pkg-config. Packages can use it for checks. Incompatible changes: soname change. Libtool has no support for two parts soname suffix (e. g. libbz2.so.1.0). It must be a single number (e. g. libbz2.so.1). That is why soname must change. But I see not a big problem with it. Several distributions already use the new number instead of the non-standard number from Makefile-libbz2_so. Shared library exports only public symbols. To be super-safe, I incremented minor number of the library file, so both instances of the shared library can live together.