| # ***************************************************************************** | |
| # * Copyright (c) 2004, 2011 IBM Corporation | |
| # * All rights reserved. | |
| # * This program and the accompanying materials | |
| # * are made available under the terms of the BSD License | |
| # * which accompanies this distribution, and is available at | |
| # * http://www.opensource.org/licenses/bsd-license.php | |
| # * | |
| # * Contributors: | |
| # * IBM Corporation - initial implementation | |
| # ****************************************************************************/ | |
| include $(TOPCMNDIR)/make.rules | |
| SNKDIR = $(TOPCMNDIR)/clients/net-snk | |
| CFLAGS += -fno-builtin -I$(LIBCMNDIR)/libc/include | |
| CFLAGS += -I$(SNKDIR)/include -I. $(CPUARCHDEF) | |
| CFLAGS += -I$(INCLBRDDIR) -I$(INCLCMNDIR) -I$(INCLCMNDIR)/$(CPUARCH) | |
| CFLAGS += -O2 -msoft-float -Wa,-mregnames $(RELEASE) | |
| OBJS = $(SNKDIR)/kernel/kernel.o | |
| OBJS += $(SNKDIR)/oflib/oflib.o | |
| OBJS += $(SNKDIR)/libc/time/timer.o | |
| OBJS += entry.o main.o of.elf takeover.o | |
| OBJS += $(LIBCMNDIR)/libelf.a $(LIBCMNDIR)/libc.a | |
| %.o: %.S | |
| $(CC) $(CFLAGS) -c $^ | |
| all: takeover.elf | |
| takeover.elf: ppc32wrap.o takeover.elf32 | |
| @echo " ====== Building $@ ======" | |
| $(LD) -N -melf32ppclinux -static -nostdlib \ | |
| -Ttext=0x400000 -Tdata=0x400100 \ | |
| $(LDFLAGS) $^ -o $@ | |
| takeover.elf64: entry.o main.o takeover.o $(SNKDIR)/libc/time/timer.o of.elf | |
| $(MAKE) -C $(LIBCMNDIR) libc | |
| $(MAKE) -C $(CLIENTSDIR) | |
| $(LD) $(LDFLAGS) -o $@ -Tclient.lds $(OBJS) | |
| of.elf: ../../boot_rom.bin | |
| $(OBJCOPY) --input-target=binary --binary-architecture=powerpc -O elf64-powerpc $< $@ | |
| takeover.elf32: takeover.elf64 | |
| $(OBJCOPY) -O binary $^ takeover.tmp | |
| $(OBJCOPY) --input-target=binary --binary-architecture=powerpc -O elf32-powerpc takeover.tmp $@ | |
| ppc32wrap.o: ppc32wrap.S | |
| $(CROSS)gcc -m32 $(CFLAGS) -c $< -o $@ | |
| clean distclean: | |
| $(MAKE) -C $(LIBCMNDIR) $@ | |
| $(MAKE) -C $(CLIENTSDIR) $@ | |
| $(RM) *.o *.bin *.elf | |
| $(RM) takeover.elf32 takeover.elf64 takeover.tmp | |
| %.o: %.oco | |
| cp -f $< $@ |