tools

various tools
git clone git://deadbeef.fr/tools.git
Log | Files | Refs | README | LICENSE

README (1829B)


      1 This tool merges sequential entries if they have some fields with same values.
      2 
      3 USAGE:
      4 
      5 See lmerge.1.md
      6 
      7 DEPENDENCIES:
      8 
      9 * a C++ compiler (clang and g++ have been tested);
     10 * pandoc to build man-page;
     11 
     12 This is a work in progress tool, but it works for me.
     13 
     14 BUILD OPTIONS:
     15 
     16 There are several '#define' that can affect the build process:
     17 
     18 * WITH_STL: do not use home-made vector implementation. This will drastically
     19   increase the size of the binary, though (~25Kio).
     20 * NO_CMDLINE: do not build support for command-line switches except the '--help'
     21   communator. This will reduce the size of the binary (~9Kio).
     22 
     23 Those options can be set using the CXXFLAGS environment variable, for example:
     24 
     25 CXXFLAGS="$CXXFLAGS -DNO_CMDLINE" make
     26 
     27 COMPACT BUILD:
     28 
     29 It is possible to build a statically linked binary, but the invocation will be
     30 different depending on your OS and requires alternate tools.
     31 Even on Debian, the invocation may differ a lot between major versions, for
     32 example it's more hackish un current stable (Buster) than it was in old-stable
     33 (Stretch), especially with the include paths.
     34 On Debian buster, I do this for example (beware, every single change can break
     35 the build):
     36 
     37 clang++ -o lmerge \
     38   lmerge.cpp /usr/lib/x86_64-linux-musl/crt1.o \
     39   -Os -nostdlib -static -fno-exceptions -stdlib=libc++ -nobuiltininc -nostdinc++ \
     40   -L /usr/lib/x86_64-linux-musl  \
     41   -lpthread -lc \
     42   -I /usr/lib/llvm-7/include/c++/v1/ \
     43 	-I /usr/include/x86_64-linux-musl/ \
     44 	-D LIBCPP_MUSL_STATIC
     45 
     46 The resulting binary is bigger than the output of `make` (on this system,
     47 stripped dynamic linking gives a 19Kio binary, stripped static gives a 38Kio one)
     48 but does not imply to install the dynamic libraries, which are, here, around
     49 2Mio for libstdc++ and 850Kio for libc++.
     50 One of the points of doing so would be to use this tool in a chroot.