Herramientas de usuario

Herramientas del sitio


docu:fw:bm:make

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

docu:fw:bm:make [2015/04/03 10:35]
mcerdeiro creado
docu:fw:bm:make [2015/04/12 10:24] (actual)
mcerdeiro [Module Make]
Línea 15: Línea 15:
  
 ### ###
-El Makefile que se encuentra en el en el root al hacer un git clone o descargar una release es el root make. **Por lo general no se debe editar este Makefile**. Si cree que debe editar este Makefile contacte [[desarrollo:​firmware:​plan_desarrollo_fw#​equipo_tecnico_a_cargo|al responsable del Makefile]].+El Makefile que se encuentra en el en el root al hacer un **git clone** o descargar una release es el root make. **Por lo general no se debe editar este Makefile**. Si cree que debe editar este Makefile contacte [[desarrollo:​firmware:​plan_desarrollo_fw#​equipo_tecnico_a_cargo|al responsable del Makefile]].
 ### ###
  
-Para seleccionar y configurar las variables del Makefile debe crear su propio **Makefile.mine** copiando el **Makefile.config** por ejemplo ejecutando:+Para seleccionar y configurar las variables del Makefile debe crear su propio **Makefile.mine** copiando el **Makefile.config** ​en el directorio raiz del firmware, ​por ejemplo ejecutando:
  
 <​code>​ <​code>​
 cp Makefile.config Makefile.mine cp Makefile.config Makefile.mine
 </​code>​ </​code>​
- 
 ==== Makefile.mine ==== ==== Makefile.mine ====
  
Línea 42: Línea 41:
  
 <note tip> <note tip>
-Si se setea la variable **BOARD** ​no es necesario setear ​**ARCH**, **CPUTYPE**, ​ni **CPU** ​ya que las mismas serán seteadas de forma automática.+Sólo necesario setear ​la variable **BOARD**, y en función de ésta automáticamente se setean ​**ARCH**, **CPUTYPE**,​ **CPU**, y **COMPILER**,​ por lo que no es necesario hacerlo a mano y pueden comentarse estas definiciones mediante **#**.\\ 
 +La variable **PROJECT_PATH** si utiliza cygwin debe definirse de manera similar a: \\ 
 +**PROJECT_PATH ?= $(DS)cygdrive$(DS)c$(DS)Temp$(DS)Proyecto1**
 </​note>​ </​note>​
- 
  
 Se utiliza la variable $(DS) para indicar el separador de directorios (de manera automática se usa '/'​ para linux y '​\'​ para windows). ​ Se utiliza la variable $(DS) para indicar el separador de directorios (de manera automática se usa '/'​ para linux y '​\'​ para windows). ​
  
 En el mismo Makefile están comentados los valores que pueden tomar cada uno de los parámetros. En el mismo Makefile están comentados los valores que pueden tomar cada uno de los parámetros.
 +
 +<note tip>La utilización de un **Makefile.mine** es opcional, también es posible setear las variables deseadas como **BOARD** y **PROJECT_PATH** como variables de entorno utilizando los comandos set (en windows) y export (en linux). De esta misma forma es como por ejemplo el IDE basado en eclipse informa al Makefile que board o proyecto debe ser compilad.</​note>​
  
 ==== Makefile del proyecto ==== ==== Makefile del proyecto ====
 ### ###
-Cada proyecto tiene también su Makefile. El mismo se encuentra bajo el directorio **mak** en el directorio principal del proyecto o ejemplo. En el ejemplo **examples/​blinking** el makefile del ejemplo se encuentra en **examples/​blinking/​mak** y se llama **Makefile**.+Cada proyecto tiene también su Makefile. El mismo se encuentra bajo el directorio **mak** en el directorio principal del proyecto o ejemplo. En el ejemplo **examples/​blinking** el makefile del ejemplo se encuentra en **examples/​blinking/​mak** y se llama **Makefile**. Este archivo **solo necesita edición en la variable MODS**, todo el resto es automático si se mantiene la estructura de directorios usada en los ejemplos (src, inc, mak, etc).
 ### ###
  
 Este makefile contiene las siguientes definiciones:​ Este makefile contiene las siguientes definiciones:​
-  * **project** el nombre del proyecto ​y por ende nombre del ejecutable. +  * **PROJECT_NAME** el nombre del proyecto, se define automático en base el directorio ​usado
-  * **$(project)_PATH** es el directorio ​del proyecto+  * **INC_FLES** los paths a indicar al compilador para buscar includes files.
-  * **INCLUDE** los paths a indicar al compilador para buscar includes files.+
   * **SRC_FILES** archivos a compilar ya sean archivos c como c++.   * **SRC_FILES** archivos a compilar ya sean archivos c como c++.
   * **OIL_FILES** configuración del sistema operativo (si es utilizado).   * **OIL_FILES** configuración del sistema operativo (si es utilizado).
Línea 90: Línea 91:
  
 <​code>​ <​code>​
 +# library
 LIBS += template LIBS += template
 +# version
 +template_VERSION = 0.8.2
 # library path # library path
 template_PATH = $(ROOT_DIR)$(DS)modules$(DS)template template_PATH = $(ROOT_DIR)$(DS)modules$(DS)template
Línea 102: Línea 106:
  
 ### ###
-Cada [[desarrollo:​firmware:​arq_estatica_fw#​modulos|módulo]] se agrega como una librería, para agregar a la variable LIBS en nombre del módulo. A continuación se define el path del módulo, el path a los source files, el path a los include files y las source files que se desean compilar.+Cada [[desarrollo:​firmware:​arq_estatica_fw#​modulos|módulo]] se agrega como una librería, para agregar a la variable LIBS en nombre del módulo. A continuación se define ​la versión del módulo, ​el path al módulo, el path a los fuentes, el path a los include files y las source files que se desean compilar.
 ### ###
  
Línea 109: Línea 113:
   * modulename_INC_PATH   * modulename_INC_PATH
   * modulename_SRC_FILES   * modulename_SRC_FILES
 +
 +<- docu:​fw:​bm:​estructura|Estructura de directorios ^ ^ docu:​fw:​bm:​examples|Ejemplos ->
docu/fw/bm/make.1428068110.txt.gz · Última modificación: 2015/04/03 10:35 por mcerdeiro