Initial commit
This commit is contained in:
39
Makefile
Normal file
39
Makefile
Normal file
@@ -0,0 +1,39 @@
|
||||
OBJCOPY = avr-objcopy
|
||||
CC = avr-gcc
|
||||
BUILD = .build
|
||||
TARGET = main
|
||||
|
||||
OPT = s
|
||||
CFLAGS = -Wall -Wextra -std=c18 -O$(OPT) -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -Iinclude
|
||||
LDFLAGS = -Wall -Wextra -O$(OPT) -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p
|
||||
|
||||
SRC = \
|
||||
src/main.c \
|
||||
src/keyboard.c \
|
||||
src/fifo.c \
|
||||
src/scancode.c
|
||||
|
||||
OBJ = $(addprefix $(BUILD)/, $(notdir $(SRC:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(SRC)))
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(BUILD) $(BUILD)/$(TARGET).bin
|
||||
|
||||
%.hex: %.elf | $(BUILD)
|
||||
$(OBJCOPY) -O ihex -R .eeprom $< $@
|
||||
|
||||
%.bin: %.hex | $(BUILD)
|
||||
$(OBJCOPY) -I ihex -O binary $< $@
|
||||
|
||||
$(BUILD)/%.o: %.c Makefile | $(BUILD)
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
$(BUILD)/$(TARGET).elf: $(OBJ) Makefile
|
||||
$(CC) $(LDFLAGS) $(OBJ) -o $@
|
||||
|
||||
$(BUILD):
|
||||
mkdir $@
|
||||
|
||||
clean:
|
||||
rm -fr $(BUILD)
|
||||
Reference in New Issue
Block a user