Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jan 2015 15:47:28 +0000
From:      Matthew Seaman <matthew@freebsd.org>
To:        freebsd-questions@freebsd.org
Subject:   Re: Source Build Question
Message-ID:  <54C66190.5020101@freebsd.org>
In-Reply-To: <CAHzLAVFeeuBYiP%2BzK3zhModKpEzZeeNVwG6cjb3%2BYLGPa_5oCA@mail.gmail.com>
References:  <CAHzLAVFeeuBYiP%2BzK3zhModKpEzZeeNVwG6cjb3%2BYLGPa_5oCA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--x4XXeeaPV2mpXcFkPOKFUx52VEeevpWgh
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 01/26/15 15:11, Rick Miller wrote:
> Hi all,
>=20
> The output below is an excerpt from 2 source builds of the same source
> (releng/10.0) on 2 different hosts.  The obvious difference is "all" vs=

> "depend", but what exactly does this signify and does it impact the
> performance of a build?
>=20
> /*** Source build, Host 1 ***/
> =3D=3D=3D> lib/clang/libllvmanalysis (all)
> =3D=3D=3D> lib/clang/libllvmarchive (all)
> =3D=3D=3D> lib/clang/libllvmasmparser (all)
> =3D=3D=3D> lib/clang/libllvmasmprinter (all)
> =3D=3D=3D> lib/clang/libllvmbitreader (all)
> =3D=3D=3D> lib/clang/libllvmbitwriter (all)
>=20
> /*** Source build, Host 2 ***/
> =3D=3D=3D> lib/clang/libllvmanalysis (depend)
> =3D=3D=3D> lib/clang/libllvmarchive (depend)
> =3D=3D=3D> lib/clang/libllvmasmparser (depend)
> =3D=3D=3D> lib/clang/libllvmasmprinter (depend)
> =3D=3D=3D> lib/clang/libllvmbitreader (depend)
> =3D=3D=3D> lib/clang/libllvmbitwriter (depend)
>=20

If you're starting from a pristine, newly checked-out source tree in
/usr/src and an empty /usr/obj in both cases, then you should see the
'depend' target getting processed fairly early in the build.  It's
analysing each file of C code to find what headers each depends on.
Once this analysis has been done, and the results saved to '.depend'
files scattered around various directories under /usr/obj, then there's
no need to repeat that step unless any of the C code files are newer
(ie. more recently modified) than the generated .depend files.

On second and subsequent builds in the same source tree, you may not see
the depends being processed again.  A simple 'make clean' doesn't
(IIRC) remove the generated .depend files -- for that you need to run
'make cleandir ; make cleandir' (Yes, the same thing twice.) or
destroying and recreating /usr/obj some other way.  It's often faster to
have that as a separate partition, and then drop and recreate the
filesystem on it than to go around deleting all the files in that
directory tree.

	Cheers,

	Matthew




--x4XXeeaPV2mpXcFkPOKFUx52VEeevpWgh
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQJ8BAEBCgBmBQJUxmGQXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxOUYxNTRFQ0JGMTEyRTUwNTQ0RTNGMzAw
MDUxM0YxMEUwQTlFNEU3AAoJEABRPxDgqeTnsJsP/3L8XWWcht1faMjGmqmgM5CW
qytXnwMcngan109n7Oh3LD9hclnQ5tsGQHeLbNeq0IRh8gHYtlj4Xstuz4kPCbK5
m439bARw1BPoHaaIbSrJXwRUl70KXVpiOJ0y8KTJ5d/lmqkoKZ3R6gb7Lvl/+y/i
1rMaZDfkb6K9UbFfYa5pwGHK+5Lj6E+1f8YZjFb+/YfCZrdcROmRPj3PKeK6RGw1
LDoOvrWBglYK8qnxvQ/0Y2Bq4u5q/rjgYxC03DpDYHhiyjrZyPuAzeATMDVuLk3s
JIEMnVMzbGE27iMR/LI+Mz/+dVcOiKN+bPn180in/xrwhY2CzSdciUKKNnW6bJSc
Ze5/cdE0xAstWOvSaVEe9y16u5DQgqcACwbtvbEH/B9QPsFi/d513Xn/5kYTTDiG
oEvYQZt+/+KEwlnmvFsO7nmfr8Wn9HQ7pTChGWK3ianV6gx/VF8ASe+C2qrgkbCS
WcKZyRqFFAY6Vs9PTYTNoOjFV5ANwYszA7xoKMx0uAAJzBGhGC9UlNDNin7bkVoM
z2u4azJMhmzFX0kcA8QxGf6liHFGGtet94RanvOAc1KzeloJS4PlTCXZfCngN4lh
9MXCteI6pt1MHU3o9UMFMmpv/Lqk4fLHclz1unMyYKSJ86akqYQ7ckuXFxDR/CeY
+7xr8QFdPPiaZvEK9L++
=M43J
-----END PGP SIGNATURE-----

--x4XXeeaPV2mpXcFkPOKFUx52VEeevpWgh--



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