117 lines
3.5 KiB
Makefile
117 lines
3.5 KiB
Makefile
|
#
|
||
|
# arch/alpha/boot/Makefile
|
||
|
#
|
||
|
# This file is subject to the terms and conditions of the GNU General Public
|
||
|
# License. See the file "COPYING" in the main directory of this archive
|
||
|
# for more details.
|
||
|
#
|
||
|
# Copyright (C) 1994 by Linus Torvalds
|
||
|
#
|
||
|
|
||
|
hostprogs-y := tools/mkbb tools/objstrip
|
||
|
targets := vmlinux.gz vmlinux \
|
||
|
vmlinux.nh tools/lxboot tools/bootlx tools/bootph \
|
||
|
tools/bootpzh bootloader bootpheader bootpzheader
|
||
|
OBJSTRIP := $(obj)/tools/objstrip
|
||
|
|
||
|
# SRM bootable image. Copy to offset 512 of a partition.
|
||
|
$(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh
|
||
|
( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@
|
||
|
$(obj)/tools/mkbb $@ $(obj)/tools/lxboot
|
||
|
@echo ' Bootimage $@ is ready'
|
||
|
|
||
|
# BOOTP bootable image. Define INITRD during make to append initrd image.
|
||
|
$(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh
|
||
|
cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@
|
||
|
ifdef INITRD
|
||
|
cat $(INITRD) >> $@
|
||
|
endif
|
||
|
|
||
|
# Compressed kernel BOOTP bootable image.
|
||
|
# Define INITRD during make to append initrd image.
|
||
|
$(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz
|
||
|
cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@
|
||
|
ifdef INITRD
|
||
|
cat $(INITRD) >> $@
|
||
|
endif
|
||
|
|
||
|
# Compressed kernel image
|
||
|
$(obj)/vmlinux.gz: $(obj)/vmlinux FORCE
|
||
|
$(call if_changed,gzip)
|
||
|
@echo ' Kernel $@ is ready'
|
||
|
|
||
|
$(obj)/main.o: $(obj)/ksize.h
|
||
|
$(obj)/bootp.o: $(obj)/ksize.h
|
||
|
$(obj)/bootpz.o: $(obj)/kzsize.h
|
||
|
|
||
|
$(obj)/ksize.h: $(obj)/vmlinux.nh FORCE
|
||
|
echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
|
||
|
ifdef INITRD
|
||
|
[ -f $(INITRD) ] || exit 1
|
||
|
echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
|
||
|
endif
|
||
|
cmp -s $@T $@ || mv -f $@T $@
|
||
|
rm -f $@T
|
||
|
|
||
|
$(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE
|
||
|
echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
|
||
|
echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T
|
||
|
ifdef INITRD
|
||
|
[ -f $(INITRD) ] || exit 1
|
||
|
echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
|
||
|
endif
|
||
|
cmp -s $@T $@ || mv -f $@T $@
|
||
|
rm -f $@T
|
||
|
|
||
|
quiet_cmd_strip = STRIP $@
|
||
|
cmd_strip = $(STRIP) -o $@ $<
|
||
|
|
||
|
$(obj)/vmlinux: vmlinux FORCE
|
||
|
$(call if_changed,strip)
|
||
|
|
||
|
quiet_cmd_objstrip = OBJSTRIP $@
|
||
|
cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@
|
||
|
|
||
|
OSFLAGS_vmlinux.nh := -v
|
||
|
OSFLAGS_lxboot := -p
|
||
|
OSFLAGS_bootlx := -vb
|
||
|
OSFLAGS_bootph := -vb
|
||
|
OSFLAGS_bootpzh := -vb
|
||
|
|
||
|
$(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE
|
||
|
$(call if_changed,objstrip)
|
||
|
|
||
|
$(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE
|
||
|
$(call if_changed,gzip)
|
||
|
|
||
|
$(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE
|
||
|
$(call if_changed,objstrip)
|
||
|
|
||
|
$(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE
|
||
|
$(call if_changed,objstrip)
|
||
|
|
||
|
$(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE
|
||
|
$(call if_changed,objstrip)
|
||
|
|
||
|
$(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE
|
||
|
$(call if_changed,objstrip)
|
||
|
|
||
|
LDFLAGS_bootloader := -static -uvsprintf -T #-N -relax
|
||
|
LDFLAGS_bootpheader := -static -uvsprintf -T #-N -relax
|
||
|
LDFLAGS_bootpzheader := -static -uvsprintf -T #-N -relax
|
||
|
|
||
|
OBJ_bootlx := $(obj)/head.o $(obj)/main.o
|
||
|
OBJ_bootph := $(obj)/head.o $(obj)/bootp.o
|
||
|
OBJ_bootpzh := $(obj)/head.o $(obj)/bootpz.o $(obj)/misc.o
|
||
|
|
||
|
$(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE
|
||
|
$(call if_changed,ld)
|
||
|
|
||
|
$(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE
|
||
|
$(call if_changed,ld)
|
||
|
|
||
|
$(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE
|
||
|
$(call if_changed,ld)
|
||
|
|
||
|
$(obj)/misc.o: lib/inflate.c
|