tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tsp-devel] Re: Portage sur carte PPC 3 eme épi sode


From: Eric Noulard
Subject: [Tsp-devel] Re: Portage sur carte PPC 3 eme épi sode
Date: Thu, 7 Dec 2006 14:24:50 +0100

2006/12/7, Eric Noulard <address@hidden>:
Bonjours

J'ai repris une activé d'utilisation de TSP sur des cartes PowerPC
avec un linux embarqué.
La dernière fois que j'avais utilisé TSP pour cet usage (ou pour tout
les usages tout courts), la version utilisait encore les autotools
s'appelais 0.7.3.
Forcement avec une 0.8.2 ça ne marche pas pareil.
 Mon problème est de deux ordres :
  - j'utilise un compilo croisé sur x86 pour cible PPC
  - Ma libc est plutôt minimaliste et je n'ai pas besoin de tout
compiler pour embarqué sur la cartes.

Le problème du compiler croisé peut éventuellement passer avec un mode
debug de cmake (précision du "CC", de "AR" et de "RANLIB") mais je

CMake ne supporte pas la cross-compilation
http://www.cmake.org/pipermail/cmake/2006-September/010959.html
http://www.cmake.org/pipermail/cmake/2006-September/010946.html
Néanmoins dans ton cas, il devrait suffir de "surcharger"

SET(CMAKE_C_COMPILER whatever-cross-cc)
SET(CMAKE_AR whatever cross-ar)
SET(CMAKE_RANLIB whatever crossranlib)
cf http://www.cmake.org/Wiki/CMake_Useful_Variables

Je te suggère de faire ces surcharges dans le CMakeList.txt principal de TSP
en ajoutant une option du genre:

OPTION(CROSS_PPC_TARGET
 "Build for PPC Target" OFF)

puis ensuite

IF(CROSS_PPC_TARGET)
SET(CMAKE_C_COMPILER whatever-cross-cc)
SET(CMAKE_AR whatever cross-ar)
SET(CMAKE_RANLIB whatever crossranlib)
ENDIF (CROSS_PPC_TARGET)

n'arrive pas a désactivé la compilation de tsp_cfg qui lui me réclame
la libxml2 que je n'ai pas sur ma petite flash et libc.

C'est parce que notre CMakeList.txt n'a aucune notion de cross compil'
et du coup il trouve probablement la libxml2 du host donc il veut compiler
les éléments qui utilise la libxml2.

SI tu ne veux pas t'embeter tu peux entourer par un
IF(CROSS_PPC_TARGET) la détection de la libXML2.
D'ailleurs dans le cadre d'une cross-compil' idéale il faudrait
conditionner la recherche de certains composants au fait qu'on
ne cross-compile pas.

IF(CROSS_PPC_TARGET)
 ################ XML2 Check ####################
FIND_PACKAGE(XML2)
IF (XML2_XMLWRITER_SUPPORTED)
 ADD_DEFINITIONS(-DXMLWRITER_SUPPORTED)
ENDIF (XML2_XMLWRITER_SUPPORTED)
ENDIF(CROSS_PPC_TARGET)

En résumé la plupart des FindXXX du CMakeLists.txt principal
devrait être entourés IF(CROSS...)

tsp_cfg dont je ne connais absolument pas l'usage (c'est que je ne
dois pas en voir besoin alors ;-) )

Exacte, c'est une lib qui implémente la gestion des fichiers de configuration
TSP (consumer pour l'instant) de façon "unifie" :))
Actuellement seul l'ascii_writer l'utilise.


Est-ce que mon utilisation de cmake est juste ? Je voudrais juste
généré les lib blackboard, le serveur et c'est tout (enfin je crois).

Ensuite, est-il possible de préciser la cible du répertoire des
binaires et bibliothèques ? Actuellement ce répertoire s'appelle Linux
et faire plutôt un LinuxPPC serait plus pratique et façile.

Oui c'est simple, il suffit de positionner les variables,
LIBRARY_OUTPUT_PATH
EXECUTABLE_OUTPUT_PATH

tu peux regarder dans le CMakeLists.txt principal dans
le cas NON WIN32
SET(LIBRARY_OUTPUT_PATH
${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${CMAKE_BUILD_TYPE}/lib)
 SET(EXECUTABLE_OUTPUT_PATH
${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${CMAKE_BUILD_TYPE}/bin)

De la même façon que pour le reste:

IF(CROSS_....)
SET(LIBRARY_OUTPUT_PATH
${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${CMAKE_BUILD_TYPE}/lib)
 SET(EXECUTABLE_OUTPUT_PATH
${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${CMAKE_BUILD_TYPE}/bin)
ENDIF(CROSS)

Voila

 Un jour qui sait, toute les futures cartes d'entrées sorties de
simulation  utiliseront TSP pour leur maintenance, mais pour
que cela arrive il faudra arriver à y faire tourner ce nouveau TSP ;-)

Si tu n'y arrives pas seul on t'y aidera ne t'inquiete pas :))
--
Erk

reply via email to

[Prev in Thread] Current Thread [Next in Thread]