make makes many problems at TECH
[2ch|▼Menu]
257:235
03/02/14 01:31
>>256
そいつだと、%.arc_ruleが作り直された段階で
$*/lib.a: .force の関係がキャンセルされてしまうみたいです。
なので、%.arc_ruleの出力時に$*/lib.aを削除するようにしました。

最終的にはこのようになりまして、(↓全角スペースがタブのかわり)

.PHONY : .force_update

$(ARC_LIST) : %/lib.a :
 $(AR) $(ARFLAGS) $@ $?

ARC_RULES:=$(addsuffix /.arc_rule,$(DIR_LIST))
$(ARC_RULES) : %/arc_rule :
 @{ \
  echo '.$*_SRC:=$(wildcard $*/*.c)' ;\
  echo '.$*_OBJ:=$$(.$*_SRC:.c=.o)' ;\
  echo '$*/lib.a : $$(.$*_OBJ)' ;\
  echo 'ifneq ($$(.$*_SRC),$$(wildcard $*/*.c))' ;\
  echo '$@ : .force_update' ;\
  echo 'endif' ;\
 } >@ ;\
 $(RM) -f $*/lib.a
include $(ARC_RULES)

動作は良好です。
ソースの追加、削除、引越しを完全に追跡してくれます。
快適です。

助言くださったみなさま、ありがとうございました。

優良スレage


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5375日前に更新/188 KB
担当:undef