2009-08-14 23:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
+ Separated instructions for linux/darwin and rest of *nixes.
The only difference is that the latter needs 'gmake' command
to start.
+ MSYS/Cygwin section extended a bit. (It's now possible to
build for any compilers from MSYS/Cygwin)
* make_gnu.sh
% Deleted unused HB_ARCH64 variable.
* config/global.cf
- Deleted svnversion trick since it's not guaranteed this
command is present on builder's system.
+ Added doc links from make_gnu.sh. (deleted from there)
* Changed to default HB_INSTALL_PREFIX to /usr/local on
*nix systems. I very much don't like this (even though I
understand why it's done that way).
+ Added {HB_TOP} macro for HB_INSTALL_PREFIX, so if someone
wants to install Harbour in its own dir, it enough to do:
export/set HB_INSTALL_PREFIX={HB_TOP}.
This is crucial if someone doesn't want to "pollute" system
areas with Harbour builds, doesn't want to use admin rights
to make the install, or if someone wants to use multiple
Harbour builds in parallel for any reason. hbmk2 works
perfectly without Harbour being installed to system location.
+ Whenever HB_INSTALL_PREFIX is modified by GNU Make (defaulting
or macro replacement), the new value will be presented for the
user.
% Minor optimization.
* Minor cleanups to pkg dir assembling logic.
* config/linux/global.cf
+ Added -fPIC detection logic. This is just a start, it doesn't
replicate full logic found in make_gnu.sh. Przemek, if you have
some spare time, please look into it.
This commit is contained in:
@@ -17,6 +17,43 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-08-14 23:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* INSTALL
|
||||
+ Separated instructions for linux/darwin and rest of *nixes.
|
||||
The only difference is that the latter needs 'gmake' command
|
||||
to start.
|
||||
+ MSYS/Cygwin section extended a bit. (It's now possible to
|
||||
build for any compilers from MSYS/Cygwin)
|
||||
|
||||
* make_gnu.sh
|
||||
% Deleted unused HB_ARCH64 variable.
|
||||
|
||||
* config/global.cf
|
||||
- Deleted svnversion trick since it's not guaranteed this
|
||||
command is present on builder's system.
|
||||
+ Added doc links from make_gnu.sh. (deleted from there)
|
||||
* Changed to default HB_INSTALL_PREFIX to /usr/local on
|
||||
*nix systems. I very much don't like this (even though I
|
||||
understand why it's done that way).
|
||||
+ Added {HB_TOP} macro for HB_INSTALL_PREFIX, so if someone
|
||||
wants to install Harbour in its own dir, it enough to do:
|
||||
export/set HB_INSTALL_PREFIX={HB_TOP}.
|
||||
This is crucial if someone doesn't want to "pollute" system
|
||||
areas with Harbour builds, doesn't want to use admin rights
|
||||
to make the install, or if someone wants to use multiple
|
||||
Harbour builds in parallel for any reason. hbmk2 works
|
||||
perfectly without Harbour being installed to system location.
|
||||
+ Whenever HB_INSTALL_PREFIX is modified by GNU Make (defaulting
|
||||
or macro replacement), the new value will be presented for the
|
||||
user.
|
||||
% Minor optimization.
|
||||
* Minor cleanups to pkg dir assembling logic.
|
||||
|
||||
* config/linux/global.cf
|
||||
+ Added -fPIC detection logic. This is just a start, it doesn't
|
||||
replicate full logic found in make_gnu.sh. Przemek, if you have
|
||||
some spare time, please look into it.
|
||||
|
||||
2009-08-14 22:33 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* source/pp/Makefile
|
||||
! Fixed to not throw harmless but still confusing error
|
||||
|
||||
@@ -25,8 +25,8 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
|
||||
* GNU Make (3.81 or upper)
|
||||
* Harbour sources (2.0.0 or upper)
|
||||
|
||||
Linux/Darwin/BSD/HP-UX/Solaris
|
||||
------------------------------
|
||||
Linux/Darwin
|
||||
------------
|
||||
[ $ export HB_COMPILER=<gcc|watcom|icc|sunpro> ]
|
||||
[ $ export HB_INSTALL_PREFIX=<DIR> ]
|
||||
$ make install
|
||||
@@ -37,6 +37,18 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
|
||||
$ ./hello
|
||||
You should see 'Hello world!' on screen.
|
||||
|
||||
BSD/HP-UX/Solaris
|
||||
-----------------
|
||||
[ $ export HB_COMPILER=<gcc|sunpro> ]
|
||||
[ $ export HB_INSTALL_PREFIX=<DIR> ]
|
||||
$ gmake install
|
||||
|
||||
To test it, type:
|
||||
$ cd bin
|
||||
$ ./hbmk2 ../tests/hello.prg
|
||||
$ ./hello
|
||||
You should see 'Hello world!' on screen.
|
||||
|
||||
NOTE for sunpro on Solaris:
|
||||
---------------------------
|
||||
If you have any GNU binutils stuff installed, do make sure
|
||||
@@ -80,10 +92,12 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
|
||||
- You can also use Linux hosts to create Windows CE builds.
|
||||
See script: make_gnu_xmingwce.sh
|
||||
|
||||
Windows with MinGW + MSYS or Cygwin
|
||||
----------------------------------------------
|
||||
You can also use bash shell to build for these platforms.
|
||||
Windows with MSYS or Cygwin shells
|
||||
----------------------------------
|
||||
You can also use these shells to build Harbour on Windows.
|
||||
Generally it's recommended to use native shell though.
|
||||
|
||||
[ > set HB_COMPILER=<...> ]
|
||||
[ > set HB_INSTALL_PREFIX=<DIR> ]
|
||||
> sh -c make install
|
||||
|
||||
@@ -95,6 +109,9 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
|
||||
|
||||
NOTES: - With cygwin, <DIR> should use Cygwin drive
|
||||
notation: /cygdrive/c for C:
|
||||
- When building for Borland C make sure that
|
||||
GNU Make is executed when typing 'make',
|
||||
Borland Make has the same name.
|
||||
|
||||
MS-DOS
|
||||
------
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
# http://lists.gnu.org/archive/html/help-make/
|
||||
# Portable shell programming:
|
||||
# http://www.gnu.org/software/autoconf/manual/html_node/Portable-Shell.html
|
||||
# http://www.gnu.org/software/bash/manual/bashref.html
|
||||
# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
|
||||
# GNU Coding standards:
|
||||
# http://www.gnu.org/prep/standards/standards.html
|
||||
# ---------------------------------------------------------------
|
||||
@@ -170,34 +172,34 @@ ifneq ($(HB_BUILD_NAME),)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HB_CONFIG_SHOWN),)
|
||||
ifeq ($(HB_INIT_DONE),)
|
||||
# Store the original value
|
||||
export HB_MAKECMDGOALS := $(MAKECMDGOALS)
|
||||
endif
|
||||
|
||||
ifeq ($(HB_BUILD_PKG),yes)
|
||||
ifeq ($(HB_BUILD_PKG),yes)
|
||||
|
||||
# 'clean' and 'install' are required when building a release package
|
||||
ifeq ($(findstring clean,$(HB_MAKECMDGOALS)),)
|
||||
export HB_BUILD_PKG := no
|
||||
else
|
||||
ifeq ($(findstring install,$(HB_MAKECMDGOALS)),)
|
||||
# 'clean' and 'install' are required when building a release package
|
||||
ifeq ($(findstring clean,$(HB_MAKECMDGOALS)),)
|
||||
export HB_BUILD_PKG := no
|
||||
else
|
||||
ifeq ($(findstring install,$(HB_MAKECMDGOALS)),)
|
||||
export HB_BUILD_PKG := no
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HB_BUILD_PKG),no)
|
||||
$(warning ! Warning: You have to use 'clean install' to create a release package.)
|
||||
endif
|
||||
ifeq ($(HB_BUILD_PKG),no)
|
||||
$(warning ! Warning: You have to use 'clean install' to create a release package.)
|
||||
endif
|
||||
|
||||
# Enforce some basic setting for release packages
|
||||
export HB_BUILD_DLL := yes
|
||||
export HB_BUILD_IMPLIB := no
|
||||
export HB_BUILD_OPTIM := yes
|
||||
export HB_BUILD_DEBUG := no
|
||||
# Enforce some basic setting for release packages
|
||||
export HB_BUILD_DLL := yes
|
||||
export HB_BUILD_IMPLIB := no
|
||||
export HB_BUILD_OPTIM := yes
|
||||
export HB_BUILD_DEBUG := no
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HB_CONFIG_SHOWN),)
|
||||
ifeq ($(HB_INIT_DONE),)
|
||||
ifneq ($(MAKE_381),)
|
||||
|
||||
# Some additional ones to be given a standard name:
|
||||
@@ -223,9 +225,6 @@ ifeq ($(HB_CONFIG_SHOWN),)
|
||||
# -DHB_PCRE_REGEX, -DHB_POSIX_REGEX, -DHB_EXT_ZLIB, -DHB_HAS_GPM
|
||||
|
||||
$(info ! MAKE: $(MAKE) $(MAKE_VERSION) $(HB_MAKECMDGOALS) $(SHELL))
|
||||
ifeq ($(HB_BUILD_VERBOSE),yes)
|
||||
$(info ! SVN: $(shell svnversion))
|
||||
endif
|
||||
ifneq ($(HB_USER_PRGFLAGS),)
|
||||
$(info ! HB_USER_PRGFLAGS: $(HB_USER_PRGFLAGS))
|
||||
endif
|
||||
@@ -385,7 +384,7 @@ ifeq ($(HB_HOST_ARCH),)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HB_CONFIG_SHOWN),)
|
||||
ifeq ($(HB_INIT_DONE),)
|
||||
ifneq ($(MAKE_381),)
|
||||
$(info ! HB_HOST_ARCH: $(HB_HOST_ARCH) HB_SHELL: $(HB_SHELL))
|
||||
endif
|
||||
@@ -582,7 +581,7 @@ ifeq ($(HB_COMPILER),)
|
||||
$(error ! HB_COMPILER not set, couldn't autodetect.)
|
||||
endif
|
||||
|
||||
ifeq ($(HB_CONFIG_SHOWN),)
|
||||
ifeq ($(HB_INIT_DONE),)
|
||||
ifneq ($(MAKE_381),)
|
||||
$(info ! HB_ARCHITECTURE: $(HB_ARCHITECTURE) $(HB_ARCH_AUTO))
|
||||
$(info ! HB_COMPILER: $(HB_COMPILER) $(HB_COMP_AUTO))
|
||||
@@ -810,23 +809,32 @@ export HB_VERSION
|
||||
export HB_PKGNAME
|
||||
export HB_PKGNAMI
|
||||
|
||||
HB_INSTALL_PREFIX_ORI := $(HB_INSTALL_PREFIX)
|
||||
ifeq ($(HB_BUILD_PKG),yes)
|
||||
PKG_DIR := $(subst /,$(DIRSEP),$(TOP)$(ROOT))pkg
|
||||
export HB_PKGBASE := $(PKG_DIR)$(DIRSEP)$(HB_ARCHITECTURE)$(DIRSEP)$(HB_COMPILER)
|
||||
export HB_PKGPATH := $(subst /,$(DIRSEP),$(abspath $(PKG_DIR)$(DIRSEP)$(HB_PKGNAME)))
|
||||
HB_INSTALL_PREFIX := $(subst /,$(DIRSEP),$(abspath $(HB_PKGBASE)$(DIRSEP)$(HB_PKGNAME)))
|
||||
ifeq ($(HB_INIT_DONE),)
|
||||
PKG_DIR := $(TOP)$(ROOT)pkg
|
||||
export HB_PKGBASE := $(subst /,$(DIRSEP),$(PKG_DIR)/$(HB_ARCHITECTURE)/$(HB_COMPILER))
|
||||
export HB_PKGPATH := $(subst /,$(DIRSEP),$(abspath $(PKG_DIR)/$(HB_PKGNAME)))
|
||||
HB_INSTALL_PREFIX := $(subst /,$(DIRSEP),$(abspath $(HB_PKGBASE)/$(HB_PKGNAME)))
|
||||
PKG_DIR := $(subst /,$(DIRSEP),$(PKG_DIR))
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
HB_BIN_INSTALL :=
|
||||
HB_INC_INSTALL :=
|
||||
HB_LIB_INSTALL :=
|
||||
HB_DOC_INSTALL :=
|
||||
HB_BIN_INSTALL :=
|
||||
HB_INC_INSTALL :=
|
||||
HB_LIB_INSTALL :=
|
||||
HB_DOC_INSTALL :=
|
||||
endif
|
||||
else
|
||||
# Fill it automatically if not specified
|
||||
ifeq ($(HB_INSTALL_PREFIX),)
|
||||
|
||||
HB_INSTALL_PREFIX := $(subst /,$(DIRSEP),$(realpath $(TOP)$(ROOT)))
|
||||
ifeq ($(HB_UNIX_COMPATIBLE),no)
|
||||
HB_INSTALL_PREFIX := $(realpath $(TOP)$(ROOT))
|
||||
else
|
||||
# Stick to *nix customs. I don't like it, it needs admin.
|
||||
HB_INSTALL_PREFIX := /usr/local
|
||||
endif
|
||||
|
||||
HB_INSTALL_PREFIX := $(subst /,$(DIRSEP),$(HB_INSTALL_PREFIX))
|
||||
|
||||
# Use names which are not likely to be used by users to
|
||||
# avoiding accidental overwrites of existing installations
|
||||
@@ -839,23 +847,29 @@ else
|
||||
# HB_INSTALL_PREFIX := $(HOME)$(DIRSEP)hb-auto-$(HB_ARCHITECTURE)-$(HB_COMPILER)
|
||||
# endif
|
||||
# endif
|
||||
else
|
||||
# TOFIX: HB_INSTALL_PREFIX will have to be duplicated internally to avoid
|
||||
# recursive operation here.
|
||||
|
||||
ifneq ($(MAKE_381),)
|
||||
$(info ! HB_INSTALL_PREFIX automatically set to $(HB_INSTALL_PREFIX))
|
||||
endif
|
||||
# Handle simple macros in value
|
||||
HB_INSTALL_PREFIX := $(subst {HB_ARCH},$(HB_ARCHITECTURE),$(HB_INSTALL_PREFIX))
|
||||
HB_INSTALL_PREFIX := $(subst {HB_COMP},$(HB_COMPILER),$(HB_INSTALL_PREFIX))
|
||||
HB_INSTALL_PREFIX := $(subst {HB_CPU},$(HB_CPU),$(HB_INSTALL_PREFIX))
|
||||
HB_INSTALL_PREFIX := $(subst {HB_TOP},$(realpath $(TOP)$(ROOT)),$(HB_INSTALL_PREFIX))
|
||||
HB_INSTALL_PREFIX := $(subst /,$(DIRSEP),$(HB_INSTALL_PREFIX))
|
||||
endif
|
||||
endif
|
||||
|
||||
export HB_INSTALL_PREFIX
|
||||
|
||||
ifneq ($(HB_INSTALL_PREFIX_ORI),$(HB_INSTALL_PREFIX))
|
||||
ifneq ($(MAKE_381),)
|
||||
$(info ! HB_INSTALL_PREFIX set to $(HB_INSTALL_PREFIX))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(HB_INSTALL_PREFIX),)
|
||||
|
||||
# TOFIX: HB_INSTALL_PREFIX will have to be duplicated internally to avoid
|
||||
# recursive operation here.
|
||||
|
||||
# Handle simple macros in value
|
||||
HB_INSTALL_PREFIX := $(subst {HB_ARCH},$(HB_ARCHITECTURE),$(HB_INSTALL_PREFIX))
|
||||
HB_INSTALL_PREFIX := $(subst {HB_COMP},$(HB_COMPILER),$(HB_INSTALL_PREFIX))
|
||||
HB_INSTALL_PREFIX := $(subst {HB_CPU},$(HB_CPU),$(HB_INSTALL_PREFIX))
|
||||
|
||||
ifeq ($(HB_UNIX_COMPATIBLE),no)
|
||||
LIBPOSTFIX := $(DIRSEP)$(subst /,$(DIRSEP),$(ARCH_COMP))
|
||||
else
|
||||
@@ -886,8 +900,6 @@ ifneq ($(HB_INSTALL_PREFIX),)
|
||||
endif
|
||||
endif
|
||||
|
||||
export HB_INSTALL_PREFIX
|
||||
|
||||
export HB_OBJ_DIR := $(subst /,$(DIRSEP),$(OBJ_DIR))
|
||||
|
||||
ifeq ($(HB_BIN_COMPILE),)
|
||||
@@ -918,7 +930,7 @@ ifeq ($(findstring -w,$(HB_USER_MAKEFLAGS))$(findstring --print-directory,$(HB_U
|
||||
MKFLAGS := --no-print-directory
|
||||
endif
|
||||
|
||||
export HB_CONFIG_SHOWN := yes
|
||||
export HB_INIT_DONE := yes
|
||||
|
||||
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
|
||||
include $(TOP)$(ROOT)config/globsh.cf
|
||||
|
||||
@@ -7,3 +7,15 @@ all : first
|
||||
BIN_EXT :=
|
||||
|
||||
HB_GT_LIBS += gttrm
|
||||
|
||||
ifeq ($(HB_SHELL),sh)
|
||||
ifneq ($(HB_COMPILER),sunpro)
|
||||
ifeq ($(findstring -fPIC,$(HB_USER_CFLAGS)),)
|
||||
_UNAME_M := $(shell uname -m)
|
||||
# TODO: Make this complete
|
||||
ifneq ($(findstring $(_UNAME_M),@64 _64),)
|
||||
HB_USER_CFLAGS += -fPIC
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -13,13 +13,6 @@
|
||||
# Please read INSTALL for further information.
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# See GNU bash docs here:
|
||||
# http://www.gnu.org/software/bash/manual/bashref.html
|
||||
# See POSIX shell docs here:
|
||||
# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
if [ -z "$HB_ARCHITECTURE" ]; then
|
||||
if [ "$OSTYPE" = "msdosdjgpp" ]; then
|
||||
hb_arch="dos"
|
||||
@@ -70,7 +63,6 @@ then
|
||||
case "$HB_CPU" in
|
||||
*[@_]64)
|
||||
export HB_USER_CFLAGS="$HB_USER_CFLAGS -fPIC"
|
||||
HB_ARCH64="yes"
|
||||
;;
|
||||
*[ix]*86)
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user