
CC      = gcc
LD      = ld
RM      = rm -f
KERN_VER = 2.6
MARCH   = i586
COPTS   = -O
KERNDIR = /usr/src/linux-${KERN_VER}
INCDIR  = ${KERNDIR}/include
INCLUDES  = -I${INCDIR} -I${INCDIR}/asm-i386/mach-default -I/usr/include
CFLAGS  = -Wall $(COPTS) -D__KERNEL__ -DMODULE ${INCLUDES} -march=${MARCH} \
	-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing \
	-fno-common -mpreferred-stack-boundary=2
MODPOST = ${KERNDIR}/scripts/modpost
TARGET = pcmem
#CFLAGS  -fno_builtin -nostdlib \

all: ${TARGET}.ko test

${TARGET}.ko: ${TARGET}.o ${TARGET}.mod.o
	$(LD) -m elf_i386 -r -o ${TARGET}.ko ${TARGET}.o ${TARGET}.mod.o

${TARGET}.mod.o: ${TARGET}.mod.c
	$(CC) -Wp,-MD,.${TARGET}.mod.o.d ${CFLAGS} -fomit-frame-pointer -c -o ${TARGET}.mod.o ${TARGET}.mod.c

${TARGET}.mod.c: ${TARGET}.o
	$(MODPOST) ${TARGET}.o

${TARGET}.o: pcmem.c

test:	test.c
	gcc -o test test.c

.c.o:
	$(CC) -Wp,-MD,.${TARGET}.o.d ${CFLAGS} \
	-fomit-frame-pointer -nostdinc -iwithprefix include \
	-DKBUILD_BASENAME=${TARGET} -DKBUILD_MODNAME=${TARGET} -c $<

clean:
	rm -f *.o *.ko *.mod.c
