funcs.mk 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. BSLASH := \\#
  2. NULL_CHAR := #
  3. SPACE := \ #
  4. COLON := :#
  5. DOTDOT := ..#
  6. SPACE_ESC := &sp;#
  7. COLON_ESC := &co;#
  8. SPACE_OUT := ~sp~#
  9. COLON_OUT := ~co~#
  10. DOTDOT_OUT := ~dtdt~#
  11. BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
  12. REMOVE_TAIL = $(patsubst %/,%,$(1))
  13. #LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4))
  14. LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z])
  15. #ifneq ($(findstring Windows,$(OS)),)
  16. # ...
  17. #endif
  18. FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
  19. FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
  20. FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
  21. FIND_FILES_ABS = $(shell $(FIND) $(1))
  22. FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
  23. FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
  24. FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g')
  25. #ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
  26. #DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g')
  27. ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1)))
  28. DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1)))
  29. ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1))
  30. DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1))
  31. CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1))))
  32. CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
  33. CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
  34. PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1)))
  35. define MAKEDIRS0
  36. @echo ' Building directory: $(1)'
  37. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1))
  38. endef
  39. MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0)