On Sun, 25 Apr 2004 22:37:44 +0200, Leopold Toetsch wrote: >> Your problem seems to be related to the %.str: %.c inference rule, which >> nmake doesn't understand. For nmake, this should read >> .c.str: >> $(PERL) build_tools\c2str.pl $< > $@ > That's already in CVS ;)
Great. :-) > >> I am currently stuck with some CONST_STRING issues, for which VC 7.1 >> complains with: >> src\interpreter.c(1309) : warning C4013: '_CONST_STRING_' undefined; >> assuming extern returning int > > Is that already with your proposed change to the Makefile rule above or > before? After, so I already got the interpreter.str file. I guess VC gets confused with the _CONST_STRING(i, __LINE__) thingy, where __LINE__ doesn't get expanded, and the whole results in _CONST_STRING_ instead of _CONST_STRING_1309, etc. Now, here comes the weird stuff: If I ask only for the preprocessed source (add option /E to CFLAGS, then "nmake src\interpreter.obj"), this (from interpreter.c) sc = CONST_STRING(interpreter, "_interpreter"); VTABLE_setprop(interpreter, user_data, sc, interp_pmc); sc = CONST_STRING(interpreter, "_sub"); VTABLE_setprop(interpreter, user_data, sc, sub); gets expanded to sc = (interpreter)->const_cstring_table[1]; (user_data)->vtable->setprop(interpreter, user_data, sc, interp_pmc); sc = (interpreter)->const_cstring_table[2]; (user_data)->vtable->setprop(interpreter, user_data, sc, sub); which seems to be The Right Thing. So, I guess either the compiler or I am missing something cruciual here. Ron