diff options
author | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2012-02-11 03:17:29 +0100 |
---|---|---|
committer | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2012-02-11 03:17:29 +0100 |
commit | 87f6ad60ca8a1ac458b8f0df119722f52c2a3fdf (patch) | |
tree | f2f5ccc4bdf6c08974ba6edba8e1cd45f9dc7374 | |
parent | 68afaa554139d0b31a6aaebbeedb57c8a75d165f (diff) | |
download | pcitool-87f6ad60ca8a1ac458b8f0df119722f52c2a3fdf.tar.gz pcitool-87f6ad60ca8a1ac458b8f0df119722f52c2a3fdf.tar.bz2 pcitool-87f6ad60ca8a1ac458b8f0df119722f52c2a3fdf.tar.xz pcitool-87f6ad60ca8a1ac458b8f0df119722f52c2a3fdf.zip |
Verify gcc version
-rw-r--r-- | driver/Makefile | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/driver/Makefile b/driver/Makefile index 9eedc1e..ac4a14c 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -9,7 +9,27 @@ PWD := $(shell pwd) EXTRA_CFLAGS += -I$(M)/.. default: - $(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(PWD) modules + @KERNEL_GCC_VERSION=`cat /proc/version | head -n1 | cut -d " " -f 7` ;\ + GCC_VERSION=`$(CC) --version | head -n 1 | awk 'BEGIN { FPAT = "([^[:space:]]*)|(\\\\([^)]+\\\\))" } { print $$3 }'` ;\ + if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION ]; then \ + echo "Kernel is compiled with gcc $$KERNEL_GCC_VERSION, but you are now using $$GCC_VERSION" ;\ + GCC_MAJOR=`echo $$KERNEL_GCC_VERSION | cut -d "." -f 1-2` ;\ + newCC=gcc-$$GCC_MAJOR ;\ + CC=`which $$newCC 2>/dev/null` ;\ + if [ $$? -ne 0 ]; then \ + echo "No compiler of $$GCC_MAJOR series is installed" ;\ + exit 1 ;\ + fi ;\ + GCC_VERSION=`$$CC --version | head -n 1 | awk 'BEGIN { FPAT = "([^[:space:]]*)|(\\\\([^)]+\\\\))" } { print $$3 }'` ;\ + if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION ]; then \ + echo "The $$GCC_VERSION of $$GCC_MAJOR series is installed" ;\ + exit 1 ;\ + fi ;\ + echo "Setting CC to $$newCC" ;\ + else \ + CC=$(CC) ;\ + fi ;\ + $(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(PWD) CC=$$CC modules install: @mkdir -p $(INSTALLDIR) |