Blame view

kernel/Makefile 7.73 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
  #
  # Makefile for the linux kernel.
  #
b9ee979e9   Joe Perches   printk: move to s...
4
  obj-y     = fork.o exec_domain.o panic.o \
68f4f1ec0   Max Krasnyansky   sched: Move cpu m...
5
  	    cpu.o exit.o itimer.o time.o softirq.o resource.o \
afa588b26   Eric W. Biederman   sysctl: Separate ...
6
  	    sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \
e73f8959a   Oleg Nesterov   task_work_add: ge...
7
  	    signal.o sys.o kmod.o workqueue.o pid.o task_work.o \
4102adab9   Paul E. McKenney   rcu: Move RCU-rel...
8
  	    extable.o params.o posix-timers.o \
01768b42d   Peter Zijlstra   locking: Move the...
9
  	    kthread.o sys_ni.o posix-cpu-timers.o \
ed428bfc3   Peter Zijlstra   locking: Move the...
10
  	    hrtimer.o nsproxy.o \
15d94b825   Robin Holt   reboot: move shut...
11
  	    notifier.o ksysfs.o cred.o reboot.o \
cd4d241d5   Peter Zijlstra   locking: Move the...
12
  	    async.o range.o groups.o smpboot.o
029632fbb   Peter Zijlstra   sched: Make separ...
13

606576ce8   Steven Rostedt   ftrace: rename FT...
14
  ifdef CONFIG_FUNCTION_TRACER
6ec562328   Steven Rostedt   ftrace: use the n...
15
  # Do not trace debug files and internal ftrace files
6ec562328   Steven Rostedt   ftrace: use the n...
16
  CFLAGS_REMOVE_cgroup-debug.o = -pg
e360adbe2   Peter Zijlstra   irq_work: Add gen...
17
  CFLAGS_REMOVE_irq_work.o = -pg
1d09daa55   Steven Rostedt   ftrace: use Makef...
18
  endif
58edae3aa   Andi Kleen   lto: Disable LTO ...
19
20
  # cond_syscall is currently not LTO compatible
  CFLAGS_sys_ni.o = $(DISABLE_LTO)
391e43da7   Peter Zijlstra   sched: Move all s...
21
  obj-y += sched/
01768b42d   Peter Zijlstra   locking: Move the...
22
  obj-y += locking/
dae5cbc24   Rafael J. Wysocki   PM: Make sysrq-o ...
23
  obj-y += power/
b9ee979e9   Joe Perches   printk: move to s...
24
  obj-y += printk/
0244ad004   Martin Schwidefsky   Remove GENERIC_HA...
25
  obj-y += irq/
4102adab9   Paul E. McKenney   rcu: Move RCU-rel...
26
  obj-y += rcu/
391e43da7   Peter Zijlstra   sched: Move all s...
27

1e142b29e   Cyrill Gorcunov   kcmp: make it dep...
28
  obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
8174f1503   Matt Helsley   container freezer...
29
  obj-$(CONFIG_FREEZER) += freezer.o
b03f6489f   Adrian Bunk   build kernel/prof...
30
  obj-$(CONFIG_PROFILING) += profile.o
8637c0990   Ingo Molnar   [PATCH] lockdep: ...
31
  obj-$(CONFIG_STACKTRACE) += stacktrace.o
ad596171e   John Stultz   [PATCH] Time: Use...
32
  obj-y += time/
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33
  obj-$(CONFIG_FUTEX) += futex.o
34f192c65   Ingo Molnar   [PATCH] lightweig...
34
35
36
  ifeq ($(CONFIG_COMPAT),y)
  obj-$(CONFIG_FUTEX) += futex_compat.o
  endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
37
  obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
351f8f8e6   Amerigo Wang   kernel: clean up ...
38
  obj-$(CONFIG_SMP) += smp.o
9316fcacb   Andrew Morton   kernel/up.c: omit...
39
  ifneq ($(CONFIG_SMP),y)
53ce3d956   Andrew Morton   smp_call_function...
40
41
  obj-y += up.o
  endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
42
  obj-$(CONFIG_UID16) += uid16.o
b56e5a17b   David Howells   KEYS: Separate th...
43
  obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system_keyring.o system_certificates.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
44
  obj-$(CONFIG_MODULES) += module.o
b56e5a17b   David Howells   KEYS: Separate th...
45
  obj-$(CONFIG_MODULE_SIG) += module_signing.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
46
  obj-$(CONFIG_KALLSYMS) += kallsyms.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
47
  obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
dc009d924   Eric W. Biederman   [PATCH] kexec: ad...
48
  obj-$(CONFIG_KEXEC) += kexec.o
6dab27784   Arjan van de Ven   x86: add a simple...
49
  obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
50
  obj-$(CONFIG_COMPAT) += compat.o
ddbcc7e8e   Paul Menage   Task Control Grou...
51
  obj-$(CONFIG_CGROUPS) += cgroup.o
dc52ddc0e   Matt Helsley   container freezer...
52
  obj-$(CONFIG_CGROUP_FREEZER) += cgroup_freezer.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
53
  obj-$(CONFIG_CPUSETS) += cpuset.o
aee16ce73   Pavel Emelyanov   namespaces: clean...
54
55
  obj-$(CONFIG_UTS_NS) += utsname.o
  obj-$(CONFIG_USER_NS) += user_namespace.o
74bd59bb3   Pavel Emelyanov   namespaces: clean...
56
  obj-$(CONFIG_PID_NS) += pid_namespace.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
57
  obj-$(CONFIG_IKCONFIG) += configs.o
e552b6617   Pavel Emelianov   Memory controller...
58
  obj-$(CONFIG_RESOURCE_COUNTERS) += res_counter.o
bbf1bb3ee   Tejun Heo   cpu_stop: add dum...
59
  obj-$(CONFIG_SMP) += stop_machine.o
8c1c93564   Ananth N Mavinakayanahalli   x86: kprobes: add...
60
  obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
939a67fc4   Eric Paris   Audit: split audi...
61
  obj-$(CONFIG_AUDIT) += audit.o auditfilter.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
62
  obj-$(CONFIG_AUDITSYSCALL) += auditsc.o
939a67fc4   Eric Paris   Audit: split audi...
63
  obj-$(CONFIG_AUDIT_WATCH) += audit_watch.o
74c3cbe33   Al Viro   [PATCH] audit: wa...
64
  obj-$(CONFIG_AUDIT_TREE) += audit_tree.o
939a67fc4   Eric Paris   Audit: split audi...
65
  obj-$(CONFIG_GCOV_KERNEL) += gcov/
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
66
  obj-$(CONFIG_KPROBES) += kprobes.o
c43382097   Jason Wessel   Move kernel/kgdb....
67
  obj-$(CONFIG_KGDB) += debug/
e162b39a3   Mandeep Singh Baines   softlockup: decou...
68
  obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
58687acba   Don Zickus   lockup_detector: ...
69
  obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70
  obj-$(CONFIG_SECCOMP) += seccomp.o
b86ff981a   Jens Axboe   [PATCH] relay: mi...
71
  obj-$(CONFIG_RELAY) += relay.o
39732acd9   Eric W. Biederman   [PATCH] sysctl: m...
72
  obj-$(CONFIG_SYSCTL) += utsname_sysctl.o
ca74e92b4   Shailabh Nagar   [PATCH] per-task-...
73
  obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
f3cef7a99   Jay Lan   [PATCH] csa: basi...
74
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
97e1c18e8   Mathieu Desnoyers   tracing: Kernel T...
75
  obj-$(CONFIG_TRACEPOINTS) += tracepoint.o
9745512ce   Arjan van de Ven   sched: latencytop...
76
  obj-$(CONFIG_LATENCYTOP) += latencytop.o
1fcccbac8   Daisuke HATAYAMA   elf coredump: rep...
77
78
79
  obj-$(CONFIG_BINFMT_ELF) += elfcore.o
  obj-$(CONFIG_COMPAT_BINFMT_ELF) += elfcore.o
  obj-$(CONFIG_BINFMT_ELF_FDPIC) += elfcore.o
606576ce8   Steven Rostedt   ftrace: rename FT...
80
  obj-$(CONFIG_FUNCTION_TRACER) += trace/
bc0c38d13   Steven Rostedt   ftrace: latency t...
81
  obj-$(CONFIG_TRACING) += trace/
ea632e9f1   Josh Triplett   trace: Stop compi...
82
  obj-$(CONFIG_TRACE_CLOCK) += trace/
1155de47c   Paul Mundt   ring-buffer: Make...
83
  obj-$(CONFIG_RING_BUFFER) += trace/
870915e04   Mathieu Desnoyers   tracing: Fix TRAC...
84
  obj-$(CONFIG_TRACEPOINTS) += trace/
e360adbe2   Peter Zijlstra   irq_work: Add gen...
85
  obj-$(CONFIG_IRQ_WORK) += irq_work.o
ab10023e0   Colin Cross   cpu_pm: Add cpu p...
86
  obj-$(CONFIG_CPU_PM) += cpu_pm.o
fae85b7c8   Borislav Petkov   perf: Start the r...
87
88
  
  obj-$(CONFIG_PERF_EVENTS) += events/
7a0410975   Avi Kivity   x86: Fix user ret...
89
  obj-$(CONFIG_USER_RETURN_NOTIFIER) += user-return-notifier.o
16295bec6   Steffen Klassert   padata: Generic p...
90
  obj-$(CONFIG_PADATA) += padata.o
93a72052b   Olaf Hering   crash_dump: expor...
91
  obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
b77f0f3c1   Jason Baron   jump label: Reduc...
92
  obj-$(CONFIG_JUMP_LABEL) += jump_label.o
91d1aa43d   Frederic Weisbecker   context_tracking:...
93
  obj-$(CONFIG_CONTEXT_TRACKING) += context_tracking.o
51b1130eb   Paul E. McKenney   rcutorture: Abstr...
94
  obj-$(CONFIG_TORTURE_TEST) += torture.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
95

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
96
97
98
99
100
  $(obj)/configs.o: $(obj)/config_data.h
  
  # config_data.h contains the same information as ikconfig.h but gzipped.
  # Info from config_data can be extracted from /proc/config*
  targets += config_data.gz
41263fc67   Ben Gardiner   kbuild: fix inter...
101
  $(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
102
  	$(call if_changed,gzip)
e78e8f2d8   Peter Foley   kernel: prevent u...
103
        filechk_ikconfiggz = (echo "static const char kernel_config_data[] __used = MAGIC_START"; cat $< | scripts/bin2c; echo "MAGIC_END;")
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
104
105
  targets += config_data.h
  $(obj)/config_data.h: $(obj)/config_data.gz FORCE
e78e8f2d8   Peter Foley   kernel: prevent u...
106
  	$(call filechk,ikconfiggz)
bdc807871   H. Peter Anvin   avoid overflows i...
107
108
  
  $(obj)/time.o: $(obj)/timeconst.h
70730bca1   H. Peter Anvin   kernel: Replace t...
109
110
111
112
113
114
115
116
117
  quiet_cmd_hzfile = HZFILE  $@
        cmd_hzfile = echo "hz=$(CONFIG_HZ)" > $@
  
  targets += hz.bc
  $(obj)/hz.bc: $(objtree)/include/config/hz.h FORCE
  	$(call if_changed,hzfile)
  
  quiet_cmd_bc  = BC      $@
        cmd_bc  = bc -q $(filter-out FORCE,$^) > $@
bdc807871   H. Peter Anvin   avoid overflows i...
118
  targets += timeconst.h
70730bca1   H. Peter Anvin   kernel: Replace t...
119
120
  $(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE
  	$(call if_changed,bc)
d441108c6   David Howells   MODSIGN: Automati...
121

f0e6d220a   David Howells   KEYS: Load *.x509...
122
  ###############################################################################
631cc66eb   David Howells   MODSIGN: Provide ...
123
  #
0fbd39cf7   David Howells   KEYS: Have make c...
124
  # Roll all the X.509 certificates that we can find together and pull them into
b56e5a17b   David Howells   KEYS: Separate th...
125
126
  # the kernel so that they get loaded into the system trusted keyring during
  # boot.
631cc66eb   David Howells   MODSIGN: Provide ...
127
  #
0fbd39cf7   David Howells   KEYS: Have make c...
128
129
130
131
  # We look in the source root and the build root for all files whose name ends
  # in ".x509".  Unfortunately, this will generate duplicate filenames, so we
  # have make canonicalise the pathnames and then sort them to discard the
  # duplicates.
631cc66eb   David Howells   MODSIGN: Provide ...
132
  #
f0e6d220a   David Howells   KEYS: Load *.x509...
133
  ###############################################################################
b56e5a17b   David Howells   KEYS: Separate th...
134
  ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
f0e6d220a   David Howells   KEYS: Load *.x509...
135
  X509_CERTIFICATES-y := $(wildcard *.x509) $(wildcard $(srctree)/*.x509)
d7ec435fd   David Howells   X.509: Fix certif...
136
137
  X509_CERTIFICATES-$(CONFIG_MODULE_SIG) += $(objtree)/signing_key.x509
  X509_CERTIFICATES-raw := $(sort $(foreach CERT,$(X509_CERTIFICATES-y), \
0fbd39cf7   David Howells   KEYS: Have make c...
138
  				$(or $(realpath $(CERT)),$(CERT))))
d7ec435fd   David Howells   X.509: Fix certif...
139
  X509_CERTIFICATES := $(subst $(realpath $(objtree))/,,$(X509_CERTIFICATES-raw))
f0e6d220a   David Howells   KEYS: Load *.x509...
140
141
142
143
144
145
146
147
148
149
150
  
  ifeq ($(X509_CERTIFICATES),)
  $(warning *** No X.509 certificates found ***)
  endif
  
  ifneq ($(wildcard $(obj)/.x509.list),)
  ifneq ($(shell cat $(obj)/.x509.list),$(X509_CERTIFICATES))
  $(info X.509 certificate list changed)
  $(shell rm $(obj)/.x509.list)
  endif
  endif
b56e5a17b   David Howells   KEYS: Separate th...
151
  kernel/system_certificates.o: $(obj)/x509_certificate_list
e10e1774e   Michal Marek   MODSIGN: Fix kbui...
152

f0e6d220a   David Howells   KEYS: Load *.x509...
153
  quiet_cmd_x509certs  = CERTS   $@
b56e5a17b   David Howells   KEYS: Separate th...
154
        cmd_x509certs  = cat $(X509_CERTIFICATES) /dev/null >$@ $(foreach X509,$(X509_CERTIFICATES),; echo "  - Including cert $(X509)")
e10e1774e   Michal Marek   MODSIGN: Fix kbui...
155

f0e6d220a   David Howells   KEYS: Load *.x509...
156
157
158
  targets += $(obj)/x509_certificate_list
  $(obj)/x509_certificate_list: $(X509_CERTIFICATES) $(obj)/.x509.list
  	$(call if_changed,x509certs)
631cc66eb   David Howells   MODSIGN: Provide ...
159

f0e6d220a   David Howells   KEYS: Load *.x509...
160
161
162
  targets += $(obj)/.x509.list
  $(obj)/.x509.list:
  	@echo $(X509_CERTIFICATES) >$@
f46a3cbbe   Kirill Tkhai   KEYS: Remove file...
163
  endif
d441108c6   David Howells   MODSIGN: Automati...
164

f0e6d220a   David Howells   KEYS: Load *.x509...
165
  clean-files := x509_certificate_list .x509.list
d441108c6   David Howells   MODSIGN: Automati...
166

b56e5a17b   David Howells   KEYS: Separate th...
167
  ifeq ($(CONFIG_MODULE_SIG),y)
d441108c6   David Howells   MODSIGN: Automati...
168
169
170
171
172
173
174
  ###############################################################################
  #
  # If module signing is requested, say by allyesconfig, but a key has not been
  # supplied, then one will need to be generated to make sure the build does not
  # fail and that the kernel may be used afterwards.
  #
  ###############################################################################
227536740   Michal Marek   MODSIGN: Simplify...
175
  ifndef CONFIG_MODULE_SIG_HASH
5e8cb1e44   David Howells   MODSIGN: Use the ...
176
177
  $(error Could not determine digest type to use from kernel config)
  endif
d441108c6   David Howells   MODSIGN: Automati...
178
179
180
181
182
183
  signing_key.priv signing_key.x509: x509.genkey
  	@echo "###"
  	@echo "### Now generating an X.509 key pair to be used for signing modules."
  	@echo "###"
  	@echo "### If this takes a long time, you might wish to run rngd in the"
  	@echo "### background to keep the supply of entropy topped up.  It"
2008713c7   H. Peter Anvin   Makefile: Documen...
184
185
  	@echo "### needs to be run as root, and uses a hardware random"
  	@echo "### number generator if one is available."
d441108c6   David Howells   MODSIGN: Automati...
186
  	@echo "###"
227536740   Michal Marek   MODSIGN: Simplify...
187
188
  	openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days 36500 \
  		-batch -x509 -config x509.genkey \
d441108c6   David Howells   MODSIGN: Automati...
189
  		-outform DER -out signing_key.x509 \
07c449bbc   David Cohen   MODSIGN: do not s...
190
  		-keyout signing_key.priv 2>&1
d441108c6   David Howells   MODSIGN: Automati...
191
192
193
194
195
196
197
198
199
200
  	@echo "###"
  	@echo "### Key pair generated."
  	@echo "###"
  
  x509.genkey:
  	@echo Generating X.509 key generation config
  	@echo  >x509.genkey "[ req ]"
  	@echo >>x509.genkey "default_bits = 4096"
  	@echo >>x509.genkey "distinguished_name = req_distinguished_name"
  	@echo >>x509.genkey "prompt = no"
e7d113bcf   David Howells   MODSIGN: Use utf8...
201
  	@echo >>x509.genkey "string_mask = utf8only"
d441108c6   David Howells   MODSIGN: Automati...
202
203
204
205
206
207
208
209
210
211
212
213
214
  	@echo >>x509.genkey "x509_extensions = myexts"
  	@echo >>x509.genkey
  	@echo >>x509.genkey "[ req_distinguished_name ]"
  	@echo >>x509.genkey "O = Magrathea"
  	@echo >>x509.genkey "CN = Glacier signing key"
  	@echo >>x509.genkey "emailAddress = slartibartfast@magrathea.h2g2"
  	@echo >>x509.genkey
  	@echo >>x509.genkey "[ myexts ]"
  	@echo >>x509.genkey "basicConstraints=critical,CA:FALSE"
  	@echo >>x509.genkey "keyUsage=digitalSignature"
  	@echo >>x509.genkey "subjectKeyIdentifier=hash"
  	@echo >>x509.genkey "authorityKeyIdentifier=keyid"
  endif