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:
David Arturo Macias Corona
2009-10-01 09:41:25 +00:00
parent 1933fc409b
commit 41953affeb
4 changed files with 96 additions and 22 deletions

View File

@@ -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

View File

@@ -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
--------------

View File

@@ -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,)

View File

@@ -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}" )