[완료]Makefile 관련 문의
글쓴이: jazzsir / 작성시간: 목, 2012/05/17 - 4:43오후
openWRT Makefile의 일부분입니다.
define stampfile $(1)/stamp-$(3):=$(if $(6),$(6),$(STAGING_DIR))/stamp/.$(2)_$(3)$(if $(5),_$(call confvar,$(5))) $$($(1)/stamp-$(3)): $(TMP_DIR)/.build $(4) @+$(SCRIPT_DIR)/timestamp.pl -n $$($(1)/stamp-$(3)) $(1) $(4) || \ $(MAKE) $$($(1)/flags-$(3)) $(1)/$(3) @mkdir -p $$$$(dirname $$($(1)/stamp-$(3))) @touch $$($(1)/stamp-$(3)) $$(if $(call debug,$(1),v),,.SILENT: $$($(1)/stamp-$(3))) .PRECIOUS: $$($(1)/stamp-$(3)) # work around a make bug $(1)//clean:=$(1)/stamp-$(3)/clean $(1)/stamp-$(3)/clean: FORCE @rm -f $$($(1)/stamp-$(3)) endef
stampfile은 이렇게 정의 되어 있는데
두번째줄에 있는
$(if $(6),$(6),$(STAGING_DIR))/stamp/.$(2)_$(3)$(if $(5),_$(call confvar,$(5)))
이부분에서 "$(if $(6),$(6),$(STAGING_DIR))/" 이부분을 이해할 수가 없네요.
어떻게 if분 안에 3개 인자가 들어가는지...
GNU Makefile tutorial에서도 못찾겠어요.. 에효~
어느 자료에 설명되어 있는지 알려주시면 감사하겠습니다.
참고로 이 stampfile의 쓰임은 대충 아래와 같습니다.
$(toolchain/stamp-install): $(tools/stamp-install) $(target/stamp-compile): $(toolchain/stamp-install) $(tools/stamp-install) $(BUILD_DIR)/.prepared $(package/stamp-cleanup): $(target/stamp-compile) $(package/stamp-compile): $(target/stamp-compile) $(package/stamp-cleanup) $(package/stamp-install): $(package/stamp-compile) $(package/stamp-rootfs-prepare): $(package/stamp-install) $(target/stamp-install): $(package/stamp-compile) $(package/stamp-install) $(package/stamp-rootfs-prepare) . . . . $(eval $(call stampfile,$(curdir),package,prereq,.config)) $(eval $(call stampfile,$(curdir),package,cleanup,$(TMP_DIR)/.build)) $(eval $(call stampfile,$(curdir),package,compile,$(TMP_DIR)/.build)) $(eval $(call stampfile,$(curdir),package,install,$(TMP_DIR)/.build)) $(eval $(call stampfile,$(curdir),package,rootfs-prepare,$(TMP_DIR)/.build))
Forums:
음 ..
그냥 if-then-else 와 같은 구문이네요.
첫번째 파라미터가 empty 면 세번째 파라미터를 취합니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
음 ..
http://www.gnu.org/software/make/manual/make.html#Conditional-Functions
8.4 Functions for Conditionals 에 기술되어 있네요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
고녀석 거기 있었네요~ ㅎㅎㅎ 감사합니다~^^
고녀석 거기 있었네요~ ㅎㅎㅎ 감사합니다~^^
댓글 달기