# :vim filetype=Makefile: .include # File locations local_cvsrep?= /cvs local_cvsrep_nb?= ${local_cvsrep}/netbsd local_cvsrep_fb?= ${local_cvsrep}/freebsd local_cvsrep_php?= /usr/local/src/php cvsroot?= ${local_cvsrep} cvsroot_nb?= ${local_cvsrep_nb} cvsroot_php?= ${local_cvsrep_php} cvsroot_fb?= ${local_cvsrep_fb} # cvsroot?= ':ext:anoncvs@anoncvs.se.openbsd.org:/cvs' supfile?= ${local_cvsrep}/supfile fb_supfile?= ${local_cvsrep_fb}/freebsd-supfile nb_supfile?= ${local_cvsrep_nb}/netbsd-supfile php_supfile?= ${local_cvsrep_php}/php4-supfile update_logfile?= /etc/cvs-update kernel_update_logfile?= /etc/kernel-update system_update_logfile?= /etc/system-update newroot?= /builds/newroot build_maindir?= /builds xf4lndir?= ${build_maindir}/xf4-build xf4destdir?= ${build_maindir}/xf4-dest xf4releasedir?= ${build_maindir}/xf4-release sysdestdir?= ${build_maindir}/dest sysreleasedir?= ${build_maindir}/release kernel_dir?= /bsds kernel_conf?= GENERIC pipeline?= ~/pipeline diffdir?= ~/pipeline/diffs wwwdir?= /usr/www srcdir?= /usr/src portsdir?= /usr/ports objdir?= /usr/obj xf4dir?= /usr/XF4 df_files= ${local_cvsrep} ${newroot} ${build_maindir} ${xf4lndir} ${xf4destdir} ${xf4releasedir} ${sysdestdir} ${sysreleasedir} ${srcdir} ${wwwdir} ${objdir} ${xf4dir} ${tmpdir} ${src_diffs_new} ${ports_diffs_new} ${www_diffs_new} ${src_diffs} ${ports_diffs} ${www_diffs} # Architechture you're building for arch!= uname -m CVSROOT?= /cvs # Create and chown $df_files mkdir_frag= \ ${SUDO} mkdir -p ${df_files}; \ ${SUDO} chown `whoami` ${df_files} append_buildlog_frag= \ echo "-----------------------------------------------------------------------" && \ echo "`date -u '+%Y-%m-%d %H:%M'` (UTC)" && \ echo "Current disk usage:" && \ echo "`df -h ${df_files} 2>&1 | uniq`" && \ echo show: @echo "CC: ${CC}" @echo "CFLAGS: ${CFLAGS}" @echo "COPTS: ${COPTS}" @echo "NOPIC: ${NOPIC}" @echo "INSTALL_STRIP: ${INSTALL_STRIP}" @echo "DEBUG: ${DEBUG}" mkdirs: @cd ${.CURDIR} && make show | tee -a ${update_logfile} ${mkdir_frag} cvsup: mkdirs @(${append_buildlog_frag} "START: update CVS repository from `grep host ${supfile}`" )| tee -a ${update_logfile} cd ${local_cvsrep} && cvsup -g -L 1 ${supfile} @(${append_buildlog_frag} "OK: update CVS repository from `grep host ${supfile}`")| tee -a ${update_logfile} php-cvsup: mkdirs @(${append_buildlog_frag} "START: update PHP CVS repository from `grep host ${php_supfile}`" )| tee -a ${update_logfile} cd ${local_cvsrep_php} && cvsup -g -L 1 ${php_supfile} @(${append_buildlog_frag} "OK: update PHP CVS repository from `grep host ${php_supfile}`")| tee -a ${update_logfile} freebsd-cvsup: mkdirs @(${append_buildlog_frag} "START: update FreeBSD CVS repository from `grep host ${fb_supfile}`" )| tee -a ${update_logfile} cd ${local_cvsrep_fb} && cvsup -g -L 1 ${fb_supfile} @(${append_buildlog_frag} "OK: update FreeBSD CVS repository from `grep host ${fb_supfile}`")| tee -a ${update_logfile} netbsd-cvsup: mkdirs @(${append_buildlog_frag} "START: update NetBSD CVS repository from `grep host ${nb_supfile}`" )| tee -a ${update_logfile} cd ${local_cvsrep_nb} && cvsup -g -L 1 ${nb_supfile} @(${append_buildlog_frag} "OK: update NetBSD CVS repository from `grep host ${nb_supfile}`")| tee -a ${update_logfile} cvsfrag= \ test -z "$$tree" && echo "tree not set" && exit 1; \ (${append_buildlog_frag} "START: update from CVS ($$tree): ${cvsroot}")| tee -a ${update_logfile}; \ cd /usr/$$tree && cvs -d${cvsroot} -q up -dPA > $@.tmp; \ mkdir -p ${diffdir}/$$tree-new; \ grep '^?' /usr/$$tree/$@.tmp | sed -e "s|^? |/usr/$$tree/|" > ${diffdir}/$$tree-new/newfiles ; \ grep '^C' /usr/$$tree/$@.tmp | sed -e "s|^C |/usr/$$tree/|" > ${diffdir}/$$tree-new/conflicts ; \ rm -f /usr/$$tree/$@.tmp ; \ echo "REMEMBER to check ${diffdir}/$$tree-new/{newfiles,conflicts}" ; \ (${append_buildlog_frag} "OK: update from CVS ($$tree): ${cvsroot}")| tee -a ${update_logfile} src-cvs: mkdirs @-tree=src && ${cvsfrag} @date -u '+%Y-%m-%d' > ${system_update_logfile} cvs: src-cvs ports-cvs: mkdirs @-tree=ports && ${cvsfrag} www-cvs: mkdirs @-tree=www && ${cvsfrag} xf4-cvs: mkdirs @-tree=XF4 && ${cvsfrag} freebsd-cvs: mkdirs @${append_buildlog_frag} "START: update from CVS (freebsd): ${cvsroot_fb}"| tee -a ${update_logfile} cd /usr/local/src/freebsd && cvs -d${cvsroot_fb} up -dPA src/sys ports @${append_buildlog_frag} "OK: update from CVS (freebsd): ${cvsroot_fb}"| tee -a ${update_logfile} php-cvs: php-cvsup netbsd-cvs: mkdirs @${append_buildlog_frag} "START: update from CVS (netbsd): ${cvsroot_nb}"| tee -a ${update_logfile} cd /usr/local/src/netbsd && cvs -d${cvsroot_nb} up -dPA syssrc pkgsrc @${append_buildlog_frag} "OK: update from CVS (netbsd): ${cvsroot_nb}"| tee -a ${update_logfile} kernel: mkdirs @(${append_buildlog_frag} "START: kernel config of ${kernel_conf}")| tee -a ${update_logfile} cd ${srcdir}/sys/arch/${arch}/conf && config ./${kernel_conf} @(${append_buildlog_frag} "OK: kernel config of ${kernel_conf}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: kernel make clean of ${kernel_conf}")| tee -a ${update_logfile} cd ${srcdir}/sys/arch/${arch}/compile/${kernel_conf} && make clean @(${append_buildlog_frag} "OK: kernel make clean of ${kernel_conf}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: kernel make all of ${kernel_conf}")| tee -a ${update_logfile} cd ${srcdir}/sys/arch/${arch}/compile/${kernel_conf} && make all @(${append_buildlog_frag} "OK: kernel make all of ${kernel_conf}")| tee -a ${update_logfile} @mkdir -p ${kernel_dir}/`cat ${system_update_logfile}`/${kernelconf} @(${append_buildlog_frag} "START: copy kernel into ${kernel_dir}/`cat ${system_update_logfile}`/${kernelconf}" )| tee -a ${update_logfile} cp ${srcdir}/sys/arch/${arch}/compile/${kernel_conf}/bsd \ ${kernel_dir}/`cat ${system_update_logfile}`/${kernel_conf} if test -f ${srcdir}/sys/arch/${arch}/compile/${kernel_conf}/bsd.gdb; then \ cp ${srcdir}/sys/arch/${arch}/compile/${kernel_conf}/bsd.gdb \ ${kernel_dir}/`cat ${system_update_logfile}`/${kernel_conf}.gdb ; \ fi @(${append_buildlog_frag} "OK: copy kernel into ${kernel_dir}/`cat ${system_update_logfile}`/${kernel_conf}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: kernel make clean of ${kernel_conf}")| tee -a ${update_logfile} cd ${srcdir}/sys/arch/${arch}/compile/${kernel_conf} && make clean @(${append_buildlog_frag} "OK: kernel make clean of ${kernel_conf}")| tee -a ${update_logfile} clean-build: mkdirs @(${append_buildlog_frag} "START: rm -rf ${objdir}/*")| tee -a ${update_logfile} rm -rf ${objdir}/* @(${append_buildlog_frag} "OK: rm -rf ${objdir}/*")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: make obj" )| tee -a ${update_logfile} cd ${srcdir} && make obj @(${append_buildlog_frag} "OK: make obj" )| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd ${srcdir}/share/mk && exec ${SUDO} make install" )| tee -a ${update_logfile} cd ${srcdir}/share/mk && exec exec ${SUDO} make install @(${append_buildlog_frag} "OK: cd ${srcdir}/share/mk && ${SUDO} make install" )| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd ${srcdir}/include && make prereq && exec ${SUDO} make includes" )| tee -a ${update_logfile} cd ${srcdir}/include && make prereq && exec ${SUDO} make includes @(${append_buildlog_frag} "OK: cd ${srcdir}/include && make prereq && exec ${SUDO} make includes" )| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd ${srcdir} && ${SUDO} make cleandir" )| tee -a ${update_logfile} cd ${srcdir}/include && ${SUDO} make cleandir @(${append_buildlog_frag} "OK: cd ${srcdir} && ${SUDO} make cleandir" )| tee -a ${update_logfile} build: mkdirs @(${append_buildlog_frag} "START: cd /usr/src/lib && make && make install")| tee -a ${update_logfile} cd /usr/src/lib && ${MAKE} depend && ${MAKE} && \ NOMAN=1 exec ${SUDO} ${MAKE} install @(${append_buildlog_frag} "OK: cd /usr/src/lib && make && make install")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd /usr/src/gnu/lib && make && make install")| tee -a ${update_logfile} cd /usr/src/gnu/lib && ${MAKE} depend && ${MAKE} && \ NOMAN=1 exec ${SUDO} ${MAKE} install @(${append_buildlog_frag} "OK: cd /usr/src/gnu/lib && make && make install")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd /usr/src/kerberosIV/lib && make && make install")| tee -a ${update_logfile} cd /usr/src/kerberosIV/lib && ${MAKE} depend && ${MAKE} && \ NOMAN=1 exec ${SUDO} ${MAKE} install @(${append_buildlog_frag} "OK: cd /usr/src/kerberosIV/lib && make && make install")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd /usr/src/kerberosV/lib && make && make install")| tee -a ${update_logfile} cd /usr/src/kerberosV/lib && ${MAKE} depend && ${MAKE} && \ NOMAN=1 exec ${SUDO} ${MAKE} install @(${append_buildlog_frag} "OK: cd /usr/src/kerberosV/lib && make && make install")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd /usr/src/gnu/usr.bin/perl && make -f Makefile.bsd-wrapper perl.lib && make -f Makefile.bsd-wrapper install.lib")| tee -a ${update_logfile} cd /usr/src/gnu/usr.bin/perl && \ ${MAKE} -f Makefile.bsd-wrapper depend && \ ${MAKE} -f Makefile.bsd-wrapper perl.lib && \ exec ${SUDO} ${MAKE} -f Makefile.bsd-wrapper install.lib @(${append_buildlog_frag} "OK: cd /usr/src/gnu/usr.bin/perl && make -f Makefile.bsd-wrapper perl.lib && make -f Makefile.bsd-wrapper install.lib")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: cd /usr/src && make && DESTDIR=/ make install")| tee -a ${update_logfile} cd /usr/src && ${MAKE} depend && ${MAKE} && exec ${SUDO} /usr/bin/env DESTDIR=/ ${MAKE} install @(${append_buildlog_frag} "OK: cd /usr/src && make && make install")| tee -a ${update_logfile} xf4-clean: mkdirs @(${append_buildlog_frag} "START: rm -rf ${xf4lndir}/*")| tee -a ${update_logfile} rm -rf ${xf4lndir}/* @(${append_buildlog_frag} "OK: rm -rf ${xf4lndir}/*")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: mkdir -p ${xf4lndir}/*")| tee -a ${update_logfile} mkdir -p ${xf4lndir}/* @(${append_buildlog_frag} "OK: mkdir -p ${xf4lndir}/*")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: lndir ${xf4lndir}/*")| tee -a ${update_logfile} cd ${xf4lndir} && lndir ${xf4dir} @(${append_buildlog_frag} "OK: lndir ${xf4lndir}/*")| tee -a ${update_logfile} xf4: mkdirs @(${append_buildlog_frag} "START: make X build ")| tee -a ${update_logfile} cd ${xf4lndir} && exec ${SUDO} make build @(${append_buildlog_frag} "OK: make X build")| tee -a ${update_logfile} @echo "********************************************************" @echo "** Update /etc/X11/xdm from $DESTDIR/etc/X11/xdm by hand" @echo "********************************************************" xf4-release: mkdirs @(${append_buildlog_frag} "START: rm -rf ${xf4destdir} ${xf4releasedir}")| tee -a ${update_logfile} ${SUDO} rm -rf ${xf4destdir} ${xf4releasedir} @(${append_buildlog_frag} "OK: rm -rf ${xf4destdir} ${xf4releasedir}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: mkdir -p ${xf4destdir} ${xf4releasedir}")| tee -a ${update_logfile} ${SUDO} mkdir -p ${xf4destdir} ${xf4releasedir} @(${append_buildlog_frag} "OK: mkdir -p ${xf4destdir} ${xf4releasedir}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: make X release")| tee -a ${update_logfile} cd ${xf4lndir} && exec ${SUDO} /usr/bin/env DESTDIR=${xf4destdir} RELEASEDIR=${xf4releasedir} make release @(${append_buildlog_frag} "OK: make X release")| tee -a ${update_logfile} diff-etc-var: mkdirs @(${append_buildlog_frag} "START: rm -rf ${newroot}/* ${newroot}.*")| tee -a ${update_logfile} rm -rf ${newroot}/* ${newroot}/.* @(${append_buildlog_frag} "OK: rm -rf ${newroot}/* ${newroot}.*")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: make distribution-etc-root-var")| tee -a ${update_logfile} cd ${srcdir}/etc && DESTDIR=${newroot} make distribution-etc-root-var @chown -R heikki.wheel ${newroot} @(${append_buildlog_frag} "OK: make distribution-etc-root-var")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: diff /etc, /var and /dev")| tee -a ${update_logfile} for dir in var etc; do \ cd $newroot/$dir; \ for f in *; do \ if echo $f | grep -q messages; then \ continue; \ fi; \ echo ==== $f >> $dir.patch; \ diff -r --exclude '*messages*' /$dir/$f $f >> $dir.patch 2>&1; \ chown -R heikki.wheel ${newroot}; done; \ done for file in dev/MAKEDEV dev/MAKEDEV.local; do diff -r /$file $file >> $file.patch 2>&1; \ done @(${append_buildlog_frag} "OK: diff /etc and /var and /dev")| tee -a ${update_logfile} release: mkdirs @(${append_buildlog_frag} "START: rm -rf ${sysdestdir} ${sysreleasedir}")| tee -a ${update_logfile} ${SUDO} rm -rf ${sysdestdir} ${sysreleasedir} @(${append_buildlog_frag} "OK: rm -rf ${sysdestdir} ${sysreleasedir}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: mkdir -p ${sysdestdir} ${sysreleasedir}")| tee -a ${update_logfile} ${SUDO} mkdir -p ${sysdestdir} ${sysreleasedir} @(${append_buildlog_frag} "OK: mkdir -p ${sysdestdir} ${sysreleasedir}")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: make release")| tee -a ${update_logfile} cd ${srcdir}/etc && exec ${SUDO} /usr/bin/env DESTDIR=${sysdestdir} RELEASEDIR=${sysreleasedir} make release @(${append_buildlog_frag} "OK: make release")| tee -a ${update_logfile} @(${append_buildlog_frag} "START: checkflist")| tee -a ${update_logfile} cd ${srcdir}/distrib/sets && exec ${SUDO} csh env DESTDIR=${sysdestdir} RELEASEDIR=${sysreleasedir} checkflist @(${append_buildlog_frag} "OK: checkflist")| tee -a ${update_logfile} # Dirs are hardcoded. diff_frag= \ difffile=${diffdir}/$$tree/diff.`date -u '+%Y-%m-%d-%H.%M'` && \ mkdir -p `dirname $$difffile` && \ cd /usr/$$tree && cvs diff > $$difffile src-diff: mkdirs @(${append_buildlog_frag} "START: cd /usr/src && cvs diff" )| tee -a ${update_logfile} -tree=src && ${diff_frag} @(${append_buildlog_frag} "OK: cd /usr/src && cvs diff" )| tee -a ${update_logfile} xf4-diff: mkdirs @(${append_buildlog_frag} "START: cd /usr/XF4 && cvs diff" )| tee -a ${update_logfile} -tree=XF4 && ${diff_frag} @(${append_buildlog_frag} "OK: cd /usr/XF4 && cvs diff" )| tee -a ${update_logfile} ports-diff: mkdirs @(${append_buildlog_frag} "START: cd /usr/ports && cvs diff" )| tee -a ${update_logfile} -tree=ports && ${diff_frag} @(${append_buildlog_frag} "OK: cd /usr/src && cvs diff" )| tee -a ${update_logfile} www-diff: mkdirs @(${append_buildlog_frag} "START: cd /usr/ports && cvs diff" )| tee -a ${update_logfile} -tree=ports && ${diff_frag} @(${append_buildlog_frag} "OK: cd /usr/src && cvs diff" )| tee -a ${update_logfile} bulk-packages: @(${append_buildlog_frag} "START: cd /usr/ports && make bulk-packages" )| tee -a ${update_logfile} -backup_dir=~/portslogs/`date -u '+%Y-%m-%d-%H.%M' 2>&1` && \ mkdir -p $$backup_dir && \ mv -f ~/portslogs/*.log $$backup_dir test -d ~/portslogs || mkdir -p ~/portslogs cd /usr/ports && make bulk-packages 2>&1 | /usr/ports/infrastructure/build/portslogger ~/portslogs @(${append_buildlog_frag} "OK: cd /usr/ports && make bulk-packages" )| tee -a ${update_logfile} indexes: mkdirs @(${append_buildlog_frag} "START: making glimpse indexes")| tee -a ${update_logfile} (echo "/usr/src/sys /var/glimpse/srcsys" && \ echo "/usr/include /var/glimpse/headers" && \ echo "/usr/src /var/glimpse/src" && \ echo "/usr/ports /var/glimpse/ports" && \ echo "/usr/www /var/glimpse/www" && \ echo "/usr/XF4 /var/glimpse/XF4" && \ echo "/usr/local/src/gnu/{autoconf,automake,libtool} /var/glimpse/gnuauto" && \ echo "/usr/local/src/php /var/glimpse/php" && \ echo "/usr/local/src/netbsd/pkgsrc /var/glimpse/netbsd-pkgs" && \ echo "/usr/local/src/curl /var/glimpse/curl" && \ echo "/usr/local/src/darwin/Ports /var/glimpse/darwin-ports" && \ echo "/usr/local/src/darwin/Commands /var/glimpse/darwin-cmds" && \ echo "/usr/local/src/darwin/{Applications,/Darwin,/Filesystems,/IO,/Interfaces,/Libraries,/Networking,/Scripting,/Security,/Services,/System,/Tools,/module-list} /var/glimpse/darwin-rest" && \ echo "/usr/local/src/freebsd/ports /var/glimpse/freebsd-ports" && \ echo "/usr/local/src/freebsd/src /var/glimpse/freebsd-kernel" && \ echo "/usr/local/src/netbsd/syssrc /var/glimpse/netbsd-kernel" && \ echo "/usr/local/src/linux/glibc /var/glimpse/linux-glibc" && \ echo "/usr/local/src/linux/kernel /var/glimpse/linux-kernel" ) | while read dir indexdir; do \ mkdir -p $$indexdir; \ echo "==> glimpseindex -o -H $$indexdir $$dir"; \ ls -d $$dir; \ glimpseindex -o -H $$indexdir $$dir; \ done @mkdir -p /var/glimpse/man @find /usr/src -name "*.[0-9]" | glimpseindex -o -H /var/glimpse/man -F mkdir -p /var/glimpse/java12-c /var/glimpse/java12 /var/glimpse/java-c /var/glimpse/java @find /usr/local/src/java/javasrc -name "*.[ch]" -o -name "*.cpp" | glimpseindex -o -H /var/glimpse/java12-c -F @find /usr/local/src/java/javasrc ! -name "*.[ch]" ! -name "*.cpp" | glimpseindex -o -H /var/glimpse/java12 -F @find /usr/local/src/java/javasrc_1_3_scsl -name "*.[ch]" -o -name "*.cpp" | glimpseindex -o -H /var/glimpse/java-c -F @find /usr/local/src/java/javasrc_1_3_scsl ! -name "*.[ch]" ! -name "*.cpp" | glimpseindex -o -H /var/glimpse/java -F @(${append_buildlog_frag} "OK: making glimpse indexes")| tee -a ${update_logfile} help: @echo "make show : show some current settings" @echo "make cvsup : " @echo "make freebsd-cvsup : " @echo "make netbsd-cvsup : cvsup one of the repos" @echo "make src-cvs : " @echo "make ports-cvs : " @echo "make www-cvs : " @echo "make xf4-cvs : " @echo "make freebsd-cvs : " @echo "make netbsd-cvs : cvs update from the repo" @echo "make kernel : compile the kernel" @echo "make clean-build : make clean before build" @echo "make build : make compile/install build" @echo "make bulk-packages: : make bulk-packages" @echo "make xf4-build: : make xf4 (clean)" @echo "make xf4: : make xf4 (build)" @echo "make xf4-release : make xf4 release" @echo "make diff-etc-var : make distr, diff /etc /var to" @echo " : etc/ and var/ under newroot" @echo "make release : generate a system release(8)" @echo "make src-diff : " @echo "make xf4-diff : " @echo "make ports-diff : " @echo "make www-diff : diff one of the trees; " @echo " : note that *-cvs checks " @echo " : conflicts and new files" @echo "make indexes : index trees with glimpse"