Advertisement
Guest User

makefile

a guest
May 3rd, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. # Makefile for compiling the Getting Started project
  2.  
  3. #-------------------------------------------------------------------------------
  4. # User-modifiable options
  5. #-------------------------------------------------------------------------------
  6.  
  7. # Trace level used for compilation
  8. # (can be overriden by adding TRACE_LEVEL=#number to the command-line)
  9. # TRACE_LEVEL_DEBUG 5
  10. # TRACE_LEVEL_INFO 4
  11. # TRACE_LEVEL_WARNING 3
  12. # TRACE_LEVEL_ERROR 2
  13. # TRACE_LEVEL_FATAL 1
  14. # TRACE_LEVEL_NO_TRACE 0
  15. TRACE_LEVEL = 4
  16.  
  17. # Optimization level
  18. OPTIMIZATION = -O0
  19.  
  20. # Output file basename
  21. OUTPUT = main
  22.  
  23. # Output directories
  24. BIN = .
  25. OBJ = obj
  26.  
  27. # library dirs
  28. LIBRARYSRC = ./lib/src
  29. STARTUPFILE = ./lib/startup_stm32f10x_md.s
  30.  
  31. #-------------------------------------------------------------------------------
  32. # Tools
  33. #-------------------------------------------------------------------------------
  34.  
  35. # Tool suffix when cross-compiling
  36. CROSS_COMPILE = arm-none-eabi-
  37.  
  38. CC = $(CROSS_COMPILE)gcc
  39. SIZE = $(CROSS_COMPILE)size
  40. STRIP = $(CROSS_COMPILE)strip
  41. OBJCOPY = $(CROSS_COMPILE)objcopy
  42. OBJDUMP = $(CROSS_COMPILE)objdump
  43. LD = $(CROSS_COMPILE)ld
  44. AS = $(CROSS_COMPILE)as
  45.  
  46. #-------------------------------------------------------------------------------
  47. # Files
  48. #-------------------------------------------------------------------------------
  49.  
  50. # include folders
  51. INCLUDES = -I./
  52. INCLUDES += -I./lib/
  53. INCLUDES += -I./lib/inc/
  54. INCLUDES += -I./lib/src/
  55. INCLUDES += -I./lib/fat_sd/
  56. INCLUDES += -I./lib/inc/../../
  57.  
  58.  
  59. # Objects built from C source files
  60. C_OBJECTS = $(OBJ)/main.o
  61. C_OBJECTS += $(OBJ)/system_stm32f10x.o
  62. C_OBJECTS += $(OBJ)/stm32f10x_gpio.o
  63. C_OBJECTS += $(OBJ)/stm32f10x_rcc.o
  64. C_OBJECTS += $(OBJ)/stm32f10x_it.o
  65. C_OBJECTS += $(OBJ)/stm32f10x_spi.o
  66. C_OBJECTS += $(OBJ)/stm32f10x_usart.o
  67. #C_OBJECTS += $(OBJ)/ff.o
  68.  
  69. # Objects built from Assembly source files
  70. ASM_OBJECTS = $(OBJ)/startup_stm32f10x_md.o
  71.  
  72. LINKER_SCRIPT = ./lib/stm32_flash.ld
  73. #LINKER_SCRIPT = ./lib/stm32_ram.ld
  74.  
  75. # Append OBJ and BIN directories to output filename
  76. OUTPUT := $(BIN)/$(OUTPUT)
  77.  
  78. #-------------------------------------------------------------------------------
  79. # Rules
  80. #-------------------------------------------------------------------------------
  81.  
  82. # Flags
  83. CFLAGS = -Wall -fno-common -c -g -mcpu=cortex-m3 -mthumb
  84. CFLAGS += -g $(OPTIMIZATION) $(INCLUDES) -DTRACE_LEVEL=$(TRACE_LEVEL)
  85. ASFLAGS = -g -mapcs-32
  86. LDFLAGS = -g -v -nostartfiles
  87. OBJCOPYFLAGS = -O binary
  88. OBJDUMPFLAGS = -x --syms -S
  89.  
  90. all: $(BIN) $(OBJ) $(OUTPUT).out
  91.  
  92. $(BIN) $(OBJ):
  93. mkdir $@
  94.  
  95. $(OUTPUT).out: $(C_OBJECTS) $(ASM_OBJECTS) $(LINKER_SCRIPT)
  96. @ echo "..linking"
  97. $(LD) $(LDFLAGS) -Map $(OUTPUT).map -T$(LINKER_SCRIPT) -o $(OUTPUT).out $(C_OBJECTS) $(ASM_OBJECTS) libgcc.a
  98. $(OBJCOPY) $(OBJCOPYFLAGS) $(OUTPUT).out $(OUTPUT).bin
  99. # $(OBJDUMP) $(OBJDUMPFLAGS) $(OUTPUT).out > $(OUTPUT).list
  100. @ echo "...completed."
  101.  
  102. $(C_OBJECTS): main.c system_stm32f10x.c
  103. @ echo ".compiling"
  104. $(CC) $(CFLAGS) -o $(OBJ)/main.o main.c
  105. $(CC) $(CFLAGS) -o $(OBJ)/system_stm32f10x.o system_stm32f10x.c
  106. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_it.o stm32f10x_it.c
  107. @ echo ".compiling libraries"
  108. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_gpio.o $(LIBRARYSRC)/stm32f10x_gpio.c
  109. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_rcc.o $(LIBRARYSRC)/stm32f10x_rcc.c
  110. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_usart.o $(LIBRARYSRC)/stm32f10x_usart.c
  111. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_spi.o $(LIBRARYSRC)/stm32f10x_spi.c
  112. # $(CC) $(CFLAGS) -o $(OBJ)/ff.o ./lib/fat_sd/
  113. $(ASM_OBJECTS): $(STARTUPFILE)
  114. @ echo ".assembling"
  115. $(AS) $(ASFLAGS) -o $(OBJ)/startup_stm32f10x_md.o $(STARTUPFILE)
  116.  
  117. clean:
  118. -rm -f $(OBJ)/*.o $(BIN)/*.out $(BIN)/*.bin $(BIN)/*.dmp $(BIN)/*.map
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement