| 1 | |
| 2 | Perl5 Metaconfig Units |
| 3 | |
| 4 | Copyright (c) 1996-1998, Andy Dougherty |
| 5 | All rights reserved. |
| 6 | |
| 7 | These units are the ones I used to build Configure and config_h.SH |
| 8 | in the Perl5 distribution. |
| 9 | |
| 10 | The Configure script and config_h.SH file in the Perl distribution are |
| 11 | generated by a program called metaconfig. To run metaconfig, you will |
| 12 | need the full dist 3.0 distribution, maintained by Raphael Manfredi. |
| 13 | As of this writing, the current version is dist3.0, patchlevel 70. |
| 14 | Dist version dist-3.0@70.tar.gz is available on CPAN (the Comprehensive |
| 15 | Perl Archive Network) as |
| 16 | <http://www.perl.com/perl/CPAN/authors/id/RAM/dist-3.0@70.tar.gz>. |
| 17 | |
| 18 | Instructions: |
| 19 | |
| 20 | 1. Unpack the full perl5 sources. Execute the following command |
| 21 | |
| 22 | chmod +w Configure config_h.SH Porting/Glossary Porting/config* |
| 23 | |
| 24 | 2. Unpack the archive containing this file in the perl5 source |
| 25 | directory. This will create a directory 'U' under the perl5 |
| 26 | sources. That directory will contain the metaconfig units for perl5. |
| 27 | This will also create two files in the perl5 source tree: |
| 28 | MANIFEST.new and .package. |
| 29 | |
| 30 | 3. Apply any patches to perl in the perl_patches/ directory. |
| 31 | (This may well be empty.) |
| 32 | |
| 33 | 4. Obtain and install dist-3.0pl70. |
| 34 | |
| 35 | 4. Apply any patches to dist under the dist_patches subdirectory. |
| 36 | |
| 37 | 5. From your main perl5 source directory, run packinit to |
| 38 | regenerate the .package file. IMPORTANT: Change the name and |
| 39 | address of the maintainer to your own name and address. I don't |
| 40 | want bug reports intended for you coming to me. |
| 41 | |
| 42 | 6. From your main perl5 source directory, run |
| 43 | |
| 44 | metaconfig -m |
| 45 | |
| 46 | 7. Edit U/mkglossary to point to your dist-3.0pl70 location. |
| 47 | (See comments at the top.) |
| 48 | |
| 49 | 8. Run the U/mksample script to update the contents of the Porting/ |
| 50 | subdirectory. |
| 51 | |
| 52 | 9. Let me know about any changes, corrections, or enhancements. |
| 53 | |
| 54 | Things to watch out for: |
| 55 | |
| 56 | 1. The Configure in 5.005 is a hand-patched version of that supplied |
| 57 | with perl5.004_74 or so. Most of the patches had to do with |
| 58 | supporting MPE/iX and EBCDIC systems. I have re-integrated most |
| 59 | of the changes back into metaconfig, but I don't really undertand |
| 60 | why MPE/iX needed some of the patches, so I may have missed |
| 61 | something important. I did try to flag questionable changes in |
| 62 | the individual units. |
| 63 | |
| 64 | 2. Future support of better random number generators should probably |
| 65 | start with the randfunc.U unit included here. It's currently |
| 66 | broken, but well commented and probably a good place to start. |
| 67 | |
| 68 | Descriptions: |
| 69 | |
| 70 | The units and other related files have been broken up into the following |
| 71 | directories: |
| 72 | |
| 73 | acl/ |
| 74 | This is an old patch to begin to detect and use ACL (access |
| 75 | control list) file protection schemes. |
| 76 | |
| 77 | compline/ |
| 78 | These are similar to the standard units, but I have modified them |
| 79 | to have a more uniform compile command line, usually using the new |
| 80 | Compile.U unit. I have submitted these for inclusion into the |
| 81 | regular dist distribution. (The ccflags.U unit is actually |
| 82 | perl-specific since it mentions -DDEBUGGING and -DPOSIX_SOURCE, |
| 83 | but that's the only place it is perl-specific.) |
| 84 | |
| 85 | dist_patches/ |
| 86 | These are patches to dist that must be applied before it is built |
| 87 | and installed. I have submitted these for inclusion in the |
| 88 | regular dist distribution. |
| 89 | |
| 90 | modified/ |
| 91 | These are modified versions of the standard units. Also included in |
| 92 | this directory are new units that are clearly derived from existing |
| 93 | units. I have submitted these for inclusion in the regular dist |
| 94 | distribution. |
| 95 | |
| 96 | perl/ |
| 97 | These are specific to perl. Some are heavily derived from |
| 98 | original dist units, and are marked as such. Others are original. |
| 99 | |
| 100 | perl_patches/ |
| 101 | These are patches to the perl source. This directory |
| 102 | should ordinarily be empty, but there may have been drift between |
| 103 | the standard version of perl and the one associated with these |
| 104 | units. |
| 105 | |
| 106 | protos/ |
| 107 | These are units modified to use the new Hasproto.U or Protochk.U |
| 108 | units to check for prototypes. I have submitted these for inclusion |
| 109 | into the regular dist distribution. |
| 110 | |
| 111 | target/ |
| 112 | This is the very, very beginning of cross-compiler support. |
| 113 | It doesn't work yet, and many standard units will need |
| 114 | modification. |
| 115 | |
| 116 | typedefs/ |
| 117 | These are standard units modified to use the modified Typedef.U |
| 118 | unit to check for typedefs. (The modified Typdef.U includes a |
| 119 | function to avoid unnecessary prompts if the typdef being searched |
| 120 | for exists.) I have submitted these for inclusion into the |
| 121 | regular dist distribution. |
| 122 | |
| 123 | threads/ |
| 124 | These are specific to threading perl. |
| 125 | |
| 126 | Copyright Information: |
| 127 | |
| 128 | Unless otherwise indicated, the files contained in this |
| 129 | distribution are: |
| 130 | |
| 131 | Copyright (c) 1996-1998, Andy Dougherty |
| 132 | |
| 133 | The following licensing terms apply to all files contained in |
| 134 | this distribution: |
| 135 | |
| 136 | You may distribute the files contained in this distribution |
| 137 | under the terms of either |
| 138 | |
| 139 | a) the "Artistic License" which comes with Perl, or |
| 140 | |
| 141 | b) the "Artistic License" which comes with dist, or |
| 142 | |
| 143 | c) the GNU General Public License as published by the Free |
| 144 | Software Foundation; either version 1, or (at your option) any |
| 145 | later version (see the file "Copying" that comes with the |
| 146 | Perl distribution). |
| 147 | |
| 148 | Which one to use is your choice. |
| 149 | |
| 150 | The units in the "modified" directory have been derived from units |
| 151 | associated with the metaconfig program of Raphael Manfredi's "dist" |
| 152 | distribution. These units list Raphael Manfredi as the Copyright holder. |
| 153 | dist is distributed under a modified version of the Perl Artistic License. |
| 154 | Clause 7 of this modified license as contained in dist-3.0-pl60 provides: |
| 155 | |
| 156 | 7. You may reuse parts of this Package in your own programs, provided |
| 157 | that you explicitly state where you got them from, in the source code |
| 158 | (and, left to your courtesy, in the documentation), duplicating |
| 159 | all the associated copyright notices and disclaimers. Besides |
| 160 | your changes, if any, must be clearly marked as such. Parts reused |
| 161 | that way will no longer fall under this license if, and only if, |
| 162 | the name of your program(s) have no immediate connection with the |
| 163 | name of the Package itself or its associated programs. You may then |
| 164 | apply whatever restrictions you wish on the reused parts or choose |
| 165 | to place them in the Public Domain--this will apply only within the |
| 166 | context of your package. |
| 167 | |
| 168 | In accordance with this clause, the versions of these units |
| 169 | contained here are made available under the same terms as the |
| 170 | rest of the units. |
| 171 | |
| 172 | If you have any questions about the use of these units or about |
| 173 | the differences between these units and the standard versions, please |
| 174 | feel free to ask. |
| 175 | |
| 176 | Andy Dougherty doughera@lafayette.edu |
| 177 | Dept. of Physics |
| 178 | Lafayette College |
| 179 | Easton, PA 18042-1782 |