For a small project I have a perl script, a bunch of images and (in the future) a man page to install.
I'm looking for a simple "build" system under Linux (no Windows needed, and probably also no other Unices) which should have the following characteristics:
- No bloat
- No actual "build" needed, just an
make install
equivalent. - Should be able to install tools under defined prefixes, i.e. it should understand
DESTDIR
(default/
) andPREFIX
(default/usr/local
) either as environment variables or as commandline parameters)
So basically I'd like something like a Makefile whose install
target just does the right thing™. Unfortunately coding the Makefile yourself often leads to errors in corner cases, so I'd prefer something which e.g. generates the Makefile and don't reinvent the wheel.
So far I've looked at and found unsuitable:
- GNU Autotools (Autoconf, Automake, …): Too bloaty for this little task
- GNU Automake alone: Only generates
Makefile.in
to be generated byconfigure
which again is generated byautoconf
and hence can't be used withoutautoconf
. - CMake: Too bloaty for this little task and I definitely prefer GNU Autotools over CMake. (And its focus on portability is completely irrelevant in this case.)
- Dist::Zilla: Nice, but more targeted towards Perl Modules and can't install files to e.g.
/etc/
(not yet needed, but that may change in the future) - scons: Citing from the Debian package description: "SCons rule sets are Python scripts".
- dist: Too complex
- makepp: Focus on C++, but still needs Makefiles to be written.
I'm unsure about ExtUtils::MakeMaker
and Module::Build
. Haven't written a Makefile.PL
or a Build.PL
by hand for a while.
Other tools I already stumbled upon but have not yet an idea how they work and if they might be suitable:
- acr: Website currently dead (probably no good sign anyways)
- cons Website dead, too, and cons is no more in CPAN, only in BackPAN
- bmake + mkdep: On a first glance it seems still to need someone to write a Makefile.
debian/rules
should only consist of%:
anddh $@
plus optional parameters, but not have to many overrides. And the whole installation rules should not be indebian/install
(i.e. a call todh_install
) but should be done bydh_auto_install
(i.e. debhelper recognizing the build system and calling its install routine).