Fix building on perls with no . in @INC
[dbsrgits/DBIx-Class.git] / maint / Makefile.PL.inc / 50_redefine_makefile_flow.pl
CommitLineData
a0c96f24 1# Split create_distdir into several subtargets, allowing us to generate
2# stuff, inject it into lib/, manifest it, and then clean all of it up
3{
4 package MY;
5 sub distdir {
6 (my $snippet = shift->SUPER::distdir(@_)) =~ s/^create_distdir :/create_distdir_copy_manifested :/;
afb8fc52 7 no warnings 'qw';
a0c96f24 8 return <<"EOM";
9$snippet
10
3cd5047e 11.NOTPARALLEL :
12
344f1f52 13create_distdir : check_create_distdir_prereqs clonedir_generate_files clonedir_post_generate_files fresh_manifest create_distdir_copy_manifested clonedir_cleanup_generated_files
a0c96f24 14\t\$(NOECHO) \$(NOOP)
15
16clonedir_generate_files :
17\t\$(NOECHO) \$(NOOP)
18
19clonedir_post_generate_files :
20\t\$(NOECHO) \$(NOOP)
21
22clonedir_cleanup_generated_files :
23\t\$(NOECHO) \$(NOOP)
24
344f1f52 25check_create_distdir_prereqs :
26\t\$(NOECHO) @{[
afb8fc52 27 $mm_proto->oneliner("1", [qw( -Ilib -MDBIx::Class::Optional::Dependencies=-die_without,dist_dir )])
344f1f52 28]}
29
552b624d 30EOM
31 }
32}
33
34# M::I inserts its own default postamble, so we can't easily override upload
35# but we can still hook postamble in EU::MM
36{
37 package MY;
38
39 sub postamble {
40 my $snippet = shift->SUPER::postamble(@_);
afb8fc52 41 no warnings 'qw';
552b624d 42 return <<"EOM";
43$snippet
44
344f1f52 45upload :: check_create_distdir_prereqs check_upload_dist_prereqs
46
47check_upload_dist_prereqs :
48\t\$(NOECHO) @{[
afb8fc52 49 $mm_proto->oneliner("1", [qw( -Ilib -MDBIx::Class::Optional::Dependencies=-die_without,dist_upload )])
344f1f52 50]}
51
1b6cbedd 52EOM
53 }
54}
344f1f52 55
a0c96f24 56# EU::MM BUG - workaround
57# somehow the init_PM of EUMM (in MM_Unix) interprets ResultClass.pod.proto
58# as a valid ResultClass.pod. While this has no effect on dist-building
59# it royally screws up the local Makefile.PL $TO_INST_PM and friends,
60# making it impossible to make/make test from a checkout
61# just rip it out here (remember - this is only executed under author mode)
62{
63 package MY;
64 sub init_PM {
65 my $self = shift;
66 my $rv = $self->SUPER::init_PM(@_);
67 delete @{$self->{PM}}{qw(lib/DBIx/Class/Manual/ResultClass.pod lib/DBIx/Class/Manual/ResultClass.pod.proto)};
68 $rv
69 }
70}
71
72# make the install (and friends) target a noop - instead of
73# doing a perl Makefile.PL && make && make install (which will leave pod
74# behind), one ought to assemble a distdir first
75
76{
77 package MY;
78 sub install {
79 (my $snippet = shift->SUPER::install(@_))
80 =~ s/^( (?: install [^\:]+ | \w+_install \s) \:+ )/$1 block_install_from_checkout/mxg;
81 return <<"EOM";
82$snippet
83
84block_install_from_checkout :
85\t\$(NOECHO) \$(ECHO) Installation directly from a checkout is not possible. You need to prepare a distdir, enter it, and run the installation from within.
86\t\$(NOECHO) \$(FALSE)
87
88EOM
89 }
90}
91
92# keep the Makefile.PL eval happy
931;