#
# arch/l4/kernel/arch-i386/Makefile
#

obj-y		:= dispatch.o entry.o i387.o ioport.o irq.o irq_l4.o \
		   ldt.o mach_setup.o pci-dma.o process.o ptrace.o reboot.o \
		   semaphore.o setup.o signal.o sys_i386.o time.o traps.o \
		   unimpl.o topology.o

obj-y			+= cpu/
obj-y			+= timers/
obj-$(CONFIG_ACPI_BOOT)	+= acpi.o
obj-$(CONFIG_MODULES)	+= module.o
obj-$(CONFIG_KPROBES)	+= kprobes.o

# -------------------------------------------
b		:= ../../../i386/kernel
ldt-y		:= $(b)/ldt.o
module-y	:= $(b)/module.o
pci-dma-y	:= $(b)/pci-dma.o
sys_i386-y	:= $(b)/sys_i386.o
semaphore-y	:= $(b)/semaphore.o
kprobes-y	:= $(b)/kprobes.o

topology-y	:= ../../../i386/kernel/topology.o

# get sigframe.h for signal.c
CFLAGS		+= -Iarch/i386/kernel

# -------------------------------------------
obj-y		+= upage.final.o

$(obj)/upage.final.o: $(obj)/upage.so

# get vsyscall-sigreturn.S for vsyscall-int80.S
AFLAGS		+= -Iarch/i386/kernel

$(obj)/vsyscall-int80.S: $(srctree)/arch/i386/kernel/vsyscall-int80.S
	@ln -sf $< $(obj)

$(obj)/vsyscall-note.S: $(srctree)/arch/i386/kernel/vsyscall-note.S
	@ln -sf $< $(obj)

targets		+= upage.o vsyscall-int80.o upage.so vsyscall-note.o

SYSCFLAGS_upage.so = -shared -s -Wl,-soname=linux-gate.so.1

quiet_cmd_upage = UPAGE   $@
      cmd_upage = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \
      		        -Wl,-T,$(filter-out FORCE,$^) -o $@

export CPPFLAGS_vsyscall.lds += -P -C -U$(ARCH)

$(obj)/upage.so: $(src)/upage.lds $(obj)/vsyscall-int80.o \
		 $(obj)/upage.o $(obj)/vsyscall-note.o FORCE
	$(call if_changed,upage)

extra-y += upage-syms.o
$(obj)/built-in.o: $(obj)/upage-syms.o
$(obj)/built-in.o: ld_flags += -R $(obj)/upage-syms.o

SYSCFLAGS_upage-syms.o = -r
$(obj)/upage-syms.o: $(src)/upage.lds $(obj)/vsyscall-int80.o \
		     $(obj)/upage.o $(obj)/vsyscall-note.o FORCE
	$(call if_changed,upage)
