rules-so.mak

来自「一个功能上类似STL的库」· MAK 代码 · 共 98 行

MAK
98
字号
# -*- makefile -*- Time-stamp: <03/10/27 18:15:05 ptr>
# $Id: rules-so.mak 2384 2006-05-30 20:25:17Z dums $

# Shared libraries tags

PHONY += release-shared dbg-shared stldbg-shared

release-shared:	$(OUTPUT_DIR) ${SO_NAME_OUT}

dbg-shared:	$(OUTPUT_DIR_DBG) ${SO_NAME_OUT_DBG}

stldbg-shared:	$(OUTPUT_DIR_STLDBG) ${SO_NAME_OUT_STLDBG}

ifeq (bcc, $(COMPILER_NAME))
# Borland linker
${SO_NAME_OUT}:	$(OBJ) $(RES) $(LIBSDEP)
	$(LINK.cc) $(subst /,\,$(START_OBJ) $(OBJ) $(END_OBJ), $(LINK_OUTPUT_OPTION), , $(LDLIBS), , $(RES))
${SO_NAME_OUT_DBG}:	$(OBJ_DBG) $(RES_DBG) $(LIBSDEP)
	$(LINK.cc) $(subst /,\,$(START_OBJ) $(OBJ_DBG) $(END_OBJ), $(LINK_OUTPUT_OPTION), , $(LDLIBS), , $(RES_DBG))
${SO_NAME_OUT_STLDBG}:	$(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP)
	$(LINK.cc) $(subst /,\,$(START_OBJ) $(OBJ_STLDBG) $(END_OBJ), $(LINK_OUTPUT_OPTION), , $(LDLIBS), , $(RES_STLDBG))
else
ifeq (dmc, $(COMPILER_NAME))
# Digital Mars linker
# This linker generate the dll file even if link fail so we also use a
# dependency on the lib file.

$(SO_NAME_OUT):	$(LIB_NAME_OUT)
	$(LINK.cc) $(subst /,\,$(OBJ),$(LINK_OUTPUT_OPTION),$(MAP_OUTPUT_OPTION),$(LDLIBS),$(DEF_OPTION),$(RES))
$(LIB_NAME_OUT): $(OBJ) $(RES) $(LIBSDEP)
	@echo LIBRARY "$(SO_NAME_BASE).dll" > $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo DESCRIPTION 'STLport DLL for Digital Mars C/C++'>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo EXETYPE NT>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo SUBSYSTEM WINDOWS>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo CODE SHARED EXECUTE>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo DATA READWRITE>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo.>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo EXPORTS>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?cin@std@@3V?$$basic_istream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?cout@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?cerr@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?clog@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?wcin@std@@3V?$$basic_istream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?wcout@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?wcerr@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
	@echo 	"?wclog@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR)/$(SO_NAME_BASE).def

$(SO_NAME_OUT_DBG): $(LIB_NAME_OUT_DBG)
	$(LINK.cc) $(subst /,\,$(OBJ_DBG), $(LINK_OUTPUT_OPTION), $(MAP_OUTPUT_OPTION), $(LDLIBS), $(DEF_OPTION_DBG), $(RES_DBG))
$(LIB_NAME_OUT_DBG): $(OBJ_DBG) $(RES_DBG) $(LIBSDEP)
	@echo LIBRARY "$(SO_NAME_DBG_BASE).dll" > $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo DESCRIPTION 'STLport DLL for Digital Mars C/C++'>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo EXETYPE NT>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo SUBSYSTEM WINDOWS>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo CODE SHARED EXECUTE>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo DATA READWRITE>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo.>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo EXPORTS>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?cin@std@@3V?$$basic_istream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?cout@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?cerr@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?clog@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?wcin@std@@3V?$$basic_istream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?wcout@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?wcerr@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
	@echo 	"?wclog@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def

$(SO_NAME_OUT_STLDBG):	$(LIB_NAME_OUT_STLDBG)
	$(LINK.cc) $(subst /,\,$(OBJ_STLDBG), $(LINK_OUTPUT_OPTION), $(MAP_OUTPUT_OPTION), $(LDLIBS), $(DEF_OPTION_STLDBG), $(RES_STLDBG))
$(LIB_NAME_OUT_STLDBG):	$(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP)
	@echo LIBRARY "$(SO_NAME_STLDBG_BASE).dll" > $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo DESCRIPTION 'STLport DLL for Digital Mars C/C++'>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo EXETYPE NT>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo SUBSYSTEM WINDOWS>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo CODE SHARED EXECUTE>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo DATA READWRITE>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo.>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo EXPORTS>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?cin@std@@3V?$$basic_istream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?cout@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?cerr@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?clog@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?wcin@std@@3V?$$basic_istream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?wcout@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?wcerr@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
	@echo 	"?wclog@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A">> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def

else
# GNU linker
${SO_NAME_OUT}:	$(OBJ) $(RES) $(LIBSDEP)
	$(LINK.cc) $(LINK_OUTPUT_OPTION) $(OBJ) $(RES) $(LDLIBS)
${SO_NAME_OUT_DBG}:	$(OBJ_DBG) $(RES_DBG) $(LIBSDEP)
	$(LINK.cc) $(LINK_OUTPUT_OPTION) $(OBJ_DBG) $(RES_DBG) $(LDLIBS)
${SO_NAME_OUT_STLDBG}:	$(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP)
	$(LINK.cc) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(RES_STLDBG) $(LDLIBS)
endif
endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?