This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]