Compiling a static version of rsync

David Arnold
Sun, 09 Jun 2002 22:00:02 -0000

I need to compile a static version of rsync.  Various versions of
the following command fail to produce a static version after the
"make" stage.  Build box is i386 solaris 8.

Am I correct in thinking only the linker builds static libraries?

/tmp/rsync-2.5.5# ./configure --enable-static --disable-dynamic
/tmp/rsync-2.5.5# ./configure --enable-static --disable-shared
/tmp/rsync-2.5.5# ./configure --enable-static=yes --disable-dynamic=yes

Don't seem to affect the Makefile at all.  So I try various permutations
of the Makefile without any success:

CFLAGS= ..(stuff).. -B static

LDFLAGS=-d n		| LDFLAGS args seem to be used by gcc in the
LDFLAGS=-dn		| "make" stage.  Is this right? - see below.
LDFLAGS=-B static	|

gcc -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -dn -o rsync rsync.o
generator.o receiver.o cleanup.o sender.o exclude.o util.o main.o
checksum.o match.o syscall.o log.o backup.o options.o flist.o io.o
compat.o hlink.o token.o uidlist.o socket.o fileio.o batch.o
clientname.o params.o loadparm.o clientserver.o access.o
connection.o authenticate.o lib/fnmatch.o lib/compat.o
lib/snprintf.o lib/mdfour.o  lib/permstring.o zlib/deflate.o
zlib/infblock.o zlib/infcodes.o zlib/inffast.o  zlib/inflate.o
zlib/inftrees.o zlib/infutil.o zlib/trees.o  zlib/zutil.o
zlib/adler32.o popt/findme.o  popt/popt.o  popt/poptconfig.o
popt/popthelp.o popt/poptparse.o -lresolv -lsocket -lnsl

# file ./rsync
rsync:          ELF 32-bit LSB executable 80386 Version 1,
dynamically linked, not stripped

Any assistance appreciated.

--
David Arnold	     				dga@csse.monash.edu.au