source: trunk/softs/tsar_boot/Makefile @ 639

Last change on this file since 639 was 587, checked in by bouyer, 11 years ago

Add back version string print

File size: 3.6 KB
RevLine 
[411]1# let the user have a default configuration (ie for PLATFORM_DIR and SOCLIB)
2-include ./build.mk
3
[425]4MAKECMDGOALS ?= none
[293]5
[388]6ifneq ($(MAKECMDGOALS),$(filter $(MAKECMDGOALS),clean distclean clean-doc doc))
7  ifndef PLATFORM_DIR
8    $(error please define PLATFORM_DIR 'make PLATFORM_DIR=foo')
9  else
10    ifdef SOCLIB
11      DEFS+= -DSOCLIB_IOC
12      DTS=platform_soclib.dts
[586]13      $(info Make for $(PLATFORM_DIR), SocLib variant)
[388]14    else
15      DTS=platform_fpga.dts
[586]16      $(info Make for $(PLATFORM_DIR), FPGA variant)
[388]17    endif
18  endif
19endif
20
[293]21LD             := mipsel-unknown-elf-ld
22CC             := mipsel-unknown-elf-gcc
23AS             := mipsel-unknown-elf-as
24DU             := mipsel-unknown-elf-objdump
25RM             := rm -rf
26ECHO       := echo
27MKDIR      := mkdir
28DTC            := dtc
29HEXDUMP    := hexdump
[388]30DOXYGEN    := doxygen
[293]31
32BUILD_DIR  := build
33SRCS_DIR   := src
34INCS_DIR   := include
35
36# =============================================================================
37# Include files paths
38# =============================================================================
39
40INCLUDE    += -I. -I$(INCS_DIR) -I$(PLATFORM_DIR)
41
42# =============================================================================
43# Paths of sources in another directories
44# =============================================================================
45
46VPATH      += $(SRCS_DIR)
47VPATH      += $(PLATFORM_DIR)
48
49# =============================================================================
50# Object files
51# =============================================================================
52
[586]53CFLAGS     := -Wall                \
54              -mno-gpopt           \
55              -ffreestanding       \
56              -fomit-frame-pointer \
57              -mips32              \
58                      -ggdb                \
59              -mlong-calls         \
60              -Werror
[293]61
[586]62C_SRCS     := reset_elf_loader.c \
63              reset_ioc.c        \
64              reset_utils.c      \
65              reset_tty.c        \
66              reset_exception.c
[406]67
[293]68ifndef SOCLIB
[406]69  C_SRCS   += sdcard.c spi.c
[293]70endif
71
72S_SRCS     := reset.S
73
74OBJS       := $(subst .c,.o, $(notdir $(C_SRCS)))
75OBJS       += $(subst .S,.o, $(notdir $(S_SRCS)))
76OBJS       := $(addprefix $(BUILD_DIR)/, $(OBJS))
77
[586]78TARGET     := preloader.elf
[293]79
[425]80USE_DT     ?= 1
[293]81
82all: $(TARGET)
83
[587]84 $(BUILD_DIR)/version.o: $(BUILD_DIR) $(OBJS) version version.sh
85        $(ECHO) "[version.sh]"
86        ./version.sh > $(BUILD_DIR)/version.c
87        $(ECHO) "[   CC    ]     $(BUILD_DIR)/version.c"
88        $(CC) $(DEFS) $(CFLAGS) $(INCLUDE) -c -o $@ $(BUILD_DIR)/version.c
89        $(DU) -D $@ > $@.txt
[502]90
[587]91$(TARGET): $(BUILD_DIR) $(BUILD_DIR)/version.o $(OBJS) $(PLATFORM_DIR)/ldscript $(BUILD_DIR)/platform.ld
[388]92        $(ECHO) "[   LD    ]     $@"
[587]93        $(LD) -o $@ -T $(PLATFORM_DIR)/ldscript $(OBJS) $(BUILD_DIR)/version.o
[293]94        $(DU) -D $@ > $@.txt
95
[425]96ifeq ($(USE_DT), 1)
[293]97$(BUILD_DIR)/platform.ld: $(BUILD_DIR)/platform.dtb
[388]98        $(ECHO) "[ HEXDUMP ]     $(notdir $<)"
[293]99        $(HEXDUMP) -v -e '"BYTE(0x" 1/1 "%02X" ")\n"' $< > $@
[425]100else
101$(BUILD_DIR)/platform.ld:
102        $(ECHO) "[  TOUCH  ]     $(notdir $@)"
103        touch $@
104endif
[293]105
106$(BUILD_DIR)/platform.dtb: $(DTS)
[388]107        $(ECHO) "[   DTC   ]     $(notdir $<)"
[390]108        ${DTC} -O dtb -o $@ $< &> /dev/null
[293]109
110$(BUILD_DIR):
111        $(MKDIR) $@
112
[388]113doc: Doxyfile
114        $(DOXYGEN) Doxyfile
115
[293]116clean:
117        $(RM) $(TARGET).txt $(TARGET) *~ $(BUILD_DIR)
118
[388]119clean-doc:
120        $(RM) doc
[293]121
[388]122distclean: clean clean-doc
123
[293]124# =============================================================================
125# Implicit makefile rules
126
127$(BUILD_DIR)/%.o: %.c
[388]128        $(ECHO) "[   CC    ]     $(notdir $<)"
[293]129        $(CC) $(DEFS) $(CFLAGS) $(INCLUDE) -c -o $@ $<
130        $(DU) -D $@ > $@.txt
131
132$(BUILD_DIR)/%.o: %.S
[388]133        $(ECHO) "[   AS    ]     $(notdir $<)"
[293]134        $(CC) $(DEFS) ${INCLUDE} -g -mips32 -c -o $@ $<
135        $(DU) -D $@ > $@.txt
136
137.SILENT:
Note: See TracBrowser for help on using the repository browser.