Advertisement
Guest User

Untitled

a guest
Sep 18th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 2.26 KB | None | 0 0
  1. ###############################################################################
  2. ## MAKEFILE CONFIGURATION
  3. ###############################################################################
  4.  
  5. OUTPUT_NAME:=main
  6. LIB_DIR:=/home/hazael/Documentos/VSCode/Cpp/SerialKodama/lib/m328p
  7.  
  8. ###############################################################################
  9. ## PROJECT DEFINITIONS
  10. ###############################################################################
  11.  
  12. PRJ_DEFS+=-D USART_TX_BUFFER_SIZE="64"
  13. PRJ_DEFS+=-D USART_RX_BUFFER_SIZE="32"
  14. PRJ_DEFS+=-D USART_CLOCK_RATE="9600UL"
  15.  
  16. PRJ_DEFS+=-D TIMER0_RATE="1000UL"
  17.  
  18. PRJ_DEFS+=-D TWI_BUFFER_SIZE="32"
  19. PRJ_DEFS+=-D TWI_CLOCK_RATE="100000UL"
  20.  
  21. ###############################################################################
  22. ## AVRDUDE CONFIGURATION
  23. ###############################################################################
  24.  
  25. BURN_BAUD:=57600
  26. BURN_PORT:=/dev/ttyACM1
  27.  
  28. ###############################################################################
  29. ## DO NOT CHANGE ANYTHING BELOW THIS COMMENT
  30. ###############################################################################
  31.  
  32. CC:=avr-gcc
  33.  
  34. SRC_DIR:=src
  35. OBJ_DIR:=obj
  36. BIN_DIR:=bin
  37.  
  38. SRC_FILES:=$(wildcard $(SRC_DIR)/*.c)
  39. OBJ_FILES:=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC_FILES))
  40. LIB_SRC_FILES:=$(wildcard $(LIB_DIR)/src/*.c)
  41. LIB_OBJ_FILES:=$(patsubst $(LIB_DIR)/src/%.c,$(OBJ_DIR)/%.o,$(LIB_SRC_FILES))
  42. ALL_OBJ_FILES:=$(OBJ_FILES) $(LIB_OBJ_FILES)
  43.  
  44. CXXFLAGS:=-g -O2 -ffunction-sections -fdata-sections -Wl,--gc-sections
  45. INCFLAGS:=-Iinclude -I$(LIB_DIR)/include
  46. WFLAGS:=-Wall
  47. ARCHFLAG:=-mmcu=atmega328p
  48.  
  49. $(BIN_DIR)/$(OUTPUT_NAME).elf: $(ALL_OBJ_FILES) $(BIN_DIR)
  50.     @$(CC) $(CXXFLAGS) $(WFLAGS) $(ARCHFLAG) $(LDFLAGS) -o $(BIN_DIR)/$(OUTPUT_NAME).elf $(ALL_OBJ_FILES)
  51.  
  52. $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)
  53.     @$(CC) $(CXXFLAGS) $(PRJ_DEFS) $(WFLAGS) $(ARCHFLAG) $(INCFLAGS) -c $< -o $@
  54.  
  55. $(OBJ_DIR)/%.o: $(LIB_DIR)/src/%.c $(OBJ_DIR)
  56.     @$(CC) $(CXXFLAGS) $(PRJ_DEFS) $(WFLAGS) $(ARCHFLAG) -I$(LIB_DIR)/include -c $< -o $@
  57.  
  58. $(OBJ_DIR):
  59.     @mkdir -p $(OBJ_DIR)
  60.  
  61. $(BIN_DIR):
  62.     @mkdir -p $(BIN_DIR)
  63.  
  64. burn: $(BIN_DIR)/$(OUTPUT_NAME).elf
  65.     @avrdude -b$(BURN_BAUD) -P$(BURN_PORT) -carduino -pm328p -Uflash:w:$(BIN_DIR)/$(OUTPUT_NAME).elf:a
  66.  
  67. clean:
  68.     @rm -r $(OBJ_DIR)||:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement