#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...

.S.o:
	$(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -c $< -o $*.o

all: kernel.o head.o init_task.o

O_TARGET := kernel.o
O_OBJS   := chead.o entry.o ptrace.o setup.o irq.o process.o \
	    resource.o signal.o time.o traps.o sys_l4_i386.o \
	    unimpl.o
OX_OBJS  := i386_ksyms.o sched.o vm86.o

ifdef CONFIG_L4_SIDLE
O_OBJS += l4_idle.o
else
O_OBJS += dispatch.o
endif

ifdef CONFIG_PCI
O_OBJS += bios32.o
endif

ifeq ($(CONFIG_X86_CPUID),y)
OX_OBJS += cpuid.o
else
  ifeq ($(CONFIG_X86_CPUID),m)
  MX_OBJS += cpuid.o
  endif
endif

ifdef CONFIG_L4_V2
L4LIB_DIR = $(L4_DIR)/lib/x86_586/l4v2
L4INC_DIRS = -I$(L4_DIR)/include/x86/l4v2
else
L4LIB_DIR = $(L4_DIR)/lib/x86_586/l4x0
L4INC_DIRS = -I$(L4_DIR)/include/x86/l4x0
endif

L4INC_DIRS += -I$(L4_DIR)/include/x86 \
              -I$(L4_DIR)/include


ifdef CONFIG_L4_OMEGA0
O_OBJS += omega0_helper.o
CFLAGS_irq.o = $(L4INC_DIRS)
CFLAGS_omega0_helper.o = $(L4INC_DIRS)

EXTRA_LIBS = omega0
EXTRA_LDFLAGS=-uomega0_request -uomega0_attach
endif

ifdef CONFIG_L4_DROPSCON
EXTRA_LIBS += dropscon con constream-server
EXTRA_LDFLAGS+=-udrops_con
endif

ifdef CONFIG_L4_NAMES
EXTRA_LIBS += names
endif

ifneq ($(CONFIG_L4_NAMES)$(CONFIG_L4_DROPSCON)$(CONFIG_L4_OMEGA0),)
EXTRA_LDFLAGS+=-L$(L4LIB_DIR) $(addprefix -l,$(EXTRA_LIBS))
kernel.o: $(addsuffix .a, $(addprefix $(L4LIB_DIR)/lib,$(EXTRA_LIBS)))
endif

head.o: head.S $(TOPDIR)/include/linux/tasks.h
	$(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -c $*.S -o $*.o


l4_idle.o: l4_idle.S
	$(CC) -D__ASSEMBLY__ -traditional -c $*.S -o $*.o

# No mca, mtrr, apm, smp, apic

include $(TOPDIR)/Rules.make
