Makefile 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #
  2. # Copyright (C) 2011-2018 Intel Corporation. All rights reserved.
  3. #
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. #
  8. # * Redistributions of source code must retain the above copyright
  9. # notice, this list of conditions and the following disclaimer.
  10. # * Redistributions in binary form must reproduce the above copyright
  11. # notice, this list of conditions and the following disclaimer in
  12. # the documentation and/or other materials provided with the
  13. # distribution.
  14. # * Neither the name of Intel Corporation nor the names of its
  15. # contributors may be used to endorse or promote products derived
  16. # from this software without specific prior written permission.
  17. #
  18. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  19. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  20. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  21. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  22. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  23. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  24. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  25. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  26. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  27. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  28. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  29. #
  30. #
  31. include ../../buildenv.mk
  32. TCMALLOC := libsgx_tcmalloc.a
  33. SRCDIR := gperftools-2.5
  34. ifdef DEBUG
  35. DEBUG_FLAG := DEBUG
  36. else
  37. DEBUG_FLAG := NDEBUG
  38. endif
  39. # turn on stack protector for TCMALLOC
  40. CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
  41. ifeq ($(CC_BELOW_4_9), 1)
  42. COMMON_FLAG := -fstack-protector
  43. else
  44. COMMON_FLAG := -fstack-protector-strong
  45. endif
  46. .PHONY: all
  47. all: $(TCMALLOC) | $(BUILD_DIR)
  48. $(CP) $(TCMALLOC) $|
  49. .PHONY: libtcmalloc
  50. libtcmalloc:
  51. cd $(SRCDIR) && ( test -f Makefile || ./autogen-linux.sh $(DEBUG_FLAG) $(COMMON_FLAG)) && $(MAKE)
  52. $(TCMALLOC): libtcmalloc
  53. $(CP) $(SRCDIR)/.libs/libtcmalloc_minimal.a $(TCMALLOC)
  54. $(BUILD_DIR):
  55. @$(MKDIR) $@
  56. .PHONY: clean
  57. clean:
  58. @test ! -f $(SRCDIR)/Makefile || $(MAKE) -C $(SRCDIR) clean
  59. @$(RM) -r $(SRCDIR)/Makefile $(TCMALLOC) $(BUILD_DIR)/$(TCMALLOC)