4 include $(TOP
)/configs
/current
6 MESA_LIBS
:= libmesa.a libmesagallium.a
10 DRICORE_OBJ_DIR
:= objs-dricore
15 DRICORE_OBJECTS
:= $(addprefix $(DRICORE_OBJ_DIR
)/, $(MESA_OBJECTS
))
16 MESA_OBJECTS
:= $(addprefix $(MESA_OBJ_DIR
)/, $(MESA_OBJECTS
))
17 MESA_GALLIUM_OBJECTS
:= $(addprefix $(MESA_OBJ_DIR
)/, $(MESA_GALLIUM_OBJECTS
))
19 # define preprocessor flags
20 MESA_CPPFLAGS
:= $(API_DEFINES
) $(DEFINES
)
23 MESA_CPPFLAGS
+= $(INCLUDE_DIRS
)
25 DRICORE_CPPFLAGS
= $(MESA_CPPFLAGS
)
28 CFLAGS
:= $(filter-out $(DEFINES
), $(CFLAGS
))
29 CXXFLAGS
:= $(filter-out $(DEFINES
), $(CXXFLAGS
))
31 # LLVM is needed for the state tracker
32 MESA_CFLAGS
:= $(LLVM_CFLAGS
) $(CFLAGS
)
33 DRICORE_CFLAGS
:= $(LLVM_CFLAGS
) $(DRI_CFLAGS
)
35 MESA_CXXFLAGS
:= $(LLVM_CFLAGS
) $(CXXFLAGS
)
36 DRICORE_CXXFLAGS
:= $(LLVM_CFLAGS
) $(DRI_CXXFLAGS
)
40 $(CC
) -c
-o
$@
$< $($(1)_CPPFLAGS
) $($(1)_CFLAGS
)
45 $(CXX
) -c
-o
$@
$< $($(1)_CPPFLAGS
) $($(1)_CXXFLAGS
)
48 $(MESA_OBJ_DIR
)/%.o
: %.c
49 $(call mesa-cc-c
,MESA
)
51 $(MESA_OBJ_DIR
)/%.o
: %.
cpp
52 $(call mesa-cxx-c
,MESA
)
54 $(MESA_OBJ_DIR
)/%.o
: %.S
55 $(call mesa-cc-c
,MESA
)
57 $(DRICORE_OBJ_DIR
)/%.o
: %.c
58 $(call mesa-cc-c
,DRICORE
)
60 $(DRICORE_OBJ_DIR
)/%.o
: %.
cpp
61 $(call mesa-cxx-c
,DRICORE
)
63 $(DRICORE_OBJ_DIR
)/%.o
: %.S
64 $(call mesa-cc-c
,DRICORE
)
66 # Default: build dependencies, then asm_subdirs, GLSL built-in lib,
67 # then convenience libs (.a) and finally the device drivers:
68 default
: $(DEPENDS
) asm_subdirs
$(MESA_LIBS
) $(DRICORE_LIBS
) driver_subdirs
70 # include glapi_gen.mk for generating glapi headers for GLES
71 GLAPI
:= $(TOP
)/src
/mapi
/glapi
/gen
72 include $(GLAPI
)/glapi_gen.mk
74 main
/api_exec_es1_dispatch.h
: $(GLAPI
)/gl_and_es_API.xml
$(glapi_gen_dispatch_deps
)
75 $(call glapi_gen_dispatch
,$<,es1
)
77 main
/api_exec_es1_remap_helper.h
: $(GLAPI
)/gl_and_es_API.xml
$(glapi_gen_remap_deps
)
78 $(call glapi_gen_remap
,$<,es1
)
80 main
/api_exec_es1.o
: main
/api_exec_es1_dispatch.h main
/api_exec_es1_remap_helper.h
82 main
/api_exec_es2_dispatch.h
: $(GLAPI
)/gl_and_es_API.xml
$(glapi_gen_dispatch_deps
)
83 $(call glapi_gen_dispatch
,$<,es2
)
85 main
/api_exec_es2_remap_helper.h
: $(GLAPI
)/gl_and_es_API.xml
$(glapi_gen_remap_deps
)
86 $(call glapi_gen_remap
,$<,es2
)
88 main
/api_exec_es2.o
: main
/api_exec_es2_dispatch.h main
/api_exec_es2_remap_helper.h
90 main
/api_exec_es1.c
: main
/APIspec.xml main
/es_generator.py main
/APIspecutil.py main
/APIspec.py
91 $(PYTHON2
) $(PYTHON_FLAGS
) main
/es_generator.py
-S main
/APIspec.xml
-V GLES1.1
> $@
93 main
/api_exec_es2.c
: main
/APIspec.xml main
/es_generator.py main
/APIspecutil.py main
/APIspec.py
94 $(PYTHON2
) $(PYTHON_FLAGS
) main
/es_generator.py
-S main
/APIspec.xml
-V GLES2.0
> $@
96 program
/program_parse.tab.c program
/program_parse.tab.h
: program
/program_parse.y
97 $(BISON
) -v
-d
--output
=program
/program_parse.tab.c
$<
99 program
/lex.yy.c
: program
/program_lexer.l
100 $(FLEX
) --never-interactive
--outfile
=$@
$<
102 ######################################################################
103 # Helper libraries used by many drivers:
105 # Make archive of core mesa object files
106 libmesa.a
: $(MESA_OBJECTS
) $(GLSL_LIBS
)
107 @
$(MKLIB
) -o mesa
-static
$(MESA_OBJECTS
) $(GLSL_LIBS
)
109 # Shared dricore library for classic DRI drivers
110 $(TOP
)/$(LIB_DIR
)/libdricore.so
: $(DRICORE_OBJECTS
) $(DRICORE_GLSL_LIBS
)
111 @
$(MKLIB
) -o
$@
-linker
'$(CXX)' -ldflags '$(LDFLAGS)' \
112 -cplusplus
-noprefix \
113 -install $(TOP
)/$(LIB_DIR
) -id
$(DRI_DRIVER_INSTALL_DIR
)/$@.dylib \
114 $(DRICORE_LIB_DEPS
) $(DRICORE_OBJECTS
)
116 # Make archive of subset of core mesa object files for gallium
117 libmesagallium.a
: $(MESA_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
118 @
$(MKLIB
) -o mesagallium
-static
$(MESA_GALLIUM_OBJECTS
) $(GLSL_LIBS
)
120 ######################################################################
122 driver_subdirs
: $(MESA_LIBS
) $(DRICORE_LIBS
)
123 @
(cd drivers
&& $(MAKE
))
126 ######################################################################
129 @ if echo
"$(ASM_FLAGS)" | grep
-q USE_X86_ASM
; then \
130 (cd x86
&& $(MAKE
)) || exit
1 ; \
132 @ if echo
"$(ASM_FLAGS)" | grep
-q USE_X86_64_ASM
; then \
133 (cd x86
&& $(MAKE
)) || exit
1 ; \
134 (cd x86-64
&& $(MAKE
)) || exit
1 ; \
138 ######################################################################
139 # Dependency generation
141 depend
: $(ALL_SOURCES
)
142 @ echo
"running $(MKDEP)"
144 @
$(MKDEP
) $(MKDEP_OPTIONS
) -p
$(MESA_OBJ_DIR
)/ $(MESA_CPPFLAGS
) \
145 $(ALL_SOURCES
) > /dev
/null
2>/dev
/null
146 @
$(MKDEP
) $(MKDEP_OPTIONS
) -a
-p
$(DRICORE_OBJ_DIR
)/ $(MESA_CPPFLAGS
) \
147 $(ALL_SOURCES
) > /dev
/null
2>/dev
/null
149 ######################################################################
152 # this isn't fleshed out yet but is probably the way to go in the future
154 (cd drivers
&& $(MAKE
) install)
156 ifneq (,$(DRICORE_LIBS
))
157 DRICORE_INSTALL_TARGET
= install-dricore
160 # XXX replace this with new_install above someday
161 install: default
$(DRICORE_INSTALL_TARGET
)
162 @for driver in
$(DRIVER_DIRS
) ; do \
164 osmesa
) if
[ "$(DRIVER_DIRS)" = osmesa
]; then \
165 $(MAKE
) install-headers install-osmesa || exit
1 ; \
167 $(MAKE
) install-osmesa || exit
1 ; \
169 dri
) $(MAKE
) install-libgl install-dri || exit
1 ;; \
170 *) $(MAKE
) install-libgl || exit
1 ;; \
175 -e
's,@INSTALL_DIR@,$(INSTALL_DIR),' \
176 -e
's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
177 -e
's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
178 -e
's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
183 -e
's,@GL_PC_REQ_PRIV@,$(GL_PC_REQ_PRIV),' \
184 -e
's,@GL_PC_LIB_PRIV@,$(GL_PC_LIB_PRIV),' \
185 -e
's,@GL_PC_CFLAGS@,$(GL_PC_CFLAGS),' \
186 -e
's,@GLX_TLS@,$(GLX_TLS),' \
187 -e
's,@GL_LIB@,$(GL_LIB),'
192 osmesa_pcedit
= sed \
194 -e
's,@OSMESA_LIB@,$(OSMESA_LIB),' \
195 -e
's,@OSMESA_PC_REQ@,$(OSMESA_PC_REQ),' \
196 -e
's,@OSMESA_PC_LIB_PRIV@,$(OSMESA_PC_LIB_PRIV),'
198 osmesa.
pc: osmesa.
pc.in
199 $(osmesa_pcedit
) $< > $@
202 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_INC_DIR
)/GL
203 $(INSTALL
) -m
644 $(TOP
)/include/GL
/*.h \
204 $(DESTDIR
)$(INSTALL_INC_DIR
)/GL
206 install-libgl
: default gl.
pc install-headers
207 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)
208 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
209 $(MINSTALL
) $(TOP
)/$(LIB_DIR
)/$(GL_LIB_GLOB
) \
210 $(DESTDIR
)$(INSTALL_LIB_DIR
)
211 $(INSTALL
) -m
644 gl.
pc $(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
213 install-osmesa
: default osmesa.
pc
214 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)
215 $(INSTALL
) -d
$(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
216 $(MINSTALL
) $(TOP
)/$(LIB_DIR
)/$(OSMESA_LIB_GLOB
) \
217 $(DESTDIR
)$(INSTALL_LIB_DIR
)
218 $(INSTALL
) -m
644 osmesa.
pc $(DESTDIR
)$(INSTALL_LIB_DIR
)/pkgconfig
221 cd drivers
/dri
&& $(MAKE
) install
223 # We don't need MINSTALL here because we're not installing symbolic links
224 install-dricore
: default
225 $(INSTALL
) -d
$(DESTDIR
)$(DRI_DRIVER_INSTALL_DIR
)
226 $(INSTALL
) -m
755 $(DRICORE_LIBS
) $(DESTDIR
)$(DRI_DRIVER_INSTALL_DIR
)
231 etags
`find . -name \*.[ch]` $(TOP
)/include/GL
/*.h
235 -rm -f
$(DRICORE_LIBS
)
236 -rm -rf
$(DRICORE_OBJ_DIR
)
241 -rm -f depend depend.bak libmesa.a libmesagallium.a
244 -@cd drivers
/dri
&& $(MAKE
) clean
245 -@cd drivers
/x11
&& $(MAKE
) clean
246 -@cd drivers
/osmesa
&& $(MAKE
) clean
247 -@cd x86
&& $(MAKE
) clean
248 -@cd x86-64
&& $(MAKE
) clean