vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit e2a5f6d6f9363daee145755a568407b50716be4e parent b8e48c9febafe16b42e0cd4671e1d3068148bce5 Author: Randy Palamar <palamar@ualberta.ca> Date: Sat, 29 Jul 2023 10:21:44 -0600 build: support incremental rebuilds Diffstat:
| M | .github/workflows/macos.yml | | | 1 | + |
| M | .github/workflows/ubuntu.yml | | | 1 | + |
| M | .github/workflows/windows.yml.NOACTIVE | | | 1 | + |
| M | .gitignore | | | 1 | + |
| M | Makefile | | | 24 | +++++++++++++++++------- |
| M | configure | | | 2 | +- |
6 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml @@ -18,6 +18,7 @@ jobs: runs-on: ${{ matrix.os }} env: CFLAGS_EXTRA: --coverage + LDFLAGS_EXTRA: --coverage steps: - name: Checkout diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml @@ -20,6 +20,7 @@ jobs: runs-on: ${{ matrix.os }} env: CFLAGS_EXTRA: --coverage + LDFLAGS_EXTRA: --coverage steps: - name: Checkout diff --git a/.github/workflows/windows.yml.NOACTIVE b/.github/workflows/windows.yml.NOACTIVE @@ -16,6 +16,7 @@ jobs: runs-on: ${{ matrix.os }} env: CFLAGS_EXTRA: --coverage + LDFLAGS_EXTRA: --coverage steps: - name: Dependency diff --git a/.gitignore b/.gitignore @@ -12,3 +12,4 @@ *.gcov *.html *.o +*.d diff --git a/Makefile b/Makefile @@ -27,6 +27,7 @@ SRC = array.c \ vis-registers.c \ vis-text-objects.c \ $(REGEX_SRC) +OBJ = $(SRC:.c=.o) ELF = vis vis-menu vis-digraph EXECUTABLES = $(ELF) vis-clipboard vis-complete vis-open @@ -45,7 +46,7 @@ CONFIG_TRE ?= 0 CONFIG_ACL ?= 0 CONFIG_SELINUX ?= 0 -CFLAGS_STD ?= -std=c99 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -DNDEBUG +CFLAGS_STD ?= -std=c99 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -DNDEBUG -MMD CFLAGS_STD += -DVERSION=\"${VERSION}\" LDFLAGS_STD ?= -lc @@ -73,20 +74,29 @@ DOCKER?=docker all: $(ELF) +.c.o: + ${CC} ${CFLAGS} ${CFLAGS_VIS} ${CFLAGS_EXTRA} -o $@ -c $< + config.h: cp config.def.h config.h config.mk: @touch $@ -vis: config.h config.mk *.c *.h - ${CC} ${CFLAGS} ${CFLAGS_VIS} ${CFLAGS_EXTRA} ${SRC} ${LDFLAGS} ${LDFLAGS_VIS} -o $@ +main.o: config.h + +$(OBJ): config.mk + +-include *.d + +vis: ${OBJ} + ${CC} -o $@ ${OBJ} ${LDFLAGS} ${LDFLAGS_VIS} ${LDFLAGS_EXTRA} vis-menu: vis-menu.c - ${CC} ${CFLAGS} ${CFLAGS_AUTO} ${CFLAGS_STD} ${CFLAGS_EXTRA} $< ${LDFLAGS} ${LDFLAGS_STD} ${LDFLAGS_AUTO} -o $@ + ${CC} ${CFLAGS} ${CFLAGS_AUTO} ${CFLAGS_STD} ${CFLAGS_EXTRA} $< ${LDFLAGS} ${LDFLAGS_STD} ${LDFLAGS_AUTO} ${LDFLAGS_EXTRA} -o $@ vis-digraph: vis-digraph.c - ${CC} ${CFLAGS} ${CFLAGS_AUTO} ${CFLAGS_STD} ${CFLAGS_EXTRA} $< ${LDFLAGS} ${LDFLAGS_STD} ${LDFLAGS_AUTO} -o $@ + ${CC} ${CFLAGS} ${CFLAGS_AUTO} ${CFLAGS_STD} ${CFLAGS_EXTRA} $< ${LDFLAGS} ${LDFLAGS_STD} ${LDFLAGS_AUTO} ${LDFLAGS_EXTRA} -o $@ vis-single-payload.inc: $(EXECUTABLES) lua/* for e in $(ELF); do \ @@ -132,7 +142,7 @@ profile: clean @$(MAKE) CFLAGS_AUTO='' LDFLAGS_AUTO='' CFLAGS_EXTRA='-pg -O2' coverage: clean - @$(MAKE) CFLAGS_EXTRA='--coverage' + @$(MAKE) CFLAGS_EXTRA='--coverage' LDFLAGS_EXTRA='--coverage' test-update: git submodule init @@ -148,7 +158,7 @@ testclean: clean: @echo cleaning - @rm -f $(ELF) vis-single vis-single-payload.inc vis-*.tar.gz *.gcov *.gcda *.gcno + @rm -f $(ELF) $(OBJ) vis-single vis-single-payload.inc vis-*.tar.gz *.gcov *.gcda *.gcno *.d distclean: clean testclean @echo cleaning build configuration diff --git a/configure b/configure @@ -220,7 +220,7 @@ tryflag CFLAGS_TRY -Werror=unused-command-line-argument tryldflag LDFLAGS_TRY -Werror=unknown-warning-option tryldflag LDFLAGS_TRY -Werror=unused-command-line-argument -CFLAGS_STD="-std=c99 -D_POSIX_C_SOURCE=200809L -U_XOPEN_SOURCE -D_XOPEN_SOURCE=700 -DNDEBUG" +CFLAGS_STD="-std=c99 -D_POSIX_C_SOURCE=200809L -U_XOPEN_SOURCE -D_XOPEN_SOURCE=700 -DNDEBUG -MMD" LDFLAGS_STD="-lc" OS=$(uname)