2012-02-11 10 views
6

私はかなり新しいC++プログラマーです。私はSDLライブラリを使って非常に単純なゲームを作った。私のゲームは自然に、いくつかの画像、音、フォントを使用します。私はパッケージの配布をしたいと思っていました。どこにユーザが設定できるのですか& & make。このシンプルなゲームは価値のあるものではありませんが、私はautoconfとautomakeの仕組みを学びたいと思っています。私はインターネットの周りの例を探しましたが、私が見つけることができるチュートリアルでは単純なhelloworldプログラムのインストールしか示していません。彼らは、データファイルのインストールについても、特定のライブラリが存在するかどうかをチェックして、コンパイル時にリンクすることができるようにする方法についても言及していません。また、私のプログラムは、各ファイルがロードされるように各ファイルがどこにインストールされるのかを知っている必要があります。私はautomakeとautoconfのマニュアルを掘り下げましたが、彼らは新しい人のためのリソースであるよりも参考資料のようなものです。誰でもこの概念を簡単に説明することができますか、私がそれらについて読むことができるいくつかの場所に私を導いてくれますか?GNUのautoconfとautomakeでデータファイルをパッケージ化する方法

+0

私は、autoconf/automakeを使う最良の方法は、自分のプロジェクトと似ているプロジェクトを見つけ出し、それが何であるかを見て、そこから文書化することです。 –

+0

John Calcoteの著書「Autotools:GNU Autoconf、Automake、Libtoolのプレゼンサーガイド」 –

+0

を参照してください。[Goat Book](http://sourceware.org/autobook/)を読んでください。オートツール。彼らには、オートツールで最も一般的なことを行う方法を示すさまざまな複雑さのプロジェクト例がいくつかあります。 – ldav1s

答えて

13

私はこれについていくつかの研究を行いましたが、私が働いていることを分かち合いたいと思っています。私はこのようなディレクトリ構造を作成しました:

/ 
|->src/ 
| |-> Makefile.am 
| |-> main.cpp 
| |-> functions.cpp 
| 
|-> data/ 
| |-> Makefile.am 
| |-> somethings.png 
| |-> something.mp3 
|-> configure.ac 
|-> README 
|-> NEWS, AUTHORS etc. etc. 

私はすべての画像、フォント、サウンドなどをデータフォルダに入れました。データフォルダーのMakefile.amは以下のようになります。

pkgdata_DATA = esound.wav \ 
       another.wav \ 
       apicture.png 

それは単にデータディレクトリに終わることに必要なすべてのファイルが一覧表示されます。 srcフォルダ内Makefile.amは、次のようになります。ここ

bin_PROGRAMS = mygame 
mygame_SOURCES = main.cpp functions.cpp 
AM_CPPFLAGS = -DDATADIR=\"$(pkgdatadir)\" 

重要な部分は、configureスクリプトに渡されたオプションに従って、DATADIRマクロを定義するAM_CPPFLAGS、です。それでは、私たちはこのような私たちのソースファイルでこのマクロを使用することができます。

background = load_image(DATADIR "/background.png"); 

背景ファイルがファイルシステムに常駐する場所をあなたのプログラムが知ってコンパイルされますように。

+0

配布する場合は、dist_pkgdata_DATAを使用する必要がありますか? –

関連する問題