Aspell requires gcc 2.95 (or better) as the C++ compiler. Other C++ compilers should work with some effort. Other C++ compilers for mostly POSIX compliant (Unix, Linux, BeOS, CygWin) systems should work with out any major problems provided that the compile can handle all of the advanced C++ features Aspell uses. C++ compilers for non-Unix systems might work but it will take some work. Aspell at very least requires a Unix-like environment (sh, grep, sed, tr, etc...) in order to build. Aspell also uses a few POSIX functions when necessary. Nevertheless, Aspell will compile and run using the MinGW version of gcc provided that the CygWin environment is used to to build it.
Aspell also requires the Portable Spell Checker Interface Library, otherwise known as Pspell, to be installed on your system, in the same location as Aspell will be installed in, before it will compile. Aspell requires version .12.1 or better. You can obtain the latest version of Pspell from http://pspell.sourceforge.net/
The latest version can always be found at Aspell's home page at http://aspell.sourceforge.net.
Support for Aspell can be found on the Aspell mailing lists. Instructions for joining the various mailing lists (and an archive of them) can be found off the Aspell home page at http://aspell.sourceforge.net. Please use aspell-help for problems compiling and installing aspell, and aspell-user for general questions.
The easiest thing you can do to help out it is too send me your .aspell.«lang».prepl file located in your home directory every so often. (Email kevina at users sourceforge net) The file contains data on which word pairs aspell is unable to come up with the proper suggestion. If the file does not exist is simply means that you were only using aspell in a program such as emacs which does not communicate the replacement pairs back to aspell. Sending me the file would help me improve aspell accuracy as right now I don't have very much real data to work with.
Another thing you can do to help out is to try Aspell out on a different language as the Language support system is not very well tested.
Before Aspell is compiled Pspell must be installed. You can obtain the latest version of Pspell from http://pspell.sourceforge.net/. Both Pspell and Aspell must have the same prefix directory in order to function correctly.
Once Pspell is installed and you have read the sections below to take care of any special requirements for you system simply type
./configure && makeor
./configure --disable-static && maketo avoid making the static libraries on a system that supports shared libraries. For additional configure options type ./configure --help. You can control what C++ compiler is used by setting the environmental variable CXX before running configure and you can control what flags are passed to the C++ compile via the environmental variable CXXFLAGS.
Aspell should then compile with out any additional user intervention. If you run into problems please first check the sections below as that might solve your problem. If it doesn't please post a message to the aspell-help mailing list with the compiler, system you are using and any error messages that were produced. You can find more info on the aspell-help mailing list info page at http://lists.sourceforge.net/lists/listinfo/aspell-help.
To install the program simply type
make installAnd that's all there is too it for a basic installation.
If you do not have Ispell or the traditional Unix ``spell'' utility installed on your system than you should also copy the compatibly scripts ``ispell'' and ``spell'' located in the scripts/ directory into your binary directory which is usually /usr/local/bin so that programs that expect ispell or spell command will work correctly.
Aspell requires a specific version of Pspell. If the wrong version of Pspell is installed Aspell will not compile correctly. So before you try anything else make sure you are using the correct version of Pspell as stated in requirements (2.1) section.
Aspell does not use a released version of GNU Libtool. In previous versions of aspell this will often create problems if you inadvertently modify a file which causes Libtool to be called. However, as of Aspell .33.6.1 this should no longer be a problem and automake, autoconf, or libtool should not be called unless you specifically call them or if you configure Aspell with --enable-maintainer-mode. If you do notice any of these programs being called (and you did not configure with --enable-maintainer-mode) please let me know about it. If you have a need to modify configure.in or any of the Makefile.am's you should install the multi-language-branch of the CVS version of libtool.
If you are having problems compiling termios.cc than the most likely reason is due to incompatibilities with the curses implementation on your system. If this is the case than you can explicitly disable the curses library with --disable-curses. By doing this you will lose the nice full screen interface but hopefully you will be able to at least get Aspell to compile correctly.
If the curses library is installed in a non-standard location than you can specify the library and include directory with --enable-curses=«lib» and --enable-curses-include=«dir». Lib can either be the complete path of the library (for example ``/usr/local/curses/libcurses.a''), the name of the library (for example ``ncurses'') or a combined location and library in the form ``-L«lib dir» -l«lib»'' (for example ``-L/usr/local/ncurses/lib -lncurses''). Dir is the location of the curses header files (for example ``/usr/local/ncurses/include'').
Aspell is now able to compile on Win32 platforms using the Win32 version of gcc. Aspell .30.1 can either be compiled with the Cgiwin or the Mingw version of Gcc 2.95 using the Cgiwin development environment. The Mingw version of Aspell will have slightly less functionality, but none of which is noticeable to the end user. In order to get the nice full screen interface with Mingw when spell checking files a curses implementation that does not require Cygwin is required. The PDCurses (http://www.lightlink.com/hessling/PDCurses/) implementation is known to work, other implementations may work however they have not been tested. See the previous section for information on specifying the location of the curses library and include file.
When compiling Pspell I recommend you configure with --disable-shared and --disable-ltdl. Shared libraries won't work correctly anyway on Win32 and trying to compile the ltdl library can lead to unnecessary complications. When compiling Aspell I recommend you configure with --disable-shared. If you are planning to use Aspell outside if the Cygwin environment I strongly recommend you install Aspell in its own location (ie prefix is not /usr/local/) and compile it with --enable-win32-relocatable. Please note that Pspell and Aspell must be installed in the same location. (ie don't install Pspell in c:/pspell and Aspell in c:/aspell. Instead install them both in c:/aspell)
If Aspell is compiled with --enable-win32-relocatable and the bindir is set to the same value as prefix (ie not «prefix»/bin) then the Aspell directory (what prefix is set to) can be relocated anywhere provided that none of the data files are moved around within the Aspell directory.
The default paths for Aspell are designed for a Unix system and not a Win32 system so you might want to specify different ones when compiling Aspell. Also if the HOME environmental variable is not set Aspell will assume it is the current working directly. This may lead to your personal word lists being saved in unpredictable locations. To solve this either compile with --enable-win32-relocatable (see above) or specify the complete path of the personal and replacement word lists in aspell.conf. If Aspell is compiled with --enable-win32-relocatable than the personal word lists are saved in the prefix directory and the name is changed from ``.aspell.<lang>.*'' to'' <lang>.*''.
As of Aspell .33.5 Aspell will compile and run with upcoming Gcc 3.0 compiler (CVS Version, gcc-3_0-branch). If you experience any problems with this compiler please first upgrade to the latest snapshot or update your CVS tree and try again. If that does not solve your problems please let me know by sending an email to the aspell-help mailing list.
Unfortunately Aspell .33.5 or better will not compile with the Egcs 1.1. This is because of some of the modifications I made to get Aspell to compile with Gcc 3.0 broke compatibility with Egcs 1.1. After discovering this problem I tried to install Egcs 1.1 but I was unable to get it to compile. Thus I do not know when Aspell will be able to compile with this compiler again. If you must use Egcs 1.1. your best bet is to use Aspell .33.0 which is the last version known to work with Egcs 1.1.
Please note that I am not abandoning Egcs 1.1 support like I did for Egcs 1.0 and Gcc 2.7.2, I simply don't have the time to track down the problem and fix it. I will gladly accept a clean patch that will allow Aspell to compile with Egcs 1.1.
Even though .33.5 is a minor release it will unfortunately break binary compatibility with Aspell .33 due to the extensive changes needed to make Aspell better C++ compliant. This means applications such as Gaspell will need to be recompiled.
I have expanded the medium (*-med) word lists and decided to eliminate the large word lists (*-lrg) for now. However, the installing process will not automatically remove the large word lists so if you don't want them hanging around you should delete them your self. To remove all the files remove the following files from «library dir»/aspell:
american-lrg-only british-lrg-only canadian-lrg-only english-lrg-only american-lrg.multi british-lrg.multi canadian-lrg.multi
and the following files from «share dir»/pspell:
en-american-lrg-aspell.pwli en-canadian-lrg-aspell.pwli en-british-lrg-aspell.pwli
Even though .32.5 is a minor release it breaks binary compatibly which means applications such as Gaspell will need to be recompiled.
The format and name of the main dictionary has changed yet again. The install process will over write the old version, so unless you are using dictionaries other than the one provided with aspell or want to have multiple versions of aspell installed you should not have to worry about this.
The apostrophe (') is no longer considered part of the word if it appears at the end of a word. This means that you may have to manually remove words from your personal word list if you get a message similar to:
Invalid word "dogs'": The character ''' may not appear at the end of a word.To remove the word simply delete the line containing the word form the personal word list ( normally called ``.aspell.english.pws'' ).
Aspell now uses a completely new word list. This means that same words that were in the original word list may no longer appear in the current one. You may now also chose from American, British, and Canadian spelling and from two sizes medium and large. See section 5.4.1 for more information on choosing among the different choices. The original source that the word lists were created from is now found under the scowl/ directory.
The format of the main dictionary file has changed a bit. If you were able to use Aspell .30 then the old format should work. The only time the old format will NOT work is in the rare case the mmap fails. Previous version of aspell will just abort with an error when the mmap fails but the new version will attempt to read in the file using fread. Fread will fail with the old version of the main word list.
The format (but not the name) of the main dictionary has changed yet again. The install process will over write the old version, so unless you are using dictionaries other than the one provided with aspell or want to have multiple versions of aspell installed you should not have to worry about this.
Aspell also now depends on Portable Spell Checker Interface Library otherwise known as Pspell. Pspell must be installed before aspell will compile, you can find it at http://pspell.sourceforge.net/.
The format and name of the main dictionary has changed which means it will need to be recompiled. The install process will remove the old files for you, so unless you are using dictionaries other than the one provided with aspell or want to have multiple versions of aspell installed you should not have to worry about this.
Aspell now uses namespaces which means egcs 1.0 and gcc 2.8 will no longer cut it. If this becomes a serious problem let me know as it should not be to difficult to get it working again with egcs 1.0 and gcc 2.8.
Due to the new soundslike code the the main dictionary will need to be recompiled. The build process does this automatically so unless you want to have more than one version of aspell around you should not need to worry about this.
The format and file name of the personal dictionaries has also changed. In most cases aspell will automatically detect this and convert it for you by using the following algorithm.
aspell.new dump personal | aspell.old create personal
aspell.new dump repl | aspell.old create replThe new version of aspell will then leave the old files alone as long as *.pws and *.prepl exist.
Also, if the file does not end in .pws or .prepl it will try to read it in using the new format and if that fails it will read in the old format. When the file is saved it will be saved as the new format.
I am hopping I will not have to change the format of the personal dictionaries again. However, the main word list however is very likely to change in format.
The behavior of ``aspell check'' changed so that it will now over right the original file as creating new file was creating too many problems when used with programs like pine and vi.
The name of the personal word lists have changes from .aspell.per and .aspell.rpl to .aspell.«lang».per and .aspell.«lang».rpl respectively. «lang» is is the language name which will generally be ``english''. If you wish to use your old word lists you will need to rename those files.
The format of the personal replacement dictionary has changed. So, you will either need to rename or remove the file .aspell.rpl located in your home directory. If you have information in this file you would like to preserve please send me an email.
Because the location of the main word list moved you should probably do a make uninstall (with the old version of a Aspell) before upgrading to remove the old word lists. A make uninstall will not remove any personal word lists.