0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 hostprogs := tools/mkbb tools/objstrip
0012 targets := vmlinux.gz vmlinux \
0013 vmlinux.nh tools/lxboot tools/bootlx tools/bootph \
0014 tools/bootpzh bootloader bootpheader bootpzheader
0015 OBJSTRIP := $(obj)/tools/objstrip
0016
0017 KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include
0018 BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
0019
0020
0021 $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh
0022 ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@
0023 $(obj)/tools/mkbb $@ $(obj)/tools/lxboot
0024 @echo ' Bootimage $@ is ready'
0025
0026
0027 $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh
0028 cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@
0029 ifdef INITRD
0030 cat $(INITRD) >> $@
0031 endif
0032
0033
0034
0035 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz
0036 cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@
0037 ifdef INITRD
0038 cat $(INITRD) >> $@
0039 endif
0040
0041
0042 $(obj)/vmlinux.gz: $(obj)/vmlinux FORCE
0043 $(call if_changed,gzip)
0044 @echo ' Kernel $@ is ready'
0045
0046 $(obj)/main.o: $(obj)/ksize.h
0047 $(obj)/bootp.o: $(obj)/ksize.h
0048 $(obj)/bootpz.o: $(obj)/kzsize.h
0049
0050 $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE
0051 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
0052 ifdef INITRD
0053 [ -f $(INITRD) ] || exit 1
0054 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
0055 endif
0056 cmp -s $@T $@ || mv -f $@T $@
0057 rm -f $@T
0058
0059 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE
0060 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
0061 echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T
0062 ifdef INITRD
0063 [ -f $(INITRD) ] || exit 1
0064 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
0065 endif
0066 cmp -s $@T $@ || mv -f $@T $@
0067 rm -f $@T
0068
0069 quiet_cmd_strip = STRIP $@
0070 cmd_strip = $(STRIP) -o $@ $<
0071
0072 $(obj)/vmlinux: vmlinux FORCE
0073 $(call if_changed,strip)
0074
0075 quiet_cmd_objstrip = OBJSTRIP $@
0076 cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@
0077
0078 OSFLAGS_vmlinux.nh := -v
0079 OSFLAGS_lxboot := -p
0080 OSFLAGS_bootlx := -vb
0081 OSFLAGS_bootph := -vb
0082 OSFLAGS_bootpzh := -vb
0083
0084 $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE
0085 $(call if_changed,objstrip)
0086
0087 $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE
0088 $(call if_changed,gzip)
0089
0090 $(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE
0091 $(call if_changed,objstrip)
0092
0093 $(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE
0094 $(call if_changed,objstrip)
0095
0096 $(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE
0097 $(call if_changed,objstrip)
0098
0099 $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE
0100 $(call if_changed,objstrip)
0101
0102 LDFLAGS_bootloader := -static -T
0103 LDFLAGS_bootloader := -static -T
0104 LDFLAGS_bootpheader := -static -T
0105 LDFLAGS_bootpzheader := -static -T
0106
0107 OBJ_bootlx := $(obj)/head.o $(obj)/stdio.o $(obj)/main.o
0108 OBJ_bootph := $(obj)/head.o $(obj)/stdio.o $(obj)/bootp.o
0109 OBJ_bootpzh := $(obj)/head.o $(obj)/stdio.o $(obj)/bootpz.o $(obj)/misc.o
0110
0111 $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE
0112 $(call if_changed,ld)
0113
0114 $(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE
0115 $(call if_changed,ld)
0116
0117 $(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE
0118 $(call if_changed,ld)
0119
0120 $(obj)/misc.o: lib/inflate.c