| 1 | .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 |
| 2 | .\" |
| 3 | .\" Standard preamble: |
| 4 | .\" ======================================================================== |
| 5 | .de Sh \" Subsection heading |
| 6 | .br |
| 7 | .if t .Sp |
| 8 | .ne 5 |
| 9 | .PP |
| 10 | \fB\\$1\fR |
| 11 | .PP |
| 12 | .. |
| 13 | .de Sp \" Vertical space (when we can't use .PP) |
| 14 | .if t .sp .5v |
| 15 | .if n .sp |
| 16 | .. |
| 17 | .de Vb \" Begin verbatim text |
| 18 | .ft CW |
| 19 | .nf |
| 20 | .ne \\$1 |
| 21 | .. |
| 22 | .de Ve \" End verbatim text |
| 23 | .ft R |
| 24 | .fi |
| 25 | .. |
| 26 | .\" Set up some character translations and predefined strings. \*(-- will |
| 27 | .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left |
| 28 | .\" double quote, and \*(R" will give a right double quote. | will give a |
| 29 | .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to |
| 30 | .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' |
| 31 | .\" expand to `' in nroff, nothing in troff, for use with C<>. |
| 32 | .tr \(*W-|\(bv\*(Tr |
| 33 | .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' |
| 34 | .ie n \{\ |
| 35 | . ds -- \(*W- |
| 36 | . ds PI pi |
| 37 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
| 38 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
| 39 | . ds L" "" |
| 40 | . ds R" "" |
| 41 | . ds C` "" |
| 42 | . ds C' "" |
| 43 | 'br\} |
| 44 | .el\{\ |
| 45 | . ds -- \|\(em\| |
| 46 | . ds PI \(*p |
| 47 | . ds L" `` |
| 48 | . ds R" '' |
| 49 | 'br\} |
| 50 | .\" |
| 51 | .\" If the F register is turned on, we'll generate index entries on stderr for |
| 52 | .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index |
| 53 | .\" entries marked with X<> in POD. Of course, you'll have to process the |
| 54 | .\" output yourself in some meaningful fashion. |
| 55 | .if \nF \{\ |
| 56 | . de IX |
| 57 | . tm Index:\\$1\t\\n%\t"\\$2" |
| 58 | .. |
| 59 | . nr % 0 |
| 60 | . rr F |
| 61 | .\} |
| 62 | .\" |
| 63 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
| 64 | .\" way too many mistakes in technical documents. |
| 65 | .hy 0 |
| 66 | .if n .na |
| 67 | .\" |
| 68 | .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). |
| 69 | .\" Fear. Run. Save yourself. No user-serviceable parts. |
| 70 | . \" fudge factors for nroff and troff |
| 71 | .if n \{\ |
| 72 | . ds #H 0 |
| 73 | . ds #V .8m |
| 74 | . ds #F .3m |
| 75 | . ds #[ \f1 |
| 76 | . ds #] \fP |
| 77 | .\} |
| 78 | .if t \{\ |
| 79 | . ds #H ((1u-(\\\\n(.fu%2u))*.13m) |
| 80 | . ds #V .6m |
| 81 | . ds #F 0 |
| 82 | . ds #[ \& |
| 83 | . ds #] \& |
| 84 | .\} |
| 85 | . \" simple accents for nroff and troff |
| 86 | .if n \{\ |
| 87 | . ds ' \& |
| 88 | . ds ` \& |
| 89 | . ds ^ \& |
| 90 | . ds , \& |
| 91 | . ds ~ ~ |
| 92 | . ds / |
| 93 | .\} |
| 94 | .if t \{\ |
| 95 | . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" |
| 96 | . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' |
| 97 | . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' |
| 98 | . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' |
| 99 | . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' |
| 100 | . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' |
| 101 | .\} |
| 102 | . \" troff and (daisy-wheel) nroff accents |
| 103 | .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' |
| 104 | .ds 8 \h'\*(#H'\(*b\h'-\*(#H' |
| 105 | .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] |
| 106 | .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' |
| 107 | .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' |
| 108 | .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] |
| 109 | .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] |
| 110 | .ds ae a\h'-(\w'a'u*4/10)'e |
| 111 | .ds Ae A\h'-(\w'A'u*4/10)'E |
| 112 | . \" corrections for vroff |
| 113 | .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' |
| 114 | .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' |
| 115 | . \" for low resolution devices (crt and lpr) |
| 116 | .if \n(.H>23 .if \n(.V>19 \ |
| 117 | \{\ |
| 118 | . ds : e |
| 119 | . ds 8 ss |
| 120 | . ds o a |
| 121 | . ds d- d\h'-1'\(ga |
| 122 | . ds D- D\h'-1'\(hy |
| 123 | . ds th \o'bp' |
| 124 | . ds Th \o'LP' |
| 125 | . ds ae ae |
| 126 | . ds Ae AE |
| 127 | .\} |
| 128 | .rm #[ #] #H #V #F C |
| 129 | .\" ======================================================================== |
| 130 | .\" |
| 131 | .IX Title "PERLDOS 1" |
| 132 | .TH PERLDOS 1 "2006-01-07" "perl v5.8.8" "Perl Programmers Reference Guide" |
| 133 | .SH "NAME" |
| 134 | perldos \- Perl under DOS, W31, W95.\r |
| 135 | .SH "SYNOPSIS" |
| 136 | .IX Header "SYNOPSIS" |
| 137 | These are instructions for building Perl under \s-1DOS\s0 (or w??), using\r |
| 138 | \&\s-1DJGPP\s0 v2.03 or later. Under w95 long filenames are supported.\r |
| 139 | .SH "DESCRIPTION" |
| 140 | .IX Header "DESCRIPTION" |
| 141 | Before you start, you should glance through the \s-1README\s0 file\r |
| 142 | found in the top-level directory where the Perl distribution\r |
| 143 | was extracted. Make sure you read and understand the terms under\r |
| 144 | which this software is being distributed.\r |
| 145 | .PP |
| 146 | This port currently supports MakeMaker (the set of modules that\r |
| 147 | is used to build extensions to perl). Therefore, you should be\r |
| 148 | able to build and install most extensions found in the \s-1CPAN\s0 sites.\r |
| 149 | .PP |
| 150 | Detailed instructions on how to build and install perl extension\r |
| 151 | modules, including XS-type modules, is included. See '\s-1BUILDING\s0 \s-1AND\s0\r |
| 152 | \&\s-1INSTALLING\s0 \s-1MODULES\s0'.\r |
| 153 | .Sh "Prerequisites for Compiling Perl on \s-1DOS\s0" |
| 154 | .IX Subsection "Prerequisites for Compiling Perl on DOS" |
| 155 | .IP "\s-1DJGPP\s0" 4 |
| 156 | .IX Item "DJGPP" |
| 157 | \&\s-1DJGPP\s0 is a port of \s-1GNU\s0 C/\*(C+ compiler and development tools to 32\-bit,\r |
| 158 | protected-mode environment on Intel 32\-bit CPUs running MS-DOS and compatible\r |
| 159 | operating systems, by \s-1DJ\s0 Delorie <dj@delorie.com> and friends.\r |
| 160 | .Sp |
| 161 | For more details (\s-1FAQ\s0), check out the home of \s-1DJGPP\s0 at:\r |
| 162 | .Sp |
| 163 | .Vb 1 |
| 164 | \& http://www.delorie.com/djgpp/ |
| 165 | .Ve |
| 166 | .Sp |
| 167 | If you have questions about \s-1DJGPP\s0, try posting to the \s-1DJGPP\s0 newsgroup:\r |
| 168 | comp.os.msdos.djgpp, or use the email gateway djgpp@delorie.com.\r |
| 169 | .Sp |
| 170 | You can find the full \s-1DJGPP\s0 distribution on any SimTel.Net mirror all over\r |
| 171 | the world. Like:\r |
| 172 | .Sp |
| 173 | .Vb 1 |
| 174 | \& ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2* |
| 175 | .Ve |
| 176 | .Sp |
| 177 | You need the following files to build perl (or add new modules):\r |
| 178 | .Sp |
| 179 | .Vb 13 |
| 180 | \& v2/djdev203.zip\r |
| 181 | \& v2gnu/bnu2112b.zip\r |
| 182 | \& v2gnu/gcc2953b.zip\r |
| 183 | \& v2gnu/bsh204b.zip\r |
| 184 | \& v2gnu/mak3791b.zip\r |
| 185 | \& v2gnu/fil40b.zip\r |
| 186 | \& v2gnu/sed3028b.zip\r |
| 187 | \& v2gnu/txt20b.zip\r |
| 188 | \& v2gnu/dif272b.zip\r |
| 189 | \& v2gnu/grep24b.zip\r |
| 190 | \& v2gnu/shl20jb.zip\r |
| 191 | \& v2gnu/gwk306b.zip\r |
| 192 | \& v2misc/csdpmi5b.zip |
| 193 | .Ve |
| 194 | .Sp |
| 195 | or possibly any newer version.\r |
| 196 | .IP "Pthreads" 4 |
| 197 | .IX Item "Pthreads" |
| 198 | Thread support is not tested in this version of the djgpp perl.\r |
| 199 | .Sh "Shortcomings of Perl under \s-1DOS\s0" |
| 200 | .IX Subsection "Shortcomings of Perl under DOS" |
| 201 | Perl under \s-1DOS\s0 lacks some features of perl under \s-1UNIX\s0 because of\r |
| 202 | deficiencies in the UNIX\-emulation, most notably:\r |
| 203 | .IP "\(bu" 4 |
| 204 | \&\fIfork()\fR and \fIpipe()\fR\r |
| 205 | .IP "\(bu" 4 |
| 206 | some features of the \s-1UNIX\s0 filesystem regarding link count and file dates\r |
| 207 | .IP "\(bu" 4 |
| 208 | in-place operation is a little bit broken with short filenames\r |
| 209 | .IP "\(bu" 4 |
| 210 | sockets\r |
| 211 | .Sh "Building Perl on \s-1DOS\s0" |
| 212 | .IX Subsection "Building Perl on DOS" |
| 213 | .IP "\(bu" 4 |
| 214 | Unpack the source package \fIperl5.8*.tar.gz\fR with djtarx. If you want\r |
| 215 | to use long file names under w95 and also to get Perl to pass all its\r |
| 216 | tests, don't forget to use\r |
| 217 | .Sp |
| 218 | .Vb 2 |
| 219 | \& set LFN=y\r |
| 220 | \& set FNCASE=y |
| 221 | .Ve |
| 222 | .Sp |
| 223 | before unpacking the archive.\r |
| 224 | .IP "\(bu" 4 |
| 225 | Create a \*(L"symlink\*(R" or copy your bash.exe to sh.exe in your \f(CW\*(C`($DJDIR)/bin\*(C'\fR\r |
| 226 | directory.\r |
| 227 | .Sp |
| 228 | .Vb 1 |
| 229 | \& ln -s bash.exe sh.exe |
| 230 | .Ve |
| 231 | .Sp |
| 232 | [If you have the recommended version of bash for \s-1DJGPP\s0, this is already\r |
| 233 | done for you.]\r |
| 234 | .Sp |
| 235 | And make the \f(CW\*(C`SHELL\*(C'\fR environment variable point to this \fIsh.exe\fR:\r |
| 236 | .Sp |
| 237 | .Vb 1 |
| 238 | \& set SHELL=c:/djgpp/bin/sh.exe (use full path name!) |
| 239 | .Ve |
| 240 | .Sp |
| 241 | You can do this in \fIdjgpp.env\fR too. Add this line \s-1BEFORE\s0 any section\r |
| 242 | definition:\r |
| 243 | .Sp |
| 244 | .Vb 1 |
| 245 | \& +SHELL=%DJDIR%/bin/sh.exe |
| 246 | .Ve |
| 247 | .IP "\(bu" 4 |
| 248 | If you have \fIsplit.exe\fR and \fIgsplit.exe\fR in your path, then rename \r |
| 249 | \&\fIsplit.exe\fR to \fIdjsplit.exe\fR, and \fIgsplit.exe\fR to \fIsplit.exe\fR.\r |
| 250 | Copy or link \fIgecho.exe\fR to \fIecho.exe\fR if you don't have \fIecho.exe\fR.\r |
| 251 | Copy or link \fIgawk.exe\fR to \fIawk.exe\fR if you don't have \fIawk.exe\fR.\r |
| 252 | .Sp |
| 253 | [If you have the recommended versions of djdev, shell utilities and\r |
| 254 | gawk, all these are already done for you, and you will not need to do\r |
| 255 | anything.]\r |
| 256 | .IP "\(bu" 4 |
| 257 | Chdir to the djgpp subdirectory of perl toplevel and type the following\r |
| 258 | commands:\r |
| 259 | .Sp |
| 260 | .Vb 2 |
| 261 | \& set FNCASE=y\r |
| 262 | \& configure.bat |
| 263 | .Ve |
| 264 | .Sp |
| 265 | This will do some preprocessing then run the Configure script for you.\r |
| 266 | The Configure script is interactive, but in most cases you just need to\r |
| 267 | press \s-1ENTER\s0. The \*(L"set\*(R" command ensures that \s-1DJGPP\s0 preserves the letter\r |
| 268 | case of file names when reading directories. If you already issued this\r |
| 269 | set command when unpacking the archive, and you are in the same \s-1DOS\s0\r |
| 270 | session as when you unpacked the archive, you don't have to issue the\r |
| 271 | set command again. This command is necessary *before* you start to \r |
| 272 | (re)configure or (re)build perl in order to ensure both that perl builds \r |
| 273 | correctly and that building XS-type modules can succeed. See the \s-1DJGPP\s0 \r |
| 274 | info entry for \*(L"_preserve_fncase\*(R" for more information:\r |
| 275 | .Sp |
| 276 | .Vb 1 |
| 277 | \& info libc alphabetical _preserve_fncase |
| 278 | .Ve |
| 279 | .Sp |
| 280 | If the script says that your package is incomplete, and asks whether\r |
| 281 | to continue, just answer with Y (this can only happen if you don't use\r |
| 282 | long filenames or forget to issue \*(L"set FNCASE=y\*(R" first).\r |
| 283 | .Sp |
| 284 | When Configure asks about the extensions, I suggest \s-1IO\s0 and Fcntl,\r |
| 285 | and if you want database handling then SDBM_File or GDBM_File\r |
| 286 | (you need to install gdbm for this one). If you want to use the\r |
| 287 | \&\s-1POSIX\s0 extension (this is the default), make sure that the stack\r |
| 288 | size of your \fIcc1.exe\fR is at least 512kbyte (you can check this\r |
| 289 | with: \f(CW\*(C`stubedit cc1.exe\*(C'\fR).\r |
| 290 | .Sp |
| 291 | You can use the Configure script in non-interactive mode too.\r |
| 292 | When I built my \fIperl.exe\fR, I used something like this:\r |
| 293 | .Sp |
| 294 | .Vb 1 |
| 295 | \& configure.bat -des |
| 296 | .Ve |
| 297 | .Sp |
| 298 | You can find more info about Configure's command line switches in\r |
| 299 | the \fI\s-1INSTALL\s0\fR file.\r |
| 300 | .Sp |
| 301 | When the script ends, and you want to change some values in the\r |
| 302 | generated \fIconfig.sh\fR file, then run\r |
| 303 | .Sp |
| 304 | .Vb 1 |
| 305 | \& sh Configure -S |
| 306 | .Ve |
| 307 | .Sp |
| 308 | after you made your modifications.\r |
| 309 | .Sp |
| 310 | \&\s-1IMPORTANT:\s0 if you use this \f(CW\*(C`\-S\*(C'\fR switch, be sure to delete the \s-1CONFIG\s0\r |
| 311 | environment variable before running the script:\r |
| 312 | .Sp |
| 313 | .Vb 1 |
| 314 | \& set CONFIG= |
| 315 | .Ve |
| 316 | .IP "\(bu" 4 |
| 317 | Now you can compile Perl. Type:\r |
| 318 | .Sp |
| 319 | .Vb 1 |
| 320 | \& make |
| 321 | .Ve |
| 322 | .Sh "Testing Perl on \s-1DOS\s0" |
| 323 | .IX Subsection "Testing Perl on DOS" |
| 324 | Type:\r |
| 325 | .PP |
| 326 | .Vb 1 |
| 327 | \& make test |
| 328 | .Ve |
| 329 | .PP |
| 330 | If you're lucky you should see \*(L"All tests successful\*(R". But there can be\r |
| 331 | a few failed subtests (less than 5 hopefully) depending on some external\r |
| 332 | conditions (e.g. some subtests fail under linux/dosemu or plain dos\r |
| 333 | with short filenames only).\r |
| 334 | .Sh "Installation of Perl on \s-1DOS\s0" |
| 335 | .IX Subsection "Installation of Perl on DOS" |
| 336 | Type:\r |
| 337 | .PP |
| 338 | .Vb 1 |
| 339 | \& make install |
| 340 | .Ve |
| 341 | .PP |
| 342 | This will copy the newly compiled perl and libraries into your \s-1DJGPP\s0\r |
| 343 | directory structure. Perl.exe and the utilities go into \f(CW\*(C`($DJDIR)/bin\*(C'\fR,\r |
| 344 | and the library goes under \f(CW\*(C`($DJDIR)/lib/perl5\*(C'\fR. The pod documentation\r |
| 345 | goes under \f(CW\*(C`($DJDIR)/lib/perl5/pod\*(C'\fR.\r |
| 346 | .SH "BUILDING AND INSTALLING MODULES ON DOS" |
| 347 | .IX Header "BUILDING AND INSTALLING MODULES ON DOS" |
| 348 | .Sh "Building Prerequisites for Perl on \s-1DOS\s0" |
| 349 | .IX Subsection "Building Prerequisites for Perl on DOS" |
| 350 | For building and installing non-XS modules, all you need is a working\r |
| 351 | perl under \s-1DJGPP\s0. Non-XS modules do not require re-linking the perl\r |
| 352 | binary, and so are simpler to build and install.\r |
| 353 | .PP |
| 354 | XS-type modules do require re-linking the perl binary, because part of\r |
| 355 | an \s-1XS\s0 module is written in \*(L"C\*(R", and has to be linked together with the\r |
| 356 | perl binary to be executed. This is required because perl under \s-1DJGPP\s0\r |
| 357 | is built with the \*(L"static link\*(R" option, due to the lack of \*(L"dynamic\r |
| 358 | linking\*(R" in the \s-1DJGPP\s0 environment.\r |
| 359 | .PP |
| 360 | Because \s-1XS\s0 modules require re-linking of the perl binary, you need both\r |
| 361 | the perl binary distribution and the perl source distribution to build\r |
| 362 | an \s-1XS\s0 extension module. In addition, you will have to have built your\r |
| 363 | perl binary from the source distribution so that all of the components\r |
| 364 | of the perl binary are available for the required link step.\r |
| 365 | .Sh "Unpacking \s-1CPAN\s0 Modules on \s-1DOS\s0" |
| 366 | .IX Subsection "Unpacking CPAN Modules on DOS" |
| 367 | First, download the module package from \s-1CPAN\s0 (e.g., the \*(L"Comma Separated\r |
| 368 | Value\*(R" text package, Text\-CSV\-0.01.tar.gz). Then expand the contents of\r |
| 369 | the package into some location on your disk. Most \s-1CPAN\s0 modules are\r |
| 370 | built with an internal directory structure, so it is usually safe to\r |
| 371 | expand it in the root of your \s-1DJGPP\s0 installation. Some people prefer to\r |
| 372 | locate source trees under /usr/src (i.e., \f(CW\*(C`($DJDIR)/usr/src\*(C'\fR), but you may\r |
| 373 | put it wherever seems most logical to you, *EXCEPT* under the same\r |
| 374 | directory as your perl source code. There are special rules that apply\r |
| 375 | to modules which live in the perl source tree that do not apply to most\r |
| 376 | of the modules in \s-1CPAN\s0.\r |
| 377 | .PP |
| 378 | Unlike other \s-1DJGPP\s0 packages, which are normal \*(L"zip\*(R" files, most \s-1CPAN\s0\r |
| 379 | module packages are \*(L"gzipped tarballs\*(R". Recent versions of WinZip will\r |
| 380 | safely unpack and expand them, *UNLESS* they have zero-length files. It\r |
| 381 | is a known WinZip bug (as of v7.0) that it will not extract zero-length\r |
| 382 | files.\r |
| 383 | .PP |
| 384 | From the command line, you can use the djtar utility provided with \s-1DJGPP\s0\r |
| 385 | to unpack and expand these files. For example:\r |
| 386 | .PP |
| 387 | .Vb 1 |
| 388 | \& C:\edjgpp>djtarx -v Text-CSV-0.01.tar.gz |
| 389 | .Ve |
| 390 | .PP |
| 391 | This will create the new directory \f(CW\*(C`($DJDIR)/Text\-CSV\-0.01\*(C'\fR, filling\r |
| 392 | it with the source for this module.\r |
| 393 | .Sh "Building Non-XS Modules on \s-1DOS\s0" |
| 394 | .IX Subsection "Building Non-XS Modules on DOS" |
| 395 | To build a non-XS module, you can use the standard module-building\r |
| 396 | instructions distributed with perl modules.\r |
| 397 | .PP |
| 398 | .Vb 4 |
| 399 | \& perl Makefile.PL\r |
| 400 | \& make\r |
| 401 | \& make test\r |
| 402 | \& make install |
| 403 | .Ve |
| 404 | .PP |
| 405 | This is sufficient because non-XS modules install only \*(L".pm\*(R" files and\r |
| 406 | (sometimes) pod and/or man documentation. No re-linking of the perl\r |
| 407 | binary is needed to build, install or use non-XS modules.\r |
| 408 | .Sh "Building \s-1XS\s0 Modules on \s-1DOS\s0" |
| 409 | .IX Subsection "Building XS Modules on DOS" |
| 410 | To build an \s-1XS\s0 module, you must use the standard module-building\r |
| 411 | instructions distributed with perl modules *PLUS* three extra\r |
| 412 | instructions specific to the \s-1DJGPP\s0 \*(L"static link\*(R" build environment.\r |
| 413 | .PP |
| 414 | .Vb 7 |
| 415 | \& set FNCASE=y\r |
| 416 | \& perl Makefile.PL\r |
| 417 | \& make\r |
| 418 | \& make perl\r |
| 419 | \& make test\r |
| 420 | \& make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe\r |
| 421 | \& make install |
| 422 | .Ve |
| 423 | .PP |
| 424 | The first extra instruction sets \s-1DJGPP\s0's \s-1FNCASE\s0 environment variable so\r |
| 425 | that the new perl binary which you must build for an XS-type module will\r |
| 426 | build correctly. The second extra instruction re-builds the perl binary\r |
| 427 | in your module directory before you run \*(L"make test\*(R", so that you are\r |
| 428 | testing with the new module code you built with \*(L"make\*(R". The third extra\r |
| 429 | instruction installs the perl binary from your module directory into the\r |
| 430 | standard \s-1DJGPP\s0 binary directory, \f(CW\*(C`($DJDIR)/bin\*(C'\fR, replacing your\r |
| 431 | previous perl binary.\r |
| 432 | .PP |
| 433 | Note that the \s-1MAP_TARGET\s0 value *must* have the \*(L".exe\*(R" extension or you\r |
| 434 | will not create a \*(L"perl.exe\*(R" to replace the one in \f(CW\*(C`($DJDIR)/bin\*(C'\fR.\r |
| 435 | .PP |
| 436 | When you are done, the XS-module install process will have added information\r |
| 437 | to your \*(L"perllocal\*(R" information telling that the perl binary has been replaced,\r |
| 438 | and what module was installed. You can view this information at any time\r |
| 439 | by using the command:\r |
| 440 | .PP |
| 441 | .Vb 1 |
| 442 | \& perl -S perldoc perllocal |
| 443 | .Ve |
| 444 | .SH "AUTHOR" |
| 445 | .IX Header "AUTHOR" |
| 446 | Laszlo Molnar, \fIlaszlo.molnar@eth.ericsson.se\fR [Installing/building perl]\r |
| 447 | .PP |
| 448 | Peter J. Farley \s-1III\s0 \fIpjfarley@banet.net\fR [Building/installing modules]\r |
| 449 | .SH "SEE ALSO" |
| 450 | .IX Header "SEE ALSO" |
| 451 | \&\fIperl\fR\|(1).\r |