* Sun May 28 2006 Luca Berra <bluca@vodka.it> * Thu Sep 30 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> static libraries should be installed even if we do not build static dmsetup add dietlibc version of dmsetup and static libraries allow building of static, dynamic and dietlibc at the same time diff -p -up device-mapper.1.02.24/dmeventd/Makefile.in.build device-mapper.1.02.24/dmeventd/Makefile.in --- device-mapper.1.02.24/dmeventd/Makefile.in.build 2007-08-21 16:26:06.000000000 +0000 +++ device-mapper.1.02.24/dmeventd/Makefile.in 2008-01-23 11:09:04.000000000 +0000 @@ -42,9 +42,7 @@ dmeventd: $(LIB_SHARED) dmeventd.o INSTALL_TYPE = install_dynamic -ifeq ("@STATIC_LINK@", "yes") - INSTALL_TYPE += install_static -endif +INSTALL_TYPE += install_static ifeq ("@PKGCONFIG@", "yes") INSTALL_TYPE += install_pkgconfig diff -p -up device-mapper.1.02.24/lib/Makefile.in.build device-mapper.1.02.24/lib/Makefile.in --- device-mapper.1.02.24/lib/Makefile.in.build 2007-10-03 10:48:27.000000000 +0000 +++ device-mapper.1.02.24/lib/Makefile.in 2008-01-23 11:15:18.000000000 +0000 @@ -46,22 +46,28 @@ VERSIONED_SHLIB = libdevmapper.$(LIB_SUF DEFS += -DDEVICE_UID=@DEVICE_UID@ -DDEVICE_GID=@DEVICE_GID@ \ -DDEVICE_MODE=@DEVICE_MODE@ +ifeq ("@STATIC_LINK_DIET@", "yes") + LIB_STATIC_DIET = $(interface)/libdevmapper-diet.a +endif + include ../make.tmpl .PHONY: install_dynamic install_static install_include \ install_ioctl install_ioctl_static \ - install_pkgconfig + install_pkgconfig install_static_diet INSTALL_TYPE = install_dynamic -ifeq ("@STATIC_LINK@", "yes") - INSTALL_TYPE += install_static -endif +INSTALL_TYPE += install_static ifeq ("@PKGCONFIG@", "yes") INSTALL_TYPE += install_pkgconfig endif +ifeq ("@STATIC_LINK_DIET@", "yes") + INSTALL_TYPE += install_static_diet +endif + install: $(INSTALL_TYPE) install_include install_include: @@ -75,6 +81,9 @@ install_dynamic: install_@interface@ install_static: install_@interface@_static $(LN_S) -f libdevmapper.a.$(LIB_VERSION) $(libdir)/libdevmapper.a +install_static_diet: install_@interface@_static_diet + $(LN_S) -f libdevmapper-diet.a.$(LIB_VERSION) $(libdir)/libdevmapper-diet.a + install_ioctl: ioctl/libdevmapper.$(LIB_SUFFIX) $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \ $(libdir)/libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) @@ -91,6 +100,10 @@ $(VERSIONED_SHLIB): %.$(LIB_SUFFIX).$(LI rm -f $@ $(LN_S) $< $@ +install_ioctl_static_diet: ioctl/libdevmapper-diet.a + $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \ + $(libdir)/libdevmapper-diet.a.$(LIB_VERSION) + .PHONY: distclean_lib distclean distclean_lib: diff -p -up device-mapper.1.02.24/configure.in.build device-mapper.1.02.24/configure.in --- device-mapper.1.02.24/configure.in.build 2007-10-10 00:02:03.000000000 +0000 +++ device-mapper.1.02.24/configure.in 2008-01-23 11:09:04.000000000 +0000 @@ -199,6 +199,11 @@ AC_ARG_ENABLE(static_link, [ --enable-s statically. Default is dynamic linking], STATIC_LINK=$enableval, STATIC_LINK=no) ################################################################################ +dnl -- Enables staticly-linked tools built with dietlibc +AC_ARG_ENABLE(static_link_dietlibc, [ --enable-static_link_dietlibc Use this create tools and libraries statically + linked with dietlibc. Default does not create dietlibc versions.], STATIC_LINK_DIET=$enableval, STATIC_LINK_DIET=no) + +################################################################################ dnl -- Clear default exec_prefix - install into /sbin rather than /usr/sbin if [[ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ]]; then exec_prefix=""; @@ -400,6 +405,7 @@ fi AC_SUBST(usrlibdir) AC_SUBST(JOBS) AC_SUBST(STATIC_LINK) +AC_SUBST(STATIC_LINK_DIET) AC_SUBST(OWNER) AC_SUBST(GROUP) AC_SUBST(LIBS) diff -p -up device-mapper.1.02.24/make.tmpl.in.build device-mapper.1.02.24/make.tmpl.in diff -p -up device-mapper.1.02.24/dmsetup/Makefile.in.build device-mapper.1.02.24/dmsetup/Makefile.in --- device-mapper.1.02.24/dmsetup/Makefile.in.build 2007-08-21 20:32:30.000000000 +0000 +++ device-mapper.1.02.24/dmsetup/Makefile.in 2008-01-23 11:12:31.000000000 +0000 @@ -21,12 +21,17 @@ INSTALL_TYPE = install_dynamic LIB_PTHREAD = @LIB_PTHREAD@ ifeq ("@STATIC_LINK@", "yes") - TARGETS += dmsetup.static + TARGETS += dmsetup-static INSTALL_TYPE += install_static endif + +ifeq ("@STATIC_LINK_DIET@", "yes") + TARGETS += dmsetup-static-diet + INSTALL_TYPE += install_static_diet +endif SOURCES = dmsetup.c -CLEAN_TARGETS = dmsetup dmsetup.static +CLEAN_TARGETS = dmsetup dmsetup-static dmsetup-static-diet include ../make.tmpl @@ -34,11 +39,15 @@ dmsetup: $(OBJECTS) $(interfacedir)/libd $(CC) -o $@ $(OBJECTS) $(CFLAGS) $(LDFLAGS) \ -L$(interfacedir) -L$(DESTDIR)/lib -ldevmapper $(LIBS) -dmsetup.static: $(OBJECTS) $(interfacedir)/libdevmapper.a +dmsetup-static: $(OBJECTS) $(interfacedir)/libdevmapper.a $(CC) -o $@ $(OBJECTS) $(CFLAGS) $(LDFLAGS) -static \ -L$(interfacedir) -L$(DESTDIR)/lib -ldevmapper $(LIBS) \ $(LIB_PTHREAD) +dmsetup-static-diet: $(DIET_OBJECTS) $(interfacedir)/libdevmapper-diet.a + diet $(CC) -o $@ $(DIET_OBJECTS) $(LDFLAGS) -static \ + -L$(interfacedir) -L$(DESTDIR)/lib -ldevmapper-diet -lcompat $(LIBS) + install: $(INSTALL_TYPE) .PHONY: install_dynamic install_static @@ -46,6 +55,9 @@ install: $(INSTALL_TYPE) install_dynamic: dmsetup $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$< -install_static: dmsetup.static +install_static: dmsetup-static + $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$< + +install_static_diet: dmsetup-static-diet $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$< --- device-mapper.1.02.24/make.tmpl.in.build 2007-10-03 10:48:27.000000000 +0000 +++ device-mapper.1.02.24/make.tmpl.in 2008-01-23 11:14:46.000000000 +0000 @@ -58,7 +58,9 @@ endif .SUFFIXES: .c .d .o .so .a .po .pot .mo .dylib -CFLAGS += -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline +PIC = -fPIC + +CFLAGS += -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline #CFLAGS += -W -Wconversion -Wpointer-arith -Wredundant-decls -Wbad-function-cast -Wcast-qual -Wmissing-noreturn @@ -68,6 +70,7 @@ ifeq ("@DEBUG@", "yes") CFLAGS += -g -fno-omit-frame-pointer DEFS += -DDEBUG DEFS += -DDEBUG_MEM + LDFLAGS += -g endif ifeq ("@INTL@", "yes") @@ -112,7 +115,10 @@ INC_LNS = $(top_srcdir)/include/.symlink DEPS = $(top_srcdir)/make.tmpl $(top_srcdir)/VERSION Makefile $(INC_LNS) OBJECTS = $(SOURCES:%.c=%.o) +PIC_OBJECTS = $(SOURCES:%.c=%.pic.o) +DIET_OBJECTS = $(SOURCES:%.c=%.diet.o) POTFILES = $(SOURCES:%.c=%.pot) +DEPFILES = $(SOURCES:%.c=%.d) SUBDIRS.install := $(SUBDIRS:=.install) SUBDIRS.pofile := $(SUBDIRS:=.pofile) @@ -123,7 +129,7 @@ SUBDIRS.distclean := $(SUBDIRS:=.distcle .PHONY: $(SUBDIRS) $(SUBDIRS.install) $(SUBDIRS.clean) $(SUBDIRS.distclean) .PHONY: $(SUBDIRS.pofile) -TARGETS += $(LIB_SHARED) $(LIB_STATIC) $(VERSIONED_SHLIB) +TARGETS += $(LIB_SHARED) $(LIB_STATIC) $(VERSIONED_SHLIB) $(LIB_STATIC_DIET) all: $(SUBDIRS) $(TARGETS) @@ -153,6 +159,12 @@ $(TARGETS): $(OBJECTS) %.o: %.c $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $< -o $@ +%.pic.o: %.c + $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(PIC) $< -o $@ + +%.diet.o: %.c + diet $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(PIC) $< -o $@ + %.pot: %.c Makefile $(CC) -E $(INCLUDES) -include $(top_srcdir)/include/pogen.h \ $(DEFS) $(CFLAGS) $< > $@ @@ -161,21 +173,27 @@ $(TARGETS): $(OBJECTS) $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $< -o $@ ifeq ("@LIB_SUFFIX@","so") -$(LIB_SHARED): $(OBJECTS) $(LDDEPS) +$(LIB_SHARED): $(PIC_OBJECTS) $(LDDEPS) $(CC) -shared -Wl,-soname,$(notdir $@).$(LIB_VERSION) \ - $(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@ + $(CFLAGS) $(CLDFLAGS) $(PIC_OBJECTS) $(LIBS) -o $@ endif ifeq ("@LIB_SUFFIX@","dylib") -$(LIB_SHARED): $(OBJECTS) $(LDDEPS) +$(LIB_SHARED): $(PIC_OBJECTS) $(LDDEPS) $(CC) -dynamiclib -dylib_current_version,$(LIB_VERSION) \ - $(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@ + $(CFLAGS) $(CLDFLAGS) $(PIC_OBJECTS) $(LIBS) -o $@ endif $(LIB_STATIC): $(OBJECTS) $(RM) $@ $(AR) rs $@ $(OBJECTS) +ifeq ("@STATIC_LINK_DIET@", "yes") +$(LIB_STATIC_DIET): $(DIET_OBJECTS) + $(RM) $@ + $(AR) rs $@ $(DIET_OBJECTS) +endif + %.d: %.c set -e; \ FILE=`echo $@ | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \ @@ -188,12 +206,12 @@ $(LIB_STATIC): $(OBJECTS) $(MSGFMT) -o $@ $< clean: $(SUBDIRS.clean) - $(RM) $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \ - $(SOURCES:%.c=%.pot) $(LDDEPS) + $(RM) $(OBJECTS) $(PIC_OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(DEPFILES) \ + $(POTFILES) $(LDDEPS) $(DIET_OBJECTS) distclean: $(SUBDIRS.distclean) - $(RM) $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \ - $(SOURCES:%.c=%.pot) $(LDDEPS) \ + $(RM) $(OBJECTS) $(PIC_OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(DEPFILES) \ + $(POTFILES) $(LDDEPS) $(DIET_OBJECTS) \ config.cache config.log config.status \ Makefile make.tmpl core \ device-mapper.po