Page 1 of 1

[NOT A BUG] Latest SVN checkout doesn't build

Posted: 26 Jul 2006, 21:26
by Master Ar2ro

Code: Select all

if g++ -DHAVE_CONFIG_H -I. -I. -I..  -DTMW_DATADIR=\""/usr/local/share/tmw/"\"  -Wall -Werror  -I/usr/include/SDL -D_REENTRANT `pkg-config --cflags libxml-2.0`  -g -O2 -MT tmw-tradehandler.o -MD -MP -MF ".deps/tmw-tradehandler.Tpo" -c -o tmw-tradehandler.o `test -f 'net/tradehandler.cpp' || echo './'`net/tradehandler.cpp; \
        then mv -f ".deps/tmw-tradehandler.Tpo" ".deps/tmw-tradehandler.Po"; else rm -f ".deps/tmw-tradehandler.Tpo"; exit 1; fi
make[2]: *** Brak reguł do zrobienia obiektu `graphic/spriteset.cpp', wymaganego przez `tmw-spriteset.o'. Stop.
make[2]: Opuszczenie katalogu `/usr/src/tmw/src'
make[1]: *** [all-recursive] Błąd 1
make[1]: Opuszczenie katalogu `/usr/src/tmw'
make: *** [all] Błąd 2
The English translation would be sth like "No rules specified to make object `graphic/striteset.cpp` needed by `tmw-spriteset.o`. Stop"
No changes made by me, pure checkout from the svn repository. Version 0.0.19 used to build with no problems under the same toolset.

Posted: 26 Jul 2006, 22:12
by Bjørn
The file was moved, and automake doesn't know how to cope with the disappearing file without spitting out silly errors.

Try running again:

Code: Select all

autoreconf -if
./configure

Posted: 27 Jul 2006, 07:58
by silene
Bjørn wrote:Try running again:

Code: Select all

autoreconf -if
./configure
It won't be enough (and in fact it is not even needed). The problem is a bit more obscure. Since tmw stores all its objects files in the same root directory instead of storing them in their respective source directories, the spriteset object file is still at the same place while the source file disappeared. In particular, the related dependency file (now obsolete) still applies since the object file still exists. So you can either clean your whole repository, or simply do

Code: Select all

cat /dev/null > src/.deps/tmw-spriteset.Po
Anyway, this is a good occasion to suggest we stop storing object files in the root directory. It has several advantages and it is just a matter of adding this line to Makefile.am

Code: Select all

AUTOMAKE_OPTIONS = subdir-objects

Posted: 30 Jul 2006, 13:40
by Bjørn
silene wrote:Anyway, this is a good occasion to suggest we stop storing object files in the root directory. It has several advantages and it is just a matter of adding this line to Makefile.am

Code: Select all

AUTOMAKE_OPTIONS = subdir-objects
There is no particular reason that we've been storing the object files in the root directory, other than that we never knew how to do it differently. I think none of us have ever liked it. I'm glad to also finally know what the problem is with removing files.

So yeah, make it so! :)