blob: 34ae152e55376b003944698d8dc8a06902e67e2e [file] [log] [blame]
make
make install
Unless overridden or edited in the Makefile, INSTDIR places the executables
in the /usr/local/bin directory, LIBDIR places libraries in the
/usr/local/lib directory, MANDIR places the man pages in the
/usr/local/man directory and INCLUDEDIR places header files in the
/usr/local/include/scsi directory.
Other Makefile targets that might be useful:
make clean # remove .o, executables, core and .depend file
make depend # generate dependency hierarchy in .depend file
make dep # same as 'make depend'
make sg_inq # build a specific executable (e.g. 'sg_inq')
make uninstall # removes executables, libraries and build remnants
make -f lib_no_lib/Makefile.no_lib # build without a library
./make_no_lib.sh sg_inq # is a simple script; in this case it expands to:
# make -f lib_no_lib/Makefile.no_lib sg_inq
Note that the main Makefile does _not_ call the Makefiles in the
subdirectories (i.e. archive, examples and utils directories).
By default, this package now builds a shared library called
libsgutils.so and the corresponding static library: libsgutils.a .
The GNU "libtool" is required by sg3_utils to build its libraries.
The 'make' will build those libraries and executables and put them
in the ".libs" subdirectory (as libtool requires/enforces).
The 'make' puts scripts in the main directory with the same names as
the utilities (e.g. sg_dd, sg_inq etc) which set up an appropriate
environment and call the "real" executable "hiding" in the ".libs"
subdirectory.
The "make install" will install the libraries in the /usr/local/lib
directory. If an executable cannot find the libsgutils shared library
(check with 'ldd sg_inq' for example) then the addition of "/usr/local/lib"
to the /etc/ld.so.conf file may be required in some distributions.
A "spec" file is included for building rpm packages. It is called
sg3_utils.spec and is in the "rpm" subdirectory. To build binary and
source rpms place a copy of the gzipped tarball in the "SOURCES" directory
and place a copy of sg3_utils.spec in the "SPEC" directory. These
directories are found under /usr/src/redhat on redhat distributions. Then
from the "SPEC" directory execute "rpmbuild -ba sg3_utils.spec". If all
goes well a source rpm should be found in the SRPMS directory and binary
rpms in the RPMS/i386 directory (for i386 architecture). Note the spec
file will only build those utilities in the main directory. When the
sg3_utils binary rpm is installed the executables and their associated man
pages should be placed in appropriate places. The sg3_utils.spec file also
builds a libsgutils shared object (shared library) and a libsgutils-*-devel
shared object with a static library and the sg_lib.h and sg_cmds.h header
files.
Binary rpms (at least in the RedHat distribution) tend to install
executables in /usr/bin and libraries in /usr/lib .
To build debian "deb" (binary) packages, first untar the tarball, then
change directory to the top level within the sg3_utils source. Then:
# chmod +x debian/rules
# dpkg-buildpackage -b -rfakeroot
The binary deb packages will be placed in the parent directory (of
the sg3_utils source directory) if all goes well.
If the shared object (library) is troublesome or unwanted then
a "no_lib" version of the Makefile and the sg3_utils.spec file
can be found in the "lib_no_lib" subdirectory.
28th August 2005