Newer
Older
xmpp-bot / makefile
GRAMMAR = expenses
LEX = src/grammar/$(GRAMMAR).l
YACC = src/grammar/$(GRAMMAR).y
BUILDPATH = ./build
LOCPATH = ./bin
SRC = src/grammar/types.c $(BUILDPATH)/$(GRAMMAR)/expenses.yy.c $(BUILDPATH)/$(GRAMMAR)/expenses.tab.c src/bot/handlers.c src/bot/context.c src/main.c
INSTALLPATH = /usr/local
CFLAGS = `pkg-config --cflags glib-2.0`
LFLAGS =  -lstrophe `pkg-config --libs glib-2.0` 
DEBFLAGS = -g -Wall
OFLAGS = -O2
NAME = xmpp-bot

all: grammar
	mkdir -p $(LOCPATH)
	gcc $(SRC) -o $(LOCPATH)/$(NAME) $(CFLAGS) $(OFLAGS) $(LFLAGS) $(LFLAGS_STATUS)
nostatus: grammar
	mkdir -p $(LOCPATH)
	gcc $(SRC) -o $(LOCPATH)/$(NAME) $(OFLAGS) $(LFLAGS)
debug: grammar
	mkdir -p $(LOCPATH)/debug
	gcc $(SRC) -o $(LOCPATH)/debug/$(NAME)_debug $(CFLAGS) $(LFLAGS) $(DEBFLAGS) $(LFLAGS_STATUS)
prof: grammar
	mkdir -p $(LOCPATH)/prof
	gcc $(SRC) -o $(LOCPATH)/prof/$(NAME)_prof $(CFLAGS) $(LFLAGS) $(LFLAGS_STATUS) -pg
asan: grammar
	gcc $(SRC) -o $(LOCPATH)/debug/$(NAME)_debug_asan $(CFLAGS) $(LFLAGS) $(DEBFLAGS) $(LFLAGS_STATUS) -fsanitize=address
grammar:
	mkdir -p $(BUILDPATH)/$(GRAMMAR)
	flex -o $(BUILDPATH)/$(GRAMMAR)/expenses.yy.c $(LEX)
	bison -o $(BUILDPATH)/$(GRAMMAR)/expenses.tab.c -d $(YACC)
clean:
	rm -rf $(BUILDPATH)
	rm -f $(LOCPATH)/debug/$(NAME)_debug
	rm -f $(LOCPATH)/$(NAME)
	rm -f $(LOCPATH)/debug/$(NAME)_debug
distclean:
	rm -rf $(BUILDPATH)
	rm -r $(LOCPATH)
install:
	cp $(LOCPATH)/$(NAME) $(INSTALLPATH)/bin/$(NAME)
uninstall:
	rm $(INSTALLPATH)/bin/$(NAME)