Dan Nicholson dbn.lists at
Tue Oct 28 23:37:27 PDT 2008

On Tue, Oct 28, 2008 at 8:32 PM, Bruce Dubbs <bruce.dubbs at> wrote:
> I'm puzzling over two tickets concerning perl:  2071 and 2227
> It looks like 2071 says that we need to add -Dvendorprefix=/usr to the
> configuration process, but configure.gnu doesn't support it.
> Dan mentions that he uses:
> sh ./Configure -des \
>         -Dprefix=/usr \
>         -Dsiteprefix=/usr \
>         -Dvendorprefix=/usr \
>         -Doptimize="${CFLAGS}" \
>         ${LDFLAGS:+-Dldflags="$LDFLAGS"} \
>         -Dscriptdir=/usr/bin \
>         -Dman1dir=/usr/share/man/man1 \
>         -Dman3dir=/usr/share/man/man3pm \
>         -Dhtml1dir=/usr/share/doc/perl5/html1 \
>         -Dhtml3dir=/usr/share/doc/perl5/html3 \
>         -Dpager="/usr/bin/less -isR" \
>         -Dmyhostname=localhost \
>         -Dperladmin=root at localhost
> Are there any comments about this?  Should I just drop in these instructions?

Yeah, configure.gnu only supports a limited set of options. If you
look at what configure.gnu does, it just translates --prefix
(autotools style) and a few others to -D Configure style and then runs
it with -d -e -s (-des getopt style).

So, first thing is, I'd suggest just running `./Configure -des' (looks
like perl-5.10.0 makes Configure executable) instead of using the poor
compat interface configure.gnu. Just my opinion, but Configure
supports the full range of perl build options, and I think we can
understand -Dprefix vs. --prefix. The other big advantage of using
Configure is that using configure.gnu triggered some sort of caching
that had caused issues with people rerunning the command. Not sure if
that's an issue anymore.

I wouldn't suggest hauling in all the options I listed above. Just
-Dvendorprefix=/usr is good enough for this ticket. But I'll just
quickly explain what the others do.

-Dsiteprefix=/usr: not necessary since it defaults to prefix, but I
just wanted to be clear since I'm also setting prefix and vendorprefix

-Doptimize: set the CFLAGS you want; not appropriate for vanilla LFS

-Dscriptdir=/usr/bin: this is where "public executables go". I don't
know exactly what that means, but the default goes looking for
directories like /usr/share/scripts and /usr/share/bin. I just wanted
to make it consistent.

-Dman3dir=/usr/share/man/man3pm: I'd given man an extra 3pm section to
search so I could keep perl module documentation away from library

-Dhtml1dir/html3dir: These are normally unset, but they define
directories to put HTML documentation. I don't remember if they
actually do much.

-Dmyhostname/-Dperladmin: These default to `hostname` and
`logname`@`hostname`. Since the machine and user for the build aren't
relevant for me, I just set them to generic names.


More information about the lfs-dev mailing list