aboutsummaryrefslogtreecommitdiff
path: root/Makefile (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Finish branches.html and setup i18n of manpages and HTML stringsEuAndreh2025-05-111-8/+35
|
* Make: Use $< over $?EuAndreh2025-05-041-1/+1
|
* Switch from POSIX sh to GoEuAndreh2025-05-021-24/+87
|
* WIP: Commit sh code as-isEuAndreh2025-05-021-0/+18
|
* Makefile: Clean-up old stuffEuAndreh2025-05-021-94/+53
|
* mEuAndreh2025-01-061-8/+8
|
* mEuAndreh2025-01-061-2/+19
|
* Cleanup repo, reinit in shEuAndreh2023-04-141-41/+3
|
* src/gistatic.in: Initial sh versionEuAndreh2021-09-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got a bit frustrated that libgit2 didn't offer an API or "git archive" commands. I started implementing generating tarballs from scratch in src/tar.c and I'm quite liking it: the specification is very small, and the code can be very simple, since all I'm doing is writing fresh tarballs, and not reading or updating them. However I felt a bit locked-in to libgit2 itself, and what a detour from my original goal that is, and the question "what should libgit2 provide" came up to my mind. This made me realize that libgit2 is playing catch-up with Git itself, for as long as Git doesn't explicit has an explicit API, a standard, a public version of its internal libgit.a, or something like that. In fact, I'm locked in to Git, even. So even though a C version would probably be much faster, it wouldn't really have less dependencies, and that's what I'm actually optimising for: having the software be as portable as possible. On that front, C is unbeatable with sh as a close second. But the extreme portability of C aren't being fully exploited here: libgit2 does depend on non-POSIX things like CMake (and quick grep even shows references to -D_GNU_SOURCE!!), and Git's Makefile itself isn't POSIX at all. The point is: by depending on either Git or libgit2, I'm already loosing many selling points of writing the software in C, and sh becomes much more attractive. Had existed a common DVCS interface that could make me decouple gistatic from Git somehow I would insist a bit more in C, but now I'm switching to sh. The fact that I was able to get further with sh in one sitting than I did with C shows that a) I'm a bit less fluent in C than I would like (at least for now ^^) and b) that it is actually much simpler to do. I am quite satisfied with the quality of C code that I got so far. The error handling and propagation is pretty robust, and the implementation is very disciplined. I did most of the development with Valgrind, and other sanitizers would help even further, with some fuzzers on top.
* Makefile: Indent target dependenciesEuAndreh2021-09-071-3/+3
|
* Makefile: Generate src/config.h from src/config.h.inEuAndreh2021-09-051-14/+7
|
* Makefile: Add better .c.o inference ruleEuAndreh2021-09-021-0/+3
|
* Makefile: Make objects no depend on headers but on other objectsEuAndreh2021-08-311-6/+6
|
* Makefile: Change order of built artifact to reflect actual build orderEuAndreh2021-08-311-1/+3
|
* Makefile: Use libgistatic.a to build gistatic instead of the underlying objectsEuAndreh2021-08-281-3/+3
| | | | | | | | | This way I can make sure at least that all the objects that are required to exist on the library file are being included. However, this has no influence on what should and shouldn't be exposed in src/gistatic.h, and which functions ought to be public. This verification will remain unimplemented, at least for now.
* Makefile: Run integration (expensive) tests after unit and linter testsEuAndreh2021-08-281-1/+1
|
* Makefile: Use macros over globs on "clean" targetEuAndreh2021-08-281-1/+1
|
* Makefile: Remove bin, lib and include artifacts in "uninstall" targetEuAndreh2021-08-281-0/+4
|
* Makefile: Be more explicit about empty lines on the generated src/config.hEuAndreh2021-08-281-1/+2
|
* Makefile: Move libgistatic.a to the beginning, following the natural ↵EuAndreh2021-08-281-3/+3
| | | | progression of artifacts
* Makefile: Remove duplicate usage of $(CFLAGS), $(LDFLAGS) and $(LDLIBS)EuAndreh2021-08-281-3/+3
|
* aux/workflow/dist.sh: Be stricter with release pre-requisitesEuAndreh2021-08-281-2/+3
|
* Makefile: Add single quote around paths and namesEuAndreh2021-08-241-16/+16
|
* public/makefile.svg: Start generating it with makefile2graph and graphvizEuAndreh2021-08-231-1/+5
|
* src/: Move logerr* functions to src/logerr.{c,h}; forward tarballs_fd to ↵EuAndreh2021-08-231-8/+13
| | | | src/tar.c
* Rename src/gistatic.* src/lib.*EuAndreh2021-08-221-7/+7
|
* Have a single top-level main for running unit-testsEuAndreh2021-08-221-27/+37
| | | | | | | | | | | | | | | | | | | Instead of each .c file becoming a self-standing .t executable file, and being run for executing the unit tests local to the file, now each .c becomes a .to object (akin to a .o object, but one where the -DTEST flag is given to the compiler). After that, all the .to objects are linked together in a gistatic-tests executable, in a equivalent way that all .o files get linked together in a gistatic executable. This change was necessary in order to allow dependencies between objects. The next task will be making a tar of a repository tree checkout, and src/gistatic.{o,to} will start depending on src/tar.{o,to}. If each file has its own main function when -DTEST is given, then I wont be able to link them together. I took the opportunity that I had to change the Makefile, and I improved the dependency between targets and dependencies greatly. From what I can tell now, it is correct.
* Makefile: Run assert-catgets.sh for all C filesEuAndreh2021-08-211-1/+1
|
* src/tests-lib.c: Move testing helper function and share it with other filesEuAndreh2021-08-211-3/+3
|
* Makefile: Generate build samples before running the testsEuAndreh2021-08-201-1/+1
| | | | | This way even with failing tests one can see the interactive evolution of the generated HTML files.
* Makefile: Copy libgistatic.a and gistatic.h on "install" targetEuAndreh2021-08-201-3/+8
|
* Makefile: Adapt to multiple C sources, generate src/config.h and libgistatic.aEuAndreh2021-08-191-16/+40
|
* aux/workflow/installcheck.sh: Remove in favor of repocheck.shEuAndreh2021-08-191-8/+1
| | | | | Adjust Makefile accordingly, alre removing "installcheck" and "uninstallcheck" targets.
* Makefile: rm src/tar.t in "clean" targetEuAndreh2021-08-171-1/+1
|
* Makefile: Use CFLAGS_FINAL and LDLIBS_FINALEuAndreh2021-08-171-6/+4
| | | | | | | | This allows the caller to not only provide $(CFLAGS), but also override $(FINAL_CFLAGS). This accomplishes a similar behaviour to "CFLAGS += ...", but now allowing the caller to discard the appended flags too.
* Makefile: Fix $(MANPREFIX) pathEuAndreh2021-08-171-1/+1
|
* Add stub src/tar.cEuAndreh2021-08-071-1/+2
|
* mv aux/assert-catgets.sh tests/assert-catgets.shEuAndreh2021-08-061-1/+1
|
* mv aux/workflow/manpages.sh doc/manpages.shEuAndreh2021-08-061-3/+3
|
* tests/: Add integration tests, also test with ValgrindEuAndreh2021-08-051-12/+3
|
* Move tests/resources{ => /repositories}/repo*EuAndreh2021-08-051-5/+6
|
* Makefile: Add "c-dev-check" target with ValgrindEuAndreh2021-08-051-1/+12
|
* Use .git symlink to simplify testing of embedded repositoriesEuAndreh2021-08-051-1/+6
|
* aux/assert-catgets.sh: Add, include in "check" target on Makefile; update ↵EuAndreh2021-08-021-0/+1
| | | | gistatic.msg
* Makefile: Add -lgit2 flagEuAndreh2021-07-311-4/+6
|
* Re-setup repository using C over RustEuAndreh2021-07-271-35/+78
|
* Makefile: Stop using gzipEuAndreh2021-06-121-1/+1
|
* Makefile: Use $(NAME)EuAndreh2021-06-041-7/+7
|
* Update Makefile for RustEuAndreh2021-05-311-21/+12
|
* Add Perl::Critic and B::LintEuAndreh2021-03-081-0/+2
|