Makefile 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. OS ?= $(shell uname -s)
  2. ifeq ($(OS),Linux)
  3. NPROCS ?= $(shell grep -c ^processor /proc/cpuinfo)
  4. else
  5. NPROCS ?= 1
  6. endif
  7. ifeq ($(OS),Linux)
  8. LINUX_GEN := 3.x
  9. LINUX_SRC := linux-3.14
  10. LINUX_KERNEL := $(LINUX_SRC)/arch/x86/boot/bzImage
  11. endif
  12. DIRS = src test
  13. all debug clean:
  14. for d in $(DIRS); \
  15. do \
  16. make -C $$d $@; \
  17. done
  18. .PHONY: kernel
  19. kernel: $(LINUX_KERNEL)
  20. ifneq ($(LINUX_KERNEL),)
  21. $(LINUX_KERNEL): $(LINUX_SRC)/Makefile $(LINUX_SRC)/.config
  22. make -C $(LINUX_SRC) -j$(NPROCS)
  23. $(LINUX_SRC)/Makefile:
  24. [ -f $(LINUX_SRC).tar.gz ] || \
  25. wget https://www.kernel.org/pub/linux/kernel/v$(LINUX_GEN)/$(LINUX_SRC).tar.gz
  26. tar -xzf $(LINUX_SRC).tar.gz
  27. [ ! -f $(LINUX_SRC).patch ] || git apply $(LINUX_SRC).patch
  28. $(LINUX_SRC)/.config: $(LINUX_SRC)/Makefile
  29. cd $(LINUX_SRC) && make menuconfig
  30. install: $(LINUX_KERNEL)
  31. make -C $(LINUX_SRC) install modules_install headers_install
  32. linux-deb:
  33. if [ -f $(LINUX_SRC)/.config ]; then \
  34. cp /boot/config-$(shell uname -r) $(LINUX_SRC)/.config && \
  35. cd $(LINUX_SRC) && make menuconfig; fi
  36. cd $(LINUX_SRC) && \
  37. CONCURRENCY_LEVEL=$(NPROCS) make-kpkg --rootcmd fakeroot \
  38. --append-to-version -graphene --initrd \
  39. kernel-image kernel-headers
  40. else
  41. install:
  42. endif
  43. .PHONY: test
  44. test:
  45. make -C test test