Technical Information about EMBOSS for Windows
The seemingly easiest solution for porting EMBOSS from Unix to Windows is to rely on some Unix compatibility layer, such as Cygwin, DJGPP, PW32 or UWIN. However, this approach is only fully justified when porting applications that interact a lot with the Unix OS, or with the user through the X-Window system.
But EMBOSS is much more a computation engine than an interactive device. So it seems more appropriate to build a native Windows EMBOSS: performance should then be optimal, and it should be easier to build Windows-specific software based on the package, e.g. GUIs.
Getting the ajax and nucleus libraries to compile on
Windows requires only minor modifications to the source code. Starting from the
original 2.7.1 source code, all the alterations I applied are bracketed by #ifdef WIN32...#endif
preprocessor directives, so that everything should still compile on Unix.
Changes concern mainly:
opendir(), readdir(),
and other functions from <dirent.h>), I had to provide a
custom directory handling API (dirent_w32.[hc]). This is drawn
directly from PW32 and DJGPP.
.embossrc).
I have simplified function ajNamInit for the Windows case. Here, a
unique environment variable, EMBOSSWIN, points to the EMBOSS
directory, where the software should find everything it needs, specially the emboss.ini
configuration file.
ajseqdb.c.
ajseqread.c so as to allow full Windows file names (e.g.
C:\toto\tata) in USAs.
embDbiSortFile(): This function
calls Unix sort(1) to sort and merge files. I had trouble getting
Windows sort behave as embDbiSortFile() expects, so I
downloaded UnxUtils, a collection
of ports of GNU utilities to Windows. This EMBOSS build uses UnxUtils's sort,
which must be located in the EMBOSSWIN
directory.
ajsys.c
are excluded from the build.To the best of my knowledge, the only functionality removed from this build is
the ability to launch sequence-producing programs through piped USAs (e.g 'getz
...|').
Version 5.1.0 of the PLPLOT library comes with a Windows driver and a makefile for Visual C++. I've had no trouble compiling it, but substituting it for version 4.99, which is used in Unix EMBOSS, has been a somewhat hazardous process.
I changed the default graphic device from 'x11' to 'win3'.
The source distribution is based on the reference (Unix) source distribution v. 2.10.0, with the following additions:
DLLs directory, and for the individual applications
in an apps directory.
© 2008 Interactive Biosoftware - Last modified: 28 February 2005