d1a119379ed5060f9e8846b29d4020823c24ce35
[mesa.git] / src / mesa / drivers / dri / Makefile.template
1 # -*-makefile-*-
2
3 COMMON_GALLIUM_SOURCES = \
4 ../common/utils.c \
5 ../common/vblank.c \
6 ../common/dri_util.c \
7 ../common/xmlconfig.c
8
9 COMMON_SOURCES = $(COMMON_GALLIUM_SOURCES) \
10 ../../common/driverfuncs.c \
11 ../common/texmem.c \
12 ../common/drirenderbuffer.c
13
14 INCLUDES = $(SHARED_INCLUDES) $(EXPAT_INCLUDES)
15
16 OBJECTS = $(C_SOURCES:.c=.o) \
17 $(CXX_SOURCES:.cpp=.o) \
18 $(ASM_SOURCES:.S=.o)
19
20
21 ### Include directories
22 SHARED_INCLUDES = \
23 -I. \
24 -I$(TOP)/src/mesa/drivers/dri/common \
25 -Iserver \
26 -I$(TOP)/include \
27 -I$(TOP)/src/mapi \
28 -I$(TOP)/src/mesa \
29 -I$(TOP)/src/egl/main \
30 -I$(TOP)/src/egl/drivers/dri \
31 $(LIBDRM_CFLAGS)
32
33 CFLAGS += $(API_DEFINES)
34 CXXFLAGS += $(API_DEFINES)
35
36 ##### RULES #####
37
38 .c.o:
39 $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@
40
41 .cpp.o:
42 $(CC) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DRIVER_DEFINES) $< -o $@
43
44 .S.o:
45 $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@
46
47
48 ##### TARGETS #####
49
50 default: subdirs lib
51
52
53 .PHONY: lib
54 lib: symlinks subdirs depend
55 @$(MAKE) $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME)
56
57 $(LIBNAME): $(OBJECTS) $(EXTRA_MODULES) $(MESA_MODULES) Makefile \
58 $(TOP)/src/mesa/drivers/dri/Makefile.template $(TOP)/src/mesa/drivers/dri/common/dri_test.o
59 $(MKLIB) -o $@.tmp -noprefix -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
60 $(OBJECTS) $(EXTRA_MODULES) $(DRI_LIB_DEPS)
61 $(CXX) $(CFLAGS) -o $@.test $(TOP)/src/mesa/drivers/dri/common/dri_test.o $@.tmp $(DRI_LIB_DEPS)
62 @rm -f $@.test
63 mv -f $@.tmp $@
64
65
66 $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
67 $(INSTALL) $(LIBNAME) $(TOP)/$(LIB_DIR)
68
69
70 # If the Makefile defined SUBDIRS, run make in each
71 .PHONY: subdirs
72 subdirs:
73 @if test -n "$(SUBDIRS)" ; then \
74 for dir in $(SUBDIRS) ; do \
75 if [ -d $$dir ] ; then \
76 (cd $$dir && $(MAKE)) || exit 1; \
77 fi \
78 done \
79 fi
80
81
82 .PHONY: symlinks
83 symlinks:
84
85
86 depend: $(C_SOURCES) $(CXX_SOURCES) $(ASM_SOURCES) $(SYMLINKS)
87 @ echo "running $(MKDEP)"
88 @ rm -f depend
89 @ touch depend
90 @ $(MKDEP) $(MKDEP_OPTIONS) $(DRIVER_DEFINES) $(INCLUDES) \
91 $(C_SOURCES) $(CXX_SOURCES) \
92 $(ASM_SOURCES) > /dev/null 2>/dev/null
93
94
95 # Emacs tags
96 tags:
97 etags `find . -name \*.[ch]` `find ../include`
98
99
100 # Remove .o and backup files
101 clean:
102 -rm -f *.o */*.o *~ *.so *~ server/*.o $(SYMLINKS)
103 -rm -f depend depend.bak
104
105
106 install: $(LIBNAME)
107 $(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
108 $(MINSTALL) -m 755 $(LIBNAME) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
109
110
111 -include depend