| # ***************************************************************************** | |
| # * 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 $< $@ |