1
0
mirror of https://github.com/MatMoul/g810-led.git synced 2024-12-23 01:06:11 +00:00
g810-led/makefile
François Freitag 596bc731cf Split file installation and loading commands
To ease packaging, the new setup rule only copies files to the correct
location. The install rules perform the commands to load the newly
installed files.
2017-01-22 12:39:10 -08:00

66 lines
2.0 KiB
Makefile

CC=g++
CFLAGS=-Wall -O2 -std=gnu++11
LIB?=hidapi
ifeq ($(LIB),libusb)
CPPFLAGS=-Dlibusb
LDFLAGS=-lusb-1.0
else
CPPFLAGS=-Dhidapi
LDFLAGS=-lhidapi-hidraw
endif
PROGN=g810-led
SYSTEMDDIR?=/usr/lib/systemd
.PHONY: all debug clean install uninstall
all: bin/$(PROGN)
bin/$(PROGN): src/main.cpp src/helpers/*.cpp src/helpers/*.h src/classes/*.cpp src/classes/*.h
@mkdir -p bin
$(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS)
debug: CFLAGS += -g -Wextra -pedantic
debug: bin/$(PROGN)
clean:
@rm -rf bin
setup:
@install -m 755 -d $(DESTDIR)/etc/udev/rules.d $(DESTDIR)/usr/bin
@cp bin/$(PROGN) $(DESTDIR)/usr/bin
@test -s $(DESTDIR)/usr/bin/g410-led || ln -s /usr/bin/$(PROGN) $(DESTDIR)/usr/bin/g410-led
@test -s $(DESTDIR)/usr/bin/g610-led || ln -s /usr/bin/$(PROGN) $(DESTDIR)/usr/bin/g610-led
@test -s $(DESTDIR)/usr/bin/g910-led || ln -s /usr/bin/$(PROGN) $(DESTDIR)/usr/bin/g910-led
@cp udev/$(PROGN).rules $(DESTDIR)/etc/udev/rules.d
@install -m 755 -d $(DESTDIR)/etc/$(PROGN)/samples $(DESTDIR)$(SYSTEMDDIR)/system
@cp sample_profiles/* $(DESTDIR)/etc/$(PROGN)/samples
@cp $(DESTDIR)/etc/$(PROGN)/samples/group_keys $(DESTDIR)/etc/$(PROGN)/profile
@cp $(DESTDIR)/etc/$(PROGN)/samples/all_off $(DESTDIR)/etc/$(PROGN)/reboot
@cp systemd/$(PROGN).service $(DESTDIR)$(SYSTEMDDIR)/system
@cp systemd/$(PROGN)-reboot.service $(DESTDIR)$(SYSTEMDDIR)/system
install: setup
@udevadm control --reload-rules
@test -s /usr/bin/systemd-run && \
systemctl daemon-reload && \
systemctl start $(PROGN) && \
systemctl enable $(PROGN) && \
systemctl enable $(PROGN)-reboot
uninstall:
@test -s /usr/bin/systemd-run && \
systemctl disable $(PROGN) && \
systemctl disable $(PROGN)-reboot && \
rm $(SYSTEMDDIR)/system/$(PROGN).service && \
rm $(SYSTEMDDIR)/system/$(PROGN)-reboot.service && \
systemctl daemon-reload && \
rm -R /etc/$(PROGN)
@rm /usr/bin/g410-led
@rm /usr/bin/g610-led
@rm /usr/bin/g910-led
@rm /usr/bin/$(PROGN)
@rm /etc/udev/rules.d/$(PROGN).rules
@udevadm control --reload-rules