/modules/freetype2/src/base/rules.mk

http://github.com/zpao/v8monkey · Makefile · 96 lines · 25 code · 22 blank · 49 comment · 0 complexity · 04d510ee355956e2b7ce1e8f891e5d25 MD5 · raw file

  1. #
  2. # FreeType 2 base layer configuration rules
  3. #
  4. # Copyright 1996-2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by
  5. # David Turner, Robert Wilhelm, and Werner Lemberg.
  6. #
  7. # This file is part of the FreeType project, and may only be used, modified,
  8. # and distributed under the terms of the FreeType project license,
  9. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  10. # indicate that you have read the license and understand and accept it
  11. # fully.
  12. # It sets the following variables which are used by the master Makefile
  13. # after the call:
  14. #
  15. # BASE_OBJ_S: The single-object base layer.
  16. # BASE_OBJ_M: A list of all objects for a multiple-objects build.
  17. # BASE_EXT_OBJ: A list of base layer extensions, i.e., components found
  18. # in `freetype/src/base' which are not compiled within the
  19. # base layer proper.
  20. BASE_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SRC_DIR)/base)
  21. # Base layer sources
  22. #
  23. # ftsystem, ftinit, and ftdebug are handled by freetype.mk
  24. #
  25. # All files listed here should be included in `ftbase.c' (for a `single'
  26. # build).
  27. #
  28. BASE_SRC := $(BASE_DIR)/ftadvanc.c \
  29. $(BASE_DIR)/ftcalc.c \
  30. $(BASE_DIR)/ftdbgmem.c \
  31. $(BASE_DIR)/ftgloadr.c \
  32. $(BASE_DIR)/ftobjs.c \
  33. $(BASE_DIR)/ftoutln.c \
  34. $(BASE_DIR)/ftrfork.c \
  35. $(BASE_DIR)/ftsnames.c \
  36. $(BASE_DIR)/ftstream.c \
  37. $(BASE_DIR)/fttrigon.c \
  38. $(BASE_DIR)/ftutil.c
  39. ifneq ($(ftmac_c),)
  40. BASE_SRC += $(BASE_DIR)/$(ftmac_c)
  41. endif
  42. BASE_H := $(BASE_DIR)/ftbase.h
  43. # Base layer `extensions' sources
  44. #
  45. # An extension is added to the library file as a separate object. It is
  46. # then linked to the final executable only if one of its symbols is used by
  47. # the application.
  48. #
  49. BASE_EXT_SRC := $(patsubst %,$(BASE_DIR)/%,$(BASE_EXTENSIONS))
  50. # Default extensions objects
  51. #
  52. BASE_EXT_OBJ := $(BASE_EXT_SRC:$(BASE_DIR)/%.c=$(OBJ_DIR)/%.$O)
  53. # Base layer object(s)
  54. #
  55. # BASE_OBJ_M is used during `multi' builds (each base source file compiles
  56. # to a single object file).
  57. #
  58. # BASE_OBJ_S is used during `single' builds (the whole base layer is
  59. # compiled as a single object file using ftbase.c).
  60. #
  61. BASE_OBJ_M := $(BASE_SRC:$(BASE_DIR)/%.c=$(OBJ_DIR)/%.$O)
  62. BASE_OBJ_S := $(OBJ_DIR)/ftbase.$O
  63. # Base layer root source file for single build
  64. #
  65. BASE_SRC_S := $(BASE_DIR)/ftbase.c
  66. # Base layer - single object build
  67. #
  68. $(BASE_OBJ_S): $(BASE_SRC_S) $(BASE_SRC) $(FREETYPE_H) $(BASE_H)
  69. $(BASE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(BASE_SRC_S))
  70. # Multiple objects build + extensions
  71. #
  72. $(OBJ_DIR)/%.$O: $(BASE_DIR)/%.c $(FREETYPE_H) $(BASE_H)
  73. $(BASE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
  74. # EOF