| 1 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 |
|
| 7 |
|
| 8 |
|
| 9 |
|
| 10 |
|
| 11 | hostprogs := tools/mkbb tools/objstrip
|
| 12 | targets := vmlinuz vmlinux \
|
| 13 | vmlinux.nh tools/lxboot tools/bootlx tools/bootph \
|
| 14 | tools/bootpzh bootloader bootpheader bootpzheader
|
| 15 | subdir- := compressed
|
| 16 | OBJSTRIP := $(obj)/tools/objstrip
|
| 17 |
|
| 18 | KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include
|
| 19 | BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
|
| 20 |
|
| 21 |
|
| 22 | $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh
|
| 23 | ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@
|
| 24 | $(obj)/tools/mkbb $@ $(obj)/tools/lxboot
|
| 25 | @echo ' Bootimage $@ is ready'
|
| 26 |
|
| 27 |
|
| 28 | $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh
|
| 29 | cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@
|
| 30 | ifdef INITRD
|
| 31 | cat $(INITRD) >> $@
|
| 32 | endif
|
| 33 |
|
| 34 |
|
| 35 |
|
| 36 | $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz
|
| 37 | cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@
|
| 38 | ifdef INITRD
|
| 39 | cat $(INITRD) >> $@
|
| 40 | endif
|
| 41 |
|
| 42 |
|
| 43 |
|
| 44 |
|
| 45 | $(obj)/compressed/vmlinux: vmlinux FORCE
|
| 46 | $(Q)$(MAKE) $(build)=$(obj)/compressed $@
|
| 47 |
|
| 48 | $(obj)/vmlinuz: $(obj)/compressed/vmlinux FORCE
|
| 49 | $(call if_changed,copy)
|
| 50 | @echo ' Kernel $@ is ready'
|
| 51 |
|
| 52 | $(obj)/main.o: $(obj)/ksize.h
|
| 53 | $(obj)/bootp.o: $(obj)/ksize.h
|
| 54 | $(obj)/bootpz.o: $(obj)/kzsize.h
|
| 55 |
|
| 56 | $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE
|
| 57 | echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
|
| 58 | ifdef INITRD
|
| 59 | [ -f $(INITRD) ] || exit 1
|
| 60 | echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
|
| 61 | endif
|
| 62 | cmp -s $@T $@ || mv -f $@T $@
|
| 63 | rm -f $@T
|
| 64 |
|
| 65 | $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE
|
| 66 | echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
|
| 67 | echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T
|
| 68 | ifdef INITRD
|
| 69 | [ -f $(INITRD) ] || exit 1
|
| 70 | echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
|
| 71 | endif
|
| 72 | cmp -s $@T $@ || mv -f $@T $@
|
| 73 | rm -f $@T
|
| 74 |
|
| 75 | quiet_cmd_strip = STRIP $@
|
| 76 | cmd_strip = $(STRIP) -o $@ $<
|
| 77 |
|
| 78 | $(obj)/vmlinux: vmlinux FORCE
|
| 79 | $(call if_changed,strip)
|
| 80 |
|
| 81 | quiet_cmd_objstrip = OBJSTRIP $@
|
| 82 | cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@
|
| 83 |
|
| 84 | OSFLAGS_vmlinux.nh := -v
|
| 85 | OSFLAGS_lxboot := -p
|
| 86 | OSFLAGS_bootlx := -vb
|
| 87 | OSFLAGS_bootph := -vb
|
| 88 | OSFLAGS_bootpzh := -vb
|
| 89 |
|
| 90 | $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE
|
| 91 | $(call if_changed,objstrip)
|
| 92 |
|
| 93 | $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE
|
| 94 | $(call if_changed,gzip)
|
| 95 |
|
| 96 | $(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE
|
| 97 | $(call if_changed,objstrip)
|
| 98 |
|
| 99 | $(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE
|
| 100 | $(call if_changed,objstrip)
|
| 101 |
|
| 102 | $(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE
|
| 103 | $(call if_changed,objstrip)
|
| 104 |
|
| 105 | $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE
|
| 106 | $(call if_changed,objstrip)
|
| 107 |
|
| 108 | LDFLAGS_bootloader := -static -T
|
| 109 | LDFLAGS_bootloader := -static -T
|
| 110 | LDFLAGS_bootpheader := -static -T
|
| 111 | LDFLAGS_bootpzheader := -static -T
|
| 112 |
|
| 113 | OBJ_bootlx := $(obj)/head.o $(obj)/stdio.o $(obj)/main.o
|
| 114 | OBJ_bootph := $(obj)/head.o $(obj)/stdio.o $(obj)/bootp.o
|
| 115 | OBJ_bootpzh := $(obj)/head.o $(obj)/stdio.o $(obj)/bootpz.o $(obj)/misc.o
|
| 116 |
|
| 117 | $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE
|
| 118 | $(call if_changed,ld)
|
| 119 |
|
| 120 | $(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE
|
| 121 | $(call if_changed,ld)
|
| 122 |
|
| 123 | $(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE
|
| 124 | $(call if_changed,ld)
|
| 125 |
|
| 126 | $(obj)/misc.o: lib/inflate.c
|