Library Path OS4 SDK

...für und mit Amiga OS4

Moderator: OS4Welt-Team

Benutzeravatar
svenali
Beiträge: 24
Registriert: 16. November 2013 21:03

Library Path OS4 SDK

Beitrag von svenali »

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
Benutzeravatar
ZeroG
OS4Welt-Team
Beiträge: 2656
Registriert: 25. September 2009 18:19
Danksagung erhalten: 6 Mal

Re: Library Path OS4 SDK

Beitrag von ZeroG »

@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.
Benutzeravatar
svenali
Beiträge: 24
Registriert: 16. November 2013 21:03

Re: Library Path OS4 SDK

Beitrag von svenali »

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
Benutzeravatar
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

Beitrag von MichaelMerkel »

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.
...
hmmm.. ich meine doch, das newlib der default ist seit geraumer zeit, oder?!so steht es ja auch in dem genannten abschnitt 4 drin.

gruß...
michael
Michael Merkel :lol:
(Member of Amiga Freunde Pfalz)
AmigaOne X1000/X5000 - Betatester
Benutzeravatar
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

Beitrag von Cyborg »

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.
.. der SysOp hat immer recht :evil:

PGP Schlüssel verfügbar
Benutzeravatar
svenali
Beiträge: 24
Registriert: 16. November 2013 21:03

Re: Library Path OS4 SDK

Beitrag von svenali »

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
Benutzeravatar
ZeroG
OS4Welt-Team
Beiträge: 2656
Registriert: 25. September 2009 18:19
Danksagung erhalten: 6 Mal

Re: Library Path OS4 SDK

Beitrag von ZeroG »

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:
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
Benutzeravatar
svenali
Beiträge: 24
Registriert: 16. November 2013 21:03

Re: Library Path OS4 SDK

Beitrag von svenali »

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
Benutzeravatar
Thomas
Beiträge: 123
Registriert: 2. Oktober 2009 16:27

Re: Library Path OS4 SDK

Beitrag von Thomas »

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
Benutzeravatar
svenali
Beiträge: 24
Registriert: 16. November 2013 21:03

Re: Library Path OS4 SDK

Beitrag von svenali »

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
Antworten