Blame view

kernel/Makefile 6.96 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
  #
  # Makefile for the linux kernel.
  #
029632fbb   Peter Zijlstra   sched: Make separ...
4
  obj-y     = fork.o exec_domain.o panic.o printk.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 \
e260be673   Paul E. McKenney   Preempt-RCU: impl...
8
  	    rcupdate.o extable.o params.o posix-timers.o \
c759b35e6   Stefani Seibold   kfifo: move kfifo...
9
  	    kthread.o wait.o sys_ni.o posix-cpu-timers.o mutex.o \
64ac24e73   Matthew Wilcox   Generic semaphore...
10
  	    hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
391e43da7   Peter Zijlstra   sched: Move all s...
11
  	    notifier.o ksysfs.o cred.o \
3180d89b4   Paul E. McKenney   hotplug: Fix UP b...
12
  	    async.o range.o groups.o lglock.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
16
17
18
19
20
  # Do not trace debug files and internal ftrace files
  CFLAGS_REMOVE_lockdep.o = -pg
  CFLAGS_REMOVE_lockdep_proc.o = -pg
  CFLAGS_REMOVE_mutex-debug.o = -pg
  CFLAGS_REMOVE_rtmutex-debug.o = -pg
  CFLAGS_REMOVE_cgroup-debug.o = -pg
e360adbe2   Peter Zijlstra   irq_work: Add gen...
21
  CFLAGS_REMOVE_irq_work.o = -pg
1d09daa55   Steven Rostedt   ftrace: use Makef...
22
  endif
391e43da7   Peter Zijlstra   sched: Move all s...
23
  obj-y += sched/
dae5cbc24   Rafael J. Wysocki   PM: Make sysrq-o ...
24
  obj-y += power/
a1a04ec3c   Thomas Gleixner   idle: Provide a g...
25
  obj-y += cpu/
391e43da7   Peter Zijlstra   sched: Move all s...
26

1e142b29e   Cyrill Gorcunov   kcmp: make it dep...
27
  obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
8174f1503   Matt Helsley   container freezer...
28
  obj-$(CONFIG_FREEZER) += freezer.o
b03f6489f   Adrian Bunk   build kernel/prof...
29
  obj-$(CONFIG_PROFILING) += profile.o
8637c0990   Ingo Molnar   [PATCH] lockdep: ...
30
  obj-$(CONFIG_STACKTRACE) += stacktrace.o
ad596171e   John Stultz   [PATCH] Time: Use...
31
  obj-y += time/
408894ee4   Ingo Molnar   [PATCH] mutex sub...
32
  obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
fbb9ce953   Ingo Molnar   [PATCH] lockdep: ...
33
  obj-$(CONFIG_LOCKDEP) += lockdep.o
a8f24a397   Ingo Molnar   [PATCH] lockdep: ...
34
35
36
  ifeq ($(CONFIG_PROC_FS),y)
  obj-$(CONFIG_LOCKDEP) += lockdep_proc.o
  endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
37
  obj-$(CONFIG_FUTEX) += futex.o
34f192c65   Ingo Molnar   [PATCH] lightweig...
38
39
40
  ifeq ($(CONFIG_COMPAT),y)
  obj-$(CONFIG_FUTEX) += futex_compat.o
  endif
23f78d4a0   Ingo Molnar   [PATCH] pi-futex:...
41
  obj-$(CONFIG_RT_MUTEXES) += rtmutex.o
e7eebaf6a   Ingo Molnar   [PATCH] pi-futex:...
42
  obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
43
  obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
44
  obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
351f8f8e6   Amerigo Wang   kernel: clean up ...
45
  obj-$(CONFIG_SMP) += smp.o
9316fcacb   Andrew Morton   kernel/up.c: omit...
46
  ifneq ($(CONFIG_SMP),y)
53ce3d956   Andrew Morton   smp_call_function...
47
48
  obj-y += up.o
  endif
68f4f1ec0   Max Krasnyansky   sched: Move cpu m...
49
  obj-$(CONFIG_SMP) += spinlock.o
fb1c8f93d   Ingo Molnar   [PATCH] spinlock ...
50
  obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
8a25d5deb   Ingo Molnar   [PATCH] lockdep: ...
51
  obj-$(CONFIG_PROVE_LOCKING) += spinlock.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
52
53
  obj-$(CONFIG_UID16) += uid16.o
  obj-$(CONFIG_MODULES) += module.o
919aa45e4   Takashi Iwai   MODSIGN: Avoid us...
54
  obj-$(CONFIG_MODULE_SIG) += module_signing.o modsign_pubkey.o modsign_certificate.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55
  obj-$(CONFIG_KALLSYMS) += kallsyms.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
56
  obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
dc009d924   Eric W. Biederman   [PATCH] kexec: ad...
57
  obj-$(CONFIG_KEXEC) += kexec.o
6dab27784   Arjan van de Ven   x86: add a simple...
58
  obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
59
  obj-$(CONFIG_COMPAT) += compat.o
ddbcc7e8e   Paul Menage   Task Control Grou...
60
  obj-$(CONFIG_CGROUPS) += cgroup.o
dc52ddc0e   Matt Helsley   container freezer...
61
  obj-$(CONFIG_CGROUP_FREEZER) += cgroup_freezer.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
62
  obj-$(CONFIG_CPUSETS) += cpuset.o
aee16ce73   Pavel Emelyanov   namespaces: clean...
63
64
  obj-$(CONFIG_UTS_NS) += utsname.o
  obj-$(CONFIG_USER_NS) += user_namespace.o
74bd59bb3   Pavel Emelyanov   namespaces: clean...
65
  obj-$(CONFIG_PID_NS) += pid_namespace.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
66
  obj-$(CONFIG_IKCONFIG) += configs.o
e552b6617   Pavel Emelianov   Memory controller...
67
  obj-$(CONFIG_RESOURCE_COUNTERS) += res_counter.o
bbf1bb3ee   Tejun Heo   cpu_stop: add dum...
68
  obj-$(CONFIG_SMP) += stop_machine.o
8c1c93564   Ananth N Mavinakayanahalli   x86: kprobes: add...
69
  obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
939a67fc4   Eric Paris   Audit: split audi...
70
  obj-$(CONFIG_AUDIT) += audit.o auditfilter.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
71
  obj-$(CONFIG_AUDITSYSCALL) += auditsc.o
939a67fc4   Eric Paris   Audit: split audi...
72
  obj-$(CONFIG_AUDIT_WATCH) += audit_watch.o
74c3cbe33   Al Viro   [PATCH] audit: wa...
73
  obj-$(CONFIG_AUDIT_TREE) += audit_tree.o
939a67fc4   Eric Paris   Audit: split audi...
74
  obj-$(CONFIG_GCOV_KERNEL) += gcov/
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
75
  obj-$(CONFIG_KPROBES) += kprobes.o
c43382097   Jason Wessel   Move kernel/kgdb....
76
  obj-$(CONFIG_KGDB) += debug/
e162b39a3   Mandeep Singh Baines   softlockup: decou...
77
  obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
58687acba   Don Zickus   lockup_detector: ...
78
  obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
79
80
  obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
  obj-$(CONFIG_SECCOMP) += seccomp.o
a241ec65a   Paul E. McKenney   [PATCH] RCU tortu...
81
  obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
64db4cfff   Paul E. McKenney   "Tree RCU": scala...
82
  obj-$(CONFIG_TREE_RCU) += rcutree.o
f41d911f8   Paul E. McKenney   rcu: Merge preemp...
83
  obj-$(CONFIG_TREE_PREEMPT_RCU) += rcutree.o
64db4cfff   Paul E. McKenney   "Tree RCU": scala...
84
  obj-$(CONFIG_TREE_RCU_TRACE) += rcutree_trace.o
9b1d82fa1   Paul E. McKenney   rcu: "Tiny RCU", ...
85
  obj-$(CONFIG_TINY_RCU) += rcutiny.o
a57eb940d   Paul E. McKenney   rcu: Add a TINY_P...
86
  obj-$(CONFIG_TINY_PREEMPT_RCU) += rcutiny.o
b86ff981a   Jens Axboe   [PATCH] relay: mi...
87
  obj-$(CONFIG_RELAY) += relay.o
39732acd9   Eric W. Biederman   [PATCH] sysctl: m...
88
  obj-$(CONFIG_SYSCTL) += utsname_sysctl.o
ca74e92b4   Shailabh Nagar   [PATCH] per-task-...
89
  obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
f3cef7a99   Jay Lan   [PATCH] csa: basi...
90
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
97e1c18e8   Mathieu Desnoyers   tracing: Kernel T...
91
  obj-$(CONFIG_TRACEPOINTS) += tracepoint.o
9745512ce   Arjan van de Ven   sched: latencytop...
92
  obj-$(CONFIG_LATENCYTOP) += latencytop.o
1fcccbac8   Daisuke HATAYAMA   elf coredump: rep...
93
94
95
  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...
96
  obj-$(CONFIG_FUNCTION_TRACER) += trace/
bc0c38d13   Steven Rostedt   ftrace: latency t...
97
  obj-$(CONFIG_TRACING) += trace/
ea632e9f1   Josh Triplett   trace: Stop compi...
98
  obj-$(CONFIG_TRACE_CLOCK) += trace/
1155de47c   Paul Mundt   ring-buffer: Make...
99
  obj-$(CONFIG_RING_BUFFER) += trace/
870915e04   Mathieu Desnoyers   tracing: Fix TRAC...
100
  obj-$(CONFIG_TRACEPOINTS) += trace/
e360adbe2   Peter Zijlstra   irq_work: Add gen...
101
  obj-$(CONFIG_IRQ_WORK) += irq_work.o
ab10023e0   Colin Cross   cpu_pm: Add cpu p...
102
  obj-$(CONFIG_CPU_PM) += cpu_pm.o
fae85b7c8   Borislav Petkov   perf: Start the r...
103
104
  
  obj-$(CONFIG_PERF_EVENTS) += events/
7a0410975   Avi Kivity   x86: Fix user ret...
105
  obj-$(CONFIG_USER_RETURN_NOTIFIER) += user-return-notifier.o
16295bec6   Steffen Klassert   padata: Generic p...
106
  obj-$(CONFIG_PADATA) += padata.o
93a72052b   Olaf Hering   crash_dump: expor...
107
  obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
b77f0f3c1   Jason Baron   jump label: Reduc...
108
  obj-$(CONFIG_JUMP_LABEL) += jump_label.o
91d1aa43d   Frederic Weisbecker   context_tracking:...
109
  obj-$(CONFIG_CONTEXT_TRACKING) += context_tracking.o
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
110

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
111
112
113
114
115
  $(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...
116
  $(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
117
  	$(call if_changed,gzip)
e78e8f2d8   Peter Foley   kernel: prevent u...
118
        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
119
120
  targets += config_data.h
  $(obj)/config_data.h: $(obj)/config_data.gz FORCE
e78e8f2d8   Peter Foley   kernel: prevent u...
121
  	$(call filechk,ikconfiggz)
bdc807871   H. Peter Anvin   avoid overflows i...
122
123
  
  $(obj)/time.o: $(obj)/timeconst.h
70730bca1   H. Peter Anvin   kernel: Replace t...
124
125
126
127
128
129
130
131
132
  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...
133
  targets += timeconst.h
70730bca1   H. Peter Anvin   kernel: Replace t...
134
135
  $(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE
  	$(call if_changed,bc)
d441108c6   David Howells   MODSIGN: Automati...
136
137
  
  ifeq ($(CONFIG_MODULE_SIG),y)
631cc66eb   David Howells   MODSIGN: Provide ...
138
139
140
  #
  # Pull the signing certificate and any extra certificates into the kernel
  #
e10e1774e   Michal Marek   MODSIGN: Fix kbui...
141
142
143
  
  quiet_cmd_touch = TOUCH   $@
        cmd_touch = touch   $@
631cc66eb   David Howells   MODSIGN: Provide ...
144
  extra_certificates:
e10e1774e   Michal Marek   MODSIGN: Fix kbui...
145
  	$(call cmd,touch)
631cc66eb   David Howells   MODSIGN: Provide ...
146

919aa45e4   Takashi Iwai   MODSIGN: Avoid us...
147
  kernel/modsign_certificate.o: signing_key.x509 extra_certificates
d441108c6   David Howells   MODSIGN: Automati...
148
149
150
151
152
153
154
155
  
  ###############################################################################
  #
  # 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...
156
  ifndef CONFIG_MODULE_SIG_HASH
5e8cb1e44   David Howells   MODSIGN: Use the ...
157
158
  $(error Could not determine digest type to use from kernel config)
  endif
d441108c6   David Howells   MODSIGN: Automati...
159
160
161
162
163
164
  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...
165
166
  	@echo "### needs to be run as root, and uses a hardware random"
  	@echo "### number generator if one is available."
d441108c6   David Howells   MODSIGN: Automati...
167
  	@echo "###"
227536740   Michal Marek   MODSIGN: Simplify...
168
169
  	openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days 36500 \
  		-batch -x509 -config x509.genkey \
d441108c6   David Howells   MODSIGN: Automati...
170
  		-outform DER -out signing_key.x509 \
07c449bbc   David Cohen   MODSIGN: do not s...
171
  		-keyout signing_key.priv 2>&1
d441108c6   David Howells   MODSIGN: Automati...
172
173
174
175
176
177
178
179
180
181
  	@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...
182
  	@echo >>x509.genkey "string_mask = utf8only"
d441108c6   David Howells   MODSIGN: Automati...
183
184
185
186
187
188
189
190
191
192
193
194
195
  	@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