646 lines
29 KiB
HTML
646 lines
29 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head>
|
|
|
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>wxLua Installation Guide</title>
|
|
|
|
<meta content="Francesco Montorsi, John Labenski" name="author">
|
|
<meta content="Info about building wxLua" name="description"></head><body>
|
|
<u><b><big><big>wxLua 2.8.10 - Installation Guide</big></big></b></u><br>
|
|
<br>
|
|
This document describes how to build wxLua for use as an
|
|
interpreter of Lua scripts and for embedding wxLua in a C++ project.
|
|
You can build wxLua on many platforms with a variety of compilers. All
|
|
the build settings and platforms that are supported by wxWidgets are
|
|
supported by wxLua. <br>
|
|
<ol>
|
|
<li>
|
|
<p><a href="#requiredlibs">Required libraries</a></p>
|
|
<ol style="list-style-type: lower-alpha;">
|
|
<li>
|
|
<p><a href="#apps">List of wxLua applications</a></p>
|
|
</li>
|
|
<li>
|
|
<p><a href="#modules">List of wxLua modules</a></p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
<li>
|
|
<p><a href="#win_makefiles">Building on Windows
|
|
using makefiles</a></p>
|
|
</li>
|
|
<li>
|
|
<p><a href="#win_ide">Building on Windows using
|
|
MSVC IDE</a></p>
|
|
</li>
|
|
<li>
|
|
<p><a href="#unix">Building on Linux/Unix</a></p>
|
|
</li>
|
|
<li><a href="#adv">Advanced building options</a></li>
|
|
<ol style="list-style-type: lower-alpha;">
|
|
<li>
|
|
<p><a href="#minimalwxlua">Building a minimal
|
|
set of wxWidgets wrappers</a></p>
|
|
</li>
|
|
<li><a href="#wxlualiborder">wxLua libraries and
|
|
linking order</a></li>
|
|
</ol>
|
|
</ol>
|
|
<small><u><b><big><big><big><br>
|
|
<br>
|
|
<a name="requiredlibs"></a>1. Required libraries</big></big></big></b></u></small>
|
|
<p style="text-align: justify;">wxLua is organized in
|
|
three main blocks: <span style="font-weight: bold;">applications</span>
|
|
(<span style="font-family: monospace;">wxLua/apps</span>),
|
|
<span style="font-weight: bold;">modules</span> (<span style="font-family: monospace;">wxLua/modules</span>)
|
|
and <span style="font-weight: bold;">utilities</span>
|
|
(<span style="font-family: monospace;">wxLua/utils</span>).
|
|
If you want to use wxLuaApp to write your applications in Lua using
|
|
wxWidgets library then you are mainly interested in the <span style="font-weight: bold;">applications</span>
|
|
(basically code editors with integrated Lua interpreter). If you want
|
|
to integrate wxLua in your C++ project, then you are mainly
|
|
interested in the <span style="font-weight: bold;">modules</span>,
|
|
which are compiled as libraries which must be linked by your project:</p>
|
|
<p style="margin-left: 40px;"><big><span style="font-weight: bold; text-decoration: underline;"><a name="apps"></a>1.a
|
|
List of wxLua applications</span></big></p>
|
|
<ul>
|
|
<ul>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/apps/wxlua</span>
|
|
- The wxLua code editor and interpreter, runs samples/editor.wx.lua.</p>
|
|
</li>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/apps/wxluaedit</span>
|
|
- The wxLua code editor and
|
|
interpreter, based on wxStEdit.</p>
|
|
</li>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/apps/wxluacan</span>
|
|
- An example of how to create C++
|
|
applications with embedded wxLua interpreter.</p>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
<p style="margin-left: 40px;"><big><span style="font-weight: bold; text-decoration: underline;"><a name="modules"></a>1.b
|
|
List of wxLua modules</span></big></p>
|
|
<ul>
|
|
<ul>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/modules/lua</span>
|
|
- Lua itself with patches applied, see <a href="http://www.lua.org">www.lua.org</a></p>
|
|
</li>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/modules/wxlua</span>
|
|
- The base wxLua package, contains the public wxLuaState class.</p>
|
|
</li>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/modules/wxbind</span>
|
|
- The wxLua bindings for wxWidgets broken up by the wxWidgets
|
|
libraries: adv, aui, base, core, gl, html, media, net, richtext, stc,
|
|
xml, xrc. To determine what classes are part of what libs you can use
|
|
the wxluaref.html document and search for the class, for example wxGrid
|
|
is in the file wxadv_grid.i so it is part of the adv library.</p>
|
|
</li>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/modules/wxluadebug</span>
|
|
- Helpful classes for debugging Lua, wxLuaCheckStack and
|
|
wxLuaStackDialog.</p>
|
|
</li>
|
|
<li>
|
|
<p><span style="font-style: italic;">wxLua/modules/wxluasocket
|
|
</span>- Debugger socket classes to run a wxlua
|
|
program in a
|
|
separate
|
|
process and communicate with the parent</p>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
<div style="text-align: justify;">
|
|
In any case, the instructions below show how to compile all
|
|
the three blocks (applications, modules, utilities) at once.
|
|
</div>
|
|
<p style="text-align: justify;">wxLua requirements are
|
|
simple: <a href="http://www.wxwidgets.org"><span style="font-weight: bold;">wxWidgets</span></a>
|
|
(version 2.8.4 or higher),
|
|
<span style="font-weight: bold;">wxSTC</span> if you
|
|
want to
|
|
use the <span style="font-family: monospace;">wxbindstc</span>
|
|
module or you want to compile the <span style="font-family: monospace;">wxlua</span>
|
|
application, <span style="font-weight: bold;"><a href="http://wxcode.sourceforge.net/components/wxstedit">wxStEdit</a>
|
|
</span>(version 1.2.4 or higher) if you want to compile the <span style="font-family: monospace;">wxluaedit</span>
|
|
application.</p>
|
|
<p style="text-align: justify;"><span style="font-weight: bold;">VERY IMPORTANT: </span></p>
|
|
<ul>
|
|
<li><span style="font-weight: bold;">All
|
|
instructions below suppose that you already compiled
|
|
or installed a working development version of
|
|
wxWidgets. Please refer to wxWidgets documentation for this.</span></li>
|
|
<li><span style="font-weight: bold;">If you want
|
|
to
|
|
use a precompiled package of wxWidgets you must install the
|
|
development as well as the runtime package. </span></li>
|
|
<li><span style="font-weight: bold;">You should be
|
|
able to compile and successfully run the wxWidgets samples, please try
|
|
at least one before attempting to compile wxLua to verify that
|
|
wxWidgets is correctly installed before continuing.</span></li>
|
|
</ul>
|
|
<p style="text-align: justify;"><span style="font-weight: bold;">wxSTC</span>
|
|
is the wxWidgets wrapper around the Scintilla text control and can be
|
|
built from the wxWidgets source tree...</p>
|
|
<ul style="text-align: justify;">
|
|
<li>Windows: going in the <span style="font-family: monospace;">contrib/build/stc</span>
|
|
directory and if using makefiles running the same MAKE command
|
|
used to
|
|
build wxWidgets. If using MS Visual Studio opening the build file in <span style="font-family: monospace;">contrib/build/stc</span>
|
|
and building the same configuration that you used for the wxWidgets
|
|
library. </li>
|
|
<li>Linux: going in the <span style="font-family: monospace;">contrib/src/stc</span>
|
|
directory and typing <span style="font-family: monospace;">make
|
|
&& sudo make install</span></li>
|
|
</ul>
|
|
<div style="text-align: justify;">
|
|
If you want to disable wxSTC dependency you have to use the<span style="font-weight: bold;"> </span><span style="font-family: monospace;">USE_WXBINDSTC=0</span>
|
|
option (on Windows makefiles) or <span style="font-family: monospace;">--disable-wxbindstc</span>
|
|
option (<span style="font-family: monospace;">with</span>
|
|
Unix configure script).<br>
|
|
<br>
|
|
<span style="font-weight: bold;">wxStEdit</span> is
|
|
part of the <a href="http://wxcode.sourceforge.net">wxCode</a>
|
|
project and can be downloaded from <a href="http://wxcode.sourceforge.net/components/wxstedit">wxcode.sourceforget.net</a>.
|
|
Refer to its README for instructions on how to build it. If you want to
|
|
disable wxStEdit dependency you have to use the <span style="font-family: monospace;">USE_WXLUAEDITAPP=0</span>
|
|
option (on Windows makefiles) or <span style="font-family: monospace;">--disable-wxluaedit-app</span>
|
|
(with Unix configure script).</div>
|
|
<br>
|
|
<br>
|
|
<u><b><big><big>
|
|
<a name="win_makefiles"></a>2. Building on Windows
|
|
using makefiles</big></big></b></u><br>
|
|
<p>Enter the <span style="font-family: monospace;">wxLua/build/msw</span>
|
|
directory with an MSDOS prompt and type:</p>
|
|
<ul>
|
|
<li><span style="font-family: monospace;">MSVC :
|
|
nmake -f makefile.vc</span></li>
|
|
<li><span style="font-family: monospace;">Borland
|
|
: make -f makefile.bcc</span></li>
|
|
<li><span style="font-family: monospace;">Mingw :
|
|
mingw32-make -f makefile.mingw</span></li>
|
|
<li><span style="font-family: monospace;">Watcom :
|
|
wmake -f makefile.wat</span></li>
|
|
</ul>
|
|
<p>to build all modules,
|
|
applications and utilities of wxLua.</p>
|
|
<p style="text-align: justify;">For more options, you can
|
|
just see the top of the
|
|
makefile you're using for your compiler. For example, if you're using <span style="font-family: monospace;">nmake</span> (MS
|
|
Visual C nmake program) look at <span style="font-family: monospace;">makefile.vc</span>. </p>
|
|
<p>At the top you'll see something like this:
|
|
</p>
|
|
<div style="margin-left: 40px;"><span style="font-family: monospace;"></span><span style="font-family: monospace;">#
|
|
-------------------------------------------------------------------------<br>
|
|
# These are configurable options:<br>
|
|
#
|
|
-------------------------------------------------------------------------<br>
|
|
<br>
|
|
# C compiler <br>
|
|
CC = cl<br>
|
|
<br>
|
|
# C++ compiler <br>
|
|
CXX = cl<br>
|
|
<br>
|
|
# Standard flags for CC <br>
|
|
CFLAGS = <br>
|
|
<br>
|
|
# Standard flags for C++ <br>
|
|
CXXFLAGS = <br>
|
|
<br>
|
|
# Standard preprocessor flags (common for CC and CXX) <br>
|
|
CPPFLAGS = <br>
|
|
<br>
|
|
# Standard linker flags <br>
|
|
LDFLAGS = <br>
|
|
<br>
|
|
# Builds in debug mode [debug,release]<br>
|
|
BUILD = debug<br>
|
|
<br>
|
|
# Builds in Unicode mode [0,1]<br>
|
|
# 1 - Unicode<br>
|
|
UNICODE = 0<br>
|
|
<br>
|
|
# Builds in shared mode [0,1]<br>
|
|
# 1 - DLL<br>
|
|
SHARED = 0<br>
|
|
<br>
|
|
# Use DLL build of wx library? [0,1]<br>
|
|
# 0 - Static<br>
|
|
# 1 - DLL<br>
|
|
WX_SHARED = 0<br>
|
|
<br>
|
|
# Version of the wx library to build against. <br>
|
|
WX_VERSION = 28<br>
|
|
<br>
|
|
# Use monolithic build of wxWidgets? [0,1]<br>
|
|
# 0 - Multilib<br>
|
|
# 1 - Monolithic<br>
|
|
WX_MONOLITHIC = 0<br>
|
|
<br>
|
|
# The directory where wxWidgets library is installed <br>
|
|
WX_DIR = $(WXWIN)<br>
|
|
<br>
|
|
# Should the wxLua applications be compiled ? [0,1]<br>
|
|
USE_APPS = 1<br>
|
|
<br>
|
|
# Should wxLua use the system-wide Lua library ? [0,1]<br>
|
|
USE_SYSTEM_LUA = 0<br>
|
|
<br>
|
|
# The path to the Lua library <br>
|
|
LUA_DIR = ..\..\..\modules\lua<br>
|
|
<br>
|
|
# This is an advanced option. Handle with care.<br>
|
|
# Version of C runtime library to use. You can change this to<br>
|
|
# static if SHARED=0, but it is highly recommended to not do<br>
|
|
# it if SHARED=1 unless you know what you are doing. [dynamic,static]<br>
|
|
RUNTIME_LIBS = dynamic<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxAdv lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDADV = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxAUI lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDAUI = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxBase lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDBASE = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxCore lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDCORE = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxGL lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDGL = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxHTML lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDHTML = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxMedia lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDMEDIA = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxNet lib need to be compiled ? [0,1]<br>
|
|
USE_WXBINDNET = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for the wxRichText lib need to be compiled ?
|
|
[0,1]<br>
|
|
USE_WXBINDRICHTEXT = 0<br>
|
|
<br>
|
|
# Do the wxLua bindings for wxSTC need to be compiled ? [0,1]<br>
|
|
USE_WXBINDSTC = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for wxXML need to be compiled ? [0,1]<br>
|
|
USE_WXBINDXML = 1<br>
|
|
<br>
|
|
# Do the wxLua bindings for wxXRC need to be compiled ? [0,1]<br>
|
|
USE_WXBINDXRC = 1<br>
|
|
<br>
|
|
# Does the wxLua debug support need to be compiled ? [0,1]<br>
|
|
USE_WXLUADEBUG = 1<br>
|
|
<br>
|
|
# Does the wxLua debug socket support need to be compiled ? [0,1]<br>
|
|
USE_WXLUASOCKET = 1<br>
|
|
<br>
|
|
# Compile the lua module ? [0,1]<br>
|
|
USE_LUAMODULE = 1<br>
|
|
<br>
|
|
# Compile the wxLua app ? [0,1]<br>
|
|
USE_WXLUAAPP = 1<br>
|
|
<br>
|
|
# Compile the wxLuaCan app ? [0,1]<br>
|
|
USE_WXLUACANAPP = 1<br>
|
|
<br>
|
|
# The path to the wxStEdit component (meaningful only when
|
|
USE_WXLUAEDITAPP==1) <br>
|
|
WXSTEDIT_DIR = $(WXSTEDIT)<br>
|
|
<br>
|
|
# Compile the wxLuaEditor app ? [0,1]<br>
|
|
USE_WXLUAEDITAPP = 0<br>
|
|
<br>
|
|
# Compile the wxLuaFreeze app ? [0,1]<br>
|
|
USE_WXLUAFREEZEAPP = 1<br>
|
|
</span><span style="font-family: monospace;"></span></div>
|
|
<p><br>
|
|
To specify one or more options, just append them to the end of your
|
|
make command:<br>
|
|
<br>
|
|
<span style="font-family: monospace;">nmake -f makefile.vc
|
|
BUILD=debug UNICODE=1 WX_MONOLITHIC=1</span><br>
|
|
</p>
|
|
<div style="text-align: justify;">
|
|
in case you get an error complaining about <span style="font-family: monospace;">wx/setup.h</span> or <span style="font-family: monospace;">wx/wx.h</span> which
|
|
cannot be found, this is because the options default or the option
|
|
values you gave did not match any of your available wxWidgets builds.
|
|
In this case use one of <span style="font-family: monospace;">BUILD,
|
|
UNICODE, SHARED, WX_DIR, WX_SHARED, WX_VERSION, WX_MONOLITHIC</span>
|
|
options to select the build you want. <br>
|
|
<ul>
|
|
<li>The directory that wxWidgets is
|
|
installed to is specified by the environment variable $(WXWIN)</li>
|
|
<li>The
|
|
directory to the wxStEdit library is specified by $(WXSTEDIT).</li>
|
|
</ul>
|
|
You can set these environment variables in MS Windows either at the DOS
|
|
prompt using "set WXWIN=\path\to\wxWidgets" or by right clicking on "My
|
|
Computer" -> "System" -> "Environment
|
|
Variables" and add it for yourself or for everyone.
|
|
</div>
|
|
<p style="text-align: justify;">Note that the <span style="font-family: monospace;">USE_WXLUAEDITAPP </span>option
|
|
is disabled by default so that if you want to enable <span style="font-weight: bold;">wxStEdit</span> dependency
|
|
you have to explicitely use the <span style="font-family: monospace;">USE_WXLUAEDITAPP=1</span>
|
|
option.</p>
|
|
<p style="text-align: justify;">Some useful targets you
|
|
can specify are:</p>
|
|
<ul>
|
|
<li><span style="font-family: monospace;">docs</span>:
|
|
generates the HTML documentation for wxLua using <a href="http://www.doxygen.org/">doxygen</a></li>
|
|
<li><span style="font-family: monospace;">compress</span>:
|
|
calls <a href="http://upx.sourceforge.net">UPX</a>
|
|
on the generated binaries to make them smaller (and faster)</li>
|
|
</ul>
|
|
<u><b><big><big><br>
|
|
<a name="win_ide"></a>3. Building on Windows using
|
|
MSVC
|
|
IDE</big></big></b></u><br>
|
|
<div style="text-align: justify;"><br>
|
|
Open the <span style="font-family: monospace;">wxLua/build/msw/wxLua.dsw</span>
|
|
project file and select the same configuration you used to
|
|
build wxWidgets from the <span style="font-family: monospace;">"Build->Set
|
|
Active
|
|
Project"</span> menu.</div>
|
|
<p>
|
|
Now build the wxLua application right-clicking on the <span style="font-family: monospace;">app_wxlua</span>
|
|
target and choosing <span style="font-family: monospace;">Build</span>
|
|
(or <span style="font-family: monospace;">Generate</span>).
|
|
Then just repeat this build command for the <span style="font-family: monospace;">app_wxluacan</span>
|
|
and <span style="font-family: monospace;">app_wxluaedit</span>
|
|
targets. the <span style="font-family: monospace;">mod_XXX</span>
|
|
targets will be automatically built since they are dependency of the <span style="font-family: monospace;">app_XXX</span>
|
|
targets. You may also use "Batch Build" to build multiple
|
|
libraries and programs at once.</p>
|
|
<p>In order to compile the wxLuaEdit application you must compile
|
|
the wxStEdit library by using its project file with the same settings
|
|
that you will use for wxLua. Then set the environment variable
|
|
WXSTEDIT=/path/to/wxstedit by right clicking on "My Computer" ->
|
|
"System" -> "Environment Variables" and add it for yourself or
|
|
for everyone. You will have to close and reopen MS Visual Studio in
|
|
order for the new variable to be used.</p>
|
|
<u><b><big><big><br>
|
|
<a name="unix"></a>4. Building on Linux/Unix</big></big></b></u><br>
|
|
<p>Quickstart: Move to the root directory of the wxLua
|
|
project and type:</p>
|
|
<p style="margin-left: 40px; font-family: monospace;">./configure
|
|
&& make</p>
|
|
to build using the wxWidgets default build settings and then execute,
|
|
with <span style="font-family: monospace;">root</span>
|
|
permissions (you can use <span style="font-family: monospace;">su</span>
|
|
or <span style="font-family: monospace;">sudo</span>
|
|
commands...):<br>
|
|
<br>
|
|
<span style="font-family: monospace;">make install</span><br>
|
|
<br>
|
|
If you want more control over configure you can type <span style="font-family: monospace;">./configure --help</span>
|
|
to get a list of available options.
|
|
<br>
|
|
Note that <span style="font-family: monospace;">--enable-XXX</span>
|
|
or <span style="font-family: monospace;">--enable-XXX=yes</span>
|
|
enables the option <span style="font-family: monospace;"></span>and
|
|
<span style="font-family: monospace;">--disable-XXX</span>
|
|
or <span style="font-family: monospace;">--enable-XXX=no</span>
|
|
disables it.<br>
|
|
<br>
|
|
wxLua's <span style="font-family: monospace;">configure</span>
|
|
tries to determine the wxWidgets build settings automatically
|
|
using the <span style="font-family: monospace;">wx-config</span>
|
|
script,
|
|
but if you have multiple wxWidgets builds (you can list them using <span style="font-family: monospace;">wx-config --list</span>)
|
|
you
|
|
can select the build you want using the <span style="font-family: monospace;">--enable-unicode</span>,
|
|
<span style="font-family: monospace;">--enable-debug</span>
|
|
and <span style="font-family: monospace;">--with-wxshared</span>,
|
|
<span style="font-family: monospace;">--with-gtk|msw|mgl|x11|motif</span>
|
|
options. Note that you would use the <span style="font-family: monospace;">--enable-unicode</span>,
|
|
<span style="font-family: monospace;">--enable-debug</span>
|
|
options only if you had built wxWidgets with them. The build
|
|
settings for wxLua must be identical to the ones used by
|
|
wxWidgets, i.e. you
|
|
cannot build wxLua in ANSI mode and try to link to a Unicode
|
|
build of wxWidgets!
|
|
For example, if you have a unicode, release, shared library
|
|
(as opposed to
|
|
static) build of wxWidgets and want
|
|
to build wxLua in unicode, release, static mode, then you can do:<br>
|
|
<br>
|
|
<span style="font-family: monospace;">./configure
|
|
--enable-unicode
|
|
--disable-debug --disable-shared --with-wxshared</span><br>
|
|
<br>
|
|
The options <span style="font-family: monospace;">--enable-wxlua-app</span>,
|
|
<span style="font-family: monospace;">--enable-wxluacan-app</span>,
|
|
<span style="font-family: monospace;">--enable-wxluaedit-app</span>
|
|
let you to enable or disable compiling the <span style="font-weight: bold;">applications</span>
|
|
which are part of wxLua. <br>
|
|
<br>
|
|
The options <span style="font-family: monospace;">--enable-wxbindstc</span>,
|
|
<span style="font-family: monospace;">--enable-wxluadebug</span>,
|
|
<span style="font-family: monospace;">--enable-wxluasocket</span>
|
|
let
|
|
you to enable or disable compiling the wxLua <span style="font-weight: bold;">modules</span>.<br>
|
|
<br>
|
|
You can
|
|
compile multiple
|
|
coexisting wxLua builds by running wxLua's configure script in
|
|
different folders; e.g.<br>
|
|
<br>
|
|
<span style="font-family: monospace;">mkdir mybuild
|
|
&& cd mybuild && ../configure
|
|
&& make</span><br>
|
|
<br>
|
|
which puts all objects and intermediate stuff in the <span style="font-family: monospace;">mybuild</span> folder
|
|
(exactly as you can do with wxWidgets). This is typically a good idea
|
|
even if you only have a single build so you don't pollute the main
|
|
wxLua directory with the build files.<br>
|
|
<br>
|
|
If you do not want to install wxLua to the system directory <span style="font-family: monospace;">/usr/ </span>you can
|
|
specify <span style="font-family: monospace;">--prefix=/path/to/install/to</span>
|
|
and when you run <span style="font-family: monospace;">make
|
|
install</span> the headers, apps, and libs will be placed there.
|
|
For development purposes it is often not necessary to install wxLua,
|
|
but you may need to specify the shell environment variable <span style="font-family: monospace;">LD_LIBRARY_PATH</span>
|
|
to allow the executables to find the shared libraries, e.g. <span style="font-family: monospace;">export
|
|
LD_LIBRARY_PATH=/path/to/wxLua/lib</span>, be careful not to
|
|
override the variables existing value so you may want to instead do <span style="font-family: monospace;">export LD_LIBRARY_PATH=$</span><span style="font-family: monospace;">LD_LIBRARY_PATH:</span><span style="font-family: monospace;">/path/to/wxLua/lib</span>.<br>
|
|
<br>
|
|
The wxLuaEdit application depends on the wxStEdit library that you
|
|
should have compiled before trying to compile wxLua. There are two ways
|
|
to let wxLua's configure find the wxStEdit library: 1) Set the shell
|
|
environment variable before running configure <span style="font-family: monospace;">export
|
|
WXSTEDIT=/path/to/wxstedit</span> or 2) Use the <span style="font-family: monospace;">--with-wxstedit-prefix=/path/to/wxstedit</span>
|
|
configure directive. As a last resort you can help wxLua's
|
|
configure find wxStEdit or its libraries by exporting
|
|
these environment variables:<br>
|
|
<br>
|
|
<span style="font-family: monospace;">export
|
|
CPPFLAGS="-I/path/to/wxstedit/include" </span><br>
|
|
<span style="font-family: monospace;">export
|
|
LDFLAGS="-L/path/to/wxstedit/lib"</span><br>
|
|
<br>
|
|
Other useful targets which you can use are:<br>
|
|
<ul>
|
|
<li><span style="font-family: monospace;">docs</span>:
|
|
generates the HTML documentation for wxLua using <a href="http://www.doxygen.org">doxygen</a></li>
|
|
<li><span style="font-family: monospace;">install-strip</span>:
|
|
like install but this target also strips
|
|
debugging informations out of the installed libraries and binaries so
|
|
that they take less space on disk and run faster</li>
|
|
</ul>
|
|
<u><b><big><big><br>
|
|
<a name="adv"></a>5. Advanced building options</big></big></b></u><br>
|
|
<br>
|
|
These instructions are for C++ developers who want to use wxLua as a
|
|
<span style="font-weight: bold;">script interpreter</span>
|
|
in their own project. This means that you can write
|
|
scripts to make your code simpler, load and run files on the fly, and
|
|
allow users to more easily customize your program with their own Lua
|
|
scripts.<br>
|
|
<br>
|
|
<p style="margin-left: 40px;"><big><span style="font-weight: bold; text-decoration: underline;"><a name="minimalwxlua"></a>5.a Building a minimal set of
|
|
wxWidgets wrappers</span></big></p>
|
|
<div style="margin-left: 40px;">In order to embed wxLua in
|
|
your project, you will probably need the library from <span style="font-family: monospace;">wxLua/modules/lua</span>
|
|
and <span style="font-family: monospace;">wxLua/modules/wxlua</span>
|
|
at a <span style="font-style: italic;">minimum</span>.
|
|
With these two libraries you have the ability to start an interpreter
|
|
and run straight Lua code in it using the wxLuaState class.<br>
|
|
<br>
|
|
To get the ability to create wxWidgets objects and use the
|
|
functionality of wxWidgets in Lua you will also need to build and link
|
|
to the libraries in <span style="font-family: monospace;">modules/wxbind</span>.
|
|
The bindings in <span style="font-family: monospace;">modules/wxbind</span>
|
|
contain nearly all of the classes and functions in wxWidgets. They also
|
|
contain the appropriate <span style="font-family: monospace;">#if
|
|
wxUSE_XXX</span>
|
|
statements and platform dependent <span style="font-family: monospace;">__WXMSW/GTK/MAC__</span>
|
|
checks that wxWidgets uses in its headers to ensure that no matter what
|
|
platform or what type of build you use, the bindings will compile
|
|
without errors (if they don't compile for your settings, please be sure
|
|
to tell us on the <a href="mailto:wxlua-users@lists.sourceforge.net">wxlua-users
|
|
mailing list</a>). <br>
|
|
<br>
|
|
<span style="font-weight: bold;">NOTE</span>: if you
|
|
want all wxWidgets API wrapped and you don't care about <span style="font-weight: bold;">size</span>
|
|
of the wxLua libraries, then you can just skip this section ! You will
|
|
just need to link your program against the wxLua libraries which you
|
|
built in <a href="install.html#win_makefiles">step 2</a>,
|
|
<a href="install.html#win_ide">step 3</a>
|
|
or <a href="install.html#unix">step 4</a>.
|
|
Just look at <a href="install.html#wxlualiborder">section
|
|
5.b</a> for some tips about linking order.<br>
|
|
<br>
|
|
In order to make wxLua libraries smaller, you just need to add
|
|
to your project a file named <span style="font-family: monospace;">wxluasetup.h
|
|
</span>(the name must be exactly that, all lowercase!) which
|
|
should start as a copy of <span style="font-family: monospace;">modules/wxbind/setup/wxluasetup.h</span>.
|
|
Once you have your custom <span style="font-family: monospace;">wxluasetup.h</span>
|
|
you can edit it to your liking. The header file contains a
|
|
number of
|
|
<span style="font-family: monospace;">wxLUA_USE_XXX</span>
|
|
#defines that are fairly self explanitory. By setting some of them to <span style="font-family: monospace;">0</span>
|
|
you can block out large chunks of the bindings making them smaller. <br>
|
|
<br>
|
|
</div>
|
|
<div style="margin-left: 40px;"><span style="font-weight: bold;">NOTE</span>: The
|
|
functionalities of wxLua bindings will obviously be limited by your
|
|
current wxWidgets
|
|
build settings; i.e. if you did not built OpenGL support in wxWidgets
|
|
you won't have it in wxLua! <br>
|
|
</div>
|
|
<br>
|
|
<div style="margin-left: 40px;">Once you have created and
|
|
edited <span style="font-family: monospace;">wxluasetup.h</span>
|
|
you can build your <span style="font-weight: bold;">wxBind
|
|
custom library</span>: on Windows, just open an MSDOS prompt and
|
|
move in the <span style="font-family: monospace;">wxLua/modules/wxbind/build
|
|
</span>directory and then launch a MAKE command using the <span style="font-weight: bold; font-family: monospace;">WXLUASETUP_DIR</span>
|
|
option to tell the makefile the path to your custom <span style="font-family: monospace;">wxluasetup.h</span>
|
|
and the <span style="font-family: monospace; font-weight: bold;">WXLUABINDLIB_DIR</span>
|
|
option to tell the makefile where the custom wxBind library should be
|
|
created:<br>
|
|
<ul>
|
|
<li><span style="font-family: monospace;">nmake -f
|
|
makefile.vc WXLUASETUP_DIR=c:\myproj\include
|
|
WXLUABINDLIB_DIR=c:\myproj\lib</span> (if
|
|
using MSVC)</li>
|
|
<li><span style="font-family: monospace;">make -f
|
|
makefile.bcc WXLUASETUP_DIR=c:\myproj\include
|
|
WXLUABINDLIB_DIR=c:\myproj\lib</span> (if using Borland)</li>
|
|
<li><span style="font-family: monospace;">mingw32-make
|
|
-f makefile.mingw WXLUASETUP_DIR=c:\myproj\include
|
|
WXLUABINDLIB_DIR=c:\myproj\lib</span> (if
|
|
using Mingw)</li>
|
|
<li><span style="font-family: monospace;">wmake -f
|
|
makefile.wat
|
|
WXLUASETUP_DIR=c:\myproj\include
|
|
WXLUABINDLIB_DIR=c:\myproj\lib</span> (if using Watcom)</li>
|
|
</ul>
|
|
On Unix/Linux, unless you used the <span style="font-family: monospace;">--enable-customwxbind-install=no</span>
|
|
option, then the wxBind sources will be installed to <span style="font-family: monospace;">PREFIX/src/wxbind</span>
|
|
as soon as you give the <span style="font-family: monospace;">make
|
|
install</span> command.<br>
|
|
Once you have them installed, just go in the <span style="font-family: monospace;">PREFIX/src/wxbind</span><span style="font-family: monospace;"></span>/build folder
|
|
and type:<br>
|
|
<br>
|
|
<div style="text-align: center;"><span style="font-family: monospace;">make -f makefile.gnu
|
|
WXLUASETUP_DIR=~/myproj/include WXLUABINDLIB_DIR=</span><span style="font-family: monospace;">~/myproj/</span><span style="font-family: monospace;">lib</span><br>
|
|
</div>
|
|
<br>
|
|
and you will get your wxBind custom library compiled.<br>
|
|
<br>
|
|
Last step: you just need to add to your project dependencies the custom
|
|
wxBind library you've just created.<br>
|
|
Next section helps you with linking order which can be a bit troubling
|
|
with some compilers.<br>
|
|
<br>
|
|
</div>
|
|
<p style="margin-left: 40px;"><big><span style="font-weight: bold; text-decoration: underline;"><a name="wxlualiborder"></a>5.b wxLua libraries and
|
|
linking order</span></big></p>
|
|
<div style="margin-left: 40px;">The order in which you
|
|
link to the wxLua libraries is
|
|
important since some variable are initialized using variables from
|
|
other libraries. You must always link to any binding library <span style="font-weight: bold;">after</span> (in terms of
|
|
initialization) linking with
|
|
the wxLua libraries.<br>
|
|
<br>
|
|
<span style="font-weight: bold;">NOTE</span>: Many
|
|
linkers actually link libraries in the opposite order in which they
|
|
appear
|
|
on the command line.<br>
|
|
<br>
|
|
Thus the library order to give to the gcc linker is (last means
|
|
initialized first):<br>
|
|
<br>
|
|
<div style="text-align: center;"><span style="font-family: monospace;">wxbind... </span><span style="font-family: monospace;">, wxbindcore </span><span style="font-family: monospace;">,wxbindbase, wxluasocket,
|
|
</span><span style="font-family: monospace;">wxluadebug,
|
|
</span><span style="font-family: monospace;">wxlua, </span><span style="font-family: monospace;">lua</span>, <span style="font-family: monospace;">wxWidgets libs</span><br>
|
|
</div>
|
|
<br>
|
|
Obviously you should remove the libraries you don't use (e.g.
|
|
wxluasocket, wxluadebug) and use the decorated names for the others.
|
|
The wxLua makefiles/IDE outputs the libraries following the same
|
|
wxWidgets naming rule:<br>
|
|
<br>
|
|
<div style="text-align: center;"><span style="font-family: monospace;">wxlua_$(WX_PORT_WITHVERSION)$(WXLIBPOSTFIX)_wxlua-$(WX_VERSION_MAJOR).$(WX_VERSION_MINOR)</span><br>
|
|
</div>
|
|
<br>
|
|
where <span style="font-family: monospace;">WX_PORT_WITHVERSION</span>
|
|
can be <span style="font-family: monospace;">gtk2</span>,
|
|
<span style="font-family: monospace;">msw</span>, <span style="font-family: monospace;">x11</span>, etc; <span style="font-family: monospace;">WXLIBPOSTFIX </span>can
|
|
be <span style="font-family: monospace;">u</span>, <span style="font-family: monospace;">d</span>, <span style="font-family: monospace;">ud</span>.<br>
|
|
</div>
|
|
<br>
|
|
<hr style="width: 100%; height: 2px;"><br>
|
|
$Id: install.html,v 1.15 2009/05/24 05:34:14 jrl1 Exp $
|
|
</body></html> |