st/xorg: fix build when /lib/gallium directory does not exist yet
[mesa.git] / src / gallium / targets / Makefile.xorg
1 # src/gallium/targets/Makefile.xorg
2
3 # Template makefile for gallium xorg drivers.
4 #
5 # Usage:
6 # The minimum that the including makefile needs to define
7 # is TOP, LIBNAME and one of of the *_SOURCES.
8 #
9 # Optional defines:
10 # DRIVER_INCLUDES are appended to the list of includes directories.
11 # DRIVER_DEFINES is not used for makedepend, but for compilation.
12 # DRIVER_PIPES are pipe drivers and modules that the driver depends on.
13 # DRIVER_LINKS are flags given to the linker.
14
15 ### Basic defines ###
16
17 OBJECTS = $(C_SOURCES:.c=.o) \
18 $(CPP_SOURCES:.cpp=.o) \
19 $(ASM_SOURCES:.S=.o)
20
21 INCLUDES = \
22 $(shell $(PKG_CONFIG) --cflags-only-I pixman-1 xorg-server libdrm xproto) \
23 -I$(TOP)/src/gallium/include \
24 -I$(TOP)/src/gallium/drivers \
25 -I$(TOP)/src/gallium/auxiliary \
26 -I$(TOP)/src/gallium/winsys \
27 $(DRIVER_INCLUDES)
28
29 LIBNAME_STAGING = $(TOP)/$(LIB_DIR)/gallium/$(LIBNAME)
30
31 ifeq ($(MESA_LLVM),1)
32 LDFLAGS += $(LLVM_LDFLAGS)
33 DRIVER_LINKS += $(LLVM_LIBS) -lm -ldl
34 LD=$(CXX)
35 else
36 ifeq ($(LINK_WITH_CXX),1)
37 LD=$(CXX)
38 else
39 LD=$(CC)
40 endif
41 endif
42
43
44 ##### TARGETS #####
45
46 default: depend $(TOP)/$(LIB_DIR)/gallium $(LIBNAME) $(LIBNAME_STAGING)
47
48 $(LIBNAME): $(OBJECTS) Makefile ../Makefile.xorg $(LIBS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES)
49 $(MKLIB) -linker '$(LD)' -noprefix -o $@ $(LDFLAGS) $(OBJECTS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $(DRIVER_LINKS)
50
51 depend: $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(SYMLINKS) $(GENERATED_SOURCES)
52 rm -f depend
53 touch depend
54 $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(GENERATED_SOURCES) 2> /dev/null
55
56 $(LIBNAME_STAGING): $(LIBNAME)
57 $(INSTALL) $(LIBNAME) $(TOP)/$(LIB_DIR)/gallium
58
59 $(TOP)/$(LIB_DIR)/gallium:
60 mkdir -p $@
61
62 clean:
63 rm -f $(OBJECTS) $(GENERATED_SOURCES) $(LIBNAME) depend depend.bak
64
65 install:
66 $(INSTALL) -d $(DESTDIR)/$(XORG_DRIVER_INSTALL_DIR)
67 $(MINSTALL) -m 755 $(LIBNAME) $(DESTDIR)/$(XORG_DRIVER_INSTALL_DIR)
68
69
70 ##### RULES #####
71
72 %.s: %.c
73 $(CC) -S $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
74
75 %.o: %.c
76 $(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
77
78 %.o: %.cpp
79 $(CXX) -c $(INCLUDES) $(CXXFLAGS) $(DRIVER_DEFINES) $< -o $@
80
81 %.o: %.S
82 $(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
83
84 sinclude depend
85
86 .PHONY: default clean install