qse/doc/page/installation.md

232 lines
7.1 KiB
Markdown
Raw Normal View History

2012-12-30 06:20:08 +00:00
Installation {#installation}
================================================================================
2012-12-30 06:20:08 +00:00
Source Package
--------------
You can download the source package from
http://code.google.com/p/qse/downloads/list
A source package has this naming format of *qse-<version>.tar.gz*.
Alternatively, you can check out the lastest source files from the subversion
repository by executing the following command:
svn checkout http://qse.googlecode.com/svn/trunk/qse/
2012-12-30 06:20:08 +00:00
Building on Unix/Linux
----------------------
The project uses the standard autoconf/automake generated script files for
buildiing. If you work on the systems where these scripts can run, you can
follow the standard procedures of configuring and making the project.
$ ./configure
$ make
$ make install
You can use this method of building for MinGW or Cygwin on Windows.
2012-12-30 06:20:08 +00:00
Cross-compiling for WIN32
-------------------------
While the autoconf/automake scripts may not support your native compilers,
you can cross-compile it for WIN32/WIN64 with a cross-compiler. Get a
cross-compiler installed first and run the *configure* script with a host
and a target.
With MINGW-W64, you may run *configure* as shown below:
$ ./configure --host=i686-w64-mingw32 --target=i686-w64-mingw32
$ make
$ make install
With MINGW-W64, you may run *configure* as shown below:
$ ./configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
$ make
$ make install
The actual host and target names may vary depending on the cross-compiler
installed.
2012-12-30 06:20:08 +00:00
Native Makefiles
----------------
The project provides makefiles for some selected compilers and platforms.
The makefiles were generated with bakefile (www.bakefile.org) and can be
found in the *bld* subdirectory.
- os2-watcom/makefile (Watcom C/C++ for OS/2)
- win32-watcom/makefile (Watcom C/C++ for Windows)
- win32-borland/makefile (Borland C/C++ for Windows)
- win32-msvc/makefile (Microsoft Visual C/C++ for Windows)
You can execute your native make utility for building in each subdirectory.
2012-12-28 14:32:56 +00:00
For example, to build for OS/2 with Watcom C/C++ in the result mode using
the wide character type, you can execute this:
cd bld\os2-watcom
wmake BUILD=release CHAR=wchar
2012-12-30 06:20:08 +00:00
Build Options
-------------
2012-12-28 14:32:56 +00:00
The configure script and the native makefiles provides some options that you
can use to change the build environment. The options presented here can be
specified to the command line of the configure script or the native make
utilities.
For the configure script, the options should prefixed with double
slashes and mutliples options can be specified together. See this example:
./configure --enable-debug --disable-wchar
For the native makefiles, the options can be appened to the end of the command
line. See this example:
make BUILD=debug CHAR=mchar
### Build Mode ###
You can choose to build the project in the **release** mode or in the **debug**
mode. The resulting libraries and programs in the **debug** mode contain
extra information useful for debugging. The default mode is **release**.
value | configure | native makefile
--------|----------------|-----------------
debug | enable-debug | BUILD=debug
release | disable-debug | BUILD=release
2013-01-07 15:08:22 +00:00
### Character Type ###
2012-12-28 14:32:56 +00:00
You can choose between the wide charcter type and the multi-byte character
type as a basic character type represented in the #qse_char_t type. The default
character type is the wide character type.
2012-12-28 14:32:56 +00:00
value | configure | native makefile
-----------|----------------|-----------------
wide | enable-wchar | CHAR=wchar
multi-byte | disable-wchar | CHAR=mchar
2012-12-28 14:32:56 +00:00
If the wide charater type is chosen:
- #QSE_CHAR_IS_WCHAR is defined.
- #qse_char_t maps to #qse_wchar_t.
2012-12-28 14:32:56 +00:00
If the multi-byte charater type is chosen:
- #QSE_CHAR_IS_MCHAR is defined.
- #qse_char_t maps to #qse_mchar_t.
2012-12-28 14:32:56 +00:00
### Bundled Unicode Routines ###
You can choose to use the bundled character classification routines
based on unicode. It is disabled by default.
value | configure | native makefile
-----------|--------------------------|-----------------
on | enable-bundled-unicode | BUNDLED_UNICODE=on
off | disable-bundled-unicode | BUNDLED_UNICODE=off
Enabling this option makes the routines defined in <qse/cmn/uni.h>
to be included in the resulting library. It also affects somes routines
defined in <qse/cmn/chr.h> to use these bundled unicode routines.
### Character Encoding Conversion ###
You can include extra routines for character encoding conversion into
the resulting library. This option is disabled by default.
value | configure | native makefile
-----------|-----------------|---------------------
on | enable-xcmgrs | XCMGRS=on
off | disable-xcmgrs | XCMGRS=off
More #qse_cmgr_t instances are made available when this option is enabled.
The UTF-8 conversion and the locale-based conversion are included regardless
of this option.
### TCPV40HDRS ###
The option, when turned on, enables you to use *tcp32dll.dll* and *so32dll.dll*
instead of *tcpip32.dll*. Doing so allows a resulting program to run on OS/2
systems without the 32-bit TCP/IP stack. This option is off by default and
available for the native makefile for Watcom C/C++ for OS/2 only.
wmake TCPV40HDRS=on
### C++ ###
C++ support is enabled by default as long as a C++ compiler is detected.
If you want to disable it for any reasons, you can specify `--disable-cxx`.
./configure --disable-cxx
2014-11-17 15:01:49 +00:00
### SCO UNIX System V/386 Release 3.2 ###
2014-11-17 17:18:11 +00:00
- If /usr/include/netinet and /usr/include/net are missing,
check if there are /usr/include/sys/netinet and /usr/include/sys/net.
if they exists, you can make symbolic links.
2014-11-17 17:18:11 +00:00
cd /usr/include
ln -sf sys/netinet netinet
ln -sf sys/net net
2014-11-17 15:01:49 +00:00
- Specify GREP if configure fails to find an acceptable grep.
2014-11-18 16:10:12 +00:00
- Specify RANLIB to /bin/true.
/bin/ranlib ended up like this: *ranlib: .libs/libqsecmn.a: not an archive*
2014-11-17 15:01:49 +00:00
- Build in the source tree. Building outside the source tree is likely to fail
for dificiency of the bundled make utility.
- Do not include -g in CFLAGS.
./configure GREP=/bin/grep RANLIB=/bin/true CFLAGS=""
2014-11-17 15:01:49 +00:00
- Remove $(LIBLTDL) from LIBADD_LIB_COMMON in lib/awk/Makefile
- Remove $(LIBLTDL) from libqsehttp_la_LIBADD in lib/http/Makefile
2014-11-17 17:18:11 +00:00
make
2014-11-17 15:01:49 +00:00
### Mac OS X/Darwin ###
No special consideration is required if you work with moderately recent
version of developer tools. The GCC compiler by Apple before early 2000's
has an option called `-no-cpp-precomp`.
\code
% cc -E /tmp/a.c
#1 "/tmp/a.c"
int main ( )
{
Lxxxx ;
return 0 ;
}
% cc -E -no-cpp-precomp /tmp/a.c
#1 "/tmp/a.c"
int main ( )
{
Lxxxx ;
return 0 ;
}
\endcode
Without the `-no-cpp-precomp` option, some preprocessing produces erroneous
code. If your compiler behaves this way, you should specify `-no-cpp-precomp`
to CFLAGS or CXXFLAGS when running configure. For instance,
$ ./configure --prefix=/usr/local --disable-cxx CFLAGS="-Wall -g -no-cpp-precomp"
2012-12-28 14:32:56 +00:00
### More options ###
More options are available for the configure script. Execute this for more
information:
./configure --help