Refactor COMMON_SOURCES up to Makefile.template
[mesa.git] / src / mesa / drivers / dri / Makefile.template
1 # -*-makefile-*-
2
3 MESA_MODULES = $(TOP)/src/mesa/mesa.a
4
5 COMMON_SOURCES = \
6 ../../common/driverfuncs.c \
7 ../common/mm.c \
8 ../common/utils.c \
9 ../common/texmem.c \
10 ../common/vblank.c \
11 ../common/dri_util.c \
12 ../common/xmlconfig.c \
13 ../common/drirenderbuffer.c \
14 ../common/glcontextmodes.c
15
16 ifeq ($(WINDOW_SYSTEM),dri)
17 WINOBJ=../dri_client/dri.a
18 WINLIB=
19 INCLUDES = $(SHARED_INCLUDES) \
20 -I../dri_client \
21 -I../dri_client/imports
22
23 OBJECTS = $(C_SOURCES:.c=.o) \
24 $(ASM_SOURCES:.S=.o)
25
26 else
27 WINOBJ=
28 WINLIB=-L$(MESA)/src/glx/mini
29 MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini
30 INCLUDES = $(MINIGLX_INCLUDES) \
31 -I$(DRM_SOURCE_PATH)/shared-core \
32 -I$(DRM_SOURCE_PATH)/libdrm \
33 $(SHARED_INCLUDES)
34
35 OBJECTS = $(C_SOURCES:.c=.o) \
36 $(MINIGLX_SOURCES:.c=.o) \
37 $(ASM_SOURCES:.S=.o)
38 endif
39
40
41
42
43
44 ### Include directories
45 SHARED_INCLUDES = \
46 -I. \
47 -I$(TOP)/src/mesa/drivers/dri/common \
48 -Iserver \
49 -I$(DRM_SOURCE_PATH)/shared-core \
50 -I$(TOP)/include \
51 -I$(TOP)/include/GL/internal \
52 -I$(TOP)/src/mesa \
53 -I$(TOP)/src/mesa/main \
54 -I$(TOP)/src/mesa/glapi \
55 -I$(TOP)/src/mesa/math \
56 -I$(TOP)/src/mesa/transform \
57 -I$(TOP)/src/mesa/shader \
58 -I$(TOP)/src/mesa/swrast \
59 -I$(TOP)/src/mesa/swrast_setup
60
61 ##### RULES #####
62
63 .c.o:
64 $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
65
66 .S.o:
67 $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
68
69
70 ##### TARGETS #####
71
72 default: depend symlinks $(LIBNAME) $(LIB_DIR)/$(LIBNAME)
73
74
75 #$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
76 # @echo BUILDING FOR: $(WINDOW_SYSTEM)
77 # $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
78 # $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
79
80 $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
81 rm -f $@
82 gcc $(ARCH_FLAGS) -o $@ -shared $(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
83
84
85 $(LIB_DIR)/$(LIBNAME): $(LIBNAME)
86 install $(LIBNAME) $(LIB_DIR)
87
88
89
90 # Run 'make depend' to update the dependencies if you change
91 # what's included by any source file.
92 .PHONY: depend
93 depend: $(C_SOURCES) $(ASM_SOURCES) $(SYMLINKS)
94 touch depend
95 $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDES) $(C_SOURCES) $(ASM_SOURCES) \
96 > /dev/null
97
98
99 # Emacs tags
100 tags:
101 etags `find . -name \*.[ch]` `find ../include`
102
103
104 # Remove .o and backup files
105 clean:
106 -rm -f *.o */*.o *~ *.so *~ server/*.o $(SYMLINKS)
107 -rm -f depend depend.bak
108
109 install: $(LIBNAME)
110 install $(LIBNAME) /usr/X11R6/lib/modules/dri/$(LIBNAME)
111
112 include depend