#target
target = onvif-control
#source and dependency file
src = $(wildcard *.c)
obj = $(patsubst %.c,%.o,$(wildcard *.c))
#compile option
CC = mips-openwrt-linux-gcc
CFLAGS = -Wall -O3 -g -D_LINUX #-I./include -L./lib
#CLIBS = -l
$(target):$(obj)
$(CC) $(CFLAGS) $(obj) -o $(target) #$(CLIBS)
$(obj):$(src)
$(CC) $(CFLAGS) -c $< -o $@
.PHONY:clean
clean:
rm -rf $(target) $(obj)
#指定编译工具
CC = gcc
CPP = g++
LINK = g++
LIBS = -lpthread
#编译.so 必须添加 -fPIC 和 -shared 选项
CCFLAGS = -c -g -fPIC
CPPFLAGS = -c -g -fPIC
#期望得到的执行文件或动态库.so
#TARGET=libxx.so
TARGET=test
INCLUDES = -I. #-I../../
CPPFILES = $(wildcard *.cpp ../*.cpp)#遍历得到当前目录及上层目录中的所有.cpp文件
CFILES = $(wildcard *.c ../*.c)#遍历得到当前目录及上层目录中的所有.c文件
OBJFILE = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
all:$(TARGET)
$(TARGET): $(OBJFILE)
# 编译得到 .so 文件用下面的代码
# $(LINK) $^ $(LIBS) -Wall -fPIC -shared -o $@
# 编译得到可执行文件用下面的代码
$(LINK) $^ $(LIBS) -Wall -O2 -o $@
%.o:%.c
$(CC) -o $@ $(CCFLAGS) $< $(INCLUDES)
%.o:%.cpp
$(CPP) -o $@ $(CPPFLAGS) $< $(INCLUDES)
clean:
rm -rf $(TARGET)
rm -rf $(OBJFILE)