1 # src/gallium/winsys/drm/Makefile.egl
3 # The driver Makefile should define
5 # EGL_DRIVER_NAME, the name of the driver
6 # EGL_DRIVER_SOURCES, the sources of the driver
7 # EGL_DRIVER_LIBS, extra libraries needed by the driver
8 # EGL_DRIVER_PIPES, the pipe drivers of the driver
10 # before including this file.
12 EGL_DRIVER_OBJECTS = $(EGL_DRIVER_SOURCES:.c=.o)
14 common_LIBS = -ldrm -lm -ldl
16 # ximage backend calls gallium_wrap_screen, which requires libidentity.a and
18 x11_ST = $(TOP)/src/gallium/state_trackers/egl/libeglx11.a \
19 $(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a \
20 $(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a \
21 $(TOP)/src/gallium/drivers/identity/libidentity.a \
22 $(TOP)/src/gallium/drivers/trace/libtrace.a \
23 $(TOP)/src/gallium/drivers/rbug/librbug.a
25 x11_LIBS = $(common_LIBS) -lX11 -lXext -lXfixes
28 x11_ST += $(TOP)/src/gallium/drivers/llvmpipe/libllvmpipe.a
29 x11_LIBS += $(LLVM_LIBS)
30 LDFLAGS += $(LLVM_LDFLAGS)
33 kms_ST = $(TOP)/src/gallium/state_trackers/egl/libeglkms.a
34 kms_LIBS = $(common_LIBS)
36 ### Include directories
39 -I$(TOP)/src/gallium/include \
40 -I$(TOP)/src/gallium/auxiliary \
41 -I$(TOP)/src/gallium/drivers \
42 -I$(TOP)/src/gallium/winsys \
43 -I$(TOP)/src/egl/main \
49 $(CC) -c $(INCLUDES) $(CFLAGS) $(EGL_DRIVER_DEFINES) $< -o $@
54 EGL_DISPLAY_DRIVERS = $(foreach dpy, $(EGL_DISPLAYS), egl_$(dpy)_$(EGL_DRIVER_NAME).so)
56 EGL_DISPLAY_LIBS = $(foreach drv, $(EGL_DISPLAY_DRIVERS), $(TOP)/$(LIB_DIR)/egl/$(drv))
58 default: $(EGL_DISPLAY_LIBS)
60 $(EGL_DISPLAY_LIBS): $(TOP)/$(LIB_DIR)/egl/%.so: %.so
61 @$(INSTALL) -d $(TOP)/$(LIB_DIR)/egl
62 $(INSTALL) $< $(TOP)/$(LIB_DIR)/egl
65 $(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
66 $(MKLIB_OPTIONS) $(EGL_DRIVER_OBJECTS) \
67 -Wl,--start-group $($(1)_ST) $(EGL_DRIVER_PIPES) \
68 $(GALLIUM_AUXILIARIES) -Wl,--end-group \
69 $($(1)_LIBS) $(EGL_DRIVER_LIBS) -L$(TOP)/$(LIB_DIR) -l$(EGL_LIB)
72 egl_x11_$(EGL_DRIVER_NAME).so: $(EGL_DRIVER_OBJECTS) $(x11_ST) $(EGL_DRIVER_PIPES) $(GALLIUM_AUXILIARIES) Makefile
75 egl_kms_$(EGL_DRIVER_NAME).so: $(EGL_DRIVER_OBJECTS) $(kms_ST) $(EGL_DRIVER_PIPES) $(GALLIUM_AUXILIARIES) Makefile
79 -rm -f $(EGL_DRIVER_OBJECTS)
80 -rm -f $(EGL_DISPLAY_DRIVERS)
82 install: $(EGL_DISPLAY_LIBS)
83 $(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR)
84 for lib in $(EGL_DISPLAY_LIBS); do \
85 $(MINSTALL) -m 755 "$$lib" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \