CC = gcc CFLAGS = -Wall -Wextra -std=c11 -g -O2 -fwrapv -D_DEFAULT_SOURCE LDFLAGS = -ldl CFLAGS += $(shell pkg-config --cflags sqlite3 libsodium) LDFLAGS += $(shell pkg-config --libs sqlite3 libsodium) TARGETS = tomsg_server PLUGINDIR = plugins PLUGINS = $(filter-out _%,$(patsubst $(PLUGINDIR)/%,%,$(shell find $(PLUGINDIR)/ -maxdepth 1 -type d))) .PHONY: all clean # Clear all implicit suffix rules .SUFFIXES: # Don't delete intermediate files .SECONDARY: all: $(TARGETS) for pl in $(PLUGINS); do make --no-print-directory -C $(PLUGINDIR) $@ PLUGINNAME=$$pl; done clean: rm -f $(TARGETS) *.o *.sql.h for pl in $(PLUGINS); do make --no-print-directory -C $(PLUGINDIR) $@ PLUGINNAME=$$pl; done $(TARGETS): $(patsubst %.c,%.o,$(wildcard *.c)) $(CC) -o $@ $^ $(LDFLAGS) %.o: %.c $(wildcard *.h) $(patsubst %.sql,%.sql.h,$(wildcard *.sql)) $(CC) $(CFLAGS) -c -o $@ $< %.sql.h: %.sql xxd -i $^ $@