Commit | Line | Data |
---|---|---|
805e021f CE |
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. |