It is written in Perl , of course. Generation of commands to remove obsolete files. Automatic handling of the patchlevel.h file first. Ability to utilize specified manifest files. Dedicated applypatch program can be used to do the patching, for improved verification and robustness.
Patch data is more reliable by relocating to the current directory.
Sources trees can come from archives, e.g. .tar.gz files. Here's an article I wrote for The Perl Journal about makepatch. Current version 2.00a Archived CPAN sites . The CPAN search engine will find it for you.