Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25259
  • 博文数量: 7
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 75
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-20 20:58
文章分类

全部博文(7)

文章存档

2010年(6)

2009年(1)

我的朋友
最近访客

分类: C/C++

2010-01-20 19:21:05

#=======================================================================================
#   Filename: Makefile
#   Description: 
#   Usage: make            (默认使用i386下的g++编译                
#       make ARCH=arm (使用arm-uclibc-g++编译
#           make clean      (remove objects, executable, prerequisits
#
#   Version: 1.0
#   Created: 
#   Revision: --- 
#   Author:  xiongwei
#   Company: BLT.Ltd.
# Email: lxwsoft@foxmail.com
#=======================================================================================
#交叉编绎器路径
CROSS= #在此添入交叉编绎器全路径
CP=/bin/cp
MV=/bin/mv
RM=-/bin/rm -rf
#编译器参数
CXXFLAGS=-Wall -Werror -g 
CURDIR=$(shell pwd)
#命令行参数
#ARCH=
#编译器宏定义
DEF= -D$(ARCH)

#源文件目录及其子目录
SRCDIRS= #如 . src doc
#头文件目录及其子目录
INCDIRS= #如 . include doc/include


#从源文件目录得到源代码列表
SRCS=$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.cpp))

#其它想一起参与编译的源文件
SRCEX=
SRCS += $(SRCEX)

#如果有那个对应文件不想编译或是需要额外编译,务必添加与此处
EXSRCS =
CSRCS = $(filter-out $(EXSRCS), $(SRCS))
SRCS:=$(CSRCS)


#得到源代码对应的目标文件列表
ifeq ($(ARCH),ARM)
CXX=$(CROSS)g++
PROGRAMS=S-arm
# INC=-I/minigui/libminigui-2.2-arm/include
# LIB=-L/minigui/libminigui-2.2-arm/lib -L./lib 
OBJS=$(SRCS:%.cpp=%.arm)
MyMode=%.arm
else
ARCH=PC
CXX=g++
MyMode=%.o
PROGRAMS=Server
# INC=-I/minigui/libminigui-2.2/include
# LIB=-L/minigui/libminigui-2.2/lib
OBJS=$(SRCS:%.cpp=%.o)
endif

INC += $(foreach dir, $(INCDIRS),$(addprefix -I,$(dir)))
#如果有第三方链接库请在此加入
LDFLAGS=$(LIB) -lpthread 
CXXFLAGS:=$(CXXFLAGS) $(INC) $(DEF)


all:$(PROGRAMS)
$(PROGRAMS):$(OBJS)
@$(CXX) $(LDFLAGS) -o $@ $(filter $(MyMode), $+)
@echo -e " [$(ARCH)] OK!\tComplie $@ "
@echo -e " [$(ARCH)] $@ copy to ../ OK! "

%.arm : %.cpp
@echo -e " [$(ARCH)] \t\tCompileing $@ ..."
@$(CXX) $(CXXFLAGS) -c -o $@ $<
%.o : %.cpp
@echo -e " [$(ARCH)] \t\tCompileing $@ ..."
@$(CXX) $(CXXFLAGS) -c -o $@ $<


.PHONY: clean
clean:
@echo -e " [$(ARCH)] \tCleaning files..."
@$(RM) $(OBJS) $(PROGRAMS)


文件: Make-exe.tar
大小: 10KB
下载: 下载

阅读(631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~