diff options
Diffstat (limited to 'package/aboot/src/Makefile')
-rw-r--r-- | package/aboot/src/Makefile | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/package/aboot/src/Makefile b/package/aboot/src/Makefile new file mode 100644 index 000000000..12450e735 --- /dev/null +++ b/package/aboot/src/Makefile @@ -0,0 +1,150 @@ +# +# aboot/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) 1995, 1996 by David Mosberger (davidm@cs.arizona.edu) +# + +# location of linux kernel sources (must be absolute path): +KSRC = /usr/src/linux +VMLINUX = $(KSRC)/vmlinux +VMLINUXGZ = $(KSRC)/arch/alpha/boot/vmlinux.gz + +# for userspace testing +#TESTING = yes + +# for boot testing +#CFGDEFS = -DDEBUG_ISO -DDEBUG_ROCK -DDEBUG_EXT2 -DDEBUG + +bindir = $(DESTDIR)/sbin +bootdir = $(DESTDIR)/boot + +export + +# +# There shouldn't be any need to change anything below this line. +# +TOP = $(shell pwd) +LOADADDR = 20000000 + +ifndef $($(CC)) +CC ?= gcc +endif + +ifeq ($(TESTING),) +override CPPFLAGS += $(CFGDEFS) -I$(TOP)/include +override CFLAGS += $(CPPFLAGS) -D__KERNEL__ -mcpu=ev4 -Os -Wall -fno-builtin -Wcast-align -mno-fp-regs -ffixed-8 -fno-builtin-printf +else +override CPPFLAGS += -DTESTING $(CFGDEFS) -I$(TOP)/include +override CFLAGS += $(CPPFLAGS) -O -g3 -Wall -D__KERNEL__ -ffixed-8 +endif + +ABOOT_LDFLAGS = -static -N -Taboot.lds +override ASFLAGS += $(CPPFLAGS) + + +.c.s: + $(CC) $(CFLAGS) -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) -c -o $*.o $< +.S.s: + $(CC) $(ASFLAGS) -D__ASSEMBLY__ -traditional -E -o $*.o $< +.S.o: + $(CC) $(ASFLAGS) -D__ASSEMBLY__ -traditional -c -o $*.o $< + +NET_OBJS = net.o +DISK_OBJS = disk.o fs/ext2.o fs/ufs.o fs/dummy.o fs/iso.o +ifeq ($(TESTING),) +ABOOT_OBJS = \ + head.o aboot.o cons.o utils.o \ + zip/misc.o zip/unzip.o zip/inflate.o +else +ABOOT_OBJS = aboot.o zip/misc.o zip/unzip.o zip/inflate.o +endif +LIBS = lib/libaboot.a + +all: diskboot net_aboot.nh + +diskboot: bootlx sdisklabel/sdisklabel sdisklabel/swriteboot \ + tools/e2writeboot tools/abootconf \ + tools/elfencap + +netboot: vmlinux.bootp + +bootloader.h: net_aboot.nh b2c + ./b2c net_aboot.nh bootloader.h bootloader + +netabootwrap: netabootwrap.c bootloader.h + $(CC) $@.c $(CFLAGS) -o $@ + + +bootlx: aboot tools/objstrip + tools/objstrip -vb aboot bootlx + +install-man: + make -C doc/man install + +install-man-gz: + make -C doc/man install-gz + +install: tools/abootconf tools/e2writeboot \ + sdisklabel/swriteboot + install -d $(bindir) $(bootdir) + install -c tools/abootconf $(bindir) + install -c tools/e2writeboot $(bindir) + install -c sdisklabel/swriteboot $(bindir) + install -c bootlx $(bootdir) + +installondisk: bootlx sdisklabel/swriteboot + sdisklabel/swriteboot -vf0 /dev/sda bootlx vmlinux.gz + +ifeq ($(TESTING),) +aboot: $(ABOOT_OBJS) $(DISK_OBJS) $(LIBS) + $(LD) $(ABOOT_LDFLAGS) $(ABOOT_OBJS) $(DISK_OBJS) -o $@ $(LIBS) +else +aboot: $(ABOOT_OBJS) $(DISK_OBJS) $(LIBS) + $(CC) $(ABOOT_OBJS) $(DISK_OBJS) -o $@ $(LIBS) +endif + +vmlinux.bootp: net_aboot.nh $(VMLINUXGZ) net_pad + cat net_aboot.nh $(VMLINUXGZ) net_pad > $@ + +net_aboot.nh: net_aboot tools/objstrip + $(CROSS)strip net_aboot + tools/objstrip -vb net_aboot $@ + +net_aboot: $(ABOOT_OBJS) $(ABOOT_OBJS) $(NET_OBJS) $(LIBS) + $(LD) $(ABOOT_LDFLAGS) $(ABOOT_OBJS) $(NET_OBJS) -o $@ $(LIBS) + +net_pad: + dd if=/dev/zero of=$@ bs=512 count=1 + +clean: sdisklabel/clean tools/clean lib/clean + rm -f aboot abootconf net_aboot net_aboot.nh net_pad vmlinux.bootp \ + $(ABOOT_OBJS) $(DISK_OBJS) $(NET_OBJS) bootlx \ + include/ksize.h vmlinux.nh b2c bootloader.h netabootwrap + +distclean: clean + find . -name \*~ | xargs rm -f + +lib/%: + make -C lib $* CPPFLAGS="$(CPPFLAGS)" TESTING="$(TESTING)" + +tools/%: + make -C tools $* CPPFLAGS="$(CPPFLAGS)" + +sdisklabel/%: + make -C sdisklabel $* CPPFLAGS="$(CPPFLAGS)" + +vmlinux.nh: $(VMLINUX) tools/objstrip + tools/objstrip -vb $(VMLINUX) vmlinux.nh + +include/ksize.h: vmlinux.nh + echo "#define KERNEL_SIZE `ls -l vmlinux.nh | awk '{print $$5}'` > $@ + +dep: |