summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/rtas/Makefile.inc
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/SLOF/rtas/Makefile.inc')
-rw-r--r--qemu/roms/SLOF/rtas/Makefile.inc89
1 files changed, 89 insertions, 0 deletions
diff --git a/qemu/roms/SLOF/rtas/Makefile.inc b/qemu/roms/SLOF/rtas/Makefile.inc
new file mode 100644
index 000000000..4297f86a9
--- /dev/null
+++ b/qemu/roms/SLOF/rtas/Makefile.inc
@@ -0,0 +1,89 @@
+# *****************************************************************************
+# * Copyright (c) 2004, 2008 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
+# ****************************************************************************/
+
+# Before including this Makefile, you should specify the following variables
+# in your Makefile:
+# - RTASCMNDIR : Points to the common RTAS directory
+# - RTASBRDDIR : Points to the board specific RTAS directory
+# - TOOLSDIR : Points to the common tools directory
+# - OBJS : A list with all object files that should be linked into rtas.bin
+# - BOARD_SRCS : A list with all board specific source code files
+# (needed for "make depend")
+
+
+LDFLAGS = -nostdlib
+CPPFLAGS += -I$(RTASBRDDIR) -I$(RTASCMNDIR) \
+ -I$(INCLCMNDIR) -I$(INCLBRDDIR) \
+ -I$(LIBCMNDIR)/libc/include \
+ -I$(INCLCMNDIR)/$(CPUARCH)
+ASFLAGS = -Wa,-mregnames $(FLAG)
+CFLAGS += -g -nostdinc -ffreestanding -Wall -Wextra -O2 -msoft-float \
+ -mno-altivec -mabi=no-altivec $(FLAG)
+
+# Common RTAS files:
+RTAS_SRC_ASM = reloc.S rtas_common.S rtas_entry.S rtas_term.S \
+ rtas_cpu.S rtas_flash_asm.S rtas_mem.S rtas_ras.S
+RTAS_SRC_C = rtas_call.c rtas_flash_c.c rtas_h8.c \
+ rtas_nvramlog.c rtas_sensor.c rtas_init.c \
+ rtas_flash_cfi.c
+RTAS_SRCS = $(RTAS_SRC_ASM) $(RTAS_SRC_C)
+RTAS_OBJ_ASM = $(RTAS_SRC_ASM:%.S=%.o)
+RTAS_OBJ_C = $(RTAS_SRC_C:%.c=%.o)
+
+# Common build rules:
+$(RTAS_OBJ_C):
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $(@:%.o=$(RTASCMNDIR)/%.c) -o $@
+
+$(RTAS_OBJ_ASM):
+ $(CC) $(CPPFLAGS) $(ASFLAGS) -c $(@:%.o=$(RTASCMNDIR)/%.S) -o $@
+
+$(TOOLSDIR)/gen_reloc_table: $(TOOLSDIR)/gen_reloc_table.c
+ $(MAKE) -C $(TOOLSDIR) gen_reloc_table
+
+
+# Rules for building rtas.bin:
+rtas.bin: rtas
+ $(OBJCOPY) -O binary $< $@
+
+rtas: $(RTASCMNDIR)/rtas.lds $(OBJS) reloc_table.o $(LIBCMNDIR)/libc.a
+ $(LD) $(LDFLAGS) -o $@ -T $(RTASCMNDIR)/rtas.lds $(OBJS) \
+ reloc_table.o $(LIBCMNDIR)/libc.a
+
+reloc_table.o: $(TOOLSDIR)/gen_reloc_table $(OBJS) $(LIBCMNDIR)/libc.a
+ $(TOOLSDIR)/create_reloc_table.sh --ld "$(ONLY_LD)" --ldflags "$(LDFLAGS)" \
+ --lds "$(RTASCMNDIR)/rtas.lds" --objcopy "$(OBJCOPY)" $(OBJS) $(LIBCMNDIR)/libc.a
+
+
+$(LIBCMNDIR)/libc.a:
+ $(MAKE) -C $(LIBCMNDIR) libc
+
+
+# Rules for cleaning up:
+clean_rtas:
+ rm -f $(OBJS) reloc_table.o rtas rtas.bin
+ rm -f $(RTASCMNDIR)/*~ $(RTASCMNDIR)/*.o
+
+distclean_rtas: clean_rtas
+ rm -f Makefile.dep
+
+
+# Rules for creating the dependency file:
+depend:
+ rm -f Makefile.dep
+ $(MAKE) Makefile.dep
+
+Makefile.dep: Makefile $(RTASCMNDIR)/Makefile.inc
+ $(CC) -MM $(CPPFLAGS) $(CFLAGS) $(RTAS_SRCS:%=$(RTASCMNDIR)/%) > Makefile.dep
+ $(CC) -MM $(CPPFLAGS) $(CFLAGS) $(BOARD_SRCS) >> Makefile.dep
+
+# Include dependency file if available:
+-include Makefile.dep