KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: INCLDIR und LIBDIR
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo alle zusammen,
ich hätte da mal eine Frage über die makefile.

Also folgende Zeilen in der makefile bereiten mir Kopfzerbrechen:

INCDIR =
LIBDIR =

Ich weiß das man in diese Zeilen schreibt, wo sich der include Ordner und der lib Ordner befindet, nur gibt es bei mir irgendwie das Problem, dass ich mehrere include und lib Ordner habe. Einmal bei (C:/pspsdk/include, C:/pspsdk/lib, bei C:/pspsdk/psp/include, C:/pspsdk/psp/lib und bei C:/pspsdk/psp/sdk/include, C:/pspsdk/psp/sdk/lib). Welche von diesen soll ich jetzt nun angeben?

Bis jetzt habe ich diese zwei Zeilen aber eigentlich nie benutzt und konnte trotzdem Headerdateien inkludieren und libs benutzen. Aber jetzt frage ich mich, wieso in sovielen makefiles diese Zeilen eingefügt wurden.
Wenn ich meine Headerdateien in (C:/pspsdk/psp/sdk/include) und die libs in (C:/pspsdk/psp/sdk/lib) habe, was muss ich dann bei "INCDIR = " und "LIBDIR = " schreiben?

Und dann hätte ich noch eine weitere Frage:
In meiner makefile sieht die ASFLAGS Zeile so aus:

ASFLAGS = $(CFLAGS)

Aber ich habe auch oft folgende Versionen gesehen:

ASFLAGS = $(CFLAGS) -c und ASFLAGS = -c $(CFLAGS)

Was ist der Unterschied?

Fly Destination
da, wo du deine libs/includes installiert hast.
Logischerweise C:\pspsdk\psp\sdk

Es kommt noch darauf an, welche pfade in der .bat angegeben werden.
Lass die beiden Zeilen leer, falls es nicht funktioniert schreib sdk/include bzw. sdk/lib hin.

Wozu die flags da sind: http://de.wikipedia.org/wiki/Flag_%28Informatik%29

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

Den Unterschied weiß ich leider nicht. Es gibt sowieso nur 2 möglichkeiten: entweder steht das "-" für include oder für minus.
Ok, verstehe, danke Smile
Hätte da aber noch eine Frage.
Bei der Zeile: PSP_FW_VERSION =
Wann muss man da 150, 200, 371, 500, etc. reinschreiben? Wovon ist das abhängig? Was müsste man da reinschreiben wenn das Homebrew auf allen PSP Firmwares gehen soll?

Fly Destination
Es wird nie und nimmer auf allen Firmwares laufen.
Der 1.5 Kernel is sozusagen "ausgestorben".

Wenn du für den neueren Kernel kompilern willst - das musst du, denn in der Regel benutzen nur sehr wenige den 1.5 Kernel -, musst du folgendes machen:

In der Makefile:

Code:
PSP_FW_VERSION = 400
BUILD_PRX = 1


Damit bist du auf der sicheren Seite.

Dann in deiner main.c nach den #includes:

Code:
PSP_MODULE_INFO("Dein App name", 0x200, 1, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
PSP_HEAP_SIZE_MAX();

da solltest du am besten 371 eingeben Wink 150 = 1.50 Kernel etc. Wink

JA MAN Bin mit dem laptop onLine

Chagano :
Es wird nie und nimmer auf allen Firmwares laufen.
Der 1.5 Kernel is sozusagen "ausgestorben".

Wenn du für den neueren Kernel kompilern willst - das musst du, denn in der Regel benutzen nur sehr wenige den 1.5 Kernel -, musst du folgendes machen:

In der Makefile:

Code:
PSP_FW_VERSION = 400
BUILD_PRX = 1


Damit bist du auf der sicheren Seite.

Dann in deiner main.c nach den #includes:

Code:
PSP_MODULE_INFO("Dein App name", 0x200, 1, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
PSP_HEAP_SIZE_MAX();


Danke für die Antwort Smile
Ich habe auch oft folgendes gesehehn:

PSP_FW_VERSION = 500

Hätte das den gleichen Effekt wie

PSP_FW_VERSION = 400

Würden dann beide auf den neueren CFW's und dem HEN von Total_Noob gehen? Und ich habe bis jetzt eigentlich nie das mit dem PSP_FW_VERSION drinne gehabt und es hat trotzdem funktioniert (waren aber meistens eher kleiner Programme ,,Hello World", etc.) Braucht man diese Zeile denn unbedingt?

EDIT:

Was machen denn diese beiden Zeilen:


PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
PSP_HEAP_SIZE_MAX();

Fly Destination

Damit sicherst du speicher für deine "prx", die ja in einer eboot ist.
Du machst eine "prx"-eboot, da die kompatibilität damit steigt.
Mache libs benötigen dies, um überhaupt zu funktionieren, weil sie oft nur für den 1.5 kernel ausgelegt wurden.


PSP_FW_VERSION = 400 bzw. 371 (es gab mal einige CFW in vereinzelten foren, nachdem die OE-Reihe beendet wurde. die ersteller glaubten damals das DA schon die szene verlassen hat und wurden selbst tätig, deshalb nehme ich gerne 400)

Ich bin mir nicht sicher, aber ich denke das die Zeile entweder für den Compiler oder für die PsP ist.
Ob es einen Unterschied macht? schwer zu sagen, ich hab 4XX übersprungen (inaktiv), deshalb kann ich es dir nicht beantworten.
Für den HEN hab ich auch noch nichts geschrieben, sorry.
Ok Danke Chagano, aber eine aller letzte Frage bezüglich der makefile hätte ich noch Big Grin
Undzwar geht es um die Zeile: BUILD_PRX =

Wenn bei BUILD_PRX = eine 0 steht, heißt es doch, dass keine PRX erstellt werden soll und wenn da eine 1 steht, dass eine erstellt werden soll, oder?
Aber wieso ist dann in der makefile des HEN folgende Zeile drin? :o

BUILD_PRX = 1

Der HEN ist doch kein PRX sondern eine EBOOT.

Fly Destination
Eine Eboot ist sozusagen ein container, wo die .prx oder .elf reinkommt. in dem container sind auch noch die xmb sachen, wie icon0.png usw. drin.
Man benutzt .prx für den 3xx/4xx Kernel. Die Slim z.B. hat gar keinen 1.5 Kernel.

Und ja, wenn BUILD_PRX = 1 steht, wird eine erstellt.

Das schöne daran ist, das man den code fast 1:1 (man muss die oben geposteten sachen eben in seiner main.c drin haben) für beides nutzen kann.

Prx steht für (PreIRGENDWAS ResIRGENDWAS eXecutable) [ich weiß es nicht mehr^^]
Korrigiert mich wenn ich falsch liege^^
Referenz-URLs