※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Makefile

TARGET = hello
OBJS = main.o

PSPPRE = $(shell psp-config --psp-prefix)
PSPDEV = $(shell psp-config --pspdev-path)
PSPSDK = $(shell psp-config --pspsdk-path)
PSPBIN = $(PSPSDK)/../bin

INCS = $(PSPSDK)/include $(PSPDEV)/include $(PSPPRE)/include

INCDIR = $(INCS)
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS = -Wl
LIBS = -L/usr/local/pspdev/psp/lib -L$(PSPSDK)/lib -L$(PSPDEV)/lib
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hello world

include $(PSPSDK)/lib/build.mak

TARGET

コンパイル中に、elfファイルのファイル名として使われます。他の事は知りません。

OBJS

コンパイルするオブジェクト達です。ソースファイルがmain.cのみの場合はmain.o、ソースファイルがmain.cとabon.cとpsp.cの場合はmain.o abon.o psp.oなど…、コンパイルするソースファイルの.cを.oにした名前を並べていきます。

PSPPRE, PSPDEV, PSPSDK, PSPBIN

これらは、psptoolchainでインストールしたファイルのパスです。

INCS, INCDIR

ソースファイルにincludeするファイルが格納されているディレクトリを指定しています。

CFLAGS

C言語で書かれているファイルをコンパイルする時、コンパイラに渡すオプションです。

CXXFLAGS

C++言語で書かれているファイルをコンパイルする時、コンパイラに渡すオプションです。

ASFLAGS

アセンブラで書かれているファイルをコンパイルする時、コンパイラに渡すオプションです。

LIBDIR

自作等の外部ライブラリ(*.a)のディレクトリを指定する時に使います。

LDFLAGS

リンカに渡すオプションです。

LIBS

リンクするライブラリです。
例) -L/usr/local/pspdev/psp/lib -L$(PSPSDK)/lib -L$(PSPDEV)/lib -lpng -lz
例の解説) libpngとlibzを使用する。

EXTRA_TARGETS

ビルド時に同時に作成したいファイルをここに書きます。例えばリリース用のtgzファイルを同時に作りたい場合など、EXTRA_TARGETS=release.tgz 等とし、$(EXTRA_TARGETS) : eboot.pbp; tar cvzf $(EXTRA_TARGETS) eboot.pbp readme.txt とかすれば、make一発でrelease.tgzまで作ることができます。

PSP_EBOOT_TITLE

PSPのXMBで見たときに表示されるゲームタイトルです。

include $(PSPSDK)/lib/build.mak

PSPのMakefileのテンプレ。

その他

以下の変数で、EBOOT.PBPに手を加えることができます。
  • PSP_EBOOT_ICON
    • PSPのXMBで見たときの、ゲームアイコンです。PNGです。
  • PSP_EBOOT_PIC1
    • PSPのXMBで見たときの、背景です。PNGです。
  • PSP_EBOOT_SND0
    • PSPのXMBで見たときの、BGMです。ATRAC3らしいです。
  • PSP_EBOOT_ICON1
    • PSPのXMBで見たときの、ゲームアイコンです。PMFムービーです。

main.c

main関数から始まります。引数や返り値はどうでも良いみたいです。
#include <pspkernel.h>

PSP_MODULE_INFO("TEST",0,1,1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
 
int main(int argc,char *argv[])
{

sceKernelExitGame();

return 0;
}
詳しい説明はpspで動作する最小っぽいソースを見てください。

コンパイル

Makefileとmain.cが置いてあるディレクトリで、「make」とタイプするとEBOOT.PBPが作成されます。多分。エラーが出たらフィードバック。