mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2025-02-15 09:54:18 +01:00
144 lines
3.9 KiB
Makefile
144 lines
3.9 KiB
Makefile
###########################################################################
|
|
# Makefile for nv-modeset-kernel.o
|
|
###########################################################################
|
|
|
|
NV_MODULE_LOGGING_NAME ?= nvidia-modeset
|
|
|
|
VERSION_MK_DIR = ../../
|
|
include ../../utils.mk
|
|
|
|
include srcs.mk
|
|
|
|
# The source files for nv-modeset-kernel.o are all SRCS and SRCS_CXX defined in
|
|
# srcs.mk, and the NVIDIA ID string
|
|
ALL_SRCS = $(SRCS) $(SRCS_CXX)
|
|
ALL_SRCS += $(NVIDSTRING)
|
|
|
|
SRC_COMMON = ../common
|
|
|
|
CFLAGS += -include $(SRC_COMMON)/sdk/nvidia/inc/cpuopsys.h
|
|
|
|
CFLAGS += -I $(SRC_COMMON)/sdk/nvidia/inc
|
|
CFLAGS += -I $(SRC_COMMON)/shared/inc
|
|
CFLAGS += -I $(SRC_COMMON)/inc
|
|
CFLAGS += -I $(SRC_COMMON)/softfloat/nvidia
|
|
CFLAGS += -I $(SRC_COMMON)/softfloat/source/include
|
|
CFLAGS += -I $(SRC_COMMON)/softfloat/source/8086-SSE
|
|
CFLAGS += -I $(SRC_COMMON)/unix/common/utils/interface
|
|
CFLAGS += -I $(SRC_COMMON)/unix/common/inc
|
|
CFLAGS += -I $(SRC_COMMON)/modeset
|
|
CFLAGS += -I os-interface/include
|
|
CFLAGS += -I kapi/interface
|
|
CFLAGS += -I ../nvidia/arch/nvalloc/unix/include
|
|
CFLAGS += -I interface
|
|
CFLAGS += -I include
|
|
CFLAGS += -I kapi/include
|
|
CFLAGS += -I generated
|
|
CFLAGS += -I $(SRC_COMMON)/displayport/inc
|
|
CFLAGS += -I $(SRC_COMMON)/displayport/inc/dptestutil
|
|
CFLAGS += -I $(SRC_COMMON)/inc/displayport
|
|
|
|
CFLAGS += -DNDEBUG
|
|
CFLAGS += -D_LANGUAGE_C
|
|
CFLAGS += -D__NO_CTYPE
|
|
|
|
CFLAGS += -DNV_CPU_INTRINSICS_KERNEL
|
|
CFLAGS += -DNVHDMIPKT_RM_CALLS_INTERNAL=0
|
|
|
|
# XXX it would be nice to only define these for appropriate files...
|
|
CFLAGS += -DSOFTFLOAT_ROUND_ODD
|
|
CFLAGS += -DSOFTFLOAT_FAST_DIV32TO16
|
|
CFLAGS += -DSOFTFLOAT_FAST_DIV64TO32
|
|
|
|
# Tell nvtiming to use nvkms import functions
|
|
CFLAGS += -DNVT_USE_NVKMS
|
|
|
|
CFLAGS += -Wformat
|
|
CFLAGS += -Wreturn-type
|
|
CFLAGS += -Wswitch
|
|
CFLAGS += -Wunused-local-typedefs
|
|
CFLAGS += -Wchar-subscripts
|
|
CFLAGS += -Wparentheses
|
|
CFLAGS += -Wpointer-arith
|
|
CFLAGS += -Wcast-qual
|
|
CFLAGS += -Wall
|
|
CFLAGS += -Wextra
|
|
CFLAGS += -Wno-sign-compare
|
|
CFLAGS += -Wno-unused-parameter
|
|
CFLAGS += -Wno-missing-field-initializers
|
|
CFLAGS += -Wno-format-zero-length
|
|
CFLAGS += -Wmissing-declarations
|
|
CFLAGS += -Wno-cast-qual
|
|
|
|
CFLAGS += -O2
|
|
|
|
ifeq ($(TARGET_ARCH),x86_64)
|
|
CFLAGS += -msoft-float
|
|
CFLAGS += -mno-red-zone
|
|
CFLAGS += -mcmodel=kernel
|
|
CFLAGS += -mno-mmx
|
|
CFLAGS += -mno-sse
|
|
CFLAGS += -mno-sse2
|
|
CFLAGS += -mno-3dnow
|
|
endif
|
|
|
|
ifeq ($(TARGET_ARCH),aarch64)
|
|
CFLAGS += -mgeneral-regs-only
|
|
CFLAGS += -march=armv8-a
|
|
endif
|
|
|
|
CFLAGS += -fno-pic
|
|
CFLAGS += -fno-common
|
|
CFLAGS += -fomit-frame-pointer
|
|
CFLAGS += -fno-strict-aliasing
|
|
CFLAGS += -ffunction-sections
|
|
CFLAGS += -fdata-sections
|
|
CFLAGS += -ffreestanding
|
|
|
|
CONDITIONAL_CFLAGS := $(call TEST_CC_ARG, -fcf-protection=none)
|
|
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -Wformat-overflow=2)
|
|
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -Wformat-truncation=1)
|
|
ifeq ($(TARGET_ARCH),x86_64)
|
|
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -mindirect-branch=thunk-extern)
|
|
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -mindirect-branch-register)
|
|
endif
|
|
|
|
CFLAGS += $(CONDITIONAL_CFLAGS)
|
|
|
|
CC_ONLY_CFLAGS += -Wimplicit
|
|
CC_ONLY_CFLAGS += -Wstrict-prototypes
|
|
CC_ONLY_CFLAGS += -Wmissing-prototypes
|
|
CC_ONLY_CFLAGS += -std=gnu11
|
|
|
|
CXX_ONLY_CFLAGS += -std=gnu++11
|
|
CXX_ONLY_CFLAGS += -fno-operator-names
|
|
CXX_ONLY_CFLAGS += -fno-rtti
|
|
CXX_ONLY_CFLAGS += -fno-exceptions
|
|
CXX_ONLY_CFLAGS += -fcheck-new
|
|
|
|
SHADER_OBJS =
|
|
|
|
CFLAGS += -DNVKMS_INCLUDE_HEADSURFACE=0
|
|
|
|
OBJS = $(call BUILD_OBJECT_LIST,$(ALL_SRCS))
|
|
OBJS += $(SHADER_OBJS)
|
|
|
|
# Define how to generate the NVIDIA ID string
|
|
$(eval $(call GENERATE_NVIDSTRING, \
|
|
NV_KMS_ID, \
|
|
UNIX Open Kernel Mode Setting Driver, $(OBJS)))
|
|
|
|
# Define how to build each object file from the corresponding source file.
|
|
$(foreach src, $(ALL_SRCS), $(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
|
|
|
|
NV_MODESET_KERNEL_O = $(OUTPUTDIR)/nv-modeset-kernel.o
|
|
|
|
.PNONY: all clean
|
|
all: $(NV_MODESET_KERNEL_O)
|
|
|
|
$(NV_MODESET_KERNEL_O): $(OBJS)
|
|
$(call quiet_cmd,LD) -r -o $(NV_MODESET_KERNEL_O) $(OBJS)
|
|
|
|
clean:
|
|
$(RM) -rf $(OUTPUTDIR)
|