summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-05-02 23:22:26 +0000
committerMike Frysinger <vapier@gentoo.org>2005-05-02 23:22:26 +0000
commit9f54645ef6ecd5b460d58572339df2ed2a22b723 (patch)
tree128e2bd439c5eea6b74eef820b4d8f5c98200b72 /games-strategy/freecnc
parentversion bump (bug #91090) (diff)
downloadgentoo-2-9f54645ef6ecd5b460d58572339df2ed2a22b723.tar.gz
gentoo-2-9f54645ef6ecd5b460d58572339df2ed2a22b723.tar.bz2
gentoo-2-9f54645ef6ecd5b460d58572339df2ed2a22b723.zip
fix endian building issues #90949
(Portage version: 2.0.51.21)
Diffstat (limited to 'games-strategy/freecnc')
-rw-r--r--games-strategy/freecnc/files/freecnc-0.2.0-endian.patch124
-rw-r--r--games-strategy/freecnc/freecnc-0.2.0.ebuild8
2 files changed, 129 insertions, 3 deletions
diff --git a/games-strategy/freecnc/files/freecnc-0.2.0-endian.patch b/games-strategy/freecnc/files/freecnc-0.2.0-endian.patch
new file mode 100644
index 000000000000..ad8779ace61a
--- /dev/null
+++ b/games-strategy/freecnc/files/freecnc-0.2.0-endian.patch
@@ -0,0 +1,124 @@
+freecnc normally bundles a file called 'endian.h' ... this causes problems
+with the real system endian.h. grab upstream cvs fix for this (rename
+endian.h to fcnc_endian.h).
+
+--- src/game/loadmap.cpp
++++ src/game/loadmap.cpp
+@@ -8,3 +8,3 @@
+ #include "shpimage.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "config.h"
+--- src/include/fcnc_endian.h
++++ src/include/fcnc_endian.h
+@@ -0,0 +1,68 @@
++// mode: -*- C++ -*-
++/*****************************************************************************
++ * endian.h - Includes macro definitions to convert bytes to correct endianess
++ * This code has yet to be tested on Big Endian Machines.
++ *
++ * Author: Kareem Dana
++ ****************************************************************************/
++
++#ifndef __FCNC_ENDIAN_H
++#define __FCNC_ENDIAN_H
++
++#include <stdio.h>
++#include "SDL_endian.h"
++
++#if SDL_BYTEORDER == SDL_LIL_ENDIAN
++ #define readbyte(x,y) x[y]
++ #define readword(x,y) x[y] + (x[y+1] << 8)
++ #define readthree(x,y) x[y] + (x[y+1] << 8) + (x[y+2] << 16) + (0 << 24)
++ #define readlong(x,y) x[y] + (x[y+1] << 8) + (x[y+2] << 16) + (x[y+3] << 24)
++#else
++ #define readbyte(x,y) x[y]
++ #define readword(x,y) SDL_Swap16((x[y] << 8) ^ x[y+1])
++ #define readthree(x,y) SDL_Swap32((x[y] << 24) ^ (x[y+1] << 16) ^ (x[y+2] << 8))
++ #define readlong(x,y) SDL_Swap32((x[y] << 24) ^ (x[y+1] << 16) ^ (x[y+2] << 8) ^ (x[y+3]))
++#endif
++
++static __inline__ Uint8 freadbyte(FILE *fptr)
++{
++ Uint8 x;
++ fread(&x,1,1,fptr);
++ return x;
++}
++
++static __inline__ Uint16 freadword(FILE *fptr)
++{
++ Uint16 x;
++ fread(&x,2,1,fptr);
++#if SDL_BYTEORDER == SDL_BIG_ENDIAN
++
++ return SDL_Swap16(x);
++#else
++
++ return x;
++#endif
++}
++
++static __inline__ Uint32 freadthree(FILE *fptr)
++{
++ /* Can this be made betteR?? */
++ Uint8 x[3];
++ fread(x,3,1,fptr);
++ return readthree(x,0);
++}
++
++static __inline__ Uint32 freadlong(FILE *fptr)
++{
++ Uint32 x;
++ fread(&x, 4, 1, fptr);
++#if SDL_BYTEORDER == SDL_BIG_ENDIAN
++
++ return SDL_Swap32(x);
++#else
++
++ return x;
++#endif
++}
++
++#endif
+--- src/ui/font.cpp
++++ src/ui/font.cpp
+@@ -1,3 +1,3 @@
+ #include "font.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "vfs.h"
+--- src/vfs/vfs_mix/mixvfs.cpp
++++ src/vfs/vfs_mix/mixvfs.cpp
+@@ -2,3 +2,3 @@
+ #include "ws-key.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "SDL_endian.h"
+--- src/video/cpsimage.cpp
++++ src/video/cpsimage.cpp
+@@ -4,3 +4,3 @@
+ #include "inifile.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "compression.h"
+--- src/video/shpimage.cpp
++++ src/video/shpimage.cpp
+@@ -7,3 +7,3 @@
+ #include "inifile.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "compression.h"
+--- src/video/vqa.cpp
++++ src/video/vqa.cpp
+@@ -1,3 +1,3 @@
+ #include "compression.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "vfs.h"
+--- src/video/wsaimage.cpp
++++ src/video/wsaimage.cpp
+@@ -1,3 +1,3 @@
+ #include "wsa.h"
+-#include "endian.h"
++#include "fcnc_endian.h"
+ #include "compression.h"
diff --git a/games-strategy/freecnc/freecnc-0.2.0.ebuild b/games-strategy/freecnc/freecnc-0.2.0.ebuild
index 3f7b35e48f2c..3d074aa20133 100644
--- a/games-strategy/freecnc/freecnc-0.2.0.ebuild
+++ b/games-strategy/freecnc/freecnc-0.2.0.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-strategy/freecnc/freecnc-0.2.0.ebuild,v 1.4 2004/06/24 23:27:21 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/freecnc/freecnc-0.2.0.ebuild,v 1.5 2005/05/02 23:22:26 vapier Exp $
inherit games flag-o-matic eutils
@@ -34,11 +34,13 @@ src_unpack() {
epatch ${FILESDIR}/${PV}-makefile-cflags.patch
epatch ${FILESDIR}/${PV}-remove-root.patch
epatch ${FILESDIR}/${PV}-gentoo-paths.patch
+ epatch "${FILESDIR}"/${P}-endian.patch
+ rm -f src/include/endian.h
sed -i \
-e "s:GENTOO_LOGDIR:${GAMES_LOGDIR}:" \
-e "s:GENTOO_CONFDIR:${GAMES_SYSCONFDIR}/${PN}/:" \
-e "s:GENTOO_DATADIR:${GAMES_DATADIR}/${PN}/:" \
- src/{freecnc,vfs/vfs}.cpp
+ src/freecnc.cpp src/vfs/vfs.cpp
}
src_compile() {