c:\harbour\config\dos\bcc16.cf |
# # $Id: bcc16.cf 8262 2008-01-31 17:44:30Z rglab $ # # The Harbour Project # GNU MAKE file for Borland C/C++ 3.x, 4.x, 5.0x include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf OBJ_EXT = .obj EXE_EXT = .exe LIB_PREF = LIB_EXT = .lib $(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP = $(subst /,\\,$(GRANDP)) _HB_INC_COMPILE = $(subst /,\\,$(HB_INC_COMPILE)) _HL = $(notdir $(HB_LIB_COMPILE)) ifeq ($(_HL),) #there is an ending slash _HB_LIB_COMPILE = $(subst /,\\,$(HB_LIB_COMPILE)) else _HB_LIB_COMPILE = $(subst /,\\,$(HB_LIB_COMPILE)/) endif CC = bcc CC_IN = -c CC_OUT = -o CPPFLAGS = -I$($(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP) -I$(_HB_INC_COMPILE) CFLAGS = -i48 -O2 -mh -d -DHB_LONG_LONG_OFF # BCC (at least version 3.1) requires that the output file be listed ahead of the input file CC_RULE = $(CC) $(CPPFLAGS) $(CFLAGS) $(C_USR) $(CC_OUT)$(?F:.c=$(OBJ_EXT)) $(CC_IN) $? #Note: The empty line below HAVE TO exist! define link_file echo. $(file) >> __link__.tmp endef define link_exe_file echo. $(LDFLAGS) -e$@ > __link__.tmp $(foreach file, $(^F), $(link_file)) $(foreach file, $(LINKLIBS), $(link_file)) -$(LD) @__link__.tmp endef LD = bcc LDFLAGS = -i48 -O2 -mh $(L_USR) ifeq ($(HB_LIB_COMPILE),) LINKLIBS += $(foreach lib, $(CONTRIBS), $(LIB_DIR)/$(lib)$(LIB_EXT)) LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)$(LIB_EXT)) ifeq ($(findstring rdd,$(LIBS)),rdd) LINKLIBS += $(foreach lib, $(HB_DB_DRIVERS), $(LIB_DIR)$(lib)$(LIB_EXT)) endif else LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT)) LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT)) ifeq ($(findstring rdd,$(LIBS)),rdd) LINKLIBS += $(foreach lib, $(HB_DB_DRIVERS), $(lib)$(LIB_EXT)) endif endif LD_RULE = $(link_exe_file) # Add the specified GT driver library ifeq ($(findstring rtl,$(LIBS)),rtl) ifeq ($(HB_LIB_COMPILE),) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt)$(LIB_EXT)) else LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT)) endif endif #Note: The empty line below HAVE TO exist! define lib_object echo. -+$(file) &>> __lib__.tmp endef define create_library echo. $(LIB_DIR)/$@ &> __lib__.tmp $(foreach file, $(^F), $(lib_object)) echo. ,, >> __lib__.tmp $(AR) $(ARFLAGS) @__lib__.tmp del __lib__.tmp endef AR = tlib ARFLAGS = /C $(A_USR) AR_RULE = $(create_library) include $(TOP)$(ROOT)config/rules.cf |
c:\harbour\config\dos\dir.cf |
# # $Id: dir.cf 6424 2004-10-11 20:44:30Z druzus $ # ifeq ($(PM),) # Only traverse directories if not compiling a specific module ifeq ($(DIRS),) # Empty directory list DIR_RULE = @echo Done else ifeq ($(SHLVL),) # COMMAND.COM # We have to use script to overcome the DOS limit of max 128 characters # NOTE: The empty line directly before 'endef' HAVE TO exist! # It causes that every commands will be separated by LF define dir_mk $(DIR_MAKE) -C $(file) $@ endef DIR_LIST := $(subst /,\,$(DIRS)) DIR_MAKE := $(subst /,\,$(MK)) DIR_RULE = $(foreach file, $(DIR_LIST), $(dir_mk)) else # bash DIR_LIST = $(subst \,/,$(DIRS)) DIR_RULE =\ for d in $(DIR_LIST); do \ if [ -d $$d ]; then \ $(MAKE) -C $$d $@; \ fi \ done endif # ! COMMAND.COM endif # ! Empty directory list endif # ! compiling a specific program module |
c:\harbour\config\dos\djgpp.cf |
# # $Id: djgpp.cf 9516 2008-09-29 14:02:59Z vszakats $ # include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf OBJ_EXT = .o EXE_EXT = .exe LIB_PREF = lib LIB_EXT = .a CC = gcc CC_IN = -c CC_OUT = -o CPPFLAGS = -I. -I$(HB_INC_COMPILE) CFLAGS = -Wall -W -O3 LD = gcc LD_OUT = -o LDLIBS = -lm # Add all libraries specified in CONTRIBS and LIBS. ifeq ($(HB_LIB_COMPILE),) LINKPATHS += -L$(LIB_DIR) else LINKPATHS += -L$(HB_LIB_COMPILE) endif 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) LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv)) endif # Add the specified GT driver library and other RTLs ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), -l$(gt)) 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 script to overcome the DOS limit of max 128 characters # in commmand line define create_library echo. CREATE $(LIB_DIR)/$@ > __lib__.tmp $(foreach file, $(^F), $(lib_object)) echo. SAVE >> __lib__.tmp echo. END >> __lib__.tmp $(AR) $(ARFLAGS) -M < __lib__.tmp endef # NOTE: The empty line below HAVE TO exist! define link_file echo. $(file) >> __link__.tmp endef define link_exe_file echo. $(LDFLAGS) $(L_USR) $(LD_OUT)$@ > __link__.tmp $(foreach file, $(^F), $(link_file)) $(foreach file, $(LINKPATHS), $(link_file)) echo. -Wl,--start-group >> __link__.tmp $(foreach file, $(LINKLIBS), $(link_file)) echo. -Wl,--end-group >> __link__.tmp echo. $(LDLIBS) >> __link__.tmp -$(LD) @__link__.tmp endef AR = ar ARFLAGS = $(A_USR) AR_RULE = $(create_library) LD_RULE = $(link_exe_file) include $(TOP)$(ROOT)config/rules.cf |
c:\harbour\config\dos\global.cf |
# # $Id: global.cf 9484 2008-09-23 22:24:26Z vszakats $ # ifndef MK all : first HB_GT_LIST=\ gtcgi \ gtpca \ gtstd \ gtdos \ # gtcrs \ # gtsln \ # verify if GT drivers exist #HB_GT_LIBS := $(foreach gt, $(HB_GT_LIST), $(if $(wildcard $(TOP)$(ROOT)source/rtl/$(gt)),$(gt),)) HB_GT_LIBS := $(HB_GT_LIST) ifeq ($(SHLVL),) # COMMAND.COM # There is a conflict with the use of '\' and '/' characters # The MAKE requires '/' in filenames (ARCH_DIR) however some compilers # and some DOS commands require '\' (ARCH_DOS) ARCH_DIR = $(subst \,/,$(HB_ARCH)) ARCH_DOS = $(subst /,\,$(HB_ARCH)) LIB_DIR_DOS = $(subst /,\,$(LIB_DIR)) LIB_PATH_DOS = $(subst /,\,$(LIB_PATH)) LIB_ARCH_DOS = $(subst /,\,$(LIB_ARCH)) DIRSEP = $(subst /,\,\) MK := $(subst \,/,$(subst \~,~,$(MAKE))) ifeq ($(COMSPEC),) #location of command.com COMSPEC := command.com else ifeq ($(HB_COMPILER),bcc16) #Use standard dos path, which is already set up. else ifeq ($(HB_COMPILER),rsx32) #Use standard dos path, which is already set up. else ifneq ($(findstring watcom,$(HB_COMPILER)),) #Use standard dos path, which is already set up. else ifeq ($(HB_COMPILER),djgpp) #Use standard dos path, which is already set up. else ifeq ($(HB_COMPILER),emx) #Use standard dos path, which is already set up. else COMSPEC := $(subst \,/,$(COMSPEC)) endif endif endif endif endif endif RM = del RD = rmdir CP = $(COMSPEC) /Ccopy MV = move MD = md #this will be used only under DJGPP RANLIB = ranlib dirbase:: -@$(COMSPEC) /Cfor %d in ($(HB_ARCHITECTURE) $(ARCH_DOS)) do if not exist %d\nul $(MD) %d $(if $(LIB_PATH_DOS),-@$(COMSPEC) /Cfor %d in ($(LIB_PATH_DOS) $(LIB_DIR_DOS)) do if not exist %d\nul $(MD) %d,) clean:: -@$(COMSPEC) /Cfor %f in ($(ARCH_DOS)\*.* *.bak *.obj *.o *.tds) do $(RM) %f -@$(COMSPEC) /Cfor %d in ($(ARCH_DOS) $(HB_ARCHITECTURE)) do if exist %d\nul $(RD) %d $(if $(LIB_ARCH_DOS),-@$(COMSPEC) /Cif exist $(LIB_ARCH_DOS) $(RM) $(LIB_ARCH_DOS),) else # bash ARCH_DIR = $(HB_ARCH) MK = $(MAKE) RM = rm -f RD = rm -f -r CP = cp -f MV = mv -f MD = mkdir MDP = mkdir -p #this will be used only under MINGW RANLIB = ranlib dirbase:: @[ -d $(ARCH_DIR) ] || $(MDP) $(ARCH_DIR) @[ -z $(LIB_DIR) ] || [ -d $(LIB_DIR) ] || $(MDP) $(LIB_DIR) clean:: -$(RD) $(ARCH_DIR) $(LIB_ARCH) endif endif |
c:\harbour\config\dos\install.cf |
# # $Id: install.cf 8279 2008-02-04 08:32:17Z druzus $ # ifeq ($(INSTALL_OBJS),) # Empty install list INSTALL_RULE = @echo Done else ifeq ($(SHLVL),) # COMMAND.COM # We have to use script to overcome the DOS limit of max 128 characters # NOTE: The empty line directly before 'endef' HAVE TO exist! # It causes that every commands will be separated by LF define inst_file $(CP) $(file) $(subst /,\,$(INSTALL_DIR)) endef INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS)) INSTALL_RULE = $(foreach file, $(INSTALL_LIST), $(inst_file)) else # bash INSTALL_DIRSH = $(subst \,/,$(INSTALL_DIR)) INSTALL_OBJSH = $(subst \,/,$(INSTALL_OBJS)) INSTALL_RULE =\ @if [ ! -d $(INSTALL_DIRSH) ]; \ then \ echo "! Can't install, path not found: $(INSTALL_DIRSH)" 1>&2; \ else \ for i in $(INSTALL_OBJSH); \ do \ if [ -r $$i ]; \ then \ echo "! Installing $$i on $(INSTALL_DIRSH)"; \ $(CP) $$i $(INSTALL_DIRSH); \ else \ echo "! Can't install $$i, not found" 1>&2; \ fi \ done \ fi endif endif |
c:\harbour\config\dos\owatcom.cf |
# # $Id: owatcom.cf 9173 2008-08-13 13:30:56Z druzus $ # # The Harbour project # GNU MAKE file for OpenWatcom include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf OBJ_EXT = .obj EXE_EXT = .exe LIB_PREF = LIB_EXT = .lib ifeq ($(SHLVL),) ECHO=echo. DSEP=$(subst /,\,\) else ECHO=echo DSEP=$(subst /,\,\\) endif $(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP = $(subst /,\,$(GRANDP)) CC = wpp386 CC_IN = CC_OUT = -fo= #CPPFLAGS = -j -w3 -d1 -5s -5r -fp5 -oehtz -s -zq -zt0 -bt=DOS CPPFLAGS = -w2 -d1 -zq -bt=DOS #architecture flags CPPFLAGS += -5 -fp5 # optimization flags # don't enable -ol optimization in OpenWatcom 1.1 - gives buggy code CPPFLAGS += -onaehtzr -oi+ -ei -zp8 -s -zt0 CPPFLAGS += -i. -i$(TOP)include -i$(TOP)$(ROOT)include -iinclude ifneq ($(HB_LIB_COMPILE),) CPPFLAGS += -i$(HB_INC_COMPILE) endif # work arround to DOS command line size limit export WPP386 := $(strip $(CPPFLAGS)) CPPFLAGS = # Note: The empty line directly before 'endef' HAVE TO exist! # It causes that the 'echo' command is separated by LF define link_file $(ECHO) FILE $(subst /,$(DSEP),$(subst \,/,$(file))) >> __link__.tmp endef #Note: The empty line directly before 'endef' HAVE TO exist! define link_lib $(ECHO) LIB $(subst /,$(DSEP),$(subst \,/,$(lib))) >> __link__.tmp endef define link_exe_file $(ECHO) $(subst /,$(DSEP),$(subst \,/,$(LDFLAGS))) NAME $@ > __link__.tmp $(foreach file, $(^F), $(link_file)) $(foreach lib, $(HB_USER_LIBS), $(link_lib)) $(foreach lib, $(LINKLIBS), $(link_lib)) $(foreach lib, $(RDDLIBS), $(link_lib)) $(foreach lib, $(GTLIBS), $(link_lib)) -$(LD) @__link__.tmp endef LD = wlink LDFLAGS = debug all OP osn=DOS OP stack=65536 OP CASEEXACT OP stub=cwstub.exe ifeq ($(HB_LIB_COMPILE),) LINKLIBS = $(foreach lib, $(CONTRIBS), $(LIB_DIR)/$(lib)) LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib)) else LINKLIBS = $(foreach lib, $(CONTRIBS), $(HB_LIB_COMPILE)/$(lib)) LINKLIBS += $(foreach lib, $(LIBS), $(HB_LIB_COMPILE)/$(lib)) endif # If LIBS specifies the rdd library, add all DB drivers. ifeq ($(findstring rdd,$(LIBS)),rdd) ifeq ($(HB_LIB_COMPILE),) RDDLIBS = $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv)) else RDDLIBS = $(foreach drv, $(HB_DB_DRIVERS), $(HB_LIB_COMPILE)/$(drv)) endif endif ifeq ($(findstring rtl,$(LIBS)),rtl) ifeq ($(HB_LIB_COMPILE),) GTLIBS = $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt)) else GTLIBS = $(foreach gt, $(HB_GT_LIBS), $(HB_LIB_COMPILE)/$(gt)) endif endif LD_RULE = $(link_exe_file) #Note: The empty line below HAVE TO exist! define lib_object $(ECHO) -+$(subst /,$(DSEP),$(subst \,/,$(file))) >> __lib__.tmp endef define create_library $(ECHO) $(subst /,$(DSEP),$(subst \,/,$(LIB_DIR)))$(DSEP)$@ > __lib__.tmp $(foreach file, $(^F), $(lib_object)) $(AR) $(ARFLAGS) @__lib__.tmp endef AR = wlib ARFLAGS = -p=32 -c -n $(A_USR) AR_RULE = $(create_library) include $(TOP)$(ROOT)config/rules.cf HB := $(subst /,$(DSEP),$(subst \,/,$(HB))) HB_FLAGS := $(subst /,$(DSEP),$(subst \,/,$(HB_FLAGS))) # work arround to DOS command line size limit export HARBOURCMD := $(HB_FLAGS) HB_FLAGS = |
c:\harbour\config\dos\rsx32.cf |
# # $Id: rsx32.cf 9516 2008-09-29 14:02:59Z vszakats $ # # GNU Make file for RSXNT for DOS target 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$(HB_INC_COMPILE) -Zrsx32 CFLAGS = -Wall -W -O3 LD = gcc LDFLAGS = -Zrsx32 # Note the space after -o LD_OUT = -o # Add all libraries specified in CONTRIBS and LIBS. ifeq ($(HB_LIB_COMPILE),) LINKPATHS += -L$(LIB_DIR) else LINKPATHS += -L$(HB_LIB_COMPILE) endif # The -( option could be appropriate to link against libraries with # cyclic dependencies, but I think it is not really necessary if the # libraries are kept in proper order. # 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) LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv)) endif # Add the specified GT driver library and other RTLs ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), -l$(gt)) -lhbrtl endif # The -) option could be appropriate to link against libraries with # cyclic dependencies, but I think it is not really necessary if the # libraries are kept in proper order. # LINKLIBS += -Wl,-) LDFLAGS += $(LINKPATHS) AR = ar ARFLAGS = $(A_USR) AR_RULE = $(AR) $(ARFLAGS) r $(LIB_DIR)/$@ $(^F) || ( $(RM) $(LIB_DIR)/$@ && false ) include $(TOP)$(ROOT)config/rules.cf |
c:\harbour\config\dos\watcom.cf |
# # $Id: watcom.cf 8262 2008-01-31 17:44:30Z rglab $ # # The Harbour project # GNU MAKE file for Watcom C/C++ 10.x include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf OBJ_EXT = .obj EXE_EXT = .exe LIB_PREF = LIB_EXT = .lib $(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP = $(subst /,\\,$(GRANDP)) CC = wpp386 CC_IN = CC_OUT = -fo= CPPFLAGS = -d2 -w2 -5r -zq -zt0 -bt=DOS4G CFLAGS := -i$(subst \,\\,$(WATCOM))\\h -i$(subst /,\\,$(HB_INC_COMPILE)) -i. # Note: The empty line directly before 'endef' HAVE TO exist! # It causes that the 'echo' command is separated by LF define link_file $(COMSPEC) /E:2048 /Cecho FILE $(file) >> __link__.tmp endef #Note: The empty line directly before 'endef' HAVE TO exist! define link_lib $(COMSPEC) /E:2048 /Cecho LIB $(lib) >> __link__.tmp endef define link_exe_file $(COMSPEC) /E:2048 /Cecho $(LDFLAGS) NAME $@ > __link__.tmp $(foreach file, $(^F), $(link_file)) $(foreach lib, $(LINKLIBS), $(link_lib)) $(foreach lib, $(RDDLIBS), $(link_lib)) $(foreach lib, $(GTLIBS), $(link_lib)) -$(LD) @__link__.tmp endef LD = wlink LDFLAGS = debug all OP osn=DOS4G OP stack=65536 OP CASEEXACT ifeq ($(HB_LIB_COMPILE),) LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(LIB_DIR)/$(lib))) LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(LIB_DIR)/$(lib))) else LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(HB_LIB_COMPILE)/$(lib))) LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(HB_LIB_COMPILE)/$(lib))) endif # If LIBS specifies the rdd library, add all DB drivers. ifeq ($(findstring rdd,$(LIBS)),rdd) RDDLIBS := $(foreach drv, $(HB_DB_DRIVERS), $(subst /,\,$(LIB_DIR)/$(drv))) endif GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(subst /,\,$(LIB_DIR)/$(gt))) LD_RULE = $(link_exe_file) #Note: The empty line below HAVE TO exist! define lib_object $(COMSPEC) /E:2048 /Cecho -+$(file) >> __lib__.tmp endef LIB_DDIR := $(subst /,\,$(LIB_DIR)) define create_library $(COMSPEC) /E:2048 /Cecho $(LIB_DDIR)\$@ > __lib__.tmp $(foreach file, $(^F), $(lib_object)) $(AR) $(ARFLAGS) @__lib__.tmp endef AR = wlib ARFLAGS = -p=32 -c $(A_USR) AR_RULE = $(create_library) include $(TOP)$(ROOT)config/rules.cf HB := $(subst /,\\,$(HB)) |