46 lines
1.1 KiB
Makefile
46 lines
1.1 KiB
Makefile
#
|
|
# create a compressed vmlinuz image from the binary vmlinux.bin file
|
|
#
|
|
target = $(target_compressed_dir)
|
|
src = $(src_compressed_dir)
|
|
|
|
CC = gcc-cris -melf $(LINUXINCLUDE)
|
|
CFLAGS = -O2
|
|
LD = ld-cris
|
|
OBJCOPY = objcopy-cris
|
|
OBJCOPYFLAGS = -O binary --remove-section=.bss
|
|
OBJECTS = $(target)/head.o $(target)/misc.o
|
|
|
|
# files to compress
|
|
SYSTEM = $(objtree)/vmlinux.bin
|
|
|
|
all: $(target_compressed_dir)/vmlinuz
|
|
|
|
$(target)/decompress.bin: $(OBJECTS)
|
|
$(LD) -T $(src)/decompress.ld -o $(target)/decompress.o $(OBJECTS)
|
|
$(OBJCOPY) $(OBJCOPYFLAGS) $(target)/decompress.o $(target)/decompress.bin
|
|
|
|
# Create vmlinuz image in top-level build directory
|
|
$(target_compressed_dir)/vmlinuz: $(target) piggy.img $(target)/decompress.bin
|
|
@echo " COMPR vmlinux.bin --> vmlinuz"
|
|
@cat $(target)/decompress.bin piggy.img > $(target_compressed_dir)/vmlinuz
|
|
@rm -f piggy.img
|
|
|
|
$(target)/head.o: $(src)/head.S
|
|
$(CC) -D__ASSEMBLY__ -traditional -c $< -o $@
|
|
|
|
$(target)/misc.o: $(src)/misc.c
|
|
$(CC) -D__KERNEL__ -c $< -o $@
|
|
|
|
# gzip the kernel image
|
|
|
|
piggy.img: $(SYSTEM)
|
|
@cat $(SYSTEM) | gzip -f -9 > piggy.img
|
|
|
|
$(target):
|
|
mkdir -p $(target)
|
|
|
|
clean:
|
|
rm -f piggy.img $(objtree)/vmlinuz
|
|
|