2007-12-03 18:25 UTC+0100 Marek Paliwoda (mpaliwoda at interia pl)

* harbour/common.mak
  * harbour/make_gcc.mak
  * harbour/make_gcc.sh
    + Added the possibility to build dll/so of Harbour VM+RTL
      (tested om MingW, Cygwin, FC8/64)

  * harbour/make_b32.mak
  * harbour/make_vc.mak
  * harbour/make_vcce.mak
    + Added HB_ARCHITECTURE definition (to be used in a future)

  * harbour/source/rtl/gtchrmap.c
    ! Fixed compilation under Linux using make_gcc.sh
This commit is contained in:
Marek Paliwoda
2007-12-03 17:23:54 +00:00
parent a80a9d1a2a
commit 30fa663a0b
8 changed files with 772 additions and 674 deletions

View File

@@ -8,6 +8,21 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2007-12-03 18:25 UTC+0100 Marek Paliwoda (mpaliwoda at interia pl)
* harbour/common.mak
* harbour/make_gcc.mak
* harbour/make_gcc.sh
+ Added the possibility to build dll/so of Harbour VM+RTL
(tested om MingW, Cygwin, FC8/64)
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_vcce.mak
+ Added HB_ARCHITECTURE definition (to be used in a future)
* harbour/source/rtl/gtchrmap.c
! Fixed compilation under Linux using make_gcc.sh
2007-12-03 16:30 UTC+0200 Chen Kedem <niki@synel.co.il>
* ChangeLog
* Update my email address
@@ -79,8 +94,8 @@
2007-12-01 22:33 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbgd/make_b32.bat
* contrib/hbgd/gdwrp.c
! Fixed the way HB_OS_WIN_32_USED is used and windows.h
is included to work like in rest of Harbour. This way
! Fixed the way HB_OS_WIN_32_USED is used and windows.h
is included to work like in rest of Harbour. This way
it works for all compilers/build systems.
2007-12-01 22:21 UTC+0100 Francesco Saverio Giudice (info at fsgiudice dot com)

View File

@@ -60,9 +60,9 @@ DLLEXT=.dll
LIBEXT=.lib
!endif
#!ifndef LIBPREF
#LIBPREF=
#!endif
!ifndef LIBPREF
LIBPREF=
!endif
#**********************************************************
# Install directory defaults.
@@ -261,7 +261,7 @@ HBDOC_EXE = $(BIN_DIR)\hbdoc$(EXEEXT)
HBMAKE_EXE = $(BIN_DIR)\hbmake$(EXEEXT)
HBVER_EXE = $(BIN_DIR)\hbverfix$(EXEEXT)
HARBOUR_DLL = $(BIN_DIR)\harbour-$(HB_CC_NAME)$(DLLEXT)
HARBOUR_DLL = $(BIN_DIR)\$(LIBPREF)harbour-$(HB_CC_NAME)$(DLLEXT)
HBTESTDLL_EXE= $(BIN_DIR)\hbtest-dll$(EXEEXT)
#**********************************************************
@@ -282,6 +282,9 @@ HB_WINOS_GT = \
$(GTGUI_LIB)
!ifdef HB_GT_LIST
# Hack - (HB_GT_LIST) is replaced by make_gcc.sh
# when it creates common.cf - a modified verion
# of common.mak
HB_GT_LIBS = $(HB_STD_GT) $(HB_GT_LIST)
!else
HB_GT_LIBS = $(HB_STD_GT) $(HB_WINOS_GT)
@@ -704,7 +707,6 @@ LANG_LIB_OBJS = \
$(OBJ_DIR)\msgis850$(OBJEXT) \
$(OBJ_DIR)\msgit$(OBJEXT) \
$(OBJ_DIR)\msgko$(OBJEXT) \
$(OBJ_DIR)\msgltwin$(OBJEXT) \
$(OBJ_DIR)\msgnl$(OBJEXT) \
$(OBJ_DIR)\msgpl852$(OBJEXT) \
$(OBJ_DIR)\msgpliso$(OBJEXT) \
@@ -1094,6 +1096,23 @@ HBVER_EXE_OBJS = \
# with all objects required for building DLL.
# They have wrong OBJ directory. We fix it
# in each respective makefile.
#-------------------------
!ifdef HB_GT_LIST
# Hack - (HB_GT_OBJS) is replaced by make_gcc.sh
# when it creates common.cf - a modified verion
# of common.mak
DLL_GT_OBJS = $(HB_GT_OBJS)
!else
DLL_GT_OBJS = \
$(GTWIN_LIB_OBJS) \
$(GTWVT_LIB_OBJS) \
$(GTGUI_DLL_OBJS)
!endif
#-------------------------
TMP_DLL_OBJS = \
$(COMMON_LIB_OBJS) \
$(PP_LIB_OBJS) \
@@ -1114,9 +1133,9 @@ TMP_DLL_OBJS = \
$(GTCGI_LIB_OBJS) \
$(GTPCA_LIB_OBJS) \
$(GTSTD_LIB_OBJS) \
$(GTWIN_LIB_OBJS) \
$(GTWVT_LIB_OBJS) \
$(GTGUI_DLL_OBJS) \
$(DLL_GT_OBJS) \
#-------------------------
DISABLED_SHARED_MODULES= \
$(NULSYS_LIB_OBJS) \

View File

@@ -19,39 +19,39 @@
#
# NOTE: You can use these envvars to configure the make process:
# (note that these are all optional)
# (note that these are all optional)
#
# C_USR - Extra C compiler options for libraries and for
# executables (GNU make compatible envvar)
# CLIBFLAGS - Extra C compiler options for the static libraries
# CLIBFLAGSDLL - Extra C compiler options for the shared libraries
# C_USR - Extra C compiler options for libraries and for
# executables (GNU make compatible envvar)
# CLIBFLAGS - Extra C compiler options for the static libraries
# CLIBFLAGSDLL - Extra C compiler options for the shared libraries
#
# LDFLAGS - Extra linker options for the static libraries
# LDFLAGSDLL - Extra linker options for the shared libraries
# LDFLAGS - Extra linker options for the static libraries
# LDFLAGSDLL - Extra linker options for the shared libraries
#
# HARBOURFLAGS - Extra Harbour compiler options for static libs/exes
# HARBOURFLAGSDLL - Extra Harbour compiler options for shared libraries
# PRG_USR - Extra Harbour compiler options
# (GNU make compatible envvar)
# HB_GT_DEFAULT - The default GT driver, Choose between:
# gtstd (default),gtcgi,gtwin,gtwvt
# HB_GT_LIB - To override the default GT driver
# (search for HB_GT_LIBS for a list of values)
# HB_BUILD_DLL - If set to yes enables building harbour VM+RTL
# dll in addition to normal static build
# HB_BUILD_DEBUG - If set to yes causes to compile with debug info
# HB_BUILD_VERBOSE - enables echoing commands being executed
# HB_REBUILD_PARSER - If set to yes force preprocessing new rules by
# bison (you must use bison 2.3 or later)
# BCCDLL_WITH_DYNRT - If set to -tWR causes that harbour-bc.dll
# will use dynamic runtime library (recommended)
# HB_INSTALL_PREFIX - Path to instalation directory into which
# Harbour will be installed when the command
# "make_bc.bat install" is lauched. Defaults
# to current directory
# HARBOURFLAGS - Extra Harbour compiler options for static libs/exes
# HARBOURFLAGSDLL - Extra Harbour compiler options for shared libraries
# PRG_USR - Extra Harbour compiler options
# (GNU make compatible envvar)
# HB_GT_DEFAULT - The default GT driver, Choose between:
# gtstd (default),gtcgi,gtwin,gtwvt
# HB_GT_LIB - To override the default GT driver
# (search for HB_GT_LIBS for a list of values)
# HB_BUILD_DLL - If set to yes enables building harbour VM+RTL
# dll in addition to normal static build
# HB_BUILD_DEBUG - If set to yes causes to compile with debug info
# HB_BUILD_VERBOSE - enables echoing commands being executed
# HB_REBUILD_PARSER - If set to yes force preprocessing new rules by
# bison (you must use bison 2.3 or later)
# BCCDLL_WITH_DYNRT - If set to -tWR causes that harbour-bc.dll
# will use dynamic runtime library (recommended)
# HB_INSTALL_PREFIX - Path to instalation directory into which
# Harbour will be installed when the command
# "make_bc.bat install" is lauched. Defaults
# to current directory
#
# HB_DOC_PDF - Turns on the .PDF file support in the HBDOC utility.
# Note that this will require the pdflib contrib.
# HB_DOC_PDF - Turns on the .PDF file support in the HBDOC utility.
# Note that this will require the pdflib contrib.
#**********************************************************
#.KEEP
@@ -60,6 +60,10 @@
#**********************************************************
HB_ARCHITECTURE = w32
#**********************************************************
!if "$(HB_GT_LIB)" == ""
HB_GT_LIB = gtwin
!endif
@@ -96,27 +100,27 @@ DLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
INCLUDE_DIR = include
# C Compiler Flags
CFLAGS = -I$(INCLUDE_DIR) $(C_USR) $(CFLAGS) -I$(OBJ_DIR)
CFLAGS = -I$(INCLUDE_DIR) $(C_USR) $(CFLAGS) -I$(OBJ_DIR)
#-----------
!ifndef BCC_NOOPTIM
CFLAGS = -O2 $(CFLAGS)
CFLAGS = -O2 $(CFLAGS)
!endif
#-----------
!if "$(HB_BUILD_DEBUG)" == "yes"
CFLAGS = -y -v $(CFLAGS)
CFLAGS = -y -v $(CFLAGS)
!endif
#-----------
!if "$(BCCDLL_WITH_DYNRT)" == "-tWR"
BCCDLL_WITH_DYNRT=$(BCCDLL_WITH_DYNRT) -DHB_NO_BCC_MAX_OPENFILES_HACK
RTLIBSUFFIX = i
BCCDLL_WITH_DYNRT=$(BCCDLL_WITH_DYNRT) -DHB_NO_BCC_MAX_OPENFILES_HACK
RTLIBSUFFIX = i
!endif
#-----------
!if "$(HB_GT_DEFAULT)" != ""
CFLAGS = -DHB_GT_DEFAULT=$(HB_GT_DEFAULT:gt=) $(CFLAGS)
CFLAGS = -DHB_GT_DEFAULT=$(HB_GT_DEFAULT:gt=) $(CFLAGS)
!endif
#-----------
!if "$(HB_GT_LIB)" != ""
CFLAGS = -DHB_GT_LIB=$(HB_GT_LIB:gt=) $(CFLAGS)
CFLAGS = -DHB_GT_LIB=$(HB_GT_LIB:gt=) $(CFLAGS)
!endif
#-----------
CLIBFLAGS = -c -q $(CFLAGS) $(CLIBFLAGS)
@@ -126,17 +130,17 @@ CEXEFLAGSDLL = -tWM $(BCCDLL_WITH_DYNRT) $(CLIBFLAGS) $(CEXEFLAGSDLL)
# Harbour Compiler Flags
HBFLAGSCMN = -i$(INCLUDE_DIR) -q0 -w2 -es2 -gc0 -kM $(PRG_USR)
!ifdef HB_DOC_PDF
HBFLAGSCMN = $(HBFLAGSCMN) -dPDF
HBFLAGSCMN = $(HBFLAGSCMN) -dPDF
!endif
HARBOURFLAGS = -n $(HBFLAGSCMN) $(HARBOURFLAGS)
HARBOURFLAGSDLL= -D__EXPORT__ -n1 $(HBFLAGSCMN) $(HARBOURFLAGSDLL)
# Linker Flags
LDFLAGS = -ap -Tpe -Gn -C -L$(LIB_DIR) -L$(BIN_DIR) $(LDFLAGS)
LDFLAGS = -ap -Tpe -Gn -C -L$(LIB_DIR) -L$(BIN_DIR) $(LDFLAGS)
LDFLAGSDLL = -aa -Gn -C -Tpd -Gi -L$(LIB_DIR) $(LDFLAGSDLL)
!if "$(HB_BUILD_DEBUG)" == "yes"
LDFLAGS = -v $(LDFLAGS)
LDFLAGSDLL = -v $(LDFLAGSDLL)
LDFLAGS = -v $(LDFLAGS)
LDFLAGSDLL = -v $(LDFLAGSDLL)
!endif
#**********************************************************
@@ -156,36 +160,36 @@ ARFLAGS = /P32
#**********************************************************
# General *.c --> *.obj COMPILE rule for STATIC Libraries
{$(ALL_SRC_DIRS)}.c{$(OBJ_DIR)}$(OBJEXT):
$(CC) $(CLIBFLAGS) -o$@ $<
$(CC) $(CLIBFLAGS) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
{$(ALL_SRC_DIRS)}.prg{$(OBJ_DIR)}$(OBJEXT):
$(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
$(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)\$&.c
$(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
$(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)\$&.c
#**********************************************************
#**********************************************************
# General *.c --> *.obj COMPILE rule for SHARED Libraries
{$(ALL_LIB_SRC_DIRS)}.c{$(DLL_OBJ_DIR)}$(OBJEXT):
$(CC) $(CLIBFLAGSDLL) -o$@ $<
$(CC) $(CLIBFLAGSDLL) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rule for SHARED Libraries
{$(ALL_LIB_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
$(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $**
$(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
$(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $**
$(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
#**********************************************************
#**********************************************************
# General *.c --> *.obj COMPILE rules for EXECUTABLES,
# which use Harbour SHARED Library compiled as DLL
{$(ALL_EXE_SRC_DIRS)}.c{$(DLL_OBJ_DIR)}$(OBJEXT):
$(CC) $(CEXEFLAGSDLL) -o$@ $<
$(CC) $(CEXEFLAGSDLL) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rules for EXECUTABLES,
# which use Harbour SHARED Library compiled as DLL
{$(ALL_EXE_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
$(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $**
$(CC) $(CEXEFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
$(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $**
$(CC) $(CEXEFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
#**********************************************************
#**********************************************************
@@ -221,187 +225,187 @@ StdLibs : $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HB_DEST_DIRS) $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL):
!if not exist $@\nul mkdir $@
!if not exist $@\nul mkdir $@
#**********************************************************
# LIBRARY Targets BUILD rules
#**********************************************************
$(COMMON_LIB) : $(COMMON_LIB_OBJS)
IF EXIST "$(COMMON_LIB)" $(DEL) "$(COMMON_LIB)" > NUL
$(MKLIB) "$(COMMON_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(COMMON_LIB)" $(DEL) "$(COMMON_LIB)" > NUL
$(MKLIB) "$(COMMON_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(PP_LIB) : $(PP_LIB_OBJS)
IF EXIST "$(PP_LIB)" $(DEL) "$(PP_LIB)" > NUL
$(MKLIB) "$(PP_LIB)" $(ARFLAGS) @&&!
$(PP_LIB) : $(PP_LIB_OBJS)
IF EXIST "$(PP_LIB)" $(DEL) "$(PP_LIB)" > NUL
$(MKLIB) "$(PP_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(COMPILER_LIB) : $(COMPILER_LIB_OBJS)
IF EXIST "$(COMPILER_LIB)" $(DEL) "$(COMPILER_LIB)" > NUL
$(MKLIB) "$(COMPILER_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(COMPILER_LIB)" $(DEL) "$(COMPILER_LIB)" > NUL
$(MKLIB) "$(COMPILER_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(VM_LIB) :: BasicExes
$(VM_LIB) :: $(VM_LIB_OBJS)
IF EXIST "$(VM_LIB)" $(DEL) "$(VM_LIB)" > NUL
$(MKLIB) "$(VM_LIB)" $(ARFLAGS) @&&!
$(VM_LIB) :: BasicExes
$(VM_LIB) :: $(VM_LIB_OBJS)
IF EXIST "$(VM_LIB)" $(DEL) "$(VM_LIB)" > NUL
$(MKLIB) "$(VM_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(RTL_LIB) :: BasicExes
$(RTL_LIB) :: $(RTL_LIB_OBJS)
IF EXIST "$(RTL_LIB)" $(DEL) "$(RTL_LIB)" > NUL
$(MKLIB) "$(RTL_LIB)" $(ARFLAGS) @&&!
$(RTL_LIB) :: BasicExes
$(RTL_LIB) :: $(RTL_LIB_OBJS)
IF EXIST "$(RTL_LIB)" $(DEL) "$(RTL_LIB)" > NUL
$(MKLIB) "$(RTL_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(MACRO_LIB) : $(MACRO_LIB_OBJS)
IF EXIST "$(MACRO_LIB)" $(DEL) "$(MACRO_LIB)" > NUL
$(MKLIB) "$(MACRO_LIB)" $(ARFLAGS) @&&!
$(MACRO_LIB) : $(MACRO_LIB_OBJS)
IF EXIST "$(MACRO_LIB)" $(DEL) "$(MACRO_LIB)" > NUL
$(MKLIB) "$(MACRO_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DEBUG_LIB) :: BasicExes
$(DEBUG_LIB) :: $(DEBUG_LIB_OBJS)
IF EXIST "$(DEBUG_LIB)" $(DEL) "$(DEBUG_LIB)" > NUL
$(MKLIB) "$(DEBUG_LIB)" $(ARFLAGS) @&&!
$(DEBUG_LIB) :: BasicExes
$(DEBUG_LIB) :: $(DEBUG_LIB_OBJS)
IF EXIST "$(DEBUG_LIB)" $(DEL) "$(DEBUG_LIB)" > NUL
$(MKLIB) "$(DEBUG_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(LANG_LIB) : $(LANG_LIB_OBJS)
IF EXIST "$(LANG_LIB)" $(DEL) "$(LANG_LIB)" > NUL
$(MKLIB) "$(LANG_LIB)" $(ARFLAGS) @&&!
$(LANG_LIB) : $(LANG_LIB_OBJS)
IF EXIST "$(LANG_LIB)" $(DEL) "$(LANG_LIB)" > NUL
$(MKLIB) "$(LANG_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(CODEPAGE_LIB) : $(CODEPAGE_LIB_OBJS)
IF EXIST "$(CODEPAGE_LIB)" $(DEL) "$(CODEPAGE_LIB)" > NUL
$(MKLIB) "$(CODEPAGE_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(CODEPAGE_LIB)" $(DEL) "$(CODEPAGE_LIB)" > NUL
$(MKLIB) "$(CODEPAGE_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(PCRE_LIB) : $(PCRE_LIB_OBJS)
IF EXIST "$(PCRE_LIB)" $(DEL) "$(PCRE_LIB)" > NUL
$(MKLIB) "$(PCRE_LIB)" $(ARFLAGS) @&&!
$(PCRE_LIB) : $(PCRE_LIB_OBJS)
IF EXIST "$(PCRE_LIB)" $(DEL) "$(PCRE_LIB)" > NUL
$(MKLIB) "$(PCRE_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(RDD_LIB) :: BasicExes
$(RDD_LIB) :: $(RDD_LIB_OBJS)
IF EXIST "$(RDD_LIB)" $(DEL) "$(RDD_LIB)" > NUL
$(MKLIB) "$(RDD_LIB)" $(ARFLAGS) @&&!
$(RDD_LIB) :: BasicExes
$(RDD_LIB) :: $(RDD_LIB_OBJS)
IF EXIST "$(RDD_LIB)" $(DEL) "$(RDD_LIB)" > NUL
$(MKLIB) "$(RDD_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(NULSYS_LIB) : $(NULSYS_LIB_OBJS)
IF EXIST "$(NULSYS_LIB)" $(DEL) "$(NULSYS_LIB)" > NUL
$(MKLIB) "$(NULSYS_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(NULSYS_LIB)" $(DEL) "$(NULSYS_LIB)" > NUL
$(MKLIB) "$(NULSYS_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DBFNTX_LIB) :: BasicExes
$(DBFNTX_LIB) :: $(DBFNTX_LIB_OBJS)
IF EXIST "$(DBFNTX_LIB)" $(DEL) "$(DBFNTX_LIB)" > NUL
$(MKLIB) "$(DBFNTX_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(DBFNTX_LIB)" $(DEL) "$(DBFNTX_LIB)" > NUL
$(MKLIB) "$(DBFNTX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DBFCDX_LIB) : $(DBFCDX_LIB_OBJS)
IF EXIST "$(DBFCDX_LIB)" $(DEL) "$(DBFCDX_LIB)" > NUL
$(MKLIB) "$(DBFCDX_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(DBFCDX_LIB)" $(DEL) "$(DBFCDX_LIB)" > NUL
$(MKLIB) "$(DBFCDX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DBFFPT_LIB) : $(DBFFPT_LIB_OBJS)
IF EXIST "$(DBFFPT_LIB)" $(DEL) "$(DBFFPT_LIB)" > NUL
$(MKLIB) "$(DBFFPT_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(DBFFPT_LIB)" $(DEL) "$(DBFFPT_LIB)" > NUL
$(MKLIB) "$(DBFFPT_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(HBSIX_LIB) : $(HBSIX_LIB_OBJS)
IF EXIST "$(HBSIX_LIB)" $(DEL) "$(HBSIX_LIB)" > NUL
$(MKLIB) "$(HBSIX_LIB)" $(ARFLAGS) @&&!
$(HBSIX_LIB) : $(HBSIX_LIB_OBJS)
IF EXIST "$(HBSIX_LIB)" $(DEL) "$(HBSIX_LIB)" > NUL
$(MKLIB) "$(HBSIX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(HSX_LIB) : $(HSX_LIB_OBJS)
IF EXIST "$(HSX_LIB)" $(DEL) "$(HSX_LIB)" > NUL
$(MKLIB) "$(HSX_LIB)" $(ARFLAGS) @&&!
$(HSX_LIB) : $(HSX_LIB_OBJS)
IF EXIST "$(HSX_LIB)" $(DEL) "$(HSX_LIB)" > NUL
$(MKLIB) "$(HSX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(USRRDD_LIB) : $(USRRDD_LIB_OBJS)
IF EXIST "$(USRRDD_LIB)" $(DEL) "$(USRRDD_LIB)" > NUL
$(MKLIB) "$(USRRDD_LIB)" $(ARFLAGS) @&&!
IF EXIST "$(USRRDD_LIB)" $(DEL) "$(USRRDD_LIB)" > NUL
$(MKLIB) "$(USRRDD_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTCGI_LIB) : $(GTCGI_LIB_OBJS)
IF EXIST "$(GTCGI_LIB)" $(DEL) "$(GTCGI_LIB)" > NUL
$(MKLIB) "$(GTCGI_LIB)" $(ARFLAGS) @&&!
$(GTCGI_LIB) : $(GTCGI_LIB_OBJS)
IF EXIST "$(GTCGI_LIB)" $(DEL) "$(GTCGI_LIB)" > NUL
$(MKLIB) "$(GTCGI_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTDOS_LIB) : $(GTDOS_LIB_OBJS)
IF EXIST "$(GTDOS_LIB)" $(DEL) "$(GTDOS_LIB)" > NUL
$(MKLIB) "$(GTDOS_LIB)" $(ARFLAGS) @&&!
$(GTDOS_LIB) : $(GTDOS_LIB_OBJS)
IF EXIST "$(GTDOS_LIB)" $(DEL) "$(GTDOS_LIB)" > NUL
$(MKLIB) "$(GTDOS_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTPCA_LIB) : $(GTPCA_LIB_OBJS)
IF EXIST "$(GTPCA_LIB)" $(DEL) "$(GTPCA_LIB)" > NUL
$(MKLIB) "$(GTPCA_LIB)" $(ARFLAGS) @&&!
$(GTPCA_LIB) : $(GTPCA_LIB_OBJS)
IF EXIST "$(GTPCA_LIB)" $(DEL) "$(GTPCA_LIB)" > NUL
$(MKLIB) "$(GTPCA_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTSTD_LIB) : $(GTSTD_LIB_OBJS)
IF EXIST "$(GTSTD_LIB)" $(DEL) "$(GTSTD_LIB)" > NUL
$(MKLIB) "$(GTSTD_LIB)" $(ARFLAGS) @&&!
$(GTSTD_LIB) : $(GTSTD_LIB_OBJS)
IF EXIST "$(GTSTD_LIB)" $(DEL) "$(GTSTD_LIB)" > NUL
$(MKLIB) "$(GTSTD_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTWIN_LIB) : $(GTWIN_LIB_OBJS)
IF EXIST "$(GTWIN_LIB)" $(DEL) "$(GTWIN_LIB)" > NUL
$(MKLIB) "$(GTWIN_LIB)" $(ARFLAGS) @&&!
$(GTWIN_LIB) : $(GTWIN_LIB_OBJS)
IF EXIST "$(GTWIN_LIB)" $(DEL) "$(GTWIN_LIB)" > NUL
$(MKLIB) "$(GTWIN_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTWVT_LIB) : $(GTWVT_LIB_OBJS)
IF EXIST "$(GTWVT_LIB)" $(DEL) "$(GTWVT_LIB)" > NUL
$(MKLIB) "$(GTWVT_LIB)" $(ARFLAGS) @&&!
$(GTWVT_LIB) : $(GTWVT_LIB_OBJS)
IF EXIST "$(GTWVT_LIB)" $(DEL) "$(GTWVT_LIB)" > NUL
$(MKLIB) "$(GTWVT_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTGUI_LIB) : $(GTGUI_LIB_OBJS)
IF EXIST "$(GTGUI_LIB)" $(DEL) "$(GTGUI_LIB)" > NUL
$(MKLIB) "$(GTGUI_LIB)" $(ARFLAGS) @&&!
$(GTGUI_LIB) : $(GTGUI_LIB_OBJS)
IF EXIST "$(GTGUI_LIB)" $(DEL) "$(GTGUI_LIB)" > NUL
$(MKLIB) "$(GTGUI_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
@@ -416,8 +420,8 @@ $(GTGUI_LIB) : $(GTGUI_LIB_OBJS)
#**********************************************************
$(HARBOUR_EXE) :: BasicLibs
$(HARBOUR_EXE) :: $(HARBOUR_EXE_OBJS)
IF EXIST "$(HARBOUR_EXE)" $(DEL) "$(HARBOUR_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HARBOUR_EXE)" $(DEL) "$(HARBOUR_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HARBOUR_EXE)
$(**: = ^
@@ -431,8 +435,8 @@ $(PP_LIB)
#**********************************************************
$(HBPPGEN_EXE) :: $(COMMON_LIB)
$(HBPPGEN_EXE) :: $(HBPPGEN_EXE_OBJS)
IF EXIST "$(HBPPGEN_EXE)" $(DEL) "$(HBPPGEN_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBPPGEN_EXE)" $(DEL) "$(HBPPGEN_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBPPGEN_EXE)
$(**: = ^
@@ -444,8 +448,8 @@ $(COMMON_LIB)
#**********************************************************
$(HBPP_EXE) :: BasicLibs
$(HBPP_EXE) :: $(HBPP_EXE_OBJS)
IF EXIST "$(HBPP_EXE)" $(DEL) "$(HBPP_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBPP_EXE)" $(DEL) "$(HBPP_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBPP_EXE)
$(**: = ^
@@ -457,8 +461,8 @@ $(COMMON_LIB)
#**********************************************************
$(HBRUN_EXE) :: BasicLibs BasicExes StdLibs
$(HBRUN_EXE) :: $(HBRUN_EXE_OBJS)
IF EXIST "$(HBRUN_EXE)" $(DEL) "$(HBRUN_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBRUN_EXE)" $(DEL) "$(HBRUN_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBRUN_EXE)
$(**: = ^
@@ -470,8 +474,8 @@ $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HBDOT_EXE) :: BasicLibs BasicExes StdLibs
$(HBDOT_EXE) :: $(HBDOT_EXE_OBJS)
IF EXIST "$(HBDOT_EXE)" $(DEL) "$(HBDOT_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBDOT_EXE)" $(DEL) "$(HBDOT_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBDOT_EXE)
$(**: = ^
@@ -483,8 +487,8 @@ $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HBTEST_EXE) :: BasicLibs BasicExes StdLibs
$(HBTEST_EXE) :: $(HBTEST_EXE_OBJS)
IF EXIST "$(HBTEST_EXE)" $(DEL) "$(HBTEST_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBTEST_EXE)" $(DEL) "$(HBTEST_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBTEST_EXE)
$(**: = ^
@@ -496,8 +500,8 @@ $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HBPPTEST_EXE) :: BasicLibs BasicExes StdLibs
$(HBPPTEST_EXE) :: $(HBPPTEST_EXE_OBJS)
IF EXIST "$(HBPPTEST_EXE)" $(DEL) "$(HBPPTEST_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBPPTEST_EXE)" $(DEL) "$(HBPPTEST_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBPPTEST_EXE)
$(**: = ^
@@ -510,8 +514,8 @@ $(PP_LIB)
#**********************************************************
$(HBDOC_EXE) :: BasicLibs BasicExes StdLibs
$(HBDOC_EXE) :: $(HBDOC_EXE_OBJS)
IF EXIST "$(HBDOC_EXE)" $(DEL) "$(HBDOC_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBDOC_EXE)" $(DEL) "$(HBDOC_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBDOC_EXE)
$(**: = ^
@@ -523,8 +527,8 @@ $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HBMAKE_EXE) :: BasicLibs BasicExes StdLibs
$(HBMAKE_EXE) :: $(HBMAKE_EXE_OBJS)
IF EXIST "$(HBMAKE_EXE)" $(DEL) "$(HBMAKE_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBMAKE_EXE)" $(DEL) "$(HBMAKE_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBMAKE_EXE)
$(**: = ^
@@ -536,8 +540,8 @@ $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HBVER_EXE) :: BasicLibs BasicExes StdLibs
$(HBVER_EXE) :: $(HBVER_EXE_OBJS)
IF EXIST "$(HBVER_EXE)" $(DEL) "$(HBVER_EXE)" > NUL
$(CC) @&&!
IF EXIST "$(HBVER_EXE)" $(DEL) "$(HBVER_EXE)" > NUL
$(CC) @&&!
$(CFLAGS)
-e$(HBVER_EXE)
$(**: = ^
@@ -551,24 +555,24 @@ $(STANDARD_STATIC_HBLIBS)
#**********************************************************
$(HARBOUR_DLL) :: BasicLibs BasicExes
$(HARBOUR_DLL) :: $(DLL_OBJS)
$(LINKER) $(LDFLAGSDLL) @&&!
$(LINKER) $(LDFLAGSDLL) @&&!
c0d32.obj $**, $@,, cw32mt$(RTLIBSUFFIX).lib import32.lib
!
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
$(HBTESTDLL_EXE) :: BasicLibs BasicExes
$(HBTESTDLL_EXE) :: $(DLL_OBJ_DIR)\mainstd.obj $(HBTEST_EXE_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
$(LINKER) $(LDFLAGS) @&&!
c0x32.obj $**, $@,,$(HARBOUR_DLL:.dll=.lib) cw32mt$(RTLIBSUFFIX).lib import32.lib
$(HBTESTDLL_EXE) :: $(DLL_OBJ_DIR)\mainstd$(OBJEXT) $(HBTEST_EXE_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
$(LINKER) $(LDFLAGS) @&&!
c0x32.obj $**, $@,,$(HARBOUR_DLL:$(DLLEXT)=$(LIBEXT)) cw32mt$(RTLIBSUFFIX).lib import32.lib
!
#----------------------------------------------------------
#$(DLL_OBJ_DIR)\hbtest.obj : $(HBTEST_DIR)\hbtest.prg
# $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $**
# $(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
#----------------------------------------------------------
$(DLL_OBJ_DIR)\mainstd.obj : $(VM_DIR)\mainstd.c
$(CC) $(CEXEFLAGSDLL) -o$@ $**
$(DLL_OBJ_DIR)\mainstd$(OBJEXT) : $(VM_DIR)\mainstd.c
$(CC) $(CEXEFLAGSDLL) -o$@ $**
#**********************************************************
#**********************************************************
@@ -582,47 +586,47 @@ $(DLL_OBJ_DIR)\mainstd.obj : $(VM_DIR)\mainstd.c
$(OBJ_DIR)\pptable.obj : $(OBJ_DIR)\pptable.c
$(DLL_OBJ_DIR)\pptable.obj : $(DLL_OBJ_DIR)\pptable.c
$(OBJ_DIR)\pptable.c : include\hbstdgen.ch include\std.ch $(PP_DIR)\ppcore.c $(PP_DIR)\hbppgen.c
IF EXIST "$(OBJ_DIR)\pptable.c" $(DEL) "$(OBJ_DIR)\pptable.c" > nul
$(HBPPGEN) include/hbstdgen.ch -o$(OBJ_DIR)/pptable.c -q
$(OBJ_DIR)\pptable.c : include\hbstdgen.ch include\std.ch $(PP_DIR)\ppcore.c $(PP_DIR)\hbppgen.c
IF EXIST "$(OBJ_DIR)\pptable.c" $(DEL) "$(OBJ_DIR)\pptable.c" > nul
$(HBPPGEN) include/hbstdgen.ch -o$(OBJ_DIR)/pptable.c -q
$(DLL_OBJ_DIR)\pptable.c : include\hbstdgen.ch include\std.ch $(PP_DIR)\ppcore.c $(PP_DIR)\hbppgen.c
IF EXIST "$(DLL_OBJ_DIR)\pptable.c" $(DEL) "$(DLL_OBJ_DIR)\pptable.c" > nul
$(HBPPGEN) include/hbstdgen.ch -o$(DLL_OBJ_DIR)/pptable.c -q
IF EXIST "$(DLL_OBJ_DIR)\pptable.c" $(DEL) "$(DLL_OBJ_DIR)\pptable.c" > nul
$(HBPPGEN) include/hbstdgen.ch -o$(DLL_OBJ_DIR)/pptable.c -q
#**********************************************************
!if "$(HB_REBUILD_PARSER)" == "yes"
$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
bison --no-line -d $** -o$@
bison --no-line -d $** -o$@
$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
bison --no-line -d $** -o$@
bison --no-line -d $** -o$@
$(DLL_OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
bison --no-line -d $** -o$@
bison --no-line -d $** -o$@
$(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
bison --no-line -d $** -o$@
bison --no-line -d $** -o$@
!else
$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.yyc
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.yyc
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
$(DLL_OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.yyc
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
$(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.yyc
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
copy /A $** $@
copy /A $(**:.yyc=.yyh) $(@:.c=.h)
!endif
@@ -645,24 +649,24 @@ Clean: doClean
CLEAN: doClean
doClean:
-if exist $(BIN_DIR)\*.exe $(DEL) $(BIN_DIR)\*.exe > nul
-if exist $(BIN_DIR)\*.tds $(DEL) $(BIN_DIR)\*.tds > nul
-if exist $(BIN_DIR)\*.tr? $(DEL) $(BIN_DIR)\*.tr? > nul
-if exist $(BIN_DIR)\*.map $(DEL) $(BIN_DIR)\*.map > nul
-if exist $(BIN_DIR)\*.dll $(DEL) $(BIN_DIR)\*.dll > nul
-if exist $(BIN_DIR)\*.lib $(DEL) $(BIN_DIR)\*.lib > nul
-if exist $(LIB_DIR)\*.lib $(DEL) $(LIB_DIR)\*.lib > nul
-if exist $(LIB_DIR)\*.bak $(DEL) $(LIB_DIR)\*.bak > nul
-if exist $(OBJ_DIR)\*.obj $(DEL) $(OBJ_DIR)\*.obj > nul
-if exist $(OBJ_DIR)\*.c $(DEL) $(OBJ_DIR)\*.c > nul
-if exist $(OBJ_DIR)\*.h $(DEL) $(OBJ_DIR)\*.h > nul
-if exist $(DLL_OBJ_DIR)\*.obj $(DEL) $(DLL_OBJ_DIR)\*.obj > nul
-if exist $(DLL_OBJ_DIR)\*.c $(DEL) $(DLL_OBJ_DIR)\*.c > nul
-if exist $(DLL_OBJ_DIR)\*.h $(DEL) $(DLL_OBJ_DIR)\*.h > nul
-if exist inst_$(HB_CC_NAME).log $(DEL) inst_$(HB_CC_NAME).log > nul
-if exist gtlibs.mak $(DEL) gtlibs.mak > nul
-if exist bin\*.exe $(DEL) bin\*.exe > nul
-if exist lib\*.lib $(DEL) lib\*.lib > nul
-if exist $(BIN_DIR)\*.exe $(DEL) $(BIN_DIR)\*.exe > nul
-if exist $(BIN_DIR)\*.tds $(DEL) $(BIN_DIR)\*.tds > nul
-if exist $(BIN_DIR)\*.tr? $(DEL) $(BIN_DIR)\*.tr? > nul
-if exist $(BIN_DIR)\*.map $(DEL) $(BIN_DIR)\*.map > nul
-if exist $(BIN_DIR)\*.dll $(DEL) $(BIN_DIR)\*.dll > nul
-if exist $(BIN_DIR)\*.lib $(DEL) $(BIN_DIR)\*.lib > nul
-if exist $(LIB_DIR)\*.lib $(DEL) $(LIB_DIR)\*.lib > nul
-if exist $(LIB_DIR)\*.bak $(DEL) $(LIB_DIR)\*.bak > nul
-if exist $(OBJ_DIR)\*.obj $(DEL) $(OBJ_DIR)\*.obj > nul
-if exist $(OBJ_DIR)\*.c $(DEL) $(OBJ_DIR)\*.c > nul
-if exist $(OBJ_DIR)\*.h $(DEL) $(OBJ_DIR)\*.h > nul
-if exist $(DLL_OBJ_DIR)\*.obj $(DEL) $(DLL_OBJ_DIR)\*.obj > nul
-if exist $(DLL_OBJ_DIR)\*.c $(DEL) $(DLL_OBJ_DIR)\*.c > nul
-if exist $(DLL_OBJ_DIR)\*.h $(DEL) $(DLL_OBJ_DIR)\*.h > nul
-if exist inst_$(HB_CC_NAME).log $(DEL) inst_$(HB_CC_NAME).log > nul
-if exist gtlibs.mak $(DEL) gtlibs.mak > nul
-if exist bin\*.exe $(DEL) bin\*.exe > nul
-if exist lib\*.lib $(DEL) lib\*.lib > nul
#**********************************************************
# INSTALL rules
@@ -673,14 +677,14 @@ Install : doInstall
INSTALL : doInstall
doInstall: $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL)
-if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe copy /B $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) > inst_$(HB_CC_NAME).log
-if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll copy /B $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib copy /B $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib copy /B $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe copy /B $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) > inst_$(HB_CC_NAME).log
-if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll copy /B $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib copy /B $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib copy /B $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
!if "$(HB_INSTALL_PREFIX)" != "."
-if exist $(HB_INC_INSTALL)\nul copy /A include\*.api $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_INC_INSTALL)\nul copy /A include\*.ch $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_INC_INSTALL)\nul copy /A include\*.h $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_INC_INSTALL)\nul copy /A include\*.api $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_INC_INSTALL)\nul copy /A include\*.ch $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
-if exist $(HB_INC_INSTALL)\nul copy /A include\*.h $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
!endif
#**********************************************************

View File

@@ -64,6 +64,13 @@
#**********************************************************
#ifeq ($(HB_ARCHITECTURE),cyg)
## Cygwin is "Linux on Windows"
#HB_ARCHITECTURE = w32
#endif
#**********************************************************
ifndef ECHO
ECHO = echo
endif
@@ -92,6 +99,17 @@ endif
#**********************************************************
# These defs have to be defined
# *before* common.cf is included
OBJEXT=.o
EXEEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 cyg dos os2),.exe)
DLLEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 cyg dos os2),.dll,.so)
LIBEXT=.a
LIBPREF=lib
#**********************************************************
# Include Common Object list files shared
# between Msvc, Borland and Gcc compilers
@@ -123,13 +141,25 @@ endif
#**********************************************************
# Default sources directory search paths
VPATH := $(ALL_SRC_DIRS) $(LIB_DIR) $(BIN_DIR) $(OBJ_DIR)
VPATH := $(ALL_SRC_DIRS) $(LIB_DIR) $(BIN_DIR) $(OBJ_DIR) $(DLL_OBJ_DIR)
#**********************************************************
# Some definitions cannot be kept in Common.mak
# due to serious limitations of Microsoft Nmake
DLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
# Unix systems do not require an
# extra compilation pass for dlls
DLL_OBJS := $(TMP_DLL_OBJS)
# DLLs on Windows require IMPORT lib
# and additional compiler pass
ifeq ($(HB_ARCHITECTURE),w32)
DLL_OBJS := $(patsubst $(OBJ_DIR)%,$(DLL_OBJ_DIR)%,$(TMP_DLL_OBJS))
HB_DLL_IMPLIB := $(HARBOUR_DLL:$(DLLEXT)=$(LIBEXT))
HB_IMPLIB_PART := -Wl,--out-implib,$(HB_DLL_IMPLIB)
endif
#**********************************************************
# C compiler flags and Harbour compiler flags.
@@ -158,7 +188,7 @@ endif
#-----------
CLIBFLAGS := -c $(CFLAGS) $(CLIBFLAGS)
CLIBFLAGSDLL := -D__EXPORT__ $(CLIBFLAGS) $(CLIBFLAGSDLL)
CEXEFLAGSDLL := $(CLIBFLAGS) $(CEXEFLAGSDLL)
CEXEFLAGSDLL := $(CFLAGS) $(CEXEFLAGSDLL)
# Harbour Compiler Flags
HBFLAGSCMN := -i$(INCLUDE_DIR) -q0 -w2 -es2 -gc0 -kM $(PRG_USR)
@@ -172,7 +202,7 @@ HARBOURFLAGSDLL:= -D__EXPORT__ -n1 -l $(HBFLAGSCMN) $(HARBOURFLAGSDLL)
# Linker Flags
#**********************************************************
LDFLAGS := $(L_USR) -Wl,--start-group $(STANDARD_STATIC_HBLIBS)
LDFLAGS := $(L_USR) -Wl,--start-group $(STANDARD_STATIC_HBLIBS)
# HB_GPM_MOUSE: use gpm mouse driver
ifeq ($(HB_GPM_MOUSE),yes)
@@ -184,7 +214,7 @@ LDFLAGS += -lpcre
endif
LDFLAGS += -Wl,--end-group $(HB_OS_LIBS)
LDFLAGSDLL := -L$(LIB_DIR) $(LDFLAGSDLL)
LDFLAGSDLL := -shared $(L_USR) -L$(LIB_DIR) $(LDFLAGSDLL)
#**********************************************************
@@ -206,8 +236,8 @@ $(OBJ_DIR)/%$(OBJEXT) : %.c
#*******************************************************
# General *.prg --> *.o COMPILE rule for SHARED Libraries
$(DLL_OBJ_DIR)/%$(OBJEXT) : %.prg
$(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)/ $**
$(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)/$&.c
$(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)/ $<
$(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)/$(<F:.prg=.c)
#----------------------------------------------------------
# General *.c --> *.o COMPILE rule for SHARED Libraries
$(DLL_OBJ_DIR)/%$(OBJEXT) : %.c
@@ -379,6 +409,26 @@ $(HBVER_EXE) :: $(HBVER_EXE_OBJS)
$(CC) $(CFLAGS) -o$@ $^ $(HB_OS_LIBS)
#**********************************************************
#**********************************************************
# DLL Targets
#**********************************************************
$(HARBOUR_DLL) :: $(StdLibs)
$(HARBOUR_DLL) :: $(DLL_OBJS)
$(CC) $(LDFLAGSDLL) -o$@ $^ $(HB_OS_LIBS) $(HB_IMPLIB_PART)
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
$(HBTESTDLL_EXE) :: $(StdLibs)
$(HBTESTDLL_EXE) :: $(DLL_OBJ_DIR)/mainstd$(OBJEXT) $(HBTEST_EXE_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
$(CC) $(CEXEFLAGSDLL) -o$@ $^ $(HARBOUR_DLL) $(HB_OS_LIBS)
#----------------------------------------------------------
#$(DLL_OBJ_DIR)\hbtest.obj : $(HBTEST_DIR)\hbtest.prg
# $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $**
# $(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
#----------------------------------------------------------
$(DLL_OBJ_DIR)/mainstd$(OBJEXT) : $(VM_DIR)/mainstd.c
$(CC) $(CLIBFLAGS) -o$@ $<
#**********************************************************
#**********************************************************
# EXTRA Object's DEPENDENCIES
@@ -446,12 +496,12 @@ $(DLL_OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.y
else
$(DLL_OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.yyc
$(COPY) $** $@
$(COPY) $(**:.yyc=.yyh) $(@:.c=.h)
$(COPY) $< $@
$(COPY) $(<:.yyc=.yyh) $(@:.c=.h)
$(DLL_OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.yyc
$(COPY) $** $@
$(COPY) $(**:.yyc=.yyh) $(@:.c=.h)
$(COPY) $< $@
$(COPY) $(<:.yyc=.yyh) $(@:.c=.h)
endif
@@ -481,6 +531,7 @@ CLEAN: doClean
doClean:
-$(DEL) $(HB_BUILD_TARGETS)
-$(DEL) $(HB_DLL_IMPLIB)
-$(DEL) $(OBJ_DIR)/*$(OBJEXT)
-$(DEL) $(OBJ_DIR)/*.c
-$(DEL) $(OBJ_DIR)/*.h

View File

@@ -9,47 +9,47 @@
# ---------------------------------------------------------------
if [ -z "$HB_ARCHITECTURE" ]; then
if [ "$OSTYPE" = "msdosdjgpp" ]; then
hb_arch="dos"
else
hb_arch=`uname -s | tr -d "[-]" | tr '[A-Z]' '[a-z]' 2>/dev/null`
case "$hb_arch" in
*windows*|*mingw32*|msys*) hb_arch="w32" ;;
*cygwin*) hb_arch="cyg" ;;
*dos) hb_arch="dos" ;;
*bsd) hb_arch="bsd" ;;
esac
fi
export HB_ARCHITECTURE="$hb_arch"
if [ "$OSTYPE" = "msdosdjgpp" ]; then
hb_arch="dos"
else
hb_arch=`uname -s | tr -d "[-]" | tr '[A-Z]' '[a-z]' 2>/dev/null`
case "$hb_arch" in
*windows*|*mingw32*|msys*) hb_arch="w32" ;;
*cygwin*) hb_arch="cyg" ;;
*dos) hb_arch="dos" ;;
*bsd) hb_arch="bsd" ;;
esac
fi
export HB_ARCHITECTURE="$hb_arch"
fi
if [ -z "$HB_CC_NAME" ]; then
case "$HB_ARCHITECTURE" in
w32) HB_CC_NAME="mingw" ;;
dos) HB_CC_NAME="djgpp" ;;
*) HB_CC_NAME="gcc" ;;
esac
export HB_CC_NAME
case "$HB_ARCHITECTURE" in
w32) HB_CC_NAME="mingw" ;;
dos) HB_CC_NAME="djgpp" ;;
*) HB_CC_NAME="gcc" ;;
esac
export HB_CC_NAME
fi
if [ -z "$HB_GT_LIB" ]; then
case "$HB_ARCHITECTURE" in
w32) HB_GT_LIB="gtwin" ;;
dos) HB_GT_LIB="gtdos" ;;
os2) HB_GT_LIB="gtos2" ;;
*) HB_GT_LIB="gttrm" ;;
esac
export HB_GT_LIB
case "$HB_ARCHITECTURE" in
w32) HB_GT_LIB="gtwin" ;;
dos) HB_GT_LIB="gtdos" ;;
os2) HB_GT_LIB="gtos2" ;;
*) HB_GT_LIB="gttrm" ;;
esac
export HB_GT_LIB
fi
if [ -z "$HB_GPM_MOUSE" ]; then
if [ "$HB_ARCHITECTURE" = "linux" ] && \
( [ -f /usr/include/gpm.h ] || [ -f /usr/local/include/gpm.h ]); then
HB_GPM_MOUSE=yes
else
HB_GPM_MOUSE=no
fi
export HB_GPM_MOUSE
if [ "$HB_ARCHITECTURE" = "linux" ] && \
( [ -f /usr/include/gpm.h ] || [ -f /usr/local/include/gpm.h ]); then
HB_GPM_MOUSE=yes
else
HB_GPM_MOUSE=no
fi
export HB_GPM_MOUSE
fi
# default lib dir name
@@ -58,60 +58,56 @@ HB_LIBDIRNAME="lib"
HB_ARCH64=""
if [ "$HB_ARCHITECTURE" = "linux" ]
then
HB_CPU=`uname -m`
case "$HB_CPU" in
*[_@]64)
export C_USR="$C_USR -fPIC"
HB_ARCH64="yes"
;;
*)
;;
esac
HB_CPU=`uname -m`
case "$HB_CPU" in
*[_@]64)
export C_USR="$C_USR -fPIC"
HB_ARCH64="yes"
;;
*)
;;
esac
fi
[ -z "$CC" ] && CC="gcc"
[ -z "$LD" ] && LD="gcc"
MAKE="make"
EXEEXT=""
CRSLIB="ncurses"
OS_LIBS="-lm"
GT_LIST="TRM"
case "$HB_ARCHITECTURE" in
w32) HB_OS="WIN_32"
GT_LIST="WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool -lwsock32"
EXEEXT=".exe"
;;
cyg) HB_OS="CYGWIN"
GT_LIST="${GT_LIST} WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool"
EXEEXT=".exe"
;;
dos) HB_OS="DOS"
GT_LIST="DOS"
EXEEXT=".exe"
;;
linux) HB_OS="LINUX"
[ -d "/usr/lib/lib64" ] && [ "${HB_ARCH64}" = yes ] && HB_LIBDIRNAME="lib64"
OS_LIBS="$OS_LIBS -ldl"
;;
bsd) HB_OS="BSD"
MAKE="gmake"
;;
darwin) HB_OS="DARWIN"
;;
sunos) HB_OS="SUNOS"
OS_LIBS="$OS_LIBS -lrt"
CRSLIB="curses"
;;
hpux) HB_OS="HPUX"
MAKE="gmake"
OS_LIBS="$OS_LIBS -lrt"
;;
*) HB_OS=`echo $HB_ARCHITECTURE | tr '[a-z]' '[A-Z]'`
;;
w32) HB_OS="WIN_32"
GT_LIST="WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool -lwsock32 -lgdi32"
;;
cyg) HB_OS="CYGWIN"
GT_LIST="${GT_LIST} WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool -lgdi32"
;;
dos) HB_OS="DOS"
GT_LIST="DOS"
;;
linux) HB_OS="LINUX"
[ -d "/usr/lib/lib64" ] && [ "${HB_ARCH64}" = yes ] && HB_LIBDIRNAME="lib64"
OS_LIBS="$OS_LIBS -ldl"
;;
bsd) HB_OS="BSD"
MAKE="gmake"
;;
darwin) HB_OS="DARWIN"
;;
sunos) HB_OS="SUNOS"
OS_LIBS="$OS_LIBS -lrt"
CRSLIB="curses"
;;
hpux) HB_OS="HPUX"
MAKE="gmake"
OS_LIBS="$OS_LIBS -lrt"
;;
*) HB_OS=`echo $HB_ARCHITECTURE | tr '[a-z]' '[A-Z]'`
;;
esac
GTSLN=""
@@ -119,33 +115,33 @@ GTCRS=""
GTXWC=""
for dir in /usr /usr/local /sw /opt/local
do
if [ "$GTSLN" != yes ]; then
if [ -f $dir/include/slang.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTSLN=yes
elif [ -f $dir/include/slang/slang.h ]; then
C_USR="$C_USR -I$dir/include/slang"
GTSLN=yes
fi
fi
if [ "$GTCRS" != yes ]; then
if [ -f ${dir}/include/curses.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTCRS=yes
elif [ -f ${dir}/include/${CRSLIB}/curses.h ]; then
C_USR="$C_USR -I$dir/include/${CRSLIB}"
GTCRS=yes
fi
fi
if [ "$GTXWC" != yes ]; then
if [ -f ${dir}/include/X11/Xlib.h ] && \
[ -f ${dir}/include/X11/Xcms.h ] && \
[ -f ${dir}/include/X11/Xutil.h ] && \
[ -f ${dir}/include/X11/keysym.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTXWC=yes
fi
fi
if [ "$GTSLN" != yes ]; then
if [ -f $dir/include/slang.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTSLN=yes
elif [ -f $dir/include/slang/slang.h ]; then
C_USR="$C_USR -I$dir/include/slang"
GTSLN=yes
fi
fi
if [ "$GTCRS" != yes ]; then
if [ -f ${dir}/include/curses.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTCRS=yes
elif [ -f ${dir}/include/${CRSLIB}/curses.h ]; then
C_USR="$C_USR -I$dir/include/${CRSLIB}"
GTCRS=yes
fi
fi
if [ "$GTXWC" != yes ]; then
if [ -f ${dir}/include/X11/Xlib.h ] && \
[ -f ${dir}/include/X11/Xcms.h ] && \
[ -f ${dir}/include/X11/Xutil.h ] && \
[ -f ${dir}/include/X11/keysym.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTXWC=yes
fi
fi
done
[ "${HB_WITHOUT_GTSLN}" != "yes" ] || GTSLN=""
@@ -155,36 +151,36 @@ if [ "$HB_COMMERCE" = yes ]; then
fi
if [ "$GTCRS" = "yes" ]; then
GT_LIST="$GT_LIST CRS"
OS_LIBS="$OS_LIBS -l${CRSLIB}"
GT_LIST="$GT_LIST CRS"
OS_LIBS="$OS_LIBS -l${CRSLIB}"
fi
if [ "$GTSLN" = "yes" ]; then
GT_LIST="$GT_LIST SLN"
OS_LIBS="$OS_LIBS -lslang"
GT_LIST="$GT_LIST SLN"
OS_LIBS="$OS_LIBS -lslang"
fi
if [ "$GTXWC" = "yes" ]; then
GT_LIST="$GT_LIST XWC"
#OS_LIBS="$OS_LIBS -lX11 -L/usr/X11R6/$HB_LIBDIRNAME"
GT_LIST="$GT_LIST XWC"
OS_LIBS="$OS_LIBS -lX11 -L/usr/X11R6/$HB_LIBDIRNAME"
fi
export C_USR="$C_USR -DHB_OS_$HB_OS"
export HB_OS_LIBS="$HB_OS_LIBS $OS_LIBS"
export HB_GT_LIST="$HB_GT_LIST $GT_LIST"
export CC LD EXEEXT
#export HB_BUILD_VERBOSE=yes
export CC LD
mkdir -p obj/$HB_CC_NAME lib/$HB_CC_NAME bin/$HB_CC_NAME
# Convert common.mak (for BCC/VC) to common.cf (GCC)
sed -e "s/\.obj/.o/g" \
-e "s/\.lib/.a/g" \
-e "s/\.dll/.so/g" \
-e "s/\.exe//g" \
-e "s/;/ /g" \
-e 's!\\\(.\)!/\1!g' \
-e "s/^HB_LIB_PREFIX=.*$/HB_LIB_PREFIX=lib/g" \
# Revert Cygwin architecture to w32.
# After all it's under Windows OS.
if [ "$HB_ARCHITECTURE" == "cyg" ]
then
export HB_ARCHITECTURE=w32
fi
sed -e 's/;/ /g' \
-e 's!\\\(.\)!/\1!g' \
-e 's/^!if "\($([A-Za-z0-9_]*)\)" != "\(.*\)"/ifneq (\1,\2)/g' \
-e 's/^!if "\($([A-Za-z0-9_]*)\)" == "\(.*\)"/ifeq (\1,\2)/g' \
-e 's/^!ifdef /ifdef /g' \
@@ -193,8 +189,9 @@ sed -e "s/\.obj/.o/g" \
-e 's/^!endif/endif/g' \
-e 's/^!include/include/g' \
-e 's/$(HB_GT_LIST)/$(foreach gt, $(HB_GT_LIST), $(GT$(gt)_LIB))/g' \
common.mak > common.cf
-e 's/$(HB_GT_OBJS)/$(foreach gt, $(HB_GT_LIST), $(GT$(gt)_LIB_OBJS))/g' \
-e 's/^HB_BUILD_TARGETS \=/HB_BUILD_TARGETS \:\=/g' \
common.mak > common.cf
#$MAKE -n -p -r -f make_gcc.mak 1>EOK 2>ERR
$MAKE -r -f make_gcc.mak $*
rm -f common.cf

File diff suppressed because it is too large Load Diff

View File

@@ -56,6 +56,10 @@
#**********************************************************
HB_ARCHITECTURE = w32
#**********************************************************
!if "$(HB_GT_LIB)" == ""
HB_GT_LIB = gtwvt
!endif

View File

@@ -57,6 +57,8 @@
#include "hbgtcore.h"
#include "hbapifs.h"
#ifdef HB_OS_UNIX
#define MAX_CHAR_VAL 0xff
#define HB_CHRMAP(a,c) ( ( (a) << 16 ) | (c) )
@@ -470,3 +472,5 @@ int main(int argc, char **argv)
return 0;
}
*/
#endif // HB_OS_UNIX