Citing Sean at 7/18/2005:
At this time, the only means to install BRL-CAD in Windows 2000 is to compile it yourself in the Cygwin environment. This will get you a complete build of BRL-CAD. That said, a binary build of BRL-CAD should be ready shortly for Windows (i.e. within a couple months) as it's currently under development testing.
I'd like to second that. Even if it is still undergoing testing, it would be nice to have a binary. Thanks!
Since then, considerable improvements have been made. In particular, the Studio files for building the core libraries have been updated and commited. Also, support for the mingw/msys environment has improved greatly with enhancements to the build environment and automatic compilation support. There's a couple peoeple working on putting together the full binary release for hopefully the next iteration. The best answer is still that it'll be ready when it's ready.. we know there are lots of folks waiting for it.. ;-)
So can you compile BRL-CAD from source using MinGW now?
BRL-CAD has compiled under Mingw for quite some time, at least with very minimal effort (i.e. disable jove). That said, BRL-CAD for Windows as of version 7.8.0 is also now available for download. Feel free to report any bugs, requests, issues, comments that come up.
Which version of Visual Studio are those files for? I've tried opening them in both 6.0 and 2003, and both complain that the project files are corrupt.
I've made my own projects and compiled dlls for librt libbu libbn libsysv tcl. Unfortunately, librt functions like to make calls to libbu for resource checks. In doing this, they try to pass pointers to global variables in the librt dll. The values never make it, and by the way DLL's work, I'm not sure there is a way around it. Should it all just be built as a single dll? What are other folks doing?
There are VC6 and VC7 build files in misc/win32-msvc and misc/win32-msvc7 respectively. For win32-msvc, there is a brlcad workspace that will build all the DLLs and then compile them all into one single brlcad dll for convenience. For the latter, if you open up the 'brlcad' project file, you should see that it includes and can build all the others including all the libraries and about 15% of the binaries (those that work with mged mostly).
If it's saying the project files are corrupt, I'm wondering how you got the files. Are they from a source distribution or from a cvs checkout? I'd suspect you're using a source tarball or zipfile, and that the project files have UNIX line endings (/n) instead of Windows line endings (/n/r). If you check out the sources yourself from CVS, you should get files with the right line endings.
As for the pointers to global variables and other exported/unexported value information from the libraries, it's a bit involved to get into but you basically have to make sure a few preprocessor symbols are defined so that everything is referenced correctly by the dll. I don't recall the details off the top of my head, but they should be in the project files when you finally get them to work. For what it's worth, there are people actively using both the vc6 and vc7 build files, but they using them out of CVS. I hear Tortoise CVS is decent on Windows but your mileage may vary.
Thanks for the input. I grabbed the latest with CVS instead of trying to use 7.6.6 sources, and the project files there read in just fine.
The problems of pointers between dlls to global variables seems to have been a red herring. It seems that I wasn't initializing the rt_uniresource correctly, and the results just looked like a variable not being passed between dlls. It was quite annoying since all the import and export commands were correct.
Thanks for the help!