On Wed, Apr 28, 2010 at 8:29 PM,
<address@hidden> wrote:
severip := $(shell /sbin/ifconfig)
all:
address@hidden $(serverip)
First, check the spelling of "seRverip" very closely.
Secondly, the problem is happening because the ifconfig output contains special shell characters, which are being expanded inside the "all" recipe before the shell gets to execute the code. The shell then sees those chars and chokes.
address@hidden:~/tmp$ cat Makefile
serverip := $(shell /sbin/ifconfig)
all:
echo $(serverip)
address@hidden:~/tmp$ make
echo eth0 Link encap:Ethernet HWaddr 00:1d:92:60:ea:e9 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:28 Base address:0x6000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:16769 errors:0 dropped:0 overruns:0 frame:0 TX packets:16769 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8936678 (8.9 MB) TX bytes:8936678 (8.9 MB) wlan3 Link encap:Ethernet HWaddr 00:18:e7:34:6c:5a inet addr:192.168.0.136 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::218:e7ff:fe34:6c5a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:160193 errors:0 dropped:0 overruns:0 frame:0 TX packets:95979 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:220564696 (220.5 MB) TX bytes:9354390 (9.3 MB) Interrupt:17 Memory:f9fffc00-f9fffc25
/bin/sh: Syntax error: "(" unexpected
Be aware that the output of ifconfig is very platform-dependent, and parsing of it tends to break when the script/makefile is tried on another platform.
You might be better of using "ping -c1 $(hostname)" or "nslookup $(hostname)" and parsing their output (which is formatted more simply).
--