Get Polygon offset fill to work.
[mesa.git] / src / mesa / Makefile
1 # src/mesa/Makefile
2
3 TOP = ../..
4 include $(TOP)/configs/current
5
6 include sources
7
8
9 GL_MAJOR = 1
10 GL_MINOR = 5
11 GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
12
13
14 .SUFFIXES : .cpp
15
16 .c.o:
17 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
18
19 .cpp.o:
20 $(CXX) -c $(INCLUDE_DIRS) $(CXXFLAGS) $< -o $@
21
22 .S.o:
23 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
24
25
26 # Figure out what to make here
27 default:
28 @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
29 $(MAKE) linux-solo ; \
30 elif [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
31 $(MAKE) osmesa-only ; \
32 elif [ "$(DRIVER_DIRS)" = "beos" ]; then \
33 $(MAKE) beos ; \
34 elif [ "$(DRIVER_DIRS)" = "directfb" ]; then \
35 $(MAKE) directfb; \
36 else \
37 $(MAKE) stand-alone ; \
38 fi
39
40 # BeOS driver target
41 beos: depend subdirs mesa.a
42 cd drivers/beos; $(MAKE)
43
44
45 install: default
46 @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
47 cd drivers/dri ; $(MAKE) install ; \
48 fi
49
50 ######################################################################
51 # Linux solo DRI drivers
52
53 SOLO_C_SOURCES = \
54 $(MAIN_SOURCES) \
55 $(MATH_SOURCES) \
56 $(ARRAY_CACHE_SOURCES) \
57 $(TNL_SOURCES) \
58 $(SWRAST_SOURCES) \
59 $(SWRAST_SETUP_SOURCES) \
60 $(SHADER_SOURCES) \
61 $(ASM_C_SOURCES)
62
63 SOLO_OBJECTS = $(SOLO_C_SOURCES:.c=.o) \
64 $(ASM_SOURCES:.S=.o)
65
66 linux-solo: depend subdirs mesa.a drivers-dri
67
68 # Make archive of core object files
69 mesa.a: $(SOLO_OBJECTS)
70 rm -f $@
71 ar rcv $@ $(SOLO_OBJECTS)
72 ranlib $@
73 @if [ "${CONFIG_NAME}" = "beos" ] ; then \
74 mimeset -f "$@" ; \
75 fi
76
77 # note: cannot use the name of the directory ("drivers") as the
78 # target, otherwise make will look & see that the "drivers" directory
79 # already exists, so not try to rebuild it...
80 drivers-dri:
81 cd drivers/dri ; $(MAKE)
82
83
84
85 #####################################################################
86 # Stand-alone Mesa libGL, no built-in drivers (DirectFB)
87
88 LIBGL_CORE_SOURCES = \
89 $(CORE_SOURCES) \
90 $(ASM_SOURCES)
91
92 LIBGL_CORE_OBJECTS = \
93 $(CORE_OBJECTS) \
94 $(ASM_SOURCES:.S=.o)
95
96 # Make libGL from core object files
97 libgl-core: $(LIBGL_CORE_OBJECTS)
98 @ CC="$(CC)" CXX="$(CXX)" $(TOP)/bin/mklib -o $(GL_LIB) \
99 -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
100 -install $(LIB_DIR) $(MKLIB_OPTIONS) $(LIBGL_CORE_OBJECTS) $(GL_LIB_DEPS)
101
102 # DirectFB driver target
103 directfb: depend subdirs libgl-core
104 cd drivers/directfb; $(MAKE)
105
106
107
108 ######################################################################
109 # Stand-alone Mesa libGL and libOSMesa
110
111 STAND_ALONE_DRIVER_SOURCES = \
112 $(COMMON_DRIVER_SOURCES) \
113 $(X11_DRIVER_SOURCES) \
114 $(GLIDE_DRIVER_SOURCES) \
115 $(SVGA_DRIVER_SOURCES) \
116 $(FBDEV_DRIVER_SOURCES)
117
118 STAND_ALONE_SOURCES = \
119 $(CORE_SOURCES) \
120 $(ASM_SOURCES) \
121 $(STAND_ALONE_DRIVER_SOURCES)
122
123 # ASM_SOURCES is defined in the config file
124 ASM_OBJECTS = $(ASM_SOURCES:.S=.o)
125
126 STAND_ALONE_DRIVER_OBJECTS = $(STAND_ALONE_DRIVER_SOURCES:.c=.o)
127
128 STAND_ALONE_OBJECTS = \
129 $(CORE_OBJECTS) \
130 $(ASM_OBJECTS) \
131 $(STAND_ALONE_DRIVER_OBJECTS)
132
133 # For libOSMesa16 or libOSMesa32 we link _all_ the objects into the library,
134 # not just the osmesa.o object (i.e. we don't have a libGL).
135 OSMESA16_OBJECTS = \
136 $(CORE_OBJECTS) \
137 $(ASM_OBJECTS) \
138 $(COMMON_DRIVER_OBJECTS) \
139 $(OSMESA_DRIVER_OBJECTS)
140
141
142 stand-alone: depend subdirs $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(OSMESA_LIB_NAME)
143
144 osmesa-only: depend subdirs $(LIB_DIR)/$(OSMESA_LIB_NAME)
145
146 subdirs:
147 @ (cd x86 ; $(MAKE))
148
149 # Make the GL library
150 $(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS)
151 @ CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(GL_LIB) \
152 -major $(GL_MAJOR) -minor $(GL_MINOR) -patch $(GL_TINY) \
153 -install $(LIB_DIR) \
154 $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(STAND_ALONE_OBJECTS)
155
156 # Make the OSMesa library
157 $(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA_DRIVER_OBJECTS) $(OSMESA16_OBJECTS)
158 @ if [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
159 CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(OSMESA_LIB) \
160 -major $(MESA_MAJOR) \
161 -minor $(MESA_MINOR) -patch $(MESA_TINY) \
162 -install $(LIB_DIR) $(MKLIB_OPTIONS) \
163 $(OSMESA_LIB_DEPS) $(OSMESA16_OBJECTS) ; \
164 else \
165 CC=$(CC) CXX=$(CXX) $(TOP)/bin/mklib -o $(OSMESA_LIB) \
166 -major $(MESA_MAJOR) \
167 -minor $(MESA_MINOR) -patch $(GL_TINY) \
168 -install $(LIB_DIR) $(MKLIB_OPTIONS) \
169 $(OSMESA_LIB_DEPS) $(OSMESA_DRIVER_OBJECTS) ; \
170 fi
171
172
173 ######################################################################
174 # 16 (or 32) bit/channel OSMesa
175
176 # $(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA16_OBJECTS)
177 # $(TOP)/bin/mklib -o $(OSMESA_LIB) \
178 # -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
179 # -install $(LIB_DIR) \
180 # $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(OSMESA16_OBJECTS)
181
182
183
184 ######################################################################
185 # Generic stuff
186
187 ALL_SOURCES = \
188 $(GLAPI_SOURCES) \
189 $(MAIN_SOURCES) \
190 $(MATH_SOURCES) \
191 $(ARRAY_CACHE_SOURCES) \
192 $(TNL_SOURCES) \
193 $(SHADER_SOURCES) \
194 $(SWRAST_SOURCES) \
195 $(SWRAST_SETUP_SOURCES) \
196 $(ASM_C_SOURCES) \
197 $(X86_SOURCES) \
198 $(COMMON_DRIVER_SOURCES)\
199 $(X11_DRIVER_SOURCES) \
200 $(OSMESA_DRIVER_SOURCES)
201
202
203 SUBDIRS = array_cache drivers/dri glapi main math sparc swrast swrast_setup \
204 tnl tnl_dd
205
206
207 # Update dependencies
208 depend: $(ALL_SOURCES)
209 @ echo "running $(MKDEP)"
210 @ touch depend
211 $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(ALL_SOURCES) \
212 > /dev/null
213
214
215 # Emacs tags
216 tags:
217 etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
218
219 clean:
220 -rm -f */*.o
221 -rm -f depend depend.bak mesa.a
222 -rm -f drivers/*/*.o
223 (cd drivers/dri ; $(MAKE) clean)
224 (cd x86 ; $(MAKE) clean)
225
226 include depend