Another merger of Orange branch with bf-blender, it has important fixes.
[blender.git] / release / Makefile
1 #
2 # $Id$
3 #
4 # ***** BEGIN GPL/BL DUAL 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. The Blender
10 # Foundation also sells licenses for use in proprietary software under
11 # the Blender License.  See http://www.blender.org/BL/ for information
12 # about this.
13 #
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software Foundation,
21 # Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22 #
23 # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24 # All rights reserved.
25 #
26 # The Original Code is: all of this file.
27 #
28 # Contributor(s): none yet.
29 #
30 # ***** END GPL/BL DUAL LICENSE BLOCK *****
31
32 include nan_definitions.mk
33
34 export VERSION := $(shell cat VERSION)
35
36 BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)$(TYPE)
37 export DISTDIR=$(NAN_OBJDIR)/$(BLENDNAME)
38 export CONFDIR=$(DISTDIR)/.blender
39
40 release: all
41
42 all:
43     ifeq ($(OS),beos)
44         @$(MAKE) pkg TYPE="" TAR="zip -ry9" EXT1=".zip" NOPLUGINS="true"
45     endif
46     ifeq ($(OS),freebsd)
47         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
48             COMPRESS="gzip -f --best" EXT2=".gz"
49     endif
50     ifeq ($(OS),irix)
51         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
52             COMPRESS="gzip -f --best" EXT2=".gz"
53     endif
54     ifeq ($(OS),linux)
55       ifeq ($(CPU),alpha)
56         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
57             COMPRESS="gzip -f --best" EXT2=".gz"
58       endif
59       ifeq ($(CPU),i386)
60         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
61             COMPRESS="gzip -f --best" EXT2=".gz"
62         @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
63             COMPRESS="gzip -f --best" EXT2=".gz"
64       endif
65       ifeq ($(CPU),powerpc)
66         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
67             COMPRESS="gzip -f --best" EXT2=".gz"
68         @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
69             COMPRESS="gzip -f --best" EXT2=".gz"
70       endif
71     endif
72     ifeq ($(OS),openbsd)
73         @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
74             COMPRESS="gzip -f --best" EXT2=".gz"
75     endif
76     ifeq ($(OS),solaris)
77         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
78             COMPRESS="compress" EXT2=".Z"
79     endif
80     ifeq ($(OS),windows)
81         @$(MAKE) pkg TYPE="" TAR="zip -r9" EXT0=".exe" EXT1=".zip" \
82             NOPLUGINS="true" NOSTRIP="true"
83     endif
84     ifeq ($(OS),darwin)
85         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT0"=.app" EXT1=".tar" \
86             COMPRESS="gzip -f --best" EXT2=".gz"
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         @echo "----> Make Config dir .blender"
100         @mkdir -p $(CONFDIR)
101         @# possible overruling .txt text documents
102         @[ ! -d $(CONFIG_GUESS)/text ] || \
103             cp -f $(CONFIG_GUESS)/text/*.txt $(DISTDIR)
104 #on OS X the contents of the .blender dir is already inside the bundle
105 ifneq ($(OS), darwin)
106         @[ ! -d $(OCGDIR)/bin/.blender ] || \
107                 cp -r $(OCGDIR)/bin/.blender $(DISTDIR)
108         cp $(NANBLENDERHOME)/bin/.blender/.Blanguages $(CONFDIR)
109         cp $(NANBLENDERHOME)/bin/.blender/.bfont.ttf $(CONFDIR)
110 endif
111
112         @echo "----> Copy blender$(EXT0) executable"
113     ifeq ($(TYPE),-static)
114         @cp $(OCGDIR)/bin/blenderstatic$(EXT0) $(DISTDIR)/blender$(EXT0)
115     else
116     ifeq ($(OS),darwin)
117         @cp -r $(OCGDIR)/bin/blender$(EXT0) $(DISTDIR)/Blender$(EXT0)
118     else
119         @cp $(OCGDIR)/bin/blender$(EXT0) $(DISTDIR)/blender$(EXT0)
120     endif
121         @if [ -f $(OCGDIR)/bin/blenderplayer$(EXTO) ]; then \
122                 cp $(OCGDIR)/bin/blenderplayer$(EXTO) \
123                         $(DISTDIR)/blenderplayer$(EXTO) ; \
124         fi
125     endif
126
127 ifneq ($(NOPLUGINS),true)
128         @echo "----> Copy and compile plugins"
129         @cp -r plugins $(DISTDIR)/plugins
130         @mkdir -p $(DISTDIR)/plugins/include
131         @cp ../source/blender/blenpluginapi/*.h $(DISTDIR)/plugins/include/
132         @chmod 755 $(DISTDIR)/plugins/bmake
133         @$(MAKE) -C $(DISTDIR)/plugins all  > /dev/null || exit 1;
134         @rm -fr $(DISTDIR)/plugins/CVS $(DISTDIR)/plugins/*/CVS \
135              $(DISTDIR)/plugins/*/*.o
136         @mkdir -p $(CONFDIR)/plugins/sequence
137         @mkdir -p $(CONFDIR)/plugins/texture
138
139         @mv $(DISTDIR)/plugins/sequence/*.so $(CONFDIR)/plugins/sequence
140         @mv $(DISTDIR)/plugins/texture/*.so $(CONFDIR)/plugins/texture
141
142 endif
143
144         @echo "----> Copy python infrastructure"
145         @[ ! -d scripts ] || cp -r scripts $(CONFDIR)/scripts
146         @[ ! -d $(CONFDIR)/scripts ] || rm -fr $(CONFDIR)/scripts/CVS
147
148     ifeq ($(OS),darwin)
149         @echo "----> Move .blender to .app/Contents/MacOS/"
150         @rm -fr $(DISTDIR)/blender$(EXT0)/Contents/MacOS/.blender
151         @mv $(DISTDIR)/.blender $(DISTDIR)/blender$(EXT0)/Contents/MacOS/
152     endif
153
154     ifneq ($(NOSTRIP),true)
155         @echo "----> Strip blender executable"
156       ifeq ($(OS),darwin)
157         @strip -x $(DISTDIR)/blender$(EXT0)/Contents/MacOS/blender
158       else
159         @strip -x $(DISTDIR)/blender$(EXT0)
160       endif
161     endif
162         @[ ! -x $(CONFIG_GUESS)/specific.sh ] || (\
163             echo "**--> Execute specific.sh in $(CONFIG_GUESS)/" && \
164             cd $(CONFIG_GUESS) && ./specific.sh )
165
166 pkg: install
167         @echo "----> Create distribution file $(BLENDNAME)$(EXT1)"
168         @#enable the next sleep if you get 'tar file changed while reading'
169         @#sleep 10
170         @cd $(NAN_OBJDIR) && \
171         rm -f  $(VERSION)/$(BLENDNAME)$(EXT1)* && \
172         $(TAR) $(VERSION)/$(BLENDNAME)$(EXT1) $(BLENDNAME)
173     ifdef COMPRESS
174         @echo "----> Compressing distribution to $(BLENDNAME)$(EXT1)$(EXT2)"
175         @$(COMPRESS) $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)
176     endif
177         @#echo "****> Clean up temporary distribution directory"
178         @rm -fr $(DISTDIR)
179         @echo "****> $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)$(EXT2) is ready"
180
181 version: FORCE
182         @echo "*---> Create $(BLENDNAME) package"
183
184 makedirs: FORCE
185         @#echo "****> Create package directory $(VERSION) if necessary"
186         @[ -d $(NAN_OBJDIR)/$(VERSION) ] || mkdir $(NAN_OBJDIR)/$(VERSION)
187         @#echo "****> Prepare temporary distribution directory"
188         @rm -fr $(DISTDIR)
189         @mkdir $(DISTDIR)
190
191 FORCE: