CC = gcc CFLAGS = -Wall -Wextra -std=c11 -fwrapv -I.. -fPIC ifneq ($(DEBUG),) CFLAGS += -g else CFLAGS += -O2 endif ifeq ($(shell uname),Darwin) SO_EXT = dylib SO_FLAGS = -dynamiclib else SO_EXT = so SO_FLAGS = -shared endif SO_FLAGS += -fPIC TARGET = $(PLUGINNAME)/$(PLUGINNAME).$(SO_EXT) .PHONY: all clean remake warning all: warning $(TARGET) clean: rm -rf $(TARGET) $(PLUGINNAME)/*.{o,dSYM,$(SO_EXT)} remake: clean all warning: ifndef PLUGINNAME $(error "PLUGINNAME not set! Please run root Makefile instead.") endif .SECONDARY: $(PLUGINNAME)/%.$(SO_EXT): $(patsubst %.c,%.o,$(wildcard $(PLUGINNAME)/*.c)) $(wildcard ../*.o ../*.h) $(CC) $(SO_FLAGS) -o $@ $(filter %.o,$^)