急问,关于 makefile 的问题。写过 makefile 的朋友请进啊!
我以前开发项目,用过的软件开发平台都是IDE的,所以关于 makefile 是一无所知。请高手帮忙看看下面的这个 makefile 文件:
include $(IADK)/common_defs.mk
SYSTEM_COMPONENTS = $(TCPIP_MOD) $(PLATFORM_LIBS) $(OS_LIBS)
OPTS_COMMON = $(LDFLAGS_FFS) { $(SYSTEM_COMPONENTS) } -lC++
BINDIR = $(OUTPUT_DIR)
OBJDIR = $(OBJECT_DIR)
LIB_OUT_DIR = ../lib
OPTS_LINK = $(LDFLAGS_MI)
OUT_SUFIX=MI
OBJ_SUFIX=o
ifeq ($(_TM_DEBUG),-g)
OPTS_LINK = $(LDFLAGS_DEBUG) $(TCS_DIR)/lib/$(ENDIAN)/psosmon.o
OUT_SUFIX=OUT
OBJ_SUFIX=g
endif
USER_INCLUDE_DIR=../inc
USER_INCLUDES= -I$(USER_INCLUDE_DIR)
TMDVE = C:/BSP-7113
TMDVE = C:/BSP-7113-2.0
DVE_INCLUDES = -I$(TMDVE)/include
DVE_LIBS = -L$(TMDVE)/lib/el -L$(TMDVE)/bsp/bin/windows/el
#PLATFORM_BSP = $(BUILD_DIR)/libBSP_dve.o
PLATFORM_BSP = $(TMDVE)/bsp/bin/windows/el/libBSPDVE-2.o
OPTIONS_LINK=$(OPTS_LINK) $(OPTS_COMMON) $(DVE_LIBS) $(USER_LIBS)
OPTIONS_INCLUDE=$(TM_INCLUDES) $(PSOS_INCLUDES) $(TCPIP_INCLUDES) $(DVE_INCLUDES) $(USER_INCLUDES)
COMMON_OBJECT = $(OBJDIR)/startPlatform.$(OBJ_SUFIX) $(OBJDIR)/root.$(OBJ_SUFIX)
MPEG4_VER=xvid20041207
MPEG4_VER=xvid20050905
TCP_VER=PNA
TCP_VER=FUSION
USER_LIBS += -L$(LIB_OUT_DIR) -lCommon$(VO_FORMAT) -ljpeg -l$(MPEG4_VER)
VPATH += $(IADK)/lib/util
#########################################
include Makefile.jpeg
include Makefile.lib
USER_MAKEFILE=Makefile.gateway
USER_MAKEFILE=Makefile.writemac
USER_MAKEFILE=Makefile.libutil
USER_MAKEFILE=Makefile.switch.directAudio
USER_MAKEFILE=Makefile.switch
include $(USER_MAKEFILE)
include Makefile.cflags
##### MAC Limit #############################
MAC_VERSION=MAC_KENAIKE
MAC_VERSION=MAC_OFFICE_PAYMENT
MAC_VERSION=MAC_KERUI_20060105
MAC_VERSION=MAC_SONGBENZHINENG
MAC_VERSION=MAC_MAPLE
MAC_VERSION=MAC_XIAMEN_ZHUANGWEI
MAC_VERSION=MAC_SDA
TM_CFLAGS += -D$(MAC_VERSION)
#########################################
normal:all
all:$(APP_OUT)
@$(ECHO) -----------------------------
@$(ECHO) Build Complete Use $(TM_FREQ) For $(MAC_VERSION) , Successful...
@$(ECHO) -----------------------------
$(OBJDIR)/%.$(OBJ_SUFIX) : %.c
@$(ECHO) Compiling $<
@$(TMCC) -c $(TM_CFLAGS) $< -o $@ $(OPTIONS_INCLUDE)
clean_all:clean clean_libjpeg clean_libcommon
clean:
$(RM) -f $(APP_OBJ)
$(RM) -f $(APP_OUT)
#end of Makefile
哪位大虾能给点解释或加个注释的吗?必定高分相送。。。