#=======================================================================================
# 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)
![](/fileicon/zip.gif) |
文件: |
Make-exe.tar |
大小: |
10KB |
下载: |
下载 | |
阅读(631) | 评论(0) | 转发(0) |