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;
}
コンパイル
Makefileとmain.cが置いてあるディレクトリで、「make」とタイプするとEBOOT.PBPが作成されます。多分。エラーが出たらフィードバック。
最終更新:2009年02月01日 14:55