Browse Source

Improve structure of dep building

tags/v0.6.0
Andrew Belt 6 years ago
parent
commit
7e6855c584
4 changed files with 44 additions and 40 deletions
  1. +2
    -3
      compile.mk
  2. +19
    -13
      dep.mk
  3. +21
    -22
      dep/Makefile
  4. +2
    -2
      plugin.mk

+ 2
- 3
compile.mk View File

@@ -1,9 +1,9 @@
ifndef RACK_DIR
$(error RACK_DIR is not defined in Makefile)
$(error RACK_DIR is not defined)
endif

ifndef VERSION
$(error VERSION is not defined in Makefile)
$(error VERSION is not defined)
endif

include $(RACK_DIR)/arch.mk
@@ -52,7 +52,6 @@ DEPS := $(patsubst %, build/%.d, $(SOURCES))
$(TARGET): $(RESOURCES) $(OBJECTS)
$(CXX) -o $@ $(OBJECTS) $(LDFLAGS)


-include $(DEPS)

build/%.c.o: %.c


+ 19
- 13
dep.mk View File

@@ -1,27 +1,33 @@
include $(RACK_DIR)/arch.mk

LOCAL ?= .
FLAGS += -g -O3 -march=nocona
DEP_LOCAL ?= .
DEP_FLAGS += -g -O3 -march=nocona

ifeq ($(ARCH), mac)
FLAGS += -mmacosx-version-min=10.7 -stdlib=libc++
LDFLAGS += -mmacosx-version-min=10.7 -stdlib=libc++
DEP_FLAGS += -mmacosx-version-min=10.7 -stdlib=libc++
DEP_LDFLAGS += -mmacosx-version-min=10.7 -stdlib=libc++
endif

CFLAGS += $(FLAGS)
CXXFLAGS += $(FLAGS)
export CFLAGS
export CXXFLAGS
export LDFLAGS
DEP_CFLAGS += $(DEP_FLAGS)
DEP_CXXFLAGS += $(DEP_FLAGS)

# Commands
WGET := curl -OL
UNTAR := tar xf
UNZIP := unzip
MAKE := make
CONFIGURE := ./configure --prefix="$(realpath $(LOCAL))"
CONFIGURE := ./configure --prefix="$(realpath $(DEP_LOCAL))"
ifeq ($(ARCH), win)
CMAKE := cmake -G 'MSYS Makefiles'
CMAKE := cmake -G 'MSYS Makefiles' -DCMAKE_INSTALL_PREFIX="$(realpath $(DEP_LOCAL))"
else
CMAKE := cmake
CMAKE := cmake -DCMAKE_INSTALL_PREFIX="$(realpath $(DEP_LOCAL))"
endif


# Export environment for all dependency targets
$(DEPS): export CFLAGS = $(DEP_CFLAGS)
$(DEPS): export CXXFLAGS = $(DEP_CXXFLAGS)
$(DEPS): export LDFLAGS = $(DEP_LDFLAGS)

dep: $(DEPS)

.PHONY: dep

+ 21
- 22
dep/Makefile View File

@@ -1,9 +1,12 @@
RACK_DIR ?= ..
.NOTPARALLEL:

include $(RACK_DIR)/dep.mk

# Libraries
ifeq ($(ARCH),lin)
# Target paths

include $(RACK_DIR)/arch.mk

ifeq ($(ARCH), lin)
glew = lib/libGLEW.so
glfw = lib/libglfw.so
jansson = lib/libjansson.so
@@ -15,7 +18,7 @@ ifeq ($(ARCH),lin)
openssl = lib/libssl.so
endif

ifeq ($(ARCH),mac)
ifeq ($(ARCH), mac)
glew = lib/libGLEW.dylib
glfw = lib/libglfw.dylib
jansson = lib/libjansson.dylib
@@ -27,7 +30,7 @@ ifeq ($(ARCH),mac)
openssl = lib/libssl.dylib
endif

ifeq ($(ARCH),win)
ifeq ($(ARCH), win)
glew = bin/glew32.dll
glfw = bin/glfw3.dll
jansson = bin/libjansson-4.dll
@@ -44,26 +47,22 @@ nanosvg = include/nanosvg.h
oui-blendish = include/blendish.h
osdialog = include/osdialog.h

DEPS += $(glew) $(glfw) $(jansson) $(libspeexdsp) $(libcurl) $(libzip) $(rtmidi) $(rtaudio) $(nanovg) $(nanosvg) $(oui-blendish) $(osdialog)
include $(RACK_DIR)/dep.mk

.NOTPARALLEL:

all: $(glew) $(glfw) $(jansson) $(libspeexdsp) $(libcurl) $(libzip) $(rtmidi) $(rtaudio) $(nanovg) $(nanosvg) $(oui-blendish) $(osdialog)
@echo ""
@echo "#######################################"
@echo "# Built all dependencies successfully #"
@echo "#######################################"
@echo ""
# Targets

$(glew):
$(WGET) https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0.tgz
$(UNTAR) glew-2.1.0.tgz
$(MAKE) -C glew-2.1.0 glew.lib
# On Linux, default lib path is lib64, so change it back to lib.
$(MAKE) -C glew-2.1.0 GLEW_DEST="$(LOCAL)" LIBDIR="$(LOCAL)/lib" install
$(MAKE) -C glew-2.1.0 GLEW_DEST="$(realpath $(DEP_LOCAL))" LIBDIR="$(realpath $(DEP_LOCAL))/lib" install

$(glfw):
cd glfw && $(CMAKE) . \
-DCMAKE_INSTALL_PREFIX="$(LOCAL)" -DBUILD_SHARED_LIBS=ON \
-DBUILD_SHARED_LIBS=ON \
-DGLFW_COCOA_CHDIR_RESOURCES=OFF -DGLFW_COCOA_MENUBAR=ON -DGLFW_COCOA_RETINA_FRAMEBUFFER=ON
$(MAKE) -C glfw
$(MAKE) -C glfw install
@@ -85,7 +84,7 @@ $(libspeexdsp):
$(openssl):
$(WGET) https://www.openssl.org/source/openssl-1.1.0g.tar.gz
$(UNTAR) openssl-1.1.0g.tar.gz
cd openssl-1.1.0g && ./config --prefix="$(LOCAL)"
cd openssl-1.1.0g && ./config --prefix="$(realpath $(DEP_LOCAL))"
$(MAKE) -C openssl-1.1.0g
$(MAKE) -C openssl-1.1.0g install_sw

@@ -95,7 +94,7 @@ $(libcurl): $(openssl)
cd curl-7.56.0 && $(CONFIGURE) \
--disable-ftp --disable-file --disable-ldap --disable-ldaps --disable-rtsp --disable-proxy --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smb --disable-smtp --disable-gopher --disable-manual \
--without-zlib --without-libpsl --without-libmetalink --without-libssh2 --without-librtmp --without-winidn --without-libidn2 --without-nghttp2 \
--without-ca-bundle --with-ca-fallback --with-ssl="$(LOCAL)"
--without-ca-bundle --with-ca-fallback --with-ssl="$(realpath $(DEP_LOCAL))"
$(MAKE) -C curl-7.56.0
$(MAKE) -C curl-7.56.0 install

@@ -114,27 +113,27 @@ $(rtmidi):
$(MAKE) -C rtmidi install

ifeq ($(ARCH),mac)
RTAUDIO_FLAGS += -DAUDIO_OSX_CORE=ON
RTAUDIO_FLAGS += -DAUDIO_OSX_CORE=ON
endif
ifeq ($(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
ifeq ($(ARCH),lin)
RTAUDIO_FLAGS += -DAUDIO_LINUX_ALSA=ON
RTAUDIO_FLAGS += -DAUDIO_LINUX_ALSA=ON
endif

ifdef RTAUDIO_ALL_APIS
ifeq ($(ARCH),mac)
RTAUDIO_FLAGS += -DAUDIO_UNIX_JACK=ON
RTAUDIO_FLAGS += -DAUDIO_UNIX_JACK=ON
endif
ifeq ($(ARCH),lin)
RTAUDIO_FLAGS += -DAUDIO_LINUX_PULSE=ON -DAUDIO_UNIX_JACK=ON
RTAUDIO_FLAGS += -DAUDIO_LINUX_PULSE=ON -DAUDIO_UNIX_JACK=ON
endif
endif

$(rtaudio):
cd rtaudio && mkdir -p build
cd rtaudio/build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX="$(LOCAL)" $(RTAUDIO_FLAGS) ..
cd rtaudio/build && $(CMAKE) $(RTAUDIO_FLAGS) ..
$(MAKE) -C rtaudio/build
$(MAKE) -C rtaudio/build install



+ 2
- 2
plugin.mk View File

@@ -1,9 +1,9 @@
ifndef RACK_DIR
$(error RACK_DIR is not defined in Makefile)
$(error RACK_DIR is not defined)
endif

ifndef SLUG
$(error SLUG is not defined in Makefile)
$(error SLUG is not defined)
endif

FLAGS += -DSLUG=$(SLUG)


Loading…
Cancel
Save