This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Finding the SONAME for bzip2


On 10/13/2010 12:02 PM, Al wrote:
>> have you checked the bzip2 source package for cygwin ?
>> I presume the mantainer already solved it
> 
> Yes, I did. He adapted a different Makefile than I plan to use, so I
> didn't want to dig to deep into his solution. He uses a big patch for
> the main makefile.

The bulk of that patch is concerned with the 'make install' rules. The
next complication was because I wanted to allow simultaneous builds of
both the static and shared libraries -- and to build separate test progs
for each, and to RUN both test sets as part of 'make check'.

It's only a tiny portion of the changes that are needed for building the
shared library itself, and you should be able to figure out which bits
those are by inspection.

> However, bzip2 gives the alternative option to use a second Makefile
> as addon to the main Makefile. It ships already with
> Makefile-libbz2_so and Makefile-libbz2_dylib. I want to create
> something like Makefile-cygbz2.

Those are old and probably bit-rotted.  Debian doesn't use it:
http://patch-tracker.debian.org/patch/misc/view/bzip2/1.0.5-6/Makefile

Although fedora does:
http://pkgs.fedoraproject.org/gitweb/?p=bzip2.git;a=blob;f=bzip2.spec;h=31e2f48c42b70d2f363101b9e5afd5e440abf475;hb=HEAD

with changes:
http://pkgs.fedoraproject.org/gitweb/?p=bzip2.git;a=blob;f=bzip2-1.0.4-cflags.patch;h=209d738e2b20580234d376077b8c6f843dce3a0c;hb=HEAD
http://pkgs.fedoraproject.org/gitweb/?p=bzip2.git;a=blob;f=bzip2-1.0.4-saneso.patch;h=6b3430cfdac5bf4fa37734b25326b102ca251bc4;hb=HEAD

> Then I want to anderstand the overall policy for cygwin to be able to
> port bigger packages. bzip2 is very small. By this it is a good
> candidate to understand the procedure.

Actually, bzip2 and zlib are very poor candidates. Most larger projects
do NOT use hand-rolled Makefiles, especially when they are trying to
build shared libraries on multiple platforms. Instead, they use make
file generators or other build systems, that hide the complexity (and
work around the deficiencies).

E.g. autoconf+automake+libtool, or cmake, etc.

These toolsets already know how to build shared libs on cygwin, and a
whole lot more.

Since most projects you will encounter already use build tools like
these, you would get more 'bang for your buck' by learning how to use
THEM to build shared libs on cygwin, since that knowledge will apply to
a much larger class of candidate packages.

For a simple, basic example, take a look at jpeg (the newer versions, 8b
and above, use the autotools; prior to that they used...well, nevermind.
It used to be very strange.)

http://mirrors.kernel.org/sourceware/cygwin/release/jpeg/jpeg-8b-1-src.tar.bz2

--
Chuck

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]