Date: Sun, 9 Jul 2000 18:49:29 +0100 From: Mark Ovens <mark@ukug.uk.freebsd.org> To: cjclark@alum.mit.edu Cc: David Banning <sky_tracker@yahoo.com>, questions@freebsd.org Subject: Re: question about makefiles Message-ID: <20000709184929.B233@parish> In-Reply-To: <20000624130808.B256@dialin-client.earthlink.net>; from cristjc@earthlink.net on Sat, Jun 24, 2000 at 01:08:09PM -0700 References: <3954FC28.65C7DD21@yahoo.com> <20000624192639.G233@parish> <20000624130808.B256@dialin-client.earthlink.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jun 24, 2000 at 01:08:09PM -0700, Crist J. Clark wrote:
> On Sat, Jun 24, 2000 at 07:26:39PM +0100, Mark Ovens wrote:
> > On Sat, Jun 24, 2000 at 02:21:28PM -0400, David Banning wrote:
> > >
> > > I have a general question about Makefiles.
> > >
> > > I see Makefile variables defined near the beginning of the file,
> > > however
> > > some variables used are seemingly not defined.
> > >
> > > a simple Makefile line says;
> > >
> > > @${PATCH} -s ${PREFIX}/Office51/bin/setup ${FILESDIR}/setup.patch
> > >
> > > PATCH, PREFIX and FILESDIR all are used, but not defined in Makefile.
> > >
> > > So where do they get defined?
> > >
> >
> > /etc/make.conf and, for ports, /usr/ports/Mk/bsd.port.mk
>
> Don't forget,
>
> /usr/share/mk/sys.mk
> /etc/defaults/make.conf
> /etc/make.conf.local
> /usr/share/mk/bsd.own.mk
> /etc/objformat
>
> How it works (I believe) is that /usr/share/mk/sys.mk is sourced
> initially for all make(1)s. If you look at that file, it is the
> one including,
>
> /etc/defaults/make.conf
> /etc/make.conf
> /etc/make.conf.local
> /usr/share/mk/bsd.own.mk
>
Sorry to drag up an old thread but, based on the info above, I created
/etc/make.conf.local to stick a load of personal settings in. On
running make(1) to build the docs I got:
parish# make DESTDIR=/usr/local/www/data
"/usr/share/mk/sys.mk", line 248: Error, original /etc/make.conf
should be moved to the /etc/defaults/ directory and
/etc/make.conf.local should be renamed to /etc/make.conf.
The lines in /usr/share/mk/sys.mk that produced this are:
.if exists(/etc/make.conf.local)
.error Error, original /etc/make.conf should be moved to the
/etc/defaults/ directory and /etc/make.conf.local should be
renamed to /etc/make.conf.
.include </etc/make.conf.local>
.endif
Looking in /usr/src/etc it appears that make.conf now works like
/etc/rc.conf, i.e. the base file (the one that shouldn't be edited) is
in /etc/defaults and your local mods go in /etc/{rc,make}.conf.
> And that last one in turn also sucks up,
>
> /etc/objformat
>
> Now for ports, you will notice that the Makefiles have .include's of
> their own which end up getting the files in /usr/ports/Mk as Mark
> pointed out.
>
> It all makes perfect sense... eventually.
> --
> Crist J. Clark cjclark@alum.mit.edu
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
--
If I buy a copy of WinDelete, and it doesn't delete Windows,
am I entitled to my money back?
________________________________________________________________
FreeBSD - The Power To Serve http://www.freebsd.org
My Webpage http://ukug.uk.freebsd.org/~mark/
mailto:mark@ukug.uk.freebsd.org http://www.radan.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000709184929.B233>
