VERSION =
#编译链如gcc或其他编译链
CC =arm-linux-gnueabihf-gcc
AR =ar
#rcs或rv
ARFLAGS =rv
DEBUG =-g
#CFLAGS =-Wall
#源文件
SOURCES =$(wildcard *.c)
#需要指定的头文件
INCLUDES =-I./include
#需要链接的库文件
LIB_NAMES = -lm -ldl -lpthread
#库文件路径
LIB_PATH =-L./
OBJ =$(patsubst %.c, %.o, $(SOURCES))
STATIC_LIB = libmylib.a
SHARED_LIB = libmylib.so
TARGET =test
# 可执行程序
$(TARGET):$(OBJ)
$(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) -o $(TARGET)$(VERSION)
@rm -rf $(OBJ)
# 编译静态库
$(STATIC_LIB): mylib.o
$(AR) $(ARFLAGS) $(STATIC_LIB) $(OBJ)
@rm -rf $(OBJ)
# 编译动态库
$(SHARED_LIB): mylib.o
$(CC) -shared -fPIC -o $(SHARED_LIB) $(OBJ)
@rm -rf $(OBJ)
%.o: %.c
$(CC) $(DEBUG) -c $(CFLAGS) $< -o $@
.PHONY:clean
clean:
@echo "Remove linked and compiled files......"
rm -rf $(OBJ) $(TARGET)$(VERSION)
评论 (0)
发表评论