ports/61763: New port: graphics/allegrogl OpenGL inteface for Allegro library
Igor Pokrovsky
tiamat at comset.net
Fri Jan 23 03:20:46 UTC 2004
>Number: 61763
>Category: ports
>Synopsis: New port: graphics/allegrogl OpenGL inteface for Allegro library
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Jan 22 19:20:11 PST 2004
>Closed-Date:
>Last-Modified:
>Originator: Igor Pokrovsky
>Release: FreeBSD 4.9-STABLE i386
>Organization:
>Environment:
System: FreeBSD doom.homeunix.org 4.9-STABLE FreeBSD 4.9-STABLE #1: Sun Dec 14 13:12:44 MSK 2003 root at doom.homeunix.org:/usr/obj/usr/src/sys/KERNEL i386
>Description:
The library mostly provides functions to allow you to use OpenGL alongside
Allegro -- you use OpenGL for your rendering to the screen, and Allegro
for miscellaneous tasks like gathering input, doing timers, getting
cross-platform portability, loading data, playing samples and drawing your
textures. So this library fills the same hole that things like GLUT do.
>How-To-Repeat:
>Fix:
--- allegrogl.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# allegrogl
# allegrogl/pkg-plist
# allegrogl/pkg-descr
# allegrogl/distinfo
# allegrogl/Makefile
# allegrogl/files
# allegrogl/files/patch-configure.in
# allegrogl/files/patch-include-alleggl.h
# allegrogl/files/patch-make-makefile.unx
# allegrogl/files/patch-include-allegrogl-gl_ext.h
# allegrogl/files/patch-src-glext.c
# allegrogl/files/makefile.ex
#
echo c - allegrogl
mkdir -p allegrogl > /dev/null 2>&1
echo x - allegrogl/pkg-plist
sed 's/^X//' >allegrogl/pkg-plist << 'END-of-allegrogl/pkg-plist'
Xinclude/alleggl.h
Xinclude/alleggl_config.h
Xinclude/allegrogl/gl_ext.h
Xinclude/allegrogl/gl_header_detect.h
Xinclude/allegrogl/GLext/gl_ext_api.h
Xinclude/allegrogl/GLext/gl_ext_defs.h
Xinclude/allegrogl/GLext/gl_ext_list.h
Xinclude/allegrogl/GLext/glx_ext_api.h
Xinclude/allegrogl/GLext/glx_ext_defs.h
Xinclude/allegrogl/GLext/glx_ext_list.h
Xinclude/allegrogl/GLext/wgl_ext_api.h
Xinclude/allegrogl/GLext/wgl_ext_defs.h
Xinclude/allegrogl/GLext/wgl_ext_list.h
X at dirrm include/allegrogl/GLext
X at dirrm include/allegrogl
Xlib/libagl.a
X%%EXAMPLESDIR%%/demofont.dat
X%%EXAMPLESDIR%%/dialog.c
X%%EXAMPLESDIR%%/dumbtest.c
X%%EXAMPLESDIR%%/exalleg.c
X%%EXAMPLESDIR%%/exalpfnt.c
X%%EXAMPLESDIR%%/excamera.c
X%%EXAMPLESDIR%%/exext.c
X%%EXAMPLESDIR%%/exgui.c
X%%EXAMPLESDIR%%/exmasked.c
X%%EXAMPLESDIR%%/extext.c
X%%EXAMPLESDIR%%/extextur.c
X%%EXAMPLESDIR%%/lucidia.dat
X%%EXAMPLESDIR%%/makefile
X%%EXAMPLESDIR%%/mysha.pcx
X%%EXAMPLESDIR%%/running.dat
X%%EXAMPLESDIR%%/running.h
X%%EXAMPLESDIR%%/test.c
X%%EXAMPLESDIR%%/tex.c
X at dirrm %%EXAMPLESDIR%%
X%%PORTDOCS%%%%DOCSDIR%%/bugs.txt
X%%PORTDOCS%%%%DOCSDIR%%/extensions.txt
X%%PORTDOCS%%%%DOCSDIR%%/faq.txt
X%%PORTDOCS%%%%DOCSDIR%%/howto.txt
X%%PORTDOCS%%%%DOCSDIR%%/quickstart.txt
X%%PORTDOCS%%%%DOCSDIR%%/readme.txt
X%%PORTDOCS%%%%DOCSDIR%%/todo.txt
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
END-of-allegrogl/pkg-plist
echo x - allegrogl/pkg-descr
sed 's/^X//' >allegrogl/pkg-descr << 'END-of-allegrogl/pkg-descr'
XThe library mostly provides functions to allow you to use OpenGL alongside
XAllegro -- you use OpenGL for your rendering to the screen, and Allegro
Xfor miscellaneous tasks like gathering input, doing timers, getting
Xcross-platform portability, loading data, playing samples and drawing your
Xtextures. So this library fills the same hole that things like GLUT do.
X
XWWW: http://allegrogl.sourceforge.net/
X
X- Igor Pokrovsky
Xtiamat at comset.net
END-of-allegrogl/pkg-descr
echo x - allegrogl/distinfo
sed 's/^X//' >allegrogl/distinfo << 'END-of-allegrogl/distinfo'
XMD5 (alleggl-0.2.0.tar.bz2) = 54080f3f549bbf25ba04be7c3e8a42a5
END-of-allegrogl/distinfo
echo x - allegrogl/Makefile
sed 's/^X//' >allegrogl/Makefile << 'END-of-allegrogl/Makefile'
X# New ports collection makefile for: allegrogl
X# Date created: 22 Jan 2004
X# Whom: Igor Pokrovsky <tiamat at comset.net>
X#
X# $FreeBSD$
X#
X
XPORTNAME= allegrogl
XPORTVERSION= 0.2.0
XCATEGORIES= graphics
XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR= ${PORTNAME}
XDISTNAME= alleggl-${PORTVERSION}
X
XMAINTAINER= tiamat at comset.net
XCOMMENT= OpenGL inteface for Allegro library
X
XLIB_DEPENDS= alleg.41:${PORTSDIR}/devel/allegro
X
XUSE_BZIP2= yes
XUSE_GMAKE= yes
XUSE_REINPLACE= yes
XUSE_GL= yes
XUSE_X_PREFIX= yes
XUSE_AUTOCONF_VER=253
XGNU_CONFIGURE= yes
XMAKEFILE= makefile
XALL_TARGET= lib
X
XWRKSRC= ${WRKDIR}/alleggl
X
XALLEGRO_CONFIG?=${LOCALBASE}/bin/allegro-config
X
Xpost-patch:
X @${REINPLACE_CMD} -e 's|%%GMAKE%%|${GMAKE}|g; \
X s|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g' \
X ${WRKSRC}/configure.in
X @${REINPLACE_CMD} -e 's|%%ALLEGRO_CONFIG%%|${ALLEGRO_CONFIG}|g' \
X ${WRKSRC}/make/makefile.unx
X
Xdo-install:
X ${INSTALL_DATA} ${WRKSRC}/lib/unix/libagl.a ${PREFIX}/lib
X ${INSTALL_DATA} ${WRKSRC}/include/alleggl.h ${PREFIX}/include
X ${INSTALL_DATA} ${WRKSRC}/include/alleggl_config.h ${PREFIX}/include
X @${MKDIR} ${PREFIX}/include/allegrogl
X ${INSTALL_DATA} ${WRKSRC}/include/allegrogl/*.h \
X ${PREFIX}/include/allegrogl
X @${MKDIR} ${PREFIX}/include/allegrogl/GLext
X ${INSTALL_DATA} ${WRKSRC}/include/allegrogl/GLext/*.h \
X ${PREFIX}/include/allegrogl/GLext
X
X @${MKDIR} ${EXAMPLESDIR}
X ${INSTALL_DATA} ${WRKSRC}/examp/* ${EXAMPLESDIR}
X @${PERL} -pi -e 's|%%CC%%|${CC}|g; \
X s|%%RM%%|${RM}|g; \
X s|%%CFLAGS%%|${CFLAGS}|g; \
X s|%%PREFIX%%|${PREFIX}|g; \
X s|%%X11BASE%%|${X11BASE}|g; \
X s|%%ALLEGRO_CONFIG%%|${ALLEGRO_CONFIG}|g' \
X <${PATCHDIR}/makefile.ex >${EXAMPLESDIR}/makefile
X
X.ifndef (NOPORTDOCS)
X @${MKDIR} ${DOCSDIR}
X ${INSTALL_DATA} ${WRKSRC}/*.txt ${DOCSDIR}
X.endif
X
X.include <bsd.port.mk>
END-of-allegrogl/Makefile
echo c - allegrogl/files
mkdir -p allegrogl/files > /dev/null 2>&1
echo x - allegrogl/files/patch-configure.in
sed 's/^X//' >allegrogl/files/patch-configure.in << 'END-of-allegrogl/files/patch-configure.in'
X--- configure.in.orig Sat Sep 6 21:26:48 2003
X+++ configure.in Thu Jan 22 14:58:15 2004
X@@ -50,7 +50,7 @@
X
X dnl Check for pthread support, which GL libs may require (e.g. FreeBSD)
X AC_CHECK_HEADER(pthread.h, , dontcare=y)
X-AC_CHECK_LIB(pthread, pthread_create, LIBS="-lpthread $LIBS")
X+AC_CHECK_LIB(pthread, pthread_create, LIBS="%%PTHREAD_LIBS%% $LIBS")
X
X
X dnl Build Mesa generic driver
X@@ -96,14 +96,15 @@
X fi
X
X
X+dnl We don't need this check in FreeBSD
X dnl Check if the dynamic loading library (libdl.so) is available
X- AH_TEMPLATE([ALLEGROGL_HAVE_DYNAMIC_LINK], [Define if dynamic linking is supported.])
X- AC_CHECK_HEADER(dlfcn.h,
X- AC_CHECK_LIB(dl, dlsym,
X- LIBS="-ldl $LIBS"
X+dnl AH_TEMPLATE([ALLEGROGL_HAVE_DYNAMIC_LINK], [Define if dynamic linking is supported.])
X+dnl AC_CHECK_HEADER(dlfcn.h,
X+dnl AC_CHECK_LIB(dl, dlsym,
X+dnl LIBS="-ldl $LIBS"
X AC_DEFINE(ALLEGROGL_HAVE_DYNAMIC_LINK)
X- )
X- )
X+dnl )
X+dnl )
X fi
X
X
X@@ -155,14 +156,14 @@
X dnl the Mesa generic driver and the (hopefully) accelerated one
X if test -f makefile; then
X echo '# Remove older build'
X- make veryclean
X+ %%GMAKE%% veryclean
X agl_make_depend="yes";
X fi
X
X
X dnl If dependencies are not built yet then do it !
X if (test ! -f make/makefile.dep); then
X- echo '# Execute "make depend".' > make/makefile.dep
X+ echo '# Execute "%%GMAKE%% depend".' > make/makefile.dep
X agl_make_depend="yes";
X fi
X
X@@ -173,5 +174,5 @@
X
X dnl Run "make depend" if necessary
X if test -n "$agl_make_depend"; then
X- make depend
X+ %%GMAKE%% depend
X fi
END-of-allegrogl/files/patch-configure.in
echo x - allegrogl/files/patch-include-alleggl.h
sed 's/^X//' >allegrogl/files/patch-include-alleggl.h << 'END-of-allegrogl/files/patch-include-alleggl.h'
X--- include/alleggl.h.orig Thu Jan 22 14:12:08 2004
X+++ include/alleggl.h Thu Jan 22 14:12:21 2004
X@@ -48,9 +48,11 @@
X #include "allegrogl/gl_ext.h"
X
X #ifdef ALLEGRO_WITH_XWINDOWS
X+/*
X #ifndef HAVE_LIBPTHREAD
X # error AllegroGL requires Allegro to have pthread support enabled!
X #endif
X+*/
X #include <alleggl_config.h>
X #endif
X
END-of-allegrogl/files/patch-include-alleggl.h
echo x - allegrogl/files/patch-make-makefile.unx
sed 's/^X//' >allegrogl/files/patch-make-makefile.unx << 'END-of-allegrogl/files/patch-make-makefile.unx'
X--- make/makefile.unx.orig Thu Jan 22 14:15:30 2004
X+++ make/makefile.unx Thu Jan 22 14:17:05 2004
X@@ -46,20 +46,20 @@
X # --- Compiler optimizations ---#
X
X ifdef DEBUGMODE
X- CFLAGS = -g -W -Wall -Wno-unused
X+ CFLAGS += -g -W -Wall -Wno-unused
X CFLAGS += -DDEBUGMODE=$(DEBUGMODE)
X ifdef LOGLEVEL
X CFLAGS += -DLOGLEVEL=$(LOGLEVEL)
X endif
X else
X- CFLAGS = -O2 -Wall -ffast-math -fomit-frame-pointer
X+ CFLAGS += -O2 -Wall -ffast-math -fomit-frame-pointer
X SHARED = @SHARED@
X endif
X
X ifdef DEBUGALLEG
X- LDLIBS = -l$(LIB_NAME) `allegro-config --libs debug` $(LIBS)
X+ LDLIBS = -l$(LIB_NAME) `%%ALLEGRO_CONFIG%% --libs debug` $(LIBS)
X else
X- LDLIBS = -l$(LIB_NAME) `allegro-config --libs` $(LIBS)
X+ LDLIBS = -l$(LIB_NAME) `%%ALLEGRO_CONFIG%% --libs` $(LIBS)
X endif
X
X ifdef MESABUILD
END-of-allegrogl/files/patch-make-makefile.unx
echo x - allegrogl/files/patch-include-allegrogl-gl_ext.h
sed 's/^X//' >allegrogl/files/patch-include-allegrogl-gl_ext.h << 'END-of-allegrogl/files/patch-include-allegrogl-gl_ext.h'
X--- include/allegrogl/gl_ext.h.orig Sun Dec 14 01:19:34 2003
X+++ include/allegrogl/gl_ext.h Thu Jan 22 14:46:25 2004
X@@ -12,7 +12,7 @@
X #include "allegrogl/GLext/gl_ext_defs.h"
X #ifdef ALLEGRO_WINDOWS
X #include "allegrogl/GLext/wgl_ext_defs.h"
X-#elif defined ALLEGRO_LINUX
X+#elif defined ALLEGRO_LINUX || defined __FreeBSD__
X #include "allegrogl/GLext/glx_ext_defs.h"
X #endif
X
X@@ -27,7 +27,7 @@
X # include "allegrogl/GLext/gl_ext_api.h"
X #ifdef ALLEGRO_WINDOWS
X # include "allegrogl/GLext/wgl_ext_api.h"
X-#elif defined ALLEGRO_LINUX
X+#elif defined ALLEGRO_LINUX || defined __FreeBSD__
X # include "allegrogl/GLext/glx_ext_api.h"
X #endif
X #undef AGL_API
X@@ -46,7 +46,7 @@
X #define AGL_API(type, name, args) extern AGL_##name##_t wgl##name;
X # include "allegrogl/GLext/wgl_ext_api.h"
X #undef AGL_API
X-#elif defined ALLEGRO_LINUX
X+#elif defined ALLEGRO_LINUX || defined __FreeBSD__
X #define AGL_API(type, name, args) extern AGL_##name##_t glX##name;
X # include "allegrogl/GLext/glx_ext_api.h"
X #undef AGL_API
END-of-allegrogl/files/patch-include-allegrogl-gl_ext.h
echo x - allegrogl/files/patch-src-glext.c
sed 's/^X//' >allegrogl/files/patch-src-glext.c << 'END-of-allegrogl/files/patch-src-glext.c'
X--- src/glext.c.orig Thu Jan 8 01:04:04 2004
X+++ src/glext.c Thu Jan 22 16:32:43 2004
X@@ -20,7 +20,7 @@
X # include "allegrogl/GLext/gl_ext_api.h"
X #ifdef ALLEGRO_WINDOWS
X # include "allegrogl/GLext/wgl_ext_api.h"
X-#elif defined ALLEGRO_LINUX
X+#elif defined ALLEGRO_LINUX || defined __FreeBSD__
X # include "allegrogl/GLext/glx_ext_api.h"
X #endif
X } AGL_EXT;
X@@ -105,7 +105,7 @@
X #define AGL_API(type, name, args) AGL_##name##_t wgl##name = NULL;
X # include "allegrogl/GLext/wgl_ext_api.h"
X #undef AGL_API
X-#elif defined ALLEGRO_LINUX
X+#elif defined ALLEGRO_LINUX || defined __FreeBSD__
X #define AGL_API(type, name, args) AGL_##name##_t glX##name = NULL;
X # include "allegrogl/GLext/glx_ext_api.h"
X #undef AGL_API
X@@ -153,7 +153,7 @@
X if (ext->name) { AGL_LOG(2,"wgl" #name " successfully loaded\n"); }
X # include "allegrogl/GLext/wgl_ext_api.h"
X # undef AGL_API
X-# elif defined ALLEGRO_LINUX
X+# elif defined ALLEGRO_LINUX || defined __FreeBSD__
X # define AGL_API(type, name, args) \
X ext->name = (AGL_##name##_t)aglXGetProcAddress("gl" #name); \
X if (ext->name) { AGL_LOG(2,"gl" #name " successfully loaded\n"); }
X@@ -197,7 +197,7 @@
X #define AGL_API(type, name, args) wgl##name = ext->name;
X # include "allegrogl/GLext/wgl_ext_api.h"
X #undef AGL_API
X-#elif defined ALLEGRO_LINUX
X+#elif defined ALLEGRO_LINUX || defined __FreeBSD__
X #define AGL_API(type, name, args) glX##name = ext->name;
X # include "allegrogl/GLext/glx_ext_api.h"
X #undef AGL_API
X@@ -344,7 +344,7 @@
X * we try to find the symbol into the dynamic libs
X * that are already loaded (e.g. in libGL.so)
X */
X- symbol = dlsym(0, name);
X+ symbol = dlsym(RTLD_NEXT, name);
X }
X #elif defined ALLEGRO_MACOSX
X function = CFStringCreateWithCString(kCFAllocatorDefault, name,
X@@ -439,10 +439,10 @@
X
X /* Get glXGetProcAddress entry */
X #ifdef ALLEGROGL_HAVE_DYNAMIC_LINK
X- aglXGetProcAddress = (GLXGETPROCADDRESSARBPROC) dlsym(0,
X+ aglXGetProcAddress = (GLXGETPROCADDRESSARBPROC) dlsym(RTLD_NEXT,
X "glXGetProcAddressARB");
X if (!aglXGetProcAddress) {
X- aglXGetProcAddress = (GLXGETPROCADDRESSARBPROC) dlsym(0,
X+ aglXGetProcAddress = (GLXGETPROCADDRESSARBPROC) dlsym(RTLD_NEXT,
X "glXGetProcAddress");
X }
X TRACE("glXGetProcAddress Extension: %s\n",
END-of-allegrogl/files/patch-src-glext.c
echo x - allegrogl/files/makefile.ex
sed 's/^X//' >allegrogl/files/makefile.ex << 'END-of-allegrogl/files/makefile.ex'
XCC= %%CC%%
XRM= %%RM%%
XCFLAGS= %%CFLAGS%% -I. -I%%X11BASE%%/include -I%%PREFIX%%/include/
XLDFLAGS= -L%%X11BASE%%/lib -L%%PREFIX%%/lib -lagl -lGL -lGLU
X
XALLEGRO_CFLAGS!=%%ALLEGRO_CONFIG%% --cflags
XALLEGRO_LFLAGS!=%%ALLEGRO_CONFIG%% --libs
XCFLAGS+= ${ALLEGRO_CFLAGS}
XLDFLAGS+= ${ALLEGRO_LFLAGS}
X
XTARGETS= dialog dumbtest exalleg exalpfnt excamera exext exgui exmasked \
X extext extextur test tex
X
Xall: ${TARGETS}
X
Xdialog: dialog.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xdumbtest: dumbtest.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xexalleg: exalleg.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xexalpfnt: exalpfnt.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xexcamera: excamera.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xexext: exext.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xexgui: exgui.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xexmasked: exmasked.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xextext: extext.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xextextur: extextur.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xtest: test.o
X ${CC} $> -o $@ ${LDFLAGS}
X
Xtex: tex.o
X ${CC} $> -o $@ ${LDFLAGS}
X
X
X.c.o:
X ${CC} -c ${CFLAGS} $*.c
X
Xclean:
X ${RM} -f *.o ${TARGETS}
END-of-allegrogl/files/makefile.ex
exit
--- allegrogl.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list