PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

2010年01月13日更新
PSPSDK における、makefile の書き方です。
今回は、プラグイン編 をお送りします。
YES! プラグインとは拡張子 '.prx' の、何個でも同時に起動できる実行モジュールですね。

下記の資料は、『カスタムファームウェア 3.10 OE-A』で使われていたソース 'recovery.prx' を生成する為の makefile をちょっと手直ししたものを掲載しています。

ファイル名は、makefileで!(英小文字でないと、認識されません)
---------------------    コ コ か ら    ----------------------
TARGET = recovery
OBJS = main.o conf.o

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

USE_KERNEL_LIBC = 1
USE_KERNEL_LIBS = 1
BUILD_PRX = 1

LIBDIR =
LIBS =
LDFLAGS += -mno-crt0 -nostartfiles

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build_prx.mak

main.o : main.c head.h define.h
conf.o : conf.c head2.h
---------------------    コ コ ま で    ----------------------

[ 以下、解説 ]
'TARGET = ??????' で指定した名前の ELF ファイルが生成されます。??????.elf というファイルです(この場合は、recovery.elf ですね)。
プラグインのファイル名の宣言でもあります。DoDoDo だったら DoDoDo.prx です。

'OBJS = ???1.o ???2.o ???3.o ???4.o' は、生成されるオブジョクトファイル名を記述します。ソースがC言語とか、C++言語とか、アセンブラ言語だろうが、そのファイル名で、拡張子を '.o' にして記述します。記述の長さが1行(80文字くらい)以上になる場合は、行末に、\ 記号を記述して改行して、次の行に、'???5.o ???6.o ???7.o' などと、延々と書いてゆきます。実行プラグインの為に記述したソースを全部、拡張子 '.o' で記述します。

'INCDIR = ' で指定したフォルダを優先的に検索して、ソース内の
     #include <ナントカ.h> ← (例) を、インクルードします。記述してなかったら、標準のインクルード先を参照します。大抵、記述しなくても良いと思います。

'CFLAGS = ' で指定したパラメータを、コンパイラーに渡してコンパイルや、アセンブルを行ないます。記述しないと、変テコな実行プラグイン・コードが吐き出されるかも知れませんので、是非、正しく記述して下さい。

'CXXFLAGS = ' は、多分、コンパイラーに渡すフラグ(パラメータ以外のん)を記述するのでは無いかと思います。
      解からないので、このまま記述。

'ASFLAGS = ' は、多分、アセンブラーに渡すフラグ(パラメータ以外のん)を記述するのでは無いかと思います。
      解からないので、このまま記述。

'USE_KERNEL_LIBC = 1' は、カーネルのLIBC を参照する( = 1 )という意味らしいです。
'USE_KERNEL_LIBS = 1' は、カーネルのLIBS を参照する( = 1 )という意味らしいです。
↑↑この2項目は、カーネルモードのプラグインを生成する場合に記述するのだそうです。
ユーザーモードのプラグインを生成する場合は記述しないで下さい。

'BUILD_PRX = 1' は、プラグインを生成するという宣言です。その際、'TARGET = ??????' で指定した名前に、拡張子 '.prx' を付けたプラグイン(ファイル)が生成されます(この場合、recovery.prx ですね)。

'LIBDIR =' は、ライブラリのあるフォルダを指定する際に記述します。記述しなかったら、カレントフォルダか、標準のライブラリの場所から検索して結合します。

'LIBS =' は、リンクの時に結合されるアーカイブ(libpspgu.a)の場合は、'-lpspgu' と記述します。
  ( lib-l で、拡張子 '.a' は省く / UMD操作には、'libpspumd.a' → '-lpspumd' を記述)。
   コンパイル済みのオブジェクトファイル(拡張子'.o')をリネームしたファイル(拡張子'.a')だとお考え下さい。
   コンパイルする手間が省けます

'LDFLAGS =' は、リンカーに渡すパラメータだと思われます。

'PSPSDK=$(shell psp-config --pspsdk-path)' は、PSPSDK に渡す何かです(良く解かりません)。このまま、記述。

'include $(PSPSDK)/lib/build_prx.mak' は、ソース中の インクルードPATH の参照先 だと思われます。
プラグイン生成専用 記述です。未調査の為、このまま記述。

'main.o : main.c head.h define.h' は、プログラム・ソース 'main.?' を、再度コンパイルするかどうかの判定用の記述です。
       'main.o' よりも、'main.c' or 'head.h' or 'define.h' の日付が新しいなら、'main.o'を削除して、'main.o' を作り直します(再コンパイル)。
'conf.o : conf.c head2.h'
   ↑↑ 以下同様の為、省略。

以上makefile プラグイン生成編解説でした。

[ 補足 ]
PSP自作ソフトプログラミング/開発wiki
↑↑ このサイトの、「メニュー」の「実行ファイルの作成」の「prxファイル(プラグイン)」をクリックして、内容を読んでみて下さい。こちらの方でも、makefile について解説されています。


この PSPSDK は、製作側が全てを公開していない様なので、ココに記述している内容は、間違っているかも知れません。私の独自調査で書いた記事です。

【 関連記事 】
PSPプログラミング EBOOT.PBP 生成用 makefile 記述方法
PSPプログラミング プラグイン生成用 makefile 記述方法
PSPプログラミング サンプルプログラムソースをコンパイルしてみよう
PSPプログラミング PSPSDK に同梱されているライブラリの一覧とリンク記述

関連記事
スポンサーサイト

[edit]

CM: 3
TB: 0

page top

この記事に対するコメント

久しぶりの

PSPプログラム解説サイトですね。
日本のサイトではあまりこういう所がないので
重宝させてもらいます。

pppm #rkzq7EIc | URL | 2009/03/15 11:17 * edit *

ありがとう御座います。

pppm さんへ。

そもそも、日本製のPSPSDKが無いではないかっwwwwww
後日、もう一回、EBOOT.PBP を分解して、詳しく解説します。

また来てくださいませ~~。

猫山猫宗 #o9qy5FF6 | URL | 2009/03/15 20:23 * edit *

こんにちは。中2で独学のCodeTakaです。
ちょっと調べてみたので...

makefileのファイル名は、 Makefile でもOKです。
この2つ以外は駄目っぽいです。

あと build.mak 、 build_prx.mak
は インストール場所/pspsdk/psp/sdk/lib にあり、
中を見てみると、
makefile 内で書く要素の初期値の設定、
??.o : ??.c  の対応(マクロなのかな?)
等々が書かれています。

いうなればmakefileのヘッダーファイルです。

CodeTaka #- | URL | 2012/07/15 15:31 * edit *

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/60-b68a6aa8
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-03