This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Serialization dependencies muck up configure-on-demand
> > We want to run the toplevel makefile in parallel, because we want to
> > do the builds and tests in parallel. So, we want to get rid of
> > .NOTPARALLEL, not depend on it.
>
> Well, I'm not sure how useful of a goal that is;
It lets you start building libiberty while you're still configuring
gcc, for example. Or you can reconfigure a single subdirectory by
deleting its Makefile and running "make". Or you can test gcc, gdb,
and binutils all at once with "make -j3 check". You can also add or
remove source directories to/from your build, or edit the configury,
and reconfigure in a fraction of the time.
> I don't see a better way without being truly gross about it... no,
> even having a combinatorial number of serialization dependencies
> won't work since they have to be on real files.
Try the attached patch. We'll need to explicitly add back in true
configure dependencies (like bfd:libiberty) based on the real files.
> However, GNU make has the answer.
We cannot rely on using GNU make features.
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/configure.in,v
retrieving revision 1.198
diff -p -3 -r1.198 configure.in
*** configure.in 23 Dec 2002 16:54:15 -0000 1.198
--- configure.in 23 Dec 2002 20:49:18 -0000
*************** olditem=
*** 1458,1464 ****
for item in ${build_configdirs} ; do
case ${olditem} in
"") ;;
! *) echo "\$(BUILD_SUBDIR)/${item}/Makefile: \$(BUILD_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;;
esac
olditem=${item}
done
--- 1458,1464 ----
for item in ${build_configdirs} ; do
case ${olditem} in
"") ;;
! *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
esac
olditem=${item}
done
*************** olditem=
*** 1466,1472 ****
for item in ${configdirs} ; do
case ${olditem} in
"") ;;
! *) echo "${item}/Makefile: ${olditem}/Makefile" >> serdep.tmp ;;
esac
olditem=${item}
done
--- 1466,1472 ----
for item in ${configdirs} ; do
case ${olditem} in
"") ;;
! *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
esac
olditem=${item}
done
*************** olditem=
*** 1474,1480 ****
for item in ${target_configdirs} ; do
case ${olditem} in
"") ;;
! *) echo "\$(TARGET_SUBDIR)/${item}/Makefile: \$(TARGET_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;;
esac
olditem=${item}
done
--- 1474,1480 ----
for item in ${target_configdirs} ; do
case ${olditem} in
"") ;;
! *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
esac
olditem=${item}
done