- make should be $(MAKE) - add + in front of rules spawning long-lasted make process in a subshell. (This would not be needed with $(MAKE) -C .. target, but our makefiles do not handle that because they use $(PWD)) - split the main 'all' rule as all 4 targets are independant - fix dependencies where appropriate for parallelism Extra, not speed-related changes: - remove some double-colon for targets as they do not need it This cuts build time from 5s to 1.5s on a laptop with -j4, and more importantly from 85s to 35s on a KNL node. As a bonus, the fixed dependencies removes the need to clean before rebuilding all the time. Probably.
91 lines
2.9 KiB
Makefile
Executable File
91 lines
2.9 KiB
Makefile
Executable File
TARGET = @TARGET@
|
|
SBINDIR = @SBINDIR@
|
|
INCDIR = @INCDIR@
|
|
ETCDIR = @ETCDIR@
|
|
MANDIR = @MANDIR@
|
|
|
|
all: executer-mcctrl executer-mcoverlayfs executer-user mckernel
|
|
|
|
executer-mcctrl:
|
|
+@(cd executer/kernel/mcctrl; $(MAKE) modules)
|
|
|
|
executer-mcoverlayfs:
|
|
+@(cd executer/kernel/mcoverlayfs; $(MAKE) modules)
|
|
|
|
executer-user:
|
|
+@(cd executer/user; $(MAKE))
|
|
|
|
mckernel:
|
|
+@case "$(TARGET)" in \
|
|
attached-mic | builtin-x86 | builtin-mic | smp-x86 | smp-arm64) \
|
|
(cd kernel; $(MAKE)) \
|
|
;; \
|
|
*) \
|
|
echo "unknown target $(TARGET)" >&2 \
|
|
exit 1 \
|
|
;; \
|
|
esac
|
|
|
|
install:
|
|
@(cd executer/kernel/mcctrl; $(MAKE) install)
|
|
@(cd executer/kernel/mcoverlayfs; $(MAKE) install)
|
|
@(cd executer/user; $(MAKE) install)
|
|
@case "$(TARGET)" in \
|
|
attached-mic | builtin-x86 | builtin-mic | smp-x86 | smp-arm64) \
|
|
(cd kernel; $(MAKE) install) \
|
|
;; \
|
|
*) \
|
|
echo "unknown target $(TARGET)" >&2 \
|
|
exit 1 \
|
|
;; \
|
|
esac
|
|
@case "$(TARGET)" in \
|
|
attached-mic) \
|
|
mkdir -p -m 755 $(SBINDIR); \
|
|
install -m 755 arch/x86/tools/mcreboot-attached-mic.sh $(SBINDIR)/mcreboot; \
|
|
install -m 755 arch/x86/tools/mcshutdown-attached-mic.sh $(SBINDIR)/mcshutdown; \
|
|
mkdir -p -m 755 $(MANDIR)/man1; \
|
|
install -m 644 arch/x86/tools/mcreboot.1 $(MANDIR)/man1/mcreboot.1; \
|
|
;; \
|
|
builtin-x86) \
|
|
mkdir -p -m 755 $(SBINDIR); \
|
|
install -m 755 arch/x86/tools/mcreboot-builtin-x86.sh $(SBINDIR)/mcreboot; \
|
|
install -m 755 arch/x86/tools/mcshutdown-builtin-x86.sh $(SBINDIR)/mcshutdown; \
|
|
mkdir -p -m 755 $(MANDIR)/man1; \
|
|
install -m 644 arch/x86/tools/mcreboot.1 $(MANDIR)/man1/mcreboot.1; \
|
|
;; \
|
|
smp-x86 | smp-arm64) \
|
|
mkdir -p -m 755 $(SBINDIR); \
|
|
install -m 755 arch/x86/tools/mcreboot-smp-x86.sh $(SBINDIR)/mcreboot.sh; \
|
|
install -m 755 arch/x86/tools/mcstop+release-smp-x86.sh $(SBINDIR)/mcstop+release.sh; \
|
|
install -m 755 arch/x86/tools/mcoverlay-destroy-smp-x86.sh $(SBINDIR)/mcoverlay-destroy.sh; \
|
|
install -m 755 arch/x86/tools/mcoverlay-create-smp-x86.sh $(SBINDIR)/mcoverlay-create.sh; \
|
|
install -m 755 arch/x86/tools/eclair-dump-backtrace.exp $(SBINDIR)/eclair-dump-backtrace.exp;\
|
|
mkdir -p -m 755 $(ETCDIR); \
|
|
install -m 644 arch/x86/tools/irqbalance_mck.service $(ETCDIR)/irqbalance_mck.service; \
|
|
install -m 644 arch/x86/tools/irqbalance_mck.in $(ETCDIR)/irqbalance_mck.in; \
|
|
mkdir -p -m 755 $(INCDIR); \
|
|
install -m 644 kernel/include/swapfmt.h $(INCDIR); \
|
|
mkdir -p -m 755 $(MANDIR)/man1; \
|
|
install -m 644 arch/x86/tools/mcreboot.1 $(MANDIR)/man1/mcreboot.1; \
|
|
;; \
|
|
*) \
|
|
echo "unknown target $(TARGET)" >&2 \
|
|
exit 1 \
|
|
;; \
|
|
esac
|
|
|
|
clean:
|
|
@(cd executer/kernel/mcctrl; $(MAKE) clean)
|
|
@(cd executer/kernel/mcoverlayfs; $(MAKE) clean)
|
|
@(cd executer/user; $(MAKE) clean)
|
|
@case "$(TARGET)" in \
|
|
attached-mic | builtin-x86 | builtin-mic | smp-x86 | smp-arm64) \
|
|
(cd kernel; $(MAKE) clean) \
|
|
;; \
|
|
*) \
|
|
echo "unknown target $(TARGET)" >&2 \
|
|
exit 1 \
|
|
;; \
|
|
esac
|