This commit was generated by cvs2svn to compensate for changes in r925,
[linux-2.6.git] / arch / xen / i386 / kernel / Makefile
1 #
2 # Makefile for the linux kernel.
3 #
4
5 XENARCH := $(subst ",,$(CONFIG_XENARCH))
6
7 CFLAGS  += -Iarch/$(XENARCH)/kernel
8
9 extra-y := head.o init_task.o
10
11 obj-y   := process.o entry.o traps.o \
12                 time.o ioport.o ldt.o setup.o \
13                 pci-dma.o i386_ksyms.o irq.o putuser.o
14
15 c-obj-y := semaphore.o vm86.o signal.o \
16                 ptrace.o sys_i386.o \
17                 i387.o dmi_scan.o bootflag.o \
18                 doublefault.o quirks.o
19 s-obj-y :=
20
21 obj-y                           += cpu/
22 obj-y                           += timers/
23 c-obj-$(CONFIG_ACPI_BOOT)       += acpi/
24 #c-obj-$(CONFIG_X86_BIOS_REBOOT)        += reboot.o
25 c-obj-$(CONFIG_MCA)             += mca.o
26 c-obj-$(CONFIG_X86_MSR)         += msr.o
27 c-obj-$(CONFIG_X86_CPUID)       += cpuid.o
28 obj-$(CONFIG_MICROCODE)         += microcode.o
29 c-obj-$(CONFIG_APM)             += apm.o
30 obj-$(CONFIG_X86_SMP)           += smp.o smpboot.o
31 #obj-$(CONFIG_X86_TRAMPOLINE)   += trampoline.o
32 c-obj-$(CONFIG_X86_MPPARSE)     += mpparse.o
33 #obj-$(CONFIG_X86_LOCAL_APIC)   += apic.o
34 c-obj-$(CONFIG_X86_LOCAL_APIC)  += nmi.o
35 c-obj-$(CONFIG_X86_IO_APIC)     += io_apic.o
36 c-obj-$(CONFIG_X86_NUMAQ)       += numaq.o
37 c-obj-$(CONFIG_X86_SUMMIT_NUMA) += summit.o
38 c-obj-$(CONFIG_MODULES)         += module.o
39 c-obj-y                         += sysenter.o
40 obj-y                           += vsyscall.o
41 c-obj-$(CONFIG_ACPI_SRAT)       += srat.o
42 c-obj-$(CONFIG_HPET_TIMER)      += time_hpet.o
43 c-obj-$(CONFIG_EFI)             += efi.o efi_stub.o
44 c-obj-$(CONFIG_EARLY_PRINTK)    += early_printk.o
45
46 EXTRA_AFLAGS   := -traditional
47
48 c-obj-$(CONFIG_SCx200)          += scx200.o
49
50 # vsyscall.o contains the vsyscall DSO images as __initdata.
51 # We must build both images before we can assemble it.
52 # Note: kbuild does not track this dependency due to usage of .incbin
53 $(obj)/vsyscall.o: $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so
54 targets += $(foreach F,int80 sysenter,vsyscall-$F.o vsyscall-$F.so)
55 targets += vsyscall.lds
56
57 # The DSO images are built using a special linker script.
58 quiet_cmd_syscall = SYSCALL $@
59       cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \
60                           -Wl,-T,$(filter-out FORCE,$^) -o $@
61
62 export CPPFLAGS_vsyscall.lds += -P -C -U$(ARCH)
63
64 vsyscall-flags = -m32 -shared -s -Wl,-soname=linux-gate.so.1
65 SYSCFLAGS_vsyscall-sysenter.so  = $(vsyscall-flags)
66 SYSCFLAGS_vsyscall-int80.so     = $(vsyscall-flags)
67
68 $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so: \
69 $(obj)/vsyscall-%.so: $(obj)/vsyscall.lds \
70                  $(obj)/vsyscall-%.o $(obj)/vsyscall-note.o FORCE
71         $(call if_changed,syscall)
72
73 # We also create a special relocatable object that should mirror the symbol
74 # table and layout of the linked DSO.  With ld -R we can then refer to
75 # these symbols in the kernel code rather than hand-coded addresses.
76 extra-y += vsyscall-syms.o
77 $(obj)/built-in.o: $(obj)/vsyscall-syms.o
78 $(obj)/built-in.o: ld_flags += -R $(obj)/vsyscall-syms.o
79
80 $(obj)/vsyscall.lds: $(obj)/vsyscall.lds.S
81
82 $(obj)/vsyscall.lds.S:
83         @ln -fsn $(srctree)/arch/i386/kernel/$(notdir $@) $@
84
85 SYSCFLAGS_vsyscall-syms.o = -m32 -r
86 $(obj)/vsyscall-syms.o: $(obj)/vsyscall.lds \
87                  $(obj)/vsyscall-sysenter.o $(obj)/vsyscall-note.o FORCE
88         $(call if_changed,syscall)
89
90 c-link  := init_task.o
91 s-link  := vsyscall-int80.o vsyscall-sysenter.o vsyscall-sigreturn.o # \
92                 # vsyscall-note.o MEF: looks like this should not be here.
93
94 $(patsubst %.o,$(obj)/%.c,$(c-obj-y) $(c-link)) $(patsubst %.o,$(obj)/%.S,$(s-obj-y) $(s-link)):
95         @ln -fsn $(srctree)/arch/i386/kernel/$(notdir $@) $@
96
97 $(obj)/vsyscall-int80.S: $(obj)/vsyscall-sigreturn.S
98
99 obj-y   += $(c-obj-y) $(s-obj-y)
100
101 clean-files += $(patsubst %.o,%.c,$(c-obj-y) $(c-obj-) $(c-link))
102 clean-files += $(patsubst %.o,%.S,$(s-obj-y) $(s-obj-) $(s-link))