GNU make
Version: $Id: gmake.html,v 1.6 2001/08/24 14:49:44 hans Exp $
This document describes the gnu make usage at NaN. We use gnu make
because it is the only available make on all current blender target
platforms (BeOS, FreeBSD, Irix, Linux, Mac, Solaris, Windows)
- 1. Requirements
- 2. Build blender
- 3. Build blender release
- 4. Standard targets
- 5. Installed versions
- 6. Source
- 7. Buggy versions
1. Requirements
(t)csh assumed. Set the following environment variables in your
.(t)cshrc :
setenv SRCHOME "$HOME/develop/source"
setenv MAKEFLAGS "-w -I $SRCHOME --no-print-directory"
2. Build blender
- cd ~/develop/source && make
Note : instead of 'make' you can also use 'hmake' found in
~/develop/source/tools/hmake/ It calls the real make and then filters
away unneccesary output and highlights important information.
3. Build blender release
- cd ~/develop/release && make
4. Standard targets
The bold targets are the most used ones.
- all
Compile all binary targets. Place object files and executables in ~/obj/
- debug
Compile all binary targets with debugging info.
Place object files and executables in
~/obj/<optional subdir>/debug/
- clean
calls optclean and debugclean
Note that make clean should clean so that a 'cvs update' does not
complain anymore.
- optclean
Cleans ~/obj/<optional subdir>/
- debugclean
Cleans ~/obj/<optional subdir>/debug/
- dependclean
nasty hack to remove only dependencies without actually recursing
directories
- link
Only in source/
skips all library creation steps, and starts linking immediately
- debuglink
Only in source/
skips all library creation steps, and starts linking immediately
- linkclean
Only in source/
Only removes the blender executables
- debuglinkclean
Only in source/
Only removes the blender debugging executables
5. Installed versions
See Machines.html
6. Source
Use the latest from
ftp://ftp.gnu.org/pub/gnu/make/ (currently 3.79.1)
And the gmake homepage
7. Buggy versions
- 3.77 has a problem with wildcards
- use another version
- 3.77 has another problem: the '-' in '-include dependency' does not work
- use another version