# # Makefile … コンパイルに使うファイルの依存関係 # # make によるコンパイル # make … 更新したファイルだけをコンパイル # make clean … オブジェクトファイルを削除 # make cleanall … オブジェクトファイルと実行ファイルを削除 # 実行ファイル名とオブジェクトファイル名の指定 (必要に応じて変更) EXE1 = ex1 OBJ1 = tree.o ex1.o EXE2 = ex2 OBJ2 = tree.o exp.o ex2.o EXE3 = ex3 OBJ3 = tree.o exp.o ex3.o EXE4 = OBJ4 = ####################################################################### # 通常,以下は書き換え不要 # 全実行ファイル名と全オブジェクトファイル名の指定 ALLEXE = $(EXE1) $(EXE2) $(EXE3) $(EXE4) ALLOBJ = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) # コンパイラの指定 CC = gcc CFLAGS = -Wall -W # 全ての警告を表示 #CFLAGS += -ansi -pedantic # 行頭の '#' を消せば ANSI 準拠の警告を表示 #CFLAGS += -g # 行頭の '#' を消せばデバッグ情報を生成 (GDB用) # 実行ファイルを作る規則 all: $(ALLEXE) $(EXE1): $(OBJ1) $(CC) $(CFLAGS) $^ -o $@ $(EXE2): $(OBJ2) $(CC) $(CFLAGS) $^ -o $@ $(EXE3): $(OBJ3) $(CC) $(CFLAGS) $^ -o $@ $(EXE4): $(OBJ4) $(CC) $(CFLAGS) $^ -o $@ # オブジェクトファイルを作る規則 .SUFFIXES: .h .c .o .h.c: touch $*.c .c.o: $(CC) $(CFLAGS) -c $< # ファイルを消す規則 clean: rm -f $(ALLOBJ) cleanall: rm -f $(ALLOBJ) $(ALLEXE)