mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
72 lines
2 KiB
Makefile
72 lines
2 KiB
Makefile
ifeq ($(shell uname),Darwin)
|
|
PLATFORM = MacOS
|
|
else
|
|
PLATFORM = Linux
|
|
endif
|
|
|
|
# C++ compiler.
|
|
CXX := g++ -std=c++11
|
|
|
|
# Build configuration (Debug or Release).
|
|
ifndef CONFIG
|
|
CONFIG := Debug
|
|
endif
|
|
ifeq ($(CONFIG),Debug)
|
|
CXXFLAGS += -O0 -g -DDEBUG=1 -D_DEBUG=1
|
|
else
|
|
CXXFLAGS += -O3 -DNDEBUG
|
|
endif
|
|
|
|
# The name of your application.
|
|
APP_NAME := BlockFinder
|
|
|
|
# The path to the modules directory in the BLOCKS SDK directory.
|
|
SDK_PATH := ../../../SDK
|
|
|
|
# The path to temporary build files.
|
|
OBJECT_DIR := build/$(CONFIG)
|
|
|
|
# The path to the compiled BLOCKSSDK library.
|
|
BLOCKS_LIBRARY := $(SDK_PATH)/Build/$(PLATFORM)/$(CONFIG)/libBLOCKS-SDK.a
|
|
|
|
# The source code for this application.
|
|
SOURCE_FILES := $(wildcard ../*.cpp) $(foreach EXT,.cpp .mm,$(wildcard *$(EXT)))
|
|
|
|
# Make a list of object files from .cpp files.
|
|
SOURCE_OBJ := $(addprefix $(OBJECT_DIR)/,$(notdir $(addsuffix .o,$(basename $(SOURCE_FILES)))))
|
|
|
|
# Header include paths (prefix with -I).
|
|
INCLUDES := -I$(SDK_PATH)
|
|
|
|
# Frameworks and libraries.
|
|
ifeq ($(PLATFORM),MacOS)
|
|
LIBS := -framework Accelerate -framework AudioToolbox -framework Carbon -framework Cocoa -framework CoreAudio -framework CoreMIDI -framework IOKit -framework OpenGL -framework QuartzCore
|
|
else
|
|
LIBS := -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa libcurl x11) -ldl -lpthread -lrt
|
|
CXXFLAGS += -DLINUX=1
|
|
endif
|
|
|
|
##############################################################################
|
|
# Build rules #
|
|
##############################################################################
|
|
|
|
.PHONEY: clean
|
|
|
|
$(CONFIG)/$(APP_NAME): $(SOURCE_OBJ) $(BLOCKS_LIBRARY)
|
|
@mkdir -p $(dir $@)
|
|
$(CXX) $^ -o $@ $(LIBS)
|
|
|
|
$(OBJECT_DIR)/%.o: ../%.cpp
|
|
@mkdir -p $(dir $@)
|
|
$(CXX) $(CXXFLAGS) $(INCLUDES) -o $@ -c $<
|
|
|
|
$(OBJECT_DIR)/%.o: %.cpp
|
|
@mkdir -p $(dir $@)
|
|
$(CXX) $(CXXFLAGS) $(INCLUDES) -o $@ -c $<
|
|
|
|
$(OBJECT_DIR)/%.o: %.mm
|
|
@mkdir -p $(dir $@)
|
|
$(CXX) $(CXXFLAGS) $(INCLUDES) -o $@ -c $<
|
|
|
|
clean:
|
|
rm -rf $(CONFIG) $(OBJECT_DIR)
|