]> git.sesse.net Git - bmusb/blob - Makefile
Release 0.7.5.
[bmusb] / Makefile
1 PKG_CONFIG ?= pkg-config
2 CXXFLAGS := -std=gnu++14 -O2 -Wall -I. -g $(shell $(PKG_CONFIG) libusb-1.0 --cflags) -pthread
3 LDFLAGS := $(shell $(PKG_CONFIG) libusb-1.0 --libs) -pthread
4 AR := ar
5 LN := ln
6 RANLIB := ranlib
7 INSTALL := install
8 PREFIX := /usr/local
9 LIB := libbmusb.a
10 SODEV := libbmusb.so
11 SONAME := libbmusb.so.6
12 SOLIB := libbmusb.so.6.0.1
13
14 all: $(LIB) $(SOLIB) main bmusb-v4l2proxy
15
16 %.pic.o : %.cpp
17         $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -o $@ -c $^
18
19 main: bmusb.o main.o
20         $(CXX) -o $@ $^ $(LDFLAGS)
21
22 bmusb-v4l2proxy: bmusb.o v4l2proxy.o
23         $(CXX) -o $@ $^ $(LDFLAGS)
24
25 # Static library.
26 $(LIB): bmusb.o fake_capture.o
27         $(AR) rc $@ $^
28         $(RANLIB) $@
29
30 # Shared library.
31 $(SOLIB): bmusb.pic.o fake_capture.pic.o
32         $(CXX) -shared -Wl,-soname,$(SONAME) -o $@ $^ $(LDFLAGS)
33
34 clean:
35         $(RM) bmusb.o main.o v4l2proxy.o fake_capture.o bmusb.pic.o fake_capture.pic.o $(LIB) $(SOLIB) main bmusb-v4l2proxy
36
37 install: all
38         $(INSTALL) -m 755 -o root -g root -d \
39                 $(DESTDIR)$(PREFIX)/lib \
40                 $(DESTDIR)$(PREFIX)/lib/pkgconfig \
41                 $(DESTDIR)$(PREFIX)/include/bmusb \
42                 $(DESTDIR)/lib/udev/rules.d
43         $(INSTALL) -m 755 -o root -g root $(LIB) $(SOLIB) $(DESTDIR)$(PREFIX)/lib
44         $(LN) -sf $(SOLIB) $(DESTDIR)$(PREFIX)/lib/$(SONAME)
45         $(LN) -sf $(SOLIB) $(DESTDIR)$(PREFIX)/lib/$(SODEV)
46         $(INSTALL) -m 755 -o root -g root bmusb/bmusb.h bmusb/fake_capture.h $(DESTDIR)$(PREFIX)/include/bmusb
47         $(INSTALL) -m 644 -o root -g root bmusb.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig
48         $(INSTALL) -m 644 -o root -g root 70-bmusb.rules $(DESTDIR)/lib/udev/rules.d
49