Hi, On Thu, May 16, 2013 at 01:22:10AM +0200, Mat M wrote: > Hello > > I have a GNU make question, actually: > > How this should be read ? > $(dir $(call gb_AutoInstallLibs_get_target,%)).dir : > $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
We use rules to automatically create directory hierarchies for file targets in gbuild. This is the rule for creating the top-level directory of the AutoInstallLibs class in $(WORKDIR). There is a line like $(call gb_AutoInstallLibs_get_target,$(1)) :| $(dir $(call gb_AutoInstallLibs_get_target,$(1))).dir elsewhere in the makefile, that creates the (order-only) dependency. Note that $(dir $(call gb_AutoInstallLibs_get_target,%)).dir expands to $(WORKDIR)/AutoInstallLibs/.dir , so this is not a pattern rule. If there were any hierarchy needed in the directory, the rule would be accompanied by $(dir $(call gb_AutoInstallLibs_get_target,%))%/.dir : $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) , that expands to $(WORKDIR)/AutoInstallLibs/%/.dir . The recipe checks if the directory (without the .dir suffix) exists and creates it if it does not. Last thing, the .dir suffix is a workaround needed for make 3.81, that does not handle directory rules. Otherwise it could just be $(dir $(call gb_AutoInstallLibs_get_target,%)) : mkdir -p $@ D. _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice