@@ -40,10 +40,16 @@ This document describes the Linux kernel Makefiles.
40
40
--- 6.7 Custom kbuild commands
41
41
--- 6.8 Preprocessing linker scripts
42
42
43
- === 7 Kbuild Variables
44
- === 8 Makefile language
45
- === 9 Credits
46
- === 10 TODO
43
+ === 7 Kbuild syntax for exported headers
44
+ --- 7.1 header-y
45
+ --- 7.2 objhdr-y
46
+ --- 7.3 destination-y
47
+ --- 7.4 unifdef-y (deprecated)
48
+
49
+ === 8 Kbuild Variables
50
+ === 9 Makefile language
51
+ === 10 Credits
52
+ === 11 TODO
47
53
48
54
=== 1 Overview
49
55
@@ -1143,8 +1149,69 @@ When kbuild executes, the following steps are followed (roughly):
1143
1149
The kbuild infrastructure for *lds file are used in several
1144
1150
architecture-specific files.
1145
1151
1152
+ === 7 Kbuild syntax for exported headers
1153
+
1154
+ The kernel include a set of headers that is exported to userspace.
1155
+ Many headers can be exported as-is but other headers requires a
1156
+ minimal pre-processing before they are ready for user-space.
1157
+ The pre-processing does:
1158
+ - drop kernel specific annotations
1159
+ - drop include of compiler.h
1160
+ - drop all sections that is kernel internat (guarded by ifdef __KERNEL__)
1161
+
1162
+ Each relevant directory contain a file name "Kbuild" which specify the
1163
+ headers to be exported.
1164
+ See subsequent chapter for the syntax of the Kbuild file.
1165
+
1166
+ --- 7.1 header-y
1167
+
1168
+ header-y specify header files to be exported.
1169
+
1170
+ Example:
1171
+ #include/linux/Kbuild
1172
+ header-y += usb/
1173
+ header-y += aio_abi.h
1174
+
1175
+ The convention is to list one file per line and
1176
+ preferably in alphabetic order.
1177
+
1178
+ header-y also specify which subdirectories to visit.
1179
+ A subdirectory is identified by a trailing '/' which
1180
+ can be seen in the example above for the usb subdirectory.
1181
+
1182
+ Subdirectories are visited before their parent directories.
1183
+
1184
+ --- 7.2 objhdr-y
1185
+
1186
+ objhdr-y specifies generated files to be exported.
1187
+ Generated files are special as they need to be looked
1188
+ up in another directory when doing 'make O=...' builds.
1189
+
1190
+ Example:
1191
+ #include/linux/Kbuild
1192
+ objhdr-y += version.h
1193
+
1194
+ --- 7.3 destination-y
1195
+
1196
+ When an architecture have a set of exported headers that needs to be
1197
+ exported to a different directory destination-y is used.
1198
+ destination-y specify the destination directory for all exported
1199
+ headers in the file where it is present.
1200
+
1201
+ Example:
1202
+ #arch/xtensa/platforms/s6105/include/platform/Kbuild
1203
+ destination-y := include/linux
1204
+
1205
+ In the example above all exported headers in the Kbuild file
1206
+ will be located in the directory "include/linux" when exported.
1207
+
1208
+
1209
+ --- 7.4 unifdef-y (deprecated)
1210
+
1211
+ unifdef-y is deprecated. A direct replacement is header-y.
1212
+
1146
1213
1147
- === 7 Kbuild Variables
1214
+ === 8 Kbuild Variables
1148
1215
1149
1216
The top Makefile exports the following variables:
1150
1217
@@ -1206,7 +1273,7 @@ The top Makefile exports the following variables:
1206
1273
INSTALL_MOD_STRIP will used as the option(s) to the strip command.
1207
1274
1208
1275
1209
- === 8 Makefile language
1276
+ === 9 Makefile language
1210
1277
1211
1278
The kernel Makefiles are designed to be run with GNU Make. The Makefiles
1212
1279
use only the documented features of GNU Make, but they do use many
@@ -1225,14 +1292,14 @@ time the left-hand side is used.
1225
1292
There are some cases where "=" is appropriate. Usually, though, ":="
1226
1293
is the right choice.
1227
1294
1228
- === 9 Credits
1295
+ === 10 Credits
1229
1296
1230
1297
Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1231
1298
Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1232
1299
Updates by Sam Ravnborg <sam@ravnborg.org>
1233
1300
Language QA by Jan Engelhardt <jengelh@gmx.de>
1234
1301
1235
- === 10 TODO
1302
+ === 11 TODO
1236
1303
1237
1304
- Describe how kbuild supports shipped files with _shipped.
1238
1305
- Generating offset header files.
0 commit comments