Re: crummy build process for FastCGI-integrated Perl

Rujith S. de Silva (desilva@ind70.industry.net)
Tue, 18 Jun 1996 11:19:33 -0400

Message-Id: <31C551CF.2781E494@ind70.industry.net>
Date: Tue, 18 Jun 1996 11:19:33 -0400
From: "Rujith S. de Silva" <desilva@ind70.industry.net>
To: Mark Brown <mbrown@openmarket.com>
Subject: Re: crummy build process for FastCGI-integrated Perl

Mark Brown wrote:
>     Also I am *very* unhappy about the perl build process - making a new
>     perl for fastcgi is a real bitch!  Particularly as your build process
>     did not work on our Sun (SunOS 4.1.3 patches) system so I had to do a
>     lot of hacking around, then to find that the extra cflags broke the
>     Configure test programs, so other things didn't work (ie no signal
>     names!).  I eventually configured as normal (no fastcgi changes),
>     then edited config.sh (at the prompt) and added the cflags, ldflags &
>     libs entries, and changed the stdio settigs (std stdio and base etc
>     entries - all together in config.sh) to undef.  This worked and
>     tested OK.

I ended up doing exactly the same thing, and it worked fine thereupon for the last three
releases of the fcgi-devel-kit on both SunOS and Solaris.
http://www.fastcgi.com/kit/doc/fcgi-perl.htm gives three `recipes' for building perl, and
essentially, one has to combine sections from all three recipes.  Maybe you could update
that page to mention the `combined' recipe, as follows:

Unpack the tar file in the parent directory of the FastCGI kit directory, so that the
directories perl5.002 and fcgi-devel-kit are siblings.

    Copy the version specific and the common files from fcgi-devel-kit/perl-5 into the
Perl-5 kit. 

      > cd perl5.002
      > mv perl.c perl.c.orig
      > mv proto.h proto.h.orig
      > mv Configure Configure.orig
      > cp -r ../fcgi-devel-kit/perl-5/perl5.002/* .
      > cp -r ../fcgi-devel-kit/perl-5/common/* .

Go into the top level directory of the Perl distribution and run Configure. 

Edit config.sh at the shell escape in Configure:

cc 
      Change to use gcc if you are not using it already. 

ccflags AND cppflags 
      Add the following flags: 
            -I$fcgi/include 
            -include $fcgi/include/fcgi_stdio.h 
      This assumes you are using GCC. See the above section on assumptions 

extensions AND known_extensions 
      Add FCGI to the list of extensions 

ldflags 
      Add -L $fcgi/libfcgi to the list. 

libs 
      Add -lfcgi to the list of libraries, should be added before -lc. 

static_ext or dynamic_ext 
      Add FCGI to the list of statically or dynamically loaded extensions. 

d_stdio_cnt_lval, d_stdio_ptr_lval, d_stdiobase, d_stdstdio 
      Change all of these to undef. 

Complete the run of Configure.

Later,
Rujith.