4 include $(TOP
)/configs
/current
6 MESA_LIBS
:= libmesa.a libmesagallium.a
9 ifeq ($(GLES_OVERLAY
),1)
10 ES1_LIBS
:= libes1gallium.a
11 ES2_LIBS
:= libes2gallium.a
12 DEPENDS
+= depend.es1 depend.es2
16 ES1_OBJ_DIR
:= objs-es1
17 ES2_OBJ_DIR
:= objs-es2
19 MESA_CPPFLAGS
:= $(API_DEFINES
)
20 ES1_CPPFLAGS
:= -DFEATURE_ES1
=1
21 ES2_CPPFLAGS
:= -DFEATURE_ES2
=1
24 MESA_CPPFLAGS
+= $(LLVM_CFLAGS
)
25 ES1_CPPFLAGS
+= $(LLVM_CFLAGS
)
26 ES2_CPPFLAGS
+= $(LLVM_CFLAGS
)
33 ES1_OBJECTS
:= $(addprefix $(ES1_OBJ_DIR
)/, $(MESA_OBJECTS
))
34 ES2_OBJECTS
:= $(addprefix $(ES2_OBJ_DIR
)/, $(MESA_OBJECTS
))
35 MESA_OBJECTS
:= $(addprefix $(MESA_OBJ_DIR
)/, $(MESA_OBJECTS
))
37 ES1_GALLIUM_OBJECTS
:= $(addprefix $(ES1_OBJ_DIR
)/, $(MESA_GALLIUM_OBJECTS
))
38 ES2_GALLIUM_OBJECTS
:= $(addprefix $(ES2_OBJ_DIR
)/, $(MESA_GALLIUM_OBJECTS
))
39 MESA_GALLIUM_OBJECTS
:= $(addprefix $(MESA_OBJ_DIR
)/, $(MESA_GALLIUM_OBJECTS
))
42 MESA_INCLUDES
:= $(INCLUDE_DIRS
)
43 ES1_INCLUDES
:= -I
$(TOP
)/src
/mapi
/es1api
$(INCLUDE_DIRS
)
44 ES2_INCLUDES
:= -I
$(TOP
)/src
/mapi
/es2api
$(INCLUDE_DIRS
)
45 MESA_INCLUDES
:= -I
$(TOP
)/src
/glsl
$(MESA_INCLUDES
)
46 ES1_INCLUDES
:= -I
$(TOP
)/src
/glsl
$(ES1_INCLUDES
)
47 ES2_INCLUDES
:= -I
$(TOP
)/src
/glsl
$(ES2_INCLUDES
)
48 # For symbol_table.h in glsl compiler headers.
49 MESA_INCLUDES
:= -I
$(TOP
)/src
/mesa
/shader
$(MESA_INCLUDES
)
53 $(CC
) -c
-o
$@
$< $($(1)_CPPFLAGS
) $($(1)_INCLUDES
) $(CFLAGS
)
58 $(CXX
) -c
-o
$@
$< $($(1)_CPPFLAGS
) $($(1)_INCLUDES
) $(CXXFLAGS
)
61 $(MESA_OBJ_DIR
)/%.o
: %.c
62 $(call mesa-cc-c
,MESA
)
64 $(MESA_OBJ_DIR
)/%.o
: %.
cpp
65 $(call mesa-cxx-c
,MESA
)
67 $(MESA_OBJ_DIR
)/%.o
: %.S
68 $(call mesa-cc-c
,MESA
)
70 $(ES1_OBJ_DIR
)/%.o
: %.c
73 $(ES1_OBJ_DIR
)/%.o
: %.
cpp
74 $(call mesa-cxx-c
,ES1
)
76 $(ES1_OBJ_DIR
)/%.o
: %.S
79 $(ES2_OBJ_DIR
)/%.o
: %.c
82 $(ES2_OBJ_DIR
)/%.o
: %.
cpp
83 $(call mesa-cxx-c
,ES2
)
85 $(ES2_OBJ_DIR
)/%.o
: %.S
89 # Default: build dependencies, then asm_subdirs, GLSL built-in lib,
90 # then convenience libs (.a) and finally the device drivers:
91 default
: $(DEPENDS
) asm_subdirs \
92 $(MESA_LIBS
) $(ES1_LIBS
) $(ES2_LIBS
) driver_subdirs
94 main
/api_exec_es1.c
: main
/APIspec.xml main
/es_generator.py main
/APIspecutil.py main
/APIspec.py
95 $(PYTHON2
) $(PYTHON_FLAGS
) main
/es_generator.py
-S main
/APIspec.xml
-V GLES1.1
> $@
97 main
/api_exec_es2.c
: main
/APIspec.xml main
/es_generator.py main
/APIspecutil.py main
/APIspec.py
98 $(PYTHON2
) $(PYTHON_FLAGS
) main
/es_generator.py
-S main
/APIspec.xml
-V GLES2.0
> $@
100 ######################################################################
101 # Helper libraries used by many drivers:
103 # Make archive of core mesa object files
104 libmesa.a
: $(MESA_OBJECTS
) $(GLSL_LIBS
)
105 @
$(MKLIB
) -o mesa
-static
$(MESA_OBJECTS
) $(GLSL_LIBS
)
107 libes1.a
: $(ES1_OBJECTS
) $(GLSL_LIBS
)
108 @
$(MKLIB
) -o es1
-static
$(ES1_OBJECTS
) $(GLSL_LIBS
)
110 libes2.a
: $(ES2_OBJECTS
) $(GLSL_LIBS
)
111 @
$(MKLIB
) -o es2
-static
$(ES2_OBJECTS
) $(GLSL_LIBS
)
113 # Make archive of subset of core mesa object files for gallium
114 libmesagallium.a
: $(MESA_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
115 @
$(MKLIB
) -o mesagallium
-static
$(MESA_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
117 libes1gallium.a
: $(ES1_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
118 @
$(MKLIB
) -o es1gallium
-static
$(ES1_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
120 libes2gallium.a
: $(ES2_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
121 @
$(MKLIB
) -o es2gallium
-static
$(ES2_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
123 ######################################################################
125 driver_subdirs
: $(MESA_LIBS
)
126 @
(cd drivers
&& $(MAKE
))
129 ######################################################################
132 @ if echo
"$(ASM_FLAGS)" | grep
-q USE_X86_ASM
; then \
133 (cd x86
&& $(MAKE
)) || exit
1 ; \
135 @ if echo
"$(ASM_FLAGS)" | grep
-q USE_X86_64_ASM
; then \
136 (cd x86
&& $(MAKE
)) || exit
1 ; \
137 (cd x86-64
&& $(MAKE
)) || exit
1 ; \
141 ######################################################################
142 # Dependency generation
144 depend
: $(ALL_SOURCES
)
145 @ echo
"running $(MKDEP)"
147 @
$(MKDEP
) $(MKDEP_OPTIONS
) -p
$(MESA_OBJ_DIR
)/ $(DEFINES
) \
148 $(INCLUDE_DIRS
) $(ALL_SOURCES
) > /dev
/null
2>/dev
/null
150 depend.es1
: $(ALL_SOURCES
)
151 @echo
"running $(MKDEP) for ES1"
153 @
$(MKDEP
) $(MKDEP_OPTIONS
) -f
$@
-p
$(ES1_OBJ_DIR
)/ $(DEFINES
) \
154 $(ES1_CPPFLAGS
) $(ES1_INCLUDES
) $(ALL_SOURCES
) \
155 > /dev
/null
2>/dev
/null
157 depend.es2
: $(ALL_SOURCES
)
158 @echo
"running $(MKDEP) for ES2"
160 @
$(MKDEP
) $(MKDEP_OPTIONS
) -f
$@
-p
$(ES2_OBJ_DIR
)/ $(DEFINES
) \
161 $(ES2_CPPFLAGS
) $(ES2_INCLUDES
) $(ALL_SOURCES
) \
162 > /dev
/null
2>/dev
/null
164 ######################################################################
167 # this isn't fleshed out yet but is probably the way to go in the future
169 (cd drivers
&& $(MAKE
) install)
172 # XXX replace this with new_install above someday
174 @for driver in
$(DRIVER_DIRS
) ; do \
176 osmesa
) if
[ "$(DRIVER_DIRS)" = osmesa
]; then \
177 $(MAKE
) install-headers install-osmesa || exit
1 ; \
179 $(MAKE
) install-osmesa || exit
1 ; \
181 dri
) $(MAKE
) install-libgl install-dri || exit
1 ;; \
182 *) $(MAKE
) install-libgl || exit
1 ;; \
187 -e
's,@INSTALL_DIR@,$(INSTALL_DIR),' \
188 -e
's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
189 -e
's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
190 -e
's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
195 -e
's,@GL_PC_REQ_PRIV@,$(GL_PC_REQ_PRIV),' \
196 -e
's,@GL_PC_LIB_PRIV@,$(GL_PC_LIB_PRIV),' \
197 -e
's,@GL_PC_CFLAGS@,$(GL_PC_CFLAGS),' \
198 -e
's,@GL_LIB@,$(GL_LIB),'
203 osmesa_pcedit
= sed \
205 -e
's,@OSMESA_LIB@,$(OSMESA_LIB),' \
206 -e
's,@OSMESA_PC_REQ@,$(OSMESA_PC_REQ),' \
207 -e
's,@OSMESA_PC_LIB_PRIV@,$(OSMESA_PC_LIB_PRIV),'
209 osmesa.
pc: osmesa.
pc.in
210 $(osmesa_pcedit
) $< > $@
213 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_INC_DIR
)/GL
214 $(INSTALL
) -m
644 $(TOP
)/include/GL
/*.h \
215 $(DESTDIR
)$(INSTALL_INC_DIR
)/GL
217 install-libgl
: default gl.
pc install-headers
218 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)
219 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
220 $(MINSTALL
) $(TOP
)/$(LIB_DIR
)/$(GL_LIB_GLOB
) \
221 $(DESTDIR
)$(INSTALL_LIB_DIR
)
222 $(INSTALL
) -m
644 gl.
pc $(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
224 install-osmesa
: default osmesa.
pc
225 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)
226 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
227 $(MINSTALL
) $(TOP
)/$(LIB_DIR
)/$(OSMESA_LIB_GLOB
) \
228 $(DESTDIR
)$(INSTALL_LIB_DIR
)
229 $(INSTALL
) -m
644 osmesa.
pc $(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
232 cd drivers
/dri
&& $(MAKE
) install
238 etags
`find . -name \*.[ch]` $(TOP
)/include/GL
/*.h
242 -rm -rf
$(ES1_OBJ_DIR
)
243 -rm -f depend.es1 depend.es1.bak
247 -rm -rf
$(ES2_OBJ_DIR
)
248 -rm -f depend.es2 depend.es2.bak
250 clean: clean-es1 clean-es2
253 -rm -f depend depend.bak libmesa.a libmesagallium.a
256 -@cd drivers
/dri
&& $(MAKE
) clean
257 -@cd drivers
/x11
&& $(MAKE
) clean
258 -@cd drivers
/osmesa
&& $(MAKE
) clean
259 -@cd x86
&& $(MAKE
) clean
260 -@cd x86-64
&& $(MAKE
) clean