Patch to Build Dynamic-Lib (DLL) version of perl using gnuwin32 b17.1
authorJohn Cerney <j-cerney1@ti.com>
Thu, 3 Apr 1997 08:21:17 +0000 (09:21 +0100)
committerChip Salzenberg <chip@atlantic.net>
Wed, 2 Apr 1997 22:03:25 +0000 (10:03 +1200)
commit2a079e0090406b1b2e50643540f149206c9e9de8
tree3a7a1a3675a836af837d9fcacc1cece36eac8557
parentb226d704a95b67a31c9c67a9ab25966507c62295
Patch to Build Dynamic-Lib (DLL) version of perl using gnuwin32 b17.1

I have successfully built a dynamic-lib (dll) version of perl version 5.003_94
using the gnuwin32 tools on windows 95 and windows NT 3.51. This port builds
all extension libs for perl as DLLs.

A patch is attached to this message.

Detailed Instructions:

The following assumes you have the gnuwin32 (version b17.1) package installed
and configured on your system. See http://www.cygnus.com/misc/gnu-win32/ for
details on the gnuwin32 package.

1) Obtain perl5.003_94 (from www.perl.com or CPAN) and extract
     to a directory on your system.

2) cd to the path where perl5.003_94 is installed. e.g, if you
   installed to /perl5.003_94, then cd to /perl5.003_94.

3) Apply this patch:
patch -p1 < dllpatch

  Note: If you have problems with the patch that comes with
     the gnuwin32 package, (I have had problems getting it to apply
     multiple patches in a single file) try the patch located
     at http://www.simtel.net/pub/simtelnet/win95/prog/gpatch2b.zip.
     Also, the files pp_sys.c and perl.h that the patch modifies must
     be in unix format. If your extraction utility (like winzip) converts
     to dos format, change the format of these files back before applying
     the patch.
5) Modify the ld2 script
   Change the PERLPATH variable to the location you extracted perl.
    for example, if you extracted perl to /perl5.003_94, change so
    the line looks like:
PERLPATH=/perl5.003_94

4) Copy the two scripts ld2, and gcc2 to a directory in your PATH
   environment variable. For example, copy to /bin, assuming /bin is
   in your PATH. (These two scripts ld2 and gcc2 are 'wrapper' scripts
   that encapsulate the multiple-pass dll building steps used by gnuwin32
ld/gcc.)

5) Run the perl Configuration script as stated in the perl README file;
e.g.
sh Configure
   select gnuwin32 at this prompt:
   First time through, eh?  I have some defaults handy for the following
systems:
   .
   .
   .
   Which of these apply, if any?

   The defaults should be OK for everything else, except for the specific
pathnames for
   the gnuwin32 libs, include files, installation dirs, etc on your system.

   Note:
   On windows 95, the configuration script only stops every other time
    for responses from the command line. In this case you can manually edit
    the gnuwin32.sh hint file for your paths, copy hints/gnuwin32.sh to
config.sh,
    and run Configure non-interactively using sh Configure -d.

6) Do a make, as stated in the perl README file

7) Do a make test. Some test will fail, but you should get around a
83% OK result. (Most failures seem to be due to unix'ism that
        don't apply for win32.)

8) Do a make install. This will fail about 1/2 of the way thru. It appears
that perl can't find itself when it forks because it cd's to another
        directory during the install process. You get around this by invoking
        the install script using a full pathname for perl. For example, if
perl is extracted to perl5.003_94, do a
'/perl5.003_94/perl installperl'. This should complete the install
        process.

p5p-msgid: 199704030821.JAA08762@pluto.tiuk.ti.com
14 files changed:
ext/DynaLoader/dl_gnuwin32.xs [new file with mode: 0644]
extLibInc.h [new file with mode: 0644]
gcc2 [new file with mode: 0644]
hints/gnuwin32.sh [new file with mode: 0644]
ld2 [new file with mode: 0644]
perl.h
perl5.003_94/ext/DynaLoader/dl_gnuwin32.xs [new file with mode: 0644]
perl5.003_94/extLibInc.h [new file with mode: 0644]
perl5.003_94/gcc2 [new file with mode: 0644]
perl5.003_94/hints/gnuwin32.sh [new file with mode: 0644]
perl5.003_94/ld2 [new file with mode: 0644]
perlgcc [new file with mode: 0644]
perlld [new file with mode: 0644]
pp_sys.c