gmake/make dependency problem

Giorgos Keramidas keramida at freebsd.org
Mon Sep 19 15:36:08 PDT 2005


On 2005-09-19 19:00, Harlan Stenn <stenn at ntp.isc.org> wrote:
> I'm confused.
>
> I believe that:
>
>  a: b
>
> means that 'a' depends on 'b', and if 'b' has a later timestamp than 'a'
> then the rule will be invoked to produce a new 'a' from  whatever is
> done with 'b'.
>
> In this case, 'a' is ntpd-opts.c, and 'b' is ntpd-opts.def.
>
> As can be seen on your system and mine:
>
> > It seems that ntpd-opts.c has a timestamp 1 minute after ntpd-opts.def,
>
> which means it is up-to-date with respect to its dependencies.

True.  I was confused when I posted my previous reply.  With the tarball
you posted, I can run make(1) with -ddm and see what you mean:

  1 % flame:/home/keramida/ws/ntp/obj/ntpq$ make -ddm
  2 % Caching ....done
  3 % Caching /usr/share/mk...done
  4 % expanding "sys.mk".../usr/share/mk/sys.mk
  5 % Searching for /etc/make.conf...Looking for "/etc/make.conf"...Caching 18:38:48 Sep 12, 2005 for /etc/make.conf
  6 % Searching for /etc/make.conf...Looking for "/etc/make.conf"...got it (in mtime cache)
  7 % Searching for bsd.compat.mk...failed.
  8 % Searching for bsd.compat.mk...failed.
  9 % Searching for bsd.compat.mk.../usr/share/mk...here...returning /usr/share/mk/bsd.compat.mk
 10 % Searching for bsd.cpu.mk...failed.
 11 % Searching for bsd.cpu.mk...failed.
 12 % Searching for bsd.cpu.mk.../usr/share/mk...here...returning /usr/share/mk/bsd.cpu.mk
 13 % Searching for BSDmakefile...failed.
 14 % Searching for BSDmakefile.../usr/share/mk...failed.
 15 % Searching for makefile...failed.
 16 % Searching for makefile.../usr/share/mk...failed.
 17 % Searching for ./.deps/ntpq.Po...failed. Trying subdirectories...failed. Looking for "./.deps/ntpq.Po"...Caching 01:09:41 Sep 20, 2005 for ./.deps/ntpq.Po
 18 % Searching for ./.deps/ntpq-opts.Po...failed. Trying subdirectories...failed. Looking for "./.deps/ntpq-opts.Po"...Caching 01:09:42 Sep 20, 2005 for ./.deps/ntpq-opts.Po
 19 % Searching for ./.deps/ntpq-subs.Po...failed. Trying subdirectories...failed. Looking for "./.deps/ntpq-subs.Po"...Caching 01:09:41 Sep 20, 2005 for ./.deps/ntpq-subs.Po
 20 % Searching for .depend...failed.
 21 % Searching for .depend.../usr/share/mk...failed.
 22 % Caching ../../ntp-4.2.0b/ntpq...done
 23 % Searching for ntpq-opts.def.c...../../ntp-4.2.0b/ntpq...failed.
 24 % Searching for ntpq-opts.def...failed.
 25 % Examining ntpq-opts.def...Searching for ntpq-opts.def...../../ntp-4.2.0b/ntpq...here...returning ../../ntp-4.2.0b/ntpq/ntpq-opts.def
 26 % modified 11:02:16 Aug 30, 2005...up-to-date.
 27 % Examining ntpq-opts.c...non-existent...modified before source...out-of-date.
 28 % cd ../../ntp-4.2.0b/ntpq && autogen ntpq-opts.def
 29 % autogen: not found
 30 % *** Error code 127
 31 %
 32 % Stop in /home/keramida/ws/ntp/obj/ntpq.
 33 % flame:/home/keramida/ws/ntp/obj/ntpq$

At line 27 I see that ntpq-opts.c isn't looked up in VPATH.  This may be
a make(1) bug, sorry for the initial confusion.

I've Cc'ed Harti who's been working on make(1) lately.

- Giorgos



More information about the freebsd-questions mailing list