2017-04-27 21:43 GMT+02:00 Rob Herring <r...@kernel.org>: > src/gallium/targets/dri/Android.mk contains lots of conditional for > individual drivers. Let's move these details into the individual driver > makefiles. > > In the process, align the make driver conditionals with automake > (i.e. HAVE_GALLIUM_*). > > Signed-off-by: Rob Herring <r...@kernel.org> > --- > Android.mk | 41 +++++++++------------- > src/egl/Android.mk | 14 +++----- > src/gallium/Android.mk | 6 ++-- > src/gallium/drivers/freedreno/Android.mk | 5 +++ > src/gallium/drivers/i915/Android.mk | 4 +++ > src/gallium/drivers/nouveau/Android.mk | 5 +++ > src/gallium/drivers/r300/Android.mk | 4 +++ > src/gallium/drivers/r600/Android.mk | 7 ++++ > src/gallium/drivers/radeon/Android.mk | 7 +++- > src/gallium/drivers/radeonsi/Android.mk | 12 ++++++- > src/gallium/drivers/softpipe/Android.mk | 4 +++ > src/gallium/drivers/svga/Android.mk | 4 +++ > src/gallium/drivers/vc4/Android.mk | 4 +++ > src/gallium/drivers/virgl/Android.mk | 4 +++ > src/gallium/state_trackers/dri/Android.mk | 2 +- > src/gallium/targets/dri/Android.mk | 58 > +++---------------------------- > src/gallium/winsys/amdgpu/drm/Android.mk | 5 +++ > src/gallium/winsys/i915/drm/Android.mk | 4 +++ > 18 files changed, 96 insertions(+), 94 deletions(-) > > diff --git a/Android.mk b/Android.mk > index 08daf770f26b..9f481ee7e109 100644 > --- a/Android.mk > +++ b/Android.mk > @@ -40,19 +40,22 @@ MESA_DRI_MODULE_UNSTRIPPED_PATH := > $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(M > MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk > MESA_PYTHON2 := python > > -classic_drivers := i915 i965 > -gallium_drivers := swrast freedreno i915g nouveau r300g r600g radeonsi > vmwgfx vc4 virgl > +classic_drivers := i915.HAVE_I915_DRI i965.HAVE_I965_DRI > +gallium_drivers := \ > + swrast.HAVE_GALLIUM_SOFTPIPE \ > + freedreno.HAVE_GALLIUM_FREEDRENO \ > + i915g.HAVE_GALLIUM_I915 \ > + nouveau.HAVE_GALLIUM_NOUVEAU \ > + r300g.HAVE_GALLIUM_R300 \ > + r600g.HAVE_GALLIUM_R600 \ > + radeonsi.HAVE_GALLIUM_RADEONSI \ > + vmwgfx.HAVE_GALLIUM_VMWGFX \ > + vc4.HAVE_GALLIUM_VC4 \ > + virgl.HAVE_GALLIUM_VIRGL > > -MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS)) > - > -# warn about invalid drivers > -invalid_drivers := $(filter-out \ > - $(classic_drivers) $(gallium_drivers), $(MESA_GPU_DRIVERS)) > -ifneq ($(invalid_drivers),) > -$(warning invalid GPU drivers: $(invalid_drivers)) > -# tidy up > -MESA_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(MESA_GPU_DRIVERS)) > -endif > +MESA_BUILD_CLASSIC := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), > $(patsubst $(d).%,%, $(filter $(d).%, $(classic_drivers))))) > +MESA_BUILD_GALLIUM := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), > $(patsubst $(d).%,%, $(filter $(d).%, $(gallium_drivers))))) > +$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := > true)) > > # host and target must be the same arch to generate matypes.h > ifeq ($(TARGET_ARCH),$(HOST_ARCH)) > @@ -61,19 +64,7 @@ else > MESA_ENABLE_ASM := false > endif > > -ifneq ($(filter $(classic_drivers), $(MESA_GPU_DRIVERS)),) > -MESA_BUILD_CLASSIC := true > -else > -MESA_BUILD_CLASSIC := false > -endif > - > -ifneq ($(filter $(gallium_drivers), $(MESA_GPU_DRIVERS)),) > -MESA_BUILD_GALLIUM := true > -else > -MESA_BUILD_GALLIUM := false > -endif > - > -MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)), > true,false) > +MESA_ENABLE_LLVM := $(if $(HAVE_GALLIUM_RADEONSI),true,false) >
In order to have better flexibility to set MESA_ENABLE_LLVM when a second driver will require it, I propose to check named drivers in BOARD_GPU_DRIVERS, this will allow simpler integration of new drivers requiring llvm (e.g. swrast) +MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(BOARD_GPU_DRIVERS)),true,false) > > # add subdirectories > SUBDIRS := \ > diff --git a/src/egl/Android.mk b/src/egl/Android.mk > index 8bbd4605cdca..a0f803a7fc39 100644 > --- a/src/egl/Android.mk > +++ b/src/egl/Android.mk > @@ -57,16 +57,10 @@ LOCAL_SHARED_LIBRARIES := \ > libcutils \ > libsync > > -ifeq ($(strip $(MESA_BUILD_CLASSIC)),true) > -# require i915_dri and/or i965_dri > -LOCAL_REQUIRED_MODULES += \ > - $(addsuffix _dri, $(filter i915 i965, $(MESA_GPU_DRIVERS))) > -endif # MESA_BUILD_CLASSIC > - > -ifeq ($(strip $(MESA_BUILD_GALLIUM)),true) > -LOCAL_REQUIRED_MODULES += gallium_dri > -endif # MESA_BUILD_GALLIUM > - > +# This controls enabling building of driver libraries > +LOCAL_REQUIRED_MODULES += $(if $(HAVE_I915_DRI),i915_dri,) > +LOCAL_REQUIRED_MODULES += $(if $(HAVE_I965_DRI),i965_dri,) > +LOCAL_REQUIRED_MODULES += $(if $(MESA_BUILD_GALLIUM),gallium_dri,) > > LOCAL_MODULE := libGLES_mesa > LOCAL_MODULE_RELATIVE_PATH := egl > diff --git a/src/gallium/Android.mk b/src/gallium/Android.mk > index 7c6bda68d59f..d591aaf62e6a 100644 > --- a/src/gallium/Android.mk > +++ b/src/gallium/Android.mk > @@ -42,7 +42,9 @@ SUBDIRS += winsys/amdgpu/drm winsys/radeon/drm > SUBDIRS += winsys/vc4/drm drivers/vc4 > SUBDIRS += winsys/virgl/drm winsys/virgl/vtest drivers/virgl > SUBDIRS += winsys/svga/drm drivers/svga > +SUBDIRS += state_trackers/dri > > -SUBDIRS += state_trackers/dri targets/dri > +INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS)) > +INC_DIRS += $(call all-named-subdir-makefiles,targets/dri) > > -include $(call all-named-subdir-makefiles,$(SUBDIRS)) > +include $(INC_DIRS) > diff --git a/src/gallium/drivers/freedreno/Android.mk > b/src/gallium/drivers/freedreno/Android.mk > index 5c97d9ef2906..330e82420426 100644 > --- a/src/gallium/drivers/freedreno/Android.mk > +++ b/src/gallium/drivers/freedreno/Android.mk > @@ -48,3 +48,8 @@ LOCAL_MODULE := libmesa_pipe_freedreno > include $(LOCAL_PATH)/Android.gen.mk > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_FREEDRENO),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_freedreno) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/drivers/i915/Android.mk > b/src/gallium/drivers/i915/Android.mk > index fece3053e375..6860770167fc 100644 > --- a/src/gallium/drivers/i915/Android.mk > +++ b/src/gallium/drivers/i915/Android.mk > @@ -34,3 +34,7 @@ LOCAL_MODULE := libmesa_pipe_i915 > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_I915),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_i915) > +endif > diff --git a/src/gallium/drivers/nouveau/Android.mk > b/src/gallium/drivers/nouveau/Android.mk > index 3b26b592cdd6..1099cc7a97b4 100644 > --- a/src/gallium/drivers/nouveau/Android.mk > +++ b/src/gallium/drivers/nouveau/Android.mk > @@ -42,3 +42,8 @@ LOCAL_MODULE := libmesa_pipe_nouveau > LOCAL_C_INCLUDES := external/libcxx/include > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_NOUVEAU),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_nouveau) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/drivers/r300/Android.mk > b/src/gallium/drivers/r300/Android.mk > index e2939ac4043d..0c89cdbb1472 100644 > --- a/src/gallium/drivers/r300/Android.mk > +++ b/src/gallium/drivers/r300/Android.mk > @@ -41,3 +41,7 @@ LOCAL_MODULE := libmesa_pipe_r300 > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > > +ifneq ($(HAVE_GALLIUM_R300),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_radeon) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/drivers/r600/Android.mk > b/src/gallium/drivers/r600/Android.mk > index cc89d8f6aeda..5ae3e945917f 100644 > --- a/src/gallium/drivers/r600/Android.mk > +++ b/src/gallium/drivers/r600/Android.mk > @@ -31,8 +31,15 @@ include $(CLEAR_VARS) > LOCAL_SRC_FILES := $(C_SOURCES) $(CXX_SOURCES) > > LOCAL_STATIC_LIBRARIES := libmesa_amd_common > + > LOCAL_SHARED_LIBRARIES := libdrm_radeon > LOCAL_MODULE := libmesa_pipe_r600 > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_R600),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) $(LOCAL_STATIC_LIBRARIES) \ > + libmesa_winsys_radeon) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/drivers/radeon/Android.mk > b/src/gallium/drivers/radeon/Android.mk > index 2bddac832a2e..64815f6f0847 100644 > --- a/src/gallium/drivers/radeon/Android.mk > +++ b/src/gallium/drivers/radeon/Android.mk > @@ -34,8 +34,13 @@ ifeq ($(MESA_ENABLE_LLVM),true) > LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare > LLVMInitializeAMDGPU* functions > endif > > -LOCAL_SHARED_LIBRARIES := libdrm_radeon > +LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM > LOCAL_MODULE := libmesa_pipe_radeon > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_R600)$(HAVE_GALLIUM_RADEONSI),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE)) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/drivers/radeonsi/Android.mk > b/src/gallium/drivers/radeonsi/Android.mk > index b6f9e26fcccc..1092736e9d02 100644 > --- a/src/gallium/drivers/radeonsi/Android.mk > +++ b/src/gallium/drivers/radeonsi/Android.mk > @@ -38,8 +38,18 @@ LOCAL_C_INCLUDES := \ > $(MESA_TOP)/src/amd/common \ > $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_amd_ > common,,)/common > > -LOCAL_SHARED_LIBRARIES := libdrm_radeon > +LOCAL_STATIC_LIBRARIES := libmesa_amd_common > + > +LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM > LOCAL_MODULE := libmesa_pipe_radeonsi > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_RADEONSI),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) $(LOCAL_STATIC_LIBRARIES) \ > + libmesa_winsys_radeon \ > + libmesa_winsys_amdgpu \ > +) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/drivers/softpipe/Android.mk > b/src/gallium/drivers/softpipe/Android.mk > index 5d3a93bcee45..dc0fe9dcdbd9 100644 > --- a/src/gallium/drivers/softpipe/Android.mk > +++ b/src/gallium/drivers/softpipe/Android.mk > @@ -35,3 +35,7 @@ LOCAL_MODULE := libmesa_pipe_softpipe > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_SOFTPIPE),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_sw_dri) > +endif > diff --git a/src/gallium/drivers/svga/Android.mk > b/src/gallium/drivers/svga/Android.mk > index 7d23fd500ef5..c50743d50948 100644 > --- a/src/gallium/drivers/svga/Android.mk > +++ b/src/gallium/drivers/svga/Android.mk > @@ -36,3 +36,7 @@ LOCAL_MODULE := libmesa_pipe_svga > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_VMWGFX),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_svga) > +endif > diff --git a/src/gallium/drivers/vc4/Android.mk b/src/gallium/drivers/vc4/ > Android.mk > index fdc06744e5ab..003827059cfd 100644 > --- a/src/gallium/drivers/vc4/Android.mk > +++ b/src/gallium/drivers/vc4/Android.mk > @@ -38,3 +38,7 @@ LOCAL_MODULE := libmesa_pipe_vc4 > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_VC4),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_vc4) > +endif > diff --git a/src/gallium/drivers/virgl/Android.mk > b/src/gallium/drivers/virgl/Android.mk > index 7c1ba42a5f6c..010e15144c9b 100644 > --- a/src/gallium/drivers/virgl/Android.mk > +++ b/src/gallium/drivers/virgl/Android.mk > @@ -32,3 +32,7 @@ LOCAL_MODULE := libmesa_pipe_virgl > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_VIRGL),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_virgl > libmesa_winsys_virgl_vtest) > +endif > diff --git a/src/gallium/state_trackers/dri/Android.mk > b/src/gallium/state_trackers/dri/Android.mk > index 97cf9376e199..a867e50d86c6 100644 > --- a/src/gallium/state_trackers/dri/Android.mk > +++ b/src/gallium/state_trackers/dri/Android.mk > @@ -42,7 +42,7 @@ LOCAL_EXPORT_C_INCLUDE_DIRS := \ > LOCAL_STATIC_LIBRARIES := \ > libmesa_dri_common > > -ifneq ($(filter swrast,$(MESA_GPU_DRIVERS)),) > +ifneq ($(HAVE_GALLIUM_SOFTPIPE),) > LOCAL_SRC_FILES += $(drisw_SOURCES) > endif > > diff --git a/src/gallium/targets/dri/Android.mk b/src/gallium/targets/dri/ > Android.mk > index 9dbac8f79637..14d1dd5f5d8b 100644 > --- a/src/gallium/targets/dri/Android.mk > +++ b/src/gallium/targets/dri/Android.mk > @@ -37,62 +37,10 @@ LOCAL_SHARED_LIBRARIES := \ > libglapi \ > libexpat > > -ifneq ($(filter freedreno,$(MESA_GPU_DRIVERS)),) > -LOCAL_CFLAGS += -DGALLIUM_FREEDRENO > -gallium_DRIVERS += libmesa_winsys_freedreno libmesa_pipe_freedreno > -LOCAL_SHARED_LIBRARIES += libdrm_freedreno > -endif > -ifneq ($(filter i915g,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_winsys_i915 libmesa_pipe_i915 > -LOCAL_SHARED_LIBRARIES += libdrm_intel > -LOCAL_CFLAGS += -DGALLIUM_I915 > -endif > -ifneq ($(filter nouveau,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_winsys_nouveau libmesa_pipe_nouveau > -LOCAL_CFLAGS += -DGALLIUM_NOUVEAU > -LOCAL_SHARED_LIBRARIES += libdrm_nouveau > -endif > - > -ifneq ($(filter r%,$(MESA_GPU_DRIVERS)),) > -ifneq ($(filter r300g,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_pipe_r300 > -LOCAL_CFLAGS += -DGALLIUM_R300 > -endif > -ifneq ($(filter r600g,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_pipe_r600 libmesa_pipe_radeon > -LOCAL_CFLAGS += -DGALLIUM_R600 > -endif > -ifneq ($(filter radeonsi,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_pipe_radeonsi libmesa_winsys_amdgpu > libmesa_amd_common libmesa_pipe_radeon > -LOCAL_SHARED_LIBRARIES += libLLVM libdrm_amdgpu > -LOCAL_CFLAGS += -DGALLIUM_RADEONSI > -endif > -gallium_DRIVERS += libmesa_winsys_radeon libmesa_amdgpu_addrlib > -LOCAL_SHARED_LIBRARIES += libdrm_radeon > -endif > - > -ifneq ($(filter swrast,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_pipe_softpipe libmesa_winsys_sw_dri > -LOCAL_CFLAGS += -DGALLIUM_SOFTPIPE > -endif > -ifneq ($(filter vc4,$(MESA_GPU_DRIVERS)),) > -LOCAL_CFLAGS += -DGALLIUM_VC4 > -gallium_DRIVERS += libmesa_winsys_vc4 libmesa_pipe_vc4 > -endif > -ifneq ($(filter virgl,$(MESA_GPU_DRIVERS)),) > -LOCAL_CFLAGS += -DGALLIUM_VIRGL > -gallium_DRIVERS += libmesa_winsys_virgl libmesa_winsys_virgl_vtest > libmesa_pipe_virgl > -endif > -ifneq ($(filter vmwgfx,$(MESA_GPU_DRIVERS)),) > -gallium_DRIVERS += libmesa_winsys_svga libmesa_pipe_svga > -LOCAL_CFLAGS += -DGALLIUM_VMWGFX > -endif > -ifneq ($(filter nouveau r600g,$(MESA_GPU_DRIVERS)),) > -LOCAL_SHARED_LIBRARIES += libc++ > -endif > +$(foreach d, $(MESA_BUILD_GALLIUM), $(eval LOCAL_CFLAGS += $(patsubst > HAVE_%,-D%,$(d)))) > > LOCAL_WHOLE_STATIC_LIBRARIES := \ > - $(gallium_DRIVERS) \ > + $(sort $(GALLIUM_LIBS)) \ > libmesa_st_dri \ > libmesa_st_mesa \ > libmesa_glsl \ > @@ -105,6 +53,8 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \ > libmesa_util \ > libmesa_loader > > +LOCAL_SHARED_LIBRARIES += $(sort $(GALLIUM_SHARED_LIBS)) > + > LOCAL_STATIC_LIBRARIES := libelf > > ifeq ($(MESA_ENABLE_LLVM),true) > diff --git a/src/gallium/winsys/amdgpu/drm/Android.mk > b/src/gallium/winsys/amdgpu/drm/Android.mk > index 1b9439c4f886..75a4a15809fe 100644 > --- a/src/gallium/winsys/amdgpu/drm/Android.mk > +++ b/src/gallium/winsys/amdgpu/drm/Android.mk > @@ -41,3 +41,8 @@ LOCAL_MODULE := libmesa_winsys_amdgpu > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_RADEONSI),) > +$(eval GALLIUM_LIBS += $(LOCAL_MODULE) $(LOCAL_STATIC_LIBRARIES)) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > diff --git a/src/gallium/winsys/i915/drm/Android.mk > b/src/gallium/winsys/i915/drm/Android.mk > index b38bd8dca06a..bab3e85c5dd0 100644 > --- a/src/gallium/winsys/i915/drm/Android.mk > +++ b/src/gallium/winsys/i915/drm/Android.mk > @@ -35,3 +35,7 @@ LOCAL_MODULE := libmesa_winsys_i915 > > include $(GALLIUM_COMMON_MK) > include $(BUILD_STATIC_LIBRARY) > + > +ifneq ($(HAVE_GALLIUM_I915),) > +$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES)) > +endif > -- > 2.11.0 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev