X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/963a1fcd6e013eef52bf87ed99e19d9ab49563ef..65baafba0e8cd74f2264b7e2f7625ff5bea84864:/docs/mgl/install.txt diff --git a/docs/mgl/install.txt b/docs/mgl/install.txt new file mode 100644 index 0000000000..d6c21198d1 --- /dev/null +++ b/docs/mgl/install.txt @@ -0,0 +1,302 @@ +wxWidgets 2.6.2 for MGL installation +------------------------------------ + +IMPORTANT NOTE: + + If you experience problems installing, please re-read these + instructions and other related files (todo.txt, bugs.txt and + osname.txt for your platform if it exists) carefully before + mailing wxwin-users or the author. Preferably, try to fix the + problem first and then send a patch to the author. + + When sending bug reports tell us what version of wxWidgets you are + using (including the beta) and what compiler on what system. One + example: wxMGL 2.6.2, gcc 2.95.3, Redhat 7.0 + +First steps +----------- + +- Download SciTech MGL library (version 5.0) from http://www.scitechsoft.com. + The downloads page is here (you need MGL version 5.0beta7 or newer): + http://scitechsoft.com/products/dev/mgl_download/mgl_down.html + + Install MGL according to provided instructions. In particular, make sure that + MGL_ROOT and NUCLEUS_PATH environment variables are set before attempting to + build wxMGL. + + Make sure you installed all MGL components, including the "fonts" package + (it's called mgl50b7-font.tar.gz in Linux version). It is important to have + SciTech's basic fonts in $(MGL_ROOT)/fonts directory (you may want to add + Arial TrueType font for better output quality) and basic cursors in + $(MGL_ROOT)/cursors. wxMGL depends on their presence. + +- Download wxMGL-x.y.z.tgz, where x.y.z is the version number. + Download documentation in a preferred format, such as + wxWidgets-HTML.zip or wxWidgets-PDF.zip. + +- Make a directory such as ~/wx and unarchive the files into this + directory. + +- It is recommended that you install bison and flex; using yacc + and lex may require tweaking of the makefiles. + +- You can now use configure or makefiles to build wxWidgets and the samples. + In case of problems, please use GNU make. + + +COMPILING +========= + +Following systems are supported by wxMGL so far: + - Unix (Linux etc.) + - MS-DOS (DJGPP and Watcom compilers) + + +* Compiling using configure +---------------------------- + +These instructions apply to installation on a Unix system (such as Linux). Please +see bellow for information on using configure on non-Unix platforms. + +If you compile wxWidgets on Linux for the first time and don't like to read +install instructions just do (in the base dir): + +> ./configure --with-mgl +> make +> su +> make install +> ldconfig +> exit + +Afterwards you can continue with + +> make +> su +> make install +> ldconfig +> exit + +If you want to remove wxWidgets on Unix you can do this: + +> su +> make uninstall +> ldconfig +> exit + +You can set many options to configure. Type + +> ./configure --help + +and you will get a list of supported options. + + +* Using wxMGL library built with configure +------------------------------------------- + +'make install' will install wx-config script that can (and should) be used +to get compiler flags that are needed to build your program. wx-config --cxxflags +will output necessary C++ compiler flags and wx-config --libs will list all +needed libraries. See an example of wxWidgets application makefile: + +minimal: minimal.o + $(CC) -o minimal minimal.o `wx-config --libs` + +minimal.o: minimal.cpp mondrian.xpm + $(CC) `wx-config --cxxflags` -c minimal.cpp -o minimal.o + + +* Using configure to build MS-DOS version +------------------------------------------ + +Even though configure is a Unix script, you can use it to build MS-DOS version +of the wxMGL library. There are two possible ways to achieve this: you can +either cross-compile from Unix or compile natively. Either way you will needed +the DJGPP port of GCC compiler freely available from: + http://www.delorie.com/djgpp/getting.html + +Scitech MGL must be compiled natively, and to do this you will need to download +the following files (from the current/v2 and current/v2gnu directories). You +should get the latest versions available rather than the exact versions shown +below, they are just an example of what to look for: + +djdev203.zip B 1,530,778 020811 DJGPP development kit 2.03 +bnu2161b.zip B 3,483,132 050708 GNU Binutils 2.16.1 for DJGPP V2 +gcc344b.zip B 3,772,211 050527 GNU GCC 3.4.4 for DJGPP V2 +gpp344b.zip B 4,026,725 050527 GNU C++ Compiler 3.4.4 for DJGPP V2 + +If you want to build wxMGL natively using the DJGPP compiler, you will have to +install a couple of Unix utilities. I think the following is the minimum that +will work: + +bsh204b.zip B 454,308 020106 GNU Bash shell 2.04 for DJGPP V2 +fil41b.zip B 1,738,170 030830 GNU fileutils 4.1 for DJGPP V2 +find41b.zip B 306,826 010505 GNU findutils 4.1 for DJGPP V2 +grep24b.zip B 254,997 000116 GNU Grep 2.4 for DJGPP V2 +mak3791b.zip B 272,798 020106 GNU Make 3.79.1 for DJGPP V2 +sed414b.zip B 159,920 050331 GNU Sed 4.1.4 for DJGPP V2 +shl2011b.zip B 1,195,021 020419 GNU sh-utils 2.01 for DJGPP V2 + +You'll probably also want a debugger: +gdb611b.zip B 1,585,648 040629 GNU GDB Debugger 6.1.1 for DJGPP V2 + +And maybe some of these: +faq230b.zip B 679,865 000203 FAQ 2.30 for DJGPP v2.03 +dif281b.zip B 402,859 040911 GNU Diffutils 2.8.1 for DJGPP V2 +gwk314b.zip B 968,667 050321 GNU Awk 3.1.4 for DJGPP V2 +gzip135b.zip B 146,138 041215 GNU gzip 1.3.5 for DJGPP V2 +lss374b.zip B 199,805 020405 GNU Less 374 for DJGPP V2 +pat254b.zip B 114,250 040326 GNU Patch 2.5.4 for DJGPP V2 +tar112ab.zip B 236,427 000305 GNU Tar 1.12a for DJGPP V2 +whic211b.zip B 86,296 000911 GNU which 2.11 for DJGPP V2 + +The system you compile on must support long file names. You can use Windows 9x +or Windows 2000/XP or later. For example: + +C:\>set MGL_ROOT=c:/scitech +C:\>set DJGPP=c:/djgpp/djgpp.env +C:\>PATH=c:\djgpp\bin +C:\>set PS1=\w\$ +C:\>bash +c:/$ mkdir build +c:/$ cd build +c:/build$ ../wxWidgets/configure +c:/build$ make +c:/build$ cd samples/minimal +c:/build/samples/minimal$ make + +Cross-compilation is very easy. It works like ordinary compilation with +configure, you only have to specify the target: + +> ./configure --with-mgl --build=i586-linux --host=i586-pc-msdosdjgpp +> make + +For this to work, you must have installed a cross compiler on your system. Ready +made binaries are not available for very many systems, so usually this means you +must obtain the djgpp sources and compile them yourself. + +NetBSD does have a binary package which can be installed with: + # pkg_add cross-i386-msdosdjgpp + +You can also try asking on the wx-dev mailing list. If someone else has already +built a cross-compiler for you platform they may be willing to send you the +binaries. + + +* Building wxMGL for MS-DOS using Watcom C/C++ +----------------------------------------------- + +You will need Watcom C/C++ compiler version 11 or newer (Watcom is going to be +OpenSourced by SciTech, check out http://www.openwatcom.org). + +1. Edit $(WXDIR)\include\wx\univ\setup.h to suit your needs (in same way as you + do when compiling wxMSW). + +2. Go to $(WXDIR)\src\mgl and run + > wmake -f makefile.wat all + +3. You can compile the samples by typing 'wmake -f makefile.mgl all' in sample + directory if this file is available. If it is not, copy makefile.wat to + makefile.mgl and replace the line that says + + !include $(WXDIR)\src\makeprog.wat + + with + + !include $(WXDIR)\src\mgl\makeprog.wat + + +Compilation notes for MGL 5.1 +----------------------------- + +The mvis library doesn't compile with current versions of gcc. However wxMGL +does not use this part of MGL, so it can be taken out of the compile, e.g.: + +--- scitech/src/makefile.orig 2004-04-15 20:36:32.000000000 +0100 ++++ scitech/src/makefile 2005-04-26 01:50:12.000000000 +0100 +@@ -88,7 +88,7 @@ + + # Target to build libraries for one compiler for SciTech MGL Graphics Library + +-all_mgl: $(T_PM) $(T_GCONSOLE) $(T_SNAP) $(T_TECH) $(T_MVIS) $(T_FIXED) \ ++all_mgl: $(T_PM) $(T_GCONSOLE) $(T_SNAP) $(T_TECH) $(T_FIXED) \ + $(T_GM) $(T_GLUT) $(T_MGL) + @$(ECHO) ============================================================================= + @$(ECHO) DONE: Single compiler MGL build completed successfully! + +The dos version of _lztimer.asm can't be assembled by the GNU assember. A +newer version is available from Scitech, a patch between the version in MGL +5.1 and the newer version is included below: + +--- scitech/src/pm/dos/_lztimer.asm.orig 2004-04-15 20:36:33.000000000 +0100 ++++ scitech/src/pm/dos/_lztimer.asm 2005-04-26 18:39:57.000000000 +0100 +@@ -4,11 +4,11 @@ + ;* + ;* ======================================================================== + ;* +-;* Copyright (C) 1991-2002 SciTech Software, Inc. All rights reserved. ++;* Copyright (C) 1991-2004 SciTech Software, Inc. All rights reserved. + ;* + ;* This file may be distributed and/or modified under the terms of the +-;* GNU Lesser General Public License version 2.1 as published by the Free +-;* Software Foundation and appearing in the file LICENSE.LGPL included ++;* GNU General Public License version 2.0 as published by the Free ++;* Software Foundation and appearing in the file LICENSE.GPL included + ;* in the packaging of this file. + ;* + ;* Licensees holding a valid Commercial License for this product from +@@ -288,8 +288,8 @@ + ; Convert the BIOS time to microseconds + + @@CalcBIOSTime: +- mov ax,[WORD EndBIOSCount] +- sub ax,[WORD StartBIOSCount] ++ mov ax,[EndBIOSCount] ++ sub ax,[StartBIOSCount] + mov dx,54925 ; Number of microseconds each + ; BIOS count represents. + mul dx +@@ -352,17 +352,17 @@ + ; See if more than an hour passed during timing. If so, notify the user. + + @@CheckForHour: +- mov ax,[WORD StartBIOSCount+2] +- cmp ax,[WORD EndBIOSCount+2] ++ mov ax,[StartBIOSCount+2] ++ cmp ax,[EndBIOSCount+2] + jz @@CalcBIOSTime ; Hour count didn't change, so + ; everything is fine + + inc ax +- cmp ax,[WORD EndBIOSCount+2] ++ cmp ax,[EndBIOSCount+2] + jnz @@TestTooLong ; Two hour boundaries passed, so the + ; results are no good +- mov ax,[WORD EndBIOSCount] +- cmp ax,[WORD StartBIOSCount] ++ mov ax,[EndBIOSCount] ++ cmp ax,[StartBIOSCount] + jb @@CalcBIOSTime ; a single hour boundary passed. That's + ; OK, so long as the total time wasn't + ; more than an hour. +@@ -384,8 +384,8 @@ + ; Convert the BIOS time to microseconds + + @@CalcBIOSTime: +- mov ax,[WORD EndBIOSCount] +- sub ax,[WORD StartBIOSCount] ++ mov ax,[EndBIOSCount] ++ sub ax,[StartBIOSCount] + mov dx,54925 ; Number of microseconds each + ; BIOS count represents. + mul dx + + +Bug reports +----------- + +Please send bug reports with a description of your environment, +compiler and the error message(s) to the wxwin-developers mailing list at: + + wx-dev@lists.wxwindows.org + +Vaclav Slavik, Julian Smart, Robert Roebling and Vadim Zeitlin, February 2002.