This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
938b8e6a6d3c967f61bc9b97b03970dd648d520a
[perl5.git] / plan9 / mkfile
1 APE=/sys/src/ape
2 < $APE/config
3 <plan9/buildinfo
4 sourcedir = /sys/src/cmd/perl/$p9pvers
5 archname = plan9_$objtype
6 privlib=/sys/lib/perl
7 archlib = /$objtype/lib/perl/$p9pvers
8 sitelib = $privlib/site_perl
9 sitearch = $archlib/site_perl
10
11 CFLAGS =  -B  -D_POSIX_SOURCE -D_BSD_EXTENSION -DMY_UV_MAX=0x7fffffffUL
12 LDFLAGS = -B 
13
14 CCCMD = $CC  -c $CFLAGS 
15
16 perllib = $archlib/CORE/libperl.a
17
18 perlshr = $archlib/CORE/libperlshr.a
19
20 installman1dir = /sys/man/1
21 installman3dir = /sys/man/2
22
23 podnames = perl perlbook perlbot perlcall perldata perldebug perldiag perldsc perlembed perlform perlfunc perlguts perlipc perllol perlmod perlobj perlop perlovl perlpod perlre perlref perlrun perlsec perlstyle perlsub perlsyn perltie perltoc perltrap perlvar perlxs perlxstut
24
25 libpods = ${podnames:%=pod/%.pod}
26
27 perlpods = $libpods
28
29 extensions = IO Socket Opcode DynaLoader Fcntl FileHandle POSIX
30 ext_xs = IO.xs Socket.xs Opcode.xs  dl_none.xs Fcntl.xs FileHandle.xs POSIX.xs
31 ext_c = ${ext_xs:%.xs=%.c}
32 ext_obj = ${ext_xs:%.xs=%.$O}
33
34 obj = gv.$O toke.$O perly.$O op.$O regcomp.$O dump.$O util.$O mg.$O  hv.$O av.$O run.$O pp_hot.$O sv.$O pp.$O scope.$O pp_ctl.$O pp_sys.$O doop.$O doio.$O regexec.$O taint.$O deb.$O globals.$O plan9.$O universal.$O perlio.$O
35
36 OBJS = perl.$O $obj
37
38 testlist = base/*.t comp/*.t cmd/*.t io/*.t op/*.t
39
40 install:V:      perl preplibrary 
41                 cp perl /$objtype/bin/perl
42                 cp plan9/aperl /rc/bin/Perl
43                 mk man
44                 
45 perl:           config.h miniperlmain.$O miniperl $archlib/Config.pm perlmain.$O $perlshr 
46                 $LD $CFLAGS -o perl perlmain.$O $perllib $perlshr
47                 
48 miniperl:       config.h $perllib miniperlmain.$O 
49                 $LD  $CFLAGS -o miniperl miniperlmain.$O  $perllib 
50
51 preplibrary:V:  miniperl $archlib/Config.pm
52                         cd $privlib
53                         for (file in *.pm */*.pm $archlib/Config.pm) $sourcedir/miniperl  -e 'use AutoSplit; autosplit(@ARGV)' $file $privlib/auto
54         
55 $perllib(%):N:  %
56 $perllib: ${OBJS:%=$perllib(%)}
57                 ar rv $perllib $OBJS
58                 $RANLIB $perllib
59                         
60 miniperlmain.$O:        config.h 
61                                 $CCCMD miniperlmain.c
62
63 perlmain.$O:    config.h perlmain.c
64                         $CCCMD perlmain.c
65
66 perlmain.c:     miniperl vms/writemain.pl
67                         ./miniperl vms/writemain.pl $extensions
68
69 config.h:               plan9/fndvers
70                         plan9/fndvers 
71                         cp config.h $archlib/CORE
72
73 $perlshr(%):N:  %
74 $perlshr:  ${ext_obj:%=$perlshr(%)}
75                 ar rv $perlshr $ext_obj
76                 $RANLIB $perlshr
77
78 IO.c:           miniperl ext/IO/IO.xs
79                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/IO/IO.xs > $target
80                         cp ext/IO/*.pm $privlib
81                         if (test !-d $privlib/IO) { 
82                         mkdir $privlib/IO
83                         cp ext/IO/lib/IO/*.pm $privlib/IO
84                          }
85
86 Socket.$O:      config.h Socket.c
87                         $CCCMD -I plan9 Socket.c
88
89 Socket.c:               miniperl ext/Socket/Socket.xs
90                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/Socket/Socket.xs > $target
91                         cp ext/Socket/Socket.pm $privlib
92
93 Opcode.c:               miniperl ext/Opcode/Opcode.xs
94                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/Opcode/Opcode.xs > $target
95                         cp ext/Opcode/*.pm $privlib
96
97 Fcntl.c:                miniperl ext/Fcntl/Fcntl.xs
98                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/Fcntl/Fcntl.xs > $target
99                         cp ext/Fcntl/Fcntl.pm $privlib
100
101 FileHandle.c:           miniperl ext/FileHandle/FileHandle.xs
102                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/FileHandle/FileHandle.xs > $target
103                         cp ext/FileHandle/FileHandle.pm $privlib
104
105 POSIX.c:                miniperl ext/POSIX/POSIX.xs
106                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/POSIX/POSIX.xs > $target
107                         cp ext/POSIX/POSIX.pm $privlib
108
109 dl_none.c:      miniperl ext/DynaLoader/dl_none.xs
110                         ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/DynaLoader/dl_none.xs > $target
111                         cp ext/DynaLoader/DynaLoader.pm $privlib
112
113 test:V:         
114                         bind -b $privlib $sourcedir/lib
115                         bind -b $archlib $sourcedir/lib
116                         cd $sourcedir/t
117                         rm -f perl
118                         cp /$objtype/bin/perl $sourcedir/t
119                         perl TEST `{ ls */*.t | comm -23 - ../plan9/exclude }
120
121 plan9.$O:       config.h ./plan9/plan9.c
122                         cp ./plan9/plan9.c ./plan9.c
123                         $CCCMD plan9.c
124
125 %.$O:   config.h %.c
126                 $CCCMD $stem.c
127
128 $archlib/Config.pm:             miniperl config.sh
129                                 ./miniperl configpm $archlib/Config.pm
130
131 config.sh:      miniperl config.h
132                 ./miniperl ./plan9/genconfig.pl
133
134 installall:V:   
135                         for (objtype in 386 mips 68020 sparc) mk install
136
137 man:V:          $perlpods pod/pod2man.PL perl
138                         perl pod/pod2man.PL
139                         for (i in $podnames) pod/pod2man pod/$i.pod > $installman3dir/$i
140                         pod/pod2man plan9/perlplan9.pod > $installman3dir/perlplan9
141                         
142 nuke clean:V:   
143                 rm -f *.$O   $extensions^.pm config.sh $perllib config.h $perlshr perlmain.c perl miniperl $archlib/Config.pm $ext_c
144                 rm -rf $privlib/IO
145
146 deleteman:V:
147                         rm -f $installman1dir/perl* $installman3dir/perl*