Bug in make(1)?
marcel at xcllnt.net
Thu Apr 3 13:51:01 PST 2003
On Thu, Apr 03, 2003 at 11:23:00PM +0200, Pawel Jakub Dawidek wrote:
> Could someone please explain such make(1) behaviour:
Because you told make(1) to by virtue of including bsd.prog.mk
OBJS is derived from SRCS by replacing the extension. If SRCS
contains foo/bar.c, OBJS will contain foo/bar.o...
> IMHO make(1) should put .o files in current directory _and_ look for them
> there when producing an executable file. Right?
Wrong. It's the C compiler that puts files in the current
directory by default, unless otherwise told by command line
options. The only thing make(1) does is look for files you
tell it to look for and make them if they are out of date
(if told to do so). If you tell make to look for files the
compiler does not create you have a broken makefile.
It looks bsd.prog.mk does not handle subdirectories in a way
you want, which means you have to reorganize your sources in
order to use bsd.prog.mk or enhance the BSD includes to deal
with that (if appropriate).
Marcel Moolenaar USPA: A-39004 marcel at xcllnt.net
More information about the freebsd-hackers