I'm wrapping my head around something new.
In the past I have been copying the svn package contents to tmpfs and working there with my compiles. That habit came from being accustomed to building packages from a source tarball. The source tarball is unpacked to a temporary working area and then compiled. With svn, something to which I am new, I maintained that habit by copying the package contents.
Trinity is huge and compiling the entire core package suite requires 6 hours even on a dual core system. I could live with that if I knew the packages always compiled 100% of the time. That is a normal expectation with tarballs, but is not the case in a dynamic svn environment. There always is some degree of breakage. Hence a previous suggestion to use ccache.
I have compiled kernels for many years. Being new to svn I did not understand that, much like the kernel, I don't have to image package sources from the svn tree but can work directly in that directory. Like the kernel I need only use 'make clean' to restore the svn tree. I then can use ccache to create compiling caches, which should dramatically reduce compile times.
If I understand correctly, then in my build scripts I need to do the following:
================================ WAS:
(snippet from arts package build script)
echo "Copying $PRGNAM source files to $TMP..." cp -a $SVN_SOURCES/dependencies/$PRGNAM $TMP/ || exit 1 cd $PRGNAM || exit 1 echo echo "Building make and config files..." echo echo "Package will be stored at $OUTPUT." echo cp -p "$LIBTOOLM4" admin/libtool.m4.in cp -p "$LTMAINSH" admin/ltmain.sh make -f admin/Makefile.common echo echo "Finished building make and config files." echo chown -R root:root . CFLAGS=$CPUOPT \ CXXFLAGS=$CPUOPT \ ./configure \ --prefix=${PREFIX} \ --sysconfdir=${SYSCONFDIR} \ --libdir=${LIBDIR} \ --disable-debug \ --program-prefix="" \ --program-suffix="" \ --build=$ARCH-slackware-linux
make $NUMJOBS || exit 1 make install DESTDIR=$PKG
================================ CHANGE TO:
echo "Changing to $PRGNAM source files in SVN..." cd $SVN_SOURCES/dependencies/$PRGNAM || exit 1 echo echo "Building make and config files..." echo echo "Package will be stored at $OUTPUT." echo cp -p "$LIBTOOLM4" ./admin/libtool.m4.in cp -p "$LTMAINSH" ./admin/ltmain.sh make -f ./admin/Makefile.common echo echo "Finished building make and config files." echo chown -R root:root . make clean if [ -x /usr/bin/ccache ]; then CC="ccache gcc" echo "Using ccache. Unless configured otherwise, the cache is stored in $HOME/.ccache." echo else CC="gcc" fi CFLAGS=$CPUOPT \ CXXFLAGS=$CPUOPT \ $CC ./configure \ --prefix=${PREFIX} \ --sysconfdir=${SYSCONFDIR} \ --libdir=${LIBDIR} \ --disable-debug \ --program-prefix="" \ --program-suffix="" \ --build=$ARCH-slackware-linux
make $NUMJOBS || exit 1 make install DESTDIR=$PKG
================================
Do I have the correct idea?
Thanks much!
Darrell