fdr1-modbus-slave/Makefile
2026-03-09 15:08:40 +01:00

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)