CFLAGS += -Wall -Wextra
CFLAGS += -g

ifeq ($(shell arch),x86_64)
LIBBITS := _64
else ifeq ($(shell arch),arm)
LIBBITS := _arm
else ifeq ($(shell arch),armv7l)
LIBBITS := _armhf
else ifeq ($(shell arch),aarch64)
LIBBITS := _aarch64
else
LIBBITS :=
endif

ifeq (,$(wildcard /usr/include/linux/usb/video.h))
TMP := /usr/src/linux-headers-$(shell uname -r)/include
#ifeq (,$(wildcard $(TMP)/linux/uvcvideo.h))
#$(error Unable to locate $(TMP))
#endif
#libc-dev package doesn't have it
#may need to install linux-headers-`uname -r`-generic package
CFLAGS += -I$(TMP)
endif

TARGET := libs2263.so

all: $(TARGET)

MAGICKWAND_VERSION := $(subst ., ,$(shell pkg-config --modversion MagickWand))

SOLIBS := $(shell pkg-config --libs x11 xext xv alsa MagickWand libusb-1.0)
C_FLAGS := $(shell pkg-config --cflags x11 xext xv alsa MagickWand libusb-1.0) \
	-DMAGICKWAND_MAJOR_VERSION=$(word 1,$(MAGICKWAND_VERSION)) \
	-DMAGICKWAND_MINOR_VERSION=$(word 2,$(MAGICKWAND_VERSION)) \
	-DMAGICKWAND_MICRO_VERSION=$(word 3,$(MAGICKWAND_VERSION))

ifeq (,$(SOLIBS))
$(error pkg-config failed to locate a required dependency)
endif

SOLIBS += -lpthread
# -lavcodec


$(TARGET): s2263mid.o libmp4/libmp4$(LIBBITS).a libavi/libavi$(LIBBITS).a
	$(CC) $(CFLAGS) -shared -o $@ $^ $(SOLIBS)

s2263mid.o: CFLAGS += -fPIC $(C_FLAGS)
s2263mid.o: s2263mid.h uvc_xu_ctrls.h rb_simple.h

clean:
	rm -f s2263mid.o $(TARGET)
