PKG_CONFIG ?= pkg-config
-CXXFLAGS := -std=gnu++14 -O2 -Wall -I. -g $(shell $(PKG_CONFIG) libusb-1.0 --cflags) -pthread
-LDFLAGS := $(shell $(PKG_CONFIG) libusb-1.0 --libs) -pthread
+CXXFLAGS ?= -O2 -g
+CXXFLAGS := -std=gnu++14 -Wall -I. $(shell $(PKG_CONFIG) libusb-1.0 --cflags) -pthread $(CXXFLAGS)
+LDFLAGS := $(shell $(PKG_CONFIG) libusb-1.0 --libs) -pthread $(LDFLAGS)
AR := ar
LN := ln
RANLIB := ranlib
INSTALL := install
PREFIX := /usr/local
LIBDIR := $(PREFIX)/lib
+UDEVDIR ?= $(shell $(PKG_CONFIG) --variable udevdir udev)
+UDEVDIR ?= /lib/udev
LIB := libbmusb.a
SODEV := libbmusb.so
SONAME := libbmusb.so.6
-SOLIB := libbmusb.so.6.0.1
+SOLIB := libbmusb.so.6.0.4
all: $(LIB) $(SOLIB) main bmusb-v4l2proxy
$(RM) bmusb.o main.o v4l2proxy.o fake_capture.o bmusb.pic.o fake_capture.pic.o $(LIB) $(SOLIB) main bmusb-v4l2proxy
install: all
- $(INSTALL) -m 755 -o root -g root -d \
+ $(INSTALL) -m 755 -d \
$(DESTDIR)$(LIBDIR) \
$(DESTDIR)$(LIBDIR)/pkgconfig \
$(DESTDIR)$(PREFIX)/include/bmusb \
- $(DESTDIR)/lib/udev/rules.d
- $(INSTALL) -m 755 -o root -g root $(LIB) $(SOLIB) $(DESTDIR)$(LIBDIR)
+ $(DESTDIR)$(UDEVDIR)/rules.d
+ $(INSTALL) -m 755 $(LIB) $(SOLIB) $(DESTDIR)$(LIBDIR)
$(LN) -sf $(SOLIB) $(DESTDIR)$(LIBDIR)/$(SONAME)
$(LN) -sf $(SOLIB) $(DESTDIR)$(LIBDIR)/$(SODEV)
- $(INSTALL) -m 755 -o root -g root bmusb/bmusb.h bmusb/fake_capture.h $(DESTDIR)$(PREFIX)/include/bmusb
- $(INSTALL) -m 644 -o root -g root bmusb.pc $(DESTDIR)$(LIBDIR)/pkgconfig
- $(INSTALL) -m 644 -o root -g root 70-bmusb.rules $(DESTDIR)/lib/udev/rules.d
+ $(INSTALL) -m 755 bmusb/bmusb.h bmusb/fake_capture.h $(DESTDIR)$(PREFIX)/include/bmusb
+ $(INSTALL) -m 644 bmusb.pc $(DESTDIR)$(LIBDIR)/pkgconfig
+ $(INSTALL) -m 644 70-bmusb.rules $(DESTDIR)$(UDEVDIR)/rules.d