CC = gcc CFLAGS = -Wall -Wextra -std=c11 -fwrapv -fPIC -pthread ifneq ($(DEBUG),) CFLAGS += -g else CFLAGS += -O2 endif LDFLAGS = -ldl -pthread BIN = cserver PLUGINDIR = plugins PLUGINS = $(patsubst $(PLUGINDIR)/%,%,$(shell find $(PLUGINDIR) -mindepth 1 -maxdepth 1 -type d)) .PHONY: all clean remake all: $(BIN) for pl in $(PLUGINS); do make -C $(PLUGINDIR) $@ PLUGINNAME=$$pl; done clean: rm -rf $(BIN) *.o *.dSYM for pl in $(PLUGINS); do make -C $(PLUGINDIR) $@ PLUGINNAME=$$pl; done remake: clean make all $(BIN): $(patsubst %.c,%.o,$(wildcard *.c)) $(CC) -o $@ $^ $(LDFLAGS) %.o: %.c $(wildcard $(dir %.o)*.h) $(CC) $(CFLAGS) -c -o $@ $<