CC = gcc CFLAGS = -Wall -Wextra -std=c11 -g -fwrapv -D_DEFAULT_SOURCE LDFLAGS = -lsqlite3 -ldl TARGETS = tomsg_server PLUGINDIR = plugins PLUGINS = $(filter-out _%,$(patsubst $(PLUGINDIR)/%,%,$(shell find $(PLUGINDIR)/ -maxdepth 1 -type d))) .PHONY: all clean remake # 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 remake: clean $(MAKE) all $(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 $^ $@