Commit Graph

17 Commits

Author SHA1 Message Date
Ruslan Ermilov
4448c79e47 Fix cross-building, etc:
1.  To cross-build, one now needs to set TARGET_ARCH, and not the
    MACHINE_ARCH.  MACHINE_ARCH should never be changed manually!

2.  Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
    and cross-tools stages.  This fixes broken header and library
    dependencies problem.  We build them in the host environment,
    and obviously want them to depend on host headers and libraries.
    The problem with broken header dependencies for bootstrap-tools
    and cross-tools was already partially solved (see BOOTSTRAPPING
    tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
    build-tools if the user ran "make world DESTDIR=/foo".  Also,
    for all of these stages, the library dependencies were broken
    because of how bsd.libnames.mk define DPADD members.

    We still provide a glue to install bootstrap- and cross-tools
    under the ${WORLDTMP}.

    Removed PATH overrides for bootstrap-, build-, and cross-tools
    stages.  There is just no reason why we would need to override
    it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
    case are no longer needed with fixes from this step.

    That is, we now never use ${WORLDTMP} headers and libraries,
    and we don't use any ${WORLDTMP} installed binaries during
    these stages.  Again, these stages depend solely on the host
    environment, including compiler, headers, and libraries.

3.  Moved "miniperl" back from cross-tools (it has nothing to do
    with a cross-compiler) to build-tools where it belongs.  The
    change from step 1 let to do this.  Also, to make this work,
    build-tools targets of "cc_tools" and "miniperl" were modified
    to call "depend".  Here follow the detailed explanations.

    There are two categories of build tools, for now.  In the first
    category there are "cc_tools" and "miniperl".  They occupy the
    whole (sub)directory, and nothing needs to be done in this
    subdirectory later during the "all" stage.  They are also
    constructed using system makefiles.  We must build the .depend
    early in the build-tools stage because:

    1)  They use (and depend on) the host environment.

    2)  If we don't do this in build-tools, the "depend" stage of
        buildworld will do this for us; wrong library and header
        dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
        what's worse, the "all" stage may then clobber the
        build-architecture format tools (that we built in the
        build-tools stage) with the target-architecture format
        ones, breaking cross build.

    In the second category there are all other build-tools.  They
    share their directory with the "main" module that needs them
    in the "all" stage, and they don't show up themselves in the
    .depend file.  The portion of this fix was already committed
    in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.

4.  "libperl" is no longer a build tool, and "miniperl" is the
    stand-alone application.  I had to make this change because
    build-tools and "all" stages share the same object directory.
    Without this change, if we cross compile, libperl.a is first
    built for the build architecture during the build-tools stage
    (for the purposes of immediate linkage with "miniperl").
    Later on, the "all" stage sees this library as up-to-date,
    and doesn't rebuild it.  The effect is that the wrong format
    static libperl library is installed with installworld.

5.  Fixed "includes" to install secure/lib/libtelnet headers if
    required.

Reviewed by:	bde
2001-09-29 13:17:54 +00:00
Mark Murray
e284cfe41e [ Very nasty nautical expletive removed ]
Remove debugging code that should never have been committed.
2001-09-21 13:50:31 +00:00
Mark Murray
b6c358a73d Through some hackery-pokery, allow folks to cd to src/gnu/usr.bin/perl
and do the usual "make obj && make depend all".

This sort of stuff makes my teeth itch, but folks wanted it badly
enough, so here it is.
2001-09-20 12:22:27 +00:00
Josef Karthauser
d3b6c99818 Commit the first version of BSDPAN.
BSDPAN is the collection of modules that provides tighter than ever
integration of Perl into BSD Unix.

Currently, BSDPAN does the following:

o makes p5- FreeBSD ports PREFIX-clean;

o registers Perl modules in the FreeBSD package database with a
  package name derived from the module name.
  The name is of the form: bsdpan-ModuleName-V.VV.

Anyone interested in where BSDPAN is developing should read Anton's
message to the ports mailling list:
	Message-ID: <20010105040828.A26011@heechee.tobez.org>

Submitted by:	Anton Berezin <tobez@tobez.org>
2001-04-03 18:38:53 +00:00
Marcel Moolenaar
ad879ce955 Fix cross-building.
o  Move building libperl and miniperl from build-tools to
   cross-tools. libperl uses MACHINE_ARCH to determine the
   right configuration, which doesn't match the build
   machine when cross-building if they are built as build-
   tools.
o  Since miniperl needs to be built as a cross-tool, it
   needs to be installed under /usr/obj so that it can be
   used (cross-tools have a special object directory to
   avoid build conflicts. As a downside, you can't easily
   run cross-tools from their object directory). Remove
   the install and distribute override targets. To avoid
   having miniperl installed by installworld, remove it
   from SUBDIR.
o  We can't pickup miniperl from the object directory but
   since it's installed, depend on PATH. This is save,
   because the makefiles are run with a known path.
o  Build libperl again as part of the library target. A
   _libperl variable existed, but it was never defined.
o  Add chmod to the list of saved tools, because perl
   conditionally uses it during install.

The bootstrap-tools and cross-tools targets are modified to
avoid building profiled and shared libraries. While here,
have these targets build static binaries instead of shared
binaries.

Approved by: markm
2000-11-20 02:17:34 +00:00
Warner Losh
9a88e86cbe Always build and install suidperl. Only install suidperl setuid when
ENABLE_SUIDPERL is set to true.  When perl is updated to remove the
fork mail code, additional warnings will enable the users to know what
is gonig on and how to correct it.  Markm will make those commits as
part of his perl patch integration.  suidperl is installed with
execute permissions so that markm's added error messages wil be seen
by the user.
2000-08-13 01:40:06 +00:00
Warner Losh
47945ade89 Don't build suidperl by default. Make users specifically enable its
building.
2000-08-10 22:59:53 +00:00
Mark Murray
9bbc1ad14d Userland build stuff for Perl5.006.
This is cleaned up quite a lot since 5.00502, and the library modules
are broken out into individual dirs. This should please a lot folk.
2000-06-25 14:48:20 +00:00
Peter Wemm
9b7a44a60e $Id$ -> $FreeBSD$ 1999-08-27 23:37:10 +00:00
Mark Murray
ce1bf9a557 System Perl is now 5.00503! There is support for threads, but this is
not currently enabled. Thread-boffins are welcome to send me patches.
1999-05-02 15:29:56 +00:00
Mark Murray
d8a42175b2 Allow NOSUIDPERL to DTRT. 1998-09-30 20:24:59 +00:00
Mark Murray
17168bf62e Bring in the Perl5 BMake files. This ends the easy stuff.
I'll be doiung the rest in stages.
1998-09-09 07:20:33 +00:00
Mark Murray
bae7411889 Old Perl is leaving us. Goodbye, faithful friend. 1998-09-09 06:49:33 +00:00
Dima Ruban
0fcadac763 Don't build sperl if you don't want to. 1998-03-26 06:06:22 +00:00
Rodney W. Grimes
4399be3cbd Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
Jordan K. Hubbard
80926682fd Bring back perl/usub as usub/, this time containing an updated curseperl
which is also installed by default (the reason for which should also be
plain shortly).
1995-03-24 04:33:54 +00:00
Gary Clark II
82c0a999f5 Initial import of Perl 4.046 bmaked 1994-09-10 06:27:55 +00:00