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

Difference between revisions of "Makefile pour Arduino"

From Le L∞p's Wiki
Jump to: navigation, search
(wikify, lien github)
 
Line 1: Line 1:
ce petit Makefile est devenu mon compagnon pour tous mes développements arduinos, parce que bon, l'IDE arduino est insupportable pour le dev que je suis. Et parce que vim rulez !
+
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 ! <small>-- [[User:Guyzmo|Guyzmo]]</small>
  
* voici le fichier [[Media:Makefile_for_arduino.txt|Makefile]] à télécharger.
+
== Télécharger le Makefile ==
 +
 
 +
* [[Media:Makefile_for_arduino.txt|Makefile_for_arduino.txt]] <small>(18/2/2011)</small>
 +
* Dernière version sur https://github.com/LeLoop/Arduino-Tools
  
 
== Configuration ==
 
== Configuration ==
  
1. Section des bibliothèques utilisateur
+
=== Section des bibliothèques utilisateur ===
  
Avant de l'utiliser, il est nécessaire de l'éditer et de le configurer un poil :
+
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.
  
les deux valeurs ci-dessous sont à configurer avec les répertoires d'installation de votre environnement arduino. La valeur par défaut de INSTALL_DIR correspond au chemin sous OSX, mais sous linux il doit y avoir un répertoire de base équivalent... INSTALL_LIB_DIR 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).
+
; 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 {{fichier|$(INSTALL_DIR)/libraries}} mais peut être déplacé dans un autre répertoire, selon les goûts du développeur).
  
* sous mac :
+
==== Sous Mac ====
<nowiki>
+
 
INSTALL_DIR = /Applications/Arduino.app/Contents/Resources/Java
+
  INSTALL_DIR = /Applications/Arduino.app/Contents/Resources/Java
INSTALL_LIB_DIR = $(INSTALL_DIR)/libraries
+
  INSTALL_LIB_DIR = $(INSTALL_DIR)/libraries
</nowiki>
+
 
 +
==== Sous Linux ====
  
* sous linux :
 
 
c'est la cata ! faut revoir tous les chemins...
 
c'est la cata ! faut revoir tous les chemins...
  
* sous windows :
+
==== Sous Windows ====
 +
 
 
?
 
?
  
1. Section de configuration de l'arduino
+
=== 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).
+
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 <code>VERSION</code> 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.
+
* la variable <code>PORT</code> 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.
<nowiki>
+
PORT=/dev/ttyUSB0
+
</nowiki>
+
  
 +
  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).
+
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 <code>$(LOCAL_CXX)</code> et <code>$(LOCAL_C)</code> 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).
  
<nowiki>
+
  LOCAL_LIB_DIR = $(HOME)/Documents/Arduino/libraries
LOCAL_LIB_DIR = $(HOME)/Documents/Arduino/libraries
+
  LOCAL_CXX = $(LOCAL_LIB_DIR)/EthernetDHCP/EthernetDHCP.cpp (LOCAL_LIB_DIR)/XXX/YYY.cpp
LOCAL_CXX = $(LOCAL_LIB_DIR)/EthernetDHCP/EthernetDHCP.cpp (LOCAL_LIB_DIR)/XXX/YYY.cpp
+
  LOCAL_C = $(LOCAL_LIB_DIR)/EthernetDHCP/utility/EthernetDhcpUtil.c
LOCAL_C = $(LOCAL_LIB_DIR)/EthernetDHCP/utility/EthernetDhcpUtil.c
+
</nowiki>
+
  
 
== Utilisation ==
 
== Utilisation ==
  
Lorsque vous créez un projet arduino, il faut faire en sorte qu'il y ai :
+
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 :
* un répertoire et un fichier « .pde » portant le même nom
+
<nowiki>
+
MyArduinoProject
+
|-- MyArduinoProject.pde
+
`-- Makefile</nowiki>
+
  
dans ce répertoire, il suffit de taper :
+
  MyArduinoProject
<nowiki>% make</nowiki>
+
  |-- MyArduinoProject.pde
 +
  `-- Makefile
  
pour compiler le projet, ce qui va générer les binaires et les différents outputs :
+
Dans ce répertoire, il suffit de taper la commande <code>make</code> pour compiler le projet, ce qui va générer les binaires et les différents outputs :
  
MyArduinoProject
+
  MyArduinoProject
|-- MyArduinoProject.pde
+
  |-- MyArduinoProject.pde
|-- Makefile  
+
  |-- Makefile  
`-- applet
+
  `-- applet
    |-- MyArduinoProject.cpp
+
    |-- MyArduinoProject.cpp
    |-- MyArduinoProject.elf
+
    |-- MyArduinoProject.elf
    |-- MyArduinoProject.hex
+
    |-- MyArduinoProject.hex
    |-- MyArduinoProject.o
+
    |-- MyArduinoProject.o
    `-- core.a
+
    `-- core.a
  
ensuite pour mettre à jour l'Arduino il faut taper :
+
Ensuite pour mettre à jour l'Arduino il faut taper :
  
 
  % make upload
 
  % make upload
  
ou si vous n'avez pas configuré la variable $PORT dans le Makefile
+
ou si vous n'avez pas configuré la variable <code>$PORT</code> dans le Makefile :
  
 
  % PORT=/dev/ttyUSB0 make upload
 
  % PORT=/dev/ttyUSB0 make upload

Latest revision as of 19:37, 9 February 2013

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 !