On 2010-01-10 13:16 +0100, Craig Small wrote:

> Hello,
>   I'm part of the group taking over the maintenance of ncurses packages
> within Debian.  I noticed your comments at 
> http://bugs.debian.org/556378 about the static libraries and configure
> flags.
>
> Currently we build the libraries using --with-shared which, I believe,
> makes both the static and shared libraries.  However to use
> --without-dlsym ONLY on static library build we would have the split the 
> two, is that right? Something like
> ./configure --with-shared --without-normal ..etc...
> make and install somewhere (makes shared libraries with dlsym)
> ./configure --without-dlsym ...etc..
> make and install somewhere (makes static libraries without dlsym)
>
> Is this what you meant by this flag? It will mean doubling the number of
> builds but there are a fair few already.

It is not quite that bad as doubling the number of builds since some of
them are already done with --without-gpm.  Here is a patch that adds two
new build targets and installs the resulting *.a files directly into
libncurses{w,}5-dev:

--8<---------------cut here---------------start------------->8---
diff --git a/debian/libncurses5-dev.install b/debian/libncurses5-dev.install
index 37ad120..2408d16 100644
--- a/debian/libncurses5-dev.install
+++ b/debian/libncurses5-dev.install
@@ -4,10 +4,5 @@ usr/lib/libtic.so
 usr/lib/libform.so
 usr/lib/libmenu.so
 usr/lib/libpanel.so
-usr/lib/libncurses.a
-usr/lib/libncurses++.a
-usr/lib/libtic.a
-usr/lib/libform.a
-usr/lib/libmenu.a
-usr/lib/libpanel.a
+obj-static/lib/*.a usr/lib
 usr/share/man/man3
diff --git a/debian/libncursesw5-dev.install b/debian/libncursesw5-dev.install
index c6a4496..b8af06d 100644
--- a/debian/libncursesw5-dev.install
+++ b/debian/libncursesw5-dev.install
@@ -4,9 +4,4 @@ usr/lib/libticw.so
 usr/lib/libformw.so
 usr/lib/libmenuw.so
 usr/lib/libpanelw.so
-usr/lib/libncursesw.a
-usr/lib/libncurses++w.a
-usr/lib/libticw.a
-usr/lib/libformw.a
-usr/lib/libmenuw.a
-usr/lib/libpanelw.a
+obj-wide-static/lib/*.a usr/lib
diff --git a/debian/rules b/debian/rules
index 34d9fff..971a9c1 100755
--- a/debian/rules
+++ b/debian/rules
@@ -32,9 +32,11 @@ fulltempdir=$(workdir)/$(tempdir)
 
 srcdir=$(shell pwd)
 objdir=$(srcdir)/obj
+objdir-static=$(srcdir)/obj-static
 objdir-32=$(srcdir)/obj-32
 objdir-64=$(srcdir)/obj-64
 wobjdir=$(srcdir)/obj-wide
+wobjdir-static=$(srcdir)/obj-wide-static
 wobjdir-32=$(srcdir)/obj-wide-32
 objdir-debug=$(srcdir)/obj-debug
 wobjdir-debug=$(srcdir)/obj-wide-debug
@@ -130,6 +132,15 @@ $(objdir)/config.status: $(QUILT_STAMPFN)
                --with-install-prefix=$(fulltempdir) \
                --enable-overwrite
 
+$(objdir-static)/config.status: $(QUILT_STAMPFN)
+       test -d $(objdir-static) || mkdir $(objdir-static)
+       cd $(objdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
+               $(CONFARGS) \
+               --without-shared
+               --without-dlsym
+               --with-install-prefix=$(fulltempdir) \
+               --enable-overwrite
+
 $(objdir-32)/config.status: $(QUILT_STAMPFN)
        test -d $(objdir-32) || mkdir $(objdir-32)
 
@@ -175,6 +186,15 @@ $(wobjdir)/config.status: $(QUILT_STAMPFN)
                --with-install-prefix=$(fulltempdir) \
                --disable-overwrite --enable-widec
 
+$(wobjdir-static)/config.status: $(QUILT_STAMPFN)
+       test -d $(wobjdir-static) || mkdir $(wobjdir-static)
+       cd $(wobjdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
+               $(CONFARGS) \
+               --without-shared
+               --without-dlsym
+               --with-install-prefix=$(fulltempdir) \
+               --enable-overwrite --enable-widec
+
 $(wobjdir-debug)/config.status: $(QUILT_STAMPFN)
        test -d $(wobjdir-debug) || mkdir $(wobjdir-debug)
        cd $(wobjdir-debug) && \
@@ -198,8 +218,8 @@ $(wobjdir-32)/config.status: $(QUILT_STAMPFN)
                --libdir=$(usr_lib32)
 
 
-build: build-normal build-wide build-debug build-wide-debug \
-       $(build_64) $(build_32)
+build: build-normal build-static build-wide build-debug build-wide-debug \
+       build-wide-static $(build_64) $(build_32)
 
        touch $@
 
@@ -207,6 +227,10 @@ build-normal: $(objdir)/config.status
        cd $(objdir) && $(MAKE)
        touch $@
 
+build-static: $(objdir-static)/config.status
+       cd $(objdir-static) && $(MAKE)
+       touch $@
+
 build-32: $(objdir-32)/config.status
        cd $(objdir-32) && $(MAKE)
        touch $@
@@ -223,6 +247,10 @@ build-wide: $(wobjdir)/config.status
        cd $(wobjdir) && $(MAKE)
        touch $@
 
+build-wide-static: $(wobjdir-static)/config.status
+       cd $(wobjdir-static) && $(MAKE)
+       touch $@
+
 build-wide-32: $(wobjdir-32)/config.status
        cd $(wobjdir-32) && $(MAKE)
        touch $@
@@ -235,14 +263,16 @@ clean: unpatch
        dh_testdir
        rm -f build
        rm -rf $(objdir)
+       rm -rf $(objdir-static)
        rm -rf $(objdir-32)
        rm -rf $(objdir-64)
        rm -rf $(wobjdir)
+       rm -rf $(wobjdir-static)
        rm -rf $(wobjdir-32)
        rm -rf $(objdir-debug)
        rm -rf $(wobjdir-debug)
-       rm -f build-normal build-wide build-debug build-wide-debug \
-               $(build_32) $(build_64)
+       rm -f build-normal build-static build-wide build-debug build-wide-debug 
\
+               build-wide-static $(build_32) $(build_64)
        rm -f debian/shlibs.local
        dh_clean
 
--8<---------------cut here---------------end--------------->8---

If there are no objections, I can push this to our git repository.
Do you think it would be necessary to do something similar for the debug
libraries (I would rather say not) ?

Sven



-- 
To UNSUBSCRIBE, email to debian-qa-packages-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87iqa0asmj....@turtle.gmx.de

Reply via email to