* INSTALL
* external/Makefile
+ external/libhpdf/*
+ external/libpng/*
+ Added libharu and libpng to Harbour repository.
Now it's possible to use libhpdf as static lib on all
platforms. This is useful because this lib isn't yet part
of Linux distros.
libpng is only built for win/dos/os2 platforms.
It's possible to override libpng location by using
HB_INC_LIBPNG envvar.
* contrib/hbhpdf/Makefile
+ Look for libharu headers in /external dir.
* external/sqlite3/Makefile
- Disabled for bcc. Latest sqlite3 version breaks with this compiler:
---
Error E2293 ../../sqlite3.c 29156: ) expected in function winCurrentTime
Warning W8013 ../../sqlite3.c 29157: Possible use of 'timeW' before definition in function winCurrentTime
Error E2379 ../../sqlite3.c 29157: Statement missing ; in function winCurrentTime
Error E2379 ../../sqlite3.c 29158: Statement missing ; in function winCurrentTime
Error E2379 ../../sqlite3.c 29160: Statement missing ; in function winCurrentTime
Error E2293 ../../sqlite3.c 29161: ) expected in function winCurrentTime
Error E2379 ../../sqlite3.c 29162: Statement missing ; in function winCurrentTime
Error E2293 ../../sqlite3.c 29163: ) expected in function winCurrentTime
Warning W8057 ../../sqlite3.c 29171: Parameter 'prNow' is never used in function winCurrentTime
*** 7 errors in Compile ***
---
bcc users can report this problem here:
http://www.sqlite.org/cvstrac/tktnew
+ tests/bnch_win.bat
- tests/bnchmark
* Moved bnch_win.bat to tests.
303 lines
10 KiB
Plaintext
303 lines
10 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
HARBOUR
|
|
=======
|
|
|
|
"The Harbour Project is a Free Open Source Software effort to build
|
|
a multiplatform Clipper language compiler. Harbour consists of the
|
|
xBase language compiler and the runtime libraries with different
|
|
terminal plugins and different databases (not just DBF)"
|
|
|
|
http://www.harbour-project.org/
|
|
|
|
|
|
HOW TO BUILD AND INSTALL HARBOUR
|
|
================================
|
|
|
|
For all platforms you'll need:
|
|
|
|
* Supported ANSI C compiler
|
|
* GNU Make (3.81 or upper)
|
|
|
|
Linux/Darwin/BSD/HP-UX/Solaris
|
|
------------------------------
|
|
$ export HB_COMPILER=<[gcc]|owatcom|icc|gpp>
|
|
$ export HB_INSTALL_PREFIX=<DIR>
|
|
$ ./make_gnu.sh
|
|
$ sudo ./make_gnu.sh install
|
|
|
|
To test it, go to <DIR>/bin directory and type:
|
|
$ ./hbmk2 ../tests/hello.prg
|
|
$ ./hello
|
|
You should see 'Hello world!' on screen.
|
|
|
|
Windows with MinGW + msys
|
|
-------------------------
|
|
This is the recommended way to build with MinGW.
|
|
|
|
Make sure to have msys and MinGW properly configured.
|
|
msys should be put in PATH _before_ MinGW.
|
|
|
|
> set HB_INSTALL_PREFIX=<DIR>
|
|
> sh make_gnu.sh install
|
|
|
|
To test it, go to <DIR>/bin directory and type:
|
|
> hbmk2 ../tests/hello.prg
|
|
> hello
|
|
You should see 'Hello world!' on screen.
|
|
|
|
Windows with Cygwin
|
|
-------------------
|
|
Make sure to have Cygwin properly configured.
|
|
|
|
> set HB_INSTALL_PREFIX=<DIR>
|
|
> sh make_gnu.sh install
|
|
|
|
To test it, go to <DIR>/bin directory and type:
|
|
> hbmk2 ../tests/hello.prg
|
|
> hello
|
|
You should see 'Hello world!' on screen.
|
|
|
|
NOTE: <DIR> should use Cygwin drive notation: /cygdrive/c for C:
|
|
|
|
Windows with other compilers (MSVC, Watcom, Borland, Pelles, etc.)
|
|
----------------------------
|
|
Platform specific prerequisites:
|
|
|
|
1.) Windows NT or compatible system is required to build Harbour.
|
|
2.) Make sure to have your C compiler of choice properly installed.
|
|
Refer to your C compiler installation and setup instructions for
|
|
details. It's recommended to make sure no tools in your PATH
|
|
belonging to other C compilers are interfering with your setup.
|
|
For the list of supported compilers, please look up the
|
|
relevant section of this file.
|
|
3.) Make sure to have GNU Make. Certain older versions and builds
|
|
are untested and may not work. We recommend the one distributed
|
|
by MinGW team. Use this link to get it:
|
|
https://sourceforge.net/project/showfiles.php?group_id=2435&package_id=23918
|
|
If you have it, you have three choices:
|
|
- Copy mingw32-make.exe or make.exe into a separate directory
|
|
and add that directory to the beginning of your PATH.
|
|
(recommended)
|
|
- Put mingw32-make.exe anywhere in your PATH.
|
|
- Put mingw32-make.exe in Harbour source root dir.
|
|
|
|
> set HB_COMPILER=<msvc|owatcom|bcc|pocc|...>
|
|
> set HB_INSTALL_PREFIX=<DIR>
|
|
> make_gnu.bat install
|
|
|
|
To test it, go to <DIR>\bin directory and type:
|
|
> hbmk2 ..\tests\hello.prg
|
|
> hello
|
|
You should see 'Hello world!' on screen.
|
|
|
|
NOTE: <DIR> is your destination directory where executables,
|
|
libraries and headers will be created. Use absolute paths
|
|
only. For a peace of mind, avoid using spaces, quotes
|
|
in the name. You can leave it empty, in this case the
|
|
results will be created under the current directory tree.
|
|
|
|
DOS
|
|
---
|
|
> set HB_COMPILER=<[djgpp]|owatcom>
|
|
> set HB_INSTALL_PREFIX=<DIR>
|
|
> make_gnu.bat install
|
|
|
|
OS/2
|
|
----
|
|
> set HB_COMPILER=<[gcc]|owatcom>
|
|
> set HB_INSTALL_PREFIX=<DIR>
|
|
> make_gnu_os2.cmd install
|
|
|
|
|
|
HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD
|
|
==============================================
|
|
|
|
Some Harbour parts (typically contrib libraries) depend on 3rd
|
|
party components. To make these Harbour parts built, you need
|
|
to tell Harbour where to find the required 3rd party components
|
|
(typically headers).
|
|
|
|
On *nix systems most of these 3rd party components will
|
|
automatically be picked up if installed in some well-known
|
|
standard system locations.
|
|
|
|
You only need to use manual setup if the dependency isn't available
|
|
on your platform on a system location, or you wish to use
|
|
a non-standard location. Typically you need to do that on non-*nix
|
|
(Windows/DOS/OS2) systems for all packages and for a few packages on
|
|
*nix which aren't available through official package managers
|
|
(ADS Client f.e.). Please see a list of official packages in
|
|
doc/linux1st.txt.
|
|
|
|
You can set these environment variables before starting
|
|
the build. Make sure to adjust them to your own directories:
|
|
|
|
HB_INC_ADS=C:\ads\acesdk
|
|
HB_INC_ALLEGRO=C:\allegro\include
|
|
HB_INC_BLAT=C:\blat\full\source
|
|
HB_INC_CURL=C:\curl\include
|
|
HB_INC_FIREBIRD=C:\Firebird\include
|
|
HB_INC_FREEIMAGE=C:\FreeImage\Dist
|
|
HB_INC_GD=C:\gd\include
|
|
HB_INC_LIBHARU=C:\libharu\include (defaults to locally hosted version)
|
|
HB_INC_LIBPNG=C:\libpng (defaults to locally hosted version on win/os2/dos)
|
|
HB_INC_MYSQL=C:\mysql\include
|
|
HB_INC_OPENSSL=C:\openssl\inc32
|
|
HB_INC_PGSQL=C:\pgsql\include
|
|
HB_INC_QT=C:\Qt\2009.01\qt\include
|
|
HB_INC_SQLITE3=C:\sqlite3 (defaults to locally hosted version on win/os2)
|
|
|
|
NOTES: - For mingw and cygwin you have to use forward slashes
|
|
and also cygwin drive notation for cygwin.
|
|
- Space in directory names isn't currently supported.
|
|
- Don't put the dir inside double quotes.
|
|
- Use absolute paths.
|
|
|
|
Darwin (OS X)
|
|
-------------
|
|
1.) Install MacPorts, follow their instructions:
|
|
http://www.macports.org/
|
|
2.) sudo port install allegro freeimage gd2 mysql5-devel postgresql83
|
|
|
|
|
|
SUPPORTED C COMPILERS UNDER DIFFERENT PLATFORMS
|
|
===============================================
|
|
|
|
You can use abbreviations below as HB_COMPILER values.
|
|
|
|
Linux
|
|
-----
|
|
gcc - GNU C
|
|
gpp - GNU C++
|
|
owatcom - Open Watcom C++
|
|
icc - Intel(R) C/C++
|
|
|
|
Darwin/BSD/HP-UX/Solaris
|
|
------------------------
|
|
gcc - GNU C
|
|
|
|
Windows
|
|
-------
|
|
mingw - MinGW GNU C
|
|
mingw64 - MinGW GNU C x64
|
|
mingwce - MinGW GNU C ARM (Windows CE)
|
|
msvc - Microsoft Visual C++
|
|
msvc64 - Microsoft Visual C++ x64
|
|
msvcia64 - Microsoft Visual C++ IA64
|
|
msvcce - Microsoft Visual C++ ARM (Windows CE)
|
|
pocc - Pelles C 4.5 and above
|
|
pocc64 - Pelles C 5.0 x64
|
|
poccce - Pelles C 5.0 ARM (Windows CE)
|
|
xcc - Pelles C for xhb
|
|
owatcom - Open Watcom C++
|
|
icc - Intel(R) C/C++
|
|
iccia64 - Intel(R) C/C++ IA64
|
|
bcc - Borland/CodeGear C++ 4.x and above
|
|
cygwin - Cygwin GNU C
|
|
|
|
DOS (32-bit)
|
|
---
|
|
djgpp - Delorie GNU C
|
|
owatcom - Open Watcom C++ 9.x and above
|
|
|
|
OS/2
|
|
----
|
|
gcc - EMX GNU C
|
|
owatcom - Open Watcom C++
|
|
|
|
|
|
OPTIONS AVAILABLE WHEN BUILDING HARBOUR
|
|
=======================================
|
|
|
|
You can fine-tune Harbour builds with below listed
|
|
environment variables. All of these are optional.
|
|
|
|
General
|
|
-------
|
|
- HB_USER_PRGFLAGS User Harbour compiler options
|
|
- HB_USER_CFLAGS User C compiler options
|
|
- HB_USER_LDFLAGS User linker options for executables
|
|
- HB_USER_AFLAGS User linker options for libraries
|
|
- HB_USER_MAKEFLAGS User GNU Make options
|
|
|
|
- HB_BIN_INSTALL Target directory to install executables
|
|
- HB_LIB_INSTALL Target directory to install libraries
|
|
- HB_INC_INSTALL Target directory to install language headers
|
|
- HB_DOC_INSTALL Target directory to install documentation
|
|
|
|
Special
|
|
-------
|
|
- HB_BUILD_DLL=yes To create a full build with .dlls.
|
|
This is only needed and available for
|
|
non-GNU Windows compilers. When using this,
|
|
full clean + install cycles will automatically
|
|
be executed, so you don't have to explicitly
|
|
pass them to make_gnu.bat.
|
|
- HB_BUILD_DEBUG=yes Create a debug build.
|
|
- HB_BUILD_OPTIM=no Disable C compiler optimizations.
|
|
- HB_CONTRIBLIBS=no Don't build any contrib libraries.
|
|
- HB_CONTRIBLIBS=[<list>] Build space separated <list> of contrib
|
|
libraries. Build all if left empty.
|
|
- HB_CONTRIB_ADDONS=<list> Build additional libraries stored
|
|
in the contrib directory.
|
|
- HB_VISUALC_VER_PRE80=yes Set this if you're using a pre-8.0
|
|
(= pre-MSVS 2005) version of MSVC compiler.
|
|
- HB_REBUILD_PARSER=yes To rebuild the language parsers. Typically
|
|
you only need this if your are Harbour core
|
|
developer modifying the parser.
|
|
This requires GNU Bison 1.28 or upper.
|
|
|
|
Cross building
|
|
--------------
|
|
|
|
with mingwce:
|
|
HB_COMP_PATH=<HARBOUR_NATIVE_BUILD_DIR>\bin\harbour.exe
|
|
HB_PPGEN_PATH=<HARBOUR_NATIVE_BUILD_DIR>\bin\hbpp.exe
|
|
with rest of compilers:
|
|
HB_BIN_COMPILE=<HARBOUR_NATIVE_BUILD_DIR>\bin
|
|
HB_PPGEN_PATH=<HARBOUR_NATIVE_BUILD_DIR>\bin
|
|
|
|
You need these when building for a platform different than host.
|
|
For this to work, you will need to point above envvars to
|
|
a native Harbour build available on your system. You don't need
|
|
a full native build, harbour.exe and hbpp.exe are enough for
|
|
the process to succeed.
|
|
|
|
|
|
FOR MORE INFORMATION
|
|
====================
|
|
|
|
Home:
|
|
http://www.harbour-project.org/
|
|
|
|
Mailing lists:
|
|
http://www.harbour-project.org/mailing.html
|
|
|
|
Developers' mail archives:
|
|
http://lists.harbour-project.org/pipermail/harbour/
|
|
|
|
Users' mail archives:
|
|
http://lists.harbour-project.org/pipermail/harbour-users/
|
|
|
|
Sourceforge page:
|
|
https://sourceforge.net/projects/harbour-project/
|
|
|
|
Development timeline:
|
|
https://apps.sourceforge.net/trac/harbour-project/timeline
|
|
|
|
Source repository browser:
|
|
http://harbour-project.svn.sourceforge.net/viewvc/harbour-project/
|
|
|
|
Source repository checkout (anonymous):
|
|
svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project harbour-project
|
|
|
|
Miscellaneous documents:
|
|
/doc directory under this dir.
|
|
|
|
|
|
|
|
[ Copyright 2009 Viktor Szakats <harbour.01 syenar.hu> ]
|