ports/123806: [PATCH] games/openastromenace: fix build with CMake 2.6, sanitize port
Dmitry Marakasov
amdmi3 at amdmi3.ru
Mon May 19 01:20:02 UTC 2008
>Number: 123806
>Category: ports
>Synopsis: [PATCH] games/openastromenace: fix build with CMake 2.6, sanitize port
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Mon May 19 01:20:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Dmitry Marakasov
>Release: FreeBSD 7.0-RELEASE-p1 i386
>Organization:
>Environment:
System: FreeBSD hades.panopticon 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1 #0: Fri Apr 25 11:18:45 MSD 2008 root at hades.panopticon:/usr/obj/usr/src/sys/HADES i386
>Description:
* Patch CMakeLists.txt so this builds with new CMake 2.6
* Remove useless DATA and SRC knobs
* Improve language knobs handling
* Make game run without need so specify --dir argument, thus remove pkg-message
* Other minor improvements to the port
>How-To-Repeat:
>Fix:
--- openastromenace.patch begins here ---
diff -ruN openastromenace.orig/Makefile openastromenace/Makefile
--- openastromenace.orig/Makefile 2008-05-19 04:35:40.080764974 +0400
+++ openastromenace/Makefile 2008-05-19 05:07:31.386478689 +0400
@@ -7,90 +7,65 @@
PORTNAME= openastromenace
PORTVERSION= 1.2.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= games
MASTER_SITES= SF
+DISTFILES= oamenace-src-${PORTVERSION}${EXTRACT_SUFX} \
+ oamenace-data-${PORTVERSION}${EXTRACT_SUFX} \
+ oamenace-lang-${LANGPACK}-${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER= proler at gmail.com
COMMENT= Hardcore 3D space shooter with spaceship upgrade possibilities
+BUILD_DEPENDS= ${CMAKE}:${PORTSDIR}/devel/cmake
+LIB_DEPENDS+= vorbisfile:${PORTSDIR}/audio/libvorbis \
+ jpeg:${PORTSDIR}/graphics/jpeg \
+ openal:${PORTSDIR}/audio/openal \
+ alut:${PORTSDIR}/audio/freealut
+
USE_BZIP2= yes
-USE_GL= yes
+USE_GL= gl glu
WANT_SDL= yes
USE_SDL= sdl
+CMAKE?= ${LOCALBASE}/bin/cmake
CMAKE_ARGS= -DCMAKE_BUILD_TYPE:STRING=Release \
- -DCMAKE_C_COMPILER:STRING='${CC}' \
- -DCMAKE_CXX_COMPILER:STRING=${CXX} \
+ -DCMAKE_C_COMPILER:STRING="${CC}" \
+ -DCMAKE_C_FLAGS:STRING="${CFLAGS}" \
+ -DCMAKE_CXX_COMPILER:STRING="${CXX}" \
-DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \
- -DCMAKE_INSTALL_PREFIX=${PREFIX}
-
-SUB_FILES= pkg-message
-
-BUILD_DEPENDS+= ${LOCALBASE}/bin/cmake:${PORTSDIR}/devel/cmake \
+ -DCMAKE_INSTALL_PREFIX="${PREFIX}"
-LIB_DEPENDS+= vorbisfile:${PORTSDIR}/audio/libvorbis \
- jpeg:${PORTSDIR}/graphics/jpeg \
- openal:${PORTSDIR}/audio/openal \
- alut:${PORTSDIR}/audio/freealut \
-
-OPTIONS= SRC "build src" on \
- DATA "install data file" on \
- EN " en lang" on \
- DE " de lang " on \
- RU " ru lang " on \
+OPTIONS= EN "English language pack" on \
+ DE "German language pack" off \
+ RU "Russian language pack" off
.include <bsd.port.pre.mk>
-.undef DISTFILES
-.if defined(WITH_SRC)
-DISTFILES+=oamenace-src-${PORTVERSION}.tar.bz2
+.if !defined(WITHOUT_EN)
+LANGPACK= en
+.elif defined(WITH_DE)
+LANGPACK= de
+.elif defined(WITH_RU)
+LANGPACK= ru
.else
-NO_BUILD= yes
-.endif
-.if defined(WITH_DATA)
-DISTFILES+=oamenace-data-${PORTVERSION}.tar.bz2
-.endif
-.if defined(WITH_EN)
-DISTFILES+=oamenace-lang-en-${PORTVERSION}.tar.bz2
-.endif
-.if defined(WITH_DE)
-DISTFILES+=oamenace-lang-de-${PORTVERSION}.tar.bz2
-.endif
-.if defined(WITH_RU)
-DISTFILES+=oamenace-lang-ru-${PORTVERSION}.tar.bz2
+IGNORE= cannot be build without/with multiple language packs. Please rerun 'make config' and select single language pack
.endif
+post-patch:
+ ${REINPLACE_CMD} -e 's|/usr/local/share/openastromenace|${DATADIR}|' \
+ ${WRKSRC}/AstroMenaceSource/Main.cpp
+
do-configure:
-.if defined(WITH_SRC)
- @(cd ${WRKSRC}; \
- ${LOCALBASE}/bin/cmake ${CMAKE_ARGS} ${PATCH_WRKSRC})
-.endif
+ @cd ${WRKSRC} && ${CMAKE} . ${CMAKE_ARGS}
do-install:
-.if defined(WITH_SRC)
${INSTALL_PROGRAM} ${WRKSRC}/AstroMenace ${PREFIX}/bin
-.endif
${MKDIR} ${DATADIR}
-.if defined(WITH_DATA)
${INSTALL_DATA} ${WRKDIR}/gamedata.vfs ${DATADIR}/
${MKDIR} ${DATADIR}/DATA/SCRIPT
${INSTALL_DATA} ${WRKDIR}/DATA/SCRIPT/* ${DATADIR}/DATA/SCRIPT
-.endif
-.if defined(WITH_EN)
- ${INSTALL_DATA} ${WRKDIR}/gamelang_en.vfs ${DATADIR}/
- ${LN} -sf ${DATADIR}/gamelang_en.vfs ${DATADIR}/gamelang.vfs
-.endif
-.if defined(WITH_DE)
- ${INSTALL_DATA} ${WRKDIR}/gamelang_de.vfs ${DATADIR}/
- ${LN} -sf ${DATADIR}/gamelang_de.vfs ${DATADIR}/gamelang.vfs
-.endif
-.if defined(WITH_RU)
- ${INSTALL_DATA} ${WRKDIR}/gamelang_ru.vfs ${DATADIR}/
- ${LN} -sf ${DATADIR}/gamelang_ru.vfs ${DATADIR}/gamelang.vfs
-.endif
-
-post-install:
- @${CAT} ${PKGMESSAGE}
+ ${INSTALL_DATA} ${WRKDIR}/gamelang_${LANGPACK}.vfs \
+ ${DATADIR}/gamelang.vfs
.include <bsd.port.post.mk>
diff -ruN openastromenace.orig/files/patch-AstroMenaceSource-Main.cpp openastromenace/files/patch-AstroMenaceSource-Main.cpp
--- openastromenace.orig/files/patch-AstroMenaceSource-Main.cpp 1970-01-01 03:00:00.000000000 +0300
+++ openastromenace/files/patch-AstroMenaceSource-Main.cpp 2008-05-19 05:03:02.687044264 +0400
@@ -0,0 +1,39 @@
+--- AstroMenaceSource/Main.cpp.orig 2007-09-23 00:51:32.000000000 +0400
++++ AstroMenaceSource/Main.cpp 2008-05-19 04:59:05.387115362 +0400
+@@ -312,35 +312,7 @@
+ const char* key = "HOME";
+ const char* homeval = getenv(key);
+
+- bool dirpresent = false;
+- for (int i=1; i<argc; i++)
+- {
+- if (!strncmp(argv[i], "--dir=", sizeof("--dir")))
+- {
+- dirpresent = true;
+- // еÑли пеÑедали оÑноÑиÑелÑнÑй пÑÑÑ Ð² Ð¿Ð°Ð¿ÐºÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ñ ÑилÑдой
+- if (argv[i][6] != '~')
+- strncpy(ProgrammDir, argv[i]+strlen("--dir="), strlen(argv[i])-strlen("--dir=")+1);
+- else
+- {
+- strcpy(ProgrammDir, homeval);// -1, ÑÑо ÑилÑда... а в кол-ве неÑ, Ñ.к. /0 Ñам должен оÑÑаÑÑÑÑ
+- strncat(ProgrammDir, argv[i]+strlen("--dir=")+1, strlen(argv[i])-strlen("--dir="));
+- }
+- // еÑли в конÑе Ð½ÐµÑ ÑлеÑа - ÑÑавим его
+- if (ProgrammDir[strlen(ProgrammDir)-1] != '/')
+- strncat(ProgrammDir, "/", strlen("/"));
+-
+- }
+- }
+- if (!dirpresent)
+- {
+- strcpy(ProgrammDir, argv[0]);
+- char* s = strrchr(ProgrammDir,'/');
+- if (s) s[0]=0x0;
+- const char *Fi = "/";
+- strcat( ProgrammDir, Fi );
+- }
+-
++ strcpy(ProgrammDir, "/usr/local/share/openastromenace/");
+
+ strcpy(ScreenshotDir, homeval);
+ strcat(ScreenshotDir, "/Desktop/AstroMenaceScreenshot");
diff -ruN openastromenace.orig/files/patch-CMakeLists.txt openastromenace/files/patch-CMakeLists.txt
--- openastromenace.orig/files/patch-CMakeLists.txt 1970-01-01 03:00:00.000000000 +0300
+++ openastromenace/files/patch-CMakeLists.txt 2008-05-19 04:25:03.281389076 +0400
@@ -0,0 +1,26 @@
+--- CMakeLists.txt.orig 2007-09-23 00:51:32.000000000 +0400
++++ CMakeLists.txt 2008-05-19 04:24:59.253802609 +0400
+@@ -12,6 +12,8 @@
+ # into current directory and run ./AstroMenace
+ #
+
++CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
++
+ # project name
+ PROJECT(AstroMenace)
+
+@@ -34,9 +36,12 @@
+ FILE(GLOB_RECURSE astromenace_SRCS AstroMenaceSource/*.cpp)
+
+ # targets
+-ADD_DEFINITIONS(`${SDL_CONFIG} --cflags` -g -Wall)
++EXEC_PROGRAM(${SDL_CONFIG} ARGS "--cflags" OUTPUT_VARIABLE SDL_CFLAGS)
++EXEC_PROGRAM(${SDL_CONFIG} ARGS "--libs" OUTPUT_VARIABLE SDL_LIBS)
++
++ADD_DEFINITIONS(${SDL_CFLAGS})
+ ADD_EXECUTABLE(AstroMenace ${astromenace_SRCS})
+-TARGET_LINK_LIBRARIES(AstroMenace `${SDL_CONFIG} --libs` ${OPENGL_gl_LIBRARY} ${OPENAL_LIBRARY} ${JPEG_LIBRARY} ${GLU_LIBRARY} -lalut -lvorbis -lvorbisfile)
++TARGET_LINK_LIBRARIES(AstroMenace ${SDL_LIBS} ${OPENGL_gl_LIBRARY} ${OPENAL_LIBRARY} ${JPEG_LIBRARY} ${GLU_LIBRARY} -lalut -lvorbis -lvorbisfile)
+ IF(CYGWIN)
+ TARGET_LINK_LIBRARIES(AstroMenace -lGL.dll -lGLU.dll -lglfw -lX11.dll)
+ # ADD_DEFINITIONS(-mno-cygwin)
diff -ruN openastromenace.orig/files/pkg-message.in openastromenace/files/pkg-message.in
--- openastromenace.orig/files/pkg-message.in 2008-05-19 04:35:40.069481697 +0400
+++ openastromenace/files/pkg-message.in 1970-01-01 03:00:00.000000000 +0300
@@ -1,8 +0,0 @@
-=======================================================================
-OpenAstroMenace is now installed.
-
-You can run game:
-
-AstroMenace --dir=/usr/local/share/openastromenace
-
-=======================================================================
diff -ruN openastromenace.orig/pkg-descr openastromenace/pkg-descr
--- openastromenace.orig/pkg-descr 2008-05-19 04:35:40.075694497 +0400
+++ openastromenace/pkg-descr 2008-05-19 04:27:32.022030694 +0400
@@ -16,3 +16,5 @@
a great number of improvements for enhancing the defensive abilities of your
spaceship. Collect money during the combat and invest them into turning your
spaceship into an ultimate weapon of mass destruction.
+
+WWW: http://sourceforge.net/projects/openastromenace/
diff -ruN openastromenace.orig/pkg-plist openastromenace/pkg-plist
--- openastromenace.orig/pkg-plist 2008-05-19 04:35:40.072582929 +0400
+++ openastromenace/pkg-plist 2008-05-19 04:12:02.195120849 +0400
@@ -24,9 +24,6 @@
%%DATADIR%%/DATA/SCRIPT/my_aimode_7.xml
%%DATADIR%%/gamedata.vfs
%%DATADIR%%/gamelang.vfs
-%%DATADIR%%/gamelang_de.vfs
-%%DATADIR%%/gamelang_en.vfs
-%%DATADIR%%/gamelang_ru.vfs
@dirrm %%DATADIR%%/DATA/SCRIPT
@dirrm %%DATADIR%%/DATA
@dirrm %%DATADIR%%
--- openastromenace.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list