1 | XEN_ROOT = ../.. |
---|
2 | |
---|
3 | # Base definitions and rules |
---|
4 | include $(XEN_ROOT)/tools/vtpm/Rules.mk |
---|
5 | |
---|
6 | # Dir name for emulator (as dom0 tpm driver) |
---|
7 | TPM_EMULATOR_DIR = tpm_emulator |
---|
8 | # Dir name for vtpm instance |
---|
9 | VTPM_DIR = vtpm |
---|
10 | ORIG_DIR = orig |
---|
11 | |
---|
12 | # Emulator tarball name |
---|
13 | TPM_EMULATOR_NAME = tpm_emulator-0.4 |
---|
14 | TPM_EMULATOR_TARFILE = $(TPM_EMULATOR_NAME).tar.gz |
---|
15 | |
---|
16 | GMP_HEADER = /usr/include/gmp.h |
---|
17 | |
---|
18 | .PHONY: all |
---|
19 | all: build |
---|
20 | |
---|
21 | .PHONY: build |
---|
22 | build: $(VTPM_DIR) $(TPM_EMULATOR_DIR) build_sub |
---|
23 | |
---|
24 | .PHONY: install |
---|
25 | install: build |
---|
26 | if [ "$(BUILD_EMULATOR)" = "y" ]; then \ |
---|
27 | $(MAKE) -C $(TPM_EMULATOR_DIR) $@ ;\ |
---|
28 | fi |
---|
29 | $(MAKE) -C $(VTPM_DIR) $@ |
---|
30 | |
---|
31 | .PHONY: clean |
---|
32 | clean: |
---|
33 | @if [ -d $(TPM_EMULATOR_DIR) ]; \ |
---|
34 | then $(MAKE) -C $(TPM_EMULATOR_DIR) clean; \ |
---|
35 | fi |
---|
36 | @if [ -d $(VTPM_DIR) ]; \ |
---|
37 | then $(MAKE) -C $(VTPM_DIR) clean; \ |
---|
38 | fi |
---|
39 | |
---|
40 | .PHONY: mrproper |
---|
41 | mrproper: |
---|
42 | rm -f $(TPM_EMULATOR_TARFILE) tpm_emulator.patch.old vtpm.patch.old |
---|
43 | rm -rf $(TPM_EMULATOR_DIR) $(VTPM_DIR) $(ORIG_DIR) |
---|
44 | |
---|
45 | # Download Swiss emulator |
---|
46 | $(TPM_EMULATOR_TARFILE): |
---|
47 | wget http://download.berlios.de/tpm-emulator/$(TPM_EMULATOR_TARFILE) |
---|
48 | |
---|
49 | # Create vtpm and TPM emulator dirs |
---|
50 | # apply patches for 1) used as dom0 tpm driver 2) used as vtpm device instance |
---|
51 | $(TPM_EMULATOR_DIR): $(TPM_EMULATOR_TARFILE) tpm_emulator.patch |
---|
52 | if [ "$(BUILD_EMULATOR)" = "y" ]; then \ |
---|
53 | rm -rf $(TPM_EMULATOR_DIR); \ |
---|
54 | tar -xzf $(TPM_EMULATOR_TARFILE); \ |
---|
55 | mv $(TPM_EMULATOR_NAME) $(TPM_EMULATOR_DIR); \ |
---|
56 | cd $(TPM_EMULATOR_DIR); \ |
---|
57 | patch -p1 <../tpm_emulator.patch; \ |
---|
58 | fi |
---|
59 | |
---|
60 | $(VTPM_DIR): $(TPM_EMULATOR_TARFILE) vtpm.patch |
---|
61 | rm -rf $(VTPM_DIR) |
---|
62 | tar -xzf $(TPM_EMULATOR_TARFILE); |
---|
63 | mv $(TPM_EMULATOR_NAME) $(VTPM_DIR); |
---|
64 | |
---|
65 | cd $(VTPM_DIR); \ |
---|
66 | patch -p1 < ../tpm_emulator.patch; \ |
---|
67 | patch -p1 < ../vtpm.patch |
---|
68 | |
---|
69 | orig: $(TPM_EMULATOR_TARFILE) |
---|
70 | mkdir $(ORIG_DIR); |
---|
71 | cd $(ORIG_DIR); \ |
---|
72 | tar -xzf ../$(TPM_EMULATOR_TARFILE); |
---|
73 | |
---|
74 | updatepatches: clean orig |
---|
75 | if [ "$(BUILD_EMULATOR)" = "y" ]; then \ |
---|
76 | find $(TPM_EMULATOR_DIR) -name "*.orig" -print | xargs rm -f; \ |
---|
77 | mv tpm_emulator.patch tpm_emulator.patch.old; \ |
---|
78 | diff -uprN orig/$(TPM_EMULATOR_NAME) $(TPM_EMULATOR_DIR) > tpm_emulator.patch || true; \ |
---|
79 | fi; |
---|
80 | find $(VTPM_DIR) -name "*.orig" -print | xargs rm -f; |
---|
81 | mv vtpm.patch vtpm.patch.old; |
---|
82 | diff -uprN $(TPM_EMULATOR_DIR) $(VTPM_DIR) > vtpm.patch || true; |
---|
83 | |
---|
84 | .PHONY: build_sub |
---|
85 | build_sub: |
---|
86 | @if [ -e $(GMP_HEADER) ]; then \ |
---|
87 | $(MAKE) -C $(VTPM_DIR); \ |
---|
88 | if [ "$(BUILD_EMULATOR)" = "y" ]; then \ |
---|
89 | $(MAKE) -C $(TPM_EMULATOR_DIR); \ |
---|
90 | fi \ |
---|
91 | else \ |
---|
92 | echo "*** Unable to build VTPMs. libgmp could not be found."; \ |
---|
93 | fi |
---|
94 | |
---|