Re: ASPELL aspell-0.60.8.1 compilation failure on MSYS2 + MINGW64

Kevin Atkinson <[email protected]> Thu, 15 May 2025 12:35:22 -0400
Newsgroups gmane.comp.gnu.aspell.devel
Message-ID <20250515123522.7bf6255a@amd>
Hi Vincent,

On Thu, 15 May 2025 07:46:42 +0000
Vincent Bela=C3=AFche <[email protected]> wrote:

> After investigating why so, I found that although I had installed the
> French dictionary properly the =C2=AB aspell dict =C2=BB command made emp=
ty
> output. After compiling from sources I had the same problem. Looking
> into this, I found that the dictionary path was hard coded in some
> gen/dirs.h generated header as an MSYS2 path that cannot be
> understood by the aspell native Windows application. When you compile
> on MINGW64 with no --prefix option passed to configure you get this
> into gen/dirs.h :
>=20
> #define PREFIX "/mingw64"
>=20
> This problem can be easily circumvented by passing an absolute
> MSWindows path to configure, like this :
>=20
> ./configure '--prefix=3Dc:/msys64/mingw64'
>=20
> as MSYS unerstands both native mixed path (mixed =3D just replacing \
> by /) and MSYS paths.

Thanks for the tip.

> However, this could be automated by having somewhere in the
> m4/lib-link.m4 or m4/lib-prefix.m4 the appropriate autotools M4 macro
> for calling (cygpath -m PREFIX) under the hood when the target is
> MINGW. This would certainly greatly help MSYS2/pacman repo
> maintainers to compile aspell properly.

There is a chance this might already be fixed with newer versions of
autotools.  If possible try updating the versions of autotools to the
latest and see if that helps (the script ./maintainer/autogen might
help if you are using the release tarball, although you might have
better luck if you checkout the version from git).

> The other issue that I had is that Emacs ispell.el needs also to know
> where the dictionaries are located because it builds some
> auto-completion list to help the user select a dictionary amongst
> those available. To get this, Emacs ispell calls =C2=AB aspell -vv =C2=BB=
 and
> expects to find something like
>=20
> LIBDIR =3D "c:/msys64/mingw64/lib/aspell-0.60"
>=20
> in the output, where "c:/msys64/mingw64" is whatever prefix the user
> configured at install. This also does not work, so I did some hack
> which I attached.

This is not a windows specific issue.  The correct way to get this
information from aspell is:

  aspell config dict-dir

Kevin