The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.

require 5.8.0; # require perl v5.8.0 or higher

# my $libs = `pkg-config --libs gmime-2.0`;
my $libs = `gmime-config --libs`;
my $vers = `gmime-config --version`;

if ($libs eq '') {
	die<<'END';
ERROR: I could not find gmime-config file (and gmime libraries) on your system.
You should have gmime (and glib) library installed.
The homepage of gmime C library is at http://spruce.sourceforge.net/gmime/
The homepage of glib C library is at http://www.gtk.org/
END
}

chomp ($vers);
print "Version of gmime: $vers\n";
if ($vers eq "2.0.8") {
	open(VERSIONFILE,"> gmime-version.h") || die "Can not open gmime-version.h to write";
	print VERSIONFILE "#define GMIME_CHECK_VERSION_UNSUPPORTED 0\n";
	# print VERSIONFILE "#define GMIME_CHECK_VERSION_2_0_8 1\n";
	# print VERSIONFILE "#define GMIME_CHECK_VERSION_2_0_9 0\n";
	close(VERSIONFILE);
} elsif ($vers =~ /^2\.[1-9]/ or $vers =~ /^[3-9]/) {
	open(VERSIONFILE,"> gmime-version.h") || die "Can not open gmime-version.h to write";
	print VERSIONFILE "#define GMIME_CHECK_VERSION_UNSUPPORTED 0\n";
	print VERSIONFILE "#define GMIME_CHECK_VERSION_2_1_0 1\n";
	close(VERSIONFILE);
} else {
	# die "This version of MIME::Fast module can only run with gmime v2.0.8 (not $vers)\n";
	open(VERSIONFILE,"> gmime-version.h") || die "Can not open gmime-version.h to write";
	print VERSIONFILE "#define GMIME_CHECK_VERSION_UNSUPPORTED 0\n";
	# print VERSIONFILE "#define GMIME_CHECK_VERSION_2_0_8 0\n";
	# print VERSIONFILE "#define GMIME_CHECK_VERSION_2_0_9 1\n";
	close(VERSIONFILE);
}

WriteMakefile(
    'NAME'		=> 'MIME::Fast',
    'AUTHOR'		=> 'Piotr Klaban <post@klaban.torun.pl>',
    'VERSION_FROM'	=> 'Fast.pm', # finds $VERSION
    'PREREQ_PM'		=> {},
    'LIBS'		=> [$libs], # e.g., '-lm'
    'OPTIMIZE'          => '-O2',
    'CCFLAGS'           => '-g',
    'DEFINE'		=> '', # e.g., '-DHAVE_SOMETHING'
    'XS'		=> { 'Fast.xs'  => 'Fast.c' },
    'OBJECT'		=> 'Fast.o gmime-stream-perlio.o',
    'PM'		=> { 'Fast.pod' => '$(INST_LIBDIR)/Fast.pod',
     	                     'Fast.pm' => '$(INST_LIBDIR)/Fast.pm'},
    'depend'		=> {
	    'Fast.so'  => 'Fast.o gmime-stream-perlio.o',
	    'Fast.o'   => 'Fast.c',
	    'Fast.c'   => qw{
cinclude/gmime-newfunc.c cinclude/gmime-newfuncheader.c
cinclude/perl-constants.c
gmime-stream-perlio.c gmime-stream-perlio.h
Fast/Charset.xs                Fast/Filter/Best.xs
Fast/Filter/Md5.xs             Fast/MessageMDN.xs             Fast/Parser.xs
Fast/ContentType.xs            Fast/Filter/CRLF.xs
Fast/Filter/Strip.xs           Fast/MessageMDNDisposition.xs  Fast/Part.xs
Fast/DataWrapper.xs            Fast/Filter/Charset.xs
Fast/Filter/Yenc.xs            Fast/MessagePart.xs            Fast/Stream.xs
Fast/Disposition.xs            Fast/Filter/Enriched.xs        Fast/Hash.xs
Fast/MessagePartial.xs         Fast/StreamFilter.xs
Fast/Filter                    Fast/Filter/From.xs
Fast/InternetAddress.xs        Fast/MultiPart.xs              Fast/Utils.xs
Fast/Filter.xs                 Fast/Filter/Func.xs            Fast/Message.xs
Fast/Object.xs
Fast/Filter/Basic.xs           Fast/Filter/HTML.xs
Fast/MessageDelivery.xs        Fast/Param.xs
},
# 'Fast.so' => qw{cinclude/gmime-stream-perlio.o}
	},
    'clean'             => { FILES => "gmime-version.h" },
    #    'INC'		=> `pkg-config --cflags gmime-2.0` # e.g., '-I/usr/include/other'
    'INC'		=> "-I. -Icinclude " . `gmime-config --cflags`,
);