Problem with $(NM)

Gu, Yang yang.gu at intel.com
Thu Aug 27 19:10:09 PDT 2009


Hi all, 
If you used the latest code, and met the problem that $(NM) couldn't be substituted correctly, here is the phenomenon, reason and solution.

Phenomenon: There is a build error till almost the end of whole build, and the error message looks like:
gdbus/mainloop.o gdbus/object.o gdbus/watch.o gisi/netlink.o gisi/socket.o gisi/client.o gisi/pep.o gisi/pipe.o drivers/isimodem/isimodem.o drivers/isimodem/phonebook.o drivers/isimodem/devinfo.o drivers/isimodem/network-registration.o drivers/isimodem/voicecall.o drivers/isimodem/sms.o drivers/isimodem/sim.o drivers/isimodem/ssn.o drivers/isimodem/ussd.o drivers/isimodem/call-forwarding.o drivers/isimodem/call-settings.o drivers/isimodem/call-barring.o drivers/isimodem/call-meter.o gatchat/gatchat.o gatchat/gatresult.o gatchat/gatsyntax.o gatchat/ringbuffer.o drivers/atmodem/atmodem.o drivers/atmodem/call-settings.o drivers/atmodem/sms.o drivers/atmodem/call-forwarding.o drivers/atmodem/call-meter.o drivers/atmodem/network-registration.o drivers/atmodem/sim.o drivers/atmodem/ussd.o drivers/atmodem/voicecall.o drivers/atmodem/call-barring.o drivers/atmodem/phonebook.o drivers/atmodem/ssn.o drivers/atmodem/devinfo.o plugins/generic_at.o plugins/example_history.o src/main.o src/log.o src/plugin.o src/modem.o src/common.o src/manager.o src/dbus.o src/util.o src/network.o src/voicecall.o src/ussd.o src/sms.o src/call-settings.o src/call-forwarding.o src/call-meter.o src/smsutil.o src/ssn.o src/call-barring.o src/sim.o src/phonebook.o src/history.o src/message-waiting.o src/simutil.o | gawk '{ print $3 }' | sort -u | \
                                /bin/grep -E -e '^ofono_' -e '^g_dbus_' > src/ofono.exp
/bin/sh: gdbus/mainloop.o: Permission denied

Reason:
In latest Makefile.am, $(NM) is used as below:
src/ofono.exp: $(src_ofonod_OBJECTS)
	$(AM_V_GEN)$(NM) $^ | $(AWK) '{ print $$3 }' | sort -u | \
				$(EGREP) -e '^ofono_' -e '^g_dbus_' > $@

The error shows that $(NM) wasn't substituted with correct value. $(NM) should be substituted by libtool, and my libtool is somewhat buggy to substitute it correctly. By the way, I'm using Fedora 10, and the libtool in it is version 1.5.26. 

Solution (either one is OK):
1. Add "AC_SUBST(NM) " in configure.ac
2. Change your libtool. In file /usr/share/aclocal/libtool.m4, in section AC_PROG_NM, Add one line as below:
NM="$lt_cv_path_NM"
AC_SUBST([NM])  #This line is added
])# AC_PROG_NM


Regards,
-Yang




More information about the ofono mailing list