This is the first time I am trying to build kernal module. Following is make file. On running make command. I get the error
/bin/sh: Syntax error: “(” unexpected
make: *** [all] Error 2
obj-m =mod.o
obj-m +=depmod.o
obj-m +=mod1.o
obj-m +=mod2.o
obj-m +=mod3.o
KDIR=/lib/modules/$(shell uname -r)/build
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf $(wildcard *.o *.ko *.mod.* .c* .t* test Module.symvers *.order *.markers)
The kernel release (given by
uname -r) can have parentheses in it, and in this case I’ll bet it does. This means that a) it doesn’t do well as part of a path, and b) the shell doesn’t like receiving it in the middle of a Make command. I suggest you translate the parentheses into, say, underscores:(
uname -rcan also give you forward slashes, which you can deal with the same way if you have to.)