1#!/usr/bin/make -f 2# Makefile for tests # 3# ------------------ # 4# Created by falkTX 5# 6 7CWD=.. 8include $(CWD)/Makefile.mk 9 10# --------------------------------------------------------------------------------------------------------------------- 11 12BINDIR := $(CWD)/../bin 13 14ifeq ($(DEBUG),true) 15OBJDIR := $(CWD)/../build/tests/Debug 16MODULEDIR := $(CWD)/../build/modules/Debug 17else 18OBJDIR := $(CWD)/../build/tests/Release 19MODULEDIR := $(CWD)/../build/modules/Release 20endif 21 22# --------------------------------------------------------------------------------------------------------------------- 23 24BUILD_C_FLAGS += -I.. 25BUILD_CXX_FLAGS += -I.. -I$(CWD)/modules 26 27# --------------------------------------------------------------------------------------------------------------------- 28 29PEDANTIC_FLAGS = -pedantic -pedantic-errors 30PEDANTIC_FLAGS += -Wall -Wextra -Werror -pipe -DBUILDING_CARLA -DREAL_BUILD 31PEDANTIC_FLAGS += -I. -I../backend -I../includes -I../modules -I../utils 32 33PEDANTIC_FLAGS += -Wabi=98 -Wcast-qual -Wclobbered -Wconversion -Wdisabled-optimization 34PEDANTIC_FLAGS += -Wcast-align -Wcast-qual -Wclobbered -Wconversion -Wdisabled-optimization 35PEDANTIC_FLAGS += -Wdouble-promotion -Wfloat-equal -Wlogical-op -Wpointer-arith -Wsign-conversion 36PEDANTIC_FLAGS += -Wformat=2 -Woverlength-strings 37PEDANTIC_FLAGS += -Wformat-truncation=2 -Wformat-overflow=2 38PEDANTIC_FLAGS += -Wstringop-overflow=4 39PEDANTIC_FLAGS += -Wmissing-declarations -Wredundant-decls 40PEDANTIC_FLAGS += -Wshadow -Wundef -Wuninitialized -Wunused 41PEDANTIC_FLAGS += -Wstrict-aliasing -fstrict-aliasing 42PEDANTIC_FLAGS += -Wstrict-overflow -fstrict-overflow 43PEDANTIC_FLAGS += -Wduplicated-branches -Wduplicated-cond -Wnull-dereference 44# -Wstringop-truncation 45 46PEDANTIC_CFLAGS = $(PEDANTIC_FLAGS) 47PEDANTIC_CFLAGS += -Wc++-compat 48PEDANTIC_CFLAGS += -Winit-self -Wjump-misses-init -Wnested-externs -Wwrite-strings 49PEDANTIC_CFLAGS += -Wmissing-prototypes -Wstrict-prototypes 50 51PEDANTIC_CXXFLAGS = $(PEDANTIC_FLAGS) 52PEDANTIC_CXXFLAGS += -Wc++0x-compat -Wc++11-compat 53PEDANTIC_CXXFLAGS += -Wnon-virtual-dtor -Woverloaded-virtual 54PEDANTIC_CXXFLAGS += -Wold-style-cast -Wuseless-cast 55PEDANTIC_CXXFLAGS += -Wzero-as-null-pointer-constant 56PEDANTIC_CXXFLAGS += -Weffc++ 57 58PEDANTIC_CXX03_SKIPS = -Wno-pedantic 59PEDANTIC_CXX03_SKIPS += -Wno-zero-as-null-pointer-constant 60 61PEDANTIC_CXX98_SKIPS = $(PEDANTIC_CXX03_SKIPS) 62PEDANTIC_CXX98_SKIPS += -Wno-variadic-macros 63 64PEDANTIC_LDFLAGS = -Wl,-rpath,$(BINDIR) -L$(BINDIR) 65 66# --------------------------------------------------------------------------------------------------------------------- 67# Set targets 68 69TARGETS = \ 70 ansi-pedantic-test_c_ansi_run \ 71 ansi-pedantic-test_c89_run \ 72 ansi-pedantic-test_c99_run \ 73 ansi-pedantic-test_c11_run \ 74 ansi-pedantic-test_cxx_ansi_run \ 75 ansi-pedantic-test_cxx98_run \ 76 ansi-pedantic-test_cxx03_run \ 77 ansi-pedantic-test_cxx11_run \ 78 carla-host-plugin_run 79 80# --------------------------------------------------------------------------------------------------------------------- 81 82all: $(TARGETS) 83 84# --------------------------------------------------------------------------------------------------------------------- 85 86ansi-%_run: $(BINDIR)/ansi-% 87 $(BINDIR)/ansi-$* 88 89carla-%_run: $(BINDIR)/carla-% 90# valgrind $(BINDIR)/carla-$* 91 valgrind --leak-check=full --show-leak-kinds=all --suppressions=valgrind.supp $(BINDIR)/carla-$* 92 93# --------------------------------------------------------------------------------------------------------------------- 94 95$(BINDIR)/ansi-pedantic-test_c_ansi: ansi-pedantic-test.c ../backend/Carla*.h ../includes/*.h 96 $(CC) $< $(PEDANTIC_CFLAGS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -ansi -o $@ 97 98$(BINDIR)/ansi-pedantic-test_c89: ansi-pedantic-test.c ../backend/Carla*.h ../includes/*.h 99 $(CC) $< $(PEDANTIC_CFLAGS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -std=c89 -o $@ 100 101$(BINDIR)/ansi-pedantic-test_c99: ansi-pedantic-test.c ../backend/Carla*.h ../includes/*.h 102 $(CC) $< $(PEDANTIC_CFLAGS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -std=c99 -o $@ 103 104$(BINDIR)/ansi-pedantic-test_c11: ansi-pedantic-test.c ../backend/Carla*.h ../includes/*.h 105 $(CC) $< $(PEDANTIC_CFLAGS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -std=c11 -o $@ 106 107# --------------------------------------------------------------------------------------------------------------------- 108 109$(BINDIR)/ansi-pedantic-test_cxx_ansi: ansi-pedantic-test.cpp ../backend/Carla*.h ../backend/Carla*.hpp ../includes/*.h 110 $(CXX) $< $(PEDANTIC_CXXFLAGS) $(PEDANTIC_CXX98_SKIPS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -ansi -Wno-effc++ -o $@ 111 112$(BINDIR)/ansi-pedantic-test_cxx98: ansi-pedantic-test.cpp ../backend/Carla*.h ../backend/Carla*.hpp ../includes/*.h 113 $(CXX) $< $(PEDANTIC_CXXFLAGS) $(PEDANTIC_CXX98_SKIPS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -std=c++98 -Wno-effc++ -o $@ 114 115$(BINDIR)/ansi-pedantic-test_cxx03: ansi-pedantic-test.cpp ../backend/Carla*.h ../backend/Carla*.hpp ../includes/*.h 116 $(CXX) $< $(PEDANTIC_CXXFLAGS) $(PEDANTIC_CXX03_SKIPS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -std=c++03 -Wno-effc++ -o $@ 117 118$(BINDIR)/ansi-pedantic-test_cxx11: ansi-pedantic-test.cpp ../backend/Carla*.h ../backend/Carla*.hpp ../includes/*.h 119 $(CXX) $< $(PEDANTIC_CXXFLAGS) $(PEDANTIC_LDFLAGS) -lcarla_standalone2 -lcarla_utils -std=c++11 -o $@ 120 121# --------------------------------------------------------------------------------------------------------------------- 122 123$(BINDIR)/carla-host-plugin: carla-host-plugin.c 124 $(CC) $< $(PEDANTIC_CFLAGS) $(PEDANTIC_LDFLAGS) -g -O0 -Wno-declaration-after-statement -Wno-pedantic -lcarla_host-plugin -std=c99 -o $@ 125 126# --------------------------------------------------------------------------------------------------------------------- 127 128clean: 129 rm -f $(BINDIR)/ansi-pedantic-test_* $(BINDIR)/carla-host-plugin 130 131debug: 132 $(MAKE) DEBUG=true 133 134# --------------------------------------------------------------------------------------------------------------------- 135 136$(OBJDIR)/%.c.o: %.c 137 -@mkdir -p $(OBJDIR) 138 @echo "Compiling $<" 139 @$(CC) $< $(BUILD_C_FLAGS) -c -o $@ 140 141$(OBJDIR)/%.cpp.o: %.cpp 142 -@mkdir -p $(OBJDIR) 143 @echo "Compiling $<" 144 @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ 145 146# --------------------------------------------------------------------------------------------------------------------- 147