wxWidgets/docs/mgl/install.txt
Michael Wetherell 3877be2196 Notes on compiling MGL 5.1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-08-06 09:37:40 +00:00

253 lines
8.9 KiB
Plaintext

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 <type root password>
> make install
> ldconfig
> exit
Afterwards you can continue with
> make
> su <type root password>
> make install
> ldconfig
> exit
If you want to remove wxWidgets on Unix you can do this:
> su <type root password>
> 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.djgpp.org. You will
also need DJGPP version of SciTech MGL (this must be built using native tools).
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
If you want to build wxMGL natively using DJGPP compiler, you will have to install
a couple of Unix utilities. The easiest way to get them is to install the Cygwin
package (available from RedHat, see http://freshmeat.net/search/?q=cygwin for exact
URL). Cygwin contains win32 compiler, so make sure you did *not* install it! Once
you have Cygwin utilities and DJGPP compiler in your PATH, run bash.exe and type
> ./configure --with-mgl
> make
in wxWidgets top directory. You can build wxMGL in MS-DOS with configure, sorry.
* 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.