URL: <http://savannah.gnu.org/bugs/?30723>
Summary: implicit re-executing of subdirs breaks $(origin) with make-3.82 Project: make Submitted by: vapier Submitted on: Tue 10 Aug 2010 05:22:11 AM GMT Severity: 3 - Normal Item Group: None Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: None Operating System: None Fixed Release: None Triage Status: None _______________________________________________________ Details: upgrading from make-3.81 to make-3.82 seems to break the origin marking of variables and thus command line variable overriding. using glibc here as my example. to reproduce (warning: do not run as root): tar xf glibc-2.11.2.tar.bz2 cd glibc-2.11.2 mkdir build cd build ../configure --prefix=/usr -q sed -i '/^install_root/{h;s:.*:$(warning install_root=$(install_root) origin=$(origin install_root)):;H;x;H;x}' config.make make install-headers install_root=$PWD/foo the local config.make file has a default: install_root = but we're overriding it on the command line, so that should always be ignored glibc will basically do a `make -C ..`, and here you'll see the correct behavior: .../config.make:8: install_root=$PWD/foo origin=command line .../config.make:10: install_root=$PWD/foo origin=command line but the makefile logic in there depends on generated files. so make will generate those files, leave the subdir, and then re-enter it. upon re-entry though, we now see: .../config.make:8: install_root=$PWD/foo origin=environment .../config.make:10: install_root= origin=file obviously that is incorrect ;) _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?30723> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make