2009-10-01 4:25 UTC-0500 David Arturo Macias Corona (dmacias/at/mail.udg.mx)
* harbour/config/os2/gcc.mk
* harbour/utils/hbmk2/hbmk2.prg
+ Added support of OMF library format
To select alternative OMF library format, use:
set HB_OS2_OMF=yes
* INSTALL
+ Added note for OMF library format
This commit is contained in:
@@ -17,6 +17,15 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-10-01 4:25 UTC-0500 David Arturo Macias Corona (dmacias/at/mail.udg.mx)
|
||||
* harbour/config/os2/gcc.mk
|
||||
* harbour/utils/hbmk2/hbmk2.prg
|
||||
+ Added support of OMF library format
|
||||
To select alternative OMF library format, use:
|
||||
set HB_OS2_OMF=yes
|
||||
* INSTALL
|
||||
+ Added note for OMF library format
|
||||
|
||||
2009-09-30 23:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/rdd/dbf1.c
|
||||
* harbour/source/rdd/delim1.c
|
||||
|
||||
@@ -106,9 +106,18 @@ HARBOUR
|
||||
> hello
|
||||
You should see 'Hello world!' on screen.
|
||||
|
||||
NOTE: To select alternative TCP/IP stack, use these commands:
|
||||
set HB_USER_CFLAGS=-DTCPV40HDRS %HB_USER_CFLAGS%
|
||||
set HB_USER_LDFLAGS=-LC:\usr\lib\tcpipv4 %HB_USER_LDFLAGS%
|
||||
NOTES:
|
||||
a) To select older TCP/IP stack (<4.1), use these values:
|
||||
set HB_USER_CFLAGS=-DTCPV40HDRS %HB_USER_CFLAGS%
|
||||
set HB_USER_LDFLAGS=-LC:\usr\lib\tcpipv4 %HB_USER_LDFLAGS%
|
||||
b) To select alternative OMF library format, use:
|
||||
set HB_OS2_OMF=yes
|
||||
For gcc settings you optionally can use these values:
|
||||
set EMXOMFLD_TYPE=WLINK ( or prefered choice )
|
||||
set EMXOMFLD_LINKER=WL.EXE ( or prefered choice )
|
||||
If choice is WL.exe, modified OpenWatcom wlink.exe available in
|
||||
ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
|
||||
and located somewhere in PATH
|
||||
|
||||
on Linux hosts
|
||||
--------------
|
||||
|
||||
@@ -8,9 +8,15 @@ else
|
||||
HB_CMP := gcc
|
||||
endif
|
||||
|
||||
OBJ_EXT := .o
|
||||
LIB_PREF :=
|
||||
LIB_EXT := .a
|
||||
ifeq ($(HB_OS2_OMF),yes)
|
||||
OBJ_EXT := .obj
|
||||
LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
else
|
||||
OBJ_EXT := .o
|
||||
LIB_PREF :=
|
||||
LIB_EXT := .a
|
||||
endif
|
||||
|
||||
CC := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX)
|
||||
CC_IN := -c
|
||||
@@ -20,6 +26,10 @@ CPPFLAGS := -I. -I$(HB_INC_COMPILE)
|
||||
CFLAGS :=
|
||||
LDFLAGS :=
|
||||
|
||||
ifeq ($(HB_OS2_OMF),yes)
|
||||
CFLAGS += -Zomf
|
||||
endif
|
||||
|
||||
ifneq ($(HB_BUILD_WARN),no)
|
||||
CFLAGS += -Wall -W
|
||||
endif
|
||||
@@ -62,33 +72,52 @@ LDFLAGS += $(LIBPATHS)
|
||||
#
|
||||
#endef
|
||||
|
||||
# We have to use a script to overcome the AR limit of max 850 characters
|
||||
# in commmand line
|
||||
define create_library
|
||||
$(if $(wildcard $(subst /,$(DIRSEP),$(LIB_FILE))),@$(RM) $(subst /,$(DIRSEP),$(LIB_FILE)),)
|
||||
@$(ECHO) $(ECHOQUOTE)CREATE $(LIB_DIR)/$@$(ECHOQUOTE) > __lib__.tmp
|
||||
for %i in ( *$(OBJ_EXT) ) do @$(ECHO) $(ECHOQUOTE)ADDMOD %i$(ECHOQUOTE) >> __lib__.tmp
|
||||
@$(ECHO) $(ECHOQUOTE)SAVE$(ECHOQUOTE) >> __lib__.tmp
|
||||
@$(ECHO) $(ECHOQUOTE)END$(ECHOQUOTE) >> __lib__.tmp
|
||||
$(AR) $(ARFLAGS) $(HB_USER_AFLAGS) -M < __lib__.tmp
|
||||
endef
|
||||
|
||||
ifeq ($(HB_OS2_OMF),yes)
|
||||
define create_library
|
||||
$(if $(wildcard $(subst /,$(DIRSEP),$(LIB_FILE))),@$(RM) $(subst /,$(DIRSEP),$(LIB_FILE)),)
|
||||
for %i in ( *$(OBJ_EXT) ) do $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) -p128 r $(LIB_DIR)/$@ %i$(ECHOQUOTE)
|
||||
endef
|
||||
else
|
||||
# We have to use a script to overcome the AR limit of max 850 characters
|
||||
# in commmand line
|
||||
define create_library
|
||||
$(if $(wildcard $(subst /,$(DIRSEP),$(LIB_FILE))),@$(RM) $(subst /,$(DIRSEP),$(LIB_FILE)),)
|
||||
@$(ECHO) $(ECHOQUOTE)CREATE $(LIB_DIR)/$@$(ECHOQUOTE) > __lib__.tmp
|
||||
for %i in ( *$(OBJ_EXT) ) do @$(ECHO) $(ECHOQUOTE)ADDMOD %i$(ECHOQUOTE) >> __lib__.tmp
|
||||
@$(ECHO) $(ECHOQUOTE)SAVE$(ECHOQUOTE) >> __lib__.tmp
|
||||
@$(ECHO) $(ECHOQUOTE)END$(ECHOQUOTE) >> __lib__.tmp
|
||||
$(AR) $(ARFLAGS) $(HB_USER_AFLAGS) -M < __lib__.tmp
|
||||
endef
|
||||
endif
|
||||
|
||||
# Under OS/2 || isn't a command separator (inside a shell, that is); correct separator is &
|
||||
AR := $(HB_CCPATH)$(HB_CCPREFIX)ar
|
||||
ARFLAGS :=
|
||||
AR_RULE = $(create_library) $(ARSTRIP) & $(RM) __lib__.tmp
|
||||
|
||||
ifeq ($(HB_OS2_OMF),yes)
|
||||
AR := $(HB_CCPATH)$(HB_CCPREFIX)emxomfar
|
||||
ARFLAGS :=
|
||||
AR_RULE = $(create_library) $(ARSTRIP)
|
||||
else
|
||||
AR := $(HB_CCPATH)$(HB_CCPREFIX)ar
|
||||
ARFLAGS :=
|
||||
AR_RULE = $(create_library) $(ARSTRIP) & $(RM) __lib__.tmp
|
||||
endif
|
||||
|
||||
DY := $(CC)
|
||||
DFLAGS := -shared $(LIBPATHS)
|
||||
ifeq ($(HB_OS2_OMF),yes)
|
||||
DFLAGS += -Zomf
|
||||
endif
|
||||
DY_OUT := $(LD_OUT)
|
||||
DLIBS := $(foreach lib,$(LIBS) $(SYSLIBS),-l$(lib))
|
||||
|
||||
# NOTE: The empty line directly before 'endef' HAS TO exist!
|
||||
define dyn_object
|
||||
@$(ECHO) $(file)>> __dyn__.tmp
|
||||
@$(ECHO) $(subst $(DIRSEP),/,$(file))>> __dyn__.tmp
|
||||
@emxexp $(file)>> __dyn__.def
|
||||
|
||||
endef
|
||||
|
||||
define create_dynlib
|
||||
$(if $(wildcard __dyn__.tmp),@$(RM) __dyn__.tmp,)
|
||||
$(if $(wildcard __dyn__.def),@$(RM) __dyn__.def,)
|
||||
|
||||
@@ -2417,8 +2417,18 @@ FUNCTION hbmk( aArgs, /* @ */ lPause )
|
||||
cLibPrefix := "-l"
|
||||
cLibExt := ""
|
||||
cObjExt := ".o"
|
||||
|
||||
IF ValueIsT( GetEnv( "HB_OS2_OMF" ) )
|
||||
cObjExt := ".obj"
|
||||
ENDIF
|
||||
|
||||
cBin_CompC := hbmk[ _HBMK_cCCPREFIX ] + iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], "g++", "gcc" ) + hbmk[ _HBMK_cCCPOSTFIX ] + cCCEXT
|
||||
cOpt_CompC := "-c"
|
||||
|
||||
IF ValueIsT( GetEnv( "HB_OS2_OMF" ) )
|
||||
cOpt_CompC += " -Zomf"
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_lOPTIM ]
|
||||
cOpt_CompC += " -O3"
|
||||
ENDIF
|
||||
@@ -2430,12 +2440,29 @@ FUNCTION hbmk( aArgs, /* @ */ lPause )
|
||||
ENDIF
|
||||
cBin_Dyn := cBin_CompC
|
||||
cOpt_Dyn := "-shared {FD} -o {OD} {DL} {LO} {LL} {LB} {LS}"
|
||||
IF ValueIsT( GetEnv( "HB_OS2_OMF" ) )
|
||||
cOpt_Dyn += " -Zomf"
|
||||
ENDIF
|
||||
|
||||
cBin_Link := cBin_CompC
|
||||
|
||||
cOpt_Link := "{LO} {LA} {FL} {DL}"
|
||||
|
||||
IF ValueIsT( GetEnv( "HB_OS2_OMF" ) )
|
||||
cOpt_Link += " -Zomf"
|
||||
ENDIF
|
||||
|
||||
cLibPathPrefix := "-L"
|
||||
cLibPathSep := " "
|
||||
cLibLibExt := ".a"
|
||||
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + cCCEXT
|
||||
|
||||
IF ValueIsT( GetEnv( "HB_OS2_OMF" ) )
|
||||
cLibLibExt := ".lib"
|
||||
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "emxomfar" + cCCEXT
|
||||
ELSE
|
||||
cLibLibExt := ".a"
|
||||
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + cCCEXT
|
||||
ENDIF
|
||||
|
||||
cOpt_Lib := "{FA} rcs {OL} {LO}"
|
||||
IF hbmk[ _HBMK_lMAP ]
|
||||
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,-Map,{OM}" )
|
||||
|
||||
Reference in New Issue
Block a user