summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Release 3.0.13.0.1Tavian Barnes2023-07-181-1/+1
|
* build: Move some flags aroundTavian Barnes2023-07-131-4/+4
|
* docs: Start preparing for the 3.0 releaseTavian Barnes2023-06-301-1/+1
|
* build/tsan: Fix target_clones overrideTavian Barnes2023-06-241-1/+1
|
* Unify macro naming conventionsTavian Barnes2023-06-241-10/+10
| | | | | In particular, macros that decide whether to use a particular API/ dependency should be spelled BFS_USE_*, and should be configurable.
* alloc: New header for memory allocation utilitiesTavian Barnes2023-06-201-1/+2
|
* build: Turn off ASLR for all sanitizers on FreeBSDTavian Barnes2023-06-201-1/+1
| | | | | | | | Newer LLVM versions will reject every sanitizer runtime if ASLR is enabled. Link: https://reviews.llvm.org/D66582 Link: https://reviews.freebsd.org/D33933
* ioq: Implement an async I/O queueTavian Barnes2023-06-121-0/+1
|
* lock: Add wrappers for POSIX synchronization primitivesTavian Barnes2023-06-121-1/+2
|
* build: Update to C17Tavian Barnes2023-06-121-1/+1
| | | | This lets us avoid ATOMIC_VAR_INIT().
* build: Add tsan to distcheckTavian Barnes2023-06-121-0/+4
|
* build: Error on implicit function declarationsTavian Barnes2023-05-181-0/+1
|
* bit: Rename int.h to bit.hTavian Barnes2023-05-181-1/+1
|
* build: Fix test utility compilationTavian Barnes2023-05-161-2/+4
|
* int: Backport C23's _WIDTH macrosTavian Barnes2023-05-161-1/+1
|
* build: Make the tests a little less repetitiveTavian Barnes2023-05-161-18/+16
|
* Let musl builds use getdents64()Tavian Barnes2023-05-031-1/+2
| | | | | | Glibc exposes a different struct dirent and dirent64, while on musl they are the same. But musl needs _LARGEFILE64_SOURCE to expose the *64() aliases.
* build: Fix tsanTavian Barnes2023-04-121-33/+39
|
* list: Use macros instead of type-erased listsTavian Barnes2023-03-311-1/+0
|
* list: New generic linked list APITavian Barnes2023-03-291-0/+1
|
* Release 2.6.32.6.3Tavian Barnes2023-01-311-1/+1
|
* Replace license boilerplate with SPDX tagsTavian Barnes2023-01-251-15/+2
| | | | | | | And while I'm at it, remove years from copyright declarations. Link: https://spdx.dev/about/ Link: https://daniel.haxx.se/blog/2023/01/08/copyright-without-years/
* bfstd: New wrappers for dirname()/basename()Tavian Barnes2023-01-191-4/+9
|
* build: New $(LIBBFS) variable shared between the main binary and testsTavian Barnes2023-01-191-40/+44
|
* Turn on more aggressive format string warningsTavian Barnes2022-12-091-2/+3
|
* distcheck: Add ubsan to msan buildTavian Barnes2022-11-111-1/+1
|
* tests/xtouch: New utilityTavian Barnes2022-11-071-2/+8
| | | | | | POSIX touch(1) doesn't include the -h option, and indeed OpenBSD doesn't implement it. Making our own utility also lets us add some handy extensions like -p (create parents) and -M (set permissions).
* bfstd: Rename from util and reorganize itTavian Barnes2022-11-061-1/+1
|
* util: Get rid of BFS_HAS_INCLUDE() wrapper for __has_include()Tavian Barnes2022-11-061-3/+3
| | | | | | | | | Since __has_include() needs special preprocessing rules (e.g. not expanding `linux` in `__has_include(<linux/stat.h>)`, macros that expand to __has_include() do not necessarily behave correctly. Instead, we have to directly test `#if __has_include(...)`. See https://bugs.llvm.org/show_bug.cgi?id=37990 for more details.
* Release 2.6.22.6.2Tavian Barnes2022-10-211-1/+1
|
* Release 2.6.12.6.1Tavian Barnes2022-07-051-1/+1
|
* Add fish completionGustavo Costa2022-06-141-0/+3
|
* Makefile: Pass -std=gnu11 for gcov buildsTavian Barnes2022-05-311-0/+2
| | | | | | | Otherwise, libgcov doesn't intercept functions like fork() and exec(), so we lose some coverage data in xspawn.c. Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82457
* Release 2.62.6Tavian Barnes2022-05-211-1/+1
|
* Makefile: Add a BUILDDIR variable for out-of-tree buildsTavian Barnes2022-05-201-51/+55
| | | | bfs can now be built from a read-only source tree.
* Makefile: Split build into bin and obj directoriesTavian Barnes2022-05-161-54/+52
| | | | | This also moves the main binary from ./bfs to ./bin/bfs, and ./tests.sh to ./tests/tests.sh, with the goal of keeping the repository root clean.
* tests: Buffer standard error, and print it when tests failTavian Barnes2022-05-131-2/+2
|
* tests: Add --verbose={commands,errors,skipped,tests} optionsTavian Barnes2022-05-131-1/+1
|
* tests: Use skip_if for sudo testsTavian Barnes2022-05-121-4/+3
| | | | | | This lets us categorize the sudo tests properly, which fixes e.g. $ ./tests.sh --posix --sudo
* Makefile: Look for .d files in the right placesTavian Barnes2022-05-111-1/+1
| | | | Fixes: f2cb2215213c0d831a697b0b440f78d9ad5c2b83
* Makefile: New check-install targetTavian Barnes2022-05-091-0/+8
|
* docs: Move some documentation into a subfolderTavian Barnes2022-04-211-1/+1
|
* Add basic zsh completionArvid Norlander2022-04-211-0/+3
| | | | Fixes #32.
* Makefile: Put the main .o files under build/srcTavian Barnes2022-04-211-35/+31
|
* Makefile: Generate build/FLAGS.new with its own targetTavian Barnes2022-04-211-4/+7
|
* Makefile: Replace flags.sh with a two-line recipeTavian Barnes2022-04-191-1/+2
|
* Makefile: Move .flags to build/FLAGSTavian Barnes2022-04-191-6/+6
|
* Makefile: Quiet errors from git describeTavian Barnes2022-04-191-3/+5
| | | | | | | | | | | | | | | | With new git versions, it is an error to invoke git inside a repository owned by someone else. This manifested as $ sudo make install fatal: unsafe repository ('/home/tavianator/code/bfs' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory /home/tavianator/code/bfs Work around it with `2>/dev/null`. This should also help if git is not installed, but .git/ still exists. Link: https://github.blog/2022-04-12-git-security-vulnerability-announced/
* Makefile: Spread out the .PHONY targetsTavian Barnes2022-04-181-2/+9
|
* Makefile: Use a recipe to update .flags rather than $(shell)Tavian Barnes2022-04-181-8/+4
| | | | | | | | | This means we don't need to generate .flags unless we're actually building a target that needs it, which is important for thing like $ sudo make install that used to inconveniently create a root-owned .flags file.