LCL GTK2 per kommandozeile bauen

Antworten
Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

LCL GTK2 per kommandozeile bauen

Beitrag von Targion »

Hallo!
Wie der Titel schon sagt: Wie kann ich die GTK2 oder Qt LCL per Kommandozeile bauen? Einfache "make all LCLTARGET=gtk2"-Befehle scheinen falsch zu sein. Ich brauche diese Möglichkeit, um Lazarus-Projekte mit dem openSuSE-buildservice oder Launchpad bauen zu können.

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

Code: Alles auswählen

fpc -S2cgi -OG1 -gl -WG -vewnhi -l -Fu/usr/lib/lazarus/components/opengl/gtk2x11/ -Fi/usr/lib/lazarus/components/opengl/gtk2x11/include/ -Fu/usr/lib/lazarus/components/jpeg/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/gtk2/ -Fu/usr/lib/lazarus/packager/units/$ARCH-$OS/ -Fu. -o./gdiscoverer -dLCL -dLCLgtk2 gDiscoverer.lpr
wobei das $Arch-$OS durch architectur-betriebsystem ersetzt werden muss, oder du nimms das script:

Code: Alles auswählen

#
# Detects and parses the architecture
#
 
ARCH=$(uname -m)
 
case "$ARCH" in
 
 "i686") ARCH="i386";;
 
 "i586") ARCH="i386";;
 
 "i486") ARCH="i386";;
 
esac
 
echo "Target architecture: $ARCH"
 
#
# Detects and parses the OS
#
 
OS="linux"
 
echo "Target operating system: $OS"
 
 
#
# Command line to build the sofware
#
 
fpc -S2cgi -OG1 -gl -WG -vewnhi -l -Fu/usr/lib/lazarus/components/opengl/gtk2x11/ -Fi/usr/lib/lazarus/components/opengl/gtk2x11/include/ -Fu/usr/lib/lazarus/components/jpeg/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/gtk2/ -Fu/usr/lib/lazarus/packager/units/$ARCH-$OS/ -Fu. -o./gdiscoverer -dLCL -dLCLgtk2 gDiscoverer.lpr


ach ja, gDiscoverer duch den namen deines projectes ersetzen.

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Ja, soweit war ich schon. Allerings installieren BS und LP immer die GTK1-Version von Lazarus. Und um GTK2-Anwendungen zu schreiben, brauche ich eine für GTK2-Kompilierte LCL.

[edit]Auweia, ich glaube ich habe diese Probleme nur, weil ein Pfad in meinem Makefile falsch ist... Ich melde mich nochmal, wenn ich das Probllem (nicht) behoben habe[/edit]

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

wiso musst du das unbedingt von der kommandozeile aus machen ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Ich kann dem BuildService schlecht sagen: Installiere X11, öffne Lazarus, Werkzeuge->Lazaruz erstellen einrichten ->LCL erstellen,wähle GTK2 und führe es aus. ;-)
Die Installation eigener Pakete erlauben die Services meistens nicht.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

und

"make LCL LCL_PLATFORM=gtk2"

tuts wirklich nicht ? Was anderes tut Lazarus doch auch nicht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

matthias@matthias-linuxws:~$ cd /usr/lib/lazarus
matthias@matthias-linuxws:/usr/lib/lazarus$ make LCL LCL_PLATFORM=gtk2
make: *** Keine Regel, um »LCL« zu erstellen. Schluss.

Und nur make LCL_PLATFORM=gtk2 bringt nichts. Kann natürlich auch an der SVN-Version liegen...

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

make lcl vieleicht ? kA schau doch mal ins makefile, ein Target lcl gibts auf jeden fall.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Gibt es: make lcl_all
Wie ich die LCL für GTK2 erstelle, weis ich leider immernoch nicht

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

hast du nun mal ins makefile geschaut?
was sagst

make lcl LCL_PLATFORM=gtk2

nun ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Geht auch so:
cd /usr/lib/lazarus/lcl/interfaces/gtk2
make all
Die Option LCL_PLATFORM ist in meinem Makefile irgendwie nicht vorhanden.
Danke für die Hilfe, es funktioniert jetzt!

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

vieleicht PLATTFORM ? Aber wie ich schon 3x sagte schau einfach ins makefile
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Christian hat geschrieben:vieleicht PLATTFORM ? Aber wie ich schon 3x sagte schau einfach ins makefile
Ein Makefile mit 3500 Zeilen ist nicht gerade das übersichtlichste.
Und Targion hat recht. Seltsamerweise scheint in dem makefile garkein LCL_PLATFORM zu existieren.

Gruß Alexander


PS: Das könnte man auch freunlicher formulieren.
Und außerdem wenn es so einfach wäre (einfach ins Makefile schauen) hättest es du bestimmt auch selbst schnell gemacht...
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Antworten