ifndef KERNEL_DIR KERNEL_DIR = /usr/src/linux endif include $(KERNEL_DIR)/.config ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) CPPFLAGS += -D__KERNEL__ -DMODULE -I$(KERNEL_DIR)/include -I./include CFLAGS += -Wall -Wstrict-prototypes -O1 ifeq ($(ARCH), ppc) CFLAGS += -msoft-float -ffixed-r2 -mmultiple -mstring endif ifdef ARM CROSS_COMPILE = arm-linux- AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld CC = $(CROSS_COMPILE)gcc AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump endif OBJS = cbs.o dispatch.o hooks.o init.o ifdef PXA250 ARCH = pxa250 CFLAGS += -fomit-frame-pointer OBJS += pxa250-power.o endif ifdef DEBUG CPPFLAGS += -D__CBS_DEBUG__ endif ifdef LOG CPPFLAGS += -I$(LOG)/include -D__LOGGER__ endif ifdef PROF CPPFLAGS += -D__PROFILE__ endif ################### GRUB flags ifdef GRUB CPPFLAGS += -D__GRUB__ endif ifdef GRUB_DEBUG CPPFLAGS += -D__GRUB_DEBUG__ endif ifdef GRUB_EXTRA_BANDWIDTH CPPFLAGS += -D__GRUB_EXTRA_BANDWIDTH__ endif ifdef GRUB_PWR CPPFLAGS += -D__GRUB_PWR__ endif ################## End of GRUB flags ifdef PRECISE_ALLOC CPPFLAGS += -D__SLEEP__ endif ifdef HRT OBJS +=hrt.o else OBJS +=timers.o endif ifdef TRACE OBJS +=trace.o CPPFLAGS += -I$(TRACE)/include -D__CBS_TRACE__ endif ifdef MULTI CPPFLAGS += -D__MULTITASK__ endif ifdef PROC CPPFLAGS += -D__PROC_FS__ OBJS += cbs_proc_fs.o endif all: include/time.h cbs_sched.o include/time.h: include/$(ARCH)-time.h ln -s $(ARCH)-time.h include/time.h cbs_sched.o: $(OBJS) $(LD) -r $^ -o $@ load: all sudo rmmod cbs_sched; sudo insmod cbs_sched.o unload: all sudo rmmod cbs_sched clean: -rm -f *.o -rm -f include/time.h timers.s: timers.c $(CC) $(CPPFLAGS) $(CFLAGS) -S timers.c