use -C for make instead of changing current directory
[fbsd-stable-mgmt.git] / update_stage0.sh
index 2a299b585a93910c75248a2fa02bfc549202a223..31edbce9a77de1551d279bd30b630334ee1c3a33 100755 (executable)
@@ -2,6 +2,7 @@
 
 usage() {
        echo 'Usage: ...'
+       echo '-c        clean obj'
        echo '-u        svn update'
        echo '-j        jobs to be handled'
        echo 'default to ' ${jarg}
@@ -11,11 +12,14 @@ usage() {
 parse() {
        RED='\033[0;31m'
        NC='\033[0m' # No Color
-       while getopts "uj:" option 
+       while getopts "cuj:" option 
        do
                case ${option} in
+                       c)
+                               CLEANING=1
+                               ;;
                        u)
-                               update="1"
+                               UPDATE=1
                                ;;
                        j)
                                case ${OPTARG} in 
@@ -35,6 +39,8 @@ parse() {
 jarg=`sysctl -n hw.ncpu`
 
 
+usrsrc=${USRSRC:-/usr/src}
+
 if [ $? -ne 0 ] 
 then 
        usage 
@@ -42,13 +48,19 @@ else
        parse ${*} 
 fi
 
-[ ${update} ] && svn update /usr/src
+if [ ${UPDATE:=-0} -eq 1 ]; then 
+       echo "updating ..." 
+       svnlite update ${usrsrc}
+       [ ${?} == 1 ] && exit 1
+fi
 
-echo Cleaning
-chflags -R noschg /usr/obj/* && rm -rf /usr/obj
-echo building process on ${jarg} jobs
-cd /usr/src && \
-make -j${jarg} buildworld && make -j${jarg} kernel KERNCONF=PEPINS && \
-echo "Reboot the system."
 
+if [ ${CLEANING:=-0} -eq 1 ]; then 
+       echo Cleaning
+       chflags -R noschg /usr/obj/* && sync && rm -rf /usr/obj && sync
+fi
+
+echo building process on ${jarg} jobs
+make -C ${usrsrc} -j${jarg} buildworld && make -C ${usrsrc} -j${jarg} kernel KERNCONF=PEPINS \
+       && echo "Reboot the system."