Hi,

it took some time, but finally graphics/blender got a lot of options to
configure. Those enable users to tweak it to their personal needs and
hopefully will allow graphics/blender to run on more platforms.

Especially users of non-i386 platforms are invited to test the different
options as some of the earlier dependencies, which had and have certain
requirements, can be disabled now.

A patch is attached and feedback highly welcome.

Regards
Marcus
Index: graphics/blender/Makefile
===================================================================
RCS file: /home/pcvs/ports/graphics/blender/Makefile,v
retrieving revision 1.30
diff -u -r1.30 Makefile
--- graphics/blender/Makefile	23 Feb 2009 21:43:16 -0000	1.30
+++ graphics/blender/Makefile	13 Mar 2009 20:02:27 -0000
@@ -16,14 +16,10 @@
 
 BUILD_DEPENDS=	${LOCALBASE}/lib/libode.a:${PORTSDIR}/devel/ode
 LIB_DEPENDS=	jpeg.9:${PORTSDIR}/graphics/jpeg \
-		freetype.9:${PORTSDIR}/print/freetype2 \
 		png.5:${PORTSDIR}/graphics/png \
 		tiff.4:${PORTSDIR}/graphics/tiff \
-		IlmImf.6:${PORTSDIR}/graphics/OpenEXR \
-		alut.1:${PORTSDIR}/audio/freealut\
-		openal.0:${PORTSDIR}/audio/openal \
-		avutil.1:${PORTSDIR}/multimedia/ffmpeg \
-		GLEW.1:${PORTSDIR}/graphics/glew
+		GLEW.1:${PORTSDIR}/graphics/glew \
+		IlmThread.6:${PORTSDIR}/graphics/ilmbase
 
 USE_XORG=	x11 xext xmu xi
 USE_PYTHON=	2.5+
@@ -43,33 +39,96 @@
 LANG=		ar bg ca cs de el es fi fr hr hr_HR it ja ko nl pl pt_BR ro \
 		ru sr s...@latn sv uk zh_CN
 
-OPTIONS=	OCFLAGS "Enable optimized CFLAGS" off \
-		NLS	"Native language support" on
+OPTIONS=	DDS		"DDS file format support" on \
+		FFMPEG		"Audio and video support using ffmpeg" on \
+		FREETYPE	"Improved font rendering support" on \
+		ICONV		"Iconv support for localisation (only with NLS)" off \
+		KETSJI		"Build GameEngine and BlenderPlayer" on \
+		NLS		"Native language support" on \
+		OCFLAGS		"Optimized Cflags" off \
+		OPENAL		"3D sound support using OpenAL" on \
+		OPENEXR		"High dynamic-range (HDR) support using OpenEXR" on \
+		OPENMP		"Parallel processing support" off \
+		VERSE		"Shared networking support using Verse" on
 
 .include <bsd.port.pre.mk>
 
-MAKE_ENV+=	NAN_CPPFLAGS="-I${LOCALBASE}/include/freetype2 \
-		-I${LOCALBASE}/include \
-		-I${LOCALBASE}/include/OpenEXR \
-		-I${PYTHON_INCLUDEDIR}/"
-MAKE_ENV+=	NAN_FREETYPE="${LOCALBASE}/"
-MAKE_ENV+=	NAN_OPENEXR="${LOCALBASE}/"
-MAKE_ENV+=	NAN_OPENAL="${LOCALBASE}/"
+MAKE_ENV+=	NAN_FMOD="${LOCALBASE}/"
 MAKE_ENV+=	NAN_PYTHON="${LOCALBASE}/"
 MAKE_ENV+=	NAN_PYTHON_VERSION=${PYTHON_VER}
-MAKE_ENV+=	NAN_FMOD="${LOCALBASE}/"
 MAKE_ENV+=	NAN_JPEG="${LOCALBASE}/"
 MAKE_ENV+=	NAN_PNG="${LOCALBASE}/"
 MAKE_ENV+=	NAN_ZLIB="${LOCALBASE}/"
 MAKE_ENV+=	NAN_ODE="${LOCALBASE}/"
 MAKE_ENV+=	NAN_GLEW="${LOCALBASE}/"
+MAKE_ENV+=	NAN_JUST_BLENDERDYNAMIC="true"
+MAKE_ENV+=	WITH_BF_DYNAMICOPENGL="true"
+
 CFLAGS+=	"-I${LOCALBASE}/include"
+NANCPPFLAGS=
+
+.if !defined(WITHOUT_DDS)
+MAKE_ENV+=	WITH_DDS="true"
+.else
+MAKE_ENV+=	WITH_DDS="false"
+.endif
+
+.if defined(WITHOUT_FFMPEG)
+MAKE_ENV+=	WITH_FFMPEG="false"
+.else
+MAKE_ENV+=	WITH_FFMPEG="true"
+MAKE_ENV+=	NAN_USE_FFMPEG_CONFIG="true"
+MAKE_ENV+=	NAN_FFMPEG="${LOCALBASE}/"
+LIB_DEPENDS+=	avutil.1:${PORTSDIR}/multimedia/ffmpeg
+.endif
+
+.if defined(WITHOUT_FREETYPE)
+MAKE_ENV+=	WITH_FREETYPE2="false"
+.else
+MAKE_ENV+=	WITH_FREETYPE2="true"
+MAKE_ENV+=	NAN_FREETYPE="${LOCALBASE}/"
+MAKE_ENV+=	NAN_FTGL="${LOCALBASE}/"
+NANCPPFLAGS+=	"-I${LOCALBASE}/include/freetype2"
+LIB_DEPENDS+=	freetype.9:${PORTSDIR}/print/freetype2
+LIB_DEPENDS+=	ftgl.2:${PORTSDIR}/graphics/ftgl
+.endif
+
+.if defined(WITHOUT_KETSJI)
+MAKE_ENV+=	NAN_NO_KETSJI="true"
+MAKE_ENV+=	WITH_BF_BLENDERGAMEENGINE="false"
+MAKE_ENV+=	WITH_BF_BLENDERPLAYER="false"
+PLIST_SUB+=	KETSJI="@comment "
+.else
+MAKE_ENV+=	NAN_NO_KETSJI="false"
+MAKE_ENV+=	NAN_USE_BULLET="true"
+MAKE_ENV+=	WITH_BF_BLENDERGAMEENGINE="true"
+MAKE_ENV+=	WITH_BF_BLENDERPLAYER="true"
+PLIST_SUB+=	KETSJI=""
+.endif
 
 .if !defined(WITHOUT_NLS)
 USE_GETTEXT=	yes
 MAKE_ENV+=	INTERNATIONAL="true"
+
+# Iconv support?
+.if defined(WITH_ICONV)
+USE_ICONV=	yes
+MAKE_ENV+=	WITH_ICONV="true"
+.else
+MAKE_ENV+=	WITH_ICONV="false"
+.endif
+
+.if defined(WITHOUT_FREETYPE)
+# Implies Freetype2 - ignore the without knob.
+MAKE_ENV+=	WITH_FREETYPE2="true"
+MAKE_ENV+=	NAN_FREETYPE="${LOCALBASE}/"
+LIB_DEPENDS+=	freetype.9:${PORTSDIR}/print/freetype2
+LIB_DEPENDS+=	ftgl.2:${PORTSDIR}/graphics/ftgl
+.endif
+
 PLIST_SUB+=	NLS=""
 .else
+MAKE_ENV+=	WITH_ICONV="false"
 PLIST_SUB+=	NLS="@comment "
 .endif
 
@@ -77,16 +136,45 @@
 CFLAGS+=	-O3 -ffast-math
 .endif
 
-.if ${ARCH} == "amd64"
-MAKE_ENV+=	NAN_NO_KETSJI="true"
-MAKE_ENV+=	WITH_BF_BLENDERGAMEENGINE="false"
-MAKE_ENV+=	WITH_BF_BLENDERPLAYER="false"
+.if defined(WITHOUT_OPENAL)
+MAKE_ENV+=	NAN_NO_OPENAL="true"
 .else
-MAKE_ENV+=	WITH_BF_BLENDERGAMEENGINE="true"
-MAKE_ENV+=	WITH_BF_OPENAL="true"
-MAKE_ENV+=	WITH_BF_BLENDERPLAYER="true"
+MAKE_ENV+=	NAN_NO_OPENAL="false"
+MAKE_ENV+=	NAN_OPENAL="${LOCALBASE}/"
+LIB_DEPENDS+=	openal.0:${PORTSDIR}/audio/openal \
+		alut.1:${PORTSDIR}/audio/freealut
 .endif
 
+.if defined(WITHOUT_OPENEXR)
+MAKE_ENV+=	WITH_OPENEXR="false"
+.else
+MAKE_ENV+=	WITH_OPENEXR="true"
+MAKE_ENV+=	NAN_OPENEXR="${LOCALBASE}/"
+LIB_DEPENDS+=	IlmImf.6:${PORTSDIR}/graphics/OpenEXR
+NANCPPFLAGS+=	"-I${LOCALBASE}/include/OpenEXR"
+.endif
+
+.if defined(WITH_OPENMP)
+.if ${OSVERSION} < 700000
+BROKEN=		OpenMP support is not available for FreeBSD 6.x and below
+.else
+MAKE_ENV+=	WITH_BF_OPENMP="true"
+.endif
+.else
+MAKE_ENV+=	WITH_BF_OPENMP="false"
+.endif
+
+.if defined(WITHOUT_VERSE)
+MAKE_ENV+=	WITH_VERSE="false"
+PLIST_SUB+=	VERSE="@comment "
+.else
+MAKE_ENV+=	WITH_VERSE="true"
+PLIST_SUB+=	VERSE=""
+.endif
+
+MAKE_ENV+=	NAN_CPPFLAGS="-I${LOCALBASE}/include -I${PYTHON_INCLUDEDIR} \
+			${NANCPPFLAGS}"
+
 .if ${ARCH} == "sparc64"
 BROKEN=		Fails to link
 .endif
@@ -95,6 +183,16 @@
 	@${REINPLACE_CMD} -e 's|2.5|${PYTHON_VER}|' \
 		${WRKSRC}/source/nan_definitions.mk
 
+.if defined(WITHOUT_FFMPEG)
+	@${REINPLACE_CMD} -e 's|%%FFMPEGCFLAGS%%||;s|%%FFMPEGLIBS%%||;' \
+		${WRKSRC}/user-def.mk
+.else
+	@${REINPLACE_CMD} -e \
+		's|%%FFMPEGCFLAGS%%|$$\(shell pkg-config --cflags libavcodec libavformat\)|; \
+		s|%%FFMPEGLIBS%%|$$\(shell pkg-config --libs libavcodec libavformat\)|;' \
+		${WRKSRC}/user-def.mk
+.endif
+
 	@${REINPLACE_CMD} -e \
 		's|gcc|${CC}|; \
 		s|g++|${CXX}|; \
@@ -115,6 +213,10 @@
 do-install:
 	@${INSTALL_SCRIPT} ${WRKDIR}/blender ${PREFIX}/bin/blender
 	@${INSTALL_PROGRAM} ${WRKSRC}/obj/freebsd-${OSREL}-${ARCH}/bin/blender ${PREFIX}/bin/blender-bin
+	@${INSTALL_PROGRAM} ${WRKSRC}/obj/freebsd-${OSREL}-${ARCH}/bin/blenderplayer ${PREFIX}/bin/blenderplayer
+.if !defined(WITHOUT_VERSE)
+	@${INSTALL_PROGRAM} ${WRKSRC}/obj/freebsd-${OSREL}-${ARCH}/bin/verse ${PREFIX}/bin/verse
+.endif
 
 	@${MKDIR} ${DATADIR}
 	@${CP} -R ${WRKSRC}/release/scripts ${DATADIR}
Index: graphics/blender/pkg-plist
===================================================================
RCS file: /home/pcvs/ports/graphics/blender/pkg-plist,v
retrieving revision 1.7
diff -u -r1.7 pkg-plist
--- graphics/blender/pkg-plist	23 Feb 2009 21:43:16 -0000	1.7
+++ graphics/blender/pkg-plist	13 Mar 2009 20:02:27 -0000
@@ -1,5 +1,7 @@
 bin/blender
 bin/blender-bin
+%%KETSJI%%bin/blenderplayer
+%%VERSE%%bin/verse
 %%DATADIR%%/.bfont.ttf
 %%DATADIR%%/.Blanguages
 %%NLS%%%%DATADIR%%/locale/ar/LC_MESSAGES/blender.mo
Index: graphics/blender/files/patch-source_Makefile
===================================================================
RCS file: /home/pcvs/ports/graphics/blender/files/patch-source_Makefile,v
retrieving revision 1.1
diff -u -r1.1 patch-source_Makefile
--- graphics/blender/files/patch-source_Makefile	30 Jan 2009 07:10:17 -0000	1.1
+++ graphics/blender/files/patch-source_Makefile	13 Mar 2009 20:02:27 -0000
@@ -1,5 +1,5 @@
---- source/Makefile.orig	2009-01-21 08:14:52.000000000 +0100
-+++ source/Makefile	2008-10-14 19:45:24.000000000 +0200
+--- source/Makefile.orig	2008-10-22 18:36:53.000000000 +0200
++++ source/Makefile	2009-03-09 14:46:58.000000000 +0100
 @@ -106,7 +106,7 @@
  COMLIB += $(OCGDIR)/blender/avi/$(DEBUG_DIR)libavi.a
  COMLIB += $(NAN_JPEG)/lib/libjpeg.a
@@ -9,3 +9,14 @@
  
  ifneq ($(NAN_NO_KETSJI),true)
      COMLIB += $(OCGDIR)/gameengine/bloutines/$(DEBUG_DIR)libbloutines.a
+@@ -353,8 +353,8 @@
+         NAN_SND_LIBS += $(DUMMYSOUND)
+         NAN_SND_LIBS += $(OPENALSOUND)
+         NAN_SND_LIBS += $(SDLSOUND)
+-        NAN_SND_LIBS += $(NAN_OPENAL)/lib/libopenal.a
+-	ALUT = $(wildcard $(NAN_OPENAL)/lib/libalut.a)
++        NAN_SND_LIBS += $(NAN_OPENAL)/lib/libopenal.so
++	ALUT = $(wildcard $(NAN_OPENAL)/lib/libalut.so)
+         NAN_SND_LIBS += $(ALUT)
+         NAN_SND_LIBS += $(SOUNDSYSTEM)
+     else
Index: graphics/blender/files/patch-user-def.mk
===================================================================
RCS file: /home/pcvs/ports/graphics/blender/files/patch-user-def.mk,v
retrieving revision 1.3
diff -u -r1.3 patch-user-def.mk
--- graphics/blender/files/patch-user-def.mk	30 Jan 2009 07:10:17 -0000	1.3
+++ graphics/blender/files/patch-user-def.mk	13 Mar 2009 20:02:27 -0000
@@ -1,6 +1,6 @@
---- user-def.mk.orig	2009-01-19 09:28:02.000000000 +0100
-+++ user-def.mk	2009-01-19 09:31:01.000000000 +0100
-@@ -0,0 +1,30 @@
+--- user-def.mk.orig	2009-03-07 12:58:21.000000000 +0100
++++ user-def.mk	2009-03-07 13:30:16.000000000 +0100
+@@ -0,0 +1,26 @@
 +export NAN_DEBUG=
 +
 +export TYPE := $(shell echo `uname -s`)
@@ -8,16 +8,14 @@
 +# Allow 64bit compiles.
 +export NAN_YESIAMSTUPID=true
 +
-+export WITH_ICONV = false
-+export WITH_FFMPEG = false
 +export NAN_PYTHON ?= /usr/local
 +export NAN_PYTHON_VERSION ?= 2.5
 +export NAN_OPENAL ?= /usr/local
 +export NAN_FMOD ?= /usr/local
++export NAN_FTGL ?= /usr/local
 +export NAN_JPEG ?= /usr/local
 +export NAN_PNG ?= /usr/local
 +export NAN_GLEW ?= /usr/local
-+export WITH_OPENEXR = true
 +export NAN_OPENEXR ?= /usr/local
 +export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a \
 +	$(NAN_OPENEXR)/lib/libHalf.a \
@@ -26,8 +24,6 @@
 +export NAN_ODE ?= /usr/local
 +export NAN_MESA = /export/scratch/crap/Mesa-6.2.1
 +export NAN_NSPR = /export/scratch/blender/src/nspr-4.2.2/mozilla/nsprpub/dist
-+export WITH_FREETYPE2 = true
-+export NAN_NO_STATIC = true
-+export NAN_NO_PLUGIN = true
 +export NAN_FREETYPE ?= /usr/local
-+export WITH_VERSE = true
++export NAN_FFMPEGLIBS = %%FFMPEGLIBS%%
++export NAN_FFPMEGCFLAGS = %%FFMPEGCFLAGS%%

Attachment: pgpvaQmvb8ZkI.pgp
Description: PGP signature

Reply via email to