diff options
Diffstat (limited to 'README.win32')
| -rw-r--r-- | README.win32 | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/README.win32 b/README.win32 new file mode 100644 index 000000000..7d5ac40c3 --- /dev/null +++ b/README.win32 @@ -0,0 +1,199 @@ +README.win32 - How to compile for Windows +----------------------------------------- + +Fltk has been reported to compile with GNU GCC compilers, with +MicroSoft Visual C++ version 4 and 5, and with Borland's C++ compiler +(sorry no info on that here). + +---------------------------------------------------------------- +Using GNU C compilers (MingW32 and/or Cygnus): +---------------------------------------------------------------- + +Edited from mail from Carl Thompson: + +MINGW32 and Cygnus are both ports of the GNU compiler to win32. The +difference is that Cygnus will emulate a complete Unix development +environment including nearly all of the standard Unix system calls. This +allows Unix programs to be ported to win32 possibly without changing a +single line of source code. However, the applications it generates are big, +very slow, depend on the Cygnus DLL, and currently somewhat unstable. For +straight Windows applications / Libraries like FLTK that do not require Unix +system call emulation, MINGW32 is the superior choice. MINGW32 produces a +plain Windows binary that is only dependent on the normal Windows DLLs. + +Some links for getting MINGW32: + +http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/download.html +http://www.cygnus.com/misc/gnu-win32/index.html +ftp://objectcentral.com/mingw32 + +You will of course need GNU make for MINGW32 in addition to the regular +MINGW32 utilities. You also need the OpenGL header files which +apparently are not always included with mingw32, get them from the +above ftp site. + +More instructions from Rick Sayre (at Pixar): + +BTW, for what it's worth, here's the list of changes I have to make to get +fltk and the examples to build under MINGW32 (which I've switched to from +CYGWIN, since programs compiled under it use standard DLL's rather than the +extremely bugging cygwin.dll, and it just otherwise seems to work better): + +Run ./configure +- +In makeinclude - change the CFLAGS and CXXFLAGS to add "-O2 -DWIN32" +change the libraries to "-lgdi32 -luser32" (add "-mwindows" to not get +a console) +- +In config.h - set HAVE_SCANDIR to 0. ./configure seems to do this +correctly now, but it was occasionally in the past setting it to 1 +- +in src/Makefile: + change the "ar" command to use the "ar -M < ar.script" form. This +is needed only because I compile under Cygwin's B19 bash, which blows up in +all sorts of bad ways (hard resets[!]) on long command lines. More details +if you care, but most people might not. Just a warning. +- +in test/demo.menu + Change the paths to DOS form [blech!], don't use "&" +[A better idea would be to replace system() with a call that knows how +to fake a fork on Winblows] +- +in fluid/Makefile +Change the make install rules to reference "fluid.exe" for installing and +strip'ing, rather than "fluid" + +I suspect that it is very likely not a good idea to try "make install" under +Windows. Instead, copy "libfltk.a" to "C:\MINGW32\LIB" (replace +"C:\MINGW32" with the directory in which you installed MINGW32). Then copy +the entire "FL" directory to "C:\MINGW32\INCLUDE". + +From Gustavo Hime: + +First, thank you for the nice piece of software, and congratulations +on the quality source code. Fltk compiles (and runs) beautifully on +all the systems I use (Irix 6.4,Solaris 2.5, RedHat Linux 5.0): the +exception was Windows, where compilation was rather hard. + +I have just now managed to compile (satisfactorily) fltk on Win95 +using Mingw32: I do not have MSVC (I don't believe in Microsoft +compilers :)), and we (the project I am engaged in) are going to use +mingw32 to port unix code to windows anyway, so mingw32 was the way to +go. Here is a list of what I had to do: + +Modify ar -mwindows to ar -ruv in your makeinclude.mingw32. + +Added -DCYGNUS to your *FLAGS variables (I am new to mingw32, I don't +know what it defines to id itself, but they are so close I don't think +it matters much). + +Disable GL overlay in win32/config.h (shouldn't this be the default?). + +Added dummy makedepend files to directories fluid and src. + +Created empty lib directory. + +Fixed scroll.C line 83 (implicit typecast from int to const char * in +function call, mingw32 has a problem with this) + +Did not fix list_visuals.C (weird code there, where is the main +functionfor win32?) + +And finally, the hardest: downloaded the OpenGL headers for mingw32 +fromftp://objectcentral.com/mingw32. These are not included in the +mingw32 distribution, and it took me a couple of hours to find them on +the net. It would be nice to add a note about this in the fltk +documentation, and I'll send an e-mail asking them to add these +headers to the mingw32 distribution. + +Once again, great code. With mingw32, fltk and opengl, I can +imediatellyport all my old windows code to unix, and I no longer need +to waste 300+ mb of hard-drive on stupid borland compilers. + +---------------------------------------------------------------- +Using MSVC++: +---------------------------------------------------------------- + +If you have MSVC++ 5.0, double click the "fltk.dsw". Make the "fltk" +project current, and build it. This will create the library in +../lib/fltkd.lib. To build the demo programs, select the "demo" +project and build it. To run the demos run the demo project. + +I only have Pentium and Alpha NT machines running MSVC++ 5.0. Other +users have reported success compiling fltk on Windowe95, and using +version 4 of MSVC++, Borland's C++ compiler, and various ports of GCC +to windows (to use these, look at the "makeinclude" files in +../makefiles). + +If you want to make non-console apps you have to do something special, +and that differs on each compiler/linker package. For MSVC++ the +secret switch is: + + /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup + +For cygwin/mingw32 and perhaps some other compilers based on gcc put +this in the makeinclude file: + + LDLIBS =-lgdi32 -luser32 -mwindows + +There are no makefiles, for MSVC++ or any other compiler, because I +don't know how to write them (the ones dumped by MSVC++ are useless +and unreadable). + +---------------------------------------------------------------- +Other compilers: +---------------------------------------------------------------- + +I have heard that Borland C++ is usable. + +You probably need to start with the Unix Makefiles. There is one in +../src, one in ../fluid, and one in ../test. Edit these as necessary +and compile. You must add "-DWIN32" to your compiler switches. + +The biggest problem seems to be differences in the windows.h header +files (MicroSoft copyrighted theirs?). Some functions and macros have +different names or are missing. + +The MSVC++ "makefiles" are totally useless. Ignore that crap. + +Start with the Unix makefiles, which list all the necessary source +files. Don't try to compile the files ending in _win32.C, they are +#included by other files if WIN32 is defined. + +When compiling the symbol WIN32 must be defined (most compilers do +this?) and you have to set the include path so the file win32/config.h +is seen when the code does #include <config.h>. You may need to use +some sort of switch to force the compiler to compile the files with +C++ rather than C. On MSVC++ this is the obvious acronym "/TP" :-) +Not doing these steps will result in lots of cryptic errors. + +---------------------------------------------------------------- +Known problems and ToDo list: +---------------------------------------------------------------- + +It does not work if you turn on full optimizations in VC++. I have +been told this is due to bugs in VC++, but if anybody can find a way +around them it would be nice... (the "optimize" settings in the +project files only do partial optimization and work ok). + +If program is deactivated, Fl::wait() does not return until it is +activated again, even though things happen, like redraws. This could +break some programs that rely on executing code after Fl::wait(). + +Fl_Gl_Window::can_do_overlay() returns true until the first time it +attempts to draw an overlay, and then correctly returns whether or not +there is overlay hardware. + +Cut text contains ^J rather than ^M^J to break lines. This is a +feature, not a bug. + +Fl_Window::fullscreen() not implemented (should take over the screen +without a title bar). Currently does maximize instead. + +Reports of clipping problems on '95. Can't reproduce on NT. + +Need to import .bmp files into fluid. Wonko has the specs. + +Can't set icon of windows. + +Transparent parts of pixmaps do not really work. |
