FrontPage > C/C++言語 > make

make

プログラムグループの保守、アップデート、および再生成(要Makefile)
HP/UXでは「mkmf」、Linuxでは、「imake、xmkmf」等で
Makefileを自動生成可能。

複数Makefileが有った場合の使用するファイルの優先順位。
※「-f [Makefile名]」とMakefileを宣言した場合は最優先となる。
(1) makefile
(2) Makefile
(3) s.makefile
(4) SCCS/s.makefile
(5) s.Makefile or SCCS/s.Makefile

使用方法(例)

  • コンパイル
    make
  • コンパイル&インストール
    make install
  • 「オブジェクト一覧」、「core」ファイルの削除
    make clean
  • 完全削除 (「オブジェクト一覧、プログラム、core、tags」)
    make clobber
  • makefileの再生成
    make depend
  • ヘッダ、ソースの一覧表示
    make echo

Makefile

CFLAGS       = [デバッグ(-DDBG等)、コンパイル・オプション、インクルードパス(-I)]

DEST         = [インストール先パス]

EXTHDRS      = [カレント・ディレクトリ外のヘッダ]

HDRS         = [カレント・ディレクトリ内のヘッダ]

INSTALL      = /usr/sbin/install

LD           = [コンパイラ(cc、gcc等) default:cc]

LDFLAGS      = [リンクオプション、リンクに必要なライブラリ等]

LIBS         = [リンクに必要なライブラリ一覧]

MAKEFILE     = Makefile

OBJS         = [オブジェクト一覧]

PRINT        = [印刷用アプリ default:pr]

PROGRAM      = [作成アプリ名称 default:a.out]

SHELL        = /usr/bin/sh

SRCS         = [コンパイルする ソース一覧]

SYSHDRS      = [コンパイルに必要なシステム・ヘッダ]

all:           $(PROGRAM)

$(PROGRAM):    $(OBJS) $(LIBS)
               @echo "Linking $(PROGRAM) ..."
               @$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
               @echo "done"

clean:;        @rm -f $(OBJS) core

clobber:;      @rm -f $(OBJS) $(PROGRAM) core tags

depend:;       @mkmf -f $(MAKEFILE) ROOT=$(ROOT)

echo:;         @echo $(HDRS) $(SRCS)

index:;        @ctags -wx $(HDRS) $(SRCS)

install:       $(PROGRAM)
               @echo Installing $(PROGRAM) in $(DEST)
               @-strip $(PROGRAM)
               @if [ $(DEST) != . ]; then \
               (rm -f $(DEST)/$(PROGRAM); $(INSTALL) -f $(DEST) $(PROGRAM)); fi

print:;        @$(PRINT) $(HDRS) $(SRCS)

tags:          $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)

update:        $(DEST)/$(PROGRAM)

$(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
               @$(MAKE) -f $(MAKEFILE) ROOT=$(ROOT) DEST=$(DEST) install

Makefileの記述内容等(mkmf)


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-08-24 (日) 16:21:03