Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1826489
  • 博文数量: 286
  • 博客积分: 3713
  • 博客等级: 少校
  • 技术积分: 2275
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 09:47
个人简介

http://blog.chinaunix.net/uid/16979052.html

文章分类

全部博文(286)

文章存档

2018年(1)

2017年(16)

2016年(9)

2015年(17)

2014年(15)

2013年(112)

2012年(116)

分类: LINUX

2012-06-28 08:14:05

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) |
0

上一篇:kernel/kernel.ld

下一篇:kernel/main.c

给主人留下些什么吧!~~