# 
# Building Makefile for HTTP::Webdav
#
# (C) 2001 G.Richter / ECOS
#
# $Id: Makefile.PL,v 1.10 2001/10/19 04:36:30 richter Exp $
#
 

use ExtUtils::MakeMaker;

$win32 = ($^O eq 'MSWin32') ;

sub error
    {
    print STDERR $_[0], "\n" ;
    exit (1) ;
    }

$pversion = 'neon 0.17.1' ;

if (!$win32)
    {
    open (C, "neon-config --version|") or error ("Cannot execute neon-config ($!). Is neon already installed on your system?") ;
    chomp ($version = <C>)  or error ("Cannot execute neon-config to get version. Is neon already installed on your system?") ;
    close C ;

    open C, "neon-config --prefix --libs --cflags|" or error ("Cannot execute neon-config ($!). Is neon already installed on your system?") ;
    chomp ($prefix = <C>) ;
    chomp ($libs = <C>) ;
    chomp ($cflags = <C>) ;
    close C ;

    print "Found $version installed under $prefix\n" ;
    print STDERR "This module was made for $pversion and may not run correctly with $version\n" if ($pversion ne $version) ;
    }
else
    {
    do 'config.pl' if (-e 'config.pl') ;

    
    $neonsrc ||= $ARGV[0] || $ENV{NEON_SRC} ;

    if (!$neonsrc || !-d $neonsrc)
        {
        error ("Please specify the location of the neon source files, either as\nfirst argument to Makefile.PL or by setting the environment variables NEON_SRC") ;
        }

    foreach ('neons.lib', 'neonsd.lib', 'Release/neons.lib', 'Debug/neonsd.lib')
        {
        if (-f "$neonsrc/$_")
            {
            $neonlib = "$neonsrc/$_" ;
            last ;
            }
        }

    error ("neons.lib not found under source tree $neonsrc") if (!$neonlib) ;



    $expatsrc ||= $ARGV[1] || $ENV{EXPAT_SRC} ;

    if (!$expatsrc || !-d $expatsrc)
        {
        error ("Please specify the location of the expat source files, either as\nsecond argument to Makefile.PL or by setting the environment variables EXPAT_SRC") ;
        }

    foreach ('xmlparse.lib', 'Release/xmlparse.lib', 'Debug/xmlparse.lib')
        {
        if (-f "$expatsrc/$_")
            {
            $expatlib = "$expatsrc/$_" ;
            last ;
            }
        }

    error ("xmlparse.lib not found under source tree $expatsrc") if (!$expatlib) ;

    $exlibs = " \"$neonlib\" \"$expatlib\" " ;
    $exlibs =~ s#/#\\#g ;
    $cflags = "-I \"$neonsrc/src\"" ;
    $cflags =~ s#/#\\#g ;
    $define = ' -DHAVE_CONFIG_H' ;
    
    open FH, ">config.pl" ;
    print FH q{$neonsrc='}, $neonsrc, "' ;\n",  q{$expatsrc='}, $expatsrc, "' ;\n" ;
    close FH ;  

    print "Found neon source at $neonsrc\n" ;
    print "Found expat source at $expatsrc\n" ;
    }

WriteMakefile
    (
    'NAME'	    => 'HTTP::Webdav',
    'VERSION_FROM'  => 'Webdav.pm', # finds $VERSION
    $libs?  ('LIBS'          => [$libs]):(), 
    $exlibs?('MYEXTLIB'      => $exlibs):(),
    'INC'           => $cflags,
    $define?('DEFINE'        => $define):(),
    'realclean'     => { FILES => 'config.pl' },
    'ABSTRACT'      => 'HTTP::Webdav - Perl interface to Neon HTTP and WebDAV client library',
    'AUTHOR'        => 'Gerald Richter <richter@dev.ecos.de>',
    );