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