58 lines
1.5 KiB
Makefile
58 lines
1.5 KiB
Makefile
# ─────────────────────────────────────────────
|
|
# Makefile — fdr1-modbus-slave
|
|
# Cible : PIC18F4431
|
|
# Compilateur : XC8
|
|
# ─────────────────────────────────────────────
|
|
|
|
# Projet
|
|
PROJECT = fdr1-modbus-slave
|
|
MCU = 18F4431
|
|
|
|
# Outils
|
|
CC = xc8-cc
|
|
IPECMD = java -jar /opt/microchip/mplabx/v6.20/mplab_platform/mplab_ipe/ipecmd.jar
|
|
# -OK
|
|
|
|
# Répertoires
|
|
SRC_DIR = src
|
|
INC_DIR = includes
|
|
BUILD_DIR = build
|
|
|
|
# Flags
|
|
DFP = /opt/microchip/mplabx/v6.20/packs/Microchip/PIC18Fxxxx_DFP/1.6.159/xc8
|
|
|
|
CFLAGS = -mcpu=$(MCU)
|
|
CFLAGS += -mdfp=$(DFP)
|
|
CFLAGS += -I$(INC_DIR)
|
|
CFLAGS += -O2
|
|
CFLAGS += -maddrqual=ignore
|
|
CFLAGS += -Wl,-Map=$(BUILD_DIR)/$(PROJECT).map
|
|
|
|
# Sources
|
|
SRCS = $(wildcard $(SRC_DIR)/*.c)
|
|
|
|
# Cible principale
|
|
HEX = $(BUILD_DIR)/$(PROJECT).hex
|
|
|
|
# ─────────────────────────────────────────────
|
|
|
|
.PHONY: all clean flash
|
|
|
|
all: $(BUILD_DIR) $(HEX)
|
|
|
|
# Création du répertoire build si absent
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
# Compilation + link en une seule passe XC8
|
|
$(HEX): $(SRCS)
|
|
$(CC) $(CFLAGS) $(SRCS) -o $(HEX)
|
|
|
|
# Flash via PICkit3
|
|
flash: $(HEX)
|
|
$(IPECMD) -TPPK3 -P$(MCU) -F$(HEX) -M -OL
|
|
|
|
# Nettoyage
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|