Subject: Help with vic-2.7a31 Makefile construct under NetBSD 1.0
To: None <netbsd-users@NetBSD.ORG>
From: Greg Earle <earle@isolar.tujunga.ca.us>
List: netbsd-users
Date: 04/23/1997 20:52:31
I'm trying to build the 2.7alpha31 source release of Van's Audio Tool (VAT),
the de-facto audio application on the MBONE.

I'm running into a problem with the Makefile that I've never seen before.
I'm using NetBSD/SPARC 1.0 (still) on a Sun SPARCstation 2.

Specifically, the make dies with

netbsd4me:1:297 % sudo make
"Makefile", line 216: Unassociated shell command "base=$(@:.o=); rm -f"
"Makefile", line 228: Unassociated shell command "base=$(@:.o=); rm -f"
Fatal errors encountered -- cannot continue

Here's the snippet of the Makefile containing the offending expressions:

#
# pass-1 embedded tcl files
#
$(TCL_LIB:.tcl=.o): tcl2c++
	base=$(@:.o=) ; rm -f $@ $$base.cc ; \
		./tcl2c++ 1 $$base.tcl > $$base.cc ; \
		$(C++) -o $@ -c $(CFLAGS) $$base.cc ; rm -f $$base.cc
tk.o: tk.tcl

tk.tcl: $(TK_LIBRARY_FILES)
	cat $(TK_LIBRARY_FILES) | sed '/^[ 	]*source[ 	]/d' > tk.tcl

#
# pass-2 embedded tcl files
#
$(TCL_VIC:.tcl=.o) ui-vdd.o ui-h261_play.o: tcl2c++
	base=$(@:.o=) ; rm -f $@ $$base.cc ; \
		./tcl2c++ 2 $$base.tcl > $$base.cc ; \
		$(C++) -o $@ -c $(CFLAGS) $$base.cc ; rm -f $$base.cc

There's a note in the documentation that says

     The default BSD/OS make doesn't like vic's Makefile.  Just use gmake
     (which is probably installed). 

I assume this is probably the case here; i.e. I'm assuming that BSD/OS's "make"
is also based on Pmake, and this Makefile apparently wants a GNU "make" (I
assume "gmake" == GNU "make").  Is this correct?  If so, is there any way
around this problem?  Is there a Pmake-compatible construct to do what
this Makefile snippet is trying to do?  I have no qualms about hacking the
Makefile; I really don't want to go through the hassle of trying to grab/build
GNU "make" just to be able to run one Makefile!

Thanks for any advice/assistance.

	- Greg