(robertl) rjltwin:/home/robertl/src/tmp/udiproto.cd1/env/posix
$ make transtest
make: `transtest' is up to date.
(robertl) rjltwin:/home/robertl/src/tmp/udiproto.cd1/env/posix
$ touch ../common/*trans.c
(robertl) rjltwin:/home/robertl/src/tmp/udiproto.cd1/env/posix
$ make transtest
make: `transtest' is up to date.
(robertl) rjltwin:/home/robertl/src/tmp/udiproto.cd1/env/posix
$ make transtest
make: `transtest' is up to date.
(robertl) rjltwin:/home/robertl/src/tmp/udiproto.cd1/env/posix
$ touch osenvdir/bin/ia32/*pio.o
(robertl) rjltwin:/home/robertl/src/tmp/udiproto.cd1/env/posix
$ make transtest
make: `transtest' is up to date.
Removing udi.o gets things working again, but it also results in a
rebuild (why a recompile and not merely a relink?) of the entire world.
Also, if a 'make inittest' (or other target) is the first
build done in env/posix, the build fails. It seems you have to do a generic 'make' before any target-specific 'make blah' commands will succeed.
This may or may not be related.
Fixed general dependencies.
No dependencies on touched ".o" files
Did not see the make sequencing problem described in the added comment.
[reopened]
Now they've gone to the other extreme.
$ make
Checking udi.o (udi_user_env) from osenvdir...
Checking gio.o (gio_POSIX) from ../../meta/gio...
Checking giomap.o (giomap_POSIX) from mappers/gio...
Checking bridgemap.o (bridgemap_POSIX) from mappers/bridge...
Checking bridge.o (bridge_POSIX) from ../../meta/bridge...
Checking pseudod.o (pseudod_POSIX) from ../../driver/pseudo...
Checking bridgetest_driver.o (bridgetest_driver_POSIX) from ../../driver/posix_bridge...
Checking udi_guinead.o (udi_guinea_POSIX) from ../../driver/udi_guinea...
(robertl) rjlinux:/home/robertl/src/udiproto/env/posix
$ touch ../common/*trans.c
(robertl) rjlinux:/home/robertl/src/udiproto/env/posix
$ make transtest
Checking udi.o (udi_user_env) from osenvdir...
++cc -c -I. -I/home/robertl/src/udiproto/env/posix/../..//pub_include -DLINUX_RELEASE_BUILD -ffreestanding -fno-builtin -fno-strict-aliasing -DDEBUG -DSTATIC= -Wall -fno-omit-frame-pointer -fstrict-prototypes -DDEBUG -Dudi_init_info=udi_user_env_init_info -Dudi_meta_info=udi_user_env_init_info -g3 -DDEBUG -pthread -Ienvcommon/ -g3 -o ./bin/ia32/udi_MA.o envcommon/udi_MA.c
++cc -c -I. -I/home/robertl/src/udiproto/env/posix/../..//pub_include -DLINUX_RELEASE_BUILD -ffreestanding -fno-builtin -fno-strict-aliasing -DDEBUG -DSTATIC= -Wall -fno-omit-frame-pointer -fstrict-prototypes -DDEBUG -Dudi_init_info=udi_user_env_init_info -Dudi_meta_info=udi_user_env_init_info -g3 -DDEBUG -pthread -Ienvcommon/ -g3 -o ./bin/ia32/udi_MA_util.o envcommon/udi_MA_util.c
[every other file on the planet being rebuilt]
The second problem in this PR also remains. rm -fr posix linux linux-user ;cvs up -d ; cd posix ; ./configure ; make inittest
(This also points out that a 'make clean' is leaving crumbs
around or a removal of the directories would be unnecessary)
(robertl) rjlinux:/home/robertl/src/udiproto/env/posix
$ ./configure
Root of Tree = /home/robertl/src/udiproto
Configuring for linux-user
Source is in .
Config-dir is /home/robertl/src/udiproto/env/posix
Recommended: $ make depend
(robertl) rjlinux:/home/robertl/src/udiproto/env/posix
$ make inittest
cc -g3 -DDEBUG -I. -I../../pub_include -Iosenvdir -I../common -I../posix -I../../mapper/common/gio -I../../mapper/posix/gio -I../../mapper/common/net -I../../mapper/posix/net -I../../driver/pseudond -DSTATIC=static -pthread -Wall -c -o inittest.o inittest.c
Checking udi.o (udi_user_env) from osenvdir...
++cc -c -I. -I/home/robertl/src/udiproto/env/posix/../..//pub_include -DLINUX_RELEASE_BUILD -ffreestanding -fno-builtin -fno-strict-aliasing -DDEBUG -DSTATIC= -Wall -fno-omit-frame-pointer -fstrict-prototypes -DDEBUG -Dudi_init_info=udi_user_env_init_info -Dudi_meta_info=udi_user_env_init_info -g3 -DDEBUG -pthread -Ienvcommon/ -g3 -o ./bin/ia32/udi_MA.o envcommon/udi_MA.c
cc: envcommon/udi_MA.c: No such file or directory
cc: No input files
udibuild: ERROR: `cc' command failed (1).
The second problem is now fixed (thanks for the additional reproduction information). This corrects a rather weak assumption about build procedures and strengthens the POSIX build procedure to be totally bootstrapped as well as testing dependencies better. It should now be possible to do the following:
$ cd new-dir
$ cvs checkout udiproto
$ cd udiproto/env/posix
$ ./configure
$ make [test]
And have it operate correctly.
The first problem, second version (overbuilding) is still present, therefore this PR is still open.
Also, the dependencies for the bridge mapper must be wrong.
touch common/bridge/udi_bridge.c and make bridgetest but the mapper doesn't get rebuilt.