# # $Id$ # # GNU MAKE file for Digital Mars Compiler include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf OBJ_EXT = .obj EXE_EXT = .exe LIB_PREF = LIB_EXT = .lib CC = dmc.exe CC_IN = -c CC_OUT = -o CPPFLAGS = -I. -I$(HB_INC_COMPILE) CFLAGS = -6 -cpp -mn -x # disabled - it causes that wrong code is generated #CFLAGS += -o+time # Suppressing "possible extraneous ';'" warnings. [vszakats] #CFLAGS += -w7 # Add all libraries specified in CONTRIBS and LIBS. ifeq ($(HB_LIB_COMPILE),) LINKLIBS += $(foreach lib, $(CONTRIBS), $(LIB_DIR)\$(lib)$(LIB_EXT)) LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)\$(lib)$(LIB_EXT)) else LINKLIBS += $(foreach lib, $(CONTRIBS), $(HB_LIB_COMPILE)\$(lib)$(LIB_EXT)) LINKLIBS += $(foreach lib, $(LIBS), $(HB_LIB_COMPILE)\$(lib)$(LIB_EXT)) endif # If LIBS specifies the rdd library, add all DB drivers. ifeq ($(findstring rdd,$(LIBS)),rdd) LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv)$(LIB_EXT)) endif # Add the specified GT driver library and other RTLs ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt)$(LIB_EXT)) endif ifneq ($(HB_SCREEN_LIB),) LINKLIBS += $(HB_SCREEN_LIB) endif # Add the optional user path(s) #ifneq ($(LNK_USR_PATH),) #LINKPATHS += $(foreach path, $(LNK_USR_PATH), -L$(path)) #endif # Add the optional user libarary (or libraries) ifneq ($(LNK_USR_LIB),) LINKLIBS += $(foreach lib, $(LNK_USR_LIB), $(lib)$(LIB_EXT)) endif SYSLIBS = kernel32 user32 gdi32 wsock32 advapi32 SYSLIBS += winspool comctl32 comdlg32 ole32 oleaut32 uuid LINKLIBS += $(SYSLIBS) define link_exe_file echo $(subst /,\,$(^F)) > __link__.tmp echo $@ >> __link__.tmp echo. >> __link__.tmp echo $(subst /,\,$(LINKLIBS)) >> __link__.tmp $(LD) $(LDFLAGS) @__link__.tmp endef LD = link.exe LDFLAGS = /NOMAP /EXETYPE:NT /SUBSYSTEM:CONSOLE $(LINKPATHS) $(HB_USER_LDFLAGS) ifeq ($(SHLVL),) LNKLIBS=$(subst /,\,$(LINKLIBS)) else LNKLIBS=$(subst /,\\,$(subst \,/,$(LINKLIBS))) endif LD_RULE = $(LD) $(LDFLAGS) $(^F), $@,, $(LNKLIBS) define create_library echo $@ > __lib__.tmp echo $(^F) >> __lib__.tmp $(AR) $(ARFLAGS) @__lib__.tmp endef AR = lib.exe ARFLAGS = -c $(HB_USER_AFLAGS) AROBJS = $(foreach file, $(^F), $(file)) AR_RULE = $(AR) $(ARFLAGS) $(LIB_DIR)/$@ $(AROBJS) ifeq ($(COMMAND_COM),yes) # workaround for command line size limit LD_RULE = $(link_exe_file) AR_RULE = $(create_library) endif include $(TOP)$(ROOT)config/rules.cf