apply texgen/texture matrix in glRasterPos
[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 .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
22 default:
23 @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
24 make linux-solo ; \
25 elif [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
26 make osmesa-only ; \
27 else \
28 make stand-alone ; \
29 fi
30
31
32 ######################################################################
33 # Linux solo DRI drivers
34
35 SOLO_C_SOURCES = \
36 $(MAIN_SOURCES) \
37 $(MATH_SOURCES) \
38 $(ARRAY_CACHE_SOURCES) \
39 $(TNL_SOURCES) \
40 $(SWRAST_SOURCES) \
41 $(SWRAST_SETUP_SOURCES) \
42 $(SHADER_SOURCES) \
43 $(ASM_C_SOURCES)
44
45 SOLO_OBJECTS = $(SOLO_C_SOURCES:.c=.o) \
46 $(ASM_SOURCES:.S=.o)
47
48
49 linux-solo: depend subdirs mesa.a driver-dirs
50
51 # Make archive of core object files
52 mesa.a: $(SOLO_OBJECTS)
53 rm -f $@
54 ar rcv $@ $(SOLO_OBJECTS)
55 ranlib $@
56
57 # note: cannot use the name of the directory ("drivers") as the
58 # target, otherwise make will look & see that the "drivers" directory
59 # already exists, so not try to rebuild it...
60 driver-dirs:
61 cd drivers/dri ; make
62
63
64 ######################################################################
65 # Stand-alone Mesa libGL and libOSMesa
66
67 STAND_ALONE_DRIVER_SOURCES = \
68 $(COMMON_DRIVER_SOURCES) \
69 $(X11_DRIVER_SOURCES) \
70 $(GLIDE_DRIVER_SOURCES) \
71 $(SVGA_DRIVER_SOURCES) \
72 $(FBDEV_DRIVER_SOURCES)
73
74 STAND_ALONE_SOURCES = \
75 $(CORE_SOURCES) \
76 $(ASM_SOURCES) \
77 $(STAND_ALONE_DRIVER_SOURCES)
78
79 # ASM_SOURCES is defined in the config file
80 ASM_OBJECTS = $(ASM_SOURCES:.S=.o)
81
82 STAND_ALONE_DRIVER_OBJECTS = $(STAND_ALONE_DRIVER_SOURCES:.c=.o)
83
84 STAND_ALONE_OBJECTS = \
85 $(CORE_OBJECTS) \
86 $(ASM_OBJECTS) \
87 $(STAND_ALONE_DRIVER_OBJECTS)
88
89 # For libOSMesa16 or libOSMesa32 we link _all_ the objects into the library,
90 # not just the osmesa.o object (i.e. we don't have a libGL).
91 OSMESA16_OBJECTS = \
92 $(CORE_OBJECTS) \
93 $(ASM_OBJECTS) \
94 $(COMMON_DRIVER_OBJECTS) \
95 $(OSMESA_DRIVER_OBJECTS)
96
97
98
99 stand-alone: depend subdirs $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(OSMESA_LIB_NAME)
100
101 osmesa-only: depend subdirs $(LIB_DIR)/$(OSMESA_LIB_NAME)
102
103 subdirs:
104 @ (cd x86 ; make)
105
106 # Make the GL library
107 $(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS)
108 $(TOP)/bin/mklib -o $(GL_LIB) -major $(GL_MAJOR) \
109 -minor $(GL_MINOR) -patch $(GL_TINY) -install $(LIB_DIR) \
110 $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(STAND_ALONE_OBJECTS)
111
112 # Make the OSMesa library
113 $(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA_DRIVER_OBJECTS) $(OSMESA16_OBJECTS)
114 if [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
115 $(TOP)/bin/mklib -o $(OSMESA_LIB) -major $(MESA_MAJOR) \
116 -minor $(MESA_MINOR) -patch $(MESA_TINY) \
117 -install $(LIB_DIR) $(MKLIB_OPTIONS) \
118 $(OSMESA_LIB_DEPS) $(OSMESA16_OBJECTS) ; \
119 else \
120 $(TOP)/bin/mklib -o $(OSMESA_LIB) -major $(MESA_MAJOR) \
121 -minor $(MESA_MINOR) -patch $(GL_TINY) \
122 -install $(LIB_DIR) $(MKLIB_OPTIONS) \
123 $(OSMESA_LIB_DEPS) $(OSMESA_DRIVER_OBJECTS) ; \
124 fi
125
126
127 ######################################################################
128 # 16 (or 32) bit/channel OSMesa
129
130 # $(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA16_OBJECTS)
131 # $(TOP)/bin/mklib -o $(OSMESA_LIB) \
132 # -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
133 # -install $(LIB_DIR) \
134 # $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(OSMESA16_OBJECTS)
135
136
137
138 ######################################################################
139 # Generic stuff
140
141 ALL_SOURCES = \
142 $(GLAPI_SOURCES) \
143 $(MAIN_SOURCES) \
144 $(MATH_SOURCES) \
145 $(ARRAY_CACHE_SOURCES) \
146 $(TNL_SOURCES) \
147 $(SHADER_SOURCES) \
148 $(SWRAST_SOURCES) \
149 $(SWRAST_SETUP_SOURCES) \
150 $(ASM_C_SOURCES) \
151 $(X86_SOURCES) \
152 $(COMMON_DRIVER_SOURCES)
153
154
155 SUBDIRS = array_cache drivers/dri glapi main math sparc swrast swrast_setup \
156 tnl tnl_dd
157
158
159 # Update dependencies
160 depend: $(ALL_SOURCES)
161 touch depend
162 $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(ALL_SOURCES) >& /dev/null
163
164
165 # Emacs tags
166 tags:
167 etags `find . -name \*.[ch]` `find ../include`
168
169 clean:
170 -rm -f */*.o
171 rm -f depend mesa.a
172 for dir in $(SUBDIRS) ; do \
173 (cd $$dir ; make clean) ; \
174 done
175
176 include depend