* Introduce --enable-static-progs switch to allow for conditional building of static binaries. * Fix linking order of static binaries * Add diff for generated configure to avoid depending on autotools https://bugs.gentoo.org/show_bug.cgi?id=178718 Patch written by Kacper Kowalik --- a/configure.in +++ b/configure.in @@ -351,6 +351,24 @@ AC_MSG_RESULT([Disabling BSD shared libraries by default]) AC_SUBST(BSDLIB_CMT) AC_SUBST_FILE(MAKEFILE_BSDLIB) dnl +dnl handle --enable-static-progs +dnl +AC_ARG_ENABLE([static-progs], +[ --enable-static-progs build static binaries], +if test "$enableval" = "no" +then + STATICBIN_CMT=# + AC_MSG_RESULT([Disabling static binaries]) +else + STATICBIN_CMT= + AC_MSG_RESULT([Building static binaries]) +fi +, +STATICBIN_CMT=# +AC_MSG_RESULT([Disabling static binaries by default]) +) +AC_SUBST(STATICBIN_CMT) +dnl dnl handle --enable-profile dnl AC_ARG_ENABLE([profile], --- a/e2fsck/Makefile.in +++ b/e2fsck/Makefile.in @@ -12,6 +12,7 @@ INSTALL = @INSTALL@ @MCONFIG@ PROGS= e2fsck +@STATICBIN_CMT@PROGS+= e2fsck.static MANPAGES= e2fsck.8 FMANPAGES= e2fsck.conf.5 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -28,6 +28,8 @@ INSTALL = @INSTALL@ SPROGS= mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \ $(E2IMAGE_PROG) @FSCK_PROG@ e2undo +@STATICBIN_CMT@SPROGS+= tune2fs.static mke2fs.static @BLKID_CMT@$(BLKID_PROG).static + USPROGS= mklost+found filefrag e2freefrag $(UUIDD_PROG) $(E4DEFRAG_PROG) SMANPAGES= tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \ e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \ @@ -161,8 +163,8 @@ tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBBLKID) \ tune2fs.static: $(TUNE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBBLKID) $(E) " LD $@" $(Q) $(CC) $(LDFLAGS_STATIC) -o tune2fs.static $(TUNE2FS_OBJS) \ - $(STATIC_LIBS) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \ - $(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(LIBINTL) + $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \ + $(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(LIBINTL) $(STATIC_LIBS) tune2fs.profiled: $(PROFILED_TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \ $(PROFILED_E2P) $(DEPPROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID) \ @@ -180,7 +182,7 @@ blkid: $(BLKID_OBJS) $(DEPLIBBLKID) $(LIBEXT2FS) blkid.static: $(BLKID_OBJS) $(STATIC_DEPLIBS) $(DEPSTATIC_LIBBLKID) $(E) " LD $@" - $(Q) $(CC) $(ALL_LDFLAGS) -o blkid.static $(BLKID_OBJS) $(STATIC_LIBS) \ + $(Q) $(CC) $(LDFLAGS_STATIC) -o blkid.static $(BLKID_OBJS) $(STATIC_LIBS) \ $(STATIC_LIBBLKID) $(LIBINTL) blkid.profiled: $(PROFILED_BLKID_OBJS) $(DEPPROFILED_LIBBLKID) \ @@ -238,7 +240,7 @@ mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) $(LIBE2P) $(DEPLIBBLKID) $(DEPLIBUUID) \ mke2fs.static: $(MKE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBUUID) \ $(DEPSTATIC_LIBQUOTA) $(DEPSTATIC_LIBBLKID) $(E) " LD $@" - $(Q) $(CC) $(ALL_LDFLAGS) -static -o mke2fs.static $(MKE2FS_OBJS) \ + $(Q) $(CC) $(LDFLAGS_STATIC) -o mke2fs.static $(MKE2FS_OBJS) \ $(STATIC_LIBQUOTA) $(STATIC_LIBS) $(STATIC_LIBE2P) \ $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL) --- a/resize/Makefile.in +++ b/resize/Makefile.in @@ -13,6 +13,7 @@ LDFLAG_STATIC = @LDFLAG_STATIC@ @MCONFIG@ PROGS= resize2fs +@STATICBIN_CMT@PROGS+= resize2fs.static TEST_PROGS= test_extent MANPAGES= resize2fs.8 @@ -45,7 +46,7 @@ resize2fs: $(RESIZE_OBJS) $(DEPLIBS) resize2fs.static: $(RESIZE_OBJS) $(DEPSTATIC_LIBS) $(E) " LD $@" - $(Q) $(LD) $(ALL_LDFLAGS) $(LDFLAG_STATIC) -o resize2fs.static \ + $(Q) $(LD) $(LDFLAGS_STATIC) -o resize2fs.static \ $(RESIZE_OBJS) $(STATIC_LIBS) resize2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/resize2fs.8.in --- a/configure +++ b/configure @@ -737,6 +737,7 @@ STATIC_LIB_EXT LIB_EXT CHECKER_CMT PROFILE_CMT +STATICBIN_CMT BSDLIB_CMT ELF_CMT HTREE_CMT @@ -833,6 +834,7 @@ enable_compression enable_htree enable_elf_shlibs enable_bsd_shlibs +enable_static_progs enable_profile enable_checker enable_jbd_debug @@ -1488,6 +1490,7 @@ Optional Features: --enable-htree enable EXPERIMENTAL htree directory support --enable-elf-shlibs select ELF shared libraries --enable-bsd-shlibs select BSD shared libraries + --enable-static-progs build static binaries --enable-profile build profiling libraries --enable-checker build checker libraries --enable-jbd-debug enable journal debugging @@ -4641,6 +4644,27 @@ fi +# Check whether --enable-static-progs was given. +if test "${enable_static_progs+set}" = set; then : + enableval=$enable_static_progs; if test "$enableval" = "no" +then + STATICBIN_CMT=# + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling static binaries" >&5 +$as_echo "Disabling static binaries" >&6; } +else + STATICBIN_CMT= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building static binaries" >&5 +$as_echo "Building static binaries" >&6; } +fi + +else + STATICBIN_CMT=# +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling static binaries by default" >&5 +$as_echo "Disabling static binaries by default" >&6; } + +fi + + # Check whether --enable-profile was given. if test "${enable_profile+set}" = set; then : enableval=$enable_profile; if test "$enableval" = "no"