blob: b88a122abffc29038a23e7d7914072b880554817 [file] [log] [blame]
Brian Paulde0ee312004-03-26 15:19:11 +00001# src/mesa/Makefile
2
3TOP = ../..
4include $(TOP)/configs/current
5
6include sources
7
8
9GL_MAJOR = 1
10GL_MINOR = 5
11GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
12
13
14.c.o:
15 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
16
17.S.o:
18 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
19
20
21# Figure out what to make here
22default:
23 @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
Eric Anholt2fb5d152004-06-01 00:06:14 +000024 $(MAKE) linux-solo ; \
Brian Paulde0ee312004-03-26 15:19:11 +000025 elif [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
Eric Anholt2fb5d152004-06-01 00:06:14 +000026 $(MAKE) osmesa-only ; \
Philippe Houdoin31848302004-08-14 09:23:09 +000027 elif [ "$(DRIVER_DIRS)" = "beos" ]; then \
28 $(MAKE) beos ; \
Brian Paulbdbdab82005-01-04 14:19:25 +000029 elif [ "$(DRIVER_DIRS)" = "directfb" ]; then \
30 $(MAKE) directfb; \
Brian Paulde0ee312004-03-26 15:19:11 +000031 else \
Eric Anholt2fb5d152004-06-01 00:06:14 +000032 $(MAKE) stand-alone ; \
Brian Paulde0ee312004-03-26 15:19:11 +000033 fi
34
Philippe Houdoin31848302004-08-14 09:23:09 +000035# BeOS driver target
36beos: depend subdirs mesa.a
37 cd drivers/beos; $(MAKE)
Brian Paul7e27ab42004-08-16 17:11:10 +000038
39
Brian Paulde0ee312004-03-26 15:19:11 +000040######################################################################
41# Linux solo DRI drivers
42
Keith Whitwell00e01092004-04-14 10:26:47 +000043SOLO_C_SOURCES = \
Brian Paulde0ee312004-03-26 15:19:11 +000044 $(MAIN_SOURCES) \
45 $(MATH_SOURCES) \
46 $(ARRAY_CACHE_SOURCES) \
47 $(TNL_SOURCES) \
48 $(SWRAST_SOURCES) \
49 $(SWRAST_SETUP_SOURCES) \
Dave Airlie50a8b7b2004-04-14 02:08:37 +000050 $(SHADER_SOURCES) \
Keith Whitwell00e01092004-04-14 10:26:47 +000051 $(ASM_C_SOURCES)
Brian Paulde0ee312004-03-26 15:19:11 +000052
Keith Whitwell00e01092004-04-14 10:26:47 +000053SOLO_OBJECTS = $(SOLO_C_SOURCES:.c=.o) \
54 $(ASM_SOURCES:.S=.o)
Brian Paulde0ee312004-03-26 15:19:11 +000055
Philippe Houdoin31848302004-08-14 09:23:09 +000056linux-solo: depend subdirs mesa.a drivers-dri
Brian Paulde0ee312004-03-26 15:19:11 +000057
58# Make archive of core object files
59mesa.a: $(SOLO_OBJECTS)
60 rm -f $@
61 ar rcv $@ $(SOLO_OBJECTS)
62 ranlib $@
Philippe Houdoin31848302004-08-14 09:23:09 +000063 @if [ "${CONFIG_NAME}" = "beos" ] ; then \
64 mimeset -f "$@" ; \
65 fi
Brian Paulde0ee312004-03-26 15:19:11 +000066
Keith Whitwell00e01092004-04-14 10:26:47 +000067# note: cannot use the name of the directory ("drivers") as the
68# target, otherwise make will look & see that the "drivers" directory
69# already exists, so not try to rebuild it...
Philippe Houdoin31848302004-08-14 09:23:09 +000070drivers-dri:
Eric Anholt2fb5d152004-06-01 00:06:14 +000071 cd drivers/dri ; $(MAKE)
Brian Paulde0ee312004-03-26 15:19:11 +000072
73
Brian Paulbdbdab82005-01-04 14:19:25 +000074
75#####################################################################
76# Stand-alone Mesa libGL, no built-in drivers (DirectFB)
77
78LIBGL_CORE_SOURCES = \
79 $(CORE_SOURCES) \
80 $(ASM_SOURCES)
81
82LIBGL_CORE_OBJECTS = \
83 $(CORE_OBJECTS) \
84 $(ASM_SOURCES:.S=.o)
85
86# Make libGL from core object files
87libgl-core: $(LIBGL_CORE_OBJECTS)
88 @ CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(GL_LIB) \
89 -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
90 -install $(LIB_DIR) $(MKLIB_OPTIONS) $(LIBGL_CORE_OBJECTS) $(GL_LIB_DEPS)
91
92# DirectFB driver target
93directfb: depend subdirs libgl-core
94 cd drivers/directfb; $(MAKE)
95
96
97
Brian Paulde0ee312004-03-26 15:19:11 +000098######################################################################
99# Stand-alone Mesa libGL and libOSMesa
100
101STAND_ALONE_DRIVER_SOURCES = \
102 $(COMMON_DRIVER_SOURCES) \
103 $(X11_DRIVER_SOURCES) \
104 $(GLIDE_DRIVER_SOURCES) \
105 $(SVGA_DRIVER_SOURCES) \
106 $(FBDEV_DRIVER_SOURCES)
107
108STAND_ALONE_SOURCES = \
109 $(CORE_SOURCES) \
110 $(ASM_SOURCES) \
111 $(STAND_ALONE_DRIVER_SOURCES)
112
113# ASM_SOURCES is defined in the config file
114ASM_OBJECTS = $(ASM_SOURCES:.S=.o)
115
116STAND_ALONE_DRIVER_OBJECTS = $(STAND_ALONE_DRIVER_SOURCES:.c=.o)
117
118STAND_ALONE_OBJECTS = \
119 $(CORE_OBJECTS) \
120 $(ASM_OBJECTS) \
121 $(STAND_ALONE_DRIVER_OBJECTS)
122
123# For libOSMesa16 or libOSMesa32 we link _all_ the objects into the library,
124# not just the osmesa.o object (i.e. we don't have a libGL).
125OSMESA16_OBJECTS = \
126 $(CORE_OBJECTS) \
127 $(ASM_OBJECTS) \
128 $(COMMON_DRIVER_OBJECTS) \
129 $(OSMESA_DRIVER_OBJECTS)
130
131
Brian Paulde0ee312004-03-26 15:19:11 +0000132stand-alone: depend subdirs $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(OSMESA_LIB_NAME)
133
134osmesa-only: depend subdirs $(LIB_DIR)/$(OSMESA_LIB_NAME)
135
136subdirs:
Eric Anholt2fb5d152004-06-01 00:06:14 +0000137 @ (cd x86 ; $(MAKE))
Brian Paulde0ee312004-03-26 15:19:11 +0000138
139# Make the GL library
140$(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS)
Brian Paul11a0a992004-11-27 04:37:25 +0000141 @ CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(GL_LIB) \
142 -major $(GL_MAJOR) -minor $(GL_MINOR) -patch $(GL_TINY) \
143 -install $(LIB_DIR) \
Brian Paulde0ee312004-03-26 15:19:11 +0000144 $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(STAND_ALONE_OBJECTS)
145
146# Make the OSMesa library
147$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA_DRIVER_OBJECTS) $(OSMESA16_OBJECTS)
Brian Paul11a0a992004-11-27 04:37:25 +0000148 @ if [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
149 CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(OSMESA_LIB) \
150 -major $(MESA_MAJOR) \
Brian Paulde0ee312004-03-26 15:19:11 +0000151 -minor $(MESA_MINOR) -patch $(MESA_TINY) \
152 -install $(LIB_DIR) $(MKLIB_OPTIONS) \
153 $(OSMESA_LIB_DEPS) $(OSMESA16_OBJECTS) ; \
154 else \
Brian Paul11a0a992004-11-27 04:37:25 +0000155 CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(OSMESA_LIB) \
156 -major $(MESA_MAJOR) \
Brian Paulde0ee312004-03-26 15:19:11 +0000157 -minor $(MESA_MINOR) -patch $(GL_TINY) \
158 -install $(LIB_DIR) $(MKLIB_OPTIONS) \
159 $(OSMESA_LIB_DEPS) $(OSMESA_DRIVER_OBJECTS) ; \
160 fi
161
162
163######################################################################
164# 16 (or 32) bit/channel OSMesa
165
166# $(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA16_OBJECTS)
167# $(TOP)/bin/mklib -o $(OSMESA_LIB) \
168# -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
169# -install $(LIB_DIR) \
170# $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(OSMESA16_OBJECTS)
171
172
173
174######################################################################
175# Generic stuff
176
177ALL_SOURCES = \
178 $(GLAPI_SOURCES) \
179 $(MAIN_SOURCES) \
180 $(MATH_SOURCES) \
181 $(ARRAY_CACHE_SOURCES) \
182 $(TNL_SOURCES) \
Brian Pauleca88f82004-04-18 20:14:11 +0000183 $(SHADER_SOURCES) \
Brian Paulde0ee312004-03-26 15:19:11 +0000184 $(SWRAST_SOURCES) \
185 $(SWRAST_SETUP_SOURCES) \
186 $(ASM_C_SOURCES) \
187 $(X86_SOURCES) \
Brian Pauld2c10272004-11-26 16:23:22 +0000188 $(COMMON_DRIVER_SOURCES)\
189 $(X11_DRIVER_SOURCES) \
190 $(OSMESA_DRIVER_SOURCES)
Brian Paulde0ee312004-03-26 15:19:11 +0000191
192
193SUBDIRS = array_cache drivers/dri glapi main math sparc swrast swrast_setup \
194 tnl tnl_dd
195
196
197# Update dependencies
198depend: $(ALL_SOURCES)
Brian Paul11a0a992004-11-27 04:37:25 +0000199 @ echo "running $(MKDEP)"
200 @ touch depend
Keith Whitwellfc236722004-12-08 15:16:36 +0000201 $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(ALL_SOURCES) \
202 > /dev/null
Brian Paulde0ee312004-03-26 15:19:11 +0000203
204
205# Emacs tags
206tags:
Brian Pauld2c10272004-11-26 16:23:22 +0000207 etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
Brian Paulde0ee312004-03-26 15:19:11 +0000208
209clean:
210 -rm -f */*.o
Brian Paulddfec592004-10-04 14:47:48 +0000211 -rm -f depend depend.bak mesa.a
Brian Paul7e27ab42004-08-16 17:11:10 +0000212 -rm -f drivers/*/*.o
213 (cd drivers/dri ; $(MAKE) clean)
Brian Paulde0ee312004-03-26 15:19:11 +0000214
215include depend