From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Missing dependencies in lib-src/Makefile.in Date: Sat, 06 Apr 2013 15:34:08 +0300 Message-ID: <8338v3et33.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1365278489 27830 80.91.229.3 (6 Apr 2013 20:01:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 6 Apr 2013 20:01:29 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 06 22:01:31 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UOZI9-0007UX-BT for ged-emacs-devel@m.gmane.org; Sat, 06 Apr 2013 22:00:49 +0200 Original-Received: from localhost ([::1]:59181 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOSK3-00006j-0H for ged-emacs-devel@m.gmane.org; Sat, 06 Apr 2013 08:34:19 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:54098) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOSJy-0008TV-2N for emacs-devel@gnu.org; Sat, 06 Apr 2013 08:34:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UOSJv-0000u0-Oo for emacs-devel@gnu.org; Sat, 06 Apr 2013 08:34:13 -0400 Original-Received: from mtaout21.012.net.il ([80.179.55.169]:33208) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOSJv-0000th-Gg for emacs-devel@gnu.org; Sat, 06 Apr 2013 08:34:11 -0400 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0MKU00D002WHSX00@a-mtaout21.012.net.il> for emacs-devel@gnu.org; Sat, 06 Apr 2013 15:34:04 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MKU00DJW2WSID80@a-mtaout21.012.net.il> for emacs-devel@gnu.org; Sat, 06 Apr 2013 15:34:04 +0300 (IDT) X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158707 Archived-At: Since lib-src/Makefile.in doesn't use the automatic dependencies, all the prerequisite header files should be spelled out explicitly, I think, or else we will have subtle bugs. But I don't see the required dependencies in some cases. Specifically, many sources include standard headers that are replaced by gnulib in ../lib. However, there are no prerequisite ../lib/*.h files in lib-src/Makefile.in, with a single exception of min-max.h for pop.o (ebrowse.c also includes min-max.h, but does not have it as a prerequisite). In most cases, we should probably be safe, because all the executables are produced by compiling their *.c files, and have ../lib/libgnu.a as their prerequisite. So any change in lib is likely to trigger recompilation because libgnu.a will be rebuilt. But there are exceptions: pop.o and regex.o. AFAICS, they will not be recompiled if some of the headers in lib/ are modified, because none of their prerequisites depend directly or indirectly on gnulib headers. Am I missing something? If not, should this be fixed?