| 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 |