File: Makefile

package info (click to toggle)
bmusb 0.7.8-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 260 kB
  • sloc: cpp: 2,060; makefile: 52; xml: 21; ansic: 11
file content (55 lines) | stat: -rw-r--r-- 1,757 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
PKG_CONFIG ?= pkg-config
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
DEB_MULTIARCH_TRIPLET := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
LIBDIR := $(PREFIX)/lib/$(DEB_MULTIARCH_TRIPLET)
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.4

all: $(LIB) $(SOLIB) main bmusb-v4l2proxy

%.pic.o : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -o $@ -c $^

main: bmusb.o main.o
	$(CXX) -o $@ $^ $(LDFLAGS)

bmusb-v4l2proxy: bmusb.o v4l2proxy.o
	$(CXX) -o $@ $^ $(LDFLAGS)

# Static library.
$(LIB): bmusb.o fake_capture.o
	$(AR) rc $@ $^
	$(RANLIB) $@

# Shared library.
$(SOLIB): bmusb.pic.o fake_capture.pic.o
	$(CXX) -shared -Wl,-soname,$(SONAME) -o $@ $^ $(LDFLAGS)

clean:
	$(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 -d \
		$(DESTDIR)$(LIBDIR) \
		$(DESTDIR)$(LIBDIR)/pkgconfig \
		$(DESTDIR)$(PREFIX)/include/bmusb \
		$(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 bmusb/bmusb.h bmusb/fake_capture.h $(DESTDIR)$(PREFIX)/include/bmusb
	sed 's/@DEB_MULTIARCH_TRIPLET@/$(DEB_MULTIARCH_TRIPLET)/' < bmusb.pc > $(DESTDIR)$(LIBDIR)/pkgconfig/bmusb.pc
	chmod 0644 $(DESTDIR)$(LIBDIR)/pkgconfig/bmusb.pc
	$(INSTALL) -m 644 70-bmusb.rules $(DESTDIR)$(UDEVDIR)/rules.d