autoconf. , , . zwol , Windows mkdir , mkdir -p Linux. make. -flag , :
-mkdir dir
, . , "always true" , mkdir , , :
mkdir dir || true
, Windows Linux true.
, . make, posix-, Windows. :
ifeq ($(shell echo "check_quotes"),"check_quotes")
WINDOWS := yes
else
WINDOWS := no
endif
ifeq ($(WINDOWS),yes)
mkdir = mkdir $(subst /,\,$(1)) > nul 2>&1 || (exit 0)
rm = $(wordlist 2,65535,$(foreach FILE,$(subst /,\,$(1)),& del $(FILE) > nul 2>&1)) || (exit 0)
rmdir = rmdir $(subst /,\,$(1)) > nul 2>&1 || (exit 0)
echo = echo $(1)
else
mkdir = mkdir -p $(1)
rm = rm $(1) > /dev/null 2>&1 || true
rmdir = rmdir $(1) > /dev/null 2>&1 || true
echo = echo "$(1)"
endif
/ :
rule:
$(call mkdir,dir)
$(call echo, CC $@)
$(call rm,file1 file2)
$(call rmdir,dir1 dir2)
:
- mkdir. .
- del. Windows del , , . , , dir/file.c , dir , . , del .
- rmdir. .
- echo. "" Windows.
. , .
. :