# ───────────────────────────────────────────── # 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)