diff --git a/.envrc b/.envrc index fc35e69..a949951 100644 --- a/.envrc +++ b/.envrc @@ -1,73 +1,55 @@ # -*- mode: sh; -*- -# Thanks -export_function() -{ - local name=$1 - local alias_dir=$PWD/.direnv/aliases - mkdir -p "$alias_dir" - PATH_add "$alias_dir" - local target="$alias_dir/$name" - if declare -f "$name" >/dev/null; then - echo "#!$SHELL" > "$target" - declare -f "$name" >> "$target" 2>/dev/null - # Notice that we add shell variables to the function trigger. - echo "$name \$*" >> "$target" - chmod +x "$target" - fi -} -use_guix() -{ - # Recreate a garbage collector root. - gcroots="$HOME/.config/guix/gcroots" - mkdir -p "$gcroots" - gcroot="$gcroots/guix" - if [ -L "$gcroot" ] - then - rm -v "$gcroot" - fi +export CC=gcc CXX="g++ -fdiagnostics-color=always" - # Miscellaneous packages. - ENVIRONMENTS=( - weechat # Debug runs - profanity # Test - ) +# Miscellaneous packages. +ENVIRONMENTS=( + weechat # Debug runs + profanity # Test +) - # Environment packages. - PACKAGES=( - profanity # Test - autoconf # Deps with autoreconf - autoconf-archive # Deps with m4 tooling - automake # Deps with automake - libtool # Deps with libtool - make # Makefile and deps with makefiles - cmake # Deps with cmake - gcc-toolchain@11 # Compilation - pkg-config # Deps configuration and configuration of deps deps - patchelf # Fix linkage (guix) - bear # Generate compile_commands.json for language servers - universal-ctags # Generate tags (make tags) - weechat # Weechat includes - libxml2 # Dep (libxml2) - libstrophe # Dep (strophe) - libgcrypt # Dep (gcrypt) - lmdb # Dep (lmdb) - rnp # Dep (rnpgp) - libsignal-protocol-c -l libomemo.scm # Dep (libsignal) - ) +# Environment packages. +PACKAGES=( + profanity # Test + autoconf # Deps with autoreconf + autoconf-archive # Deps with m4 tooling + automake # Deps with automake + libtool # Deps with libtool + make # Deps with makefiles + cmake # Deps with cmake + doctest # Testing + gcc-toolchain@10 # Compilation + pkg-config # Deps configuration and configuration of deps deps + patchelf # Fix linkage (guix) + bear # Generate compile_commands.json for language servers + universal-ctags # Generate tags (make tags) + weechat # Weechat includes + libxml2 # Dep (libxml2) + libstrophe # Dep (strophe) + libgcrypt # Dep (gcrypt) + libsignal-protocol-c -l libomemo.scm # Dep (libsignal) + lmdb lmdbxx # Dep (lmdb) + rnp # Dep (rnpgp) +) - # Thanks - eval "$(guix environment --search-paths --root="$gcroot" ${ENVIRONMENTS[@]} --ad-hoc ${PACKAGES[@]} "$@")" +echo direnv: fetching source - weechat +mkdir -p /tmp/guix-build-weechat-3.2.drv-0 +tar -C /tmp/guix-build-weechat-3.2.drv-0 -xJf $(guix build --source weechat) - export CC=gcc -} +echo direnv: fetching source - libomemo-c +mkdir -p /tmp/guix-build-libomemo-c-2.3.3.drv-0 +ln -sf $(guix build --source -f libomemo.scm) /tmp/guix-build-libomemo-c-2.3.3.drv-0 + +echo direnv: fetching source - lmdb +ln -sf $(guix build --source lmdb)/libraries/liblmdb/mdb.c mdb.c use guix \ + ${ENVIRONMENTS[@]} --ad-hoc ${PACKAGES[@]} \ --with-debug-info=profanity\ - --with-debug-info=weechat\ - --with-debug-info=libstrophe\ - --with-debug-info=libsignal-protocol-c\ + --with-debug-info=weechat \ + --with-debug-info=libstrophe \ + --with-debug-info=libsignal-protocol-c \ --with-debug-info=libomemo-c\ - --with-debug-info=lmdb\ - --with-debug-info=rnp\ - clang:extra gdb lmdb + --with-debug-info=lmdb \ + --with-debug-info=rnp \ + clang clang:extra ccls gdb diff --git a/.gitignore b/.gitignore index 0a32016..3ca5841 100644 --- a/.gitignore +++ b/.gitignore @@ -47,11 +47,5 @@ cscope* *.idb *.pdb -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf +# Symbolic links +mdb.c