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
23LOCAL_PATH := $(call my-dir)
24
25include $(LOCAL_PATH)/Makefile.sources
26
27# ---------------------------------------
28# Build libmesa_util
29# ---------------------------------------
30
31include $(CLEAR_VARS)
32
33LOCAL_SRC_FILES := \
34	$(MESA_UTIL_FILES) \
35	$(XMLCONFIG_FILES)
36
37LOCAL_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
45ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27; echo $$?), 0)
46LOCAL_STATIC_LIBRARIES := \
47	libexpat
48else
49LOCAL_SHARED_LIBRARIES := \
50	libexpat
51endif
52
53LOCAL_MODULE := libmesa_util
54
55# Generated sources
56
57LOCAL_MODULE_CLASS := STATIC_LIBRARIES
58
59intermediates := $(call local-generated-sources-dir)
60
61LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
62
63UTIL_GENERATED_SOURCES := $(addprefix $(intermediates)/,$(MESA_UTIL_GENERATED_FILES))
64LOCAL_GENERATED_SOURCES := $(UTIL_GENERATED_SOURCES)
65
66MESA_DRI_OPTIONS_H := $(intermediates)/xmlpool/options.h
67LOCAL_GENERATED_SOURCES += $(MESA_DRI_OPTIONS_H)
68
69#
70# Generate options.h from gettext translations.
71#
72
73MESA_DRI_OPTIONS_LANGS := de es nl fr sv
74POT := $(intermediates)/xmlpool.pot
75
76$(POT): $(LOCAL_PATH)/xmlpool/t_options.h
77	@mkdir -p $(dir $@)
78	xgettext -L C --from-code utf-8 -o $@ $<
79
80$(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%.po): $(intermediates)/xmlpool/%.po: $(LOCAL_PATH)/xmlpool/%.po $(POT)
81	lang=$(basename $(notdir $@)); \
82	mkdir -p $(dir $@); \
83	if [ -f $< ]; then \
84		msgmerge -o $@ $^; \
85	else \
86		msginit -i $(POT) \
87			-o $@ \
88			--locale=$$lang \
89			--no-translator; \
90		sed -i -e 's/charset=.*\\n/charset=UTF-8\\n/' $@; \
91	fi
92
93PRIVATE_SCRIPT := $(LOCAL_PATH)/xmlpool/gen_xmlpool.py
94PRIVATE_LOCALEDIR := $(intermediates)/xmlpool
95PRIVATE_TEMPLATE_HEADER := $(LOCAL_PATH)/xmlpool/t_options.h
96PRIVATE_MO_FILES := $(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%.gmo)
97
98LOCAL_GENERATED_SOURCES += $(PRIVATE_MO_FILES)
99
100$(LOCAL_GENERATED_SOURCES): PRIVATE_PYTHON := $(MESA_PYTHON2)
101
102$(PRIVATE_MO_FILES): $(intermediates)/xmlpool/%.gmo: $(intermediates)/xmlpool/%.po
103	mkdir -p $(dir $@)
104	msgfmt -o $@ $<
105
106$(UTIL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $^ > $@
107$(UTIL_GENERATED_SOURCES): $(intermediates)/%.c: $(LOCAL_PATH)/%.py
108	$(transform-generated-source)
109
110$(MESA_DRI_OPTIONS_H): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $< \
111		--template $(PRIVATE_TEMPLATE_HEADER) \
112		--output $@ \
113		--localedir $(PRIVATE_LOCALEDIR) \
114		--languages $(MESA_DRI_OPTIONS_LANGS)
115$(MESA_DRI_OPTIONS_H): $(PRIVATE_SCRIPT) $(PRIVATE_TEMPLATE_HEADER) $(PRIVATE_MO_FILES)
116	$(transform-generated-source)
117
118include $(MESA_COMMON_MK)
119include $(BUILD_STATIC_LIBRARY)
120