1 2 3The utilities in this directory are _not_ built automatically. So: 4 cd <root_of_sg3_utils_src> 5 ./configure ; make ; make install 6will _not_ build and install them. The make command (or some variant 7of it) needs to be run in this directory as outlined below. 8 9Building files in this directory depends on several files being already 10built in the ../lib directory. So to build files here, the ./configure 11needs to be executed in the parent directory followed by changing 12directory to the lib directory and calling 'make' there. 13Another way is to do a top level 'make' after the ./configure which 14will make the libraries followed by all the utilities in the src/ 15directory. To make them in FreeBSD use 'make -f Makefile.freebsd' . 16 17The utilities in this directory do not have manpages. They have 18relatively complete but terse help messages, typically seen by using 19the '--help' option one or more times. If called several times, the 20shorter form of the help option is more convenient, for example: '-hhh'. 21And of course there is the source code. Unfortunately where the code 22implements many different options, it can become a bit dense. There 23is also a large amount of error checking, as many of these utilities 24were used to test new features placed in the sg v4 driver in Linux. 25 26The sg_chk_asc utility decodes the SCSI additional sense code table 27found at https://www.t10.org/lists/asc-num.txt and checks it against 28the table found in sg_lib_data.c in the lib/ subdirectory. It is 29designed to keep the table in sg_lib_data.c in "sync" with the 30table at the t10.org web site. 31 32The tst_sg_lib utility exercises several functions found in sg_lib.c 33and related files in the 'lib' sibling directory. Use 'tst_sg_lib -h' 34to get more information. 35 36There are both C and C++ files in this directory, they have extensions 37'.c' and '.cpp' respectively. Now both are built with rules in Makefile 38(at least in Linux). A gcc/g++ compiler of 4.7.3 vintage or later 39(or a recent clang compiler) will be required. To make them in FreeBSD 40use 'make -f Makefile.freebsd'. 41 42The sgh_dd utility (C++) uses 'libatomic' which may not be installed 43on some systems. On Debian based systems 'apt install libatomic1' fixes 44this. 45 46Douglas Gilbert 4717th September 2019 48