New Makefile system
[mesa.git] / src / mesa / drivers / dri / sis / Makefile
1 # src/mesa/drivers/dri/sis/Makefile
2
3 TOP = ../../../../..
4 include $(TOP)/configs/default
5
6 SHARED_INCLUDES = $(INCLUDE_DIRS) -I. -I../common -Iserver
7 MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini
8
9 DEFINES += \
10 -D_HAVE_SWRAST=1 \
11 -D_HAVE_SWTNL=1 \
12 -D_HAVE_SANITY=1 \
13 -D_HAVE_CODEGEN=1 \
14 -D_HAVE_LIGHTING=1 \
15 -D_HAVE_TEXGEN=1 \
16 -D_HAVE_USERCLIP=1 \
17 -DGLX_DIRECT_RENDERING
18
19 # Not yet
20 # MINIGLX_SOURCES = server/sis_dri.c
21
22 DRIVER_SOURCES = \
23 sis_alloc.c \
24 sis_clear.c \
25 sis_context.c \
26 sis_dd.c \
27 sis_fog.c \
28 sis_lock.c \
29 sis_screen.c \
30 sis_span.c \
31 sis_state.c \
32 sis_stencil.c \
33 sis_tex.c \
34 sis_texstate.c \
35 sis_tris.c \
36 sis_vb.c \
37 ../../common/driverfuncs.c \
38 ../common/mm.c \
39 ../common/utils.c \
40 ../common/texmem.c \
41 ../common/vblank.c
42
43 INCLUDES = $(MINIGLX_INCLUDES) \
44 $(SHARED_INCLUDES)
45
46
47 C_SOURCES = $(DRIVER_SOURCES) \
48 $(MINIGLX_SOURCES)
49
50 MESA_MODULES = $(TOP)/src/mesa/mesa.a
51
52
53 ifeq ($(WINDOW_SYSTEM),dri)
54 WINOBJ=$(MESABUILDDIR)/dri/dri.a
55 WINLIB=
56 else
57 WINOBJ=
58 WINLIB=-L$(MESA)/src/glx/mini
59 endif
60
61 ASM_SOURCES =
62 OBJECTS = $(C_SOURCES:.c=.o) \
63 $(ASM_SOURCES:.S=.o)
64
65 ### Include directories
66
67 INCLUDE_DIRS = \
68 -I$(TOP)/include \
69 -I$(TOP)/src/mesa \
70 -I$(TOP)/src/mesa/main \
71 -I$(TOP)/src/mesa/glapi \
72 -I$(TOP)/src/mesa/math \
73 -I$(TOP)/src/mesa/transform \
74 -I$(TOP)/src/mesa/swrast \
75 -I$(TOP)/src/mesa/swrast_setup
76
77
78 ##### RULES #####
79
80 .c.o:
81 $(CC) -c $(SHARED_INCLUDES) $(MINIGLX_INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
82
83 .S.o:
84 $(CC) -c $(SHARED_INCLUDES) $(MINIGLX_INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
85
86
87 ##### TARGETS #####
88
89 default: depend sis_dri.so
90
91 sis_dri.so: $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile.solo
92 rm -f $@ && gcc -o $@ -shared $(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(WINLIB) -lc $(GL_LIB_DEPS)
93 rm -f $(LIB_DIR)/sis_dri.so && \
94 install sis_dri.so $(LIB_DIR)/sis_dri.so
95
96 $(LIB_DIR)/sis_dri.so: sis_dri.so
97 rm -f $(LIB_DIR)/sis_dri.so && \
98 install sis_dri.so $(LIB_DIR)/sis_dri.so
99
100 # Run 'make -f Makefile.solo dep' to update the dependencies if you change
101 # what's included by any source file.
102 depend: $(C_SOURCES) $(ASM_SOURCES)
103 touch depend
104 makedepend -fdepend -Y $(SHARED_INCLUDES) $(MINIGLX_INCLUDES) \
105 $(C_SOURCES) $(ASM_SOURCES) >& /dev/null
106
107
108 # Emacs tags
109 tags:
110 etags `find . -name \*.[ch]` `find ../include`
111
112
113 # Remove .o and backup files
114 clean:
115 -rm -f *.o */*.o *~ *.o *~ *.so server/*.o
116
117
118 include depend