Fix make install, more make dist work

This commit is contained in:
falkTX 2021-01-10 17:19:20 +00:00
parent 5e65731eba
commit e9a7f3e5ea
4 changed files with 198 additions and 17 deletions

View File

@ -682,9 +682,9 @@ endif
$(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_control.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_host_control.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources

View File

@ -25,12 +25,13 @@ _QT5_DLLS = \
QtOpenGL \
QtPrintSupport \
QtSvg \
QtWidgets \
QtWidgets
_QT5_PLUGINS = \
iconengines/libqsvgicon$(LIB_EXT) \
imageformats/libqjpeg$(LIB_EXT) \
imageformats/libqsvg$(LIB_EXT) \
platforms/libqcocoa$(LIB_EXT) \
styles/carlastyle$(LIB_EXT)
platforms/libqcocoa$(LIB_EXT)
_THEME_FILES = \
styles/carlastyle.json \
@ -41,46 +42,80 @@ _CARLA_HOST_FILES = \
carla-bridge-lv2$(LIB_EXT) \
carla-bridge-native$(APP_EXT) \
carla-discovery-native$(APP_EXT) \
libcarla_utils$(LIB_EXT) \
$(_PLUGIN_UIS:%=resources/%$(APP_EXT))
_CARLA_APP_FILES = \
Carla$(APP_EXT) \
libcarla_standalone2$(LIB_EXT) \
libcarla_utils$(LIB_EXT) \
$(_CARLA_HOST_FILES) \
$(_QT5_DLLS) \
$(_QT5_PLUGINS) \
$(_THEME_FILES)
_CARLA_CONTROL_APP_FILES = \
Carla-Control$(APP_EXT) \
libcarla_utils$(LIB_EXT) \
$(_QT5_DLLS) \
$(_QT5_PLUGINS) \
$(_THEME_FILES)
_CARLA_LV2_PLUGIN_FILES = \
carla.lv2/carla$(LIB_EXT) \
carla.lv2/manifest.ttl \
$(_CARLA_HOST_FILES:%=carla.lv2/%)
carla.lv2/resources/carla-plugin-patchbay \
carla.lv2/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.lv2/%) \
$(_QT5_DLLS:%=carla.lv2/resources/%) \
$(_QT5_PLUGINS:%=carla.lv2/resources/%) \
$(_THEME_FILES:%=carla.lv2/resources/%)
_CARLA_VST2FX_PLUGIN_FILES = \
carlafx.vst/Contents/MacOS/CarlaVstFxShell \
carlafx.vst/Contents/MacOS/resources/carla-plugin-patchbay \
carlafx.vst/Contents/MacOS/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carlafx.vst/Contents/MacOS/%) \
$(_QT5_DLLS:%=carlafx.vst/Contents/MacOS/resources/%) \
$(_QT5_PLUGINS:%=carlafx.vst/Contents/MacOS/resources/%) \
$(_THEME_FILES:%=carlafx.vst/Contents/MacOS/resources/%)
_CARLA_VST2SYN_PLUGIN_FILES = \
carla.vst/Contents/MacOS/CarlaVstShell \
carla.vst/Contents/MacOS/resources/carla-plugin-patchbay \
carla.vst/Contents/MacOS/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.vst/Contents/MacOS/%) \
$(_QT5_DLLS:%=carla.vst/Contents/MacOS/resources/%) \
$(_QT5_PLUGINS:%=carla.vst/Contents/MacOS/resources/%) \
$(_THEME_FILES:%=carla.vst/Contents/MacOS/resources/%)
CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla.app/Contents/MacOS/%)
CARLA_APP_ZIPS = $(_PLUGIN_UIS:%=build/%.app/Contents/MacOS/lib/library.zip)
CARLA_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control.app/Contents/MacOS/%)
CARLA_PLUGIN_FILES = $(_CARLA_LV2_PLUGIN_FILES:%=build/%)
# ----------------------------------------------------------------------------------------------------------------------------
# entry point
TARGETS = \
build/Carla.app/Contents/Info.plist \
build/Carla-Control.app/Contents/Info.plist
build/Carla-Control.app/Contents/Info.plist \
build/Carla-Plugins.pkg
dist: $(TARGETS)
# ----------------------------------------------------------------------------------------------------------------------------
# final cleanup, after everything is in place
define PATCH_QT_DEPENDENCIES
install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" @executable_path/QtCore ${1} && \
install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" @executable_path/QtGui ${1} && \
install_name_tool -change "@rpath/QtOpenGL.framework/Versions/5/QtOpenGL" @executable_path/QtOpenGL ${1} && \
install_name_tool -change "@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport" @executable_path/QtPrintSupport ${1} && \
install_name_tool -change "@rpath/QtSvg.framework/Versions/5/QtSvg" @executable_path/QtSvg ${1} && \
install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" @executable_path/QtWidgets ${1} && \
install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras ${1}
endef
define CLEANUP_AND_PATCH_CXFREEZE_FILES
# cleanup
find build/${1}.app/Contents/MacOS/ -type f -name "*.py" -delete
@ -97,13 +132,7 @@ define CLEANUP_AND_PATCH_CXFREEZE_FILES
# adjust binaries
(cd build/${1}.app/Contents/MacOS && \
for f in `find . -type f | grep -e /Qt -e QOpenGL -e libq -e carlastyle.dylib -e sip.so`; do \
install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" @executable_path/QtCore $$f && \
install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" @executable_path/QtGui $$f && \
install_name_tool -change "@rpath/QtOpenGL.framework/Versions/5/QtOpenGL" @executable_path/QtOpenGL $$f && \
install_name_tool -change "@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport" @executable_path/QtPrintSupport $$f && \
install_name_tool -change "@rpath/QtSvg.framework/Versions/5/QtSvg" @executable_path/QtSvg $$f && \
install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" @executable_path/QtWidgets $$f && \
install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras $$f; \
$(call PATCH_QT_DEPENDENCIES,$$f); \
done)
endef
@ -113,7 +142,7 @@ build/Carla.app/Contents/Info.plist: $(CARLA_APP_FILES)
mkdir -p build/Carla.app/Contents/MacOS/resources
(cd build/Carla.app/Contents/MacOS/resources && \
ln -sf ../Qt* ../lib ../iconengines ../imageformats ../platforms ../styles . && \
ln -sf carla-plugin carla-plugin-patchbay)
ln -sf carla-plugin$(APP_EXT) carla-plugin-patchbay$(APP_EXT))
# mark as done
touch $@
@ -169,21 +198,125 @@ build/%.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py source/frontend
build/Carla.app/Contents/MacOS/Qt% build/Carla-Control.app/Contents/MacOS/Qt%: $(QT5_PREFIX)/lib/Qt%.framework
-@mkdir -p $(shell dirname $@)
@cp -v $</Versions/5/Qt$* $@
$(call PATCH_QT_DEPENDENCIES,$@)
build/Carla.app/Contents/MacOS/iconengines/% build/Carla-Control.app/Contents/MacOS/iconengines/%: $(QT5_PREFIX)/lib/qt5/plugins/iconengines/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)
build/Carla.app/Contents/MacOS/imageformats/% build/Carla-Control.app/Contents/MacOS/imageformats/%: $(QT5_PREFIX)/lib/qt5/plugins/imageformats/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)
build/Carla.app/Contents/MacOS/platforms/% build/Carla-Control.app/Contents/MacOS/platforms/%: $(QT5_PREFIX)/lib/qt5/plugins/platforms/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)
build/Carla.app/Contents/MacOS/styles/%.dylib build/Carla-Control.app/Contents/MacOS/styles/%.dylib: bin/styles/%.dylib
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)
build/Carla.app/Contents/MacOS/% build/Carla-Control.app/Contents/MacOS/%: bin/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
# ----------------------------------------------------------------------------------------------------------------------------
# Plugin rules
build/Carla-Plugins.pkg: build/carla-lv2.pkg build/carla-vst2fx.pkg build/carla-vst2syn.pkg
productbuild \
--distribution data/macos/package.xml \
--identifier studio.kx.carla \
--package-path "build" \
--version "2.3.0-alpha3" \
"$@"
build/carla-lv2.pkg: $(_CARLA_LV2_PLUGIN_FILES:%=build/%)
pkgbuild \
--identifier "studio.kx.carla.lv2" \
--install-location "/Library/Audio/Plug-Ins/LV2/carla.lv2/" \
--root "build/carla.lv2/" \
"$@"
build/carla-vst2fx.pkg: $(_CARLA_VST2FX_PLUGIN_FILES:%=build/%)
pkgbuild \
--identifier "studio.kx.carla.vst2fx" \
--install-location "/Library/Audio/Plug-Ins/VST/carlafx.vst/" \
--root "build/carlafx.vst/" \
"$@"
build/carla-vst2syn.pkg: $(_CARLA_VST2SYN_PLUGIN_FILES:%=build/%)
pkgbuild \
--identifier "studio.kx.carla.vst2syn" \
--install-location "/Library/Audio/Plug-Ins/VST/carla.vst/" \
--root "build/carla.vst/" \
"$@"
# ----------------------------------------------------------------------------------------------------------------------------
# LV2 specific files
build/carla.lv2/%$(LIB_EXT): bin/carla.lv2/%$(LIB_EXT)
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/carla.lv2/manifest.ttl: bin/carla.lv2/manifest.ttl
-@mkdir -p $(shell dirname $@)
@cp -v bin/carla.lv2/*.ttl build/carla.lv2/
# ----------------------------------------------------------------------------------------------------------------------------
# VST2 specific files
_MACVST_FILES = Contents/Info.plist Contents/PkgInfo Contents/Resources/empty.lproj
build/carla.vst/Contents/MacOS/CarlaVstShell: bin/CarlaVstShell.dylib $(_MACVST_FILES:%=build/carla.vst/%)
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/carlafx.vst/Contents/MacOS/CarlaVstFxShell: bin/CarlaVstFxShell.dylib $(_MACVST_FILES:%=build/carlafx.vst/%)
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
# ----------------------------------------------------------------------------------------------------------------------------
build/carla.vst/Contents/Info.plist: data/macos/CarlaVstShell.plist
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/carlafx.vst/Contents/Info.plist: data/macos/CarlaVstFxShell.plist
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/%.vst/Contents/PkgInfo:
-@mkdir -p $(shell dirname $@)
@echo "BNDL????" > $@
build/%.vst/Contents/Resources/empty.lproj:
-@mkdir -p $(shell dirname $@)
@touch $@
# ----------------------------------------------------------------------------------------------------------------------------
# Generic plugin rules
build/carla%/resources/carla-plugin-patchbay$(APP_EXT): build/carla%/resources/carla-plugin$(APP_EXT)
-@mkdir -p $(shell dirname $@)
@ln -sfv carla-plugin$(APP_EXT) $@
# ----------------------------------------------------------------------------------------------------------------------------
build/carla.lv2/resources/% build/carla.vst/Contents/MacOS/resources/% build/carlafx.vst/Contents/MacOS/resources/%: build/Carla.app/Contents/MacOS/resources/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/carla.lv2/resources/lib/library.zip build/carla.vst/Contents/MacOS/resources/lib/library.zip build/carlafx.vst/Contents/MacOS/resources/lib/library.zip: build/Carla.app/Contents/MacOS/resources/lib/library.zip
-@mkdir -p $(shell dirname $@)
@cp -rv build/Carla.app/Contents/MacOS/resources/lib/* $(shell dirname $@)/
build/carla.lv2/% build/carla.vst/Contents/MacOS/% build/carlafx.vst/Contents/MacOS/%: build/Carla.app/Contents/MacOS/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
# ----------------------------------------------------------------------------------------------------------------------------

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>CarlaVstFxShell</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>studio.kx.carla.CarlaVstFxShell</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>CarlaVstShell</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>studio.kx.carla.CarlaVstShell</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>