1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# src/gallium/targets/libgl-xlib/Makefile
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# This makefile produces a "stand-alone" libGL.so which is based on
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Xlib (no DRI HW acceleration)
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgTOP = ../../../..
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginclude $(TOP)/configs/current
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgGL_MAJOR = 1
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgGL_MINOR = 5
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgGL_TINY = 0$(MESA_MAJOR)$(MESA_MINOR)0$(MESA_TINY)
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgINCLUDE_DIRS = \
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/include \
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/mapi \
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/mesa \
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/mesa/main \
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/gallium/include \
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/gallium/drivers \
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/gallium/state_trackers/glx/xlib \
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-I$(TOP)/src/gallium/auxiliary \
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(X11_CFLAGS)
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDEFINES += \
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-DGALLIUM_SOFTPIPE \
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-DGALLIUM_RBUG \
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-DGALLIUM_TRACE \
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-DGALLIUM_GALAHAD
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgXLIB_TARGET_SOURCES = \
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	xlib.c
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgXLIB_TARGET_OBJECTS = $(XLIB_TARGET_SOURCES:.c=.o)
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLIBS = \
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(GALLIUM_DRIVERS) \
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/gallium/state_trackers/glx/xlib/libxlib.a \
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a \
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/gallium/drivers/trace/libtrace.a \
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/gallium/drivers/rbug/librbug.a \
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/gallium/drivers/galahad/libgalahad.a \
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/mapi/glapi/libglapi.a \
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/src/mesa/libmesagallium.a \
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(GALLIUM_AUXILIARIES) \
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# LLVM
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgifeq ($(MESA_LLVM),1)
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgPIPE_DRIVERS += $(TOP)/src/gallium/drivers/llvmpipe/libllvmpipe.a
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDEFINES += -DGALLIUM_LLVMPIPE
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgGL_LIB_DEPS += $(LLVM_LIBS) 
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLDFLAGS += $(LLVM_LDFLAGS)
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgendif
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgifeq ($(SHARED_GLAPI),1)
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgGL_LIB_DEPS := -L$(TOP)/$(LIB_DIR) -l$(GLAPI_LIB) $(GL_LIB_DEPS)
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgendif
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org.SUFFIXES : .cpp
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org.c.o:
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org.cpp.o:
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(CXX) -c $(INCLUDE_DIRS) $(CXXFLAGS) $< -o $@
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdefault: $(TOP)/$(LIB_DIR)/gallium $(TOP)/$(LIB_DIR)/gallium/$(GL_LIB_NAME)
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org$(TOP)/$(LIB_DIR)/gallium:
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	@ mkdir -p $(TOP)/$(LIB_DIR)/gallium
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Make the libGL.so library
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org$(TOP)/$(LIB_DIR)/gallium/$(GL_LIB_NAME): $(XLIB_TARGET_OBJECTS) $(LIBS) Makefile
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(TOP)/bin/mklib -o $(GL_LIB) \
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		-linker "$(CXX)" -ldflags '$(LDFLAGS)' \
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		-major $(GL_MAJOR) -minor $(GL_MINOR) -patch $(GL_TINY) \
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		-cplusplus \
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		-install $(TOP)/$(LIB_DIR)/gallium \
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		$(MKLIB_OPTIONS) $(XLIB_TARGET_OBJECTS) \
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		-Wl,--start-group $(LIBS) -Wl,--end-group $(GL_LIB_DEPS)
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdepend: $(XLIB_TARGET_SOURCES)
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	@ echo "running $(MKDEP)"
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	@ rm -f depend  # workaround oops on gutsy?!?
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	@ touch depend
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(XLIB_TARGET_SOURCES) \
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		> /dev/null 2>/dev/null
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginstall: default
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GL
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR)
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	$(INSTALL) -m 644 $(TOP)/include/GL/*.h $(DESTDIR)$(INSTALL_DIR)/include/GL
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	@if [ -e $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) ]; then \
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		$(MINSTALL) $(TOP)/$(LIB_DIR)/libGL* $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR); \
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	fi
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Emacs tags
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtags:
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgclean:
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	-rm -f *.o depend
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginclude depend
118