From owner-freebsd-current Fri Jul 25 01:24:35 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id BAA21771 for current-outgoing; Fri, 25 Jul 1997 01:24:35 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id BAA21766 for ; Fri, 25 Jul 1997 01:24:32 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.5/8.6.9) id SAA29154; Fri, 25 Jul 1997 18:21:05 +1000 Date: Fri, 25 Jul 1997 18:21:05 +1000 From: Bruce Evans Message-Id: <199707250821.SAA29154@godzilla.zeta.org.au> To: bde@zeta.org.au, msmith@atrad.adelaide.edu.au Subject: Re: make world failure Cc: current@FreeBSD.ORG, mrcpu@cdsnet.net Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >I'm not sure I follow you here. It is not possible to run 'make >depend' without generating the headers, as the depend will fail when >the headers aren't found. Running `make depend' is not a requirement for building sources, at least for the first build. Makefiles that require it are broken. Another bugfeature in libedit/Makefile is that `.depend' instead of `beforedepend' depends on the generated headers. .depend is a private target in bsd.dep.mk (if the default `depend' target is used), so it should not be used. OTOH, the default .depend target: depend: beforedepend .depend afterdepend _SUBDIR does not enforce the beforeness of `beforedepend' - it does not prevent `make -j2' from attempting to build beforedepend and .depend concurrently. Things work correctly when .depend depends on the generated headers. (I don't know how to enforce the required ordering. I tried to use a `beforeall' target in sh/Makefile to generate the headers before `all', but this failed for `make -j2'. `make' probably just needs a way to force building of a list of targets in list order.) >Given that .depend is written into the object directory, I can't see >anything wrong with the method that libedit uses. It's certainly a >sight less disgusting than the way that sh/Makefile does it. The method in sh/Makefile has the advantage of actually working. Bruce