diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-01-15 18:32:56 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-01-15 18:32:56 -0800 |
| commit | 631e59bfa7e2f2c0050ad1a84ff70feb8768626d (patch) | |
| tree | c3d9310b365537f6b5cc74f08d3a71718c4b4ff5 | |
| parent | d31d2e89850d3132850e0f2e1ce6d973bd482073 (diff) | |
Fully supporting NAME make argument
| -rw-r--r-- | Makefile | 15 | ||||
| -rw-r--r-- | bp.c | 16 |
2 files changed, 18 insertions, 13 deletions
@@ -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; \ @@ -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] <pattern> [<input files>...]\n\n" + " "BP_NAME" [flags] <pattern> [<input files>...]\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")) { |
