2 CMDOBJ := casl2 comet2 dumpword
3 COMMONOBJ := word cmem cerr
4 CASL2OBJ := struct hash
5 ASOBJ := assemble token label
9 INCLUDEDIR := ../include
10 INCLUDE = -I $(INCLUDEDIR)
14 CFLAGS := -g -Wall -Wextra $(INCLUDE)
21 .PHONY: all build tag clean
25 # casl2、comet2、dumpwordのビルド
28 casl2: $(addsuffix .o,casl2 $(COMMONOBJ) $(CASL2OBJ) $(ASOBJ) $(EXECOBJ))
30 comet2: $(addsuffix .o,comet2 $(COMMONOBJ) $(CASL2OBJ) $(EXECOBJ))
32 dumpword: $(addsuffix .o,dumpword $(COMMONOBJ))
34 # .dファイルからヘッダファイルの依存関係を取得する
35 # tags、check、clean、.d で終わるターゲットの場合は除く
36 NODEP := %tags %check %clean %.d
37 ifeq ($(filter $(NODEP),$(MAKECMDGOALS)),)
38 -include $(addsuffix .d,$(CMDOBJ) $(COMMONOBJ) $(CASL2OBJ) $(ASOBJ) $(EXECOBJ))
41 # tagファイル作成 - ctags & etags
45 tags: $(INCLUDEDIR)/*.h *.c
46 $(if $(strip $(shell $(WHICH) $(CTAGS))),$(CTAGS) $^,@$(ECHO) '$(CTAGS): not found')
48 TAGS: $(INCLUDEDIR)/*.h *.c
49 $(if $(strip $(shell $(WHICH) $(ETAGS))),$(ETAGS) $^,@$(ECHO) '$(ETAGS): not found')
53 $(RM) casl2 comet2 dumpword
61 # ヘッダファイルの依存関係を.dファイルに出力する
62 %.d: %.c $(INCLUDEDIR)/package.h
63 $(CC) -MM -I $(INCLUDEDIR) $< | $(SED) 's,$*\.o *:,$*.o $*.d:,g' >$@
65 $(INCLUDEDIR)/package.h: ../VERSION