Lazarus 2.0.6 Installationsproblem
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Lazarus 2.0.4 Installationsproblem
Es gab da mal eine Geschichte, dass FPC lange Zeit Pfadnamen mit Leerzeichen nicht interpretieren konnte: Wenn diese nicht in Quotes standen, wurden sie als zwei Argumente angenommen. Wenn sie in Quotes standen, kamen einige Libs damit nicht klar.
Vor ein paar Monaten hat man dann anscheinend die Funktion "maybequote" konsequenter angewendet, die Pfade mit Leerzeichen und Quotes richtig behandelte. Allerdings gab das noch mehr Konfusion, weil dann Libs mit diesen Quotes nicht klarkamen, wenn sie diese Funktion noch nicht implementiert hatten.
Mir hat das dann so gelangt, dass ich alle Projekte von D:\Eigene Dateien\Programmierung nach D:\Programmierung umgezogen haben, um diese Leerzeichen wegzubekommen. Ich mein, Windows hat ja auch erst seit Win95 Leerzeichen in Pfadnamen...
Vor ein paar Monaten hat man dann anscheinend die Funktion "maybequote" konsequenter angewendet, die Pfade mit Leerzeichen und Quotes richtig behandelte. Allerdings gab das noch mehr Konfusion, weil dann Libs mit diesen Quotes nicht klarkamen, wenn sie diese Funktion noch nicht implementiert hatten.
Mir hat das dann so gelangt, dass ich alle Projekte von D:\Eigene Dateien\Programmierung nach D:\Programmierung umgezogen haben, um diese Leerzeichen wegzubekommen. Ich mein, Windows hat ja auch erst seit Win95 Leerzeichen in Pfadnamen...
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.4 Installationsproblem
@Michl:
Ja, Du hast recht, das Verzeichnis "D:\WinARM\make-tools\bin" kann einen Stutzig machen. Das ist eine Eclipse Installation und da ich schon früher "Probleme" mit dem "make" hatte (damals noch wegen Borland Delphi) habe ich kurzerhand dieses in "gmake" umbenannt. Daher findet Lazarus dieses make natürlich nicht.
ABER
Aus irgend einem Grund nutzt das make vom FPC das Programm "sh.exe", welches in diesem WinARM..bin drin liegt Dieses sh Programm gibt es nicht im "C:\lazarus\fpc\3.0.4\bin\x86_64-win64", aber dennoch nutzt Lazarus dieses beim bauen und deshalb schlägt der Build von Lazarus fehl. Wenn ich "sh.exe" in "sh.exe_" umbenenne dann klappt der Build von Lazarus.
Hier das ZIP der Dateien:
Ideen wie man Lazarus ändern könnte, damit der Build unabhängig vom Betriebssystem klappt:
1) Für den Build von Lazarus sollte Lazarus seine eigene PATH Variable für die Build Session erstelle, in der nur die Suchpfade drin stehen die Lazarus braucht und anhand der Installation bekannt sind. Dazu kann man für die aktuelle Sitzung (also der aktuelle Task) die Environment Variable schreiben, diese ist in Windows auch nur für den einen Task dann gültig.
2) Man ändert die Codezeile, so wie ich gestern bereits geschrieben hatte, jedoch mit dieser Erweiterung:
Denn nur wenn ein Leerzeichen im String drin ist muss gequoted werden, bei Windows ist da dann automatisch kein Leerzeichen drin. Somit wäre die Codeänderung wiederum kompatibel zu allen Betriebssystemen, sogar auch zu solchen die keine Quotes unterstützen und zufällig keine Leerzeichen drin haben.
Schreibt mir wie Ihr darüber denkt, bzw. testet es mal mit den Dateien aus dem ZIP, entsprechend würde ich dann den Bugreport formulieren.
Ist schon irgendwie unschön, wenn ein HW-/SW-Entwickler wegen irgend welchen Installationen von vor X Jahren dann zu so einem Verhalten stößt.
Ja, Du hast recht, das Verzeichnis "D:\WinARM\make-tools\bin" kann einen Stutzig machen. Das ist eine Eclipse Installation und da ich schon früher "Probleme" mit dem "make" hatte (damals noch wegen Borland Delphi) habe ich kurzerhand dieses in "gmake" umbenannt. Daher findet Lazarus dieses make natürlich nicht.
ABER
Aus irgend einem Grund nutzt das make vom FPC das Programm "sh.exe", welches in diesem WinARM..bin drin liegt Dieses sh Programm gibt es nicht im "C:\lazarus\fpc\3.0.4\bin\x86_64-win64", aber dennoch nutzt Lazarus dieses beim bauen und deshalb schlägt der Build von Lazarus fehl. Wenn ich "sh.exe" in "sh.exe_" umbenenne dann klappt der Build von Lazarus.
Hier das ZIP der Dateien:
Ideen wie man Lazarus ändern könnte, damit der Build unabhängig vom Betriebssystem klappt:
1) Für den Build von Lazarus sollte Lazarus seine eigene PATH Variable für die Build Session erstelle, in der nur die Suchpfade drin stehen die Lazarus braucht und anhand der Installation bekannt sind. Dazu kann man für die aktuelle Sitzung (also der aktuelle Task) die Environment Variable schreiben, diese ist in Windows auch nur für den einen Task dann gültig.
2) Man ändert die Codezeile, so wie ich gestern bereits geschrieben hatte, jedoch mit dieser Erweiterung:
Code: Alles auswählen
AppendExtraOption('@'+MakeIDECfgFilename, Pos(' ', MakeIDECfgFilename) > 0);
Denn nur wenn ein Leerzeichen im String drin ist muss gequoted werden, bei Windows ist da dann automatisch kein Leerzeichen drin. Somit wäre die Codeänderung wiederum kompatibel zu allen Betriebssystemen, sogar auch zu solchen die keine Quotes unterstützen und zufällig keine Leerzeichen drin haben.
Schreibt mir wie Ihr darüber denkt, bzw. testet es mal mit den Dateien aus dem ZIP, entsprechend würde ich dann den Bugreport formulieren.
Ist schon irgendwie unschön, wenn ein HW-/SW-Entwickler wegen irgend welchen Installationen von vor X Jahren dann zu so einem Verhalten stößt.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6212
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Lazarus 2.0.4 Installationsproblem
Du könntest als Ziel einmal fpc_baseinfo versuchen. Da spukt das makefile alles mögliche an gefundenn Infos aus. Besonders auch welche Tools, von wo verwendet werden. Siehe Abschnitt Tools info.
Edit: Bei mir steht bei Shell ganz einfach sh.exe !!! Das wird als Shell beim bauen vom Makefile verwendet - nicht fpc.
Edit: Bei mir steht bei Shell ganz einfach sh.exe !!! Das wird als Shell beim bauen vom Makefile verwendet - nicht fpc.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.4 Installationsproblem
@af0815
Ich weiß nicht genau wie Du das meinst und wo ich was einstellen soll. Kannst Du mir bitte ein Screenshot schicken, damit ich die Einstellung auch wirklich so mache wie Du das Ergebnis dann sehen willst? Dankeschön.
Ich weiß nicht genau wie Du das meinst und wo ich was einstellen soll. Kannst Du mir bitte ein Screenshot schicken, damit ich die Einstellung auch wirklich so mache wie Du das Ergebnis dann sehen willst? Dankeschön.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Lazarus 2.0.4 Installationsproblem
Vielleicht probierst du die neue v2.0.6. Ich glaube zwar nicht, dass das was ändert... Bei mir funktioniert bei einem ersten Test alles, insbesondere das Neuübersetzen der IDE läuft problemlos durch, sowohl für 32-bit als auch für 64-bit. (Habe wie immer eine Sekundärinstallation gemacht, ein paar Benutzereinstellungen geändert, aber noch keine Komponenten installiert).
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.4 Installationsproblem
Nein, V2.0.6 hat den gleichen Bug.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6212
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Lazarus 2.0.4 Installationsproblem
MmVisual hat geschrieben:@af0815
Ich weiß nicht genau wie Du das meinst und wo ich was einstellen soll. Kannst Du mir bitte ein Screenshot schicken, damit ich die Einstellung auch wirklich so mache wie Du das Ergebnis dann sehen willst? Dankeschön.
Bitteschön
Code: Alles auswählen
D:\data\lazdev\work\lazarus>..\fpc\bin\i386-win32\make fpc_baseinfo
== Package info ==
Package Name..... lazarus
Package Version.. 2.0.3
== Configuration info ==
FPC.......... D:/data/lazdev/work/fpc/bin/i386-win32/ppc386.exe
FPC Version.. 3.2.0
Source CPU... i386
Target CPU... i386
Source OS.... win32
Target OS.... win32
Full Source.. i386-win32
Full Target.. i386-win32
SourceSuffix. i386-win32
TargetSuffix. i386-win32
FPC fpmake... D:/data/lazdev/work/fpc/bin/i386-win32/ppc386.exe
== Directory info ==
Required pkgs... rtl regexpr
Basedir......... D:/data/lazdev/work/lazarus
FPCDir.......... c:/pp
CrossBinDir.....
UnitsDir........
PackagesDir.....
GCC library.....
Other library...
== Tools info ==
As........ as
Ld........ ld
Ar........ ar
Rc........ rc
Mv........ D:/data/lazdev/work/fpc/bin/i386-win32/mv.exe
Cp........ D:/data/lazdev/work/fpc/bin/i386-win32/cp.exe
Rm........ D:/data/lazdev/work/fpc/bin/i386-win32/rm.exe
GInstall.. D:/data/lazdev/work/fpc/bin/i386-win32/ginstall.exe
Echo...... D:/data/lazdev/work/fpc/bin/i386-win32/gecho.exe
Shell..... sh.exe
Date...... D:/data/lazdev/work/fpc/bin/i386-win32/gdate.exe
FPCMake... D:/data/lazdev/work/fpc/bin/i386-win32/fpcmake.exe
PPUMove... D:/data/lazdev/work/fpc/bin/i386-win32/ppumove.exe
Zip....... D:/data/lazdev/work/fpc/bin/i386-win32/zip.exe
== Object info ==
Target Loaders........
Target Units..........
Target Implicit Units.
Target Programs....... lazarus startlazarus lazbuild
Target Dirs...........
Target Examples.......
Target ExampleDirs....
Clean Units.........
Clean Files.........
Install Units.......
Install Files.......
== Install info ==
DateStr.............. 20191101
ZipName.............. lazarus
ZipPrefix............
ZipCrossPrefix.......
ZipSuffix............ .i386-win32
FullZipName.......... lazarus.i386-win32
Install FPC Package.. n
Install base dir..... share/lazarus
Install binary dir... share/lazarus/bin/i386-win32
Install library dir.. share/lazarus/units/i386-win32/lazarus
Install units dir.... share/lazarus/units/i386-win32/lazarus
Install source dir... share/lazarus/source/lazarus
Install doc dir...... share/lazarus/doc/lazarus
Install example dir.. share/lazarus/examples/lazarus
Install data dir..... share/lazarus
Dist destination dir. D:/data/lazdev/work/lazarus/dist
Dist zip name........
Es ist IMHO kein Bug, sondern ein Problem wo ihr überall Programme liegen habt. Nicht umsonst versucht fpcupdeluxe eine womöglich unverseuchte Umgebung zu schaffen. Im makefile ist natürlich eine Diagnose enthalten, weil ihr ja nicht die einzigen mit diesen Problemen seit und man schon wissen will welche Tools verwendet werden.
Es ist aber hier nicht ein spezieller Fall, weil ich habe ähnliches gesehen, wenn ich zB. Golden Cheatah kompilieren will. Dagegen ist fpc/Lazarus ja eine einfache Übung (bei uns sagt man auch 'ein Lercherlschahs') dagegen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.4 Installationsproblem
Ja, genau so eine Beschreibung ist sehr gut, das kann ich dann auf meine Umgebung direkt umschreiben
Die Befehlszeile:
Das Ergebnis:
Darin sieht man dass 3 Tools aus dem Verzeichnis "D:/WinARM/make-tools/bin" genommen werden.
Die Frage wo sich mir stellt, wieso sucht der FPC überhaupt eine sh.exe, bzw. findet bei Dir diese in keinem expliziten Verzeichnis?
Wenn ich das Verzeichnis "D:/WinARM/make-tools" bei mir umbenenne dann kommt das dabei raus:
fpcupdeluxe macht es richtig, es verwendet genau die Dateien die "Unverseucht" sind. Da man dem Lazarus in den IDE-Einstellungen bei "Umgebung" > "Dateien" > "Compilerdateiname"schon gesagt hat wo der Kompiler liegt, sollte dieser als erstes in seinem eigenen Verzeichnis nach den benötigten Tools schauen und im zweiten Rang erst die PATH Einstellungen verwenden. Es ist im Prinzip eine Frage der Such-Priorität für die Tools.
Und für mich ist immer noch nicht klar warum das ganze überhaupt funktioniert wenn keine "sh.exe" vorhanden ist?
Bzw. woher der FPC eine sh.exe findet und nutzen kann wenn gar keine vorhanden ist?
Einfache Kontrolle:
Die Befehlszeile:
Code: Alles auswählen
C:\lazarus>.\fpc\3.0.4\bin\x86_64-win64\make fpc_baseinfo > c:\temp\fpcbasinfo.txt
Das Ergebnis:
Darin sieht man dass 3 Tools aus dem Verzeichnis "D:/WinARM/make-tools/bin" genommen werden.
Die Frage wo sich mir stellt, wieso sucht der FPC überhaupt eine sh.exe, bzw. findet bei Dir diese in keinem expliziten Verzeichnis?
Wenn ich das Verzeichnis "D:/WinARM/make-tools" bei mir umbenenne dann kommt das dabei raus:
fpcupdeluxe macht es richtig, es verwendet genau die Dateien die "Unverseucht" sind. Da man dem Lazarus in den IDE-Einstellungen bei "Umgebung" > "Dateien" > "Compilerdateiname"schon gesagt hat wo der Kompiler liegt, sollte dieser als erstes in seinem eigenen Verzeichnis nach den benötigten Tools schauen und im zweiten Rang erst die PATH Einstellungen verwenden. Es ist im Prinzip eine Frage der Such-Priorität für die Tools.
Und für mich ist immer noch nicht klar warum das ganze überhaupt funktioniert wenn keine "sh.exe" vorhanden ist?
Bzw. woher der FPC eine sh.exe findet und nutzen kann wenn gar keine vorhanden ist?
Einfache Kontrolle:
Code: Alles auswählen
C:\lazarus>where sh.exe
INFORMATION: Es konnten keine Dateien mit dem angegebenen Muster gefunden werden.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.4 Installationsproblem
Nun, ich habe mal die Reihenfolge der Suchpfade geändert. Das ist eine reine "makefile" Sache und hat nichts mit dem FPC zu tun.
Um die Änderung zu machen habe ich nur die Reihenfolge der Suchpfad Zuweisung "SEARCHPATH:=" / "SEARCHPATH+=" geändert:
Das Makefile hatte original so ausgesehen (ab Zeile 1):
Nach meiner Änderung dann so:
Nach dieser Änderung sieht man dass zu erst im FPC Ordner, danach im PATH Ordner gesucht wird:
Nun muss ich nur noch das mit der sh.exe heraus finden, warum das gefunden wird, es steht leider keine Zeile "SHELL:=..." im makefile. Hat mir dazu jemand einen Tipp wie ich suchen kann?
Um die Änderung zu machen habe ich nur die Reihenfolge der Suchpfad Zuweisung "SEARCHPATH:=" / "SEARCHPATH+=" geändert:
Das Makefile hatte original so ausgesehen (ab Zeile 1):
Code: Alles auswählen
#
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
OSNeedsComspecToRunBatch = go32v2 watcom
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
Nach meiner Änderung dann so:
Code: Alles auswählen
#
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
OSNeedsComspecToRunBatch = go32v2 watcom
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
SEARCHPATH:=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH+=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH+=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH+=$(subst ;, ,$(PATH))
endif
endif
Nach dieser Änderung sieht man dass zu erst im FPC Ordner, danach im PATH Ordner gesucht wird:
Nun muss ich nur noch das mit der sh.exe heraus finden, warum das gefunden wird, es steht leider keine Zeile "SHELL:=..." im makefile. Hat mir dazu jemand einen Tipp wie ich suchen kann?
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.6 Installationsproblem
Ich denke ich habe nun die korrekte Lösung für das Problem gefunden.
1) sh.exe mit Lazarus mit installieren (C:\lazarus\fpc\3.0.4\bin\x86_64-win64\)
2) im "makefile das eigene installierte Verzeichnis (C:\lazarus\fpc\3.0.4\bin\x86_64-win64) als erstes in die Variable SEARCHPATH nehmen
3) im "makefile" die Variable "SHELL" erst einmal selbst suchen und setzen
Zu 1)
Ich habe dazu die Dateien "sh.exe" und "msys-2.0.dll" aus dem FpcUpDeluxe in das "C:\lazarus\fpc\3.0.4\bin\x86_64-win64" kopiert. Damit diese mit vorhanden sind. Ob es noch weitere DLL's benötigt weiß ich nicht, ich bin nicht der "SH" Experte
Zu 2)
Diese Änderung am Zeile 13 in der makefile:
Zu 3)
Diese Zeilen ab Zeile 38 zusätzlich hinzugefügt:
Ich nutze die Variable $(MAKESHELL), da dies so in der Doku zu "make" drin steht, dass man diese dafür verwenden sollte.
Danach findet make die Dateien zu erst in der Lazarus installation
Die Dateien:
Leider kann ich Lazarus immer noch nicht übersetzen, ich vermute Lazarus macht erst mal sein eigenes Makefile (bzw. lässt es über ein Tool machen), wo natürliche diese Änderungen noch nicht drin sind.
Hat jemand mir dazu noch einen Tipp?
Vielen Dank für die gute Unterstützung, Grüße Markus
PS: Ich wollte noch kein Bug Ticket auf machen, ich weiß ja noch nicht ob es den FPC betrifft oder die Lazarus IDE. So wie ich es aktuell sehe betrifft es nur das makefile und ein paar fehlende Dateien im Lazarus Setup für Windows.
Um das Problem nachstellen zu können braucht es ein älteres "sh.exe", was z.B. für andere Programme auf dem System vorhanden ist, dies kann vom "WinARM_Bin.zip" von hier https://www.lazarusforum.de/viewtopic.p ... 19#p111319 geladen werden, danach muss das Verzeichnis im Betriebssystem in der PATH Variable mit angegeben werden, danach einmal ab- und wieder anmelden, damit die Änderung überall bekannt ist. Mit der Befehlszeile kann überprüft werden ob dieses falsche "SH" gefunden wird:
1) sh.exe mit Lazarus mit installieren (C:\lazarus\fpc\3.0.4\bin\x86_64-win64\)
2) im "makefile das eigene installierte Verzeichnis (C:\lazarus\fpc\3.0.4\bin\x86_64-win64) als erstes in die Variable SEARCHPATH nehmen
3) im "makefile" die Variable "SHELL" erst einmal selbst suchen und setzen
Zu 1)
Ich habe dazu die Dateien "sh.exe" und "msys-2.0.dll" aus dem FpcUpDeluxe in das "C:\lazarus\fpc\3.0.4\bin\x86_64-win64" kopiert. Damit diese mit vorhanden sind. Ob es noch weitere DLL's benötigt weiß ich nicht, ich bin nicht der "SH" Experte
Zu 2)
Diese Änderung am Zeile 13 in der makefile:
Code: Alles auswählen
SEARCHPATH:=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH+=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH+=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH+=$(subst ;, ,$(PATH))
endif
endif
Zu 3)
Diese Zeilen ab Zeile 38 zusätzlich hinzugefügt:
Code: Alles auswählen
MAKESHELL:=$(firstword $(strip $(wildcard $(addsuffix /sh$(SRCEXEEXT),$(SEARCHPATH)))))
ifneq ($(MAKESHELL),)
SHELL:=$(MAKESHELL)
endif
Ich nutze die Variable $(MAKESHELL), da dies so in der Doku zu "make" drin steht, dass man diese dafür verwenden sollte.
Danach findet make die Dateien zu erst in der Lazarus installation
Die Dateien:
Leider kann ich Lazarus immer noch nicht übersetzen, ich vermute Lazarus macht erst mal sein eigenes Makefile (bzw. lässt es über ein Tool machen), wo natürliche diese Änderungen noch nicht drin sind.
Hat jemand mir dazu noch einen Tipp?
Vielen Dank für die gute Unterstützung, Grüße Markus
PS: Ich wollte noch kein Bug Ticket auf machen, ich weiß ja noch nicht ob es den FPC betrifft oder die Lazarus IDE. So wie ich es aktuell sehe betrifft es nur das makefile und ein paar fehlende Dateien im Lazarus Setup für Windows.
Um das Problem nachstellen zu können braucht es ein älteres "sh.exe", was z.B. für andere Programme auf dem System vorhanden ist, dies kann vom "WinARM_Bin.zip" von hier https://www.lazarusforum.de/viewtopic.p ... 19#p111319 geladen werden, danach muss das Verzeichnis im Betriebssystem in der PATH Variable mit angegeben werden, danach einmal ab- und wieder anmelden, damit die Änderung überall bekannt ist. Mit der Befehlszeile kann überprüft werden ob dieses falsche "SH" gefunden wird:
Code: Alles auswählen
WHERE SH.EXE
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.6 Installationsproblem
Ich habe nun ein Bugticket erstellt. Ich hoffe das ist verständlich geschrieben:
https://bugs.freepascal.org/view.php?id=36261
Vielen Dank für die professionelle Hilfe, damit konnte/n ich/wir dem Problem auf den Grund gehen.
https://bugs.freepascal.org/view.php?id=36261
Vielen Dank für die professionelle Hilfe, damit konnte/n ich/wir dem Problem auf den Grund gehen.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6212
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Lazarus 2.0.6 Installationsproblem
Meine Verständnis nach ist das kein Bug, sondern durch die verschiedenen Tools und Entwicklungumgebungen hervorgerufen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Lazarus 2.0.6 Installationsproblem
Ich finde schon dass es ein Bug ist. Lazrus liefert mit dem Setup die eigenen "make" tools mit damit es kompillieren kann, und nutzt diese jedoch nicht konsequent, sondern irgend etwas anders was noch auf dem System vorhanden ist.
Das neue Tool FpcUpateDeluxe kreiert schließlich auch seine eigene "make" Umgebung und kann deshalb immer korrekt das Lazarus erstellen, egal was sonst noch auf dem System vorhanden ist. Das offizielle Lazarus Setup paket sollte dies ebenfalls können und mit meinen kleinen Änderungen sollte es recht einfach machbar sein. Bei der Änderung/Anpassung vom makefile habe ich darauf geachtet dass es entsprechend der GNU make doku geschehen ist und sollte somit unter allen anderen Betriebssystemen ebenfalls funktionieren.
Hier die make doku für "Choosing a Shell in DOS and Windows":
https://www.gnu.org/software/make/manua ... Shell.html
Das neue Tool FpcUpateDeluxe kreiert schließlich auch seine eigene "make" Umgebung und kann deshalb immer korrekt das Lazarus erstellen, egal was sonst noch auf dem System vorhanden ist. Das offizielle Lazarus Setup paket sollte dies ebenfalls können und mit meinen kleinen Änderungen sollte es recht einfach machbar sein. Bei der Änderung/Anpassung vom makefile habe ich darauf geachtet dass es entsprechend der GNU make doku geschehen ist und sollte somit unter allen anderen Betriebssystemen ebenfalls funktionieren.
Hier die make doku für "Choosing a Shell in DOS and Windows":
https://www.gnu.org/software/make/manua ... Shell.html
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Lazarus 2.0.6 Installationsproblem
MmVisual hat geschrieben:Bei der Änderung/Anpassung vom makefile habe ich darauf geachtet [...]
Sorry, aber da ist was oberfaul. Ich musste noch nie in make-files eingreifen (und, ehrlich gesagt, könnte ich das auch nicht - ich habe die Dinger noch nie verstanden...). Ich habe es schon ein paar mal geschrieben (hast du das gelesen?): Es würde einen Sturm von Beschwerden geben, wenn die Release-Versionen von Laz (auch auch die Trunk-Version) mit solchen Fehlern behaftet wären, wie du hier (und im Bug-Report) beschreibst.
-
- Beiträge: 74
- Registriert: Do 28. Sep 2017, 10:26
Re: Lazarus 2.0.6 Installationsproblem
As maintainer of fpcupdeluxe I would like to add that the Makefile poses the biggest challenge in trying to make an isolated install of FPC and Lazarus.
Many times, the Makefile tries to look for tools system wide. Often picking up the wrong ones. And also picking up FPC and Lazarus stuff from inside the path.
So, in my opinion, the Makefile problem is not a real bug.
But to use it correctly in presence of Cygwin and co (in the path), you need to set some variables yourself to prevent a system wide search of some of these variables (tools).
Many times, the Makefile tries to look for tools system wide. Often picking up the wrong ones. And also picking up FPC and Lazarus stuff from inside the path.
So, in my opinion, the Makefile problem is not a real bug.
But to use it correctly in presence of Cygwin and co (in the path), you need to set some variables yourself to prevent a system wide search of some of these variables (tools).