don't copy the .blender dir to $DISTDIR on OS X, as it's contents is
[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
39 release: all
40
41 all:
42     ifeq ($(OS),beos)
43         @$(MAKE) pkg TYPE="" TAR="zip -ry9" EXT1=".zip" NOPLUGINS="true"
44     endif
45     ifeq ($(OS),freebsd)
46         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
47             COMPRESS="gzip -f --best" EXT2=".gz"
48     endif
49     ifeq ($(OS),irix)
50         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
51             COMPRESS="gzip -f --best" EXT2=".gz"
52     endif
53     ifeq ($(OS),linux)
54       ifeq ($(CPU),alpha)
55         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
56             COMPRESS="gzip -f --best" EXT2=".gz"
57       endif
58       ifeq ($(CPU),i386)
59         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
60             COMPRESS="gzip -f --best" EXT2=".gz"
61         @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
62             COMPRESS="gzip -f --best" EXT2=".gz"
63       endif
64       ifeq ($(CPU),powerpc)
65         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
66             COMPRESS="gzip -f --best" EXT2=".gz"
67         @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
68             COMPRESS="gzip -f --best" EXT2=".gz"
69       endif
70     endif
71     ifeq ($(OS),openbsd)
72         @$(MAKE) pkg TYPE="-static" TAR="tar cf" EXT1=".tar" \
73             COMPRESS="gzip -f --best" EXT2=".gz"
74     endif
75     ifeq ($(OS),solaris)
76         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT1=".tar" \
77             COMPRESS="compress" EXT2=".Z"
78     endif
79     ifeq ($(OS),windows)
80         @$(MAKE) pkg TYPE="" TAR="zip -r9" EXT0=".exe" EXT1=".zip" \
81             NOPLUGINS="true" NOSTRIP="true"
82     endif
83     ifeq ($(OS),darwin)
84         @$(MAKE) pkg TYPE="" TAR="tar cf" EXT0"=.app" EXT1=".tar" \
85             COMPRESS="gzip -f --best" EXT2=".gz"
86     endif
87
88 # OS independent targets below:
89
90 dist: all
91
92 package: version makedirs
93
94 install: package
95         @#echo "****> Install text"
96         @cp text/README $(DISTDIR)
97         @cp text/*.txt $(DISTDIR)
98         @# possible overruling .txt text documents
99         @[ ! -d $(CONFIG_GUESS)/text ] || \
100             cp -f $(CONFIG_GUESS)/text/*.txt $(DISTDIR)
101 #on OS X the contents of the .blender dir is already inside the bundle
102 ifneq ($(OS), darwin)
103         @[ ! -d $(OCGDIR)/bin/.blender ] || \
104                 cp -a $(OCGDIR)/bin/.blender $(DISTDIR)
105 endif
106
107 # Python scripts removed for 2.14
108 #@echo "----> Copy python scripts"
109 #@cp -r python $(DISTDIR)/python
110 #@rm -fr $(DISTDIR)/python/CVS
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     endif
122     ifneq ($(NOPLUGINS),true)
123         @echo "----> Copy and compile plugins"
124         @cp -r plugins $(DISTDIR)/plugins
125         @mkdir -p $(DISTDIR)/plugins/include
126         @cp ../source/blender/blenpluginapi/*.h $(DISTDIR)/plugins/include/
127         @chmod 755 $(DISTDIR)/plugins/bmake
128         @$(MAKE) -C $(DISTDIR)/plugins all  > /dev/null || exit 1;
129         @rm -fr $(DISTDIR)/plugins/CVS $(DISTDIR)/plugins/*/CVS \
130              $(DISTDIR)/plugins/*/*.o
131     endif
132     ifneq ($(NOSTRIP),true)
133         @echo "----> Strip blender executable"
134       ifeq ($(OS),darwin)
135         @strip -x $(OCGDIR)/bin/blender$(EXT0)/Contents/MacOS/blender
136       else
137         @strip -x $(DISTDIR)/blender$(EXT0)
138       endif
139     endif
140         @[ ! -x $(CONFIG_GUESS)/specific.sh ] || (\
141             echo "**--> Execute specific.sh in $(CONFIG_GUESS)/" && \
142             cd $(CONFIG_GUESS) && ./specific.sh )
143
144 pkg: install
145         @echo "----> Create distribution file $(BLENDNAME)$(EXT1)"
146         @cd $(NAN_OBJDIR) && \
147         rm -f  $(VERSION)/$(BLENDNAME)$(EXT1)* && \
148         $(TAR) $(VERSION)/$(BLENDNAME)$(EXT1) $(BLENDNAME)
149     ifdef COMPRESS
150         @echo "----> Compressing distribution to $(BLENDNAME)$(EXT1)$(EXT2)"
151         @$(COMPRESS) $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)
152     endif
153         @#echo "****> Clean up temporary distribution directory"
154         @rm -fr $(DISTDIR)
155         @echo "****> $(NAN_OBJDIR)/$(VERSION)/$(BLENDNAME)$(EXT1)$(EXT2) is ready"
156
157 version: FORCE
158         @echo "*---> Create $(BLENDNAME) package"
159
160 makedirs: FORCE
161         @#echo "****> Create package directory $(VERSION) if necessary"
162         @[ -d $(NAN_OBJDIR)/$(VERSION) ] || mkdir $(NAN_OBJDIR)/$(VERSION)
163         @#echo "****> Prepare temporary distribution directory"
164         @rm -fr $(DISTDIR)
165         @mkdir $(DISTDIR)
166
167 FORCE: