1
1
export CARGO =cargo
2
+ export STABLE_TOOLCHAIN: =1.58.1
3
+ export NIGHTLY_TOOLCHAIN: =nightly-2021-08-20
2
4
export BUILD_TYPE: =release
3
5
export PREFIX: =/usr/local
4
6
9
11
export BUILD_TYPE_FLAG=
10
12
endif
11
13
12
- LIB_CRATES = td-loader td-exception td-layout td-logger td-paging tdx-tdcall
14
+ GENERIC_LIB_CRATES = td-layout td-logger td-uefi-pi
15
+ NIGHTLY_LIB_CRATES = td-exception td-paging tdx-tdcall
13
16
SHIM_CRATES = td-shim td-payload
14
17
TEST_CRATES = test-td-exception test-td-paging
15
18
TOOL_CRATES = td-shim-tools
@@ -46,28 +49,28 @@ uninstall-devtools: uninstall-subdir-devtools $(TOOL_CRATES:%=uninstall-devtool-
46
49
.PHONY : tools-devtools
47
50
tools-devtools : tools-subdir-devtools
48
51
49
- install-devtool-% : build-%
52
+ install-devtool-% : nightly- build-%
50
53
mkdir -p ${TOPDIR} /devtools/bin
51
- cargo install --bins --target-dir ${TOPDIR} /devtools/bin/ --path $(patsubst install-devtool-% ,% ,$@ )
54
+ ${CARGO} install --bins --target-dir ${TOPDIR} /devtools/bin/ --path $(patsubst install-devtool-% ,% ,$@ )
52
55
53
56
uninstall-devtool-% :
54
- cargo uninstall --root ${TOPDIR} /devtools/bin/ --path $(patsubst uninstall-devtool-% ,% ,$@ )
57
+ ${CARGO} uninstall --root ${TOPDIR} /devtools/bin/ --path $(patsubst uninstall-devtool-% ,% ,$@ )
55
58
56
59
# Targets for tool crates
57
60
install-tool-% : build-%
58
- cargo install --bins --path $(patsubst install-tool-% ,% ,$@ )
61
+ ${CARGO} install --bins --path $(patsubst install-tool-% ,% ,$@ )
59
62
60
63
uninstall-tool-% :
61
- cargo uninstall --path $(patsubst uninstall-devtool-% ,% ,$@ )
64
+ ${CARGO} uninstall --path $(patsubst uninstall-devtool-% ,% ,$@ )
62
65
63
66
# Targets for library crates
64
- lib-build : $(LIB_CRATES :%=build-% )
67
+ lib-build : $(GENERIC_LIB_CRATES :%=build-% ) $( NIGHTLY_LIB_CRATES:%=nightly- build-% )
65
68
66
- lib-check : $(LIB_CRATES :%=check-% )
69
+ lib-check : $(GENERIC_LIB_CRATES :%=check-% ) $( NIGHTLY_LIB_CRATES:%=nightly- check-% )
67
70
68
- lib-test : $(LIB_CRATES :%=test-% )
71
+ lib-test : $(GENERIC_LIB_CRATES :%=test-% ) $( NIGHTLY_LIB_CRATES:%=nightly- test-% )
69
72
70
- lib-clean : $(LIB_CRATES :%=clean-% )
73
+ lib-clean : $(GENERIC_LIB_CRATES :%=clean-% ) $( NIGHTLY_LIB_CRATES:%=nightly- clean-% )
71
74
72
75
# Targets for integration test crates
73
76
integration-build : $(TEST_CRATES:%=integration-build-% )
@@ -80,39 +83,52 @@ integration-clean: $(TEST_CRATES:%=integration-clean-%)
80
83
81
84
# Target for crates which should be compiled with `x86_64-unknown-uefi` target
82
85
uefi-build-% :
83
- cargo xbuild --target x86_64-unknown-uefi -p $(patsubst uefi-build-% ,% ,$@ ) --features=main ${BUILD_TYPE_FLAG}
86
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} xbuild --target x86_64-unknown-uefi -p $(patsubst uefi-build-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
84
87
85
88
uefi-check-% :
86
- cargo xcheck --target x86_64-unknown-uefi -p $(patsubst uefi-check-% ,% ,$@ ) --features=main ${BUILD_TYPE_FLAG}
89
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} xcheck --target x86_64-unknown-uefi -p $(patsubst uefi-check-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
87
90
88
91
uefi-clean-% :
89
- cargo clean --target x86_64-unknown-uefi -p $(patsubst uefi-clean-% ,% ,$@ ) --features=main ${BUILD_TYPE_FLAG}
92
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} clean --target x86_64-unknown-uefi -p $(patsubst uefi-clean-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
90
93
91
94
# Target for integration test crates which should be compiled with `x86_64-custom.json` target
92
95
integration-build-% :
93
- cargo xbuild --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-build-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
96
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} xbuild --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-build-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
94
97
95
98
integration-check-% :
96
- cargo xcheck --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-check-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
99
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} xcheck --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-check-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
97
100
98
101
integration-test-% :
99
- cargo xtest --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-test-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
102
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} xtest --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-test-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
100
103
101
104
integration-clean-% :
102
- cargo clean --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-clean-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
105
+ ${CARGO} + ${NIGHTLY_TOOLCHAIN} clean --target ${TOPDIR} /devtools/rustc-targets/x86_64-custom.json -p $(patsubst integration-clean-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
103
106
104
107
# Targets for normal library/binary crates
105
108
build-% :
106
- cargo build -p $(patsubst build-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
109
+ ${CARGO} + ${STABLE_TOOLCHAIN} build -p $(patsubst build-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
107
110
108
111
check-% :
109
- cargo check -p $(patsubst check-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
112
+ ${CARGO} + ${STABLE_TOOLCHAIN} check -p $(patsubst check-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
110
113
111
114
clean-% :
112
- cargo clean -p $(patsubst clean-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
115
+ ${CARGO} + ${STABLE_TOOLCHAIN} clean -p $(patsubst clean-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
113
116
114
117
test-% :
115
- cargo test -p $(patsubst test-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
118
+ ${CARGO} +${STABLE_TOOLCHAIN} test -p $(patsubst test-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
119
+
120
+ # Targets for normal library/binary crates
121
+ nightly-build-% :
122
+ ${CARGO} +${NIGHTLY_TOOLCHAIN} build -p $(patsubst nightly-build-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
123
+
124
+ nightly-check-% :
125
+ ${CARGO} +${NIGHTLY_TOOLCHAIN} check -p $(patsubst nightly-check-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
126
+
127
+ nightly-clean-% :
128
+ ${CARGO} +${NIGHTLY_TOOLCHAIN} clean -p $(patsubst nightly-clean-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
129
+
130
+ nightly-test-% :
131
+ ${CARGO} +${NIGHTLY_TOOLCHAIN} test -p $(patsubst nightly-test-% ,% ,$@ ) ${BUILD_TYPE_FLAG}
116
132
117
133
# Targets for subdirectories
118
134
build-subdir-% :
0 commit comments