Windows 7 の サブシステム UNIX ベース アプリケーション用サブシステム (SUA) に GNU make 3.82 をインストールします。
GNU make を gmake に変更してインストールします。
$ ./configure --program-prefix=g CC=/opt/gcc.4.2/bin/gcc
$ make
下記のエラーがでました。
--------------------------------------------------------------------------------------------------
In file included from ar.c:20:
make.h:436: error: expected declaration specifiers or '...' before 'uintmax_t'
In file included from ar.c:24:
filedef.h:37: error: expected specifier-qualifier-list before 'uintmax_t'
filedef.h:113: warning: 'enum cmd_state' declared inside parameter list
filedef.h:113: warning: its scope is only this definition or declaration, which is probably not what you want
filedef.h:159: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'file_timestamp_cons'
filedef.h:160: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'file_timestamp_now'
filedef.h:161: error: expected declaration specifiers or '...' before 'uintmax_t'
filedef.h:171: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'f_mtime'
--------------------------------------------------------------------------------------------------
make.h:436: error: expected declaration specifiers or '...' before 'uintmax_t'
make.h ファイルの436行目を見とFILE_TIMESTAMP の定義が怪しい。
436 const char *vpath_search (const char *file, FILE_TIMESTAMP *mtime_ptr,
unsigned int* vpath_index, unsigned int* path_index);
FILE_TIMESTAMP を検索します。
-----------------------------------------
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#define FILE_TIMESTAMP uintmax_t
-----------------------------------------
inttypes.h には uintmax_t 定義されていない。
定義されているのは stdint.h なので追加しました。
-----------------------------------------
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#include <stdint.h>
#define FILE_TIMESTAMP uintmax_t
-----------------------------------------
無事にmakeが終了。
$ make install
※コメント投稿者のブログIDはブログ作成者のみに通知されます