Smoke: decoupling of wavelet #2, new noise strength option on gui, fftw3 option in...
[blender.git] / release / Makefile
index 8453b26c04ec90629daffbc3838b702c2915d355..24827014b16e7e7d1111195f6fd630c349a2403f 100644 (file)
@@ -1,15 +1,13 @@
-#
+# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
+# vim: tabstop=8
 # $Id$
 #
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** 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. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License.  See http://www.blender.org/BL/ for information
-# about this.
+# 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
 #
 # Contributor(s): none yet.
 #
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
 
 include nan_definitions.mk
 
-export VERSION := $(shell cat VERSION)
+export VERSION := $(shell ./getversion.py)
 
-BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)$(TYPE)
+BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)-py$(NAN_PYTHON_VERSION)$(TYPE)
 export DISTDIR=$(NAN_OBJDIR)/$(BLENDNAME)
 export CONFDIR=$(DISTDIR)/.blender
 
+ifeq ($(OS),beos)
+   TAR="zip"
+   TARFLAGS="-ry9"
+   EXT0=""
+   EXT1=".zip"
+   COMPRESS=""
+   EXT2=""
+   NOPLUGINS?=true
+endif
+
+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:
-    ifeq ($(OS),beos)
-       @$(MAKE) pkg TYPE="" TAR="zip -ry9" EXT1=".zip" NOPLUGINS="true"
-    endif
-    ifeq ($(OS),freebsd)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-    endif
-    ifeq ($(OS),irix)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-    endif
-    ifeq ($(OS),linux)
-      ifeq ($(CPU),alpha)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-      endif
-      ifeq ($(CPU),i386)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-       @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-      endif
-      ifeq ($(CPU),powerpc)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-       @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-      endif
-    endif
-    ifeq ($(OS),openbsd)
-       @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-    endif
-    ifeq ($(OS),solaris)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
-           COMPRESS="compress" EXT2=".Z"
-    endif
-    ifeq ($(OS),windows)
-       @$(MAKE) pkg TYPE="" TAR="zip -r9" EXT0=".exe" EXT1=".zip" \
-           NOPLUGINS="true" NOSTRIP="true"
-    endif
-    ifeq ($(OS),darwin)
-       @$(MAKE) pkg TYPE="" TAR="tar cf" EXT0"=.app" EXT1=".tar" \
-           COMPRESS="gzip -f --best" EXT2=".gz"
-    endif
+       @$(MAKE) pkg TYPE=""
+ifeq ($(WITH_BF_STATICOPENGL), true)
+       @$(MAKE) pkg TYPE="-static" 
+endif
 
 # OS independent targets below:
 
@@ -94,19 +101,33 @@ package: version makedirs
 
 install: package
        @#echo "****> Install text"
-       @cp text/README $(DISTDIR)
+       @cp text/blender.html $(DISTDIR)
        @cp text/*.txt $(DISTDIR)
+       @cp text/*.pdf $(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)
+    ifneq ($(OS), darwin)
        @[ ! -d $(OCGDIR)/bin/.blender ] || \
                cp -r $(OCGDIR)/bin/.blender $(DISTDIR)
-       cp $(NANBLENDERHOME)/bin/.blender/.Blanguages $(DISTDIR)/.blender
-       cp $(NANBLENDERHOME)/bin/.blender/.bfont.ttf $(DISTDIR)/.blender
-endif
-
+       @cp $(NANBLENDERHOME)/bin/.blender/.Blanguages $(CONFDIR)
+       @cp $(NANBLENDERHOME)/bin/.blender/.bfont.ttf $(CONFDIR)
+    endif
        @echo "----> Copy blender$(EXT0) executable"
     ifeq ($(TYPE),-static)
        @cp $(OCGDIR)/bin/blenderstatic$(EXT0) $(DISTDIR)/blender$(EXT0)
@@ -116,11 +137,12 @@ endif
     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
 
-       @echo "----> Make Config dir .blender"
-       @mkdir -p $(CONFDIR)
-
 ifneq ($(NOPLUGINS),true)
        @echo "----> Copy and compile plugins"
        @cp -r plugins $(DISTDIR)/plugins
@@ -128,59 +150,73 @@ ifneq ($(NOPLUGINS),true)
        @cp ../source/blender/blenpluginapi/*.h $(DISTDIR)/plugins/include/
        @chmod 755 $(DISTDIR)/plugins/bmake
        @$(MAKE) -C $(DISTDIR)/plugins all  > /dev/null || exit 1;
-       @rm -fr $(DISTDIR)/plugins/CVS $(DISTDIR)/plugins/*/CVS \
-             $(DISTDIR)/plugins/*/*.o
+       @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
-       @[ ! -d $(CONFDIR)/scripts ] || \
-          @rm -fr $(CONFDIR)/scripts/CVS
+       @[ ! -d scripts ] || cp -r scripts $(CONFDIR)/scripts
+
+       @echo "----> Copy python UI files"
+       @[ ! -d ui ] || cp -r ui $(CONFDIR)/ui
+       
+    ifeq ($(OS),darwin)
+       @echo "----> Copy python modules"
+       @mkdir $(CONFDIR)/python/
+       @unzip -q $(LCGDIR)/release/python.zip -d $(CONFDIR)/python/    
+    endif
 
-       @[ ! -d bpydata ] || \
-          @cp -r bpydata $(CONFDIR)/scripts
-       @[ ! -d $(CONFDIR)/bpydata ] || \
-          @rm -fr $(CONFDIR)/bpydata/CVS
+    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 $(OCGDIR)/bin/blender$(EXT0)/Contents/MacOS/blender
+       @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)"
-       @cd $(NAN_OBJDIR) && \
-       rm -f  $(VERSION)/$(BLENDNAME)$(EXT1)* && \
-       $(TAR) $(VERSION)/$(BLENDNAME)$(EXT1) $(BLENDNAME)
+       @#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) $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)
+       @$(COMPRESS) $(COMPRESSFLAGS) $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)
     endif
        @#echo "****> Clean up temporary distribution directory"
-       @rm -fr $(DISTDIR)
+       @#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"
+       @echo "****> Create package directory $(VERSION) if necessary"
        @[ -d $(NAN_OBJDIR)/$(VERSION) ] || mkdir $(NAN_OBJDIR)/$(VERSION)
-       @#echo "****> Prepare temporary distribution directory"
+       @echo "****> Remove and recreate temporary distribution directory"
        @rm -fr $(DISTDIR)
        @mkdir $(DISTDIR)