| @@ -18,7 +18,7 @@ STRIP ?= strip | |||||
| SOURCES += dep/nanovg/src/nanovg.c | SOURCES += dep/nanovg/src/nanovg.c | ||||
| SOURCES += $(wildcard src/*.cpp src/*/*.cpp) | SOURCES += $(wildcard src/*.cpp src/*/*.cpp) | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| SOURCES += dep/osdialog/osdialog_mac.m | SOURCES += dep/osdialog/osdialog_mac.m | ||||
| CXXFLAGS += -stdlib=libc++ | CXXFLAGS += -stdlib=libc++ | ||||
| LDFLAGS += -stdlib=libc++ -lpthread -ldl \ | LDFLAGS += -stdlib=libc++ -lpthread -ldl \ | ||||
| @@ -28,7 +28,7 @@ ifeq ($(ARCH), mac) | |||||
| BUNDLE := dist/$(TARGET).app | BUNDLE := dist/$(TARGET).app | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| SOURCES += dep/osdialog/osdialog_win.c | SOURCES += dep/osdialog/osdialog_win.c | ||||
| LDFLAGS += -static \ | LDFLAGS += -static \ | ||||
| -Wl,--export-all-symbols,--out-implib,libRack.a -mwindows \ | -Wl,--export-all-symbols,--out-implib,libRack.a -mwindows \ | ||||
| @@ -38,7 +38,7 @@ ifeq ($(ARCH), win) | |||||
| OBJECTS += Rack.res | OBJECTS += Rack.res | ||||
| endif | endif | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| SOURCES += dep/osdialog/osdialog_gtk2.c | SOURCES += dep/osdialog/osdialog_gtk2.c | ||||
| CFLAGS += $(shell pkg-config --cflags gtk+-2.0) | CFLAGS += $(shell pkg-config --cflags gtk+-2.0) | ||||
| LDFLAGS += -rdynamic \ | LDFLAGS += -rdynamic \ | ||||
| @@ -61,25 +61,25 @@ run: $(TARGET) | |||||
| ./$< | ./$< | ||||
| debug: $(TARGET) | debug: $(TARGET) | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| lldb -ex run ./$< | lldb -ex run ./$< | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| gdb -ex run ./$< | gdb -ex run ./$< | ||||
| endif | endif | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| gdb -ex run ./$< | gdb -ex run ./$< | ||||
| endif | endif | ||||
| perf: $(TARGET) | perf: $(TARGET) | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| perf record --call-graph dwarf ./Rack | perf record --call-graph dwarf ./Rack | ||||
| endif | endif | ||||
| clean: | clean: | ||||
| rm -rfv $(TARGET) libRack.a Rack.res build dist | rm -rfv $(TARGET) libRack.a Rack.res build dist | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| # For Windows resources | # For Windows resources | ||||
| %.res: %.rc | %.res: %.rc | ||||
| windres $^ -O coff -o $@ | windres $^ -O coff -o $@ | ||||
| @@ -95,7 +95,7 @@ endif | |||||
| # Rack distribution | # Rack distribution | ||||
| $(MAKE) -C plugins/Fundamental dist | $(MAKE) -C plugins/Fundamental dist | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| mkdir -p $(BUNDLE) | mkdir -p $(BUNDLE) | ||||
| mkdir -p $(BUNDLE)/Contents | mkdir -p $(BUNDLE)/Contents | ||||
| mkdir -p $(BUNDLE)/Contents/Resources | mkdir -p $(BUNDLE)/Contents/Resources | ||||
| @@ -117,7 +117,7 @@ ifeq ($(ARCH), mac) | |||||
| cd dist && ln -s /Library/Audio/Plug-Ins/VST VST | cd dist && ln -s /Library/Audio/Plug-Ins/VST VST | ||||
| cd dist && hdiutil create -srcfolder . -volname Rack -ov -format UDZO Rack-$(VERSION)-$(ARCH).dmg | cd dist && hdiutil create -srcfolder . -volname Rack -ov -format UDZO Rack-$(VERSION)-$(ARCH).dmg | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| mkdir -p dist/Rack | mkdir -p dist/Rack | ||||
| mkdir -p dist/Rack/Bridge | mkdir -p dist/Rack/Bridge | ||||
| cp Bridge/vst/dist/VCV-Bridge-64.dll dist/Rack/Bridge/ | cp Bridge/vst/dist/VCV-Bridge-64.dll dist/Rack/Bridge/ | ||||
| @@ -135,7 +135,7 @@ ifeq ($(ARCH), win) | |||||
| makensis installer.nsi | makensis installer.nsi | ||||
| mv Rack-setup.exe dist/Rack-$(VERSION)-$(ARCH).exe | mv Rack-setup.exe dist/Rack-$(VERSION)-$(ARCH).exe | ||||
| endif | endif | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| mkdir -p dist/Rack | mkdir -p dist/Rack | ||||
| cp -R LICENSE* res dist/Rack/ | cp -R LICENSE* res dist/Rack/ | ||||
| cp $(TARGET) dist/Rack/ | cp $(TARGET) dist/Rack/ | ||||
| @@ -153,7 +153,7 @@ endif | |||||
| cp -R include dist/Rack-SDK/ | cp -R include dist/Rack-SDK/ | ||||
| mkdir -p dist/Rack-SDK/dep/ | mkdir -p dist/Rack-SDK/dep/ | ||||
| cp -R dep/include dist/Rack-SDK/dep/ | cp -R dep/include dist/Rack-SDK/dep/ | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| cp libRack.a dist/Rack-SDK/ | cp libRack.a dist/Rack-SDK/ | ||||
| endif | endif | ||||
| cd dist && zip -5 -r Rack-SDK-$(VERSION).zip Rack-SDK | cd dist && zip -5 -r Rack-SDK-$(VERSION).zip Rack-SDK | ||||
| @@ -162,14 +162,14 @@ endif | |||||
| # Obviously this will only work if you have the private keys to my server | # Obviously this will only work if you have the private keys to my server | ||||
| UPLOAD_URL := vortico@vcvrack.com:files/ | UPLOAD_URL := vortico@vcvrack.com:files/ | ||||
| upload: | upload: | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| rsync dist/*.dmg $(UPLOAD_URL) -zP | rsync dist/*.dmg $(UPLOAD_URL) -zP | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| rsync dist/*.exe $(UPLOAD_URL) -P | rsync dist/*.exe $(UPLOAD_URL) -P | ||||
| rsync dist/*.zip $(UPLOAD_URL) -P | rsync dist/*.zip $(UPLOAD_URL) -P | ||||
| endif | endif | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| rsync dist/*.zip $(UPLOAD_URL) -zP | rsync dist/*.zip $(UPLOAD_URL) -zP | ||||
| endif | endif | ||||
| rsync plugins/*/dist/*.zip $(UPLOAD_URL) -zP | rsync plugins/*/dist/*.zip $(UPLOAD_URL) -zP | ||||
| @@ -1,24 +1,20 @@ | |||||
| # Detect architecture if ARCH is not defined | |||||
| ifndef ARCH | |||||
| MACHINE = $(shell $(CC) -dumpmachine) | MACHINE = $(shell $(CC) -dumpmachine) | ||||
| ifneq (, $(findstring linux, $(MACHINE))) | |||||
| # Linux | |||||
| ARCH = lin | |||||
| else ifneq (, $(findstring apple, $(MACHINE))) | |||||
| # Mac | |||||
| ARCH = mac | |||||
| ifneq (, $(findstring apple, $(MACHINE))) | |||||
| ARCH_MAC := 1 | |||||
| ARCH := mac | |||||
| else ifneq (, $(findstring mingw, $(MACHINE))) | else ifneq (, $(findstring mingw, $(MACHINE))) | ||||
| # Windows | |||||
| ARCH = win | |||||
| ifneq ( ,$(findstring x86_64, $(MACHINE))) | |||||
| BITS = 64 | |||||
| else ifneq (, $(findstring i686, $(MACHINE))) | |||||
| BITS = 32 | |||||
| endif | |||||
| ARCH_WIN := 1 | |||||
| ARCH := win | |||||
| ifneq ( ,$(findstring x86_64, $(MACHINE))) | |||||
| ARCH_WIN_64 := 1 | |||||
| BITS := 64 | |||||
| else ifneq (, $(findstring i686, $(MACHINE))) | |||||
| ARCH_WIN_32 := 1 | |||||
| BITS := 32 | |||||
| endif | |||||
| else ifneq (, $(findstring linux, $(MACHINE))) | |||||
| ARCH_LIN := 1 | |||||
| ARCH := lin | |||||
| else | else | ||||
| $(error Could not determine machine type. Try hacking around in arch.mk) | |||||
| $(error Could not determine architecture. Try hacking around in arch.mk) | |||||
| endif | endif | ||||
| endif | |||||
| @@ -22,10 +22,10 @@ endif | |||||
| CXXFLAGS += -std=c++11 | CXXFLAGS += -std=c++11 | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| FLAGS += -DARCH_LIN | FLAGS += -DARCH_LIN | ||||
| endif | endif | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| FLAGS += -DARCH_MAC | FLAGS += -DARCH_MAC | ||||
| CXXFLAGS += -stdlib=libc++ | CXXFLAGS += -stdlib=libc++ | ||||
| LDFLAGS += -stdlib=libc++ | LDFLAGS += -stdlib=libc++ | ||||
| @@ -33,7 +33,7 @@ ifeq ($(ARCH), mac) | |||||
| FLAGS += $(MAC_SDK_FLAGS) | FLAGS += $(MAC_SDK_FLAGS) | ||||
| LDFLAGS += $(MAC_SDK_FLAGS) | LDFLAGS += $(MAC_SDK_FLAGS) | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| FLAGS += -DARCH_WIN | FLAGS += -DARCH_WIN | ||||
| FLAGS += -D_USE_MATH_DEFINES | FLAGS += -D_USE_MATH_DEFINES | ||||
| endif | endif | ||||
| @@ -6,7 +6,7 @@ RACK_DIR ?= .. | |||||
| include $(RACK_DIR)/arch.mk | include $(RACK_DIR)/arch.mk | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| glew = lib/libGLEW.a | glew = lib/libGLEW.a | ||||
| glfw = lib/libglfw3.a | glfw = lib/libglfw3.a | ||||
| jansson = lib/libjansson.a | jansson = lib/libjansson.a | ||||
| @@ -19,7 +19,7 @@ ifeq ($(ARCH), lin) | |||||
| openssl = lib/libssl.a | openssl = lib/libssl.a | ||||
| endif | endif | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| glew = lib/libGLEW.a | glew = lib/libGLEW.a | ||||
| glfw = lib/libglfw3.a | glfw = lib/libglfw3.a | ||||
| jansson = lib/libjansson.a | jansson = lib/libjansson.a | ||||
| @@ -32,7 +32,7 @@ ifeq ($(ARCH), mac) | |||||
| openssl = lib/libssl.a | openssl = lib/libssl.a | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| glew = lib/libglew32.a | glew = lib/libglew32.a | ||||
| glfw = lib/libglfw3.a | glfw = lib/libglfw3.a | ||||
| jansson = lib/libjansson.a | jansson = lib/libjansson.a | ||||
| @@ -112,7 +112,7 @@ $(libzip): $(zlib) | |||||
| $(zlib): | $(zlib): | ||||
| $(WGET) "https://www.zlib.net/zlib-1.2.11.tar.gz" | $(WGET) "https://www.zlib.net/zlib-1.2.11.tar.gz" | ||||
| $(UNTAR) zlib-1.2.11.tar.gz | $(UNTAR) zlib-1.2.11.tar.gz | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| $(MAKE) -C zlib-1.2.11 -f win32/Makefile.gcc | $(MAKE) -C zlib-1.2.11 -f win32/Makefile.gcc | ||||
| $(MAKE) -C zlib-1.2.11 -f win32/Makefile.gcc BINARY_PATH="$(realpath $(DEP_LOCAL))/bin" INCLUDE_PATH="$(realpath $(DEP_LOCAL))/include" LIBRARY_PATH="$(realpath $(DEP_LOCAL))/lib" install | $(MAKE) -C zlib-1.2.11 -f win32/Makefile.gcc BINARY_PATH="$(realpath $(DEP_LOCAL))/bin" INCLUDE_PATH="$(realpath $(DEP_LOCAL))/include" LIBRARY_PATH="$(realpath $(DEP_LOCAL))/lib" install | ||||
| else | else | ||||
| @@ -128,21 +128,21 @@ $(rtmidi): | |||||
| $(MAKE) -C rtmidi | $(MAKE) -C rtmidi | ||||
| $(MAKE) -C rtmidi install | $(MAKE) -C rtmidi install | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| RTAUDIO_FLAGS += -DAUDIO_OSX_CORE=ON | RTAUDIO_FLAGS += -DAUDIO_OSX_CORE=ON | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| RTAUDIO_FLAGS += -DAUDIO_WINDOWS_DS=ON -DAUDIO_WINDOWS_WASAPI=ON -DAUDIO_WINDOWS_ASIO=ON | RTAUDIO_FLAGS += -DAUDIO_WINDOWS_DS=ON -DAUDIO_WINDOWS_WASAPI=ON -DAUDIO_WINDOWS_ASIO=ON | ||||
| endif | endif | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| RTAUDIO_FLAGS += -DAUDIO_LINUX_ALSA=ON -DAUDIO_UNIX_JACK=ON | RTAUDIO_FLAGS += -DAUDIO_LINUX_ALSA=ON -DAUDIO_UNIX_JACK=ON | ||||
| endif | endif | ||||
| ifdef RTAUDIO_ALL_APIS | ifdef RTAUDIO_ALL_APIS | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| RTAUDIO_FLAGS += -DAUDIO_UNIX_JACK=ON | RTAUDIO_FLAGS += -DAUDIO_UNIX_JACK=ON | ||||
| endif | endif | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| RTAUDIO_FLAGS += -DAUDIO_LINUX_PULSE=ON | RTAUDIO_FLAGS += -DAUDIO_LINUX_PULSE=ON | ||||
| endif | endif | ||||
| endif | endif | ||||
| @@ -15,19 +15,19 @@ FLAGS += -I$(RACK_DIR)/include -I$(RACK_DIR)/dep/include | |||||
| include $(RACK_DIR)/arch.mk | include $(RACK_DIR)/arch.mk | ||||
| ifeq ($(ARCH), lin) | |||||
| ifdef ARCH_LIN | |||||
| LDFLAGS += -shared | LDFLAGS += -shared | ||||
| TARGET := plugin.so | TARGET := plugin.so | ||||
| RACK_USER_DIR ?= $(HOME)/.Rack | RACK_USER_DIR ?= $(HOME)/.Rack | ||||
| endif | endif | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| LDFLAGS += -shared -undefined dynamic_lookup | LDFLAGS += -shared -undefined dynamic_lookup | ||||
| TARGET := plugin.dylib | TARGET := plugin.dylib | ||||
| RACK_USER_DIR ?= $(HOME)/Documents/Rack | RACK_USER_DIR ?= $(HOME)/Documents/Rack | ||||
| endif | endif | ||||
| ifeq ($(ARCH), win) | |||||
| ifdef ARCH_WIN | |||||
| LDFLAGS += -shared -L$(RACK_DIR) -lRack | LDFLAGS += -shared -L$(RACK_DIR) -lRack | ||||
| TARGET := plugin.dll | TARGET := plugin.dll | ||||
| RACK_USER_DIR ?= $(USERPROFILE)/Documents/Rack | RACK_USER_DIR ?= $(USERPROFILE)/Documents/Rack | ||||
| @@ -50,7 +50,7 @@ dist: all | |||||
| mkdir -p dist/$(SLUG) | mkdir -p dist/$(SLUG) | ||||
| # Strip and copy plugin binary | # Strip and copy plugin binary | ||||
| cp $(TARGET) dist/$(SLUG)/ | cp $(TARGET) dist/$(SLUG)/ | ||||
| ifeq ($(ARCH), mac) | |||||
| ifdef ARCH_MAC | |||||
| $(STRIP) -S dist/$(SLUG)/$(TARGET) | $(STRIP) -S dist/$(SLUG)/$(TARGET) | ||||
| else | else | ||||
| $(STRIP) -s dist/$(SLUG)/$(TARGET) | $(STRIP) -s dist/$(SLUG)/$(TARGET) | ||||