Back to home page

OSCL-LXR

 
 

    


0001 #
0002 # arch/alpha/boot/Makefile
0003 #
0004 # This file is subject to the terms and conditions of the GNU General Public
0005 # License.  See the file "COPYING" in the main directory of this archive
0006 # for more details.
0007 #
0008 # Copyright (C) 1994 by Linus Torvalds
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 # SRM bootable image.  Copy to offset 512 of a partition.
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 # BOOTP bootable image.  Define INITRD during make to append initrd image.
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 # Compressed kernel BOOTP bootable image.
0034 # Define INITRD during make to append initrd image.
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 # Compressed kernel image
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 # -N -relax
0103 LDFLAGS_bootloader   := -static -T # -N -relax
0104 LDFLAGS_bootpheader  := -static -T # -N -relax
0105 LDFLAGS_bootpzheader := -static -T # -N -relax
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