Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################################################################
- #
- # Intel(R) 10GbE PCI Express Linux Network Driver
- # Copyright(c) 1999 - 2017 Intel Corporation.
- #
- # This program is free software; you can redistribute it and/or modify it
- # under the terms and conditions of the GNU General Public License,
- # version 2, as published by the Free Software Foundation.
- #
- # This program is distributed in the hope it will be useful, but WITHOUT
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- # more details.
- #
- # The full GNU General Public License is included in this distribution in
- # the file called "COPYING".
- #
- # Contact Information:
- # Linux NICS <linux.nics@intel.com>
- # e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
- # Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
- #
- ################################################################################
- ifneq ($(KERNELRELEASE),)
- # kbuild part of makefile
- #
- # Makefile for the Intel(R) 10GbE PCI Express Linux Network Driver
- #
- obj-$(CONFIG_IXGBE) += ixgbe.o
- define ixgbe-y
- ixgbe_main.o
- ixgbe_api.o
- ixgbe_common.o
- ixgbe_dcb.o
- ixgbe_dcb_82598.o
- ixgbe_dcb_82599.o
- ixgbe_ethtool.o
- ixgbe_lib.o
- ixgbe_mbx.o
- ixgbe_sriov.o
- ixgbe_param.o
- ixgbe_phy.o
- ixgbe_procfs.o
- ixgbe_82598.o
- ixgbe_82599.o
- ixgbe_x540.o
- ixgbe_x550.o
- endef
- ixgbe-y := $(strip ${ixgbe-y})
- ixgbe-${CONFIG_DCB} += ixgbe_dcb_nl.o
- ixgbe-${CONFIG_DEBUG_FS} += ixgbe_debugfs.o
- ixgbe-${CONFIG_FCOE:m=y} += ixgbe_fcoe.o
- ixgbe-$(CONFIG_PTP_1588_CLOCK:m=y) += ixgbe_ptp.o
- ixgbe-${CONFIG_SYSFS} += ixgbe_sysfs.o
- ixgbe-y += kcompat.o
- else # ifneq($(KERNELRELEASE),)
- # normal makefile
- DRIVER := ixgbe
- ifeq (,$(wildcard common.mk))
- $(error Cannot find common.mk build rules)
- else
- include common.mk
- endif
- # Check that kernel version is at least 2.6.0, since we don't support 2.4.x
- # kernels with the ixgbe driver. We can't use minimum_kver_check since SLES 10
- # SP4's Make has a bug which causes $(eval) inside an ifeq conditional to error
- # out. This was fixed in Make 3.81, but SLES 10 SP4 does not have a fix for
- # this yet.
- ifeq (0,$(shell [ ${KVER_CODE} -lt $(call get_kvercode,2,6,0) ]; echo "$?"))
- $(warning *** Aborting the build.)
- $(error This driver is not supported on kernel versions older than 2.6.0)
- endif
- ######################
- # Kernel Build Macro #
- ######################
- # customized kernelbuild function
- #
- # ${1} is the kernel build target
- # ${2} may contain extra rules to pass to kernelbuild macro
- #
- # We customize the kernelbuild target in order to provide our hack to disable
- # CONFIG_PTP_1588_CLOCK support should -DNO_PTP_SUPPORT be defined in the extra
- # cflags given on the command line.
- devkernelbuild = $(call kernelbuild,$(if $(filter -DNO_PTP_SUPPORT,${EXTRA_CFLAGS}),CONFIG_PTP_1588_CLOCK=n) ${2},${1})
- ###############
- # Build rules #
- ###############
- # Standard compilation, with regular output
- default:
- @+$(call devkernelbuild,modules)
- # Noisy output, for extra debugging
- noisy:
- @+$(call devkernelbuild,modules,V=1)
- # Silence any output generated
- silent:
- @+$(call devkernelbuild,modules,>/dev/null)
- # Enable higher warning level
- checkwarnings: clean
- @+$(call devkernelbuild,modules,W=1)
- # Run sparse static analyzer
- sparse: clean
- @+$(call devkernelbuild,modules,C=2 CF="-D__CHECK_ENDIAN__ -Wbitwise -Wcontext")
- # Run coccicheck static analyzer
- ccc: clean
- @+$(call devkernelbuild,modules,coccicheck MODE=report))
- # Build manfiles
- manfile:
- @gzip -c ../${DRIVER}.${MANSECTION} > ${DRIVER}.${MANSECTION}.gz
- # Clean the module subdirectories
- clean:
- @+$(call devkernelbuild,clean)
- @-rm -rf *.${MANSECTION}.gz *.ko
- # Install the modules and manpage
- install: default manfile
- @echo "Copying manpages..."
- @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
- @echo "Installing modules..."
- @+$(call devkernelbuild,modules_install)
- @echo "Running depmod..."
- @$(call cmd_depmod)
- uninstall:
- rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko;
- $(call cmd_depmod)
- if [ -e ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz ] ; then \
- rm -f ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz ; \
- fi;
- ########
- # Help #
- ########
- help:
- @echo 'Cleaning targets:'
- @echo ' clean - Clean files generated by kernel module build'
- @echo 'Build targets:'
- @echo ' default - Build module(s) with standard verbosity'
- @echo ' noisy - Build module(s) with V=1 verbosity -- very noisy'
- @echo ' silent - Build module(s), squelching all output'
- @echo 'Static Analysis:'
- @echo ' checkwarnings - Clean, then build module(s) with W=1 warnings enabled'
- @echo ' sparse - Clean, then check module(s) using sparse'
- @echo ' ccc - Clean, then check module(s) using coccicheck'
- @echo 'Other targets:'
- @echo ' manfile - Generate a gzipped manpage'
- @echo ' install - Build then install the module(s) and manpage'
- @echo ' uninstall - Uninstall the module(s) and manpage'
- @echo ' help - Display this help message'
- @echo 'Variables:'
- @echo ' LINUX_VERSION - Debug tool to force kernel LINUX_VERSION_CODE. Use at your own risk.'
- @echo ' W=N - Kernel variable for setting warning levels'
- @echo ' V=N - Kernel variable for setting output verbosity'
- @echo ' INSTALL_MOD_PATH - Add prefix for the module and manpage installation path'
- @echo ' INSTALL_MOD_DIR - Use module directory other than updates/drivers/net/ethernet/intel/${DRIVER}'
- @echo ' Other variables may be available for tuning make process, see'
- @echo ' Kernel Kbuild documentation for more information'
- .PHONY: default noisy clean manfile silent sparse ccc install uninstall help
- endif # ifneq($(KERNELRELEASE),)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement