CFLAGS = -Wall -Wextra -Werror -g3 -std=c89 -pedantic -fPIE -DDEBUG LIBS = -lgc OBJ = build/main.o build/tokenizer.o build/parser.o build/program.o build/bytecode.o build/value.o build/command.o build/buffer.o build/hash_map.o CC = cc all: build_dir $(OBJ) $(CC) -o build/tsl $(OBJ) $(LIBS) clean: rm $(OBJ) build/tsl build_dir: mkdir -p build compiledb: make clean; bear make build/main.o: src/main.c include/tokenizer.h $(CC) -c src/main.c -o build/main.o $(CFLAGS) build/tokenizer.o: src/tokenizer.c include/tokenizer.h $(CC) -c src/tokenizer.c -o build/tokenizer.o $(CFLAGS) build/parser.o: src/parser.c include/parser.h $(CC) -c src/parser.c -o build/parser.o $(CFLAGS) build/program.o: src/program.c include/program.h $(CC) -c src/program.c -o build/program.o $(CFLAGS) build/bytecode.o: src/bytecode.c include/bytecode.h $(CC) -c src/bytecode.c -o build/bytecode.o $(CFLAGS) build/value.o: src/value.c include/value.h $(CC) -c src/value.c -o build/value.o $(CFLAGS) build/command.o: src/command.c include/command.h $(CC) -c src/command.c -o build/command.o $(CFLAGS) build/buffer.o: src/std/buffer.c include/std/buffer.h $(CC) -c src/std/buffer.c -o build/buffer.o $(CFLAGS) build/hash_map.o: src/std_gc/hash_map.c include/std_gc/hash_map.h $(CC) -c src/std_gc/hash_map.c -o build/hash_map.o $(CFLAGS)