Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Aug 1997 16:02:48 +0930
From:      Greg Lehey <grog@lemis.com>
To:        Wes Peters <softweyr@xmission.com>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Any reason not to remove /usr/obj/* ? (fwd)
Message-ID:  <19970826160248.15087@lemis.com>
In-Reply-To: <Pine.BSF.3.96.970825230501.21041A-100000@andrsn.stanford.edu>; from Wes Peters on Mon, Aug 25, 1997 at 11:08:23PM -0700
References:  <Pine.BSF.3.96.970825230501.21041A-100000@andrsn.stanford.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Aug 25, 1997 at 11:08:23PM -0700, Wes Peters wrote:
> The definitive answer from Wes Peters--he forgot to include
> freebsd-questions on the cc: line, so here it is.  I put his
> name in the "From" line.
>
> 	Annelise
>
> Doug White commented from on high:
>  % If you're not doing any 'make world's, then /usr/obj is destroyable.
>
> Annelise Anderson writes:
>> I would like some clarification on this.  There seem to be about 150
>> megabytes in my /usr/obj.  I thought this was created as an intermediate
>> step in the make world process.  Would leaving it there shorten the time
>> on a subsequent make world, or does everything in any case get remade?
>> If so, the only purpose of keeping these around is as a "spaceholder"
>> for a future made world.
>
> As the name implies, /usr/obj is a place where the intermediate object
> files that make up the commands, utilities, etc. are placed.  If you
> change 10% of the system source between 'make world' commands, you only
> need to regenerate 10% of the object files, the rest remain untouched.
> If you remove /usr/obj, you will have to remake 100% of the object
> files, at a cost of extra computing cycles, disk I/Os, etc.
>
> In short: if you've got the disk space and are going to be rebuilding
> the world, leave 'em.  If you need the disk space, grab it.  If you're
> undecided, buy a Jaz drive and a cartrige for /usr/obj.  ;^)

That depends on how you make your world.  Normally, the first thing
that 'make world' does is to remove all the objects and start afresh.
Check /usr/src/Makefile:

# Make command line options:
#	-DCLOBBER will remove /usr/include
#	-DMAKE_EBONES to build eBones (KerberosIV)
#	-DALLLANG to build documentation for all languages
#	  (where available -- see share/doc/Makefile)
#
#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
#	-DNOCLEAN do not clean at all
#	-DNOCRYPT will prevent building of crypt versions
#	-DNOLKM do not build loadable kernel modules
#	-DNOOBJDIR do not run ``${MAKE} obj''
#	-DNOPROFILE do not build profiled libraries
#	-DNOSECURE do not go into secure subdir
#	-DNOGAMES do not go into games subdir
#	-DNOSHARE do not go into share subdir
#	-DNOINFO do not make or install info files
#	-DNOLIBC_R do not build libc_r.
#	LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list

#
# The intended user-driven targets are:
# buildworld  - rebuild *everything*, including glue to help do upgrades
# installworld- install everything built by "buildworld"
# world       - buildworld + installworld
# update      - convenient way to update your source tree (eg: sup/cvs)
# most        - build user commands, no libraries or include files
# installmost - install user commands, no libraries or include files
#
# Standard targets (not defined here) are documented in the makefiles in
# /usr/share/mk.  These include:
#		obj depend all install clean cleandepend cleanobj

Greg



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