Try a couple different way to fix the build.
[rsync.git] / INSTALL.md
1 To build and install rsync:
2
3     $ ./configure
4     $ make
5     # make install
6
7 You may set the installation directory and other parameters by options
8 to ./configure.  To see them, use:
9
10     $ ./configure --help
11
12 Configure tries to figure out if the local system uses group "nobody" or
13 "nogroup" by looking in the /etc/group file.  (This is only used for the
14 default group of an rsync daemon, which attempts to run with "nobody"
15 user and group permissions.)  You can change the default user and group
16 for the daemon by editing the NOBODY_USER and NOBODY_GROUP defines in
17 config.h, or just override them in your /etc/rsyncd.conf file.
18
19 As of 2.4.7, rsync uses Eric Troan's popt option-parsing library.  A
20 cut-down copy of a recent release is included in the rsync distribution,
21 and will be used if there is no popt library on your build host, or if
22 the --with-included-popt option is passed to ./configure.
23
24 If you configure using --enable-maintainer-mode, then rsync will try
25 to pop up an xterm on DISPLAY=:0 if it crashes.  You might find this
26 useful, but it should be turned off for production builds.
27
28 If you want to automatically use a separate "build" directory based on
29 the current git branch name, start with a pristine git checkout and run
30 "mkdir auto-build-save" before you run the first ./configure command.
31 That will cause a fresh build dir to spring into existence along with a
32 special Makefile symlink that allows you to run "make" and "./configure"
33 from the source dir (the "build" dir gets auto switched based on branch).
34 This is helpful when using the branch-from-patch and patch-update scripts
35 to maintain the official rsync patches.  If you ever need to build from
36 a "detached head" git position then you'll need to manually chdir into
37 the build dir to run make.  I also like to create 2 more symlinks in the
38 sourc dir:  ln -s build/rsync . ; ln -s build/testtmp .
39
40 MAKE COMPATIBILITY
41 ------------------
42
43 Note that Makefile.in has a rule that uses a wildcard in a prerequisite.  If
44 your make has a problem with this rule, you will see an error like this:
45
46     Don't know how to make ./*.c
47
48 You can change the "proto.h-tstamp" target in Makefile.in to list all the *.c
49 filenames explicitly in order to avoid this issue.
50
51 RPM NOTES
52 ---------
53
54 Under packaging you will find .spec files for several distributions.
55 The .spec file in packaging/lsb can be used for Linux systems that
56 adhere to the Linux Standards Base (e.g., RedHat and others).
57
58 HP-UX NOTES
59 -----------
60
61 The HP-UX 10.10 "bundled" C compiler seems not to be able to cope with
62 ANSI C.  You may see this error message in config.log if ./configure
63 fails:
64
65   (Bundled) cc: "configure", line 2162: error 1705: Function prototypes are an ANSI feature.
66
67 Install gcc or HP's "ANSI/C Compiler".
68
69 MAC OSX NOTES
70 -------------
71
72 Some versions of Mac OS X (Darwin) seem to have an IPv6 stack, but do
73 not completely implement the "New Sockets" API.  
74
75 <http://www.ipv6.org/impl/mac.html> says that Apple started to support
76 IPv6 in 10.2 (Jaguar).  If your build fails, try again after running
77 configure with --disable-ipv6.
78
79 IBM AIX NOTES
80 -------------
81
82 IBM AIX has a largefile problem with mkstemp.  See IBM PR-51921.
83 The workaround is to append the below to config.h
84         #ifdef _LARGE_FILES
85         #undef HAVE_SECURE_MKSTEMP
86         #endif