📄 makefile.base
字号:
# create dynamic release objects
{$(SRC_DIR4)}.asm{$(OBJ_DIR)}.sr_o:
@ $(ASM) $(ASMFLAGS) $(RELEASE_ASMFLAGS) -o $@ $<
# create dynamic debug objects
{$(SRC_DIR4)}.asm{$(OBJ_DIR)}.sd_o:
@ $(ASM) $(ASMFLAGS) $(DEBUG_ASMFLAGS) -o $@ $<
#########################################################
# c rules
#########################################################
# create dynamic release objects
{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.dr_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(DYN_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create dynamic debug objects
{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.dd_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(DYN_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create static release objects
{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.sr_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(STAT_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create static debug objects
{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.sd_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(STAT_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create dynamic release objects
{$(SRC_DIR1)}.cpp{$(OBJ_DIR)}.dr_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(DYN_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create dynamic debug objects
{$(SRC_DIR1)}.cpp{$(OBJ_DIR)}.dd_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(DYN_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create static release objects
{$(SRC_DIR1)}.cpp{$(OBJ_DIR)}.sr_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(STAT_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create static debug objects
{$(SRC_DIR1)}.cpp{$(OBJ_DIR)}.sd_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(STAT_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create dynamic release objects
{$(SRC_DIR2)}.cpp{$(OBJ_DIR)}.dr_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(DYN_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create dynamic debug objects
{$(SRC_DIR2)}.cpp{$(OBJ_DIR)}.dd_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(DYN_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create static release objects
{$(SRC_DIR2)}.cpp{$(OBJ_DIR)}.sr_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(STAT_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create static debug objects
{$(SRC_DIR2)}.cpp{$(OBJ_DIR)}.sd_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(STAT_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create dynamic release objects
{$(SRC_DIR3)}.cpp{$(OBJ_DIR)}.dr_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(DYN_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create dynamic debug objects
{$(SRC_DIR3)}.cpp{$(OBJ_DIR)}.dd_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(DYN_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create static release objects
{$(SRC_DIR3)}.cpp{$(OBJ_DIR)}.sr_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(STAT_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create static debug objects
{$(SRC_DIR3)}.cpp{$(OBJ_DIR)}.sd_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(STAT_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create dynamic release objects
{$(SRC_DIR4)}.cpp{$(OBJ_DIR)}.dr_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(DYN_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create dynamic debug objects
{$(SRC_DIR4)}.cpp{$(OBJ_DIR)}.dd_o:
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(DYN_DEBUG_CPPFLAGS) -c -Fo$@ $<
# create static release objects
{$(SRC_DIR4)}.cpp{$(OBJ_DIR)}.sr_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(STAT_RELEASE_CPPFLAGS) -c -Fo$@ $<
# create static debug objects
{$(SRC_DIR4)}.cpp{$(OBJ_DIR)}.sd_o:
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(USE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(STAT_DEBUG_CPPFLAGS) -c -Fo$@ $<
#########################################################
# directory settings
#########################################################
!IF "$(CONFIG)" == "LIBRARY"
# directories that have to be created for a library
CHECK_DIRS = $(OBJ_DIR) $(LIB_DIR) $(BIN_DIR)
#
!ELSEIF ("$(CONFIG)" == "CONSOLE") || ("$(CONFIG)" == "MFC")
# directories that have to be created for console and MFC
CHECK_DIRS = $(OBJ_DIR) $(BIN_DIR)
#
!ENDIF
#########################################################
# targets
#########################################################
all: debug release
debug: $(CHECK_DIRS) \
$(DYN_DEBUG_RES) \
$(DYN_DEBUG_PCH_OBJ) \
$(DYN_DEBUG_OUT) \
$(STAT_DEBUG_RES) \
$(STAT_DEBUG_PCH_OBJ) \
$(STAT_DEBUG_OUT)
release: $(CHECK_DIRS) \
$(DYN_RELEASE_RES) \
$(DYN_RELEASE_PCH_OBJ) \
$(DYN_RELEASE_OUT) \
$(STAT_RELEASE_RES) \
$(STAT_RELEASE_PCH_OBJ) \
$(STAT_RELEASE_OUT)
stat_debug: $(CHECK_DIRS) \
$(STAT_DEBUG_RES) \
$(STAT_DEBUG_PCH_OBJ) \
$(STAT_DEBUG_OUT)
dyn_debug: $(CHECK_DIRS) \
$(DYN_DEBUG_RES) \
$(DYN_DEBUG_PCH_OBJ) \
$(DYN_DEBUG_OUT)
stat_release: $(CHECK_DIRS) \
$(STAT_RELEASE_RES) \
$(STAT_RELEASE_PCH_OBJ) \
$(STAT_RELEASE_OUT)
dyn_release: $(CHECK_DIRS) \
$(DYN_RELEASE_RES) \
$(DYN_RELEASE_PCH_OBJ) \
$(DYN_RELEASE_OUT)
##########################################################
# create directories
##########################################################
$(OBJ_DIR):
@ if not exist "$(OBJ_DIR)" mkdir "$(OBJ_DIR)"
$(LIB_DIR):
@ if not exist "$(LIB_DIR)" mkdir "$(LIB_DIR)"
$(BIN_DIR):
@ if not exist "$(BIN_DIR)" mkdir "$(BIN_DIR)"
##########################################################
# create resources
##########################################################
!IF "$(RSC_NAME)" != ""
# dynamic release resources
$(DYN_RELEASE_RES) : $(SRC_DIR)\$(RSC_NAME).rc
@ $(RSC) $(RSCFLAGS) -fo$(DYN_RELEASE_RES) -i $(SRC_DIR) -d NDEBUG $(SRC_DIR)\$(RSC_NAME).rc
#
# dynamic debug resources
$(DYN_DEBUG_RES) : $(SRC_DIR)\$(RSC_NAME).rc
@ $(RSC) $(RSCFLAGS) -fo$(DYN_DEBUG_RES) -i $(SRC_DIR) -d _DEBUG $(SRC_DIR)\$(RSC_NAME).rc
#
!IF ("$(CONFIG)" == "CONSOLE") || ("$(CONFIG)" == "MFC")
#
# static release resources
$(STAT_RELEASE_RES) : $(SRC_DIR)\$(RSC_NAME).rc
@ $(RSC) $(RSCFLAGS) -fo$(STAT_RELEASE_RES) -i $(SRC_DIR) -d NDEBUG $(SRC_DIR)\$(RSC_NAME).rc
#
# static debug resources
$(STAT_DEBUG_RES) : $(SRC_DIR)\$(RSC_NAME).rc
@ $(RSC) $(RSCFLAGS) -fo$(STAT_DEBUG_RES) -i $(SRC_DIR) -d _DEBUG $(SRC_DIR)\$(RSC_NAME).rc
#
!ENDIF
#
!ENDIF
##########################################################
# create precomiled header objects
##########################################################
# create precompiled header dynamic debug object
$(DYN_DEBUG_PCH_OBJ): $(SRC_DIR)\$(PCH_NAME).cpp $(OBJ_DIR)
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(CREATE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(DYN_DEBUG_CPPFLAGS) -c -Fo$@ $(SRC_DIR)\$(PCH_NAME).cpp
# create precompiled header dynamic release object
$(DYN_RELEASE_PCH_OBJ): $(SRC_DIR)\$(PCH_NAME).cpp $(OBJ_DIR)
@ $(CPP) $(CPPFLAGS) $(DYN_CPPFLAGS) $(CREATE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(DYN_RELEASE_CPPFLAGS) -c -Fo$@ $(SRC_DIR)\$(PCH_NAME).cpp
# create precompiled header static debug object
$(STAT_DEBUG_PCH_OBJ): $(SRC_DIR)\$(PCH_NAME).cpp $(OBJ_DIR)
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(CREATE_PCH_CPPFLAGS) $(DEBUG_CPPFLAGS) $(STAT_DEBUG_CPPFLAGS) -c -Fo$@ $(SRC_DIR)\$(PCH_NAME).cpp
# create precompiled header static release object
$(STAT_RELEASE_PCH_OBJ): $(SRC_DIR)\$(PCH_NAME).cpp $(OBJ_DIR)
@ $(CPP) $(CPPFLAGS) $(STAT_CPPFLAGS) $(CREATE_PCH_CPPFLAGS) $(RELEASE_CPPFLAGS) $(STAT_RELEASE_CPPFLAGS) -c -Fo$@ $(SRC_DIR)\$(PCH_NAME).cpp
##########################################################
# create output files
##########################################################
# STAT_DEBUG_OUT = $(LIB_DIR)\lib$(PRJ_NAME)d.lib
# STAT_RELEASE_OUT = $(LIB_DIR)\lib$(PRJ_NAME).lib
# DYN_DEBUG_OUT = $(BIN_DIR)\$(PRJ_NAME)d.dll
# DYN_RELEASE_OUT = $(BIN_DIR)\$(PRJ_NAME).dll
!IF "$(CONFIG)" == "LIBRARY"
#
# create static debug out
$(STAT_DEBUG_OUT): $(STAT_DEBUG_OBJS)
@ $(AR) -out:$@ $(STAT_DEBUG_OBJS)
#
#
# create release debug out
$(STAT_RELEASE_OUT): $(STAT_RELEASE_OBJS)
@ $(AR) -out:$@ $(STAT_RELEASE_OBJS)
#
#
# create dynamic debug out
$(DYN_DEBUG_OUT): $(DYN_DEBUG_OBJS)
@ $(LD) $(LDFLAGS) $(DEBUG_LDFLAGS) $(DYN_DEBUG_LDFLAGS) $(DYN_DEBUG_OBJS) $(USER_LIB_DIRS) $(LIBS) $(DEBUG_LIBS) $(DYN_DEBUG_LIBS)
#
#
# create dynamic release out
$(DYN_RELEASE_OUT): $(DYN_RELEASE_OBJS)
@ $(LD) $(LDFLAGS) $(RELEASE_LDFLAGS) $(DYN_RELEASE_LDFLAGS) $(DYN_RELEASE_OBJS) $(USER_LIB_DIRS) $(LIBS) $(RELEASE_LIBS) $(DYN_RELEASE_LIBS)
#
#
#
#
#
!ELSEIF ("$(CONFIG)" == "CONSOLE") || ("$(CONFIG)" == "MFC")
#
# create static debug out
$(STAT_DEBUG_OUT): $(STAT_DEBUG_OBJS)
@ $(LD) $(LDFLAGS) $(DEBUG_LDFLAGS) $(STAT_DEBUG_LDFLAGS) $(STAT_DEBUG_OBJS) $(USER_LIB_DIRS) $(LIBS) $(DEBUG_LIBS) $(STAT_DEBUG_LIBS)
#
#
# create static release out
$(STAT_RELEASE_OUT): $(STAT_RELEASE_OBJS)
@ $(LD) $(LDFLAGS) $(RELEASE_LDFLAGS) $(STAT_RELEASE_LDFLAGS) $(STAT_RELEASE_OBJS) $(USER_LIB_DIRS) $(LIBS) $(RELEASE_LIBS) $(STAT_RELEASE_LIBS)
#
#
# create dynamic debug out
$(DYN_DEBUG_OUT): $(DYN_DEBUG_OBJS)
@ $(LD) $(LDFLAGS) $(DEBUG_LDFLAGS) $(DYN_DEBUG_LDFLAGS) $(DYN_DEBUG_OBJS) $(USER_LIB_DIRS) $(LIBS) $(DEBUG_LIBS) $(DYN_DEBUG_LIBS)
#
#
# create dynamic release out
$(DYN_RELEASE_OUT): $(DYN_RELEASE_OBJS)
@ $(LD) $(LDFLAGS) $(RELEASE_LDFLAGS) $(DYN_RELEASE_LDFLAGS) $(DYN_RELEASE_OBJS) $(USER_LIB_DIRS) $(LIBS) $(RELEASE_LIBS) $(DYN_RELEASE_LIBS)
#
#
!ENDIF
##########################################################
# delete all produced files
##########################################################
!IF "$(CONFIG)" == "LIBRARY"
#
clean:
-@erase /q "$(LIB_DIR)\lib$(PRJ_NAME)d.lib" >nul 2>&1
-@erase /q "$(LIB_DIR)\lib$(PRJ_NAME).lib" >nul 2>&1
-@erase /q "$(LIB_DIR)\$(PRJ_NAME).lib" >nul 2>&1
-@erase /q "$(LIB_DIR)\$(PRJ_NAME).exp" >nul 2>&1
-@erase /q "$(LIB_DIR)\$(PRJ_NAME)d.lib" >nul 2>&1
-@erase /q "$(LIB_DIR)\$(PRJ_NAME)d.exp" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)d.dll" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME).dll" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)d.ilk" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)d.pdb" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME).ilk" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME).pdb" >nul 2>&1
-@erase /s /q "$(OBJ_DIR)" >nul 2>&1
-@rmdir "$(OBJ_DIR)" >nul 2>&1
!ELSEIF ("$(CONFIG)" == "CONSOLE") || ("$(CONFIG)" == "MFC")
#
clean:
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)sd.exe" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)s.exe" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)d.exe" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME).exe" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)sd.pdb" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)sd.ilk" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)s.pdb" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)s.ilk" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)d.pdb" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME)d.ilk" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME).pdb" >nul 2>&1
-@erase /q "$(BIN_DIR)\$(PRJ_NAME).ilk" >nul 2>&1
-@erase /s /q "$(OBJ_DIR)" >nul 2>&1
-@rmdir "$(OBJ_DIR)" >nul 2>&1
# add your dependencies here
#
!ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -