Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a top level makefile to make common tasks easier. Supported targets: make - build modules make install - install modules (honors DESTDIR) make clean - clean up make tarballs - create source tarballs from current HEAD Note: "make tarballs" uses "git archive" so that it only works in a local copy of the git repository, not in a directory created by unpacking a tarball. Add *.tar to .gitignore to hide tarballs created by "make tarballs".
- Loading branch information
Showing
2 changed files
with
46 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,7 @@ | |
*.ko | ||
*.ko.cmd | ||
*.mod.c | ||
*.tar | ||
.tmp_versions | ||
.cache.mk | ||
Module.symvers | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
MODULES = vmmon vmnet | ||
SUBDIRS = $(MODULES:%=%-only) | ||
TARBALLS = $(MODULES:%=%.tar) | ||
MODFILES = $(foreach mod,$(MODULES),$(mod)-only/$(mod).ko) | ||
VM_UNAME = $(shell uname -r) | ||
MODDIR = /lib/modules/$(VM_UNAME)/misc | ||
|
||
MODINFO = /sbin/modinfo | ||
DEPMOD = /sbin/depmod | ||
|
||
%.tar: FORCE gitcleancheck | ||
git archive -o $@ --format=tar HEAD $(@:.tar=-only) | ||
|
||
.PHONY: FORCE subdirs $(SUBDIRS) clean tarballs | ||
|
||
subdirs: $(SUBDIRS) | ||
|
||
FORCE: | ||
|
||
$(SUBDIRS): | ||
$(MAKE) -C $@ $(MAKECMDGOALS) | ||
|
||
gitcheck: | ||
@git status >/dev/null 2>&1 \ | ||
|| ( echo "This only works in a git repository."; exit 1 ) | ||
|
||
gitcleancheck: gitcheck | ||
@git diff --exit-code HEAD >/dev/null 2>&1 \ | ||
|| echo "Warning: tarballs will reflect current HEAD (no uncommited changes)" | ||
|
||
install: $(MODFILES) | ||
@for f in $(MODFILES); do \ | ||
mver=$$($(MODINFO) -F vermagic $$f);\ | ||
mver=$${mver%% *};\ | ||
test "$${mver}" = "$(VM_UNAME)" \ | ||
|| ( echo "Version mismatch: module $$f $${mver}, kernel $(VM_UNAME)" ; exit 1 );\ | ||
done | ||
install -D -t $(DESTDIR)$(MODDIR) $(MODFILES) | ||
strip --strip-debug $(MODULES:%=$(DESTDIR)$(MODDIR)/%.ko) | ||
if test -z "$(DESTDIR)"; then $(DEPMOD) -a $(VM_UNAME); fi | ||
|
||
clean: $(SUBDIRS) | ||
|
||
tarballs: $(TARBALLS) | ||
|