aboutsummaryrefslogtreecommitdiffstats
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile156
1 files changed, 156 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..9af58b1
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright(c) 1999 - 2020 Intel Corporation.
+
+#ifndef REMOVE_COMPAT
+ifneq ($(KERNELRELEASE),)
+# kbuild part of makefile
+#endif /* REMOVE_COMPAT */
+#
+# Makefile for the @SUMMARY@
+#
+
+obj-$(CONFIG_E1000E) += e1000e.o
+
+define e1000e-y
+ netdev.o
+ ethtool.o
+ ich8lan.o
+ mac.o
+ nvm.o
+ phy.o
+ manage.o
+ 80003es2lan.o
+ 82571.o
+ param.o
+endef
+e1000e-y := $(strip ${e1000e-y})
+
+#ifdef BUILD_PTP_SUPPORT
+e1000e-$(CONFIG_PTP_1588_CLOCK:m=y) += ptp.o
+#endif
+
+#ifndef REMOVE_COMPAT
+
+e1000e-y += kcompat.o
+
+else # ifneq($(KERNELRELEASE),)
+# normal makefile
+
+DRIVER := e1000e
+
+ifeq (,$(wildcard common.mk))
+ $(error Cannot find common.mk build rules)
+else
+ include common.mk
+endif
+
+# Check that kernel version is at least 2.4.17
+ifeq (0,$(shell [ ${KVER_CODE} -lt $(call get_kvercode,2,4,17) ]; echo "$?"))
+ $(warning *** Aborting the build.)
+ $(error This driver is not supported on kernel versions older than 2.4.17)
+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)
+
+# Target used by rpmbuild spec file
+rpm: default manfile
+ @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
+ @install -D -m 644 ${DRIVER}.ko ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko
+
+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),)
+#endif /* REMOVE_COMPAT */