Pour éditer le wiki, il faut demander un compte à un Lapin !

Makefile pour Arduino

From Le L∞p's Wiki
Jump to: navigation, search

Ce petit Makefile est devenu mon compagnon pour tous mes développements Arduino, parce que bon, l'IDE arduino est insupportable pour le dev que je suis. Et parce que vim rulez ! -- Guyzmo

Télécharger le Makefile

Configuration

Section des bibliothèques utilisateur

Avant de l'utiliser, il est nécessaire de l'éditer et de le configurer un poil. Les deux valeurs ci-dessous sont à configurer avec les répertoires d'installation de votre environnement arduino.

INSTALL_DIR 
La valeur par défaut correspond au chemin sous OSX, mais sous linux il doit y avoir un répertoire de base équivalent...
INSTALL_LIB_DIR 
Cette variable correspond au chemin vers les bibliothèques fournies avec l'environnement Arduino (qui est en général dans $(INSTALL_DIR)/libraries mais peut être déplacé dans un autre répertoire, selon les goûts du développeur).

Sous Mac

 INSTALL_DIR = /Applications/Arduino.app/Contents/Resources/Java
 INSTALL_LIB_DIR = $(INSTALL_DIR)/libraries

Sous Linux

c'est la cata ! faut revoir tous les chemins...

Sous Windows

?

Section de configuration de l'arduino

Cette section configure les différents détails correspondant à votre arduino. Les options par défaut sont valides pour un Arduino Duemilanove et Uno. La chaîne VERSION doit correspondre à la version téléchargée de l'IDE (bien que ce ne soit pas un problème de la laisser telle quelle).

  • la variable PORT peut être définie statiquement dans le fichier, ou manuellement (en la commentant) à l'extérieur du fichier, ce qui est utile lorsqu'on uploade un programme sur deux arduinos avec le même Makefile.
 PORT=/dev/ttyUSB0

La configuration ci-dessous correspond aux chemins vers les bibliothèques utilisateurs. De même, le répertoire par défaut donné ci-dessous est celui d'OSX (encore). Pour inclure des bibliothèques en fonction du projet en cours, il suffit d'étendre $(LOCAL_CXX) et $(LOCAL_C) avec les chemins vers les fichiers C++ et C adéquats. Bien évidemment, il suffit de rajouter plus ou moins de fichiers séparés par une espace, si aucune bibliothèque n'est nécessaire, on peut laisser la variable vide (mais elle doit être présente).

 LOCAL_LIB_DIR = $(HOME)/Documents/Arduino/libraries
 LOCAL_CXX = $(LOCAL_LIB_DIR)/EthernetDHCP/EthernetDHCP.cpp (LOCAL_LIB_DIR)/XXX/YYY.cpp
 LOCAL_C = $(LOCAL_LIB_DIR)/EthernetDHCP/utility/EthernetDhcpUtil.c

Utilisation

Lorsque vous créez un projet arduino, il faut faire en sorte qu'il y ait un répertoire et un fichier « .pde » portant le même nom :

 MyArduinoProject
 |-- MyArduinoProject.pde
 `-- Makefile

Dans ce répertoire, il suffit de taper la commande make pour compiler le projet, ce qui va générer les binaires et les différents outputs :

 MyArduinoProject
 |-- MyArduinoProject.pde
 |-- Makefile 
 `-- applet
    |-- MyArduinoProject.cpp
    |-- MyArduinoProject.elf
    |-- MyArduinoProject.hex
    |-- MyArduinoProject.o
    `-- core.a

Ensuite pour mettre à jour l'Arduino il faut taper :

% make upload

ou si vous n'avez pas configuré la variable $PORT dans le Makefile :

% PORT=/dev/ttyUSB0 make upload

et vous pourrez découvrir avec bonheur ce que fait votre programme arduino !