Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Sep 2001 06:17:55 -0700 (PDT)
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src Makefile.inc1 src/secure/lib/libtelnet Makefile src/share/mk bsd.lib.mk src/gnu/usr.bin/perl Makefile Makefile.inc src/gnu/usr.bin/perl/libperl Makefile src/gnu/usr.bin/perl/library Makefile.inc src/gnu/usr.bin/perl/miniperl Makefile ...
Message-ID:  <200109291317.f8TDHt444684@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
ru          2001/09/29 06:17:55 PDT

  Modified files:
    .                    Makefile.inc1 
    secure/lib/libtelnet Makefile 
    share/mk             bsd.lib.mk 
    gnu/usr.bin/perl     Makefile Makefile.inc 
    gnu/usr.bin/perl/libperl Makefile 
    gnu/usr.bin/perl/library Makefile.inc 
    gnu/usr.bin/perl/miniperl Makefile 
    gnu/usr.bin/perl/pod Makefile.inc 
    gnu/usr.bin/perl/x2p Makefile.inc 
  Log:
  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
  
  Revision  Changes    Path
  1.219     +37 -56    src/Makefile.inc1
  1.17      +2 -18     src/gnu/usr.bin/perl/Makefile
  1.26      +7 -2      src/gnu/usr.bin/perl/Makefile.inc
  1.16      +1 -4      src/gnu/usr.bin/perl/libperl/Makefile
  1.8       +1 -2      src/gnu/usr.bin/perl/library/Makefile.inc
  1.19      +16 -17    src/gnu/usr.bin/perl/miniperl/Makefile
  1.5       +1 -2      src/gnu/usr.bin/perl/pod/Makefile.inc
  1.8       +1 -2      src/gnu/usr.bin/perl/x2p/Makefile.inc
  1.26      +10 -6     src/secure/lib/libtelnet/Makefile
  1.99      +2 -2      src/share/mk/bsd.lib.mk


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109291317.f8TDHt444684>