IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Comment effectuer un 'rebuild/install' d'une unité FPC modifiée ? [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut Comment effectuer un 'rebuild/install' d'une unité FPC modifiée ?
    Bonjour,

    J'ai modifié l'unité 'XMLRead' qui avait une fuite mémoire (merci heaptrc).
    Mon problème c'est que je n'arrive pas à recompiler/installer l'unité modifiée pour que la modification soit prise en compte.
    J'ai essayé d'utiliser fppkg, mais sans succès (missing configuration fpmake.pp).
    Quelqu'un qui a déjà pratiqué cela peut-il me mettre sur la voie ?
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut,
    Citation Envoyé par Volpe80 Voir le message
    Quelqu'un qui a déjà pratiqué cela peut-il me mettre sur la voie ?
    Tu peux toujours t'inspirer de ce monologue, des fois qu'il y ait des similitudes.

    Un truc sympa aurait été que tu précises la version FPC, ainsi que ce que tu as corrigé, à moins que ça soit secret-défense ?

  3. #3
    Membre chevronné

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Par défaut
    Il faut exécuter fppkg (ou fpc fpmake.pp/fpmake build) depuis le répertoire "racine des sources" du package concerné: celui contenant notamment le fichier "fpmake.pp", ainsi qu'un sous-répertoire "src".

    Et recopier éventuellement ensuite les fichiers compilés dans le répertoire des fichiers binaires (comme indiqué dans le lien indiqué par Jipété).

  4. #4
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par FChrisF Voir le message
    Il faut exécuter fppkg (ou fpc fpmake.pp/fpmake build) depuis le répertoire "racine des sources" du package concerné: celui contenant notamment le fichier "fpmake.pp", ainsi qu'un sous-répertoire "src".

    Et recopier éventuellement ensuite les fichiers compilés dans le répertoire des fichiers binaires (comme indiqué dans le lien indiqué par Jipété).
    Merci pour les commandes, mais il semble manquer quelque chose :

    fppkg :
    Nom : 2015-12-22_101241.png
Affichages : 368
Taille : 12,4 Ko

    fpc fpmake.pp / fpmake build :
    Nom : 2015-12-22_101543.png
Affichages : 396
Taille : 16,6 Ko

  5. #5
    Membre chevronné

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Par défaut
    Citation Envoyé par Volpe80 Voir le message
    Merci pour les commandes, mais il semble manquer quelque chose :
    C'est vrai que je n'avais pas mis les commandes en entier (cf. ici http://wiki.freepascal.org/FPMake par exemple pour plus de précisions).

    Voici un exemple qui fonctionne chez moi (avec la version 2.6.4 de FPC et dans Lazarus, comme votre configuration semble t-il):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fpc fpmake.pp
    fpmake build --globalunitdir=C:\Lazarus\fpc\2.6.4\units\i386-win32
    Ce qui me donne (sur une copie de \fcl-xml; je vous suggère de faire de même pour des tests) :
    C:\TEST\fcl-xml>fpc fpmake.pp
    Free Pascal Compiler version 2.6.4 [2015/10/03] for i386
    Copyright (c) 1993-2014 by Florian Klaempfl and others
    Target OS: Win32 for i386
    Compiling fpmake.pp
    Linking fpmake.exe
    172 lines compiled, 0.9 sec , 286960 bytes code, 67772 bytes data

    C:\TEST\fcl-xml>fpmake build --globalunitdir=C:\Lazarus\fpc\2.6.4\units\i386-win32
    Start compiling package fcl-xml for target i386-win32.
    Compiling BuildUnit_fcl_xml.pp
    Compiling .\src\xmlutils.pp
    Compiling .\src\dom.pp
    Compiling .\src\dtdmodel.pp
    Compiling .\src\dom_html.pp
    Compiling .\src\htmldefs.pp
    Compiling .\src\htmlelements.pp
    Compiling .\src\htmlwriter.pp
    Compiling .\src\htmwrite.pp
    Compiling .\src\sax.pp
    Compiling .\src\sax_html.pp
    Compiling .\src\xhtml.pp
    Compiling .\src\xmlread.pp
    Compiling .\src\xmlwrite.pp
    Compiling .\src\xmlcfg.pp
    Compiling .\src\xmlconf.pp
    Compiling .\src\xmlstreaming.pp
    Compiling .\src\xpath.pp
    Compiling .\src\sax_xml.pp
    Compiling .\src\xmliconv_windows.pas
    [100%] Compiled package fcl-xml

    C:\TEST\fcl-xml>
    Je n'ai pas été jusqu'à vérifier que le package compilé est bien OK et utilisable; mais on retrouve bien les fichiers compilés dans le sous-répertoire "\units\i386-win32". Qu'il faut donc copier ensuite dans "C:\lazarus\fpc\2.6.4\units\i386-win32\fcl-xml".

    Ceci étant, comme alanglet, j'ai plutôt tendance à télécharger et recompiler tout FPC (le "make" fourni avec fait en effet très bien le travail).

    Cependant, je ne suis pas certain que cela soit possible avec la version fournie au sein de Lazarus: on y trouve plutôt le résultat d'une compilation de FPC faite par leurs soins: à savoir les fichiers issus du "make", plus les sources copiés dans le sous-répertoire "sources". Mais il manque toute la partie installation, tools. ....

    C'est pourquoi je ne pense pas que le script de alanglet soit destiné à fonctionner directement avec la version de FPC dans Lazarus. Il me semble plutôt dédié à compiler une version "standalone" et complète de FPC, comme nous le faisons tous; mais bien entendu, seul alanglet pourra confirmer/infirmer mon hypothèse.

  6. #6
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par FChrisF Voir le message
    Voici un exemple qui fonctionne chez moi (avec la version 2.6.4 de FPC et dans Lazarus, comme votre configuration semble t-il):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fpc fpmake.pp
    fpmake build --globalunitdir=C:\Lazarus\fpc\2.6.4\units\i386-win32
    Merci beaucoup, cela fonctionne bien mieux ainsi.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 261
    Par défaut
    Bonsoir,
    Citation Envoyé par FChrisF Voir le message
    C'est pourquoi je ne pense pas que le script de alanglet soit destiné à fonctionner directement avec la version de FPC dans Lazarus. Il me semble plutôt dédié à compiler une version "standalone" et complète de FPC, comme nous le faisons tous; mais bien entendu, seul alanglet pourra confirmer/infirmer mon hypothèse.
    Effectivement, je précisais bien dans mon message et en suivant le lien vers le wiki, qu'il s'agissait des sources téléchargées depuis le dépôt SVN. Même l'IDE de FPC y est compilé. Mais ce FPC compilé est bien celui utilisé ensuite par Lazarus.

    André

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 261
    Par défaut
    Bonsoir,

    Je ne suis pas très sûr que la compilation de l'unité modifiée seule soit suffisante?
    Sous Windows, je mets à jour les sources depuis le répertoire trunk du dépôt SVN et j'ai aussi modifié quelques sources. Mais après cela, je recompile la totalité de FPC en exécutant le fichier .bat suivant. Il est tiré du wiki de Lazarus ici. L'utilisation de variables le rend assez facile à adapter à votre propre configuration.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo on
    set myroot=d:\freepascal
    set myFPC=%myroot%\fpc\trunk
    set mybinutils=%myroot%\bintrunk
    set PATH=%mybinutils%\i386-win32;%myFPC%\bin\i386-win32;%PATH%
    cd %myFPC%
    rd /s /q  %myfpc%\examples
    make clean all install INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe OVERRIDEVERSIONCHECK=1 DATA2INC=%myFPC%\utils\data2inc.exe
    cd /d %myFPC%\bin\i386-win32
    fpcmkcfg -d basepath=d:\freepascal\fpc\trunk -o .\fpc.cfg
    S'il peut vous être utile... si vous êtes sous Windows.

    André

  9. #9
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par alanglet Voir le message
    Bonsoir,

    Je ne suis pas très sûr que la compilation de l'unité modifiée seule soit suffisante?
    Sous Windows, je mets à jour les sources depuis le répertoire trunk du dépôt SVN et j'ai aussi modifié quelques sources. Mais après cela, je recompile la totalité de FPC en exécutant le fichier .bat suivant. Il est tiré du wiki de Lazarus ici. L'utilisation de variables le rend assez facile à adapter à votre propre configuration.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo on
    set myroot=d:\freepascal
    set myFPC=%myroot%\fpc\trunk
    set mybinutils=%myroot%\bintrunk
    set PATH=%mybinutils%\i386-win32;%myFPC%\bin\i386-win32;%PATH%
    cd %myFPC%
    rd /s /q  %myfpc%\examples
    make clean all install INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe OVERRIDEVERSIONCHECK=1 DATA2INC=%myFPC%\utils\data2inc.exe
    cd /d %myFPC%\bin\i386-win32
    fpcmkcfg -d basepath=d:\freepascal\fpc\trunk -o .\fpc.cfg
    S'il peut vous être utile... si vous êtes sous Windows.

    André
    Merci André, cependant j'ai toujours un message que je ne comprends pas :
    Nom : 2015-12-22_111945.png
Affichages : 380
Taille : 18,9 Ko

  10. #10
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Salut,


    Tu peux toujours t'inspirer de ce monologue, des fois qu'il y ait des similitudes.

    Un truc sympa aurait été que tu précises la version FPC, ainsi que ce que tu as corrigé, à moins que ça soit secret-défense ?
    Effectivement, j'ai oublié de préciser que j'utilise FPC 2.6.4. sous Windows 7.
    Et non pas de secret défense, mais j'aurais aimé vérifier mon assertion avant de l'annoncer.
    Mais comme je n'arrive toujours pas à tester la modification...
    Dans les fonctions 'ReadXMLFile', il manque à la fin un 'Src.Free;'.
    Et en ce qui concerne le monologue, voilà ce que j'obtiens :

    Nom : 2015-12-22_095445.png
Affichages : 420
Taille : 12,7 Ko

    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/07/2014, 12h50
  2. Comment effectuer un double case en une fois
    Par Krout dans le forum VBScript
    Réponses: 4
    Dernier message: 16/09/2008, 17h46
  3. Comment effectuer un tri alphabetique avec une macro
    Par alexistak dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 14/02/2008, 18h32
  4. Réponses: 5
    Dernier message: 13/02/2007, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo