From 631e59bfa7e2f2c0050ad1a84ff70feb8768626d Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 15 Jan 2021 18:32:56 -0800 Subject: Fully supporting NAME make argument --- Makefile | 15 ++++++++------- bp.c | 16 ++++++++++------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 5a57bd4..a0cf193 100644 --- a/Makefile +++ b/Makefile @@ -4,9 +4,10 @@ PREFIX=/usr/local SYSCONFDIR=/etc CFLAGS=-std=c99 -Werror -D_XOPEN_SOURCE=700 -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L CWARN=-Wall -Wpedantic -Wextra -Wsign-conversion -Wtype-limits -Wunused-result -EXTRA_FLAGS= +EXTRA= G= O=-O3 +ALL_FLAGS=$(CFLAGS) -DBP_NAME="\"$(NAME)\"" $(EXTRA) $(CWARN) $(G) $(O) CFILES=compiler.c grammar.c utils.c vm.c file_loader.c printing.c json.c OBJFILES=$(CFILES:.c=.o) @@ -14,27 +15,27 @@ OBJFILES=$(CFILES:.c=.o) all: $(NAME) %.o: %.c %.h types.h - $(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) $(CWARN) $(G) $(O) -o $@ $< + $(CC) -c $(ALL_FLAGS) -o $@ $< $(NAME): $(OBJFILES) bp.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CWARN) $(G) $(O) -o $@ $(OBJFILES) bp.c + $(CC) $(ALL_FLAGS) -o $@ $(OBJFILES) bp.c clean: rm -f $(NAME) $(OBJFILES) leaktest: - make G=-ggdb O=-O0 EXTRA_CFLAGS=-DDEBUG_HEAP clean bp + make G=-ggdb O=-O0 EXTRA=-DDEBUG_HEAP clean bp valgrind --leak-check=full ./bp -l -g grammars/bpeg.bp -p Grammar grammars/bpeg.bp install: $(NAME) - mkdir -p -m 755 "$(PREFIX)/share/man/man1" "$(PREFIX)/bin" "$(SYSCONFDIR)/xdg/bp" - cp -rv grammars/* "$(SYSCONFDIR)/xdg/bp/" + mkdir -p -m 755 "$(PREFIX)/share/man/man1" "$(PREFIX)/bin" "$(SYSCONFDIR)/xdg/$(NAME)" + cp -rv grammars/* "$(SYSCONFDIR)/xdg/$(NAME)/" cp -v bp.1 "$(PREFIX)/share/man/man1/$(NAME).1" rm -f "$(PREFIX)/bin/$(NAME)" cp -v $(NAME) "$(PREFIX)/bin/" uninstall: - rm -rvf "$(PREFIX)/bin/$(NAME)" "$(PREFIX)/share/man/man1/$(NAME).1" "$(SYSCONFDIR)/xdg/bp"; + rm -rvf "$(PREFIX)/bin/$(NAME)" "$(PREFIX)/share/man/man1/$(NAME).1" "$(SYSCONFDIR)/xdg/$(NAME)"; @if [ -d ~/.config/$(NAME) ]; then \ printf 'Config files exist in ~/.config/$(NAME) Do you want to delete them? [Y/n] '; \ read confirm; \ diff --git a/bp.c b/bp.c index 77589ca..2c6309d 100644 --- a/bp.c +++ b/bp.c @@ -20,10 +20,14 @@ #include "utils.h" #include "vm.h" +#ifndef BP_NAME +#define BP_NAME "bp" +#endif + static const char *usage = ( - "BP - a Parsing Expression Grammar command line tool\n\n" + BP_NAME" - a Parsing Expression Grammar command line tool\n\n" "Usage:\n" - " bp [flags] [...]\n\n" + " "BP_NAME" [flags] [...]\n\n" "Flags:\n" " -h --help print the usage and quit\n" " -v --verbose print verbose debugging info\n" @@ -370,9 +374,9 @@ int main(int argc, char *argv[]) vm_op_t *replacement = bp_pattern(rep_file, rep_file->contents); // Load builtins: - file_t *xdg_file = load_file(&loaded_files, "/etc/xdg/bp/builtins.bp"); + file_t *xdg_file = load_file(&loaded_files, "/etc/xdg/"BP_NAME"/builtins.bp"); if (xdg_file) defs = load_grammar(defs, xdg_file); - file_t *local_file = load_file(&loaded_files, "%s/.config/bp/builtins.bp", getenv("HOME")); + file_t *local_file = load_file(&loaded_files, "%s/.config/"BP_NAME"/builtins.bp", getenv("HOME")); if (local_file) defs = load_grammar(defs, local_file); int i, npatterns = 0; @@ -410,9 +414,9 @@ int main(int argc, char *argv[]) } else if (FLAG("--grammar") || FLAG("-g")) { file_t *f = load_file(&loaded_files, flag); if (f == NULL) - f = load_file(&loaded_files, "%s/.config/bp/%s.bp", getenv("HOME"), flag); + f = load_file(&loaded_files, "%s/.config/"BP_NAME"/%s.bp", getenv("HOME"), flag); if (f == NULL) - f = load_file(&loaded_files, "/etc/xdg/bp/%s.bp", flag); + f = load_file(&loaded_files, "/etc/xdg/"BP_NAME"/%s.bp", flag); check(f != NULL, "Couldn't find grammar: %s", flag); defs = load_grammar(defs, f); // Keep in memory for debug output } else if (FLAG("--pattern") || FLAG("-p")) { -- cgit v1.2.3