作業記録でも残してみます。
NetBSD使用。Linux系のRPMではインストールできず。
AlephOne-20050704.tar.gzをNightly Buildからダウンロード、boost,stlport最新版のインストールを確認して./configure->成功。
make時にSource_Files/CSeries/で
In file included from c(;◔ิд◔ิ)rts_sdl.cpp:37:
/usr/pkg/include/boost/function/function_template.hpp:647: no type named `type' in `struct boost::enable_if_c<false,int>'
/usr/pkg/include/boost/function/function_template.hpp:647: no type named `type' in `struct boost::enable_if_c<false,int>'
/usr/pkg/include/boost/function/function_template.hpp:647: confused by earlier errors, bailing out
というエラー発生。
boost-build-1.32.0 requires installed package gcc3-c++-3.3.5
boost-build-1.32.0 requires installed package gcc3-c-3.3.5
とある。
gcc,g++のバージョンは2.95.3nb6。gcc3.3.5以上が欲しいところ。/usr/pkgsrc/からすでにインストールしたつもりだったが、有効になっていない。置き換え方がよくわからない。
Source_Files/CSeries/Makefileの
CXX = g++
を
CXX = /usr/pkg/gcc3/bin/g++
にしたところ上記のエラーは回避された。やはりバージョンか。
この後は問題なくコンパイル。STLPort及びBoostはCSeriesで関係しているようだ。
また止まった。
今度はSource_Files/Miscで、
In file included from ../../Source_Files/Network/network_dialog_widgets_sdl.h:36,
from interface_sdl.cpp:61:
../../Source_Files/Network/network_dialogs.h:45: shared_widgets.h: No such file or directory
無いって言われてもなぁ
[usr]http://down.physik.uni-mainz.de/cgi-bin/viewcvs.cgi/aleph/?cvsroot=alephone[/usr]
CVSのHttpアクセス版を見て取得してみる。バージョン違うけど大丈夫かな。
Source_Files/Netrowk/Metaserver/Makefile
Source_Files/Misc/Makefile
でもboostのエラーが。これも同じような方法で解決。
Miscで
preferences.cpp:193 から include されたファイル中:
preferences_sdl.h:126:2: #error get_name_from_system() not implemented for this platform
と言うエラーが。
unixをdefineしていないのが原因のようなので、Makefileで
DEFS=-DHAVE_CONFIG_H
を
DEFS=-DHAVE_CONFIG_H -Dunix
とした。
Miscで今度は
thread_priority_sdl_posix.cpp: function 内の `bool
BoostThreadPriority(SDL_Thread*)':
thread_priority_sdl_posix.cpp:25: error: aggregate `sched_param
theSchedulingParameters' has incomplete type and cannot be defined
thread_priority_sdl_posix.cpp:31: error: `sched_get_priority_max' undeclared
(first use this function)
thread_priority_sdl_posix.cpp:31: error: (Each undeclared identifier is
reported only once for each function it appears in.)
というエラーが。もういや...。
/usr/include/sched.hにこれらが見付からないようなので、適当に探して来て
struct sched_param {
int sched_priority;
};
-Dunix
/*
* These are permitted to fail and return ENOSYS if
* _POSIX_PRIORITY_SCHEDULING is not defined.
*/
int sched_setparam(pid_t, const struct sched_param *);
int sched_getparam(pid_t, struct sched_param *);
int sched_setscheduler(pid_t, int, const struct sched_param *);
int sched_getscheduler(pid_t);
int sched_get_priority_max(int);
int sched_get_priority_min(int);
int sched_rr_get_interval(pid_t, struct timespec *);
のようにして追加。コンパイルは通ったがはたして大丈夫なのか?
In file included from shell_sdl.h:114,
from shell.cpp:82:
/usr/pkg/include/SDL/SDL_syswm.h:56: X11/Xlib.h: No such file or directory
/usr/pkg/include/SDL/SDL_syswm.h:57: X11/Xatom.h: No such file or directory
In file included from shell.cpp:82:
shell_sdl.h:354: #error Data file paths must be set for this platform.
Source_Files/Makefileに
-I/usr/X11R6/include
と
-Dunix
を追加。gccを3に。
大量のリンクエラーが出たので今回は断念します。
やっぱり小手先でちょこちょこごまかしてもダメっぽいですね