Date: Sat, 28 Jan 1995 19:59:54 +1100 From: Bruce Evans <bde@zeta.org.au> To: freebsd-current@freefall.cdrom.com, hackers@FreeBSD.org, rkw@dataplex.net Subject: Re: REMAKE WORLD Message-ID: <199501280859.TAA24423@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>1. The build procedure should run on any machine that meets certain minimal >specs. (Like maybe 1.1.5.1) Doing a build will in NO way affect the host >environment. Too hard for 1.1.5.1. Require 2.1. >2. If everything is up to date, a make will do nothing except scan the >tree. Nothing gets rebuilt unless it is out of date. I have parts of this for 2.0. For `make; make install; make; make install', the second make does nothing and the second install changes very few timestamps although it is reinstalls almost everything. This requires mainly not clobbering timestamps when installing unchanged files. Making the world is harder, and most of the dependencies on libc.a are bogus. Links are normally done to ${SHLIBDIR}/libc.so.2.0. These should be done to /usr/obj/lib/libc/libc.so.2.0, and the linkage is not supposed to depend on the library file, only on the library version. What is "nothing"? I'd like it to be nothing more than reading Makefiles and stat()ing files to get timestamps. No building temporary files. >4. The make procedure is not allowed to "touch" it's input tree. The source >tree can be read-only. The object tree can be read-only if up-to-date. >5. Multiple targets can co-exist at the same time. The entire process has a >floating root. No path is hard coded. This makes it hard to check out a single module outside of the source tree and build it. >6. Symbolic links are permitted. (This is a hard one because /../ does not >necessarily get you back where you were :-( ) This is a bit inconsistent with (4). I think requiring obj links in the source tree would be best. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199501280859.TAA24423>