makefile模板
从项目文档中发现一个很实用的makefile模板
makefile写出来容易,但要达到专业可用,着实困难.以后就用这个了,妈妈再也不用担心我的make了
# ----------------------------------------------------------------------
#
# This makefile has been automatically generated by WinGDB 2.2, build 1191
# Do not edit.
#
# Project: vpurun
#
# ----------------------------------------------------------------------
PLATFORM=unix
BUILD_CONFIGURATION=Debug_Embedded_Linux
ifeq ("$(BUILD_CONFIGURATION)","Debug_Embedded_Linux")
CC= arm-linux-gcc
CXX= arm-linux-g++
AR= arm-linux-ar
#include path
CFLAGS= -g -I./vpuapi -I./include -I./vdi -Wall
CXXFLAGS= -g -I./vpuapi -I./include -Wall
ARFLAGS= cru
LDFLAGS= -lpthread -lm -Wall
#the program name
RESULT=vpurun
#intermediate dir, objs
INTERMEDIATE_DIR=Debug_Embedded_Linux/obj
#destination
DESTINATION_DIR=.
VPATH= $(INTERMEDIATE_DIR):mvpuapi:src:vdi:vdi/linux:vpuapi:vdi/windows
endif
#.c and path and .h
SOURCES=cdb.c hpi.c main.c cpen.c mm.c vdi.c vdi_osal.c vpuapi.c vpuapifunc.c vpuhelper.c vpuio.c vpurun.c
SOURCEPATHS= src/cdb.c src/main.c src/cpen.c src/vpuhelper.c src/vpuio.c src/vpurun.c vdi/linux/vdi.c vdi/linux/vdi_osal.c vdi/mm.c vdi/nonos/vdi.c vdi/nonos/vdi_osal.c vdi/windows/hpi.c vdi/windows/vdi.c vdi/windows/vdi_osal.c vpuapi/vpuapi.c vpuapi/vpuapifunc.c
HEADERS= harrier.h cdb.h config.h hpi.h mixer.h cpen.h mm.h regdefine.h vdi.h vdi_osal.h vpuapi.h vpuapifunc.h vpuconfig.h vpuhelper.h vpuio.h vpurun.h vputypes.h
OBJECTNAMES=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
OBJECTPATHS=$(addprefix $(INTERMEDIATE_DIR)/,$(OBJECTNAMES))
$(DESTINATION_DIR)/$(RESULT): $(OBJECTNAMES)
ifeq ("$(wildcard $(DESTINATION_DIR) )","")
-$(MKDIR) $(DESTINATION_DIR_MK)
endif
$(CC) $(CFLAGS) $(SYSROOTFLAGS) $(OBJECTPATHS) -o $@ $(LDFLAGS)
$(INTERMEDIATE_DIR)/vpurun.d: $(SOURCES) $(HEADERS)
ifeq ("$(wildcard $(DESTINATION_DIR) )","")
-$(MKDIR) $(DESTINATION_DIR_MK)
endif
ifeq ("$(wildcard $(INTERMEDIATE_DIR) )","")
-$(MKDIR) $(INTERMEDIATE_DIR_MK)
endif
$(CXX) $(CXXFLAGS) -MM $(SOURCEPATHS) > $@
-include $(INTERMEDIATE_DIR)/vpurun.d
#make clean
clean:
$(RM) $(DESTINATION_DIR)/$(RESULT)
$(RM) $(INTERMEDIATE_DIR)/vpurun.d
$(RM) $(OBJECTPATHS)
#.o
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $(INTERMEDIATE_DIR)/$@ $<
%.o: %.c
$(CC) $(CFLAGS) -c -o $(INTERMEDIATE_DIR)/$@ $<
每天早上叫醒你的不是闹钟,而是心中的梦~

浙公网安备 33010602011771号