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