WORK_DIR = . SRC_DIR = $(WORK_DIR)/src INC_DIR = $(WORK_DIR)/include CSH_FLAGS = -Wall -Wextra -Werror -pedantic -I$(INC_DIR) CC = clang CC_STD = -std=c11 CC_FLAGS = $(CC_STD) $(CSH_FLAGS) CXX = clang++ CXX_STD = -std=c++11 CXX_FLAGS = -fno-rtti -fno-exceptions $(CXX_STD) $(CSH_FLAGS) RM = rm -f XDG_SHELL_PROT = $(WORK_DIR)/xdg-shell.xml WAYCLOCK = $(WORK_DIR)/wayclock SOURCES = \ $(SRC_DIR)/wayclock.cc \ $(SRC_DIR)/xdg-shell.c OBJECTS := $(SOURCES:.cc=.o) OBJECTS := $(OBJECTS:.c=.o) LIBRARIES = -lwayland-client all: $(WAYCLOCK) $(WAYCLOCK): $(OBJECTS) $(CXX) $(CXX_FLAGS) -o $@ $^ $(LIBRARIES) %.o: %.cc $(CXX) $(CXX_FLAGS) -c -o $@ $< %.o: %.c $(CC) $(CC_FLAGS) -c -o $@ $< .PHONY: clean clean: $(RM) $(OBJECTS) $(WAYCLOCK)