1include ../../Makefile.include
2DEPS=../../Makefile.include Makefile
3
4LIBNAME=mesa
5VERSION=20.1.7
6ARCHIVE=$(LIBNAME)-$(VERSION).tar.xz
7
8MESON_BUILD_TYPE=release
9
10ifeq ($(DEBUG_BUILD), yes)
11  MESON_BUILD_TYPE=debug
12endif
13
14ifeq ($(CPU), x86_64)
15  MESA_GALLIUM_DRIVERS=iris
16else ifeq ($(CPU), $(filter $(CPU), arm aarch64))
17  MESA_GALLIUM_DRIVERS=kmsro,vc4
18  MESA_EXTRA=-Dplatforms=wayland,drm
19endif
20
21# configuration settings
22CONFIGURE = $(NATIVEPREFIX)/bin/python3 $(NATIVEPREFIX)/bin/meson \
23	--prefix=$(PREFIX) \
24	--libdir=lib \
25	--buildtype=$(MESON_BUILD_TYPE) \
26	-Ddri-drivers= \
27	-Dgallium-drivers="$(MESA_GALLIUM_DRIVERS)" \
28	-Dgallium-extra-hud=false \
29	-Dgallium-xvmc=false \
30	-Dgallium-omx=disabled \
31	-Dgallium-nine=false \
32	-Dgallium-opencl=disabled \
33	-Dvulkan-drivers= \
34	-Dshader-cache=true \
35	-Dshared-glapi=true \
36	-Dopengl=true \
37	-Dgbm=true \
38	-Degl=true \
39	-Dvalgrind=false \
40	-Dlibunwind=false \
41	-Dlmsensors=false \
42	-Dbuild-tests=false \
43	-Dselinux=false \
44	-Dosmesa=none \
45	-Ddri3=false \
46	-Dglx=disabled \
47	-Dglvnd=false \
48	-Dllvm=false \
49	-Dgallium-vdpau=false \
50	-Dgallium-va=false \
51	-Dgallium-xa=false \
52	-Dgles1=false \
53	-Dgles2=true \
54	$(MESA_EXTRA)
55
56ifeq ($(CROSS_COMPILING), yes)
57CONFIGURE += --cross-file $(PREFIX)/share/cross-file.meson
58export CC=$(CC_FOR_BUILD)
59export CXX=$(CXX_FOR_BUILD)
60export CFLAGS=$(CFLAGS_FOR_BUILD)
61export CXXFLAGS=$(CXXFLAGS_FOR_BUILD)
62else
63export CC CXX CFLAGS CXXFLAGS
64endif
65export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig
66
67LIBDYLIB=$(PLATFORM)/build/src/egl/libEGL.so
68
69all: .installed-$(PLATFORM)
70
71download: $(TARBALLS_LOCATION)/$(ARCHIVE)
72
73$(TARBALLS_LOCATION)/$(ARCHIVE):
74	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
75
76$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
77	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
78	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
79	cd $(PLATFORM); rm -rf build; mkdir -p build
80	cd $(PLATFORM); $(CONFIGURE) . build
81
82$(LIBDYLIB): $(PLATFORM)
83	cd $(PLATFORM)/build; $(NATIVEPREFIX)/bin/ninja -v
84
85.installed-$(PLATFORM): $(LIBDYLIB)
86	cd $(PLATFORM)/build; $(NATIVEPREFIX)/bin/ninja -v install
87	touch $@
88
89clean:
90	$(MAKE) -C $(PLATFORM) clean
91	rm -f .installed-$(PLATFORM)
92
93distclean:
94	rm -rf $(PLATFORM) .installed-$(PLATFORM)
95