Linux Makefile解析
linux makefile文件
/kernel/Makefile
例:
#
# Makefile for the FREAX-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).
#AR =gar
AS =gas
LD =gld
LDFLAGS =-s -x
CC =gcc
CFLAGS =-Wall -O -fstrength-reduce -fomit-frame-pointer -fcombine-regs \-finline-functions -mstring-insns -nostdinc -I../include
CPP =gcc -E -nostdinc -I../include.c.s:$(CC) $(CFLAGS) \-S -o $*.s $<
.s.o:$(AS) -c -o $*.o $<
.c.o:$(CC) $(CFLAGS) \-c -o $*.o $<OBJS = sched.o system_call.o traps.o asm.o fork.o \panic.o printk.o vsprintf.o tty_io.o console.o \keyboard.o rs_io.o hd.o sys.o exit.o serial.o \mktime.okernel.o: $(OBJS)$(LD) -r -o kernel.o $(OBJS)syncclean:rm -f core *.o *.a tmp_makefor i in *.c;do rm -f `basename $$i .c`.s;donedep:sed '/\#\#\# Dependencies/q' < Makefile > tmp_make(for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \$(CPP) -M $$i;done) >> tmp_makecp tmp_make Makefile### Dependencies:
console.s console.o : console.c ../include/linux/sched.h ../include/linux/head.h \../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \../include/linux/tty.h ../include/termios.h ../include/asm/io.h \../include/asm/system.h ..............