blender/release/Makefile
Ton Roosendaal b195cdd14c Makefile fix, the getversion.py was using minor release numbers,
which conflicts how paths work in BLI bundle detection.
2010-11-29 17:23:06 +00:00

210 lines
6.2 KiB
Makefile

# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
# vim: tabstop=8
# $Id$
#
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): none yet.
#
# ***** END GPL LICENSE BLOCK *****
include nan_definitions.mk
export VERSION := $(shell ./getversion.py)
BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)-py$(NAN_PYTHON_VERSION)$(TYPE)
export DISTDIR=$(NAN_OBJDIR)/$(BLENDNAME)
export CONFDIR=$(DISTDIR)/.blender
ifeq ($(OS),$(findstring $(OS), "freebsd irix linux openbsd solaris"))
TAR="tar"
TARFLAGS="cf"
EXT0=""
EXT1=".tar"
COMPRESS="bzip2"
COMPRESSFLAGS="-f"
EXT2=".bz2"
ifeq ($(OS), solaris)
ifeq ($(CPU), i386)
NOPLUGINS?=true
endif
endif
# don"t build plugins on irix if using gcc
ifeq ($(OS), irix)
ifeq ($(IRIX_USE_GCC), true)
NOPLUGINS?=true
endif
endif
endif
ifeq ($(OS),windows)
TAR="zip"
TARFLAGS="-r9"
EXT0=".exe"
EXT1=".zip"
NOPLUGINS?=true
NOSTRIP?=true
endif
ifeq ($(OS),darwin)
TAR="tar"
TARFLAGS="cf"
EXT0=".app"
EXT1=".tar"
COMPRESS="bzip2"
COMPRESSFLAGS="-f"
EXT2=".bz2"
endif
release: all
all:
@$(MAKE) pkg TYPE=""
ifeq ($(WITH_BF_STATICOPENGL), true)
@$(MAKE) pkg TYPE="-static"
endif
# OS independent targets below:
dist: all
package: version makedirs
install: package
@#echo "****> Install text"
@cp text/readme.html $(DISTDIR)
@cp text/*.txt $(DISTDIR)
ifeq ($(FREEDESKTOP), true)
@#echo "****> Install freedesktop icons"
@mkdir $(DISTDIR)/icons
@mkdir $(DISTDIR)/icons/16x16
@cp freedesktop/icons/16x16/blender.png $(DISTDIR)/icons/16x16
@mkdir $(DISTDIR)/icons/22x22
@cp freedesktop/icons/22x22/blender.png $(DISTDIR)/icons/22x22
@mkdir $(DISTDIR)/icons/32x32
@cp freedesktop/icons/32x32/blender.png $(DISTDIR)/icons/32x32
@mkdir $(DISTDIR)/icons/scalable
@cp freedesktop/icons/scalable/blender.svg $(DISTDIR)/icons/scalable
endif
@echo "----> Make Config dir .blender"
@mkdir -p $(CONFDIR)
@# possible overruling .txt text documents
@[ ! -d $(CONFIG_GUESS)/text ] || \
cp -f $(CONFIG_GUESS)/text/*.txt $(DISTDIR)
#on OS X the contents of the .blender dir is already inside the bundle
ifneq ($(OS), darwin)
@[ ! -d $(OCGDIR)/bin/.blender ] || \
cp -r $(OCGDIR)/bin/.blender $(DISTDIR)
@cp $(NANBLENDERHOME)/release/bin/.blender/.Blanguages $(CONFDIR)
@cp $(NANBLENDERHOME)/release/bin/.blender/.bfont.ttf $(CONFDIR)
endif
@echo "----> Copy blender$(EXT0) executable"
ifeq ($(TYPE),-static)
@cp $(OCGDIR)/bin/blenderstatic$(EXT0) $(DISTDIR)/blender$(EXT0)
else
ifeq ($(OS),darwin)
@cp -r $(OCGDIR)/bin/blender$(EXT0) $(DISTDIR)/Blender$(EXT0)
else
@cp $(OCGDIR)/bin/blender$(EXT0) $(DISTDIR)/blender$(EXT0)
endif
@if [ -f $(OCGDIR)/bin/blenderplayer$(EXTO) ]; then \
cp $(OCGDIR)/bin/blenderplayer$(EXTO) \
$(DISTDIR)/blenderplayer$(EXTO) ; \
fi
endif
ifneq ($(NOPLUGINS),true)
@echo "----> Copy and compile plugins"
@cp -r plugins $(DISTDIR)/plugins
@mkdir -p $(DISTDIR)/plugins/include
@cp ../source/blender/blenpluginapi/*.h $(DISTDIR)/plugins/include/
@chmod 755 $(DISTDIR)/plugins/bmake
@$(MAKE) -C $(DISTDIR)/plugins all > /dev/null || exit 1;
@rm -f $(DISTDIR)/plugins/*/*.o
#on OS X the plugins move to the installation directory
ifneq ($(OS),darwin)
@mkdir -p $(CONFDIR)/plugins/sequence
@mkdir -p $(CONFDIR)/plugins/texture
@mv $(DISTDIR)/plugins/sequence/*.so $(CONFDIR)/plugins/sequence
@mv $(DISTDIR)/plugins/texture/*.so $(CONFDIR)/plugins/texture
endif
endif
@echo "----> Copy python infrastructure"
@[ ! -d scripts ] || cp -r scripts $(CONFDIR)/scripts
ifeq ($(OS),darwin)
@echo "----> Copy python modules"
@mkdir $(CONFDIR)/python/
@unzip -q $(LCGDIR)/release/python_ppc.zip -d $(CONFDIR)/python/
endif
ifeq ($(OS),darwin)
@echo "----> Move .blender to .app/Contents/MacOS/"
@rm -fr $(DISTDIR)/blender$(EXT0)/Contents/MacOS/.blender
@mv $(DISTDIR)/.blender $(DISTDIR)/blender$(EXT0)/Contents/MacOS/
endif
ifneq ($(NOSTRIP),true)
@echo "----> Strip blender executable"
ifeq ($(OS),darwin)
@strip -x $(DISTDIR)/blender$(EXT0)/Contents/MacOS/blender
else
@strip -x $(DISTDIR)/blender$(EXT0)
@if [ -f $(DISTDIR)/blenderplayer$(EXTO) ]; then \
strip -x $(DISTDIR)/blenderplayer$(EXT0) ; \
fi
endif
endif
@[ ! -x $(CONFIG_GUESS)/specific.sh ] || (\
echo "**--> Execute specific.sh in $(CONFIG_GUESS)/" && \
cd $(CONFIG_GUESS) && ./specific.sh )
@echo "----> Cleaning .svn metadata directories"
@find $(DISTDIR) -type d -name ".svn" | xargs rm -fr
pkg: install
@echo "----> Create distribution file $(BLENDNAME)$(EXT1)"
@#enable the next sleep if you get 'tar file changed while reading'
@#sleep 10
rm -f $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)*
@cd $(NAN_OBJDIR) && $(TAR) $(TARFLAGS) $(VERSION)/$(BLENDNAME)$(EXT1) $(BLENDNAME)
ifdef COMPRESS
@echo "----> Compressing distribution to $(BLENDNAME)$(EXT1)$(EXT2)"
@$(COMPRESS) $(COMPRESSFLAGS) $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)
endif
@#echo "****> Clean up temporary distribution directory"
@#rm -fr $(DISTDIR)
@echo "****> $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)$(EXT2) is ready"
version: FORCE
@echo "*---> Create $(BLENDNAME) package"
makedirs: FORCE
@echo "****> Create package directory $(VERSION) if necessary"
@[ -d $(NAN_OBJDIR)/$(VERSION) ] || mkdir $(NAN_OBJDIR)/$(VERSION)
@echo "****> Remove and recreate temporary distribution directory"
@rm -fr $(DISTDIR)
@mkdir $(DISTDIR)
FORCE: