dri/nouveau: Fix build with --enable-shared-dricore.

- Based on the work of Себастьян Gliţa Κατινα <cglita@yahoo.com>
- Split Makefile.template into Makefile.defines and Makefile.targets
- Adapt other drivers to new situation
- Fixes https://bugs.freedesktop.org/show_bug.cgi?id=35441

Signed-off-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Johannes Obermayr 2011-06-02 17:15:44 -06:00 committed by Brian Paul
parent a9c5efb111
commit 873379a881
21 changed files with 81 additions and 151 deletions

View file

@ -26,6 +26,8 @@ LDFLAGS = @LDFLAGS@
EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
RADEON_CFLAGS = @RADEON_CFLAGS@
RADEON_LDFLAGS = @RADEON_LDFLAGS@
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@
NOUVEAU_LIBS = @NOUVEAU_LIBS@
INTEL_LIBS = @INTEL_LIBS@
INTEL_CFLAGS = @INTEL_CFLAGS@
X11_LIBS = @X11_LIBS@

View file

@ -63,11 +63,16 @@ GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel drm/i965
GALLIUM_TARGET_DIRS =
GALLIUM_STATE_TRACKERS_DIRS = egl
DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
DRI_DIRS = i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
savage sis tdfx unichrome swrast
INTEL_LIBS = `pkg-config --libs libdrm_intel`
INTEL_CFLAGS = `pkg-config --cflags libdrm_intel`
INTEL_LIBS = $(shell pkg-config --libs libdrm_intel)
INTEL_CFLAGS = $(shell pkg-config --cflags libdrm_intel)
RADEON_LIBS = `pkg-config --libs libdrm_radeon`
RADEON_CFLAGS = `pkg-config --cflags libdrm_radeon`
NOUVEAU_LIBS = $(shell pkg-config --libs libdrm_nouveau)
NOUVEAU_CFLAGS = $(shell pkg-config --cflags libdrm_nouveau)
LIBDRM_RADEON_LIBS = $(shell pkg-config --libs libdrm_radeon)
LIBDRM_RADEON_CFLAGS = $(shell pkg-config --cflags libdrm_radeon)
RADEON_CFLAGS = "-DHAVE_LIBDRM_RADEON=1 $(LIBDRM_RADEON_CFLAGS)"
RADEON_LDFLAGS = $(LIBDRM_RADEON_LIBS)

View file

@ -21,6 +21,7 @@ dnl Versions for external dependencies
LIBDRM_REQUIRED=2.4.24
LIBDRM_RADEON_REQUIRED=2.4.24
LIBDRM_INTEL_REQUIRED=2.4.24
LIBDRM_NOUVEAU_REQUIRED=0.6
DRI2PROTO_REQUIRED=2.1
GLPROTO_REQUIRED=1.4.11
LIBDRM_XORG_REQUIRED=2.4.24
@ -1004,8 +1005,8 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
# the new interface. i810 are missing because there is no
# x86-64 system where they could *ever* be used.
if test "x$DRI_DIRS" = "xyes"; then
DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
savage tdfx unichrome swrast"
DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
radeon savage tdfx unichrome swrast"
fi
;;
powerpc*)
@ -1032,8 +1033,8 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
fi
if test "x$DRI_DIRS" = "xyes"; then
DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
unichrome savage sis swrast"
DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
radeon tdfx unichrome savage sis swrast"
fi
;;
gnu*)
@ -1061,7 +1062,7 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
# default drivers
if test "x$DRI_DIRS" = "xyes"; then
DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
savage sis tdfx unichrome swrast"
fi
@ -1097,6 +1098,12 @@ case $DRI_DIRS in
;;
esac
case $DRI_DIRS in
*nouveau*)
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
;;
esac
case $DRI_DIRS in
*radeon*|*r200*|*r300*|*r600*)
if test "x$HAVE_LIBDRM_RADEON" = xyes; then

View file

@ -75,7 +75,7 @@ LIBNAME_STAGING = $(TOP)/$(LIB_DIR)/gallium/$(LIBNAME)
default: depend symlinks $(TOP)/$(LIB_DIR)/gallium $(LIBNAME) $(LIBNAME_STAGING)
$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(PIPE_DRIVERS) Makefile \
$(TOP)/src/mesa/drivers/dri/Makefile.template $(TOP)/src/mesa/drivers/dri/common/dri_test.o
$(TOP)/src/mesa/drivers/dri/Makefile.targets $(TOP)/src/mesa/drivers/dri/common/dri_test.o
$(MKLIB) -o $@.tmp -noprefix -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
$(OBJECTS) $(PIPE_DRIVERS) \
-Wl,--start-group $(MESA_MODULES) -Wl,--end-group \

View file

@ -1,111 +0,0 @@
# -*-makefile-*-
COMMON_GALLIUM_SOURCES = \
../common/utils.c \
../common/vblank.c \
../common/dri_util.c \
../common/xmlconfig.c
COMMON_SOURCES = $(COMMON_GALLIUM_SOURCES) \
../../common/driverfuncs.c \
../common/texmem.c \
../common/drirenderbuffer.c
INCLUDES = $(SHARED_INCLUDES) $(EXPAT_INCLUDES)
OBJECTS = $(C_SOURCES:.c=.o) \
$(CXX_SOURCES:.cpp=.o) \
$(ASM_SOURCES:.S=.o)
### Include directories
SHARED_INCLUDES = \
-I. \
-I$(TOP)/src/mesa/drivers/dri/common \
-Iserver \
-I$(TOP)/include \
-I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/egl/main \
-I$(TOP)/src/egl/drivers/dri \
$(LIBDRM_CFLAGS)
CFLAGS += $(API_DEFINES)
CXXFLAGS += $(API_DEFINES)
##### RULES #####
.c.o:
$(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@
.cpp.o:
$(CC) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DRIVER_DEFINES) $< -o $@
.S.o:
$(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@
##### TARGETS #####
default: subdirs lib
.PHONY: lib
lib: symlinks subdirs depend
@$(MAKE) $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME)
$(LIBNAME): $(OBJECTS) $(EXTRA_MODULES) $(MESA_MODULES) Makefile \
$(TOP)/src/mesa/drivers/dri/Makefile.template $(TOP)/src/mesa/drivers/dri/common/dri_test.o
$(MKLIB) -o $@.tmp -noprefix -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
$(OBJECTS) $(EXTRA_MODULES) $(DRI_LIB_DEPS)
$(CXX) $(CFLAGS) -o $@.test $(TOP)/src/mesa/drivers/dri/common/dri_test.o $@.tmp $(DRI_LIB_DEPS)
@rm -f $@.test
mv -f $@.tmp $@
$(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
$(INSTALL) $(LIBNAME) $(TOP)/$(LIB_DIR)
# If the Makefile defined SUBDIRS, run make in each
.PHONY: subdirs
subdirs:
@if test -n "$(SUBDIRS)" ; then \
for dir in $(SUBDIRS) ; do \
if [ -d $$dir ] ; then \
(cd $$dir && $(MAKE)) || exit 1; \
fi \
done \
fi
.PHONY: symlinks
symlinks:
depend: $(C_SOURCES) $(CXX_SOURCES) $(ASM_SOURCES) $(SYMLINKS)
@ echo "running $(MKDEP)"
@ rm -f depend
@ touch depend
@ $(MKDEP) $(MKDEP_OPTIONS) $(DRIVER_DEFINES) $(INCLUDES) \
$(C_SOURCES) $(CXX_SOURCES) \
$(ASM_SOURCES) > /dev/null 2>/dev/null
# Emacs tags
tags:
etags `find . -name \*.[ch]` `find ../include`
# Remove .o and backup files
clean:
-rm -f *.o */*.o *~ *.so *~ server/*.o $(SYMLINKS)
-rm -f depend depend.bak
install: $(LIBNAME)
$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
$(MINSTALL) -m 755 $(LIBNAME) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
-include depend

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = i810_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
i810context.c \
i810ioctl.c \
@ -24,5 +26,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -4,6 +4,8 @@ include $(TOP)/configs/current
LIBNAME = i915_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
i830_context.c \
i830_state.c \
@ -63,7 +65,7 @@ DRIVER_DEFINES = -I../intel -DI915 \
INCLUDES += $(INTEL_CFLAGS)
DRI_LIB_DEPS += $(INTEL_LIBS)
include ../Makefile.template
include ../Makefile.targets
intel_decode.o: ../intel/intel_decode.c

View file

@ -4,6 +4,8 @@ include $(TOP)/configs/current
LIBNAME = i965_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
intel_batchbuffer.c \
intel_blit.c \
@ -131,7 +133,7 @@ DRIVER_DEFINES = -I../intel
INCLUDES += $(INTEL_CFLAGS)
DRI_LIB_DEPS += $(INTEL_LIBS)
include ../Makefile.template
include ../Makefile.targets
intel_decode.o: ../intel/intel_decode.c
intel_tex_layout.o: ../intel/intel_tex_layout.c

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = mach64_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
mach64_context.c \
mach64_ioctl.c \
@ -25,5 +27,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = mga_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
mgadd.c \
mgaioctl.c \
@ -27,5 +29,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -3,11 +3,10 @@
TOP = ../../../../..
include $(TOP)/configs/current
CFLAGS += $(shell pkg-config libdrm libdrm_nouveau --cflags)
DRI_LIB_DEPS += $(shell pkg-config libdrm_nouveau --libs)
LIBNAME = nouveau_vieux_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
nouveau_screen.c \
nouveau_context.c \
@ -51,7 +50,9 @@ C_SOURCES = \
ASM_SOURCES =
INCLUDES += $(NOUVEAU_CFLAGS)
DRI_LIB_DEPS += $(NOUVEAU_LIBS)
include ../Makefile.template
include ../Makefile.targets
symlinks:

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = r128_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
r128_context.c \
r128_lock.c \
@ -25,5 +27,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -3,10 +3,10 @@
TOP = ../../../../..
include $(TOP)/configs/current
CFLAGS += $(RADEON_CFLAGS)
LIBNAME = r200_dri.so
include ../Makefile.defines
ifeq ($(RADEON_LDFLAGS),)
CS_SOURCES = radeon_cs_space_drm.c radeon_bo.c radeon_cs.c
endif
@ -55,12 +55,13 @@ X86_SOURCES =
DRIVER_DEFINES = -DRADEON_R200
INCLUDES += $(RADEON_CFLAGS)
DRI_LIB_DEPS += $(RADEON_LDFLAGS)
##### TARGETS #####
include ../Makefile.template
include ../Makefile.targets
#INCLUDES += -I../radeon/server

View file

@ -3,17 +3,17 @@
TOP = ../../../../..
include $(TOP)/configs/current
CFLAGS += $(RADEON_CFLAGS)
LIBNAME = r300_dri.so
include ../Makefile.defines
ifeq ($(RADEON_LDFLAGS),)
CS_SOURCES = radeon_cs_space_drm.c radeon_bo.c radeon_cs.c
endif
COMMON_SOURCES = \
../../common/driverfuncs.c \
../common/mm.c \
../common/drirenderbuffer.c \
../common/utils.c \
../common/texmem.c \
../common/vblank.c \
@ -64,6 +64,7 @@ C_SOURCES = $(COMMON_SOURCES) $(DRIVER_SOURCES)
DRIVER_DEFINES = -DRADEON_R300
# -DRADEON_BO_TRACK \
INCLUDES += $(RADEON_CFLAGS)
DRI_LIB_DEPS += $(RADEON_LDFLAGS)
SUBDIRS = compiler
@ -73,5 +74,5 @@ EXTRA_MODULES = compiler/libr300compiler.a
##### TARGETS #####
include ../Makefile.template
include ../Makefile.targets

View file

@ -3,17 +3,17 @@
TOP = ../../../../..
include $(TOP)/configs/current
CFLAGS += $(RADEON_CFLAGS)
LIBNAME = r600_dri.so
include ../Makefile.defines
ifeq ($(RADEON_LDFLAGS),)
CS_SOURCES = radeon_cs_space_drm.c radeon_bo.c radeon_cs.c
endif
COMMON_SOURCES = \
../../common/driverfuncs.c \
../common/mm.c \
../common/drirenderbuffer.c \
../common/utils.c \
../common/texmem.c \
../common/vblank.c \
@ -78,9 +78,10 @@ C_SOURCES = $(COMMON_SOURCES) $(DRIVER_SOURCES)
DRIVER_DEFINES = -DRADEON_R600
# -DRADEON_BO_TRACK \
INCLUDES += $(RADEON_CFLAGS)
DRI_LIB_DEPS += $(RADEON_LDFLAGS)
##### TARGETS #####
include ../Makefile.template
include ../Makefile.targets

View file

@ -4,10 +4,10 @@
TOP = ../../../../..
include $(TOP)/configs/current
CFLAGS += $(RADEON_CFLAGS)
LIBNAME = radeon_dri.so
include ../Makefile.defines
ifeq ($(RADEON_LDFLAGS),)
CS_SOURCES = radeon_cs_space_drm.c radeon_bo.c radeon_cs.c
endif
@ -53,9 +53,10 @@ C_SOURCES = \
DRIVER_DEFINES = -DRADEON_R100
INCLUDES += $(RADEON_CFLAGS)
DRI_LIB_DEPS += $(RADEON_LDFLAGS)
X86_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = savage_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
savage_xmesa.c \
savagedd.c \
@ -22,5 +24,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = sis_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
sis6326_state.c \
sis6326_clear.c \
@ -28,5 +30,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = swrast_dri.so
include ../Makefile.defines
DRIVER_DEFINES = -D__NOT_HAVE_DRM_H
DRIVER_SOURCES = \
@ -22,5 +24,5 @@ SWRAST_COMMON_SOURCES = \
../common/utils.c \
../common/drisw_util.c
include ../Makefile.template
include ../Makefile.targets

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = tdfx_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
tdfx_context.c \
tdfx_dd.c \
@ -27,6 +29,6 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets

View file

@ -5,6 +5,8 @@ include $(TOP)/configs/current
LIBNAME = unichrome_dri.so
include ../Makefile.defines
DRIVER_SOURCES = \
via_context.c \
via_fb.c \
@ -25,5 +27,5 @@ C_SOURCES = \
ASM_SOURCES =
include ../Makefile.template
include ../Makefile.targets