9addbb8694b5724452be1eae91b42ef356e01eb4
[mesa.git] / src / util / Android.mk
1 # Mesa 3-D graphics library
2 #
3 # Copyright (C) 2014 Tomasz Figa <tomasz.figa@gmail.com>
4 #
5 # Permission is hereby granted, free of charge, to any person obtaining a
6 # copy of this software and associated documentation files (the "Software"),
7 # to deal in the Software without restriction, including without limitation
8 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 # and/or sell copies of the Software, and to permit persons to whom the
10 # Software is furnished to do so, subject to the following conditions:
11 #
12 # The above copyright notice and this permission notice shall be included
13 # in all copies or substantial portions of the Software.
14 #
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 # DEALINGS IN THE SOFTWARE.
22
23 LOCAL_PATH := $(call my-dir)
24
25 include $(LOCAL_PATH)/Makefile.sources
26
27 # ---------------------------------------
28 # Build libmesa_util
29 # ---------------------------------------
30
31 include $(CLEAR_VARS)
32
33 LOCAL_SRC_FILES := \
34 $(MESA_UTIL_FILES) \
35 $(XMLCONFIG_FILES)
36
37 LOCAL_C_INCLUDES := \
38 external/zlib \
39 $(MESA_TOP)/src/mesa \
40 $(MESA_TOP)/src/mapi \
41 $(MESA_TOP)/src/gallium/include \
42 $(MESA_TOP)/src/gallium/auxiliary
43
44 # If Android version >=8 MESA should static link libexpat else should dynamic link
45 ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27; echo $$?), 0)
46 LOCAL_STATIC_LIBRARIES := \
47 libexpat
48 else
49 LOCAL_SHARED_LIBRARIES := \
50 libexpat
51 endif
52
53 LOCAL_SHARED_LIBRARIES += liblog
54
55 LOCAL_MODULE := libmesa_util
56
57 # Generated sources
58
59 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
60
61 intermediates := $(call local-generated-sources-dir)
62
63 LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
64
65 UTIL_GENERATED_SOURCES := $(addprefix $(intermediates)/,$(MESA_UTIL_GENERATED_FILES))
66 LOCAL_GENERATED_SOURCES := $(UTIL_GENERATED_SOURCES)
67
68 MESA_DRI_OPTIONS_H := $(intermediates)/xmlpool/options.h
69 LOCAL_GENERATED_SOURCES += $(MESA_DRI_OPTIONS_H)
70
71
72 $(intermediates)/format/u_format_table.c: $(intermediates)/%.c: $(LOCAL_PATH)/%.py $(LOCAL_PATH)/format/u_format.csv
73 $(transform-generated-source)
74
75 #
76 # Generate options.h from gettext translations.
77 #
78
79 MESA_DRI_OPTIONS_LANGS := de es nl fr sv
80 POT := $(intermediates)/xmlpool.pot
81
82 $(POT): $(LOCAL_PATH)/xmlpool/t_options.h
83 @mkdir -p $(dir $@)
84 xgettext -L C --from-code utf-8 -o $@ $<
85
86 $(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%.po): $(intermediates)/xmlpool/%.po: $(LOCAL_PATH)/xmlpool/%.po $(POT)
87 lang=$(basename $(notdir $@)); \
88 mkdir -p $(dir $@); \
89 if [ -f $< ]; then \
90 msgmerge -o $@ $^; \
91 else \
92 msginit -i $(POT) \
93 -o $@ \
94 --locale=$$lang \
95 --no-translator; \
96 sed -i -e 's/charset=.*\\n/charset=UTF-8\\n/' $@; \
97 fi
98
99 PRIVATE_SCRIPT := $(LOCAL_PATH)/xmlpool/gen_xmlpool.py
100 PRIVATE_LOCALEDIR := $(intermediates)/xmlpool
101 PRIVATE_TEMPLATE_HEADER := $(LOCAL_PATH)/xmlpool/t_options.h
102 PRIVATE_MO_FILES := $(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%.gmo)
103
104 LOCAL_GENERATED_SOURCES += $(PRIVATE_MO_FILES)
105
106 $(LOCAL_GENERATED_SOURCES): PRIVATE_PYTHON := $(MESA_PYTHON2)
107
108 $(PRIVATE_MO_FILES): $(intermediates)/xmlpool/%.gmo: $(intermediates)/xmlpool/%.po
109 mkdir -p $(dir $@)
110 msgfmt -o $@ $<
111
112 $(UTIL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $^ > $@
113 $(UTIL_GENERATED_SOURCES): $(intermediates)/%.c: $(LOCAL_PATH)/%.py
114 $(transform-generated-source)
115
116 $(MESA_DRI_OPTIONS_H): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $< \
117 --template $(PRIVATE_TEMPLATE_HEADER) \
118 --output $@ \
119 --localedir $(PRIVATE_LOCALEDIR) \
120 --languages $(MESA_DRI_OPTIONS_LANGS)
121 $(MESA_DRI_OPTIONS_H): $(PRIVATE_SCRIPT) $(PRIVATE_TEMPLATE_HEADER) $(PRIVATE_MO_FILES)
122 $(transform-generated-source)
123
124 include $(MESA_COMMON_MK)
125 include $(BUILD_STATIC_LIBRARY)