#=======================================================================================
# 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
RM=-/bin/rm -rf
LN=/bin/ln -s
CFLAGS=-g -O2 -Wall
#链接库名
LIB_NAME=
#链接库版本
LIB_VER=1.0.0
ARCH=
#源文件目录
SrcDir=
#头文件目录
IncDir=
SRCS=$(foreach dir,$(SrcDir),$(wildcard $(dir)/*.cpp))
#INCS=$(foreach dir,$(IncDir),$(wildcard $(dir)/*.h))
INCS=$(foreach dir,$(IncDir),$(addprefix -I,$(dir)))
CFLAGS := $(CFLAGS) $(INCS)
ifeq ($(ARCH),arm)
CC=$(CROSS)g++
OBJS = $(SRCS:%.cpp=%.arm)
else
CC=g++
ARCH=PC
OBJS = $(SRCS:%.cpp=%.o)
endif
#gcc 则要加 -lc选项(显示的链接C库)
#Wl 把参数传给链接器
all:$(OBJS)
$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIB_NAME) -o $(LIB_NAME).$(LIB_VER).$(ARCH) $(OBJS)
@echo -e "[$(ARCH)] OK!\tComplie $@ "
# @$(LN) $(shell pwd)/$(LIB_NAME).$(LIB_VER) /lib/$(LIB_NAME)
#-fPIC 产生于位置无关的代码关能加载到任何地址
%.o:%.cpp
@echo -e "[$(ARCH)] \t\tCompileing $@..."
@$(CC) $(CFLAGS) -fPIC -c $< -o $@
%.arm:%.cpp
@echo -e "[$(ARCH)] \t\tCompileing $@..."
@$(CC) $(CFLAGS) -fPIC -c $< -o $@
.PHONY: clean
clean:
@echo -e "[$(ARCH)] \tCleaning files..."
@$(RM) $(OBJS) $(LIB_NAME) $(LIB_NAME).$(LIB_VER)
![](/fileicon/zip.gif) |
文件: |
Make-lib.tar |
大小: |
10KB |
下载: |
下载 | |
阅读(1153) | 评论(0) | 转发(0) |