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 $< $@
|