aboutsummaryrefslogtreecommitdiff
path: root/Makefile.linux
diff options
context:
space:
mode:
authorBen Marsh <[email protected]>2019-10-22 09:07:59 -0400
committerBen Marsh <[email protected]>2019-10-22 09:07:59 -0400
commitbd0027e737c6512397f841c22786274ed74b927f (patch)
treef7ffbdb8f3741bb7f24635616cc189cba5cb865c /Makefile.linux
downloadshave-and-a-haircut-bd0027e737c6512397f841c22786274ed74b927f.tar.xz
shave-and-a-haircut-bd0027e737c6512397f841c22786274ed74b927f.zip
Adding Shave-and-a-Haircut 9.6
Diffstat (limited to 'Makefile.linux')
-rw-r--r--Makefile.linux557
1 files changed, 557 insertions, 0 deletions
diff --git a/Makefile.linux b/Makefile.linux
new file mode 100644
index 0000000..10c5084
--- /dev/null
+++ b/Makefile.linux
@@ -0,0 +1,557 @@
+# Shave and a Haircut
+# (c) 2019 Epic Games
+# US Patent 6720962
+
+####################################################################
+#
+# Maya Version & Location
+#
+####################################################################
+
+ifndef MAYA_LOCATION
+$(error "MAYA_LOCATION is not defined")
+endif
+
+ifeq ($(wildcard $(MAYA_LOCATION)),)
+$(error "MAYA_LOCATION contains '$(MAYA_LOCATION)', which does not exist.")
+endif
+
+# Get the Maya version number. (Actually, just the API version, but that's
+# all we care about.)
+#
+apiVersion := $(shell grep '^[ \t]*\#define[ \t]*MAYA_API_VERSION' $(MAYA_LOCATION)/include/maya/MTypes.h | sed 's/^[^0-9]*//')
+
+# From Maya 2018 onward the API version number is 8 digits long
+#
+ifeq ($(shell echo '$(apiVersion) >= 20180000' | bc),1)
+ mayaMajorVersion := $(shell echo $(apiVersion) | sed 's/\(.*\)[0-9][0-9][0-9][0-9]$$/\1/')
+else
+ mayaMajorVersion := $(shell echo $(apiVersion) | sed 's/\(.*\)[0-9][0-9]$$/\1/')
+endif
+
+mayaMinorVersion := 0
+mayaVersion := $(mayaMajorVersion)
+mayaCompressedVersion2 := $(mayaMajorVersion)
+mayaCompressedVersion1 := $(mayaMajorVersion)$(mayaMinorVersion)
+
+ifeq ($(filter-out 1 2 3 4 5,$(mayaMajorVersion)),)
+$(error "Version $(mayaVersion) of Maya is not supported.")
+endif
+
+
+####################################################################
+#
+# Plugin Version
+#
+####################################################################
+
+#
+# Get the plugin version and release from the shaveVersion.mel file.
+#
+pluginVersion := $(shell grep "return" scripts/shaveVersion.mel | sed 's/^[^"]*"\([^v"]*\)[v"].*$$/\1/')
+
+release := $(shell grep "return" scripts/shaveVersion.mel | sed 's/^[^v]*v\([^"]*\)".*$$/\1/')
+
+
+###################################################################
+#
+# Package Name
+#
+####################################################################
+
+package:= shaveHaircut
+packageFull := $(package)_Maya$(mayaMajorVersion)_$(mayaMinorVersion)
+
+
+####################################################################
+#
+# Build Variables
+#
+####################################################################
+
+#
+# Get the target architecture for which we are building the package.
+#
+targetArch := x86_64
+libShaveEngine := libShaveEngine-x64.so
+packageFull := $(packageFull)_64
+
+mayaRPMVersionRequired := Maya$(mayaMajorVersion)_$(mayaMinorVersion)_64
+versionedPackageName := $(packageFull)-$(pluginVersion)
+
+#
+# Set up some variables used in the rest of the file.
+#
+melScripts := $(wildcard scripts/*.mel)
+
+#
+# Any sample files which require renaming when building the rpm, cannot
+# appear in the following variable and must instead be dealt with
+# individually.
+#
+sampleFiles := mayaPlug/shaveAPITestCmd.cpp mayaPlug/shaveAPITestApp.cpp \
+ libexe/$(libShaveEngine) libexe/shaveEngine.h libexe/shaveSDKTYPES.h
+
+INSTALL_ROOT ?=
+
+
+####################################################################
+#
+# Arnold Location
+#
+####################################################################
+
+arnoldLocation := /opt/solidangle/mtoa/$(mayaCompressedVersion2)
+arnoldVersionDB := $(shell arnold/getMayaConfig.sh $(mayaVersion) versionDB)
+arnoldVersions := $(shell grep "^$(mayaVersion):" $(arnoldVersionDB) | sed -e 's/^.*[ \t]\([^ \t]\)/\1/' -e 's/[ \t]*$$//')
+
+$(info maya $(mayaVersion) mtoa/arnold $(arnoldVersions))
+
+####################################################################
+#
+# RenderMan Studio Versions
+#
+####################################################################
+
+rmanVersionDB := prman/supportedRManVersions.txt
+rmsVersions := $(subst RMS,,$(notdir $(wildcard prman/plugins/RMS*)))
+
+####################################################################
+#
+# V-Ray Location
+#
+####################################################################
+
+vrayLocation := $(MAYA_LOCATION)/vray
+vrayPluginsLocation := $(vrayLocation)/vrayplugins
+vrayVersionDB := $(shell vrayPlug/getMayaConfig.sh $(mayaVersion) versionDB)
+vrayTags := $(shell vrayPlug/getMayaConfig.sh $(mayaVersion) versionTags)
+
+
+####################################################################
+#
+# Maya Module File
+#
+####################################################################
+
+moduleFile := $(package).mod
+moduleBase := $(MAYA_LOCATION)/modules
+moduleLocation := $(moduleBase)/Epic Games/$(package)
+
+.PHONY: module-file
+
+module-file:
+ @echo "+ "$(package)" "$(pluginVersion)" "$(moduleLocation) \
+ >$(moduleFile)
+
+
+####################################################################
+#
+# Cleanup
+#
+####################################################################
+
+clean:
+ -rm -f *.o
+
+Clean:
+ -rm -f *.o *.so *.bak
+
+
+####################################################################
+#
+# Install
+#
+####################################################################
+
+.PHONY: install
+
+install:
+ install -d "$(INSTALL_ROOT)$(moduleBase)"
+ install -m 644 $(moduleFile) "$(INSTALL_ROOT)$(moduleBase)"
+ install -d "$(INSTALL_ROOT)$(moduleLocation)"
+ install -m 644 Install.html "$(INSTALL_ROOT)$(moduleLocation)"
+ install -m 644 arnold/supportedMtoAVersions.txt "$(INSTALL_ROOT)$(moduleLocation)"
+ install -m 644 prman/supportedRManVersions.txt "$(INSTALL_ROOT)$(moduleLocation)"
+ install -m 644 vrayPlug/supportedVrayVersions.txt "$(INSTALL_ROOT)$(moduleLocation)"
+ @# Shave plugin
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/plug-ins"
+ install -m 644 mayaPlug/shaveNode.so "$(INSTALL_ROOT)$(moduleLocation)/plug-ins"
+ install -d "$(INSTALL_ROOT)$(MAYA_LOCATION)/lib"
+ install -m 644 mayaPlug/libShave.so "$(INSTALL_ROOT)$(MAYA_LOCATION)/lib"
+ install -m 644 mayaPlug/$(libShaveEngine) "$(INSTALL_ROOT)$(MAYA_LOCATION)/lib"
+ install -m 644 mayaPlug/libShaveAPI.so "$(INSTALL_ROOT)$(MAYA_LOCATION)/lib"
+ @# MEL Scripts
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/scripts"
+ install -m 644 $(melScripts) "$(INSTALL_ROOT)$(moduleLocation)/scripts"
+ @# Maya shaders
+ install -d "$(INSTALL_ROOT)$(MAYA_LOCATION)/bin/Cg"
+ install -m 644 CgFx/shaveHair.cgfx "$(INSTALL_ROOT)$(MAYA_LOCATION)/bin/Cg"
+ @# Shave standalone SDK
+ install -d "$(INSTALL_ROOT)$(MAYA_LOCATION)/include/maya"
+ install -m 644 mayaPlug/shaveAPI.h "$(INSTALL_ROOT)$(MAYA_LOCATION)/include/maya"
+ install -m 644 mayaPlug/shaveItHair.h "$(INSTALL_ROOT)$(MAYA_LOCATION)/include/maya"
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/samples"
+ for f in $(notdir $(sampleFiles)); do \
+ install -m 644 mayaPlug/$$f "$(INSTALL_ROOT)$(moduleLocation)/samples"; \
+ done
+ install -m 644 mayaPlug/README-samples.linux "$(INSTALL_ROOT)$(moduleLocation)/samples/README"
+ @# Icons
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/icons"
+ install -m 644 mayaPlug/icons/shaveDefaultSwatch.xpm "$(INSTALL_ROOT)$(moduleLocation)/icons"
+ install -m 644 mayaPlug/icons/shaveDefaultSwatch.png "$(INSTALL_ROOT)$(moduleLocation)/icons"
+ @# Presets
+ install -d "$(INSTALL_ROOT)$(MAYA_LOCATION)/presets/attrPresets/shaveHair"
+ install -m 644 $(wildcard presets/*.mel) "$(INSTALL_ROOT)$(MAYA_LOCATION)/presets/attrPresets/shaveHair"
+ install -m 644 $(wildcard presets/*.xpm) "$(INSTALL_ROOT)$(MAYA_LOCATION)/presets/attrPresets/shaveHair"
+ install -m 644 $(wildcard presets/*.png) "$(INSTALL_ROOT)$(MAYA_LOCATION)/presets/attrPresets/shaveHair"
+ @# More icons
+ install -d "$(INSTALL_ROOT)$(MAYA_LOCATION)/icons"
+ install -m 444 mayaPlug/icons/*.xpm \
+ "$(INSTALL_ROOT)$(MAYA_LOCATION)/icons"
+ install -m 444 mayaPlug/icons/*.png \
+ "$(INSTALL_ROOT)$(MAYA_LOCATION)/icons"
+ @# Arnold extensions and shaders
+ install -d "$(INSTALL_ROOT)$(arnoldLocation)/extensions"
+ install -m 644 $(wildcard arnold/shave-*.so) "$(INSTALL_ROOT)$(arnoldLocation)/extensions"
+ install -m 644 $(wildcard arnold/shave-*.py) "$(INSTALL_ROOT)$(arnoldLocation)/extensions"
+ install -d "$(INSTALL_ROOT)$(arnoldLocation)/shaders"
+ install -m 644 $(wildcard arnold/shave_shaders-*.so) "$(INSTALL_ROOT)$(arnoldLocation)/shaders"
+ @# RenderMan plugins and shaders
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/shaders"
+ install -m 644 prman/Shave.slo "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/shaders"
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/shaders/src"
+ install -m 644 prman/Shave.sl "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/shaders/src"
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/RMS19"
+ for v in $(rmsVersions); do \
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/RMS$$v"; \
+ for f in prman/plugins/RMS$$v/*; do \
+ if `test -f $$f`; then \
+ install -m 644 $$f "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/prman/RMS$$v"; \
+ fi; \
+ done; \
+ done
+ @# V-Ray exporter lib
+ install -d "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/vray"
+ for f in mayaPlug/vray/libShaveVray*Exporter.so; do \
+ install -m 644 $$f "$(INSTALL_ROOT)$(moduleLocation)/plug-ins/vray"; \
+ done
+ @# V-Ray plugins and shaders
+ install -d "$(INSTALL_ROOT)$(vrayLocation)"
+ install -d "$(INSTALL_ROOT)$(vrayPluginsLocation)"
+ for f in vrayPlug/*.so; do \
+ install -m 644 $$f "$(INSTALL_ROOT)$(vrayPluginsLocation)"; \
+ done
+
+
+####################################################################
+#
+# RPM Distribution
+#
+####################################################################
+
+#
+# Create the RPM file.
+#
+# We do it in a subdirectory of the current directory, so that the user has
+# access to it, as opposed to /usr/src/redhat, which only the superuser can
+# access.
+#
+rpmTemp := `pwd`/rpm
+
+rpm: module-file spec-file build-archive
+ echo $(versionedPackageName).tgz
+ @# Create a temporary RPM build tree.
+ @rm -rf $(rpmTemp)
+ @install -d $(rpmTemp)/BUILD
+ @install -d $(rpmTemp)/RPMS
+ @install -d $(rpmTemp)/RPMS/$(targetArch)
+ @install -d $(rpmTemp)/SOURCES
+ @install -d $(rpmTemp)/SPECS
+ @install -d $(rpmTemp)/SRPMS
+ @# Copy the source archive and spec file into the temp build tree.
+ @mv $(versionedPackageName).tgz $(rpmTemp)/SOURCES
+ @cp $(package).spec $(rpmTemp)/SPECS
+ @# Build a binary RPM
+ @rpmbuild -bb --target $(targetArch)-who-Linux \
+ --define "_topdir "$(rpmTemp) \
+ --buildroot $(rpmTemp)/install $(rpmTemp)/SPECS/$(package).spec
+ @# Move the binary RPM out of the tree and into the current directory.
+ @mv $(rpmTemp)/RPMS/$(targetArch)/*.rpm .
+ @# Delete the temp build tree and other generated files.
+ @rm -rf $(rpmTemp)
+ @rm -f $(package).spec
+ @rm -f $(moduleFile)
+
+#
+# Create a spec file for this release, using spec.in as a template.
+#
+.PHONY: spec-file
+
+spec-file:
+ @echo "# This file was automatically generated from spec.in" >$(package).spec
+ @m4 -P \
+ -D_PACKAGE_="$(package)" \
+ -D_PACKAGE_FULL_="$(packageFull)" \
+ -D_VERSION_="$(pluginVersion)" \
+ -D_RELEASE_="$(release)" \
+ -D_MAYA_MAJOR_VERSION_="$(mayaMajorVersion)" \
+ -D_MAYA_MINOR_VERSION_="$(mayaMinorVersion)" \
+ -D_MAYA_SUB_VERSION_="$(mayaSubVersion)" \
+ -D_MAYA_LOCATION_="$(MAYA_LOCATION)" \
+ -D_MODULE_BASE_="$(moduleBase)" \
+ -D_MODULE_LOCATION_="$(moduleLocation)" \
+ -D_MAYA_VRAYPLUGINS_LOCATION_="$(vrayPluginsLocation)" \
+ -D_MAYA_RPM_VERSION_REQUIRED_="$(mayaRPMVersionRequired)" \
+ spec.in >> $(package).spec
+ @# Add the package's file specifications to the end of the spec file.
+ @echo "%attr(644, root, root) \"$(moduleBase)/$(moduleFile)\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/Install.html\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/$(notdir $(arnoldVersionDB))\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/$(notdir $(rmanVersionDB))\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/$(notdir $(vrayVersionDB))\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/plug-ins/shaveNode.so\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(MAYA_LOCATION)/bin/Cg/shaveHair.cgfx\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(MAYA_LOCATION)/lib/libShave.so\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(MAYA_LOCATION)/lib/$(libShaveEngine)\"" \
+ >> $(package).spec
+ @for f in $(notdir $(sampleFiles)); do \
+ echo "%attr(644, root, root) \"$(moduleLocation)/samples/$$f\"" \
+ >> $(package).spec; \
+ done
+ @echo "%attr(644, root, root) \"$(moduleLocation)/samples/README\"" \
+ >> $(package).spec
+ @for f in $(notdir $(melScripts)); do \
+ echo "%attr(644, root, root) \"$(moduleLocation)/scripts/$$f\"" \
+ >> $(package).spec; \
+ done
+ @echo "%attr(644, root, root) \"$(MAYA_LOCATION)/lib/libShaveAPI.so\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(MAYA_LOCATION)/include/maya/shaveAPI.h\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(MAYA_LOCATION)/include/maya/shaveItHair.h\"" \
+ >> $(package).spec
+
+ @# Icons
+ @echo "%attr(644, root, root) \"$(moduleLocation)/icons/shaveDefaultSwatch.xpm\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/icons/shaveDefaultSwatch.png\"" \
+ >> $(package).spec
+ @for f in $(notdir $(wildcard libexe/icons/maya/selection/*.xpm)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/selection/*.png)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/selectUtils/*.xpm)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/selectUtils/*.png)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/tools/*.xpm)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/tools/*.png)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/transforms/*.xpm)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/transforms/*.png)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/utils/*.xpm)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard libexe/icons/maya/utils/*.png)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard mayaPlug/icons/*.xpm)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard mayaPlug/icons/*.png)); do \
+ echo "%attr(444, root, root) \"$(MAYA_LOCATION)/icons/$$f\"" \
+ >> $(package).spec; \
+ done
+
+ @# Presets
+ @for f in $(notdir $(wildcard presets/*.mel)); do \
+ echo "%attr(644, root, root) \"$(MAYA_LOCATION)/presets/attrPresets/shaveHair/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard presets/*.xpm)); do \
+ echo "%attr(644, root, root) \"$(MAYA_LOCATION)/presets/attrPresets/shaveHair/$$f\"" \
+ >> $(package).spec; \
+ done
+ @for f in $(notdir $(wildcard presets/*.png)); do \
+ echo "%attr(644, root, root) \"$(MAYA_LOCATION)/presets/attrPresets/shaveHair/$$f\"" \
+ >> $(package).spec; \
+ done
+ @# Arnold shaders and plugins
+ echo "for spec-file arnoldVersions is '$(arnoldVersions)'"
+ @for v in $(arnoldVersions); do \
+ mtoaVersion=$${v/\/*/}; \
+ arnoldVersion=$${v/*\//}; \
+ echo "%attr(644, root, root) \"$(arnoldLocation)/extensions/shave-$${mtoaVersion//./_}.so\"" >> $(package).spec; \
+ echo "%attr(644, root, root) \"$(arnoldLocation)/extensions/shave-$${mtoaVersion//./_}.py\"" >> $(package).spec; \
+ echo "%attr(644, root, root) \"$(arnoldLocation)/shaders/shave_shaders-$${arnoldVersion//./_}.so\"" >> $(package).spec; \
+ done
+
+ @# RenderMan shaders and plugins
+ @echo "%attr(644, root, root) \"$(moduleLocation)/plug-ins/prman/shaders/Shave.slo\"" \
+ >> $(package).spec
+ @echo "%attr(644, root, root) \"$(moduleLocation)/plug-ins/prman/shaders/src/Shave.sl\"" \
+ >> $(package).spec
+ @for v in $(rmsVersions); do \
+ for f in prman/plugins/RMS$$v/maya$(mayaMajorVersion)/linux/*; do \
+ if `test -f $$f`; then \
+ echo "%attr(644, root, root) \"$(moduleLocation)/plug-ins/prman/RMS$$v/`basename $$f`\"" \
+ >> $(package).spec; \
+ fi; \
+ done; \
+ done
+
+ @# VRay shaders and plugins
+ for tag in $(vrayTags); do \
+ echo "%attr(644, root, root) \"$(vrayPluginsLocation)/libvray_Shave$${tag}.so\"" \
+ >> $(package).spec; \
+ echo "%attr(644, root, root) \"$(vrayPluginsLocation)/ShaveSh$${tag}.so\"" \
+ >> $(package).spec; \
+ echo "%attr(644, root, root) \"$(moduleLocation)/plug-ins/vray/libShaveVray$${tag}Exporter.so\"" \
+ >> $(package).spec; \
+ done
+
+#
+# Create an archive, in tgz format, of the files needed by rpmbuild to
+# create the RPM file.
+#
+# Note that normally we would create a source archive and then let rpmbuild
+# rebuild the binaries for us. However, when generating RPMs for several
+# different versions of Maya, the libexe binaries only need to be built
+# once while the others need to be rebuilt for each RPM.
+#
+# So we handle the building in a script outside of this Makefile and then
+# just use this Makefile to put the finished binaries into an RPM.
+#
+.PHONY: build-archive
+
+build-archive:
+ @# If a subdirectory with the same name as the package already
+ @# exists, remove it.
+ @rm -rf $(versionedPackageName);
+ @# Create a subdirectory with the same name as the package.
+ @mkdir $(versionedPackageName)
+ @# Copy the module file, Makefile and spec file into the main directory
+ @cp $(moduleFile) Makefile.linux $(package).spec $(versionedPackageName)
+ @# Copy the installation documentation
+ @cp install/docs/Install.html $(versionedPackageName)
+ @cp $(arnoldVersionDB) $(versionedPackageName)
+ @cp $(rmanVersionDB) $(versionedPackageName)
+ @cp $(vrayVersionDB) $(versionedPackageName)
+ @# Copy any utils scripts that this Makefile will need during install
+ @mkdir $(versionedPackageName)/utils
+ @# Copy the plugins and executables into their appropriate directories
+ @mkdir $(versionedPackageName)/mayaPlug
+ @cp mayaPlug/shaveNode.so $(versionedPackageName)/mayaPlug
+ @cp mayaPlug/libShave.so $(versionedPackageName)/mayaPlug
+ @cp libexe/$(libShaveEngine) $(versionedPackageName)/mayaPlug
+ @cp mayaPlug/libShaveAPI.so $(versionedPackageName)/mayaPlug
+ @cp mayaPlug/shaveAPI.h $(versionedPackageName)/mayaPlug
+ @cp mayaPlug/shaveItHair.h $(versionedPackageName)/mayaPlug
+ @mkdir $(versionedPackageName)/CgFx
+ @cp CgFx/shaveHair.cgfx $(versionedPackageName)/CgFx
+ @mkdir $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/selection/*.xpm \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/selection/*.png \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/selectUtils/*.xpm \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/selectUtils/*.png \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/tools/*.xpm \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/tools/*.png \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/transforms/*.xpm \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/transforms/*.png \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/utils/*.xpm \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp libexe/icons/maya/utils/*.png \
+ $(versionedPackageName)/mayaPlug/icons
+ @cp mayaPlug/icons/*.xpm $(versionedPackageName)/mayaPlug/icons
+ @cp mayaPlug/icons/*.png $(versionedPackageName)/mayaPlug/icons
+ @for f in $(sampleFiles); do \
+ cp $$f $(versionedPackageName)/mayaPlug/`basename $$f`; \
+ done
+ @cp mayaPlug/README-samples.linux $(versionedPackageName)/mayaPlug
+ @mkdir $(versionedPackageName)/presets
+ @cp presets/*.mel $(versionedPackageName)/presets
+ @cp presets/*.xpm $(versionedPackageName)/presets
+ @cp presets/*.png $(versionedPackageName)/presets
+
+ @mkdir $(versionedPackageName)/arnold
+ @cp arnold/getMayaConfig.sh $(versionedPackageName)/arnold
+ @cp arnold/supportedMtoAVersions.txt $(versionedPackageName)/arnold
+ echo "for build-archive arnoldVersions is '$(arnoldVersions)'"
+ @for v in $(arnoldVersions); do \
+ mtoaVersion=$${v/\/*/}; \
+ sdkVersion=$${v/*\//}; \
+ cp arnold/Release/$(mayaVersion)/$${mtoaVersion}/shave.so $(versionedPackageName)/arnold/shave-$${mtoaVersion//./_}.so; \
+ cp arnold/plugin/shave.py $(versionedPackageName)/arnold/shave-$${mtoaVersion//./_}.py; \
+ cp arnold/Release/$(mayaVersion)/$${mtoaVersion}/shave_shaders-$${sdkVersion//./_}.so $(versionedPackageName)/arnold; \
+ done
+
+ @mkdir $(versionedPackageName)/prman
+ @cp prman/supportedRManVersions.txt $(versionedPackageName)/prman
+ @cp libexe/Shave.slo $(versionedPackageName)/prman
+ @cp libexe/Shave.sl $(versionedPackageName)/prman
+ @for v in $(rmsVersions); do \
+ mkdir -p $(versionedPackageName)/prman/plugins/RMS$$v; \
+ for f in prman/plugins/RMS$$v/maya$(mayaMajorVersion)/linux/*; do \
+ if `test -f $$f`; then \
+ cp $$f $(versionedPackageName)/prman/plugins/RMS$$v; \
+ fi; \
+ done; \
+ done
+
+ mkdir $(versionedPackageName)/vrayPlug
+ mkdir $(versionedPackageName)/mayaPlug/vray
+ @cp vrayPlug/getMayaConfig.sh $(versionedPackageName)/vrayPlug
+ @cp vrayPlug/supportedVrayVersions.txt $(versionedPackageName)/vrayPlug
+ for tag in $(vrayTags); do \
+ cp vrayPlug/bin/linux_x64/libvray_Shave$${tag}.so $(versionedPackageName)/vrayPlug; \
+ cp vrayPlug/bin/linux_x64/ShaveSh$${tag}.so $(versionedPackageName)/vrayPlug; \
+ cp mayaPlug/vray/libShaveVray$${tag}Exporter.so $(versionedPackageName)/mayaPlug/vray; \
+ done
+ @mkdir $(versionedPackageName)/libexe
+ @# Copy the scripts into the 'scripts' subdirectory.
+ @mkdir $(versionedPackageName)/scripts
+ @cp $(melScripts) $(versionedPackageName)/scripts
+ @# tar it all up
+ @rm -f $(versionedPackageName).tgz
+ @tar czf $(versionedPackageName).tgz $(versionedPackageName)
+ @rm -rf $(versionedPackageName)
+