| 1 | Copyright 2000, International Business Machines Corporation and others. |
| 2 | All Rights Reserved. |
| 3 | |
| 4 | This software has been released under the terms of the IBM Public |
| 5 | License. For details, see the LICENSE file in the top-level |
| 6 | directory or online at http://www.openafs.org/dl/license10.html |
| 7 | |
| 8 | Short instructions for sites upgrading from a previous version of AFS: |
| 9 | % ./configure --enable-transarc-paths |
| 10 | % make |
| 11 | % make dest |
| 12 | |
| 13 | will create a Transarc-style dest tree in ${SYS_NAME}/dest where |
| 14 | ${SYS_NAME} is the AFS sysname of the system you built for. |
| 15 | This assumes if you're building for Linux that your kernel source is |
| 16 | in /usr/src/linux. |
| 17 | |
| 18 | Otherwise, please read on. |
| 19 | |
| 20 | Building OpenAFS on UNIX and Linux |
| 21 | ---------------------------------- |
| 22 | |
| 23 | A Configuring |
| 24 | |
| 25 | Uncompress the source into a directory of your choice. A directory |
| 26 | in afs space is also valid. In the directory that you uncompressed the |
| 27 | source in, you will only have an src/ directory. |
| 28 | |
| 29 | 1. Pick a system to build for, and note its default AFS sys_name. |
| 30 | A directory will be automatically created for binaries to be written |
| 31 | into with this name when you build. |
| 32 | |
| 33 | alpha_dux40, alpha_dux50, alpha_dux51 (client does not work) |
| 34 | alpha_linux26 |
| 35 | alpha_nbsd15, alpha_nbsd16 |
| 36 | amd64_fbsd_80, amd64_fbsd_81, amd64_fbsd_82, amd64_fbsd_83, |
| 37 | amd64_fbsd_84, amd64_fbsd_90, amd64_fbsd_91, amd64_fbsd_92, |
| 38 | amd64_fbsd_93, amd64_fbsd_100, amd64_fbsd_101 |
| 39 | amd64_linux26 |
| 40 | amd64_nbsd20, amd64_nbsd30, amd64_nbsd40 |
| 41 | arm_linux26, arm64_linux26 |
| 42 | hp_ux11i, hp_ux110, hp_ux1123 (See notes below for information on |
| 43 | getting missing header) |
| 44 | hp_ux102 (Client port possible, but db servers and utilities work) |
| 45 | i386_fbsd_80, i386_fbsd_81, i386_fbsd_82, i386_fbsd_83, |
| 46 | i386_fbsd_84, i386_fbsd_90, i386_fbsd_91, i386_fbsd_92, |
| 47 | i386_fbsd_93, i386_fbsd_100, i386_fbsd_101 |
| 48 | i386_linux26 |
| 49 | i386_nbsd15, i386_nbsd16, i386_nbsd20, i386_nbsd21, i386_nbsd30, |
| 50 | i386_nbsd40 |
| 51 | i386_obsd31, i386_obsd32, i386_obsd33, i386_obsd34, i386_obsd35, |
| 52 | i386_obsd36, i386_obsd37, i386_obsd38, i386_obsd39, i386_obsd40, |
| 53 | i386_obsd41 |
| 54 | i386_umlinux26 |
| 55 | ia64_hpux1122, ia64_hpux1123 |
| 56 | ia64_linux26 |
| 57 | ppc64_linux26 |
| 58 | ppc_darwin_12, ppc_darwin_13, ppc_darwin_14, ppc_darwin_60, |
| 59 | ppc_darwin_70, ppc_darwin_80, ppc_darwin_90 |
| 60 | ppc_linux26 |
| 61 | ppc_nbsd16, ppc_nbsd20 |
| 62 | rs_aix42, rs_aix51, rs_aix52, rs_aix53, rs_aix61 |
| 63 | s390_linux26 |
| 64 | s390x_linux26 |
| 65 | sgi_62, sgi_63, sgi_64, sgi_65 (file server not tested) |
| 66 | sparc64_linux26 |
| 67 | sun4x_58, sun4x_59, sun4x_510, sun4x_511 |
| 68 | (logging UFS not supported for mixed-use partitions containing |
| 69 | client cache) |
| 70 | sunx86_58, sunx86_59, sunx86_510, sunx86_511 |
| 71 | (logging UFS not supported for mixed-use partitions containing |
| 72 | client cache) |
| 73 | x86_darwin_80, x86_darwin90 |
| 74 | |
| 75 | 2. Using configure in the top level directory, configure for your |
| 76 | AFS system type, providing the necessary flags: |
| 77 | |
| 78 | % ./configure --with-afs-sysname=sun4x_58 --enable-transarc-paths |
| 79 | |
| 80 | If you do not have the "configure" script, or if you modify the |
| 81 | source files, you can re-create it by running regen.sh. You will |
| 82 | need autoconf to do this. |
| 83 | |
| 84 | For some systems you need also provide the path in which your kernel |
| 85 | headers for your configured kernel can be found. See the |
| 86 | system-specific Notes sections below for details. If you want to |
| 87 | build only the user-space programs and servers and not the kernel |
| 88 | module, specify the --disable-kernel-module option on the |
| 89 | ./configure command line. |
| 90 | |
| 91 | All binaries, except for the 'fileserver' and 'volserver' |
| 92 | executables and their 'da' variants, are stripped of their symbol |
| 93 | table information by default. To enable a debugging build, specify |
| 94 | the --enable-debug option on the ./configure command line. This |
| 95 | builds with debugging compiler options and disables stripping of |
| 96 | binaries. |
| 97 | |
| 98 | You can also use different combinations of --enable-debug and |
| 99 | --enable (or --disable)-strip-binaries for finer control. One can, |
| 100 | for example, compile binaries for debug and strip them anyway. |
| 101 | Alternatively, one can compile without debug and force the binaries |
| 102 | to not be stripped. Note that these combinations are not |
| 103 | necessarily useful. |
| 104 | |
| 105 | The binaries noted above, 'fileserver' and 'volserver' and their |
| 106 | 'da' variants, will never be stripped, regardless of any options |
| 107 | given to configure. |
| 108 | |
| 109 | There are two modes for directory path handling: "Transarc mode" and |
| 110 | "default mode": |
| 111 | |
| 112 | - In Transarc mode, we retain compatibility with Transarc/IBM AFS tools |
| 113 | by putting client configuration files in /usr/vice/etc, and server |
| 114 | files in /usr/afs under the traditional directory layout. |
| 115 | - In default mode, files are located in standardized locations, usually |
| 116 | under $(prefix), which defaults to /usr/local. |
| 117 | - Client programs, libraries, and related files always go in standard |
| 118 | directories under $(prefix). This rule covers things that would go |
| 119 | into $(bindir), $(includedir), $(libdir), $(mandir), and $(sbindir). |
| 120 | - Other files get located in the following places: |
| 121 | |
| 122 | Directory Transarc Mode Default Mode |
| 123 | ============ ========================= ============================== |
| 124 | viceetcdir /usr/vice/etc $(sysconfdir)/openafs |
| 125 | afssrvdir /usr/afs/bin (servers) $(libexecdir)/openafs |
| 126 | afsconfdir /usr/afs/etc $(sysconfdir)/openafs/server |
| 127 | afslocaldir /usr/afs/local $(localstatedir)/openafs |
| 128 | afsdbdir /usr/afs/db $(localstatedir)/openafs/db |
| 129 | afslogdir /usr/afs/logs $(localstatedir)/openafs/logs |
| 130 | afsbosconfig $(afslocaldir)/BosConfig $(afsconfdir)/BosConfig |
| 131 | afsbosserver $(afsbindir)/bosserver $(sbindir)/bosserver |
| 132 | |
| 133 | In default mode, you can change all of the variables named above that |
| 134 | do not start with "afs" by passing the flags with the same name to |
| 135 | configure. For example, if you want to install the server binaries in |
| 136 | /usr/local/lib/openafs instead of /usr/local/libexec/openafs, pass the |
| 137 | --libexecdir=/usr/local/lib flag to configure. |
| 138 | |
| 139 | For additional options, see section I below. |
| 140 | |
| 141 | B Building |
| 142 | |
| 143 | 1. Now, you can build OpenAFS. |
| 144 | |
| 145 | % make |
| 146 | |
| 147 | 2. Install your build using either "make install" to install |
| 148 | into the current system (you will need to be root, and files |
| 149 | will be placed as appropriate for Transarc or standard paths), |
| 150 | "make install DESTDIR=/some/path" to install into an alternate |
| 151 | directory tree, or if you configured with --enable-transarc-paths |
| 152 | make dest to create a complete binary tree in the dest directory |
| 153 | under the directory named for the sys_name you built for, |
| 154 | e.g. sun4x_57/dest or i386_linux26/dest |
| 155 | |
| 156 | 3. As appropriate you can clean up or, if you're using Linux, build for |
| 157 | another kernel version. |
| 158 | |
| 159 | To clean up: |
| 160 | |
| 161 | % make clean |
| 162 | |
| 163 | C Problems |
| 164 | |
| 165 | If you have a problem building this source, you may want to visit |
| 166 | http://www.openafs.org/ to see if any problems have been reported |
| 167 | or to find out how to get more help. |
| 168 | |
| 169 | Mailing lists have been set up to help; More details can be found |
| 170 | on the openafs.org site. |
| 171 | |
| 172 | D Linux Notes |
| 173 | |
| 174 | With current Linux versions, the /lib/modules/`uname -r`/source symlink |
| 175 | will be used to locate the kernel headers, but you will need to have |
| 176 | the headers and build system for your kernel installed in order to |
| 177 | build the kernel module. These are usually found in a separate package |
| 178 | from the kernel, often called something like linux-headers-<version>. |
| 179 | |
| 180 | For older Linux systems, you may also need to provide the path in which |
| 181 | your kernel headers for your configured kernel can be found. This |
| 182 | should be the path of the directory containing a child directory named |
| 183 | "include". So if your version file were |
| 184 | /usr/src/linux/include/linux/version.h you would run: |
| 185 | |
| 186 | % ./configure --with-afs-sysname=i386_linux26 \ |
| 187 | --with-linux-kernel-headers=/usr/src/linux |
| 188 | |
| 189 | Currently you can build for only one Linux kernel at a time, and the |
| 190 | version is extracted from the kernel headers in the root you specify. |
| 191 | |
| 192 | To build for another Linux kernel version, determine the sysname for |
| 193 | the system type as defined in step A1 for the other kernel version and |
| 194 | then run: |
| 195 | |
| 196 | % ./configure --with-afs-sysname=<sysname> \ |
| 197 | --with-linux-kernel-headers=/usr/src/linux-3.19-i686 |
| 198 | % make |
| 199 | |
| 200 | Your build tree will now include an additional kernel module for your |
| 201 | additional kernel headers. Be aware that if the kernel version string |
| 202 | which UTS_RELEASE is defined to in include/linux/version.h matches the |
| 203 | last kernel you built for, the previous kernel module will be |
| 204 | overwritten. |
| 205 | |
| 206 | The Linux 2.4 series (and older) are no longer supported. The OpenAFS 1.6 |
| 207 | series of releases are the last ones supporting those old kernels and in |
| 208 | particular their LinuxThreads. |
| 209 | |
| 210 | E HP-UX 11.0 Notes |
| 211 | |
| 212 | HP-UX 11.0 requires a header called vfs_vm.h which HP has provided on |
| 213 | their web site. Go to http://www.hp.com/dspp, choose Software |
| 214 | downloads from the side menu, and select Software: HP operating systems |
| 215 | and then Operating systems: HP-UX from the select boxes. The last |
| 216 | select box will have an option for downloading vfs_vm.h. |
| 217 | |
| 218 | F OpenBSD Notes |
| 219 | |
| 220 | If you need to run regen.sh to make the configure script, you should |
| 221 | first install autoconf-2.59, then setenv AUTOCONF_VERSION 2.59. |
| 222 | |
| 223 | You need kernel source installed to build OpenAFS. Use the |
| 224 | --with-bsd-kernel-headers= configure option if your kernel source is |
| 225 | not in /usr/src/sys. |
| 226 | |
| 227 | src/packaging/OpenBSD/buildpkg.sh will make a tar file for installing |
| 228 | the client. There is no server package, but I am told that "make |
| 229 | install" will put server binaries in /usr/afs. |
| 230 | |
| 231 | Your kernel may panic when you try to shutdown after running the |
| 232 | OpenAFS client. To prevent this, change the "dangling vnode" panic in |
| 233 | sys/kern/vfs_syscalls.c to a printf and build a new kernel. |
| 234 | |
| 235 | You can't run arla and OpenAFS at the same time. |
| 236 | |
| 237 | G FreeBSD Notes |
| 238 | |
| 239 | The FreeBSD client supports FreeBSD 8.x and later, but does not receive |
| 240 | regular testing on versions older than FreeBSD 9.x at this time. Only |
| 241 | the amd64 and i386 architectures are supported, but it should not be |
| 242 | hard to port to other processors if they are already supported under |
| 243 | another operating system. |
| 244 | |
| 245 | You need kernel source installed to build OpenAFS. Use the |
| 246 | --with-bsd-kernel-headers= configure option if your kernel source is |
| 247 | not in /usr/src/sys. |
| 248 | |
| 249 | You also need access to your kernel build directory for the opt_global.h |
| 250 | include file. Use the --with-bsd-kernel-build= configure option if your |
| 251 | kernel build is not GENERIC in the standard place. If |
| 252 | /usr/src/sys/${CPUARCH}/compile/GENERIC does not point to |
| 253 | /usr/obj/usr/src/sys/GENERIC you may need to resolve that and retry the |
| 254 | build. |
| 255 | |
| 256 | H AIX notes |
| 257 | |
| 258 | Make sure that your default build environment is 32bit, ie. |
| 259 | the OBJECT_MODE environment variable is either unset or set to "32". |
| 260 | |
| 261 | Verify this before doing configure and make. For example, assuming |
| 262 | ksh/bash: |
| 263 | |
| 264 | % export OBJECT_MODE=32 |
| 265 | |
| 266 | To build aklog (in order to be able to get tokens from your Kerberos v5 |
| 267 | ticket), you will need Kerberos libraries. On AIX 6.1, the IBM |
| 268 | Kerberos v5 libraries are in the packages krb5.client.rte and |
| 269 | krb5.toolkit.adt on the Expansion Pack. |
| 270 | |
| 271 | I Other configure options |
| 272 | |
| 273 | AFS has a ton of other optional features that must be enabled using |
| 274 | configure options. Here is a summary: |
| 275 | |
| 276 | --enable-bigendian |
| 277 | --enable-littleendian |
| 278 | These configure options are normally not required and should not be |
| 279 | given. They're only needed if the OpenAFS build system cannot |
| 280 | determine the endianness of your system, in which case configure |
| 281 | will abort and say to use one of these options. |
| 282 | |
| 283 | --enable-bitmap-later |
| 284 | Speeds the startup of the fileserver by deferring reading volume |
| 285 | bitmaps until necessary. Demand attach is a better solution to the |
| 286 | same problem. |
| 287 | |
| 288 | --enable-checking |
| 289 | Enable compiler warnings when building with GCC and turn compiler |
| 290 | warnings into errors so that new warnings will cause compilation |
| 291 | failures. If you are developing patches to contribute to OpenAFS, |
| 292 | please build OpenAFS with this flag enabled. Warning-free code is |
| 293 | a requirement for all new submissions to OpenAFS. |
| 294 | |
| 295 | --enable-debug |
| 296 | --enable-debug-kernel |
| 297 | --enable-debug-lwp |
| 298 | --enable-debug-pam |
| 299 | Compile the userspace code (for --enable-debug) or the code named |
| 300 | by the option with debugging information. If --enable-debug is |
| 301 | given, also do not strip binaries when installing them. |
| 302 | |
| 303 | --enable-linux-d_splice_alias-extra-iput |
| 304 | Work around a kernel memory leak present in a few Linux kernels. |
| 305 | The only affected mainline kernels are 3.17 to 3.17.2, but this |
| 306 | switch will also be required should a distribution backport commit |
| 307 | 908790fa3b779d37365e6b28e3aa0f6e833020c3 or commit |
| 308 | 95ad5c291313b66a98a44dc92b57e0b37c1dd589 but not the fix in commit |
| 309 | 51486b900ee92856b977eacfc5bfbe6565028070 from the linux-stable repo |
| 310 | (git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git) or |
| 311 | the corresponding changes on other branches. This is impossible to |
| 312 | detect automatically. Without this switch, the openafs module will |
| 313 | build and work even with affected kernels. But it will leak kernel |
| 314 | memory, leading to performance degradation and eventually system |
| 315 | failure due to memory exhaustion. |
| 316 | |
| 317 | --enable-linux-syscall-probing |
| 318 | OpenAFS now uses keyrings to manage PAGs by default on Linux, which |
| 319 | does not require hooking into the system call table. On older |
| 320 | versions of Linux without keyring support, OpenAFS uses groups to |
| 321 | manage PAGs and probes for the system call table to hook into it to |
| 322 | preserve that group information. Normally, which method to use is |
| 323 | detected automatically, and if keyring support is present, support |
| 324 | for system call table probing is not compiled in. Use this |
| 325 | configure option to force inclusion of the system call table |
| 326 | probing code even if the kernel appears to support keyrings. |
| 327 | |
| 328 | --enable-namei-fileserver |
| 329 | Forces the namei fileserver on platforms (like Solaris 8 and 9) |
| 330 | where the inode fileserver is the default. |
| 331 | |
| 332 | --enable-redhat-buildsys |
| 333 | Enable compilation of the kernel module for the Red Hat build |
| 334 | system kernel. Use this configure flag when building kernel |
| 335 | modules for Red Hat Linux systems. |
| 336 | |
| 337 | --enable-reduced-depends |
| 338 | Try to minimize the shared library dependencies encoded in the |
| 339 | binaries. This omits from the link line all the libraries included |
| 340 | solely because the Kerberos libraries depend on them and instead |
| 341 | links the programs only against libraries whose APIs are called |
| 342 | directly. This will only work with shared Kerberos libraries and |
| 343 | will only work on platforms where shared libraries properly encode |
| 344 | their own dependencies (such as Linux). It is intended primarily |
| 345 | for building packages for Linux distributions to avoid encoding |
| 346 | unnecessary shared library dependencies that make shared library |
| 347 | migrations more difficult. If none of the above made any sense to |
| 348 | you, don't bother with this flag. |
| 349 | |
| 350 | --enable-supergroups |
| 351 | Enables support of nested groups in the ptserver. WARNING: Once |
| 352 | you make use of this option by nesting one group inside another, |
| 353 | the resulting PTS database cannot be correctly and safely used by a |
| 354 | ptserver built without this option. If some of your ptservers were |
| 355 | built with this option and some without this option, you will |
| 356 | probably corrupt your PTS database. |
| 357 | |
| 358 | --enable-tivoli-tsm |
| 359 | Build with the Tivoli TSM API libraries for butc support of the |
| 360 | Tivoli backup system. |
| 361 | |
| 362 | --enable-transarc-paths |
| 363 | As discussed in A2 above, build for the traditional paths used by |
| 364 | the Transarc and IBM AFS distributions instead of the more typical |
| 365 | open source /usr/local paths. Passing this option to configure and |
| 366 | then running make dest will generate, in the dest directory, the |
| 367 | set of files and directory layout matching a Transarc or IBM AFS |
| 368 | tape distribution. |
| 369 | |
| 370 | --enable-warnings |
| 371 | Enable compilation warnings when built with GCC. This is similar |
| 372 | to --enable-checking, but new warnings will only be displayed, not |
| 373 | cause a build failure. |
| 374 | |
| 375 | It's also possible to disable some standard features. None of these |
| 376 | options are normally needed, but they may be useful in unusual |
| 377 | circumstances: |
| 378 | |
| 379 | --disable-kernel-module |
| 380 | Even if kernel headers are found, do not attempt to build the |
| 381 | kernel module. On Linux, if you provide this flag, you'll also |
| 382 | need to provide --with-afs-sysname, since OpenAFS cannot determine |
| 383 | the correct sysname automatically without the kernel headers. |
| 384 | |
| 385 | --disable-optimize |
| 386 | --disable-optimize-kernel |
| 387 | --disable-optimize-lwp |
| 388 | --disable-optimize-pam |
| 389 | Disable optimization for the given portion of the OpenAFS code. |
| 390 | Usually used either for debugging to avoid code optimization making |
| 391 | it harder to use a debugger, or to work around bugs in the compiler |
| 392 | optimizers or in the OpenAFS code. |
| 393 | |
| 394 | --disable-pam |
| 395 | Do not build the AFS PAM modules. Normally building them is |
| 396 | harmless, but the PAM modules that come with OpenAFS are deprecated |
| 397 | and should not be used unless you're still using the OpenAFS |
| 398 | kaserver (which is itself deprecated and should not be used). |
| 399 | |
| 400 | --disable-pthreaded-ubik |
| 401 | Disable the threaded version of Ubik and install the LWP |
| 402 | versions of Ubik servers. |
| 403 | |
| 404 | --disable-strip-binaries |
| 405 | Disable stripping of binaries on installation. You probably want |
| 406 | to use --enable-debug instead of this flag to also inclusion of |
| 407 | debugging information. |
| 408 | |
| 409 | --disable-unix-sockets |
| 410 | Disable use of UNIX domain sockets for fssync. A TCP connection to |
| 411 | localhost will be used instead. |
| 412 | |
| 413 | You may need to pass one or more of the following options to specify |
| 414 | paths and locations of files needed by the OpenAFS build process or |
| 415 | additional information required by the build process: |
| 416 | |
| 417 | --with-afs-sysname=SYSNAME |
| 418 | Specifies the AFS sysname of the target system is SYSNAME. |
| 419 | Normally this is determined automatically from the build |
| 420 | architecture plus additional information (such as, on Linux, from |
| 421 | the kernel headers). The SYSNAME should be one of the options |
| 422 | listed in A2. |
| 423 | |
| 424 | --with-gssapi=DIR |
| 425 | --with-gssapi-include=DIR |
| 426 | --with-gssapi-lib=DIR |
| 427 | --with-krb5[=DIR] |
| 428 | --with-krb5-include=DIR |
| 429 | --with-krb5-lib=DIR |
| 430 | Normally, OpenAFS will automatically build with Kerberos support if |
| 431 | Kerberos is found during the build. If your Kerberos libraries are |
| 432 | in an unusual location, however, you may need to pass one or more |
| 433 | of these flags. --with-krb5 forces building with Kerberos support |
| 434 | if given and will cause configure to fail if Kerberos is not found. |
| 435 | You may optionally specify the root path to your Kerberos |
| 436 | installation as an argument to --with-krb5. |
| 437 | |
| 438 | If you have a krb5-config script, it's used to find the flags to |
| 439 | build with Kerberos. If you have no krb5-config script, you can |
| 440 | specify the location to the include files with --with-krb5-include |
| 441 | and the libraries with --with-krb5-lib. You may need to do this if |
| 442 | Autoconf can't figure out whether to use lib, lib32, or lib64 on |
| 443 | your platform. |
| 444 | |
| 445 | --with-gssapi is similar, except for the GSS-API libraries instead |
| 446 | of the Kerberos libraries. If you have to manually set the |
| 447 | location of the Kerberos libraries, you may need to do the same |
| 448 | thing for the GSS-API libraries. |
| 449 | |
| 450 | --with-libintl=DIR |
| 451 | --with-libintl-include=DIR |
| 452 | --with-libintl-lib=DIR |
| 453 | Specifies the install location of the libintl library, used for |
| 454 | internationalization, or separately specifies the location of the |
| 455 | header files and libraries. By default, the default system library |
| 456 | paths will be searched. This library is not required on many |
| 457 | platforms. |
| 458 | |
| 459 | --with-roken=PATH |
| 460 | --with-roken=internal |
| 461 | Specifies the install location of the libroken library. Specify |
| 462 | "internal" to use the embedded libroken library that comes with |
| 463 | OpenAFS (the default). This option is primarily useful for |
| 464 | building against a system libroken library if you have one. |
| 465 | |
| 466 | --with-linux-kernel-build=PATH |
| 467 | --with-linux-kernel-headers=PATH |
| 468 | --with-bsd-kernel-build=PATH |
| 469 | --with-bsd-kernel-headers=PATH |
| 470 | Specifies the path to the kernel headers and build system. See the |
| 471 | information above for Linux and *BSD systems. |
| 472 | |
| 473 | --with-linux-kernel-packaging |
| 474 | Tells the OpenAFS kernel module build system to use conventions |
| 475 | appropriate for building modules to include in Linux kernel module |
| 476 | packages. Primarily, this renames the kernel module to openafs.ko |
| 477 | rather than libafs-<VERSION>.ko, which is easier to handle in Linux |
| 478 | distribution init scripts. |
| 479 | |
| 480 | --with-docbook2pdf=PROGRAM |
| 481 | Specifies the program used to convert the DocBook manuals to PDF. |
| 482 | Supported choices are fop, dblatex, and docbook2pdf. By default, |
| 483 | the user's path is searched for those programs in that order, and |
| 484 | the first one found is used. |
| 485 | |
| 486 | --with-docbook-stylesheets=PATH |
| 487 | The location of the DocBook style sheets, used to convert the |
| 488 | DocBook manuals to other formats. By default, a set of likely |
| 489 | paths are searched. |
| 490 | |
| 491 | --with-html-xsl=PATH |
| 492 | Specifies the XSLT style sheet to convert DocBook manuals into |
| 493 | HTML. The default is html/chunk.xsl. You may wish to use |
| 494 | html/docbook.xsml instead. |
| 495 | |
| 496 | --with-xslt-processor=PROGRAM |
| 497 | Specifies the XSLT processor to use to convert the DocBook manuals |
| 498 | into HTML. Supported choices are libxslt, saxon, xalan-j, and |
| 499 | xsltproc. By default, the user's path is searched for those |
| 500 | programs in that order, and the first one found is used. |
| 501 | |
| 502 | --with-ctf-tools[=DIR] |
| 503 | Location of ctfconvert and ctfmerge. Defaults to detect. These |
| 504 | tools create a reduced form of debug information that describes |
| 505 | types and function prototypes. This option is only relevant to |
| 506 | platforms that provide CTF tools and, at the moment, it is only |
| 507 | functional on Solaris (onbld package must be installed). |
| 508 | |
| 509 | There are also some environment variables that you can set to control |
| 510 | aspects of the build. They can be set either on the configure command |
| 511 | line (preferred) or in the environment. |
| 512 | |
| 513 | CC |
| 514 | The C compiler to use. Be aware that this is overridden on some |
| 515 | architectures that require a specific compiler be used to build the |
| 516 | kernel module. If gcc is used, version 3 or later is required. |
| 517 | If clang is used, version 3 or later is required. (Additional |
| 518 | restrictions apply when --enable-checking is used.) |
| 519 | |
| 520 | CFLAGS |
| 521 | Additional flags to pass to the C compiler. |
| 522 | |
| 523 | CPP |
| 524 | The C preprocessor to use. Defaults to cpp if found, otherwise |
| 525 | $CC -E. |
| 526 | |
| 527 | CPPFLAGS |
| 528 | Additional flags to pass to the C preprocessor or compiler. This |
| 529 | is where to put -I options to add paths to the include file search. |
| 530 | |
| 531 | FUSE_CFLAGS |
| 532 | Compiler flags required for building applications that use FUSE. |
| 533 | |
| 534 | FUSE_LIBS |
| 535 | Libraries required for linking applications that use FUSE. |
| 536 | |
| 537 | KRB5_CONFIG |
| 538 | To specify a particular krb5-config script to use, either set the |
| 539 | KRB5_CONFIG environment variable or pass it to configure like: |
| 540 | |
| 541 | ./configure KRB5_CONFIG=/path/to/krb5-config |
| 542 | |
| 543 | To not use krb5-config and force library probing even if there is a |
| 544 | krb5-config script on your path, set KRB5_CONFIG to a nonexistent |
| 545 | path: |
| 546 | |
| 547 | ./configure KRB5_CONFIG=/nonexistent |
| 548 | |
| 549 | LDFLAGS |
| 550 | Additional flags to pass to the linker. This is where to put -L |
| 551 | options to add paths to the library search. |
| 552 | |
| 553 | LIBS |
| 554 | Additional libraries to link all userspace programs with. |
| 555 | |
| 556 | PKG_CONFIG |
| 557 | The path to the pkg-config utility. Currently, this is only used |
| 558 | to locate the flags for building the FUSE version of afsd. |
| 559 | |
| 560 | YACC |
| 561 | The yacc implementation to use. Defaults to bison, byacc, or yacc, |
| 562 | whichever is found first. |
| 563 | |
| 564 | YFLAGS |
| 565 | Additional flags to pass to yacc. |