.PHONY: build clean

# 头文件
INCS += -I.
INCS += -I../swapi
INCS += -I./include

# 源文件
SRCS += $(filter-out ../swapi/testLib.c, $(wildcard ../swapi/*.c))
SRCS += takephoto.c stb_image_write.c

# .o文件
OBJS := $(SRCS:.c=.o)

# 编译器
CC := gcc
CFLAGS := -Wall -fPIC -O2 -g
DEFINS := -D_GNU_SOURCE

target ?= armv7hf
ifeq ($(target),armv7hf)
  CC := arm-linux-gnueabihf-gcc
	AR := arm-linux-gnueabihf-ar
else
  $(error Unsupported target: $(target), only armv7hf is supported)
endif

# 库文件
LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread
ifeq ($(target),armv7hf)
  LIBS += -L./lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess
	LIBS += -L./lib/armv7hf/GenICam/bin -lGCBase_gcc483_v3_0 -lGenApi_gcc483_v3_0 -lLog_gcc483_v3_0 -llog4cpp_gcc483_v3_0 -lMathParser_gcc483_v3_0 -lNodeMapData_gcc483_v3_0 -lXmlParser_gcc483_v3_0
endif

# 编译和清理
build : libdh_takephoto.a takephoto_test.out

%.o : %.c
	$(CC) $(DEFINS) $(CFLAGS) -c $< $(INCS) -o $@

libdh_takephoto.a : $(OBJS)
	$(AR) -cr $@ $(OBJS)

takephoto_test.out : $(OBJS) takephoto_test.c
	$(CC) $(DEFINS) $(CFLAGS) $(OBJS) takephoto_test.c $(INCS) $(LIBS) -o $@

clean :
	rm -rf $(OBJS) *.out *.a *.jpg *.bmp *.png *.tif config/ log/ status/ var/ MvSdkLog/
