octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Compiling octave with MSVC


From: John W. Eaton
Subject: RE: Compiling octave with MSVC
Date: Tue, 10 Oct 2006 11:29:07 -0400

On 10-Oct-2006, address@hidden wrote:

| I'm already using MSVC in command-line mode. However, 
| the Makefile's generated by configure are not compatible with NMAKE,

It is not so much that autoconf generates makefiles that are not
compatible with other versions of Make as it is that Octave's
Makefile.in files are written with GNU Make in mind.  It simplifies
things for me to be able to assume that we can use GNU Make
everywhere, and that seems to be a good assumption, so why not use GNU
Make?  It seems that would be much less work than trying to rewrite
the existing Makefiles.

| moreover I don't
| know if MSVC can be made compatible with the configure scripts. The fact is 
that I wanted
| to get rid of the use of a shell, especially the cygwin one, which is awfully 
slow when running
| configure scripts (1h to run the complete script is normal...).

Could that be related to the recent CRLF handling problem in bash that
has been discussed on the Cygwin mailing list?  Perhaps that will not
be such a big problem in the future.

| From my experience with another UNIX-ish
| project I ported, once you have a set of Makefile's, they don't change that 
much afterwards
| and maintining them is straightforward.

In my experience, having to remember to edit two files when you make a
change is a major problem.  Having a separate set of files may help
you get something working but Octave's Makefiles do change frequently,
so for the longer term, maintaining two sets of files is not an
option.

| I currently trying to port my work to current CVS, avoiding static files as 
much as possible
| (by using sed, perl and awk as in the normal build process).

OK.

| Concerning the MSVC-related
| changes, it's mostly located in mx-*.cc files: some of them make the compiler 
crash because
| of the code complexity, so I made small changes to \"help\" the
| compiler a little bit.  I'll try
| to provide a patch in the next days.

Can you extract a small portion of the changes now and show us what
kind of changes you are talking about?  

| Concerning the symbol export, MSVC differs from MinGW in the sense that 
symbols are
| not exported by default, you must explicitely export them with special 
declaration. As I
| splitted the code in DLL's as in the normal way (cruft.dll, octave.dll, 
octinterp.dll), many
| symbols from the liboctave directory must be exported. I probably exported 
too much by
| using some brute way, but that was to see if I could at least get somewhere.

It might be useful to do have private/public symbols on all systems,
so I'm generally in favor of making this type of change, provide that
it doesn't cause too much of a maintenance hassle.

BTW, for a quick fix, is there an MSVC option to tell the compiler to
export all symbols?

jwe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]