首页 > 其他 > 详细

一个简单的Makefile示例

时间:2016-02-18 13:35:02      阅读:280      评论:0      收藏:0      [点我收藏+]
#*
#***********************************************************************************************
#	Makefile
#
#	Author    	: Lyu Yang
#	Description : Makefile for GNU/GCC
#
#***********************************************************************************************
#*

# Project Name
PROJECT = main

# Architecture and Platform
ARCH = x86
PLATFORM = Debug
CROSS = 

# Include Dirs and Library Dirs
INCLUDE_DIRS = -I ./
LIBRARY_DIRS = -L ./

# GCC Parameters
CC = $(CROSS)gcc
CFLAGS = -c $(INCLUDE_DIRS)

CXX = $(CROSS)g++
CXXFLAGS = -c $(INCLUDE_DIRS)

AS = $(CROSS)gcc
ASFLAGS =  -x assembler-with-cpp

LD = $(CROSS)g++
LDFLAGS = $(LIBRARY_DIRS)

OBJCP = $(CROSS)objcopy
OBJCPFLAGS = -O binary -S -R .note -R .commen

AR = $(CROSS)ar
ARFLAGS = cr

DUMP = $(CROSS)objdump
DUMPFLAG = -d

SIZE = $(CROSS)size

# Make Temp Dirs
$(shell mkdir $(PLATFORM) && mkdir $(PLATFORM)/$(ARCH))

# Source Files
SRCS := $(wildcard dir1/*.cpp)
SRCS += $(wildcard dir2/*.cpp)

# Build Objects
OBJS = $(SRCS:.cpp=.o)
OBJB = $(patsubst %.cpp, $(PLATFORM)/$(ARCH)/%.o, $(notdir ${SRCS}))

# Make ALL
.PHONY: all clean debug
all: $(PROJECT).exe

$(PROJECT).exe: $(OBJB)
	@$(LD) $(LDFLAGS) $^ -o $(PLATFORM)/$(ARCH)/$@
	@echo "$(CXX) $(notdir $^) -o $(notdir $@)"

$(OBJB): $(OBJS)

%.o: %.cpp
	@$(CXX) $(CFLAGS) $^ -o $(PLATFORM)/$(ARCH)/$(notdir $@)
	@echo "$(CXX) $(notdir $^) -o $(notdir $@)"

clean:
	@rm -rf $(PLATFORM)
	@echo "Clean All!"
	
debug:
	@$(CROSS)gdb $(PLATFORM)/$(ARCH)/$(PROJECT).exe

  

一个简单的Makefile示例

原文:http://www.cnblogs.com/lyuyangly/p/5197808.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!