1# 2# powerpc common makefile 3# 4# Authors: Andrew Jones <drjones@redhat.com> 5# 6 7tests-common = \ 8 $(TEST_DIR)/selftest.elf \ 9 $(TEST_DIR)/spapr_hcall.elf \ 10 $(TEST_DIR)/rtas.elf \ 11 $(TEST_DIR)/emulator.elf \ 12 $(TEST_DIR)/tm.elf 13 14tests-all = $(tests-common) $(tests) 15all: $(TEST_DIR)/boot_rom.bin $(tests-all) 16 17################################################################## 18 19CFLAGS += -std=gnu99 20CFLAGS += -ffreestanding 21CFLAGS += -Wextra 22CFLAGS += -O2 23CFLAGS += -I lib -I lib/libfdt 24CFLAGS += -Wa,-mregnames 25 26# We want to keep intermediate files 27.PRECIOUS: %.o 28 29asm-offsets = lib/$(ARCH)/asm-offsets.h 30include scripts/asm-offsets.mak 31 32cflatobjs += lib/util.o 33cflatobjs += lib/alloc.o 34cflatobjs += lib/devicetree.o 35cflatobjs += lib/powerpc/io.o 36cflatobjs += lib/powerpc/hcall.o 37cflatobjs += lib/powerpc/setup.o 38cflatobjs += lib/powerpc/rtas.o 39cflatobjs += lib/powerpc/processor.o 40cflatobjs += lib/powerpc/handlers.o 41cflatobjs += lib/powerpc/smp.o 42 43FLATLIBS = $(libcflat) $(LIBFDT_archive) 44%.elf: CFLAGS += $(arch_CFLAGS) 45%.elf: LDFLAGS = $(arch_LDFLAGS) -nostdlib -pie -n 46%.elf: %.o $(FLATLIBS) powerpc/flat.lds $(cstart.o) $(reloc.o) 47 $(CC) $(CFLAGS) -c -o $(@:.elf=.aux.o) lib/auxinfo.c -DPROGNAME=\"$@\" 48 $(LD) $(LDFLAGS) -o $@ \ 49 -T powerpc/flat.lds --build-id=none \ 50 $(filter %.o, $^) $(FLATLIBS) $(@:.elf=.aux.o) 51 $(RM) $(@:.elf=.aux.o) 52 @echo -n Checking $@ for unsupported reloc types... 53 @if $(OBJDUMP) -R $@ | grep R_ | grep -v R_PPC64_RELATIVE; then \ 54 false; \ 55 else \ 56 echo " looks good."; \ 57 fi 58 59$(TEST_DIR)/boot_rom.bin: $(TEST_DIR)/boot_rom.elf 60 dd if=/dev/zero of=$@ bs=256 count=1 61 $(OBJCOPY) -O binary $^ $@.tmp 62 cat $@.tmp >> $@ 63 $(RM) $@.tmp 64 65$(TEST_DIR)/boot_rom.elf: CFLAGS = -mbig-endian 66$(TEST_DIR)/boot_rom.elf: $(TEST_DIR)/boot_rom.o 67 $(LD) -EB -nostdlib -Ttext=0x100 --entry=start --build-id=none -o $@ $< 68 69powerpc_clean: libfdt_clean asm_offsets_clean 70 $(RM) $(TEST_DIR)/*.{o,elf} $(TEST_DIR)/boot_rom.bin \ 71 $(TEST_DIR)/.*.d lib/powerpc/.*.d 72 73generated-files = $(asm-offsets) 74$(tests-all:.elf=.o) $(cstart.o) $(cflatobjs): $(generated-files) 75