aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandy Palamar <palamar@ualberta.ca>2023-07-29 10:21:44 -0600
committerRandy Palamar <palamar@ualberta.ca>2023-08-16 08:54:48 -0600
commit4360440862bd50525cafdcdc1a4224a1616ab486 (patch)
treefc025a45183faca237c4bab14da666fcafeb3074
parent711447afd4a7857d1ecb173893009924b07d4993 (diff)
downloadvis-4360440862bd50525cafdcdc1a4224a1616ab486.tar.gz
vis-4360440862bd50525cafdcdc1a4224a1616ab486.tar.xz
build: support incremental rebuilds
-rw-r--r--.github/workflows/macos.yml1
-rw-r--r--.github/workflows/ubuntu.yml1
-rw-r--r--.github/workflows/windows.yml.NOACTIVE1
-rw-r--r--.gitignore1
-rw-r--r--Makefile24
-rwxr-xr-xconfigure2
6 files changed, 22 insertions, 8 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 54efd11..6fc017a 100644
--- 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
index 9baf89c..01132a4 100644
--- 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
index 766a472..3b3d982 100644
--- 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
index 7aa3fae..950e4d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
*.gcov
*.html
*.o
+*.d
diff --git a/Makefile b/Makefile
index d1c2ca7..8e6676c 100644
--- 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
index d71ab78..5d7c821 100755
--- 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)