|
- 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)
|