X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Message-ID: <4CB5EB18.6060708@cwilson.fastmail.fm> Date: Wed, 13 Oct 2010 13:23:36 -0400 From: Charles Wilson Reply-To: Charles Wilson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Finding the SONAME for bzip2 References: <728415 DOT 12131 DOT qm AT web25503 DOT mail DOT ukl DOT yahoo DOT com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com 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