|
From: | Stef Euskadi |
Subject: | Re: [Tsp-devel] Re: Portage sur carte PPC 3 eme épisode |
Date: | Tue, 12 Dec 2006 21:45:24 +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
_______________________________________________
Tsp-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tsp-devel
[Prev in Thread] | Current Thread | [Next in Thread] |