I am getting the following error running make
:
Makefile:168: *** missing separator. Stop.
What is causing this?
In my case, the same error was caused because colon:
was missing at end as in staging.deploy:
. So note that it can be easy syntax mistake.
Following Makefile code worked:
obj-m = hello.o
all:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Just for grins, and in case somebody else runs into a similar error:
I got the infamous "missing separator" error because I had invoked a rule defining a function as
($eval $(call function,args))
rather than
$(eval $(call function,args))
i.e. ($
rather than $(
.
For me, the problem was that I had some end-of-line # ...
comments embedded within a define ... endef
multi-line variable definition. Removing the comments made the problem go away.
In my case error caused next. I've tried to execute commands globally i.e outside of any target.
UPD. To run command globally one must be properly formed. For example command
ln -sf ../../user/curl/$SRC_NAME ./$SRC_NAME
would become:
$(shell ln -sf ../../user/curl/$(SRC_NAME) ./$(SRC_NAME))
So apparently, all I needed was the "build-essential" package, then to run autoconf
first, which made the Makefile.pre.in
, then the ./configure
then the make
which works perfectly...