62 lines
1.3 KiB
Makefile
62 lines
1.3 KiB
Makefile
# Common
|
|
prefix= /usr/local
|
|
|
|
CC=clang
|
|
CFLAGS= -Wall -Werror -Wextra
|
|
#CFLAGS+= -std=c99
|
|
CFLAGS+= -std=gnu99
|
|
#CFLAGS+= -Os
|
|
CFLAGS+= -g
|
|
|
|
LDFLAGS= -lgnutls -lpthread -ldl -rdynamic
|
|
LDFLAGS+= -g
|
|
#LDFLAGS+= -Os
|
|
|
|
# Target: cbot
|
|
cbot_BIN= cbot
|
|
cbot_OBJ= $(subst .c,.o,$(wildcard src/*.c))
|
|
|
|
# Targets: plugins
|
|
plugins_SO= $(subst .c,.so,$(wildcard src/plugin/*.c))
|
|
|
|
# Rules
|
|
all: $(cbot_BIN) $(plugins_SO)
|
|
|
|
$(cbot_BIN): $(cbot_OBJ)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $(cbot_BIN) $(cbot_OBJ)
|
|
|
|
%.so: %.c
|
|
$(CC) -shared -nostartfiles -fPIC $(CFLAGS) $*.c -o $*.so
|
|
$(CC) -MM $(CFLAGS) $*.c > $*.d
|
|
@mv -f $*.d $*.d.tmp
|
|
@sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
|
|
@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
|
|
@rm -f $*.d.tmp
|
|
|
|
-include $(cbot_OBJ:.o=.d)
|
|
|
|
%.o: %.c
|
|
$(CC) -c $(CFLAGS) $*.c -o $*.o
|
|
$(CC) -MM $(CFLAGS) $*.c > $*.d
|
|
@mv -f $*.d $*.d.tmp
|
|
@sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
|
|
@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
|
|
@rm -f $*.d.tmp
|
|
|
|
clean:
|
|
$(RM) */*.o */*.d */*/*.o */*/*.d */*/*.so
|
|
$(RM) $(cbot_BIN) AllTests
|
|
$(RM) -rf clang-analyzer
|
|
|
|
check:
|
|
scan-build -o clang-analyzer make
|
|
clang -o AllTests $(wildcard tests/*.c)
|
|
./AllTests
|
|
|
|
tags:
|
|
ctags -o .tags -a $(wildcard src/*.[hc])
|
|
|
|
.PHONY: all clean install uninstall tags
|
|
|
|
start:
|
|
./cbot
|