# User preferences. These are mine:
INSTALL=     install
MANDIR=      /usr/man
MANDIRPERM=  -m 6755
MANPAGEPERM= -m 0664
MANGROUP=    -g bin
MANOWNER=    -o man
KERNELDIR=   /usr/src/linux


# Internals, do not edit.
VERSION  = `gcc -nostdincludes -E -I$(KERNELDIR)/include/linux - < etc/version.sh | /bin/sh`
MANPAGES = unregister_vt_handler.9 register_vt_handler.9 vt_handler_continue_switch.9\
		vt_handler_handle_vc.9

all: install

realclean: diff

install:
	$(INSTALL) -d $(MANGROUP) $(MANOWNER) $(MANDIRPERM) $(MANDIR)/man9
	$(INSTALL) $(MANGROUP) $(MANOWNER) $(MANPAGEPERM) $(MANPAGES) $(MANDIR)/man9
	@echo
	@echo "Call \"make patch\" to patch the kernel!"

patch:
	@if [ -d backup ]; then \
		echo "Sorry, there is a backup subdir. Probably you patched the"; \
		echo "kernel already. Otherwise remove the backup dir."; \
		exit 1; \
	fi
	@echo
	@echo "Call \"make unpatch\" to restore original source."
	@echo "This version is intended for kernel" `basename linuxV*.diff .diff` ",\
		other versions MAY need additional work."
	@echo
	mkdir backup
	cp $(KERNELDIR)/include/linux/vt.h backup
	cp $(KERNELDIR)/drivers/char/vt_kern.h backup
	cp $(KERNELDIR)/drivers/char/vt.c backup
	cp $(KERNELDIR)/drivers/char/tty_io.c backup
	cp $(KERNELDIR)/drivers/char/console.c backup
	cp $(KERNELDIR)/kernel/ksyms.c backup
	(cd $(KERNELDIR); patch -p0) < linuxV*.diff

	@echo "Do not forget to call "make dep" in $(KERNELDIR) again for a clean recompile!"
	@echo "And to remove ksyms.o and module.o to enforce a recompile of these."
	@echo "(This is such important, that I just do it myself:)"
	rm -f $(KERNELDIR)/kernel/ksyms.o $(KERNELDIR)/kernel/module.o
unpatch:
	@if [ -d backup ]; then \
		cp backup/vt.h $(KERNELDIR)/include/linux/vt.h ;\
		cp backup/vt_kern.h $(KERNELDIR)/drivers/char/vt_kern.h ;\
		cp backup/vt.c $(KERNELDIR)/drivers/char/vt.c ;\
		cp backup/tty_io.c $(KERNELDIR)/drivers/char/tty_io.c ;\
		cp backup/ksyms.c $(KERNELDIR)/kernel/ksyms.c ;\
		cp backup/console.c $(KERNELDIR)/kernel/console.c ;\
	else echo; echo "Sorry, no backups maintained."; exit 1; \
	fi
	@echo Backups restored.
	rm -fr backup
	@echo "Do not forget to call "make dep" in $(KERNELDIR) again for a clean recompile!"
	@echo "removing ksyms.o and module.o to enforce a recompile."
	rm -f $(KERNELDIR)/kernel/ksyms.o $(KERNELDIR)/kernel/module.o

backup:
	mkdir backup
	cp $(KERNELDIR)/include/linux/vt.h backup
	cp $(KERNELDIR)/drivers/char/vt_kern.h backup
	cp $(KERNELDIR)/drivers/char/vt.c backup
	cp $(KERNELDIR)/drivers/char/tty_io.c backup
	cp $(KERNELDIR)/kernel/ksyms.c backup

diff:
	(BACKUP=`pwd`/backup; cd $(KERNELDIR); \
	diff -c $$BACKUP/vt.h include/linux/vt.h; \
	diff -c $$BACKUP/vt_kern.h drivers/char/vt_kern.h; \
	diff -c $$BACKUP/vt.c drivers/char/vt.c; \
	diff -c $$BACKUP/tty_io.c drivers/char/tty_io.c; \
	diff -c $$BACKUP/console.c drivers/char/console.c; \
	diff -c $$BACKUP/ksyms.c kernel/ksyms.c; :) >linux$(VERSION).diff
