Re: Get major number in Makefile

Jesse Pollard (pollard@tomcat.admin.navo.hpc.mil)
Tue, 2 Apr 2002 12:30:14 -0600 (CST)


Michael Zhu <mylinuxk@yahoo.ca>:
>
> Hi, smart gurus, I have a question while writing a
> Makefile file to install my device driver. In my
> device driver I dynamically allocate the major number
> of my device. In my Makefile I want to build a device
> node for my device under the /dev directory.
>
> mknod /dev/mydevice c $major 0;
>
> So I need to know the major number of my deivce in the
> Makefile. I've read the Linux 'Device Driver'. There
> is some information about this. I use the following
> command to get the major number in my Makefile.
>
> major=`awk "\\$2==\"$mymodule\" {printf \\$1}"
> /proc/devices`
>
> But when I use the 'make install' command to install
> my driver, the following error returned.
>
> major=`awk "\\==\"$ymodule\" {printf \\}"
> /proc/devices`
> awk: 0: unexpected character '\'
> awk: line 1: syntax error at or near ==
> make: *** [install] Error 2
>
> What is wrong with my command? Can anyone tell me how
> to get the major number in Makefile.

1. you want $(mymodule) instead of $mymodule
2. instead of \\$ you want $$
3. you need to use the @ construct.

vcs was the module I looked for.

Don't put quotes around it... that has make passing the quotes too.

End result is something like the following:

mymodule=vcs

target:
@major=`awk '$$2 == "$(mymodule)" {print $$1}' /proc/devices`
@echo $$major

Whether or not you really want to do this is something else.

-------------------------------------------------------------------------
Jesse I Pollard, II
Email: pollard@navo.hpc.mil

Any opinions expressed are solely my own.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/