unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* WINDRES
@ 2013-04-01  9:37 Eli Zaretskii
  2013-04-01 10:00 ` WINDRES Daniel Colascione
  2013-04-01 10:30 ` WINDRES Andreas Schwab
  0 siblings, 2 replies; 9+ messages in thread
From: Eli Zaretskii @ 2013-04-01  9:37 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: emacs-devel

The windres tool is looked up by the configure.ac using
AC_CHECK_TOOL.  Shouldn't that be AC_CHECK_TARGET_TOOL instead, to
better support cross-compilation?



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01  9:37 WINDRES Eli Zaretskii
@ 2013-04-01 10:00 ` Daniel Colascione
  2013-04-01 10:36   ` WINDRES Eli Zaretskii
  2013-04-01 10:30 ` WINDRES Andreas Schwab
  1 sibling, 1 reply; 9+ messages in thread
From: Daniel Colascione @ 2013-04-01 10:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 426 bytes --]

On 4/1/13 10:37 AM, Eli Zaretskii wrote:
> The windres tool is looked up by the configure.ac using
> AC_CHECK_TOOL.  Shouldn't that be AC_CHECK_TARGET_TOOL instead, to
> better support cross-compilation?
> 

That would be a fine change, but I haven't tested cross-compilation
of the cygw32 build at all, I'm not sure whether it works at all. Is
there any particular reason you're wondering about windres right now?


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 235 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01  9:37 WINDRES Eli Zaretskii
  2013-04-01 10:00 ` WINDRES Daniel Colascione
@ 2013-04-01 10:30 ` Andreas Schwab
  2013-04-01 11:53   ` WINDRES Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: Andreas Schwab @ 2013-04-01 10:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Daniel Colascione, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> The windres tool is looked up by the configure.ac using
> AC_CHECK_TOOL.  Shouldn't that be AC_CHECK_TARGET_TOOL instead,

No, emacs is not a (cross-)compiler.  There is no target, only a build
and a host.

> to better support cross-compilation?

Why do you think AC_CHECK_TOOL doesn't support cross-compilation?

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01 10:00 ` WINDRES Daniel Colascione
@ 2013-04-01 10:36   ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2013-04-01 10:36 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: emacs-devel

> Date: Mon, 01 Apr 2013 11:00:05 +0100
> From: Daniel Colascione <dancol@dancol.org>
> CC: emacs-devel@gnu.org
> 
> On 4/1/13 10:37 AM, Eli Zaretskii wrote:
> > The windres tool is looked up by the configure.ac using
> > AC_CHECK_TOOL.  Shouldn't that be AC_CHECK_TARGET_TOOL instead, to
> > better support cross-compilation?
> 
> That would be a fine change, but I haven't tested cross-compilation
> of the cygw32 build at all, I'm not sure whether it works at all.

Even if cross-compilation currently doesn't work (and I'm not sure
either way), I think there's no harm removing one obstacle on its way.

> Is there any particular reason you're wondering about windres right
> now?

I'm modifying the Emacs Posix configury to be able to produce the
MinGW build.  As a side effect, I'm reading the docs of every autoconf
macro that I didn't use before (which is quite a lot ;-), to make sure
I understand what I'm doing.  In this case, I was surprised to see
AC_CHECK_TOOL instead of AC_CHECK_PROG, so I looked it up.

I will wait for autoconf experts here to chime in, before making the
change to use AC_CHECK_TARGET_TOOL on the trunk.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01 10:30 ` WINDRES Andreas Schwab
@ 2013-04-01 11:53   ` Eli Zaretskii
  2013-04-01 12:54     ` WINDRES Andreas Schwab
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2013-04-01 11:53 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: dancol, emacs-devel

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: Daniel Colascione <dancol@dancol.org>,  emacs-devel@gnu.org
> Date: Mon, 01 Apr 2013 12:30:33 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > The windres tool is looked up by the configure.ac using
> > AC_CHECK_TOOL.  Shouldn't that be AC_CHECK_TARGET_TOOL instead,
> 
> No, emacs is not a (cross-)compiler.  There is no target, only a build
> and a host.

Then maybe I don't understand what is "host" in this context.  See
below.

> > to better support cross-compilation?
> 
> Why do you think AC_CHECK_TOOL doesn't support cross-compilation?

I'm probably just confused.

The issue is how to find 'windres', which is a Binutils substitute for
the Windows resource compiler.  Its output is a pe-i386 object file,
which then gets linked into the Emacs binary that is being produced
for running on MS-Windows.  Autoconf.info says:

   -- Macro: AC_CHECK_TARGET_TOOL (VARIABLE, PROG-TO-CHECK-FOR,
	    [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
       Like `AC_CHECK_PROG', but first looks for PROG-TO-CHECK-FOR with a
       prefix of the target type as determined by `AC_CANONICAL_TARGET',
       followed by a dash (*note Canonicalizing::).  If the tool cannot
       be found with a prefix, and if the build and target types are
       equal, then it is also searched for without a prefix.

       As noted in *note Specifying Target Triplets::, the target is
       rarely specified, because most of the time it is the same as the
       host: it is the type of system for which any compiler tool in the
       package produces code.  What this macro looks for is, for example,
       _a tool (assembler, linker, etc.) that the compiler driver (`gcc'
       for the GNU C Compiler) uses to produce objects, archives or
       executables_.

So, if an Emacs that targets Windows was being built on, say,
GNU/Linux, wouldn't it mean we wanted the configure script to find
'i686-pc-mingw32-windres' rather than 'windres'?  IOW, isn't 'windres'
a kind of compiler or assembler?  And if so, what is 'i686-pc-mingw32'
here: "target" or "host"?

TIA



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01 11:53   ` WINDRES Eli Zaretskii
@ 2013-04-01 12:54     ` Andreas Schwab
  2013-04-01 13:36       ` WINDRES Eli Zaretskii
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Schwab @ 2013-04-01 12:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: dancol, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> wouldn't it mean we wanted the configure script to find
> 'i686-pc-mingw32-windres' rather than 'windres'? 

Which it does.

> And if so, what is 'i686-pc-mingw32' here: "target" or "host"?

There is no target.  You build on build and run on host.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01 12:54     ` WINDRES Andreas Schwab
@ 2013-04-01 13:36       ` Eli Zaretskii
  2013-04-01 15:18         ` WINDRES Dmitry Antipov
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2013-04-01 13:36 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: dancol, emacs-devel

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: dancol@dancol.org,  emacs-devel@gnu.org
> Date: Mon, 01 Apr 2013 14:54:15 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > wouldn't it mean we wanted the configure script to find
> > 'i686-pc-mingw32-windres' rather than 'windres'? 
> 
> Which it does.
> 
> > And if so, what is 'i686-pc-mingw32' here: "target" or "host"?
> 
> There is no target.  You build on build and run on host.

Thanks, in that case AC_CHECK_TOOL is exactly right.

So "target" is for when I build on build, and run on host to produce
code for target?



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01 13:36       ` WINDRES Eli Zaretskii
@ 2013-04-01 15:18         ` Dmitry Antipov
  2013-04-01 16:23           ` WINDRES Eli Zaretskii
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Antipov @ 2013-04-01 15:18 UTC (permalink / raw)
  To: emacs-devel

On 04/01/2013 05:36 PM, Eli Zaretskii wrote:

> So "target" is for when I build on build, and run on host to produce
> code for target?

IIUC "target" is meaningful for compilers only; "host" is the system
where the binary is intended to run, and "build" is the system where
the binary is compiled. Cross-compilation always assumes that at least
host != build; all of the host/build/target are different only if
you're cross-compiling the cross-compiler ("canadian cross").

Dmitry




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: WINDRES
  2013-04-01 15:18         ` WINDRES Dmitry Antipov
@ 2013-04-01 16:23           ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2013-04-01 16:23 UTC (permalink / raw)
  To: Dmitry Antipov; +Cc: emacs-devel

> Date: Mon, 01 Apr 2013 19:18:46 +0400
> From: Dmitry Antipov <dmantipov@yandex.ru>
> 
> On 04/01/2013 05:36 PM, Eli Zaretskii wrote:
> 
> > So "target" is for when I build on build, and run on host to produce
> > code for target?
> 
> IIUC "target" is meaningful for compilers only; "host" is the system
> where the binary is intended to run, and "build" is the system where
> the binary is compiled. Cross-compilation always assumes that at least
> host != build; all of the host/build/target are different only if
> you're cross-compiling the cross-compiler ("canadian cross").

Thanks.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-04-01 16:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-01  9:37 WINDRES Eli Zaretskii
2013-04-01 10:00 ` WINDRES Daniel Colascione
2013-04-01 10:36   ` WINDRES Eli Zaretskii
2013-04-01 10:30 ` WINDRES Andreas Schwab
2013-04-01 11:53   ` WINDRES Eli Zaretskii
2013-04-01 12:54     ` WINDRES Andreas Schwab
2013-04-01 13:36       ` WINDRES Eli Zaretskii
2013-04-01 15:18         ` WINDRES Dmitry Antipov
2013-04-01 16:23           ` WINDRES Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).