From unknown Wed Jun 18 23:15:46 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#11578 <11578@debbugs.gnu.org> To: bug#11578 <11578@debbugs.gnu.org> Subject: Status: 24.1.50; Can't 'make install' on Windows Reply-To: bug#11578 <11578@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:15:46 +0000 retitle 11578 24.1.50; Can't 'make install' on Windows reassign 11578 emacs submitter 11578 Kazuhiro Ito severity 11578 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Tue May 29 10:05:58 2012 Received: (at submit) by debbugs.gnu.org; 29 May 2012 14:05:58 +0000 Received: from localhost ([127.0.0.1]:48402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SZN3e-0005SU-G1 for submit@debbugs.gnu.org; Tue, 29 May 2012 10:05:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42471) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SZN3J-0005Rz-E8 for submit@debbugs.gnu.org; Tue, 29 May 2012 10:05:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SZN1m-00005I-Pf for submit@debbugs.gnu.org; Tue, 29 May 2012 10:04:08 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:44737) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SZN1m-00005D-MH for submit@debbugs.gnu.org; Tue, 29 May 2012 10:04:02 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SZN1h-0002yC-9a for bug-gnu-emacs@gnu.org; Tue, 29 May 2012 10:04:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SZN1c-0008SC-0i for bug-gnu-emacs@gnu.org; Tue, 29 May 2012 10:03:56 -0400 Received: from msa103.auone-net.jp ([61.117.18.163]:36094) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SZN1b-0008PK-LE for bug-gnu-emacs@gnu.org; Tue, 29 May 2012 10:03:51 -0400 Received: from GUNGNIR.med.osaka-cu.ac.jp (121-87-85-189f1.nar1.eonet.ne.jp [121.87.85.189]) by msa103.auone-net.jp (au one net msa) with ESMTP id 03EA134803A; Tue, 29 May 2012 23:03:41 +0900 (JST) Date: Tue, 29 May 2012 23:03:37 +0900 From: Kazuhiro Ito User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 EasyPG/1.0.0 Emacs/24.1.50 (i386-mingw-nt6.1.7601) MULE/6.0 (HANACHIRUSATO) To: bug-gnu-emacs@gnu.org Subject: 24.1.50; Can't 'make install' on Windows MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Message-Id: <20120529140342.03EA134803A@msa103.auone-net.jp> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) When I run configure.bat with --prefix option, 'make install' with MinGW fails. > make: Circular D:/bin/emacs_trunk <- D:/bin/emacs_trunk dependency dropped. > make -C ../lib-src install > [Please ignore a syntax error on the next line - it is intentional] > /bin/sh: -c: line 0: unexpected EOF while looking for matching `"' > /bin/sh: -c: line 1: syntax error: unexpected end of file > make[1]: Entering directory `/f/build/emacs-trunk/lib-src' > mkdir "D:/bin/emacs_trunk /bin" > mkdir: cannot create directory `D:/bin/emacs_trunk /bin': No such file or directory > make[1]: [install] Error 1 (ignored) > cp -f oo-spd/i386/etags.exe D:/bin/emacs_trunk /bin > cp: omitting directory `D:/bin/emacs_trunk' > make[1]: *** [install] Error 1 > make[1]: Leaving directory `/f/build/emacs-trunk/lib-src' > make: *** [install-other-dirs-gmake] Error 2 In the above, 'D:/bin/emacs_trunk' is argument of --prefix option. It seems that makefile.w32-in does not assume INSTALL_DIR has trailing space. -- Kazuhiro Ito From debbugs-submit-bounces@debbugs.gnu.org Tue May 29 11:59:14 2012 Received: (at 11578-done) by debbugs.gnu.org; 29 May 2012 15:59:14 +0000 Received: from localhost ([127.0.0.1]:48579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SZOpF-00085W-Hx for submit@debbugs.gnu.org; Tue, 29 May 2012 11:59:14 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:62984) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SZOou-00084k-RX for 11578-done@debbugs.gnu.org; Tue, 29 May 2012 11:59:12 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0M4S00200K4JOO00@a-mtaout20.012.net.il> for 11578-done@debbugs.gnu.org; Tue, 29 May 2012 18:57:22 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M4S002EDKBM5E80@a-mtaout20.012.net.il>; Tue, 29 May 2012 18:57:22 +0300 (IDT) Date: Tue, 29 May 2012 18:57:29 +0300 From: Eli Zaretskii Subject: Re: bug#11578: 24.1.50; Can't 'make install' on Windows In-reply-to: <20120529140342.03EA134803A@msa103.auone-net.jp> X-012-Sender: halo1@inter.net.il To: Kazuhiro Ito Message-id: <837gvv2d5i.fsf@gnu.org> References: <20120529140342.03EA134803A@msa103.auone-net.jp> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11578-done Cc: 11578-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Date: Tue, 29 May 2012 23:03:37 +0900 > From: Kazuhiro Ito > > When I run configure.bat with --prefix option, 'make install' with > MinGW fails. > > > make: Circular D:/bin/emacs_trunk <- D:/bin/emacs_trunk dependency dropped. > > make -C ../lib-src install > > [Please ignore a syntax error on the next line - it is intentional] > > /bin/sh: -c: line 0: unexpected EOF while looking for matching `"' > > /bin/sh: -c: line 1: syntax error: unexpected end of file > > make[1]: Entering directory `/f/build/emacs-trunk/lib-src' > > mkdir "D:/bin/emacs_trunk /bin" > > mkdir: cannot create directory `D:/bin/emacs_trunk /bin': No such file or directory > > make[1]: [install] Error 1 (ignored) > > cp -f oo-spd/i386/etags.exe D:/bin/emacs_trunk /bin > > cp: omitting directory `D:/bin/emacs_trunk' > > make[1]: *** [install] Error 1 > > make[1]: Leaving directory `/f/build/emacs-trunk/lib-src' > > make: *** [install-other-dirs-gmake] Error 2 This was reported to me yesterday off-list, and I fixed it on the emacs-24 branch in revision 108019. The patch is below, if you cannot wait for the next merge from emacs-24 to the trunk. > In the above, 'D:/bin/emacs_trunk' is argument of --prefix option. It > seems that makefile.w32-in does not assume INSTALL_DIR has trailing > space. No, the problem is a subtlety of the cmd.exe "echo" command. If you say echo foo=bar >>file the blank between "bar" and the redirection symbol winds up in the file. The fix for that, which doesn't re-introduce a different, but related bug fixed in r108005, is somewhat tricky, as you see below. A workaround is not to use --prefix at configure time and instead set INSTALL_DIR at "make install" time, like this: make install INSTALL_DIR=d:/bin/emacs_trunk (If you are installing in the source tree, you need neither --prefix nor INSTALL_DIR= at "make install" time, since that's the default INSTALL_DIR anyway.) === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-05-18 08:21:19 +0000 +++ nt/ChangeLog 2012-05-28 16:17:35 +0000 @@ -1,3 +1,12 @@ +2012-05-28 Eli Zaretskii + + * configure.bat (genmakefiles): Move the redirection away from the + end of the command, to avoid excess whitespace at the end of Make + variables created at configure time, and also avoid things like + "FOO1>>config.settings", where "1" gets interpreted as the file + descriptor and eaten up. This fixes breakage introduced by the + last change, without reintroducing the bug fixed by that change. + 2012-05-18 Eli Zaretskii * configure.bat: Ensure a space between %var% expansion and === modified file 'nt/configure.bat' --- nt/configure.bat 2012-05-18 08:21:19 +0000 +++ nt/configure.bat 2012-05-28 16:17:35 +0000 @@ -721,29 +721,36 @@ if %COMPILER% == gcc set MAKECMD=gmake if %COMPILER% == cl set MAKECMD=nmake rem Pass on chosen settings to makefiles. -rem NB. Be very careful to not have a space before redirection symbols -rem except when there is a preceding digit, when a space is required. rem +rem The weird place we put the redirection is to make sure no extra +rem whitespace winds up at the end of the Make variables, since some +rem variables, e.g. INSTALL_DIR, cannot stand that. Yes, echo will +rem write the blanks between the end of command arguments and the +rem redirection symbol to the file. OTOH, we cannot put the +rem redirection immediately after the last character of the command, +rem because environment variable expansion can yield a digit there, +rem which will then be misinterpreted as the file descriptor to +rem redirect... echo # Start of settings from configure.bat >config.settings -echo COMPILER=%COMPILER% >>config.settings -if not "(%mf%)" == "()" echo MCPU_FLAG=%mf% >>config.settings -if not "(%dbginfo%)" == "()" echo DEBUG_INFO=%dbginfo% >>config.settings -if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings -if (%noopt%) == (Y) echo NOOPT=1 >>config.settings -if (%enablechecking%) == (Y) echo ENABLECHECKS=1 >>config.settings -if (%profile%) == (Y) echo PROFILE=1 >>config.settings -if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings -if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix% >>config.settings -if not "(%distfiles%)" == "()" echo DIST_FILES=%distfiles% >>config.settings +>>config.settings echo COMPILER=%COMPILER% +if not "(%mf%)" == "()" >>config.settings echo MCPU_FLAG=%mf% +if not "(%dbginfo%)" == "()" >>config.settings echo DEBUG_INFO=%dbginfo% +if (%nodebug%) == (Y) >>config.settings echo NODEBUG=1 +if (%noopt%) == (Y) >>config.settings echo NOOPT=1 +if (%enablechecking%) == (Y) >>config.settings echo ENABLECHECKS=1 +if (%profile%) == (Y) >>config.settings echo PROFILE=1 +if (%nocygwin%) == (Y) >>config.settings echo NOCYGWIN=1 +if not "(%prefix%)" == "()" >>config.settings echo INSTALL_DIR=%prefix% +if not "(%distfiles%)" == "()" >>config.settings echo DIST_FILES=%distfiles% rem We go thru docflags because usercflags could be "-DFOO=bar" -something rem and the if command cannot cope with this for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y -if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags% >>config.settings -if (%docflags%)==(Y) echo ESC_USER_CFLAGS=%escusercflags% >>config.settings +if (%docflags%)==(Y) >>config.settings echo USER_CFLAGS=%usercflags% +if (%docflags%)==(Y) >>config.settings echo ESC_USER_CFLAGS=%escusercflags% for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y -if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags% >>config.settings +if (%doldflags%)==(Y) >>config.settings echo USER_LDFLAGS=%userldflags% for %%v in (%extrauserlibs%) do if not (%%v)==() set doextralibs=Y -if (%doextralibs%)==(Y) echo USER_LIBS=%extrauserlibs% >>config.settings +if (%doextralibs%)==(Y) >>config.settings echo USER_LIBS=%extrauserlibs% echo # End of settings from configure.bat>>config.settings echo. >>config.settings From unknown Wed Jun 18 23:15:46 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 27 Jun 2012 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator