SHELL = /bin/bash
-DESTDIR = 
+DESTDIR ?= 
 PREFIX = $(DESTDIR)/usr
 BINDIR = $(PREFIX)/bin
 MANDIR = $(PREFIX)/share/man/man1
 
 PROG = odot
 
-CC = gcc
+CC ?= gcc
 CFILE = $(PROG).c database.c actions.c function.c
 HEADER = $(PROG).h sqlite3.h
 OBJECTS = $(PROG).o database.o actions.o function.o sqlite3.o
-LDFLAGS = -L .
-LDLIBS = -lpthread
-CFLAGS = -O2 
-WARNINGS = -Werror -Wall -Wextra -Wpedantic -Wno-unused
-CPPFLAGS = -I . 
+LDFLAGS += $(LDFLAGS) -L .
+LDLIBS += $(LDLIBS) -lpthread
+CFLAGS += $(CFLAGS) -O2 
+WARNINGS ?= -Werror -Wall -Wextra -Wpedantic -Wno-unused
+CPPFLAGS += $(CPPFLAGX) -I . 
 ALL_CFLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LDLIBS) $(WARNINGS)
 
 sql: sqlite3.c
 build: $(CFILE) $(HEADER) sqlite3.c
        $(CC) $(CFILE) sqlite3.c $(ALL_CFLAGS) -o $(PROG)
 
+sqlbuild: $(CFILE) $(HEADER) sqlite3.o
+       $(CC) $(CFILE) sqlite3.o $(ALL_CFLAGS) -o $(PROG)
+
 install: $(CFILE) $(HEADER) sqlite3.c
        $(CC) $(CFILE) sqlite3.c $(ALL_CFLAGS) -o $(PROG)
        install -CDTm 755 $(PROG) $(BINDIR)/$(PROG)
        gzip -cf $(PROG).1 > $(PROG).1.gz
        install -CDTm 644 $(PROG).1.gz $(MANDIR)/$(PROG).1
 
-debug: $(CFILE)
+debug: $(CFILE) $(HEADER)
        $(CC) $(CFILE) sqlite3.o $(CFLAGS) -ggdb3 -Og -o $(PROG)
 
 clean: