1 #!/bin/ksh
   2 #
   3 # This file and its contents are supplied under the terms of the
   4 # Common Development and Distribution License ("CDDL"), version 1.0.
   5 # You may only use this file in accordance with the terms of version
   6 # 1.0 of the CDDL.
   7 #
   8 # A full copy of the text of the CDDL should have accompanied this
   9 # source.  A copy of the CDDL is also available via the Internet at
  10 # http://www.illumos.org/license/CDDL.
  11 #
  12 
  13 #
  14 # Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
  15 #
  16 
  17 # Use distributed make (dmake) by default.
  18 make=${MAKE:-dmake}
  19 
  20 CLOSED_IS_PRESENT=no
  21 export CLOSED_IS_PRESENT
  22 
  23 [ -n "$SRC" ] || {
  24   echo "SRC not set.  Run 'ws' or 'bldenv' first."
  25   exit 1
  26 }
  27 
  28 cpu=`uname -p`
  29 case $cpu in
  30 i386)
  31         x=intel
  32         mdb_arch="ia32 amd64"
  33         arch32=i86
  34         arch64=amd64
  35         ;;
  36 sparc)
  37         x=sparc
  38         mdb_arch=v9
  39         arch32=sparc
  40         arch64=sparcv9
  41         ;;
  42 *)  echo "Huh?" ; exit 1;;
  43 esac
  44 
  45 ################################################################
  46 
  47 build_tools() {
  48   test -f $SRC/tools/proto/root_i386-nd/opt/onbld/bin/genoffsets ||
  49     (cd $SRC/tools && $make install)
  50   (cd $SRC/common/mapfiles; $make install)
  51 }
  52 
  53 clobber_tools() {
  54   (cd $SRC/tools && $make clobber)
  55   (cd $SRC/common/mapfiles; $make clobber)
  56 }
  57 
  58 ################################################################
 
  69 if [ "$targ" = install ]
  70 then
  71   targ=install_h
  72 
  73   # Just the parts of "make sgs" we need, and
  74   # skip them if they appear to be done.
  75   # ... stuff under $SRC
  76   test -f $SRC/uts/common/sys/priv_names.h ||
  77     (cd $SRC/uts && $make -k all_h)
  78 
  79   test -f $SRC/head/rpcsvc/nispasswd.h ||
  80     (cd $SRC/head && $make -k install_h)
  81 
  82   # ... stuff under $ROOT (proto area)
  83   test -d $ROOT/usr/include/sys ||
  84     (cd $SRC && $make rootdirs)
  85   test -f $ROOT/usr/include/sys/types.h ||
  86     (cd $SRC/uts && $make -k install_h)
  87   test -f $ROOT/usr/include/rpcsvc/daemon_utils.h ||
  88     (cd $SRC/head && $make install_h)
  89 
  90   # always update the sys headers to be safe
  91   (cd $SRC/uts/common/sys && $make -k install_h)
  92 
  93 fi
  94 
  95 # Need some library headers too...
  96 for lib in \
  97   libbsm \
  98   libcmdutils \
  99   libcryptoutil \
 100   libdevid \
 101   libdiskmgt \
 102   libidmap \
 103   libpam \
 104   libsec \
 105   libscf \
 106   libshare \
 107   libuutil \
 108   libzpool \
 
 
 208 case $1 in
 209 install)
 210   # mount programs need fslib.o
 211   (cd $SRC/cmd/fs.d/zfs && $make $1)
 212   # Build just the ZFS devfsadm module
 213   (cd $SRC/cmd/devfsadm/$cpu && $make SUNW_zfs_link.so \
 214     ${ROOT}/usr/lib/devfsadm/linkmod \
 215     ${ROOT}/usr/lib/devfsadm/linkmod/SUNW_zfs_link.so )
 216   ;;
 217 clean|clobber)
 218   (cd $SRC/cmd/fs.d/zfs && $make clobber)
 219   (cd $SRC/cmd/fs.d && $make ${1}_local)
 220   (cd $SRC/cmd/devfsadm && $make $1)
 221   ;;
 222 esac
 223 
 224 (cd $SRC/cmd/syseventd/modules/zfs_mod && $make $1)
 225 
 226 # Build the MDB modules, WITH the linktest
 227 (cd $SRC/cmd/mdb/tools && $make $1)
 228 for a in $mdb_arch
 229 do
 230   case $1 in
 231   install|lint)
 232     (cd $SRC/cmd/mdb/$x/$a/kmdb &&
 233         $make kmdb_modlinktest.o )
 234     ;;
 235   clean|clobber)
 236     (cd $SRC/cmd/mdb/$x/$a/kmdb &&
 237         $make -k $1 )
 238     ;;
 239   esac
 240 
 241   (cd $SRC/cmd/mdb/$x/$a/zfs &&
 242         $make $1 KMDB_LINKTEST_ENABLE= )
 243 
 244   (cd $SRC/cmd/mdb/$x/$a/libzpool &&
 245         $make $1 )
 246 
 247 done
 248 }
 249 
 250 ################################################################
 251 
 252 do_mans() {
 253 
 254   case "$1" in
 255   install)
 256     (cd $SRC/man/man1m && make \
 257       $ROOT/usr/share/man/man1m/zdb.1m \
 258       $ROOT/usr/share/man/man1m/zfs.1m \
 259       $ROOT/usr/share/man/man1m/zfs-program.1m \
 260       $ROOT/usr/share/man/man1m/zpool.1m )
 261     (cd $SRC/man/man5 && make \
 262       $ROOT/usr/share/man/man5/zpool-features.5 )
 263     ;;
 
 287         find cmd/zdb -name '*.[ch]' -print |sort
 288         find cmd/zhack -name '*.[ch]' -print |sort
 289         find cmd/zinject -name '*.[ch]' -print |sort
 290         find cmd/ztest -name '*.[ch]' -print |sort
 291         find common/zfs -name '*.[ch]' -print |sort
 292         echo cmd/mdb/common/modules/zfs/zfs.c
 293         ) > $SRC/cscope.files
 294 
 295         (cd $SRC ;
 296         exctags -e --langmap=c:+.ndl -h ndl -L - < cscope.files
 297         cscope -b )
 298 }
 299 
 300 ################################################################
 301 # This creates a tarfile one can use to update a test machine.
 302 
 303 do_tar() {
 304         git_rev=`git rev-parse --short=8 HEAD`
 305         files="
 306 kernel/drv/$arch64/zfs
 307 kernel/drv/zfs
 308 kernel/fs/$arch64/zfs
 309 kernel/fs/zfs
 310 kernel/kmdb/$arch64/zfs
 311 kernel/kmdb/zfs
 312 lib/$arch64/libzfs.so.1
 313 lib/$arch64/libzfs_core.so.1
 314 lib/libzfs.so.1
 315 lib/libzfs_core.so.1
 316 usr/bin/$arch32/ztest
 317 usr/bin/$arch64/ztest
 318 usr/lib/$arch64/libzfs_jni.so.1
 319 usr/lib/$arch64/libzpool.so.1
 320 usr/lib/devfsadm/linkmod/SUNW_zfs_link.so
 321 usr/lib/fs/zfs/bootinstall
 322 usr/lib/fs/zfs/fstyp.so.1
 323 usr/lib/libzfs_jni.so.1
 324 usr/lib/libzpool.so.1
 325 usr/lib/mdb/kvm/$arch64/zfs.so
 326 usr/lib/mdb/kvm/zfs.so
 327 usr/lib/mdb/proc/$arch64/libzpool.so
 328 usr/lib/mdb/proc/libzpool.so
 329 sbin/zfs
 330 sbin/zpool
 331 usr/lib/sysevent/modules/zfs_mod.so
 332 usr/lib/zfs/availdevs
 333 usr/lib/zfs/pyzfs.py
 334 usr/lib/zfs/pyzfs.pyc
 335 usr/sbin/$arch32/zdb
 336 usr/sbin/$arch64/zdb
 337 usr/sbin/$arch32/zhack
 338 usr/sbin/$arch64/zhack
 339 usr/sbin/$arch32/zinject
 340 usr/sbin/$arch64/zinject
 341 usr/sbin/zstreamdump
 342 usr/share/man/man1m/zdb.1m
 343 usr/share/man/man1m/zfs.1m
 344 usr/share/man/man1m/zfs-program.1m
 345 usr/share/man/man1m/zpool.1m
 346 usr/share/man/man5/zpool-features.5
 
 | 
   1 #!/bin/ksh
   2 #
   3 # This file and its contents are supplied under the terms of the
   4 # Common Development and Distribution License ("CDDL"), version 1.0.
   5 # You may only use this file in accordance with the terms of version
   6 # 1.0 of the CDDL.
   7 #
   8 # A full copy of the text of the CDDL should have accompanied this
   9 # source.  A copy of the CDDL is also available via the Internet at
  10 # http://www.illumos.org/license/CDDL.
  11 #
  12 
  13 #
  14 # Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  15 #
  16 
  17 # Use distributed make (dmake) by default.
  18 make=${MAKE:-dmake}
  19 
  20 CLOSED_IS_PRESENT=no
  21 export CLOSED_IS_PRESENT
  22 
  23 [ -n "$SRC" ] || {
  24   echo "SRC not set.  Run 'ws' or 'bldenv' first."
  25   exit 1
  26 }
  27 
  28 cpu=`uname -p`
  29 case $cpu in
  30 i386)
  31         x=intel
  32         kmdb_arch="amd64"
  33         mdb_arch="ia32 amd64"
  34         arch32=i86
  35         arch64=amd64
  36         ;;
  37 sparc)
  38         x=sparc
  39         kmdb_arch=v9
  40         mdb_arch="v7 v9"
  41         arch32=sparc
  42         arch64=sparcv9
  43         ;;
  44 *)  echo "Huh?" ; exit 1;;
  45 esac
  46 
  47 ################################################################
  48 
  49 build_tools() {
  50   test -f $SRC/tools/proto/root_i386-nd/opt/onbld/bin/genoffsets ||
  51     (cd $SRC/tools && $make install)
  52   (cd $SRC/common/mapfiles; $make install)
  53 }
  54 
  55 clobber_tools() {
  56   (cd $SRC/tools && $make clobber)
  57   (cd $SRC/common/mapfiles; $make clobber)
  58 }
  59 
  60 ################################################################
 
  71 if [ "$targ" = install ]
  72 then
  73   targ=install_h
  74 
  75   # Just the parts of "make sgs" we need, and
  76   # skip them if they appear to be done.
  77   # ... stuff under $SRC
  78   test -f $SRC/uts/common/sys/priv_names.h ||
  79     (cd $SRC/uts && $make -k all_h)
  80 
  81   test -f $SRC/head/rpcsvc/nispasswd.h ||
  82     (cd $SRC/head && $make -k install_h)
  83 
  84   # ... stuff under $ROOT (proto area)
  85   test -d $ROOT/usr/include/sys ||
  86     (cd $SRC && $make rootdirs)
  87   test -f $ROOT/usr/include/sys/types.h ||
  88     (cd $SRC/uts && $make -k install_h)
  89   test -f $ROOT/usr/include/rpcsvc/daemon_utils.h ||
  90     (cd $SRC/head && $make install_h)
  91   (cd $SRC/uts/common/c2 && $make -k install_h)
  92 
  93   # always update the sys headers to be safe
  94   (cd $SRC/uts/common/sys && $make -k install_h)
  95 
  96 fi
  97 
  98 # Need some library headers too...
  99 for lib in \
 100   libbsm \
 101   libcmdutils \
 102   libcryptoutil \
 103   libdevid \
 104   libdiskmgt \
 105   libidmap \
 106   libpam \
 107   libsec \
 108   libscf \
 109   libshare \
 110   libuutil \
 111   libzpool \
 
 
 211 case $1 in
 212 install)
 213   # mount programs need fslib.o
 214   (cd $SRC/cmd/fs.d/zfs && $make $1)
 215   # Build just the ZFS devfsadm module
 216   (cd $SRC/cmd/devfsadm/$cpu && $make SUNW_zfs_link.so \
 217     ${ROOT}/usr/lib/devfsadm/linkmod \
 218     ${ROOT}/usr/lib/devfsadm/linkmod/SUNW_zfs_link.so )
 219   ;;
 220 clean|clobber)
 221   (cd $SRC/cmd/fs.d/zfs && $make clobber)
 222   (cd $SRC/cmd/fs.d && $make ${1}_local)
 223   (cd $SRC/cmd/devfsadm && $make $1)
 224   ;;
 225 esac
 226 
 227 (cd $SRC/cmd/syseventd/modules/zfs_mod && $make $1)
 228 
 229 # Build the MDB modules, WITH the linktest
 230 (cd $SRC/cmd/mdb/tools && $make $1)
 231 
 232 # kmdb_arch is 64-bit only
 233 for a in $kmdb_arch
 234 do
 235   case $1 in
 236   install|lint)
 237     (cd $SRC/cmd/mdb/$x/$a/kmdb &&
 238         $make kmdb_modlinktest.o )
 239     ;;
 240   clean|clobber)
 241     (cd $SRC/cmd/mdb/$x/$a/kmdb &&
 242         $make -k $1 )
 243     ;;
 244   esac
 245 
 246   (cd $SRC/cmd/mdb/$x/$a/zfs &&
 247         $make $1 KMDB_LINKTEST_ENABLE= )
 248 
 249 done
 250 
 251 # mdb_arch is both 32-bit & 64-bit
 252 for a in $mdb_arch
 253 do
 254   (cd $SRC/cmd/mdb/$x/$a/libzpool &&
 255         $make $1 )
 256 
 257 done
 258 }
 259 
 260 ################################################################
 261 
 262 do_mans() {
 263 
 264   case "$1" in
 265   install)
 266     (cd $SRC/man/man1m && make \
 267       $ROOT/usr/share/man/man1m/zdb.1m \
 268       $ROOT/usr/share/man/man1m/zfs.1m \
 269       $ROOT/usr/share/man/man1m/zfs-program.1m \
 270       $ROOT/usr/share/man/man1m/zpool.1m )
 271     (cd $SRC/man/man5 && make \
 272       $ROOT/usr/share/man/man5/zpool-features.5 )
 273     ;;
 
 297         find cmd/zdb -name '*.[ch]' -print |sort
 298         find cmd/zhack -name '*.[ch]' -print |sort
 299         find cmd/zinject -name '*.[ch]' -print |sort
 300         find cmd/ztest -name '*.[ch]' -print |sort
 301         find common/zfs -name '*.[ch]' -print |sort
 302         echo cmd/mdb/common/modules/zfs/zfs.c
 303         ) > $SRC/cscope.files
 304 
 305         (cd $SRC ;
 306         exctags -e --langmap=c:+.ndl -h ndl -L - < cscope.files
 307         cscope -b )
 308 }
 309 
 310 ################################################################
 311 # This creates a tarfile one can use to update a test machine.
 312 
 313 do_tar() {
 314         git_rev=`git rev-parse --short=8 HEAD`
 315         files="
 316 kernel/drv/$arch64/zfs
 317 kernel/fs/$arch64/zfs
 318 kernel/kmdb/$arch64/zfs
 319 lib/$arch64/libzfs.so.1
 320 lib/$arch64/libzfs_core.so.1
 321 lib/libzfs.so.1
 322 lib/libzfs_core.so.1
 323 usr/bin/$arch32/ztest
 324 usr/bin/$arch64/ztest
 325 usr/lib/$arch64/libzfs_jni.so.1
 326 usr/lib/$arch64/libzpool.so.1
 327 usr/lib/devfsadm/linkmod/SUNW_zfs_link.so
 328 usr/lib/fs/zfs/bootinstall
 329 usr/lib/fs/zfs/fstyp.so.1
 330 usr/lib/libzfs_jni.so.1
 331 usr/lib/libzpool.so.1
 332 usr/lib/mdb/kvm/$arch64/zfs.so
 333 usr/lib/mdb/proc/$arch64/libzpool.so
 334 usr/lib/mdb/proc/libzpool.so
 335 sbin/zfs
 336 sbin/zpool
 337 usr/lib/sysevent/modules/zfs_mod.so
 338 usr/lib/zfs/availdevs
 339 usr/lib/zfs/pyzfs.py
 340 usr/lib/zfs/pyzfs.pyc
 341 usr/sbin/$arch32/zdb
 342 usr/sbin/$arch64/zdb
 343 usr/sbin/$arch32/zhack
 344 usr/sbin/$arch64/zhack
 345 usr/sbin/$arch32/zinject
 346 usr/sbin/$arch64/zinject
 347 usr/sbin/zstreamdump
 348 usr/share/man/man1m/zdb.1m
 349 usr/share/man/man1m/zfs.1m
 350 usr/share/man/man1m/zfs-program.1m
 351 usr/share/man/man1m/zpool.1m
 352 usr/share/man/man5/zpool-features.5
 
 |