Commit | Line | Data |
39e571d4 |
1 | This is a DOS/DJGPP port of Perl 5.004_5x |
2 | |
3 | 1. Installation |
4 | ------------ |
5 | |
6 | - Unzip the binary package perl54b.zip preserving the directory |
7 | structure (-d switch to PKUNZIP) from the top DJGPP directory. |
8 | If you want to use perl with long file names (win0.95), then use a LFN |
9 | aware unzip and add |
10 | |
11 | set LFN=y |
12 | |
13 | to your autoexec.bat or DJGPP.ENV. |
14 | |
15 | - Edit lib/perl5/Config.pm, and replace every 'c:/djgpp' with your |
16 | DJGPP root directory. This can be done with perl too: |
17 | |
18 | perl -i~ -pe "s!c:/djgpp!x:/djroot!i;" lib/perl5/Config.pm |
19 | ^^^^^^^^^ |
20 | Substitute this with your DJGPP root directory! |
21 | |
22 | - This version of perl searches its library files in '../lib/perl5/', |
23 | which is relative to the path of perl.exe. If you don't like this, |
24 | you can use the PERL5LIB environment variable to tell perl where |
25 | the library is. E.g: |
26 | |
27 | set PERL5LIB=c:/perl/lib |
28 | |
29 | Warning: if you set PERL5LIB and use tainting checks (-T command line |
30 | option), perl ignores PERL5LIB, so you must use the -I command line |
31 | switch or the "use lib '...'" construct. Or you can patch perl.exe :) |
32 | |
33 | - Perl works best with a unixy shell, so you may want to download and |
34 | install bash (bshXXXXb.zip from the usual DJGPP sites). After installing |
35 | it make the 'SHELL' environment variable point to your bash.exe. |
36 | Finally create a `link' to your bash.exe in your %DJDIR%/bin directory: |
37 | |
38 | ln -s bash.exe sh.exe |
39 | or |
40 | stubify -g sh.exe |
41 | stubedit sh.exe runfile=bash |
42 | |
43 | - The documentation is in lib/perl5/pod. You can read the .pod files |
44 | with any editor, or you can use the `perldoc' utility. For more info: |
45 | |
46 | perl -S perldoc -h |
47 | |
48 | It tries to use less.exe or more.com, but you can set your pager with: |
49 | |
50 | SET PAGER=path_of_your_favourite_pager |
51 | |
52 | 2. Building Perl |
53 | ------------- |
54 | |
55 | - In addition to the standard DJGPP tools, you will need sed, gawk, grep, |
56 | sh-utils, textutils, fileutils, bash, diffutils, make and findutils. :-) |
57 | You can find them on the usual DJGPP sites. If you want to build perl |
58 | under win0.95, then you MUST use fileutils 3.16+ (3.13 doesn't work). |
59 | |
60 | - Unzip the source package perl54s.zip preserving the directory |
61 | structure (-d switch to PKUNZIP) from the top DJGPP directory. |
62 | Under plain DOS, use the -o switch too when unzipping. |
63 | This creates the directory gnu/perl5004. |
64 | |
65 | - Create a symlink or copy your bash.exe to sh.exe in your DJGPP/bin |
66 | directory. |
67 | |
68 | ln -s bash.exe sh.exe |
69 | |
70 | And make the 'SHELL' environment variable point to this sh.exe: |
71 | |
72 | set SHELL=c:/djgpp/bin/sh.exe (use full path name!) |
73 | |
74 | You can do this in djgpp.env too. Add this line BEFORE any section |
75 | definition: |
76 | |
77 | +SHELL=%DJDIR%/bin/sh.exe |
78 | |
79 | - If you have split.exe and gsplit.exe in your path, then rename split.exe |
80 | to djsplit.exe, and gsplit.exe to split.exe. |
81 | |
82 | - Copy or link gecho.exe to echo.exe if you don't have echo.exe. |
83 | |
84 | - Copy or link gawk.exe to awk.exe if you don't have awk.exe. |
85 | |
86 | - Chdir to the gnu/perl5004/djgpp directory and type the following |
87 | command: |
88 | |
89 | configure.bat |
90 | |
91 | This will do some preprocessing then run the Configure script. |
92 | |
93 | The Configure script is interactive, but in most of the cases you |
94 | just need to press ENTER. |
95 | |
96 | If the script says that your package is incomplete, and ask whether |
97 | to continue, just answer with Y (this can only happen if you don't use |
98 | long filenames). |
99 | |
100 | When Configure asks about the extensions, I suggest IO and Fcntl, |
101 | and if you want database handling then SDBM_File or GDBM_File |
102 | (you need to install gdbm for this one). If you want to use the |
103 | POSIX extension (this is the default), make sure that the stack |
104 | size of your cc1.exe is at least 512kbyte (you can check this |
105 | with: stubedit cc1.exe). |
106 | |
107 | You can use the Configure script in non-interactive mode too. |
108 | When I've built my perl.exe, I used this: |
109 | |
110 | configure.bat -Uuseposix -dEs |
111 | |
112 | then edited config.sh (set hostname & domainname), then |
113 | |
114 | sh Configure -S |
115 | |
116 | You can find more info about Configure's command line switches in |
117 | the `INSTALL' file. |
118 | |
119 | - When the script ends, and you want to change some values in the |
120 | generated config.sh file, then run |
121 | |
122 | sh Configure -S |
123 | |
124 | after you made your modifications. |
125 | |
126 | IMPORTANT: if you use this -S switch, be sure to delete the CONFIG |
127 | environment variable before running the script: |
128 | |
129 | set CONFIG= |
130 | |
131 | - Now you can compile Perl. Type: |
132 | |
133 | make |
134 | |
135 | - Run the tests: |
136 | |
137 | make test |
138 | |
139 | You should see "All tests successful" if you configured a database |
140 | manager, and 1 failed test script if not (lib/anydbm.t). If you |
141 | configured POSIX you will see 4 failed subtests in lib/posix.t. |
142 | |
143 | - If you want the documentation in HTML format, then read INSTALL in |
144 | the main perl5004 source directory. |
145 | |
146 | WARNING: if you want to use absolute path names with `installhtml', |
147 | use something like this: |
148 | |
149 | --htmldir=f:/html |
150 | --htmlroot='/f|/html' # "|" instead of ":" !!! |
151 | |
152 | or NETSCAPE does strange things. |
153 | |
154 | - If you don't want to use the modules, then you are ready: copy perl.exe |
155 | into your bin directory. |
156 | |
157 | - Else install the files with: |
158 | |
159 | make install |
160 | |
161 | Enjoy. |
162 | |
163 | Laszlo Molnar <molnarl@cdata.tvnet.hu> |
164 | |