^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # arch/alpha/boot/Makefile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) # This file is subject to the terms and conditions of the GNU General Public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) # License. See the file "COPYING" in the main directory of this archive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) # for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) # Copyright (C) 1994 by Linus Torvalds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) hostprogs := tools/mkbb tools/objstrip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) targets := vmlinux.gz vmlinux \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) vmlinux.nh tools/lxboot tools/bootlx tools/bootph \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) tools/bootpzh bootloader bootpheader bootpzheader
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) OBJSTRIP := $(obj)/tools/objstrip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) # SRM bootable image. Copy to offset 512 of a partition.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) $(obj)/tools/mkbb $@ $(obj)/tools/lxboot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) @echo ' Bootimage $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) # BOOTP bootable image. Define INITRD during make to append initrd image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) ifdef INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) cat $(INITRD) >> $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) # Compressed kernel BOOTP bootable image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) # Define INITRD during make to append initrd image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) ifdef INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) cat $(INITRD) >> $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) # Compressed kernel image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) $(obj)/vmlinux.gz: $(obj)/vmlinux FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) $(call if_changed,gzip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) @echo ' Kernel $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) $(obj)/main.o: $(obj)/ksize.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) $(obj)/bootp.o: $(obj)/ksize.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) $(obj)/bootpz.o: $(obj)/kzsize.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) ifdef INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) [ -f $(INITRD) ] || exit 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) cmp -s $@T $@ || mv -f $@T $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) rm -f $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) ifdef INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) [ -f $(INITRD) ] || exit 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) cmp -s $@T $@ || mv -f $@T $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) rm -f $@T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) quiet_cmd_strip = STRIP $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) cmd_strip = $(STRIP) -o $@ $<
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) $(obj)/vmlinux: vmlinux FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) $(call if_changed,strip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) quiet_cmd_objstrip = OBJSTRIP $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) OSFLAGS_vmlinux.nh := -v
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) OSFLAGS_lxboot := -p
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) OSFLAGS_bootlx := -vb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) OSFLAGS_bootph := -vb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) OSFLAGS_bootpzh := -vb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) $(call if_changed,objstrip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) $(call if_changed,gzip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) $(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) $(call if_changed,objstrip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) $(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) $(call if_changed,objstrip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) $(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) $(call if_changed,objstrip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) $(call if_changed,objstrip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) LDFLAGS_bootloader := -static -T # -N -relax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) LDFLAGS_bootloader := -static -T # -N -relax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) LDFLAGS_bootpheader := -static -T # -N -relax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) LDFLAGS_bootpzheader := -static -T # -N -relax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) OBJ_bootlx := $(obj)/head.o $(obj)/stdio.o $(obj)/main.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) OBJ_bootph := $(obj)/head.o $(obj)/stdio.o $(obj)/bootp.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) OBJ_bootpzh := $(obj)/head.o $(obj)/stdio.o $(obj)/bootpz.o $(obj)/misc.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) $(call if_changed,ld)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) $(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) $(call if_changed,ld)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) $(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) $(call if_changed,ld)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) $(obj)/misc.o: lib/inflate.c