Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. # Copyright 2012 Intel Corporation
  2. #
  3. # Permission is hereby granted, free of charge, to any person obtaining a
  4. # copy of this software and associated documentation files (the "Software"),
  5. # to deal in the Software without restriction, including without limitation
  6. # the rights to use, copy, modify, merge, publish, distribute, sublicense,
  7. # and/or sell copies of the Software, and to permit persons to whom the
  8. # Software is furnished to do so, subject to the following conditions:
  9. #
  10. # The above copyright notice and this permission notice shall be included
  11. # in all copies or substantial portions of the Software.
  12. #
  13. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  16. # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  18. # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  19. # DEALINGS IN THE SOFTWARE.
  20.  
  21. LOCAL_PATH := $(call my-dir)
  22.  
  23. define local-l-to-c
  24.         @mkdir -p $(dir $@)
  25.         @echo "Mesa Lex: $(PRIVATE_MODULE) <= $<"
  26.         $(hide) $(LEX) -o$@ $<
  27. endef
  28.  
  29. define mesa_local-y-to-c-and-h
  30.         @mkdir -p $(dir $@)
  31.         @echo "Mesa Yacc: $(PRIVATE_MODULE) <= $<"
  32.         $(hide) $(YACC) -o $@ -p "_mesa_program_" $<
  33. endef
  34.  
  35. # ----------------------------------------------------------------------
  36. # libmesa_program.a
  37. # ----------------------------------------------------------------------
  38.  
  39. # Import the following variables:
  40. #     PROGRAM_FILES
  41. include $(MESA_TOP)/src/mesa/Makefile.sources
  42.  
  43. include $(CLEAR_VARS)
  44.  
  45. LOCAL_MODULE := libmesa_program
  46. LOCAL_MODULE_CLASS := STATIC_LIBRARIES
  47.  
  48. intermediates := $(call local-intermediates-dir)
  49.  
  50. MESA_ENABLED_APIS := ES1 ES2
  51.  
  52. # TODO(chadv): In Makefile.sources, move these vars to a different list so we can
  53. # remove this kludge.
  54. generated_sources_basenames := \
  55.         lex.yy.c \
  56.         program_parse.tab.c \
  57.         program_parse.tab.h
  58.  
  59. LOCAL_SRC_FILES := \
  60.         $(filter-out $(generated_sources_basenames),$(subst program/,,$(PROGRAM_FILES)))
  61.  
  62. LOCAL_GENERATED_SOURCES := \
  63.         $(addprefix $(intermediates)/program/,$(generated_sources_basenames))
  64.  
  65. $(intermediates)/program/program_parse.tab.c: $(LOCAL_PATH)/program_parse.y
  66.         $(mesa_local-y-to-c-and-h)
  67.  
  68. $(intermediates)/program/program_parse.tab.h: $(intermediates)/program/program_parse.tab.c
  69.         @
  70.  
  71. $(intermediates)/program/lex.yy.c: $(LOCAL_PATH)/program_lexer.l
  72.         $(local-l-to-c)
  73.  
  74. LOCAL_CFLAGS := \
  75.         $(patsubst %,-DFEATURE_%=1,$(MESA_ENABLED_APIS))
  76.  
  77. LOCAL_C_INCLUDES := \
  78.         $(intermediates) \
  79.         $(MESA_TOP)/src/mapi \
  80.         $(MESA_TOP)/src/mesa \
  81.         $(MESA_TOP)/src/glsl
  82.  
  83. include $(MESA_COMMON_MK)
  84. include $(BUILD_STATIC_LIBRARY)
  85.