/usr/local/CPAN/Filesys-CygwinPaths/Makefile.PL


# $Source: /share/SOMIANCVSROOT/platform-specific/Filesys-CygwinPaths/Makefile.PL,v $ : $Author: sorenboss $ $Revision: 1.4 $ $Date: 2003/05/31 21:11:31 $
use ExtUtils::MakeMaker;
BEGIN {
  if( not $^O =~/cygwin/i ) {
	warn "Sorry, you cannot build this module on a non-Cygwin Perl,\n",
	     "but am letting you proceed in case you are trying to build\n",
	     "a release tarball or something.\n";
  }
}


# Subject to change -- but with with present EU::MM don't know WHAT
# this does anyway!
my $funct =  [ qw{
  XS_Filesys__CygwinPaths_cygwin_conv_to_full_posix_path
  XS_Filesys__CygwinPaths_cygwin_conv_to_full_win32_path
  XS_Filesys__CygwinPaths_cygwin_conv_to_posix_path
  XS_Filesys__CygwinPaths_cygwin_conv_to_win32_path
  } ];

# These work well on Cygwin Perl 5.6.1. On later, like 5.8.0, YMMV.
my %stdatt = (
    'NAME'		=> 'Filesys::CygwinPaths',
	'VERSION'   	=> '0.04',
	'XS_VERSION'	=> '0.04',
	'VERSION_FROM'	=> 'lib/Filesys/CygwinPaths.pm',
    ($] >= 5.005 ?
      (ABSTRACT_FROM 	=> 'lib/Filesys/CygwinPaths.pm',
	'AUTHOR'     	=> 'Soren Andersen <somian@pobox.com>') : ()),
	'INC'       => '-I.',
	'XS'        => { 'path_protocol.xs' => 'path_protocol.c' },
	'TYPEMAPS'  => [ 'Cygwin.typemap' ],
	'H'         => [ 'path_protocol.h'],
	'OBJECT'    => 'path_protocol.o',
	'FUNCLIST'  => $funct,
	'OPTIMIZE'  => '-O2 -Wundef',
	'LD'        => 'gcc -shared',
	'CCDLFLAGS' => '',
#	'CCFLAGS'   => '-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing',
	'dist'      => { COMPRESS => gzip, SUFFIX => '.gz'},
);

WriteMakefile( %stdatt );

# overrides of various canned MakeMaker routines. See EU::MM manpage.
package MY;


sub install {
    my($self, %attribs) = @_;
    my(@m);

    push @m, q{
# a 'gmake' user-defined *function*, maps target to dir for perllocal.pod, etc.:
UCme = $(strip \
$(if $(filter perl,$(1)),ARCHLIB) \
$(if $(filter site,$(1)),SITEARCH) \
$(if $(filter vendor,$(1)),VENDORARCH))
_assembl_dir_name = $(INSTALL$(call UCme,$(patsubst doc_%_install,%,$@)))
## --------------
    ifeq "0" "$(DRY_RUN)"
## --------------
SIMULATION   := $(NOOP)
_doc_PRE_NOTICE  = echo -e 'Appending installation info to\n \
          $(_assembl_dir_name)/perllocal.pod'
_perllocal_REDIR = >> $(_assembl_dir_name)/perllocal.pod
## --------------
    else
## --------------
SIMULATION   = echo -e '$$(DRY_RUN) is set, this is an installation \
*simulation*.\n    Here is what would be done:\n'
_doc_PRE_NOTICE  = echo -e '\nDuring a real install, we would be appending this \
installation info to\n     "$(_assembl_dir_name)/perllocal.pod":\n'
_perllocal_REDIR =
## --------------
    endif
## --------------
.PHONY: install_dry_run
install_dry_run :: override DRY_RUN = 1
install_dry_run :: pure_install doc_install

install         :: all pure_install doc_install
install_perl    :: all pure_perl_install doc_perl_install
install_site    :: all pure_site_install doc_site_install
install_vendor  :: all pure_vendor_install doc_vendor_install
pure_install    :: pure_$(INSTALLDIRS)_install
doc_install     :: doc_$(INSTALLDIRS)_install

pure__install : pure_site_install
		@echo INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
doc__install  : doc_site_install
		@echo INSTALLDIRS not defined, defaulting to INSTALLDIRS=site

pure_perl_install ::
		}.$self->{NOECHO}.q{$(SIMULATION)
		}.$self->{NOECHO}.q{$(MOD_INSTALL) \
            read }.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
            write }.File::Spec->catfile('$(INSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
            $(INST_LIB) $(INSTALLPRIVLIB) \
            $(INST_ARCHLIB) $(INSTALLARCHLIB) \
            $(INST_BIN) $(INSTALLBIN) \
            $(INST_SCRIPT) $(INSTALLSCRIPT) \
            $(INST_MAN1DIR) $(INSTALLMAN1DIR) \
            $(INST_MAN3DIR) $(INSTALLMAN3DIR)
		}.$self->{NOECHO}.q{$(WARN_IF_OLD_PACKLIST) \
            }.File::Spec->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{

pure_site_install ::
		}.$self->{NOECHO}.q{$(SIMULATION)
		}.$self->{NOECHO}.q{$(MOD_INSTALL) \
            read }.File::Spec->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
            write }.File::Spec->catfile('$(INSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{ \
            $(INST_LIB) $(INSTALLSITELIB) \
            $(INST_ARCHLIB) $(INSTALLSITEARCH) \
            $(INST_BIN) $(INSTALLSITEBIN) \
            $(INST_SCRIPT) $(INSTALLSCRIPT) \
            $(INST_MAN1DIR) $(INSTALLSITEMAN1DIR) \
            $(INST_MAN3DIR) $(INSTALLSITEMAN3DIR)
		}.$self->{NOECHO}.q{$(WARN_IF_OLD_PACKLIST) \
            }.File::Spec->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{

pure_vendor_install ::
		}.$self->{NOECHO}.q{$(SIMULATION)
		}.$self->{NOECHO}.q{$(MOD_INSTALL) \
            read }.File::Spec->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
            write }.File::Spec->catfile('$(INSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \
            $(INST_LIB) $(INSTALLVENDORLIB) \
            $(INST_ARCHLIB) $(INSTALLVENDORARCH) \
            $(INST_BIN) $(INSTALLVENDORBIN) \
            $(INST_SCRIPT) $(INSTALLSCRIPT) \
            $(INST_MAN1DIR) $(INSTALLVENDORMAN1DIR) \
            $(INST_MAN3DIR) $(INSTALLVENDORMAN3DIR)

doc_perl_install ::
		}.$self->{NOECHO}.q{$(_doc_PRE_NOTICE)
		-}.$self->{NOECHO}.q{$(MKPATH) $(INSTALLARCHLIB)
		-}.$self->{NOECHO}.q{$(DOC_INSTALL) \
                    "Module" "$(NAME)" \
                    "installed into" "$(INSTALLPRIVLIB)" \
                    LINKTYPE "$(LINKTYPE)" \
                    VERSION "$(VERSION)" \
                    EXE_FILES "$(EXE_FILES)" \
                    $(_perllocal_REDIR)

doc_site_install ::
		}.$self->{NOECHO}.q{$(_doc_PRE_NOTICE)
		-}.$self->{NOECHO}.q{$(MKPATH) $(INSTALLSITEARCH)
		-}.$self->{NOECHO}.q{$(DOC_INSTALL) \
                    "Module" "$(NAME)" \
                    "installed into" "$(INSTALLSITELIB)" \
                    LINKTYPE "$(LINKTYPE)" \
                    VERSION "$(VERSION)" \
                    EXE_FILES "$(EXE_FILES)" \
                    $(_perllocal_REDIR)

doc_vendor_install ::
		}.$self->{NOECHO}.q{$(_doc_PRE_NOTICE)
		-}.$self->{NOECHO}.q{$(MKPATH) $(INSTALLVENDORLIB)
		-}.$self->{NOECHO}.q{$(DOC_INSTALL) \
                    "Module" "$(NAME)" \
                    "installed into" "$(INSTALLVENDORLIB)" \
                    LINKTYPE "$(LINKTYPE)" \
                    VERSION "$(VERSION)" \
                    EXE_FILES "$(EXE_FILES)" \
                    $(_perllocal_REDIR)

};

    push @m, q{
uninstall :: uninstall_from_$(INSTALLDIRS)dirs

uninstall_from_perldirs ::
		}.$self->{NOECHO}.
	q{$(UNINSTALL) }.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{

uninstall_from_sitedirs ::
		}.$self->{NOECHO}.
	q{$(UNINSTALL) }.File::Spec->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{

uninstall_from_vendordirs ::
		}.$self->{NOECHO}.
        q{$(UNINSTALL) }.File::Spec->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{
};

    join("",@m);
}

# have to override this because of presence of another .PL file
# ("exoMakefile.PL").
sub processPL {
    my($self) = shift;
    return "" unless $self->{PL_FILES};
    my(@m, $plfile);
    foreach $plfile (sort keys %{$self->{PL_FILES}}) {
        my $list = ref($self->{PL_FILES}->{$plfile})
		? $self->{PL_FILES}->{$plfile}
		: [$self->{PL_FILES}->{$plfile}];
	my $target;
	foreach $target (@$list) {
	  return "" if $target eq 'exoMakefile';
	push @m, "
all :: $target
		$self->{NOECHO}\$(NOOP)

$target :: $plfile
		\$(PERLRUNINST) $plfile $target
";
	}
    }
    join "", @m;
}

# End.