home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

confLIB...

Location and modes for installed library files Build macro

Beginning with V8.12, one library, the libmilter library, is now installed centrally for your use in designing you own filter programs. The library file, libmilter.a, is installed by default in the /usr/lib directory. Two corresponding #include files, mfapi.h and mfdef.h, are installed by default in the /usr/include/libmilter directory. No Unix manual pages are installed. Instead you must read HTML files located under the sendmail source tree, in libmilter/docs, to learn how to use this library.

A number of build-time macros can be used to modify the ownership, location, and modes of the installed library (installation of the #include files is described in confINC...):

confLIBDIR

The confLIBDIR macro determines where the created library file will be installed. For most sites, the correct directory will be defined in your devtools/OS file (usually /usr/lib). But if you decide to put that library in a different directory, you can do so by defining this macro:

define(`confLIBDIR', `/usr/local/lib')

confLIBGRP

This macro sets the group that will own the installed library. The group defaults to bin. If you wish to use a different group you can do so like this:

define(`confLIBGRP', `mbin')     use a group name
define(`confLIBGRP', `343')      use a group number

If you use a positive number that is not too large, it will be accepted no matter what. If you use a name that is not defined in the /etc/group file, you might see the following error and the build will fail:

chgrp: mbin: unknown group
confLIBMODE

This macro defines the permissions that the installed library will be assigned. The default is mode 0444, which is readable by the owner, group, and world. One reason to change this default might be to prohibit ordinary users from reading these files. You would make such a change like this:

define(`confMBINMODE', `0440')   remove world read permission

If you use an illegal permission value, such as 991, you will see the following error and the build will fail:

chmod: invalid mode
confLIBOWN

This macro defines who will own the library. The default owner is root. You can set its ownership to a different owner if you prefer, with an m4 Build macro such as this:

define(`confLIBOWN', `mbin')    use a username
define(`confLIBOWN', `9')       use a user number

If you use a positive number that is not too large, it will be accepted no matter what. If you use a name that is not defined in the /etc/passwd file (or related file such as /etc/master.passwd), you might see the following error and the build will fail:

chown: unknown user id: mbin
    Previous Section Next Section