From owner-cvs-src@FreeBSD.ORG Thu Mar 8 09:16:11 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9F2C116A401; Thu, 8 Mar 2007 09:16:11 +0000 (UTC) (envelope-from fjoe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8F20213C48D; Thu, 8 Mar 2007 09:16:11 +0000 (UTC) (envelope-from fjoe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l289GBoH040142; Thu, 8 Mar 2007 09:16:11 GMT (envelope-from fjoe@repoman.freebsd.org) Received: (from fjoe@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l289GB7N040141; Thu, 8 Mar 2007 09:16:11 GMT (envelope-from fjoe) Message-Id: <200703080916.l289GB7N040141@repoman.freebsd.org> From: Max Khon Date: Thu, 8 Mar 2007 09:16:11 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/usr.bin/make globals.h job.c job.h main.c make.1 make.h parse.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Mar 2007 09:16:11 -0000 fjoe 2007-03-08 09:16:11 UTC FreeBSD src repository Modified files: usr.bin/make globals.h job.c job.h main.c make.1 make.h parse.c Log: Implement "Remaking Makefiles" feature: After reading Makefile and all the files that are included using .include or .sinclude directives (source Makefiles) make considers each source Makefile as a target and tries to rebuild it. Both explicit and implicit rules are checked and all source Makefiles are updated if necessary. If any of the source Makefiles were rebuilt, make restarts from clean state. To prevent infinite loops the following source Makefile targets are ignored: - :: targets that have no prerequisites but have commands - ! targets - targets that have .PHONY or .EXEC attributes - targets without prerequisites and without commands When remaking a source Makefile options -t (touch target), -q (query mode), and -n (no exec) do not take effect, unless source Makefile is specified explicitly as a target in make command line. Additionally, system makefiles and .depend are not considered as a Makefiles that can be rebuilt. Reviewed by: harti Revision Changes Path 1.11 +1 -0 src/usr.bin/make/globals.h 1.126 +29 -20 src/usr.bin/make/job.c 1.46 +2 -0 src/usr.bin/make/job.h 1.161 +196 -6 src/usr.bin/make/main.c 1.102 +45 -0 src/usr.bin/make/make.1 1.35 +1 -0 src/usr.bin/make/make.h 1.112 +5 -1 src/usr.bin/make/parse.c