Library Path OS4 SDK
Moderator: OS4Welt-Team
Library Path OS4 SDK
Hallo ihr Lieben,
ich versuche seit geraumer Zeit das texlive-System 2013 für Amiga OS4 zu kompilieren. Nach einigen Anpassungen kompiliert er schon eine ganze Menge. Mit freetype und der libpng gibt es aber Probleme. Ich möchte am liebsten diese Bibliotheken von der clib2 und newlib nutzen nur findet er die nicht. Gibt es denn keinen LD_LIBRARY_PATH wie unter linux-Systemen? Wie macht man denn innerhalb der abc-Shell klar, wo die Libs liegen? Weiß einer Rat?
Liebe Grüße,
svenali
ich versuche seit geraumer Zeit das texlive-System 2013 für Amiga OS4 zu kompilieren. Nach einigen Anpassungen kompiliert er schon eine ganze Menge. Mit freetype und der libpng gibt es aber Probleme. Ich möchte am liebsten diese Bibliotheken von der clib2 und newlib nutzen nur findet er die nicht. Gibt es denn keinen LD_LIBRARY_PATH wie unter linux-Systemen? Wie macht man denn innerhalb der abc-Shell klar, wo die Libs liegen? Weiß einer Rat?
Liebe Grüße,
svenali
Re: Library Path OS4 SDK
@svenali
Zuerst einmal heist es entweder clib2 oder newlib.
Das gleichzeige verwenden von 2 verschiedenen C-Laufzeitumgebung ist nicht ratsam...
Hast du schon SDK:AmigaOS 4.1 SDK.pdf gelesen? Da ist das eigendlich ganz gut erklärt.
Besonders Abschnitt 4 und 6.
Zuerst einmal heist es entweder clib2 oder newlib.
Das gleichzeige verwenden von 2 verschiedenen C-Laufzeitumgebung ist nicht ratsam...
Hast du schon SDK:AmigaOS 4.1 SDK.pdf gelesen? Da ist das eigendlich ganz gut erklärt.
Besonders Abschnitt 4 und 6.
Re: Library Path OS4 SDK
Hallo ZeroG,
Zunächst einmal (auch an alle anderen) ein frohes und gesundes Jahr 2014!!!
Vielen Dank ZeroG, für Deine Antwort. Ich habe mich sehr unglücklich ausgedrückt. Das entweder oder ist mir klar und auch die SDK-Docs habe ich gelesen. Die sind auch sehr klar und verständlich formuliert. Und ich habe nach erneuter Lektüre tatsächlich ein paar Fakten überlesen. Auf jeden Fall liefert Abschnitt 4 Aufschluss. Ich muss nun gucken, dass ich den mcrt-Parameter ins Build-Skript bekomme, um die newlib zu verwenden. Mal sehen, ob es klappt. Ich berichte.
Liebe Grüße und feiert noch schön!
svenali
Zunächst einmal (auch an alle anderen) ein frohes und gesundes Jahr 2014!!!
Vielen Dank ZeroG, für Deine Antwort. Ich habe mich sehr unglücklich ausgedrückt. Das entweder oder ist mir klar und auch die SDK-Docs habe ich gelesen. Die sind auch sehr klar und verständlich formuliert. Und ich habe nach erneuter Lektüre tatsächlich ein paar Fakten überlesen. Auf jeden Fall liefert Abschnitt 4 Aufschluss. Ich muss nun gucken, dass ich den mcrt-Parameter ins Build-Skript bekomme, um die newlib zu verwenden. Mal sehen, ob es klappt. Ich berichte.
Liebe Grüße und feiert noch schön!
svenali
- MichaelMerkel
- AmigaOS Betatester
- Beiträge: 899
- Registriert: 25. September 2009 22:38
- Wohnort: Ilvesheim
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 10 Mal
- Kontaktdaten:
Re: Library Path OS4 SDK
hmmm.. ich meine doch, das newlib der default ist seit geraumer zeit, oder?!so steht es ja auch in dem genannten abschnitt 4 drin.svenali hat geschrieben:...
Auf jeden Fall liefert Abschnitt 4 Aufschluss. Ich muss nun gucken, dass ich den mcrt-Parameter ins Build-Skript bekomme, um die newlib zu verwenden. Mal sehen, ob es klappt. Ich berichte.
...
gruß...
michael
- Cyborg
- AmigaOS Entwickler
- Beiträge: 3514
- Registriert: 28. September 2009 11:10
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 34 Mal
Re: Library Path OS4 SDK
MichaelMerkel hat geschrieben: hmmm.. ich meine doch, das newlib der default ist seit geraumer zeit, oder?!so steht es ja auch in dem genannten abschnitt 4 drin.
So ist es. mcrt ist nur nötig, falls man mit clib2 kompilieren möchte. Shellvariablen werden in abc-shell genau so gesetzt, wie in jeder Bourne-Shell unter Linux.
Re: Library Path OS4 SDK
ich meinte auch, will es mal mit clib2 versuchen. Entschuldigt.
mir macht auch die kpathsea Kummer. In texlive gibt es jede Menge Amigareste im Code. Erinnert sich hier jemand, ob es mal Funktionen gab, die findpath und getpath hießen? und wo die jetzt implementiert sind?
Liebe grüße,
svenali
mir macht auch die kpathsea Kummer. In texlive gibt es jede Menge Amigareste im Code. Erinnert sich hier jemand, ob es mal Funktionen gab, die findpath und getpath hießen? und wo die jetzt implementiert sind?
Liebe grüße,
svenali
Re: Library Path OS4 SDK
Die beiden Funktionen sind nicht im SDK zu finden.
Im angesicht des alters des Quelltextes hab ich mal ins Handbuch von SAS/C 6 geguckt und die beiden gefunden.
Allerdings steht da das es Funktionen der dos.library sind, wenn ich auf AmigaDeveloperCD 2.1 danach suche finde ich die Funktionen nur in den includes vom StromC. Was reichlich merkwürdig ist weil da praktisch das komplette C= Infomaterial drauf ist.
Hier mal die Infos aus dem SAS/C Handbuch:
Im angesicht des alters des Quelltextes hab ich mal ins Handbuch von SAS/C 6 geguckt und die beiden gefunden.
Allerdings steht da das es Funktionen der dos.library sind, wenn ich auf AmigaDeveloperCD 2.1 danach suche finde ich die Funktionen nur in den includes vom StromC. Was reichlich merkwürdig ist weil da praktisch das komplette C= Infomaterial drauf ist.
Hier mal die Infos aus dem SAS/C Handbuch:
getpath Get the path for a specific directory/file
Synopsis: error = getpath(lock, path);
int error; /* 0 if ok, -1 if error */
BPTR lock; /* input */
char *path; /* destination buffer */
Description: This function returns the fully specifed path string for the directory and/or file referenced by the lock. The path argument includes the volume name. The destination buffer must be large enough to contain the string.
Portability: AmigaDOS
Returns: if the getpath function is successful, it returns 0; otherwise, it returns -1.
See Also: findpath, Lock and UnLock
findpath Locate a file in the current path
Synopsis: lock = findpath(filename);
BPTR lock;
const char *filename;
Description: This function locates a file in the currently defined path. If the process is not a Shell process, it uses the path in effect when Workbench was loaded.
Portability: AmigaDOS
Returns: if the findpath function finds the file, it returns a lock on that directory even if it is the current directory. The lock must be unlocked with the AmigaDOS UnLock function. If the findpath function cannot find the file, it returns a -1. The value NULL is not used because NULL is a valid lock.
See Also: getpath, UnLock
Re: Library Path OS4 SDK
Danke ZeroG!!! Ich habe derweilen auch noch vereinzelte Codeschnippsel gefunden. Mein Gott, muss dann doch schon länger her sein, dass TexLive auf einem Amiga übersetzt wurde. OK. Ich werde mal versuchen als nächstes diese beiden Funktionen zu implementieren. Andererseits könnte dank einigermaßener POSIX-Konformität ja auch mittlerweile der UNIX-Code laufen. Ist spannend - Ich werde berichten.
Gute Nacht und Liebe Grüße,
svenali
Gute Nacht und Liebe Grüße,
svenali
Re: Library Path OS4 SDK
Statt "getpath" kannst du IDOS->NameFromLock benutzen.
"findpath" gibt es so nicht im AmigaOS. Du kannst das als Anregung benutzen: http://thomas-rapp.homepage.t-online.de ... es/which.c
Die Funktion "which" gibt allerdings ein Lock auf die Datei zurück und nicht auf das enthaltende Directory. Das müsstest du also ändern.
Es sind auch noch ein paar andere Schönheitsfehler drin. Struct PathNode ist mittlerweile in einem Include-File definiert. Statt AllocVec sollte man AllocDosObject benutzen. Das sind zwei, die mir gerade aufgefallen sind.
Gruß Thomas
"findpath" gibt es so nicht im AmigaOS. Du kannst das als Anregung benutzen: http://thomas-rapp.homepage.t-online.de ... es/which.c
Die Funktion "which" gibt allerdings ein Lock auf die Datei zurück und nicht auf das enthaltende Directory. Das müsstest du also ändern.
Es sind auch noch ein paar andere Schönheitsfehler drin. Struct PathNode ist mittlerweile in einem Include-File definiert. Statt AllocVec sollte man AllocDosObject benutzen. Das sind zwei, die mir gerade aufgefallen sind.
Gruß Thomas
Re: Library Path OS4 SDK
Danke Thomas! Er kompiliert nach kleinen Änderungen bis jetzt noch fehlerfrei. Bin gespannt. Habe jetzt mal den Unixcode der kpathsea statt dem alten Amigacode genommen. Mal sehen. Wenn es dann knallt muss ich ran. Dann werde ich versuchen, Deine Funktionen zu implementieren. Irgendwie krieg ich das zum Laufen.
Liebe Grüße,
svenali
Liebe Grüße,
svenali