* harbour/bin/bld.cmd
+ added -ldbffpt, -lhbsix, -lhsx libraries for GCC OS2 linking
* harbour/config/os2/gcc.cf
* harbour/contrib/libct/files.c
+ some cleanups for OS2 - please check me.
* harbour/source/rtl/gtos2/gtos2.c
+ implemented hb_gt_os2_GetScreenContents() - please check me
* harbour/include/Makefile
+ added missing hbfixdj.h
* harbour/source/rtl/gtdos/gtdos.c
! for screen synchronization after PostExt()
108 lines
2.9 KiB
CFEngine3
108 lines
2.9 KiB
CFEngine3
#
|
|
# $Id$
|
|
#
|
|
|
|
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
|
|
|
|
OBJ_EXT = .o
|
|
EXE_EXT = .exe
|
|
LIB_PREF =
|
|
LIB_EXT = .a
|
|
|
|
CC = gcc
|
|
CC_IN = -c
|
|
CC_OUT = -o
|
|
CPPFLAGS = -I. -I$(TOP)include -I$(HB_INC_COMPILE)
|
|
CFLAGS = -W -Wall -O2 -DHB_OS_OS2 -fsigned-char
|
|
|
|
# 26/03/2004 - <maurilio.longo@libero.it>
|
|
# added -DTCPV40HDRS to compile with GCC 3.2.2 on OS/2 v4.0 with mixed 16/32 bit tcp/ip stack
|
|
# to be removed if compiled on a tcp/ip stack >= 4.1 (eComStation, for example)
|
|
CFLAGS += -DTCPV40HDRS
|
|
|
|
ifeq ($(HB_LEX),SIMPLEX)
|
|
CFLAGS += -DSIMPLEX
|
|
endif
|
|
|
|
LD = gcc
|
|
LDFLAGS =
|
|
LD_OUT = -o $(SPACE)
|
|
|
|
ifeq ($(C_MAIN),)
|
|
ifeq ($(HB_GT_LIB),os2pm)
|
|
# If building a PM program, override the main object.
|
|
LDFLAGS +=$(TOP)$(ROOT)source/vm/$(HB_ARCH)/mainpm.o
|
|
endif
|
|
endif
|
|
|
|
# Add all libraries specified in CONTRIBS and LIBS.
|
|
ifeq ($(HB_LIB_COMPILE),)
|
|
LINKPATHS += $(foreach lib, $(CONTRIBS), -L$(TOP)$(ROOT)contrib/$(lib)/$(HB_ARCH))
|
|
LINKPATHS += $(foreach lib, $(LIBS), -L$(TOP)$(ROOT)source/$(lib)/$(HB_ARCH))
|
|
else
|
|
LINKPATHS += -L$(HB_LIB_COMPILE)
|
|
endif
|
|
#LINKLIBS += -Wl,-(
|
|
LINKLIBS += $(foreach lib, $(CONTRIBS), -l$(subst lib,,$(lib)))
|
|
LINKLIBS += $(foreach lib, $(LIBS), -l$(lib))
|
|
|
|
# If LIBS specifies the rdd library, add all DB drivers.
|
|
ifeq ($(findstring rdd,$(LIBS)),rdd)
|
|
LINKPATHS += $(foreach drv, $(HB_DB_DRIVERS), -L$(TOP)$(ROOT)source/rdd/$(drv)/$(HB_ARCH))
|
|
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
|
|
# add a last round of rtl/vm to solve positional interdependencies (at the moment hbrun requires this)
|
|
LINKLIBS += -lrtl -lvm
|
|
endif
|
|
|
|
# Add the specified GT driver library
|
|
ifeq ($(findstring rtl,$(LIBS)),rtl)
|
|
ifeq ($(C_MAIN),)
|
|
ifeq ($(HB_GT_LIB),os2pm)
|
|
# Special handling for PM mode
|
|
LINKPATHS += -L$(TOP)$(ROOT)contrib/hgf/$(HB_GT_LIB)/$(HB_ARCH)
|
|
LINKLIBS += -l$(HB_GT_LIB)
|
|
LINKPATHS += -L$(TOP)$(ROOT)source/rtl/gtos2/$(HB_ARCH)
|
|
LINKLIBS += -lgtos2
|
|
else
|
|
LINKPATHS += -L$(TOP)$(ROOT)source/rtl/$(HB_GT_LIB)/$(HB_ARCH)
|
|
LINKLIBS += -l$(HB_GT_LIB)
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#LINKLIBS += -Wl,-)
|
|
# statical linking with GCC 3.2.2 libc as not require its presence on user system
|
|
LDFLAGS += $(LINKPATHS)
|
|
|
|
ifeq ($(C_MAIN),)
|
|
ifeq ($(HB_GT_LIB),os2pm)
|
|
# Override the default link rule in order to add a call to emxbind
|
|
LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$@ $^ $(LDFLAGS) $(L_USR) $(LINKLIBS) & emxbind -ep $@
|
|
endif
|
|
endif
|
|
|
|
# Note: The empty line directly before 'endef' HAVE TO exist!
|
|
# It causes that every echo command will be separated by LF
|
|
define lib_object
|
|
echo ADDMOD $(file) >> __lib__.tmp
|
|
|
|
endef
|
|
|
|
# We have to use a script to overcome the AR limit of max 850 characters
|
|
# in commmand line
|
|
define create_library
|
|
IF EXIST $@ $(RM) $@
|
|
echo CREATE $@ > __lib__.tmp
|
|
$(foreach file, $^, $(lib_object))
|
|
echo SAVE >> __lib__.tmp
|
|
echo END >> __lib__.tmp
|
|
$(AR) -M < __lib__.tmp
|
|
endef
|
|
|
|
# Under OS/2 || isn't a command separator (inside a shell, that is); correct separator is &
|
|
AR = ar
|
|
ARFLAGS = $(A_USR)
|
|
AR_RULE = $(create_library) & $(RM) __lib__.tmp
|
|
|
|
include $(TOP)$(ROOT)config/rules.cf
|