blob: 55c1791650bd2489f1d9db38ca3536688916eb03 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package rosa
var _perl = H("perl")
var _ Helper = new(MakeMakerHelper)
// MakeMakerHelper builds projects using the included MakeMaker script.
type MakeMakerHelper struct {
// Whether to skip the check target.
SkipCheck bool
}
// tools returns perl and make.
func (*MakeMakerHelper) tools() P { return P{_perl, _make} }
// inputs returns perl.
func (*MakeMakerHelper) inputs() P { return P{_perl} }
// wantsChmod returns true.
func (*MakeMakerHelper) wantsChmod() bool { return true }
// wantsWrite returns true.
func (*MakeMakerHelper) wantsWrite() bool { return true }
// scriptEarly is a noop.
func (*MakeMakerHelper) scriptEarly() string { return "" }
// wantsDir requests the source directory.
func (*MakeMakerHelper) wantsDir() (string, bool) { return "", false }
// script generates Makefile.PL-based build and test commands.
func (attr *MakeMakerHelper) script(t Toolchain, name string) string {
if t.cross() {
panic(CrossError(name))
}
if attr == nil {
attr = new(MakeMakerHelper)
}
script := `perl Makefile.PL \
PREFIX=/system
make \
` + jobsFlagE + ` \
` + loadFlagE
if !attr.SkipCheck && t.opts&OptSkipCheck == 0 {
script += `
make \
` + jobsFlagE + ` \
` + loadFlagE + ` \
test
`
}
script += "make DESTDIR=/work install\n"
return script
}
|