Module::Starter::Simple and Module::Starter::Smart (which relies on ::Simple) try to construct the MANIFEST file themselves. This is the wrong approach since it doesn't not take into account build file subclasses or MANIFEST.SKIP.

Once you have the build file, let it do it's job by running its manifest target.

Furthermore, Module::Starter::Smart doesn't explicitly inherit from Module::Starter::Simple, but this module inserts the inheritance relationship for you automatically.

Overrides the create_MANIFEST in Module::Starter::Simple to use the manifest target of the build system instead of trying to create the MANIFEST file directly. It automatically figures out the build system you use.

This assumes that your make program is called make. If it's something else, such as dmake, set the make configuration. This only matters if you are using Makefile.PL.