KERNELC := $(shell find kernel libc boot dev -name "*.c")
KERNELASM := $(shell find kernel boot -name "*.S")
EXE=vmlinux
CC = gcc
LD = ld
RM = rm
######################################################################
KERNELOBJ= $(KERNELASM:.S=.o) $(KERNELC:.c=.o)
ALLOBJ=$(KERNELOBJ)
######################################################################
DEBUGFLAGS=-DJOHNYIN_DBG -finline-functions -g
ASDEBUGFLAGS=-g
LDFLAGS=-T kernel/kernel.ld -Llib #-s #Strip all symbols
KNL_INC=-Iinclude
GCC_INC=-nostdinc -nostdlib
CCFLAGS+=-Wall
CCFLAGS+=-fno-builtin
CCFLAGS+=-nostdinc
CCFLAGS+=$(DEBUGFLAGS)
CCFLAGS+=$(GCC_INC)
CCFLAGS+=$(KNL_INC)
LIBS=#-lc -lalloc
ASFLAGS=$(GCC_INC) $(KNL_INC) $(ASDEBUGFLAGS) -W -D__ASSEMBLY__
######################################################################
.S.o:
$(CC) $(ASFLAGS) -c -o $@ $<
.c.o:
$(CC) $(CCFLAGS) -c -o $@ $<
######################################################################
# .PHONY ignores files named all
.PHONY : all
all: $(EXE)
$(EXE) : $(ALLOBJ)
$(LD) $(LDFLAGS) $(ALLOBJ) $(LIBS) -o $@
.PHONY : clean
clean:
-$(RM) $(ALLOBJ) $(EXE)
backup: clean
tar c . | bzip2 > ../`basename $(PWD)`-`date +%Y%m%d-%H%M`.tar.bz2
阅读(1188) | 评论(0) | 转发(0) |