Building files in this directory depends on several files being already built in the ../lib directory. So to build files here, the ./configure needs to be executed in the parent directory followed by changing directory to the lib directory and calling 'make' there. Another way is to do a top level 'make' after the ./configure which will make the libraries followed by all the utilities in the src/ directory. To make them in FreeBSD use 'make -f Makefile.freebsd' . There is an brief explanation of each example in the README file in the main (i.e. this directory's parent) directory. There are also some notes at the top of each source file. The sg_chk_asc utility decodes the SCSI additional sense code table found at http://www.t10.org/lists/asc-num.txt and checks it against the table found in sg_lib_data.c in the lib/ subdirectory. It is designed to keep the table in sg_lib_data.c in "sync" with the table at the t10.org web site. The tst_sg_lib utility exercises several functions found in sg_lib.c and related files in the 'lib' sibling directory. Use 'tst_sg_lib -h' to get more information. Those files with the extension "cpp" are C++ examples that use facilities in C++11. They can be built by calling 'make -f Makefile.cplus'. A gcc/g++ compiler of 4.7.3 vintage or later (or a recent clang compiler) will be required. Douglas Gilbert 19th January 2018