90 lines
2.9 KiB
PHP
90 lines
2.9 KiB
PHP
|
# *****************************************************************************
|
||
|
# * 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
|