1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for the linux kernel.
6 ccflags-y
:= -fno-function-sections
-fno-data-sections
8 obj-y
:= main.o version.o mounts.o
9 ifneq ($(CONFIG_BLK_DEV_INITRD
),y
)
10 obj-y
+= noinitramfs.o
12 obj-
$(CONFIG_BLK_DEV_INITRD
) += initramfs.o
14 obj-
$(CONFIG_GENERIC_CALIBRATE_DELAY
) += calibrate.o
18 mounts-y
:= do_mounts.o
19 mounts-
$(CONFIG_BLK_DEV_RAM
) += do_mounts_rd.o
20 mounts-
$(CONFIG_BLK_DEV_INITRD
) += do_mounts_initrd.o
26 smp-flag-
$(CONFIG_SMP
) := SMP
27 preempt-flag-
$(CONFIG_PREEMPT_BUILD
) := PREEMPT
28 preempt-flag-
$(CONFIG_PREEMPT_DYNAMIC
) := PREEMPT_DYNAMIC
29 preempt-flag-
$(CONFIG_PREEMPT_RT
) := PREEMPT_RT
31 build-version
= $(or
$(KBUILD_BUILD_VERSION
), $(build-version-auto
))
32 build-timestamp
= $(or
$(KBUILD_BUILD_TIMESTAMP
), $(build-timestamp-auto
))
34 # Maximum length of UTS_VERSION is 64 chars
35 filechk_uts_version
= \
36 utsver
=$$(echo
'$(pound)'"$(build-version)" $(smp-flag-y
) $(preempt-flag-y
) "$(build-timestamp)" | cut
-b
-64); \
37 echo
'$(pound)'define UTS_VERSION
\""$${utsver}"\"
40 # Build version.c with temporary UTS_VERSION
43 $(obj
)/utsversion-tmp.h
: FORCE
44 $(call filechk
,uts_version
)
46 clean-files
+= utsversion-tmp.h
48 $(obj
)/version.o
: $(obj
)/utsversion-tmp.h
49 CFLAGS_version.o
:= -include $(obj
)/utsversion-tmp.h
52 # Build version-timestamp.c with final UTS_VERSION
55 include/generated
/utsversion.h
: build-version-auto
= $(shell $(srctree
)/$(src
)/build-version
)
56 include/generated
/utsversion.h
: build-timestamp-auto
= $(shell LC_ALL
=C date
)
57 include/generated
/utsversion.h
: FORCE
58 $(call filechk
,uts_version
)
60 $(obj
)/version-timestamp.o
: include/generated
/utsversion.h
61 CFLAGS_version-timestamp.o
:= -include include/generated
/utsversion.h
62 KASAN_SANITIZE_version-timestamp.o
:= n
63 KCSAN_SANITIZE_version-timestamp.o
:= n
64 GCOV_PROFILE_version-timestamp.o
:= n