The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use strict;
use warnings;

use 5.005;    # Need look-behind assertions

use Getopt::Std;
use Make;

my %opt;

getopts( 'Dgnpf:j:C:', \%opt );

my $info = Make->new(
	GNU      => $opt{'g'},
	Override => { MAKE => "$^X $0" },
	Makefile => $opt{'f'},
	Jobs     => $opt{'j'},
	Dir      => $opt{'C'}
);

if ( $opt{'D'} ) {
	require Data::Dumper;
	print Data::Dumper::DumperX($info);
	exit;
}

if ( $opt{'p'} ) {
	$info->Print(@ARGV);
	exit;
}
if ( $opt{'n'} ) {
	$info->Script(@ARGV);
}
else {
	$info->Make(@ARGV);
}

=head1 NAME

pmake - a perl 'make' replacement

=head1 SYNOPSIS

	pmake [-n] [-g] [-p] [-C directory] targets

=head1 DESCRIPTION

Performs the same function as make(1) but is written entirely in perl.
A subset of GNU make extensions is supported.
For details see L<Make> for the underlying perl module.

=head1 BUGS

=over

=item *

No B<-k> flag

I strongly suspect there are lots more.

=back

=head1 SEE ALSO

L<Make>, make(1)

=head1 AUTHOR

Nick Ing-Simmons

=cut