build.mk 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. depcomp = /bin/sh $(top_srcdir)/build/autotools/depcomp
  2. STRINGFIX= $(srcdir)/stringfix
  3. $(STRINGFIX): $(STRINGFIX).cc
  4. @echo -e "[CXX] \033[1m$@\033[0m"
  5. $(CXX) $(CPPFLAGS) $(CXXFLAGS) $< $(LDFLAGS) -o $(STRINGFIX)
  6. # Cannot use .SUFFIXES as it won't allow a dependency on $(STRINGFIX)
  7. %.So: %.cc $(STRINGFIX)
  8. @echo -e "{CXX} \033[1m$<\033[0m"
  9. file="$*"; \
  10. dirname="$${file%/*}"; \
  11. if [ "$${dirname}" = "$${file}" ]; then dirname=.; fi; \
  12. file="$${file##*/}"; \
  13. deps="$${dirname}/.deps/$${file}"; \
  14. set -e; trap "rm -f "$${deps}.TPo" $*.ii $*.fail; exit 1" 1 2 3 5 10 13 15; \
  15. if [ "$(CCDEPMODE)" = "gcc3" ]; then \
  16. if { { $(CXX) -MT '$@' -MD -MP -MF "$${deps}.TPo" $(CXXFLAGS) $(CPPFLAGS) -E $< || :> $*.fail; } | \
  17. $(STRINGFIX) > $*.ii; } && ! [ -f $*.fail ]; then \
  18. echo '$@: $(STRINGFIX)' >> "$${deps}.TPo"; \
  19. mv "$${deps}.TPo" "$${deps}.Po"; \
  20. else \
  21. rm -f "$${deps}.TPo" $*.ii $*.fail; \
  22. exit 1; \
  23. fi; \
  24. else \
  25. libtool=no source='$<' object='$@' depfile="$${deps}.Po" tmpdepfile="$${deps}.TPo" depmode=$(CCDEPMODE) $(depcomp) \
  26. $(CXX) $(CPPFLAGS) $(CXXFLAGS) -E $< | $(STRINGFIX) > $*.ii; \
  27. fi; \
  28. $(CXX) $(CXXFLAGS) -c $*.ii -o $@; \
  29. rm -f $*.ii
  30. %.So: %.c $(STRINGFIX)
  31. @echo -e "{CC } \033[1m$<\033[0m"
  32. file="$*"; \
  33. dirname="$${file%/*}"; \
  34. if [ "$${dirname}" = "$${file}" ]; then dirname=.; fi; \
  35. file="$${file##*/}"; \
  36. deps="$${dirname}/.deps/$${file}"; \
  37. set -e; trap "rm -f "$${deps}.TPo" $*.i $*.fail; exit 1" 1 2 3 5 10 13 15; \
  38. if [ "$(CCDEPMODE)" = "gcc3" ]; then \
  39. if { { $(CC) -MT '$@' -MD -MP -MF "$${deps}.TPo" $(CPPFLAGS) $(CFLAGS) -E $< || :> $*.fail; } | \
  40. $(STRINGFIX) > $*.i; } && ! [ -f $*.fail ]; then \
  41. echo '$@: $(STRINGFIX)' >> "$${deps}.TPo"; \
  42. mv "$${deps}.TPo" "$${deps}.Po"; \
  43. else \
  44. rm -f "$${deps}.TPo" $*.i $*.fail; \
  45. exit 1; \
  46. fi; \
  47. else \
  48. libtool=no source='$<' object='$@' depfile="$${deps}.Po" tmpdepfile="$${deps}.TPo" depmode=$(CCDEPMODE) $(depcomp) \
  49. $(CC) $(CPPFLAGS) $(CFLAGS) -E $< | $(STRINGFIX) > $*.i; \
  50. fi; \
  51. $(CC) $(CFLAGS) -c $*.i -o $@; \
  52. rm -f $*.i
  53. %.o: %.cc
  54. @echo -e "[CXX] \033[1m$<\033[0m"
  55. file="$*"; \
  56. dirname="$${file%/*}"; \
  57. if [ "$${dirname}" = "$${file}" ]; then dirname=.; fi; \
  58. file="$${file##*/}"; \
  59. deps="$${dirname}/.deps/$${file}"; \
  60. set -e; trap "rm -f "$${deps}.TPo"; exit 1" 1 2 3 5 10 13 15; \
  61. if [ "$(CCDEPMODE)" = "gcc3" ]; then \
  62. if $(CXX) -MT '$@' -MD -MP -MF "$${deps}.TPo" $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@; then \
  63. mv "$${deps}.TPo" "$${deps}.Po"; \
  64. else \
  65. rm -f "$${deps}.TPo"; \
  66. exit 1; \
  67. fi; \
  68. else \
  69. libtool=no source='$<' object='$@' depfile="$${deps}.Po" tmpdepfile="$${deps}.TPo" depmode=$(CCDEPMODE) $(depcomp) \
  70. $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@; \
  71. fi
  72. %.o: %.c
  73. @echo -e "[CC ] \033[1m$<\033[0m"
  74. file="$*"; \
  75. dirname="$${file%/*}"; \
  76. if [ "$${dirname}" = "$${file}" ]; then dirname=.; fi; \
  77. file="$${file##*/}"; \
  78. deps="$${dirname}/.deps/$${file}"; \
  79. set -e; trap "rm -f "$${deps}.TPo"; exit 1" 1 2 3 5 10 13 15; \
  80. if [ "$(CCDEPMODE)" = "gcc3" ]; then \
  81. if $(CC) -MT '$@' -MD -MP -MF "$${deps}.TPo" $(CPPFLAGS) $(CFLAGS) -c $< -o $@; then \
  82. mv "$${deps}.TPo" "$${deps}.Po"; \
  83. else \
  84. rm -f "$${deps}.TPo"; \
  85. exit 1; \
  86. fi; \
  87. else \
  88. libtool=no source='$<' object='$@' depfile="$${deps}.Po" tmpdepfile="$${deps}.TPo" depmode=$(CCDEPMODE) $(depcomp) \
  89. $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@; \
  90. fi