On Wed, 2017-03-01 at 12:30 -0500, Frank Ch. Eigler wrote: > Hi - > > > [...] Running in verbose mode, it shows: [...] Those paths are > > provided by the linux-headers-xxx-amd64 (or equivalent arch) > > package. In Debian, build/ and source/ paths are pointing to > > separate locations, provided by separate package. [...] > > Could you provide a make V=1 transcript of any nontrivial out-of-tree > module (plus its Makefile) that builds & works on your kernel?
Here's a log attached. It was generated with V=1 through dkms on out-of-tree module for broadcom-sta driver. -- Ritesh Raj Sarraf | http://people.debian.org/~rrs Debian - The Universal Operating System
DKMS make.log for broadcom-sta-6.30.223.271 for kernel 4.9.0-2-amd64 (x86_64) Wed Mar 1 23:38:34 IST 2017 /bin/sh: 1: [: Illegal number: /bin/sh: 1: [: Illegal number: Wireless Extension is the only possible API for this kernel version Using Wireless Extension API KBUILD_NOPEDANTIC=1 make -C /lib/modules/4.9.0-2-amd64/build M=`pwd` make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[1]: Entering directory '/usr/src/linux-headers-4.9.0-2-amd64' make -C /usr/src/linux-headers-4.9.0-2-amd64 KBUILD_SRC=/usr/src/linux-headers-4.9.0-2-common \ -f /usr/src/linux-headers-4.9.0-2-common/Makefile test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \ echo >&2; \ echo >&2 " ERROR: Kernel configuration is invalid."; \ echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\ echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ echo >&2 ; \ /bin/false) mkdir -p /var/lib/dkms/broadcom-sta/6.30.223.271/build/.tmp_versions ; rm -f /var/lib/dkms/broadcom-sta/6.30.223.271/build/.tmp_versions/* make -f /usr/src/linux-headers-4.9.0-2-common/scripts/Makefile.build obj=/var/lib/dkms/broadcom-sta/6.30.223.271/build CFG80211 API is prefered for this kernel version Using CFG80211 API Kernel architecture is X86_64 rm -f /var/lib/dkms/broadcom-sta/6.30.223.271/build/built-in.o; ar rcsD /var/lib/dkms/broadcom-sta/6.30.223.271/build/built-in.o gcc-6 -Wp,-MD,/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/.linux_osl.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/6/include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated -I/usr/src/linux-headers-4.9.0-2-common/include -I./include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include/uapi -I/usr/src/linux-headers-4.9.0-2-common/include/uapi -I./include/generated/uapi -include /usr/src/linux-headers-4.9.0-2-common/include/linux/kconfig.h -I/usr/src/linux-headers-4.9.0-2-common//var/lib/dkms/broadcom-sta/6.30.223.271/build -I/var/lib/dkms/broadcom-sta/6.30.223.271/build -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DCC_HAVE_ASM_GOTO -DUSE_CFG80211 -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/common/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/phy -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/ppr/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/bcmwifi/include -Wno-date-time -DMODULE -DKBUILD_BASENAME='"linux_osl"' -DKBUILD_MODNAME='"wl"' -c -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/.tmp_linux_osl.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/linux_osl.c if [ "-pg" = "-pg" ]; then if [ /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/linux_osl.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/linux_osl.o"; fi; fi; gcc-6 -Wp,-MD,/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/.wl_linux.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/6/include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated -I/usr/src/linux-headers-4.9.0-2-common/include -I./include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include/uapi -I/usr/src/linux-headers-4.9.0-2-common/include/uapi -I./include/generated/uapi -include /usr/src/linux-headers-4.9.0-2-common/include/linux/kconfig.h -I/usr/src/linux-headers-4.9.0-2-common//var/lib/dkms/broadcom-sta/6.30.223.271/build -I/var/lib/dkms/broadcom-sta/6.30.223.271/build -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DCC_HAVE_ASM_GOTO -DUSE_CFG80211 -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/common/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/phy -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/ppr/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/bcmwifi/include -Wno-date-time -DMODULE -DKBUILD_BASENAME='"wl_linux"' -DKBUILD_MODNAME='"wl"' -c -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/.tmp_wl_linux.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c: In function ‘wl_pci_probe’: /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c:774:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] if ((val & 0x0000ff00) != 0) ^~ /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c:776:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’ bar1_size = pci_resource_len(pdev, 2); ^~~~~~~~~ if [ "-pg" = "-pg" ]; then if [ /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.o"; fi; fi; gcc-6 -Wp,-MD,/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/.wl_iw.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/6/include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated -I/usr/src/linux-headers-4.9.0-2-common/include -I./include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include/uapi -I/usr/src/linux-headers-4.9.0-2-common/include/uapi -I./include/generated/uapi -include /usr/src/linux-headers-4.9.0-2-common/include/linux/kconfig.h -I/usr/src/linux-headers-4.9.0-2-common//var/lib/dkms/broadcom-sta/6.30.223.271/build -I/var/lib/dkms/broadcom-sta/6.30.223.271/build -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DCC_HAVE_ASM_GOTO -DUSE_CFG80211 -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/common/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/phy -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/ppr/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/bcmwifi/include -Wno-date-time -DMODULE -DKBUILD_BASENAME='"wl_iw"' -DKBUILD_MODNAME='"wl"' -c -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/.tmp_wl_iw.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_iw.c if [ "-pg" = "-pg" ]; then if [ /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_iw.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_iw.o"; fi; fi; gcc-6 -Wp,-MD,/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/.wl_cfg80211_hybrid.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/6/include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated -I/usr/src/linux-headers-4.9.0-2-common/include -I./include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include/uapi -I/usr/src/linux-headers-4.9.0-2-common/include/uapi -I./include/generated/uapi -include /usr/src/linux-headers-4.9.0-2-common/include/linux/kconfig.h -I/usr/src/linux-headers-4.9.0-2-common//var/lib/dkms/broadcom-sta/6.30.223.271/build -I/var/lib/dkms/broadcom-sta/6.30.223.271/build -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DCC_HAVE_ASM_GOTO -DUSE_CFG80211 -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/common/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/phy -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/ppr/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/bcmwifi/include -Wno-date-time -DMODULE -DKBUILD_BASENAME='"wl_cfg80211_hybrid"' -DKBUILD_MODNAME='"wl"' -c -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/.tmp_wl_cfg80211_hybrid.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c if [ "-pg" = "-pg" ]; then if [ /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o"; fi; fi; ld -m elf_x86_64 /var/lib/dkms/broadcom-sta/6.30.223.271/build/lib/wlc_hybrid.o_amd64 -r -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/linux_osl.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_iw.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o (cat /dev/null; echo kernel//var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.ko;) > /var/lib/dkms/broadcom-sta/6.30.223.271/build/modules.order make -f /usr/src/linux-headers-4.9.0-2-common/scripts/Makefile.modpost CFG80211 API is prefered for this kernel version Using CFG80211 API Kernel architecture is X86_64 find /var/lib/dkms/broadcom-sta/6.30.223.271/build/.tmp_versions -name '*.mod' | xargs -r grep -h '\.ko$' | sort -u | sed 's/\.ko$/.o/' | scripts/mod/modpost -m -i ./Module.symvers -I /var/lib/dkms/broadcom-sta/6.30.223.271/build/Module.symvers -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/Module.symvers -S -w -s -T - gcc-6 -Wp,-MD,/var/lib/dkms/broadcom-sta/6.30.223.271/build/.wl.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/6/include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated -I/usr/src/linux-headers-4.9.0-2-common/include -I./include -I/usr/src/linux-headers-4.9.0-2-common/arch/x86/include/uapi -I/usr/src/linux-headers-4.9.0-2-common/include/uapi -I./include/generated/uapi -include /usr/src/linux-headers-4.9.0-2-common/include/linux/kconfig.h -I/usr/src/linux-headers-4.9.0-2-common//var/lib/dkms/broadcom-sta/6.30.223.271/build -I/var/lib/dkms/broadcom-sta/6.30.223.271/build -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DCC_HAVE_ASM_GOTO -DUSE_CFG80211 -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/common/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/phy -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/ppr/include -I/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/bcmwifi/include -Wno-date-time -DKBUILD_BASENAME='"wl.mod"' -DKBUILD_MODNAME='"wl"' -DMODULE -c -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.mod.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.mod.c ld -r -m elf_x86_64 -T /usr/src/linux-headers-4.9.0-2-common/scripts/module-common.lds --build-id -o /var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.ko /var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.o /var/lib/dkms/broadcom-sta/6.30.223.271/build/wl.mod.o ; true make[1]: Leaving directory '/usr/src/linux-headers-4.9.0-2-amd64'
#
# Makefile fragment for Linux 2.6
# Broadcom 802.11abg Networking Device Driver
#
# Copyright (C) 2015, Broadcom Corporation. All Rights Reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# $Id: Makefile_kbuild_portsrc 580354 2015-08-18 23:42:37Z $
#
V = 1
ifneq ($(KERNELRELEASE),)
LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" -o "$(VERSION)" -ge "3" ]; then \
echo TRUE; \
else \
echo FALSE; \
fi \
))
LINUXVER_WEXT_ONLY:=$(strip $(shell \
if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
echo FALSE; \
else \
echo TRUE; \
fi \
))
ifneq ($(API),)
ifeq ($(API), CFG80211)
APICHOICE := FORCE_CFG80211
$(info CFG80211 API specified in command line)
else
ifeq ($(API), WEXT)
APICHOICE := FORCE_WEXT
$(info Wireless Extension API specified in command line)
else
$(error Unknown API type)
endif
endif
else
ifeq ($(LINUXVER_GOODFOR_CFG80211),TRUE)
APICHOICE := PREFER_CFG80211
$(info CFG80211 API is prefered for this kernel version)
else
ifeq ($(LINUXVER_WEXT_ONLY),TRUE)
APICHOICE := FORCE_WEXT
$(info Wireless Extension is the only possible API for this kernel version)
else
APICHOICE := PREFER_WEXT
$(info Wireless Extension API is prefered for this kernel version)
endif
endif
endif
ifeq ($(APICHOICE),FORCE_CFG80211)
ifneq ($(CONFIG_CFG80211),)
APIFINAL := CFG80211
else
$(error CFG80211 is specified but it is not enabled in kernel)
endif
endif
ifeq ($(APICHOICE),FORCE_WEXT)
APIFINAL := WEXT
endif
ifeq ($(APICHOICE),PREFER_CFG80211)
ifneq ($(CONFIG_CFG80211),)
APIFINAL := CFG80211
else
ifneq ($(CONFIG_WIRELESS_EXT),)
APIFINAL := WEXT
else
$(warning Neither CFG80211 nor Wireless Extension is enabled in kernel)
endif
endif
endif
ifeq ($(APICHOICE),PREFER_WEXT)
ifneq ($(CONFIG_WIRELESS_EXT),)
APIFINAL := WEXT
else
ifneq ($(CONFIG_CFG80211),)
APIFINAL := CFG80211
else
$(warning Neither CFG80211 nor Wireless Extension is enabled in kernel)
endif
endif
endif
endif
#Check GCC version so we can apply -Wno-date-time if supported. GCC >= 4.9
empty:=
space:= $(empty) $(empty)
GCCVERSIONSTRING := $(shell expr `$(CC) -dumpversion`)
#Create version number without "."
GCCVERSION := $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f1 -d.)
GCCVERSION += $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f2 -d.)
GCCVERSION += $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f3 -d.)
# Make sure the version number has at least 3 decimals
GCCVERSION += 00
# Remove spaces from the version number
GCCVERSION := $(subst $(space),$(empty),$(GCCVERSION))
# Crop the version number to 3 decimals.
GCCVERSION := $(shell expr `echo $(GCCVERSION)` | cut -b1-3)
GE_49 := $(shell expr `echo $(GCCVERSION)` \>= 490)
EXTRA_CFLAGS :=
ifeq ($(APIFINAL),CFG80211)
EXTRA_CFLAGS += -DUSE_CFG80211
$(info Using CFG80211 API)
endif
ifeq ($(APIFINAL),WEXT)
EXTRA_CFLAGS += -DUSE_IW
$(info Using Wireless Extension API)
endif
obj-m += wl.o
wl-objs :=
wl-objs += src/shared/linux_osl.o
wl-objs += src/wl/sys/wl_linux.o
wl-objs += src/wl/sys/wl_iw.o
wl-objs += src/wl/sys/wl_cfg80211_hybrid.o
EXTRA_CFLAGS += -I$(src)/src/include -I$(src)/src/common/include
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/phy -I$(src)/src/wl/ppr/include
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
ifeq "$(GE_49)" "1"
EXTRA_CFLAGS += -Wno-date-time
endif
# Look for kernel architecture.
# Check for a config symbol that should always be defined, so we don't
# fail on 'make clean' which doesn't include .config
ifeq ($(CONFIG_NET),y)
ifeq ($(CONFIG_X86_32),y)
SHIPPED=wlc_hybrid.o_i386
$(info Kernel architecture is X86_32)
else
ifeq ($(CONFIG_X86_64),y)
SHIPPED=wlc_hybrid.o_amd64
$(info Kernel architecture is X86_64)
else # Error!
$(error Unsupported kernel architecture)
endif
endif
endif
EXTRA_LDFLAGS := $(src)/lib/$(SHIPPED)
KVER ?= $(shell uname -r)
KBASE ?= /lib/modules/$(KVER)
KBUILD_DIR ?= $(KBASE)/build
MDEST_DIR ?= $(KBASE)/kernel/drivers/net/wireless
# Cross compile setup. Tool chain and kernel tree, replace with your own.
CROSS_TOOLS = /path/to/tools
CROSS_KBUILD_DIR = /path/to/kernel/tree
all:
KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd`
cross:
KBUILD_NOPEDANTIC=1 make CROSS_COMPILE=${CROSS_TOOLS} -C $(CROSS_KBUILD_DIR) M=`pwd`
clean:
KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd` clean
install:
install -D -m 755 wl.ko $(MDEST_DIR)
signature.asc
Description: This is a digitally signed message part

