soc-2008-mxcurioni: merged changes to revision 14798, compilation works for rendering...
[blender.git] / release / Makefile
1 #
2 # $Id$
3 #
4 # ***** BEGIN GPL LICENSE BLOCK *****
5 #
6 # This program is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU General Public License
8 # as published by the Free Software Foundation; either version 2
9 # of the License, or (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software Foundation,
18 # Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 #
20 # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21 # All rights reserved.
22 #
23 # The Original Code is: all of this file.
24 #
25 # Contributor(s): none yet.
26 #
27 # ***** END GPL LICENSE BLOCK *****
28
29 include nan_definitions.mk
30
31 export VERSION := $(shell ./getversion.py)
32
33 BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)-py$(NAN_PYTHON_VERSION)$(TYPE)
34 export DISTDIR=$(NAN_OBJDIR)/$(BLENDNAME)
35 export CONFDIR=$(DISTDIR)/.blender
36
37 ifeq ($(OS),beos)
38    TAR="zip"
39    TARFLAGS="-ry9"
40    EXT0=""
41    EXT1=".zip"
42    COMPRESS=""
43    EXT2=""
44    NOPLUGINS?=true
45 endif
46
47 ifeq ($(OS),$(findstring $(OS), "freebsd irix linux openbsd solaris"))
48    TAR="tar"
49    TARFLAGS="cf"
50    EXT0=""
51    EXT1=".tar"
52    COMPRESS="bzip2"
53    COMPRESSFLAGS="-f"
54    EXT2=".bz2"
55    ifeq ($(OS), solaris)
56      ifeq ($(CPU), i386)
57        NOPLUGINS?=true
58      endif
59    endif
60 endif
61
62 ifeq ($(OS),windows)
63    TAR="zip"
64    TARFLAGS="-r9"
65    EXT0=".exe"
66    EXT1=".zip"
67    NOPLUGINS?=true
68    NOSTRIP?=true
69 endif
70
71 ifeq ($(OS),darwin)
72    TAR="tar"
73    TARFLAGS="cf"
74    EXT0=".app"
75    EXT1=".tar"
76    COMPRESS="bzip2"
77    COMPRESSFLAGS="-f"
78    EXT2=".bz2"
79 endif
80
81 release: all
82
83 all:
84         @$(MAKE) pkg TYPE=""
85 ifeq ($(WITH_BF_STATICOPENGL), true)
86         @$(MAKE) pkg TYPE="-static" 
87 endif
88
89 # OS independent targets below:
90
91 dist: all
92
93 package: version makedirs
94
95 install: package
96         @#echo "****> Install text"
97         @cp text/blender.html $(DISTDIR)
98         @cp text/*.txt $(DISTDIR)
99         @cp text/*.pdf $(DISTDIR)
100     ifeq ($(FREEDESKTOP), true)
101         @#echo "****> Install freedesktop icons"
102         @mkdir $(DISTDIR)/icons
103         @mkdir $(DISTDIR)/icons/16x16
104         @cp freedesktop/icons/16x16/blender.png $(DISTDIR)/icons/16x16
105         @mkdir $(DISTDIR)/icons/22x22
106         @cp freedesktop/icons/22x22/blender.png $(DISTDIR)/icons/22x22
107         @mkdir $(DISTDIR)/icons/32x32
108         @cp freedesktop/icons/32x32/blender.png $(DISTDIR)/icons/32x32
109         @mkdir $(DISTDIR)/icons/scalable
110         @cp freedesktop/icons/scalable/blender.svg $(DISTDIR)/icons/scalable
111     endif
112         @echo "----> Make Config dir .blender"
113         @mkdir -p $(CONFDIR)
114         @# possible overruling .txt text documents
115         @[ ! -d $(CONFIG_GUESS)/text ] || \
116             cp -f $(CONFIG_GUESS)/text/*.txt $(DISTDIR)
117 #on OS X the contents of the .blender dir is already inside the bundle
118     ifneq ($(OS), darwin)
119         @[ ! -d $(OCGDIR)/bin/.blender ] || \
120                 cp -r $(OCGDIR)/bin/.blender $(DISTDIR)
121         @rm -rf $(DISTDIR)/.svn $(DISTDIR)/*/.svn $(DISTDIR)/*/*/.svn
122         @cp $(NANBLENDERHOME)/bin/.blender/.Blanguages $(CONFDIR)
123         @cp $(NANBLENDERHOME)/bin/.blender/.bfont.ttf $(CONFDIR)
124     endif
125         @echo "----> Copy blender$(EXT0) executable"
126     ifeq ($(TYPE),-static)
127         @cp $(OCGDIR)/bin/blenderstatic$(EXT0) $(DISTDIR)/blender$(EXT0)
128     else
129     ifeq ($(OS),darwin)
130         @cp -r $(OCGDIR)/bin/blender$(EXT0) $(DISTDIR)/Blender$(EXT0)
131     else
132         @cp $(OCGDIR)/bin/blender$(EXT0) $(DISTDIR)/blender$(EXT0)
133     endif
134         @if [ -f $(OCGDIR)/bin/blenderplayer$(EXTO) ]; then \
135                 cp $(OCGDIR)/bin/blenderplayer$(EXTO) \
136                         $(DISTDIR)/blenderplayer$(EXTO) ; \
137         fi
138     endif
139
140 ifneq ($(NOPLUGINS),true)
141         @echo "----> Copy and compile plugins"
142         @cp -r plugins $(DISTDIR)/plugins
143         @mkdir -p $(DISTDIR)/plugins/include
144         @cp ../source/blender/blenpluginapi/*.h $(DISTDIR)/plugins/include/
145         @chmod 755 $(DISTDIR)/plugins/bmake
146         @$(MAKE) -C $(DISTDIR)/plugins all  > /dev/null || exit 1;
147         @rm -fr $(DISTDIR)/plugins/.svn $(DISTDIR)/plugins/*/.svn \
148              $(DISTDIR)/plugins/*/*.o
149
150 #on OS X the plugins move to the installation directory
151     ifneq ($(OS),darwin)
152         @mkdir -p $(CONFDIR)/plugins/sequence
153         @mkdir -p $(CONFDIR)/plugins/texture
154         @mv $(DISTDIR)/plugins/sequence/*.so $(CONFDIR)/plugins/sequence
155         @mv $(DISTDIR)/plugins/texture/*.so $(CONFDIR)/plugins/texture
156     endif
157 endif
158
159         @echo "----> Copy python infrastructure"
160         @[ ! -d scripts ] || cp -r scripts $(CONFDIR)/scripts
161         @[ ! -d $(CONFDIR)/scripts ] || rm -fr $(CONFDIR)/scripts/.svn $(CONFDIR)/scripts/*/.svn $(CONFDIR)/scripts/*/*/.svn
162
163     ifeq ($(OS),darwin)
164         @echo "----> Move .blender to .app/Contents/MacOS/"
165         @rm -fr $(DISTDIR)/blender$(EXT0)/Contents/MacOS/.blender
166         @mv $(DISTDIR)/.blender $(DISTDIR)/blender$(EXT0)/Contents/MacOS/
167     endif
168
169     ifneq ($(NOSTRIP),true)
170         @echo "----> Strip blender executable"
171       ifeq ($(OS),darwin)
172         @strip -x $(DISTDIR)/blender$(EXT0)/Contents/MacOS/blender
173       else
174         @strip -x $(DISTDIR)/blender$(EXT0)
175         @if [ -f $(DISTDIR)/blenderplayer$(EXTO) ]; then \
176            strip -x $(DISTDIR)/blender$(EXT0) ; \
177         fi
178       endif
179     endif
180         @[ ! -x $(CONFIG_GUESS)/specific.sh ] || (\
181             echo "**--> Execute specific.sh in $(CONFIG_GUESS)/" && \
182             cd $(CONFIG_GUESS) && ./specific.sh )
183
184 pkg: install
185         @echo "----> Create distribution file $(BLENDNAME)$(EXT1)"
186         @#enable the next sleep if you get 'tar file changed while reading'
187         @#sleep 10
188         rm -f  $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)*
189         @cd $(NAN_OBJDIR) && $(TAR) $(TARFLAGS) $(VERSION)/$(BLENDNAME)$(EXT1) $(BLENDNAME)
190     ifdef COMPRESS
191         @echo "----> Compressing distribution to $(BLENDNAME)$(EXT1)$(EXT2)"
192         @$(COMPRESS) $(COMPRESSFLAGS) $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)
193     endif
194         @#echo "****> Clean up temporary distribution directory"
195         @rm -fr $(DISTDIR)
196         @echo "****> $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)$(EXT2) is ready"
197
198 version: FORCE
199         @echo "*---> Create $(BLENDNAME) package"
200
201 makedirs: FORCE
202         @#echo "****> Create package directory $(VERSION) if necessary"
203         @[ -d $(NAN_OBJDIR)/$(VERSION) ] || mkdir $(NAN_OBJDIR)/$(VERSION)
204         @#echo "****> Prepare temporary distribution directory"
205         @rm -fr $(DISTDIR)
206         @mkdir $(DISTDIR)
207
208 FORCE: