DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./bin
DIR_LIB = ./lib
#wildcard : 扩展通配符
#notdir : 去除路径
#patsubst :替换通配符
SRC = $(wildcard ${DIR_SRC}/*.c)
OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC}))
#TARGET = test
TARGET = libsm2.so
BIN_TARGET = $(DIR_BIN)/${TARGET}
#LIB = -L$(DIR_LIB) -lssl -lcrypto -ldl #-lpthread
LIB = -L$(DIR_LIB) -lssl -lcrypto -ldl
#-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,
#寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include
#-L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录,
#寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
#-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)
CC = arm-linux-androideabi-gcc#gcc
CFLAGS = -Wall -I${DIR_INC} $(LIB)
${BIN_TARGET}:${OBJ}
$(CC) -fPIC -shared $^ -o $@ $(CFLAGS)
${DIR_OBJ}/%.o:${DIR_SRC}/%.c
$(CC) -fPIC -c $< -o $@ -I${DIR_INC}
.PHONY:clean
clean:
find ${DIR_OBJ} -name *.o | xargs rm -rf