46 lines
1.1 KiB
Makefile
46 lines
1.1 KiB
Makefile
CC=cc
|
|
DIRS=HTML DOM
|
|
|
|
BUILDDIR=../build
|
|
BUILDDIRS=$(BUILDDIR)/HTML $(BUILDDIR)/DOM
|
|
LIBFILE=$(BUILDDIR)/libweb.a
|
|
|
|
UTILSDIR=utils
|
|
UTILSCFILES=$(wildcard $(UTILSSDIR)/*.c)
|
|
UTILSSOFILES=$(patsubst %.c, $(BUILDDIR)/%.o, $(UTILSCFILES))
|
|
|
|
CFILES=$(wildcard HTML/*.c DOM/*.c)
|
|
OFILES=$(patsubst %.c, $(BUILDDIR)/%.o, $(CFILES))
|
|
|
|
INCLUDEFLAGS=-Iinclude/
|
|
DEBUGFLAGS=-fsanitize=address -fsanitize=leak -fsanitize=undefined -fsanitize=pointer-compare -lasan
|
|
CFLAGS=-Wall -Wextra $(INCLUDEFLAGS) -g
|
|
LINKFLAGS=-L$(BUILDDIR) -l:$(LIBFILE)
|
|
|
|
.PHONY: all clean test
|
|
.SUFFIXES: .o .c
|
|
|
|
all: $(BUILDDIRS) $(LIBFILE)
|
|
|
|
$(BUILDDIRS):
|
|
mkdir -p $(BUILDDIR)/$(UTILSDIR)
|
|
mkdir -p $(BUILDDIR)/HTML
|
|
mkdir -p $(BUILDDIR)/DOM
|
|
|
|
$(BUILDDIR)/HTML/%.o: HTML/%.c
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
$(BUILDDIR)/DOM/%.o: DOM/%.c
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
$(LIBFILE): $(OFILES)
|
|
ar ruv $(LIBFILE) $(OFILES)
|
|
ranlib $(LIBFILE)
|
|
|
|
utils: $(LIBFILE)
|
|
$(CC) utils/dump_tokens.c -o $(BUILDDIR)/$(UTILSDIR)/dump_tokens $(CFLAGS) $(LINKFLAGS)
|
|
$(CC) utils/dump_tree.c -o $(BUILDDIR)/$(UTILSDIR)/dump_tree $(CFLAGS) $(LINKFLAGS)
|
|
|
|
clean:
|
|
rm -rf $(BUILDDIR)
|