2009-08-21 12:46 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/Makefile
! Fixed typo in prev commit.
* config/global.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/msvc.mk
* config/dyn.mk
* config/rules.mk
+ Added OBJ_DYN_POSTFIX variable instead of hardcoded '_dyn'.
* config/global.mk
* config/dyn.mk
+ Added DYN_DIR. Set to LIB_DIR for *nix, BIN_DIR for non-*nix.
* config/globsh.mk
+ Added dynamic lib dir/file related dir creation and cleanup rules.
* config/win/mingw.mk
* config/wce/mingwarm.mk
+ Added space between -o and output filename.
(this should probably be made default)
* config/win/mingw.mk
+ Added .dll build rules.
* config/win/bcc.mk
% Using $(wildcard) instead of echo trick to delete __lib__.tmp.
This commit is contained in:
@@ -17,6 +17,42 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-08-21 12:46 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* source/Makefile
|
||||
! Fixed typo in prev commit.
|
||||
|
||||
* config/global.mk
|
||||
* config/wce/poccarm.mk
|
||||
* config/wce/msvcarm.mk
|
||||
* config/win/xcc.mk
|
||||
* config/win/mingw.mk
|
||||
* config/win/pocc.mk
|
||||
* config/win/bcc.mk
|
||||
* config/win/watcom.mk
|
||||
* config/win/icc.mk
|
||||
* config/win/msvc.mk
|
||||
* config/dyn.mk
|
||||
* config/rules.mk
|
||||
+ Added OBJ_DYN_POSTFIX variable instead of hardcoded '_dyn'.
|
||||
|
||||
* config/global.mk
|
||||
* config/dyn.mk
|
||||
+ Added DYN_DIR. Set to LIB_DIR for *nix, BIN_DIR for non-*nix.
|
||||
|
||||
* config/globsh.mk
|
||||
+ Added dynamic lib dir/file related dir creation and cleanup rules.
|
||||
|
||||
* config/win/mingw.mk
|
||||
* config/wce/mingwarm.mk
|
||||
+ Added space between -o and output filename.
|
||||
(this should probably be made default)
|
||||
|
||||
* config/win/mingw.mk
|
||||
+ Added .dll build rules.
|
||||
|
||||
* config/win/bcc.mk
|
||||
% Using $(wildcard) instead of echo trick to delete __lib__.tmp.
|
||||
|
||||
2009-08-21 11:29 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* source/dynlib/Makefile
|
||||
* source/Makefile
|
||||
|
||||
@@ -14,16 +14,16 @@ include $(TOP)$(ROOT)config/prg.mk
|
||||
|
||||
DYN_NAME := $(DYN_PREF)$(DYNNAME)$(DYN_EXT)
|
||||
|
||||
DYN_FILE := $(BIN_DIR)/$(DYN_NAME)
|
||||
DYN_FILE := $(DYN_DIR)/$(DYN_NAME)
|
||||
|
||||
ALL_OBJS := $(subst /,$(DIRSEP),$(foreach dir,$(DYNDIRLIST),$(wildcard $(TOP)$(ROOT)$(dir)/$(OBJ_DIR)/*_dyn$(OBJ_EXT))))
|
||||
ALL_OBJS := $(subst /,$(DIRSEP),$(foreach dir,$(DYNDIRLIST),$(wildcard $(TOP)$(ROOT)$(dir)/$(OBJ_DIR)/*$(OBJ_DYN_POSTFIX)$(OBJ_EXT))))
|
||||
|
||||
first:: dirbase descend
|
||||
|
||||
descend:: dirbase
|
||||
+@$(MK) $(MKFLAGS) -C $(OBJ_DIR) -f $(GRANDP)Makefile TOP=$(GRANDP) $(DYN_NAME)
|
||||
|
||||
vpath $(DYN_NAME) $(BIN_DIR)
|
||||
vpath $(DYN_NAME) $(DYN_DIR)
|
||||
$(DYN_NAME) : $(ALL_OBJS)
|
||||
$(DY_RULE)
|
||||
|
||||
|
||||
@@ -705,17 +705,29 @@ endif
|
||||
export HB_ARCHITECTURE
|
||||
export HB_COMPILER
|
||||
|
||||
ifneq ($(filter $(HB_ARCHITECTURE),win wce dos os2),)
|
||||
HB_OS_UNIX := no
|
||||
else
|
||||
HB_OS_UNIX := yes
|
||||
endif
|
||||
|
||||
ARCH_COMP := $(HB_ARCHITECTURE)/$(HB_COMPILER)$(subst \,/,$(HB_BUILD_NAME))
|
||||
|
||||
OBJ_DIR := obj/$(ARCH_COMP)
|
||||
BIN_DIR := $(TOP)$(ROOT)bin/$(ARCH_COMP)
|
||||
LIB_DIR := $(TOP)$(ROOT)lib/$(ARCH_COMP)
|
||||
ifeq ($(HB_OS_UNIX),yes)
|
||||
DYN_DIR := $(LIB_DIR)
|
||||
else
|
||||
DYN_DIR := $(BIN_DIR)
|
||||
endif
|
||||
# define PKG_DIR only if run from root Makefile
|
||||
ifeq ($(ROOT),./)
|
||||
PKG_DIR := $(TOP)$(ROOT)pkg/$(ARCH_COMP)
|
||||
else
|
||||
PKG_DIR :=
|
||||
endif
|
||||
OBJ_DYN_POSTFIX :=
|
||||
|
||||
# Assemble relative path from OBJ_DIR to source.
|
||||
GRANDP := $(subst $(subst x,x, ),,$(foreach item, $(subst /, ,$(OBJ_DIR)), ../))
|
||||
@@ -761,12 +773,6 @@ ifeq ($(HB_INIT_DONE),)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(filter $(HB_ARCHITECTURE),win wce dos os2),)
|
||||
HB_OS_UNIX := no
|
||||
else
|
||||
HB_OS_UNIX := yes
|
||||
endif
|
||||
|
||||
# Reserve variables for local compiler flags. Makefiles
|
||||
# should only modify these instead of HB_USER_* variables
|
||||
# as these can have bad side effects (doubly added values)
|
||||
|
||||
@@ -24,6 +24,8 @@ LIB_DIR_OS = $(subst /,\,$(LIB_DIR))
|
||||
LIB_FILE_OS = $(subst /,\,$(LIB_FILE))
|
||||
BIN_DIR_OS = $(subst /,\,$(BIN_DIR))
|
||||
BIN_FILE_OS = $(subst /,\,$(BIN_FILE))
|
||||
DYN_DIR_OS = $(subst /,\,$(DYN_DIR))
|
||||
DYN_FILE_OS = $(subst /,\,$(DYN_FILE))
|
||||
|
||||
endif
|
||||
|
||||
@@ -42,9 +44,10 @@ dirbase::
|
||||
@[ -d "$(OBJ_DIR)" ] || $(MDP) $(OBJ_DIR)
|
||||
@[ -z "$(LIB_FILE)" ] || [ -d "$(LIB_DIR)" ] || $(MDP) $(LIB_DIR)
|
||||
@[ -z "$(BIN_FILE)" ] || [ -d "$(BIN_DIR)" ] || $(MDP) $(BIN_DIR)
|
||||
@[ -z "$(DYN_FILE)" ] || [ -d "$(DYN_DIR)" ] || $(MDP) $(DYN_DIR)
|
||||
|
||||
clean::
|
||||
-@$(RDP) $(PKG_DIR) $(OBJ_DIR) $(LIB_FILE) $(BIN_FILE); \
|
||||
-@$(RDP) $(PKG_DIR) $(OBJ_DIR) $(LIB_FILE) $(BIN_FILE) $(DYN_FILE); \
|
||||
if [ -n "$(LIB_FILE)" ]; then \
|
||||
$(RM) $(basename $(LIB_FILE)).bak; \
|
||||
[ "`$(ECHO) $(LIB_DIR)/*`" != "$(LIB_DIR)/*" ] || $(RDP) $(LIB_DIR); \
|
||||
@@ -52,6 +55,10 @@ clean::
|
||||
if [ -n "$(BIN_FILE)" ]; then \
|
||||
$(RM) $(basename $(BIN_FILE)).tds; \
|
||||
[ "`$(ECHO) $(BIN_DIR)/*`" != "$(BIN_DIR)/*" ] || $(RDP) $(BIN_DIR); \
|
||||
fi ; \
|
||||
if [ -n "$(DYN_FILE)" ]; then \
|
||||
$(RM) $(basename $(DYN_FILE)).exp; \
|
||||
[ "`$(ECHO) $(DYN_DIR)/*`" != "$(DYN_DIR)/*" ] || $(RDP) $(DYN_DIR); \
|
||||
fi
|
||||
|
||||
endif
|
||||
@@ -76,6 +83,7 @@ dirbase::
|
||||
-@if not exist "$(OBJ_DIR_OS)" $(MDP) "$(OBJ_DIR_OS)"
|
||||
$(if $(LIB_FILE),-@if not exist "$(LIB_DIR_OS)" $(MDP) "$(LIB_DIR_OS)",)
|
||||
$(if $(BIN_FILE),-@if not exist "$(BIN_DIR_OS)" $(MDP) "$(BIN_DIR_OS)",)
|
||||
$(if $(DYN_FILE),-@if not exist "$(DYN_DIR_OS)" $(MDP) "$(DYN_DIR_OS)",)
|
||||
|
||||
clean::
|
||||
-@if exist "$(OBJ_DIR_OS)" $(RDP) "$(OBJ_DIR_OS)"
|
||||
@@ -86,6 +94,9 @@ clean::
|
||||
$(if $(BIN_FILE),-@if exist "$(BIN_FILE_OS)" $(RM) "$(BIN_FILE_OS)",)
|
||||
$(if $(BIN_FILE),-@if exist "$(basename $(BIN_FILE_OS)).tds" $(RM) "$(basename $(BIN_FILE_OS)).tds",)
|
||||
$(if $(BIN_FILE),-@if exist "$(BIN_DIR_OS)" if not exist "$(BIN_DIR_OS)\*" $(RDP) "$(BIN_DIR_OS)",)
|
||||
$(if $(DYN_FILE),-@if exist "$(DYN_FILE_OS)" $(RM) "$(DYN_FILE_OS)",)
|
||||
$(if $(DYN_FILE),-@if exist "$(basename $(DYN_FILE_OS)).exp" $(RM) "$(basename $(DYN_FILE_OS)).exp",)
|
||||
$(if $(DYN_FILE),-@if exist "$(DYN_DIR_OS)" if not exist "$(DYN_DIR_OS)\*" $(RDP) "$(DYN_DIR_OS)",)
|
||||
|
||||
endif
|
||||
|
||||
@@ -104,11 +115,13 @@ dirbase::
|
||||
-@if not exist $(OBJ_DIR_OS) $(MDP) $(OBJ_DIR)
|
||||
$(if $(LIB_FILE),-@if not exist $(LIB_DIR_OS) $(MDP) $(LIB_DIR),)
|
||||
$(if $(BIN_FILE),-@if not exist $(BIN_DIR_OS) $(MDP) $(BIN_DIR),)
|
||||
$(if $(DYN_FILE),-@if not exist $(DYN_DIR_OS) $(MDP) $(DYN_DIR),)
|
||||
|
||||
clean::
|
||||
@$(RDP) $(PKG_DIR_OS) $(OBJ_DIR_OS) $(LIB_FILE_OS) $(BIN_FILE_OS)
|
||||
$(if $(LIB_FILE),-@if exist $(LIB_DIR_OS) $(RDP) $(LIB_DIR_OS),)
|
||||
$(if $(BIN_FILE),-@if exist $(BIN_DIR_OS) $(RDP) $(BIN_DIR_OS),)
|
||||
$(if $(DYN_FILE),-@if exist $(DYN_DIR_OS) $(RDP) $(DYN_DIR_OS),)
|
||||
|
||||
endif
|
||||
|
||||
@@ -127,6 +140,7 @@ dirbase::
|
||||
-@$(MDP) $(OBJ_DIR_OS)
|
||||
$(if $(LIB_FILE),-@$(MDP) $(LIB_DIR_OS),)
|
||||
$(if $(BIN_FILE),-@$(MDP) $(BIN_DIR_OS),)
|
||||
$(if $(DYN_FILE),-@$(MDP) $(DYN_DIR_OS),)
|
||||
|
||||
clean::
|
||||
-@$(RDP) $(PKG_DIR_OS) $(OBJ_DIR_OS) $(LIB_FILE_OS) $(BIN_FILE_OS)
|
||||
@@ -134,5 +148,7 @@ clean::
|
||||
$(if $(LIB_FILE),$(if $(wildcard $(LIB_DIR_OS)/*.*),,-@$(RDP) $(LIB_DIR_OS)),)
|
||||
$(if $(BIN_FILE),-@$(RM) $(basename $(BIN_FILE_OS)).tds,)
|
||||
$(if $(BIN_FILE),$(if $(wildcard $(BIN_DIR_OS)/*.*),,-@$(RDP) $(BIN_DIR_OS)),)
|
||||
$(if $(DYN_FILE),-@$(RM) $(basename $(DYN_FILE_OS)).exp,)
|
||||
$(if $(DYN_FILE),$(if $(wildcard $(DYN_DIR_OS)/*.*),,-@$(RDP) $(DYN_DIR_OS)),)
|
||||
|
||||
endif
|
||||
|
||||
@@ -38,7 +38,7 @@ ifeq ($(CC_RULE),)
|
||||
ifneq ($(filter $(LIBNAME),$(HB_DYN_LIBS)),)
|
||||
define cc_comp_all
|
||||
$(CC) $(CC_FLAGS) $(HB_USER_CFLAGS) $(CC_OUT)$(<F:.c=$(OBJ_EXT)) $(CC_IN) $<
|
||||
$(CC) $(CC_FLAGS) $(HB_USER_CFLAGS) $(CC_OUT)$(<F:.c=_dyn$(OBJ_EXT)) $(HB_DYN_COPT) $(CC_IN) $<
|
||||
$(CC) $(CC_FLAGS) $(HB_USER_CFLAGS) $(CC_OUT)$(<F:.c=$(OBJ_DYN_POSTFIX)$(OBJ_EXT)) $(HB_DYN_COPT) $(CC_IN) $<
|
||||
endef
|
||||
CC_RULE = $(cc_comp_all)
|
||||
endif
|
||||
@@ -94,7 +94,7 @@ ifneq ($(HB_BUILD_DLL),no)
|
||||
ifneq ($(DY_RULE),)
|
||||
|
||||
# Rule to generate an dynamic library from an object file.
|
||||
%$(DYN_EXT) : %_dyn$(OBJ_EXT)
|
||||
%$(DYN_EXT) : %$(OBJ_DYN_POSTFIX)$(OBJ_EXT)
|
||||
$(DY_RULE)
|
||||
|
||||
endif
|
||||
|
||||
@@ -35,7 +35,7 @@ ifeq ($(HB_BUILD_DEBUG),yes)
|
||||
endif
|
||||
|
||||
LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)
|
||||
LD_OUT := -o
|
||||
LD_OUT := -o$(subst x,x, )
|
||||
|
||||
LIBPATHS := -L$(LIB_DIR)
|
||||
LDLIBS := $(foreach lib,$(LIBS) $(SYSLIBS),-l$(lib))
|
||||
|
||||
@@ -7,6 +7,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := cl.exe
|
||||
ifeq ($(HB_COMPILER),msvcarm)
|
||||
|
||||
@@ -9,6 +9,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := pocc.exe
|
||||
CC_IN := -c
|
||||
|
||||
@@ -9,6 +9,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := bcc32.exe
|
||||
CC_IN := -c
|
||||
@@ -71,7 +72,7 @@ ifneq ($(HB_SHELL),sh)
|
||||
endef
|
||||
|
||||
define create_library
|
||||
@$(ECHO) $(ECHOQUOTE)-+ $(LINECONT)$(ECHOQUOTE) > __lib__.tmp
|
||||
$(if $(wildcard __lib__.tmp),@$(RM) __lib__.tmp,)
|
||||
$(foreach file,$(^F),$(lib_object))
|
||||
@$(ECHO) -+>> __lib__.tmp
|
||||
$(AR) $(ARFLAGS) $(HB_USER_AFLAGS) "$(subst /,\,$(LIB_DIR)/$@)" @__lib__.tmp
|
||||
|
||||
@@ -10,6 +10,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := icl.exe
|
||||
CC_IN := -c
|
||||
|
||||
@@ -37,7 +37,7 @@ ifeq ($(HB_BUILD_DEBUG),yes)
|
||||
endif
|
||||
|
||||
LD := $(HB_CCPATH)$(HB_CCPREFIX)$(HB_CMP)
|
||||
LD_OUT := -o
|
||||
LD_OUT := -o$(subst x,x, )
|
||||
|
||||
LIBPATHS := -L$(LIB_DIR)
|
||||
LDLIBS := $(foreach lib,$(LIBS) $(SYSLIBS),-l$(lib))
|
||||
@@ -55,4 +55,22 @@ AR := $(HB_CCPATH)$(HB_CCPREFIX)ar
|
||||
ARFLAGS :=
|
||||
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
|
||||
|
||||
DY := $(CC)
|
||||
DFLAGS := -shared
|
||||
DY_OUT := $(LD_OUT)
|
||||
DLIBS := $(foreach lib,$(SYSLIBS),-l$(lib))
|
||||
|
||||
# NOTE: The empty line directly before 'endef' HAVE TO exist!
|
||||
define dyn_object
|
||||
@$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp
|
||||
|
||||
endef
|
||||
define create_dynlib
|
||||
$(if $(wildcard __dyn__.tmp),@$(RM) __dyn__.tmp,)
|
||||
$(foreach file,$^,$(dyn_object))
|
||||
$(DY) $(DFLAGS) $(DY_OUT)"$(BIN_DIR)/$@"$(ECHOQUOTE) __dyn__.tmp $(HB_USER_DFLAGS) $(DLIBS) -Wl,--output-def,"$(BIN_DIR)/$(basename $@).def"
|
||||
endef
|
||||
|
||||
DY_RULE = $(create_dynlib)
|
||||
|
||||
include $(TOP)$(ROOT)config/rules.mk
|
||||
|
||||
@@ -7,6 +7,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := cl.exe
|
||||
CC_IN := -c
|
||||
|
||||
@@ -9,6 +9,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := pocc.exe
|
||||
CC_IN := -c
|
||||
|
||||
@@ -9,6 +9,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
ifeq ($(HB_BUILD_MODE),c)
|
||||
CC := wcc386
|
||||
|
||||
@@ -9,6 +9,7 @@ LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
OBJ_DYN_POSTFIX := _dyn
|
||||
|
||||
CC := xcc.exe
|
||||
CC_IN := -c
|
||||
|
||||
@@ -6,44 +6,44 @@ ROOT := ../
|
||||
|
||||
ifeq ($(HB_HOST_BUILD),yes)
|
||||
|
||||
DIRS := \
|
||||
common \
|
||||
nortl \
|
||||
pp{common,nortl} \
|
||||
compiler{pp} \
|
||||
main{compiler} \
|
||||
DIRS := \
|
||||
common \
|
||||
nortl \
|
||||
pp{common,nortl} \
|
||||
compiler{pp} \
|
||||
main{compiler} \
|
||||
|
||||
else
|
||||
|
||||
ifeq ($(HB_HOST_BUILD),lib)
|
||||
HB_COMP_DIR :=
|
||||
HB_COMP_REF :=
|
||||
else
|
||||
HB_COMP_DIR := main{compiler}
|
||||
HB_COMP_REF := {main}
|
||||
endif
|
||||
|
||||
DIRS := \
|
||||
common \
|
||||
nortl \
|
||||
pp{common,nortl} \
|
||||
compiler{pp} \
|
||||
$(HB_COMP_DIR) \
|
||||
rtl$(HB_COMP_REF) \
|
||||
vm$(HB_COMP_REF) \
|
||||
macro \
|
||||
codepage \
|
||||
lang \
|
||||
rdd$(HB_COMP_REF) \
|
||||
hbextern$(HB_COMP_REF) \
|
||||
hbpcre \
|
||||
hbzlib \
|
||||
debug$(HB_COMP_REF)
|
||||
|
||||
ifneq ($(HB_BUILD_DLL),no)
|
||||
DIRS += dynlib{codepage,common,hbextern,hbpcre,hbzlib,lang,macro,pp,rdd,rtl,vm} \
|
||||
ifeq ($(HB_HOST_BUILD),lib)
|
||||
HB_COMP_DIR :=
|
||||
HB_COMP_REF :=
|
||||
else
|
||||
HB_COMP_DIR := main{compiler}
|
||||
HB_COMP_REF := {main}
|
||||
endif
|
||||
|
||||
DIRS := \
|
||||
common \
|
||||
nortl \
|
||||
pp{common,nortl} \
|
||||
compiler{pp} \
|
||||
$(HB_COMP_DIR) \
|
||||
rtl$(HB_COMP_REF) \
|
||||
vm$(HB_COMP_REF) \
|
||||
macro \
|
||||
codepage \
|
||||
lang \
|
||||
rdd$(HB_COMP_REF) \
|
||||
hbextern$(HB_COMP_REF) \
|
||||
hbpcre \
|
||||
hbzlib \
|
||||
debug$(HB_COMP_REF)
|
||||
|
||||
ifneq ($(HB_BUILD_DLL),no)
|
||||
DIRS += dynlib{codepage,common,hbextern,hbpcre,hbzlib,lang,macro,pp,rdd,rtl,vm}
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
include $(ROOT)config/dir.mk
|
||||
|
||||
Reference in New Issue
Block a user