# # Makefile and (un-)Installer for Sapphire remote control driver, # by Mark Lord 2012-2019. # MODNAME=sapphire MODSOURCE=$(MODNAME).c CONFLICTS=hid_topseed BLACKLIST=/etc/modprobe.d/blacklist-$(CONFLICTS).conf KEYMAP_SCRIPT=sapphire_keymap.sh EXTRACT_KEYDEFS=extract_keydefs.sh INPUT_H=$(shell [ -e /usr/include/linux/input-event-codes.h ] && echo /usr/include/linux/input-event-codes.h || echo /usr/include/linux/input.h) ## MODPARMS is not used any more, but we have to nuke old copies to prevent issues: MODPARMS=/etc/modprobe.d/$(MODNAME).conf CWD = $(shell pwd -P) KVER ?= $(shell uname -r) KDIR = /lib/modules/$(KVER) obj-m += $(MODNAME).o #EXTRA_CFLAGS += -Werror default: $(INPUT_H) kmod $(KEYMAP_SCRIPT) $(INPUT_H): @echo "ERROR: $@: not found." @echo @echo "Please install the system development libraries first." @echo "Eg. on Ubuntu/Mint systems: sudo apt-get install build-essential" @echo @exit 1 kmod: $(MAKE) -C $(KDIR)/build M=$(CWD) modules $(MODNAME).ko: $(MODSOURCE) $(MODNAME).h $(MAKE) kmod $(KEYMAP_SCRIPT): $(INPUT_H) $(EXTRACT_KEYDEFS) $(KEYMAP_SCRIPT).part1 $(KEYMAP_SCRIPT).part3 $(MODNAME).h $(INPUT_H) @bash -c "type -all gawk" >/dev/null 2>&1 || (\ echo ;\ echo "gawk not found, needed by installer; Aborted." ;\ echo "For Ubuntu/Debian based systems, try this: sudo apt-get install gawk" ;\ echo ;\ exit 2 ;\ ) chmod 0755 $(EXTRACT_KEYDEFS) ./$(EXTRACT_KEYDEFS) $(INPUT_H) $(MODNAME).h | cat $(KEYMAP_SCRIPT).part1 - $(KEYMAP_SCRIPT).part3 > $(KEYMAP_SCRIPT) chmod 0755 $(KEYMAP_SCRIPT) $(BLACKLIST): @echo "Creating $(BLACKLIST)" @echo "## $(CONFLICTS) Conflicts with $(MODNAME) driver" > $(BLACKLIST) @echo "blacklist $(CONFLICTS)" >> $(BLACKLIST) modinstall: $(MODNAME).ko $(KEYMAP_SCRIPT) $(MAKE) -C $(KDIR)/build M=$(CWD) modules_install || exit 0 @[ -e $(KDIR)/extra/sapphire.ko -o -e $(KDIR)/extra/sapphire.ko.gz -o -e $(KDIR)/extra/sapphire.ko.xz ] || exit 1 depmod $(KVER) @if [ "$(KVER)" = "$$(uname -r)" ]; then \ rmmod $(MODNAME) 2>/dev/null ;\ rmmod $(CONFLICTS) 2>/dev/null ;\ ./sapphire_startup.sh ;\ else \ exit 0 ;\ fi clean: $(MAKE) -C $(KDIR)/build M=$(CWD) clean -rm -f $(KEYMAP_SCRIPT) clean_modparms: @if [ -e $(MODPARAMS) ]; then rm -f $(MODPARMS) ; fi ; exit 0 uninstall: clean clean_modparms -rmmod $(MODNAME) -rm -f $(BLACKLIST) -rm -f /usr/local/bin/$(KEYMAP_SCRIPT) -rm -f $(KDIR)/extra/$(MODNAME).ko depmod install: $(MODNAME).ko clean_modparms modinstall $(BLACKLIST) $(KEYMAP_SCRIPT) install -m 0755 $(KEYMAP_SCRIPT) /usr/local/bin/ install -m 0755 sapphire_startup.sh /usr/local/bin/ all: install