File: Makefile

package info (click to toggle)
x52pro 0.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 196 kB
  • sloc: ansic: 137; makefile: 85; xml: 24
file content (55 lines) | stat: -rw-r--r-- 1,737 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
.PHONY: all doxygen clean

# defaults
CC ?= gcc
CPPFLAGS ?= -Wdate-time -D_FORTIFY_SOURCE=2
CFLAGS ?= -Wall -Wextra -Wpedantic -fstack-protector-strong -Wformat -Werror=format-security -std=c99 -g -O0
LDFLAGS ?= -g -Wl,-z,relro
INSTALL ?= install

# package specific flags
USBINC := $(shell pkg-config --cflags libusb-1.0)
USBLIB := $(shell pkg-config --libs libusb-1.0)
VERSION := 0.2.0
X52LIB := libx52pro.so.$(VERSION)

INSTALL_DATA := $(INSTALL) -m644
LIBDST := $(DESTDIR)/usr/lib/${DEB_HOST_MULTIARCH}

all: $(X52LIB) x52output x52output.1.gz

$(X52LIB): x52pro.o
	$(CC) $< $(LDFLAGS) -shared -Wl,-soname,libx52pro.so.0 $(USBLIB) -o $@

x52pro.o_CFLAGS := $(USBINC) -fPIC -D_REENTRANT
x52output.o_CFLAGS := -I.

%.o: %.c
	$(CC) ${CPPFLAGS} $(CFLAGS) $($@_CFLAGS) -c -o $@ $<

clean:
	-$(RM) *.so* *.o x52output x52output.1.gz
	-$(RM) -R build

install:
	$(INSTALL_DATA) -D x52pro.h $(DESTDIR)/usr/include/x52pro.h
	$(INSTALL_DATA) -D $(X52LIB) $(LIBDST)/$(X52LIB)
	ln -sf $(X52LIB) $(LIBDST)/libx52pro.so.0
	ln -sf libx52pro.so.0 $(LIBDST)/libx52pro.so
	$(INSTALL_DATA) -D x52pro.pc $(LIBDST)/pkgconfig/x52pro.pc
	$(INSTALL_DATA) -D x52output.c $(DESTDIR)/usr/share/doc/libx52pro0/examples/x52output.c
	$(INSTALL_DATA) -D x52output.1.gz $(DESTDIR)/usr/share/man/man1/x52output.1.gz
	$(INSTALL) -D x52output $(DESTDIR)/usr/bin/x52output
	$(INSTALL_DATA) -D 60-x52pro.rules $(DESTDIR)/lib/udev/rules.d/60-x52pro.rules
	$(INSTALL_DATA) -D at.hasenleithner.plasma.x52pro.metainfo.xml $(DESTDIR)/usr/share/metainfo/at.hasenleithner.plasma.x52pro.metainfo.xml

x52output: x52output.o $(X52LIB)
x52output.1.gz: x52output.1
	gzip -c $< >$@

doxygen:
	doxygen

# Create symbolic link for local testing
libx52pro.so.0: $(X52LIB)
	ln -s $< $@