90 lines
2.7 KiB
Makefile
90 lines
2.7 KiB
Makefile
|
# *****************************************************************************
|
||
|
# * 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
|
||
|
# ****************************************************************************/
|
||
|
|
||
|
include ../Makefile.dirs
|
||
|
|
||
|
include $(TOPBRDDIR)/config
|
||
|
include $(TOPCMNDIR)/make.rules
|
||
|
|
||
|
|
||
|
LDFLAGS = -nostdlib
|
||
|
CPPFLAGS = -I. -I$(LIBCMNDIR)/libc/include -I$(LIBCMNDIR)/libipmi -I$(INCLBRDDIR) \
|
||
|
-I$(INCLCMNDIR) -I$(RTASCMNDIR) -I$(INCLCMNDIR)/$(CPUARCH)
|
||
|
ASFLAGS = -Wa,-mregnames $(FLAG)
|
||
|
CFLAGS += -Wall -Wextra -O2 -msoft-float -ffreestanding $(FLAG)
|
||
|
|
||
|
# Board specific RTAS files:
|
||
|
BOARD_SRC_ASM =
|
||
|
BOARD_SRC_C = rtas_flash.c rtas_board.c rtas_pci.c \
|
||
|
rtas_out.c rtas_table.c
|
||
|
BOARD_SRCS = $(BOARD_SRC_ASM) $(BOARD_SRC_C)
|
||
|
BOARD_OBJ = $(BOARD_SRC_ASM:%.S=%.o) $(BOARD_SRC_C:%.c=%.o) $(BOARD_OCO:%.oco=%.o)
|
||
|
BOARD_OCO = i2c_bmc.oco ipmi_oem.oco
|
||
|
|
||
|
|
||
|
# Common RTAS files (from $(RTASCMNDIR) directory):
|
||
|
RTAS_SRC_ASM = rtas_entry.S rtas_common.S reloc.S
|
||
|
RTAS_SRC_C = rtas_call.c
|
||
|
RTAS_SRCS = $(RTAS_SRC_ASM) $(RTAS_SRC_C)
|
||
|
RTAS_OBJ = $(RTAS_SRC_ASM:%.S=%.o) $(RTAS_SRC_C:%.c=%.o)
|
||
|
|
||
|
RTAS_FLASH_SRC = block_lists.c
|
||
|
RTAS_FLASH_OBJ = $(RTAS_FLASH_SRC:%.c=$(RTASCMNDIR)/flash/%.o)
|
||
|
|
||
|
# Additional object files:
|
||
|
EXTRA_OBJ = ../llfw/hw.o ../../lib/libc.a ../../lib/libipmi.a
|
||
|
|
||
|
OBJS = $(RTAS_OBJ:%=$(RTASCMNDIR)/%) $(BOARD_OBJ) $(EXTRA_OBJ) \
|
||
|
$(RTAS_FLASH_OBJ)
|
||
|
|
||
|
|
||
|
all: Makefile.dep rtas.bin
|
||
|
|
||
|
rtas.bin: rtas
|
||
|
$(OBJCOPY) -O binary $< $@
|
||
|
|
||
|
rtas: $(RTASCMNDIR)/rtas.lds $(OBJS) reloc_table.o
|
||
|
$(LD) $(LDFLAGS) -o $@ -T $(RTASCMNDIR)/rtas.lds $(OBJS) reloc_table.o
|
||
|
|
||
|
reloc_table.o: $(TOOLSDIR)/gen_reloc_table $(OBJS)
|
||
|
$(TOOLSDIR)/create_reloc_table.sh --ld "$(ONLY_LD)" --ldflags "$(LDFLAGS)" \
|
||
|
--lds "$(RTASCMNDIR)/rtas.lds" --objcopy "$(OBJCOPY)" $(OBJS)
|
||
|
|
||
|
$(TOOLSDIR)/gen_reloc_table: $(TOOLSDIR)/gen_reloc_table.c
|
||
|
$(MAKE) -C $(TOOLSDIR) gen_reloc_table
|
||
|
|
||
|
../../lib/libc.a:
|
||
|
$(MAKE) -C ../../lib
|
||
|
|
||
|
clean:
|
||
|
$(MAKE) -C ../../lib clean
|
||
|
rm -f $(OBJS) reloc_table.o rtas rtas.bin
|
||
|
|
||
|
distclean : clean
|
||
|
rm -f Makefile.dep
|
||
|
|
||
|
|
||
|
# Rules for creating the dependency file:
|
||
|
depend:
|
||
|
$(CC) -MM $(CPPFLAGS) $(CFLAGS) $(BOARD_SRCS) > Makefile.dep
|
||
|
$(CC) -MM $(CPPFLAGS) $(CFLAGS) $(RTAS_SRCS:%=$(RTASCMNDIR)/%) \
|
||
|
| sed -e '/:/s,^,$(RTASCMNDIR)/,' >> Makefile.dep
|
||
|
Makefile.dep:
|
||
|
$(MAKE) depend
|
||
|
|
||
|
# Include dependency file if available:
|
||
|
ifneq (,$(wildcard Makefile.dep))
|
||
|
include Makefile.dep
|
||
|
endif
|
||
|
%.o: %.oco
|
||
|
cp -f $< $@
|