7.1 KiB
Installation
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-.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/
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.
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.
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. 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
Build Options
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 |
Character Type
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.
value | configure | native makefile |
---|---|---|
wide | enable-wchar | CHAR=wchar |
multi-byte | disable-wchar | CHAR=mchar |
If the wide charater type is chosen:
- #QSE_CHAR_IS_WCHAR is defined.
- #qse_char_t maps to #qse_wchar_t.
If the multi-byte charater type is chosen:
- #QSE_CHAR_IS_MCHAR is defined.
- #qse_char_t maps to #qse_mchar_t.
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
SCO UNIX System V/386 Release 3.2
-
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.
cd /usr/include ln -sf sys/netinet netinet ln -sf sys/net net
-
Specify GREP if configure fails to find an acceptable grep.
-
Specify RANLIB to /bin/true. /bin/ranlib ended up like this: ranlib: .libs/libqsecmn.a: not an archive
-
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=""
-
Remove $(LIBLTDL) from LIBADD_LIB_COMMON in lib/awk/Makefile
-
Remove $(LIBLTDL) from libqsehttp_la_LIBADD in lib/http/Makefile
make
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"
More options
More options are available for the configure script. Execute this for more information:
./configure --help