[gelöst] Wie kompiliere ich für Lazarus eine geänderte FPC

Für Fragen rund um die Ide und zum Debugger
Antworten
Rob
Beiträge: 34
Registriert: Fr 8. Jul 2011, 10:45
OS, Lazarus, FPC: Win7, Ubuntu 64 und 32bit Lazarus (immer aktuellstes Release) FPC 2.6.4
CPU-Target: amd_64 und i386
Kontaktdaten:

[gelöst] Wie kompiliere ich für Lazarus eine geänderte FPC

Beitrag von Rob »

Hallo,

ich habe eine FPC Komponente verändert und möchte nun die FPC (mein Stand ist die 2.6.4) mit Lazarus neu kompilieren.
Mein OS ist Windows genauer Win7
Installiert ist Lazarus 1.2.6 aus dem LAzarus Installer. der Freepascal Compiler ist nicht separat installiert.
Ich habe die pp Datei im C:\lazarus\fpc\2.6.4\source\packages\fcl-registry\src geändert.

Die fpc Verzeichnisse in Lazarus lauten:
c:\lazarus\fpc\2.6.4\msg
c:\lazarus\fpc\2.6.4\bin
c:\lazarus\fpc\2.6.4\bin\i386-win32
c:\lazarus\fpc\2.6.4\source\packages
c:\lazarus\fpc\2.6.4\source\rtl
c:\lazarus\fpc\2.6.4\units\
c:\lazarus\fpc\2.6.4\units\i386-win32

Was ist zu tun um die fpc neu zu kompilieren?
Bitte keine Linux Anleitungen,
die die ich mir ergoogelt habe funktionieren nicht unter win7.

Grüße
Rob
Zuletzt geändert von Rob am Di 4. Nov 2014, 16:51, insgesamt 2-mal geändert.

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Wie komiliere ich für Lazarus eine geänderte FPC

Beitrag von Mathias »

Versuche im folgenden Verzeichniss "C:\lazarus\fpc\2.6.4\source\packages" "make" aufzurufen, fals deine geänderte Datei sich dort befindet.
Garantie ist es keine.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Rob
Beiträge: 34
Registriert: Fr 8. Jul 2011, 10:45
OS, Lazarus, FPC: Win7, Ubuntu 64 und 32bit Lazarus (immer aktuellstes Release) FPC 2.6.4
CPU-Target: amd_64 und i386
Kontaktdaten:

Re: Wie komiliere ich für Lazarus eine geänderte FPC

Beitrag von Rob »

Mathias hat geschrieben:Versuche im folgenden Verzeichniss "C:\lazarus\fpc\2.6.4\source\packages" "make" aufzurufen, fals deine geänderte Datei sich dort befindet.
Garantie ist es keine.
Hab ich längst probiert, funktioniert leider nicht.

Mittlerweile bin ich hier gelandet:
Die geänderte pp datei liegt in fpc\2.6.4\source\packages\fcl-registry\src
nachdem es unter source kein makefile gibt starte ich make in packages

C:\Apps\lz\fpc\2.6.4>PATH C:\Apps\lz\fpc\2.6.4\bin\i386-win32;C:\windows\System32;C:\windows; ...
C:\Apps\lz\fpc\2.6.4>cd source
C:\Apps\lz\fpc\2.6.4\source>cd packages
C:\Apps\lz\fpc\2.6.4\source\packages>make
make -C hash all
make[1]: Entering directory `C:/Apps/lz/fpc/2.6.4/source/packages/hash'
make[1]: *** No rule to make target `md5.ppu', needed by `fpc_units'. Stop.
make[1]: Leaving directory `C:/Apps/lz/fpc/2.6.4/source/packages/hash'
make: *** [hash_all] Error 2

C:\Apps\lz\fpc\2.6.4\source\packages>

Grüße
Rob

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Wie kompiliere ich für Lazarus eine geänderte FPC

Beitrag von Michl »

AFAIK, bei der Installation von Lazarus 1.2.6 wird nur ein fertig kompliertes FPC mit ausgeliefert. Dort sind keine Regeln für Make mit beigefügt. Warum gehst Du nicht den üblichen Weg und installierst Dir zusätzlich die jeweilige Entwicklerversion?

Das ist recht einfach zu realisieren:

1. Installiere Dir Lazarus 1.2.6 (am besten unter C:\lazarus)
2. Installiere Dir TortoiseSVN (falls Du das nicht sowieso schon installiert hast) z.B. von hier http://tortoisesvn.net/downloads.de.html
3. Erstelle ein Verzeichnis "C:\FreePascal" (indem dann FPC-Trunc und Lazrus-Trunc installiert werden)
4. Kopiere die beigefügte "create.bat" nach C:\FreePascal, starte diese dort (möglichst zuerst "cmd" starten und von da ausführen, damit, falls es zu einem Problem kommt, das Console-Fenster nicht wieder geschlossen wird). Falls Du Deine Verzeichnisse anders benannt hast, musst Du die "create.bat" entsprechend anpassen.
5. Erstelle einen "Start-Link" für die Lazarus-Trunc-Version mit einem eigenen Konfigurationsverzeichnis, damit Lazarus 1.2.6 und 1.3 nebeneinader funktionieren:
Ziel: C:\FreePascal\Laz\startlazarus.exe --pcp=C:\FreePascal\Configs
Ansonsten siehe Bild

Damit kannst Du bei jeder Änderung die Du machst, mit der create.bat ein neues FPC/Lazarus bauen und gleichzeitig einen Patch erstellen und im Bugtracker hochladen, falls die Änderung in FPC/Lazarus eingepflegt werden soll.

PS: Ich baue mir nur bei der ersten Installation FPC und Lazarus per dieser create.bat. Später erstelle ich mir immer nur FPC damit (Teil "make" Lazarus habe ich dann auskommentiert bzw. eine extra .bat), Lazarus erstelle ich mir immer aus Lazarus selbst heraus, damit alle Einstellungen erhalten bleiben (dafür gibts auch eine "make"-Option, habe ich aber noch nicht probiert, da das aus Lazarus heraus recht komfortabel ist)
Dateianhänge
create.bat
(820 Bytes) 103-mal heruntergeladen
Laz13.png

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Wie kompiliere ich für Lazarus eine geänderte FPC

Beitrag von mse »

Das angehängte Script arbeitet direkt in der Lazarus Umgebung.
Die mit Lazarus mitgelieferte D:\lazarus\fpc\2.6.4\bin\i386-win32\make.exe muss durch die Version 3.8.0 im Anhang ersetzt werden. Siehe auch
http://comments.gmane.org/gmane.comp.co ... eral/34060
Edit: Habe compilertl.bat etwas optimiert.
Dateianhänge
compilertl.bat
(692 Bytes) 111-mal heruntergeladen
make.exe
(764 KiB) 94-mal heruntergeladen
Zuletzt geändert von mse am Di 4. Nov 2014, 17:37, insgesamt 1-mal geändert.

Rob
Beiträge: 34
Registriert: Fr 8. Jul 2011, 10:45
OS, Lazarus, FPC: Win7, Ubuntu 64 und 32bit Lazarus (immer aktuellstes Release) FPC 2.6.4
CPU-Target: amd_64 und i386
Kontaktdaten:

Re: Wie kompiliere ich für Lazarus eine geänderte FPC

Beitrag von Rob »

DANKE! Leute.

ich habe den Vorschlag von mse umgesetzt und es funktioniert.
die fpc kompiliert neu und alles ist gut!

Nun kann ich mich wieder meinen eigentlichen Problemchen (Blauzahn) zuwenden. :)

Viele Grüße
Rob

Antworten