all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Bruno Haible <bruno@clisp.org>
To: David De La Harpe Golden <david@harpegolden.net>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
Subject: Re: convert regex.c, strftime.c mktime.c to standard C
Date: Sun, 21 Nov 2010 01:14:27 +0100	[thread overview]
Message-ID: <201011210114.28690.bruno@clisp.org> (raw)
In-Reply-To: <4CE80ACE.9070502@harpegolden.net>

David De La Harpe Golden wrote:
> > Emacs uses an Autoconf configure.in.
> 
> Not on all platforms, no. e.g. w32 emacs doesn't.

When you have a single platform like this, which is not built by executing
'configure', the maintainer has to keep lists of preprocessor defines or
a prefabricated config.h up-to-date, manually. This is tedious, and this
would be the even more tedious when you start using gnulib, to the point
where it becomes no more manageable.

For libiconv and gettext, at the moment when the packages started to use
gnulib, I had to change the build instructions for the Windows port to
recommend mingw + configure (instead of dedicated config.h and Makefiles
for that platform).

> > there are 3 ways to build binaries for mingw:
> >    - using MSYS,
> >    - from Cygwin,
> >    - cross-compiling from Unix.
> 
> You don't need MSYS to build w32 binaries _with_ the mingw toolchain

Yes, but the point is to use a build environment that can execute configure
scripts.

With just a mingw-gcc, mingw-binutils, and 'make', you can build Windows
binaries, but you have to update a config.h.w32 each time something in the
autoconfiguration changes, and you have to update the Makefile.in -> Makefile
conversion facility each time a new AC_SUBSTed variable used. This
maintenance burden goes away if you use a build environment that can execute
configure scripts.

gnulib uses a *lot* of autoconfiguration, and the set of AC_SUBSTed variables
changes every week. That

> (cygwin emacs is a also different matter, that's most successfully built 
> with cygwin proper of course...)

Sure, that's a different beast. I'm talking about using Cygwin as an
environment for building mingw binaries.

> In fact, the MSYS variants of various command line tools have odd 
> handling of some things (sort of like a cut-down cygwin, but compatible 
> with neither modern cygwin nor native w32 conventions) compared to the 
> more w32-native-ised gnuwin32 tools, say.

Yes. For this reason, I'd recommend Cygwin over MSYS, as an environment
for building mingw binaries.

> . w32 emacs
>    exists
>    native w32 port
>    usually built with mingw (remember, used to build with MSVC++ too)
>    does not use autoconf

What I'm suggesting, in order to be able to use more of autoconf, automake,
and gnulib, is:

  . w32 emacs
    native w32 port
    usually built with mingw (semi-cross from Cygwin, or cross from a glibc
    system)
    uses autoconf

About MSVC++ builds: With recent (unreleased) Autoconf, the 'compile' script
can work directly with the MSVC 'cl' command. So, soon, you will also be
able to build native Windows binaries of programs with MSVC by using the
regular autoconf generated configure script.

Bruno



  reply	other threads:[~2010-11-21  0:14 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-15  6:03 convert regex.c, strftime.c mktime.c to standard C Dan Nicolaescu
2010-11-15 17:19 ` Stefan Monnier
2010-11-15 22:01 ` Richard Stallman
2010-11-16 15:45   ` Dan Nicolaescu
2010-11-17 19:29     ` Richard Stallman
2010-11-18  4:21       ` Dan Nicolaescu
2010-11-19  6:16         ` Richard Stallman
2010-11-19  7:39           ` Eli Zaretskii
2010-11-19 16:58             ` Chong Yidong
2010-11-19 17:10               ` Sam Steingold
2010-11-19 17:15               ` Lars Magne Ingebrigtsen
2010-11-19 17:52                 ` Eli Zaretskii
2010-11-19 18:02                   ` Lars Magne Ingebrigtsen
2010-11-19 18:10                     ` Eli Zaretskii
2010-11-19 18:54                       ` Lars Magne Ingebrigtsen
2010-11-19 19:05                         ` Lars Magne Ingebrigtsen
2010-11-19 19:23                           ` Lars Magne Ingebrigtsen
2010-11-19 18:11                     ` Sven Joachim
2010-11-19 18:10                 ` Andreas Schwab
2010-11-20 11:57             ` Bruno Haible
2010-11-20 12:35               ` Eli Zaretskii
2010-11-20 15:43                 ` Bruno Haible
2010-11-20 17:19                   ` Eli Zaretskii
2010-11-21  0:37                     ` Bruno Haible
2010-11-20 17:52                   ` David De La Harpe Golden
2010-11-21  0:14                     ` Bruno Haible [this message]
2010-11-20 11:00   ` Bruno Haible
2010-11-21  7:42     ` Richard Stallman
2010-11-21 17:25       ` Lars Magne Ingebrigtsen
2010-11-22 16:35         ` Richard Stallman
2010-11-22 16:45           ` Lars Magne Ingebrigtsen
2010-11-22 16:59             ` Lennart Borgman
2010-11-22 19:38               ` Islands and streams [Was: convert regex.c, .... to standard C] Alan Mackenzie
2010-11-23  1:20                 ` David De La Harpe Golden
2010-11-23  1:26                   ` Lennart Borgman
2010-11-23  4:48                 ` Stefan Monnier
2010-11-23 18:26                   ` Eli Zaretskii
2010-11-23 19:01                   ` Lennart Borgman
2010-11-23 20:08                     ` Stefan Monnier
2010-11-23  9:21                 ` Islands and streams David Kastrup
2010-11-23 22:23                   ` Alan Mackenzie
2010-11-23 22:42                     ` Lennart Borgman
2010-11-24 17:13                 ` Islands and streams [Was: convert regex.c, .... to standard C] Chong Yidong
2010-11-22 19:39             ` convert regex.c, strftime.c mktime.c to standard C Stefan Monnier
2010-11-23 17:19             ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201011210114.28690.bruno@clisp.org \
    --to=bruno@clisp.org \
    --cc=david@harpegolden.net \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.