source: trunk/dports/games/alienarena/Portfile

Last change on this file was 113210, checked in by ryandesign@…, 4 years ago

alienarena: avoid extracting unneeded files in a way that works with both gnutar and bsdtar

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.4 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 113210 2013-11-12 09:44:33Z ryandesign@macports.org $
3
4PortSystem          1.0
5
6name                alienarena
7version             7.66-20130827
8set version_number  [lindex [split ${version} -] 0]
9set version_date    [lindex [split ${version} -] 1]
10categories          games
11platforms           darwin
12maintainers         ryandesign
13license             GPL-2+
14
15description         retro sci-fi old school deathmatch game similar to Quake \
16                    III and Unreal Tournament
17
18long_description    Alien Arena combines some of the very best aspects of \
19                    such games as Quake III and Unreal Tournament and wraps \
20                    them up with a retro alien theme, while adding tons of \
21                    original ideas to make the game quite unique. Alien Arena \
22                    is a furious frag fest with arenas ranging from the \
23                    small, to the massive. With a large built-in player base, \
24                    it's never hard to find a good match going on, at any \
25                    hour of the day. The community is friendly, as well as \
26                    prolific. Dozens of maps, models, and various accessories \
27                    have been created by community members to add on to the \
28                    game experience.
29
30homepage            http://red.planetarena.org/
31master_sites        http://icculus.org/alienarena/Files/ \
32                    ${homepage}files/
33
34worksrcdir          alienarena-${version_number}
35distname            ${worksrcdir}-linux${version_date}
36
37checksums           rmd160  f3183b9ce90b52d7e01379cfcf004ce3249384a5 \
38                    sha256  29086098eacb18319e6dcc9156355c44db4b1aa8a4f7b0bb63e6856d8128b012
39
40platform darwin {
41    pre-fetch {
42        # 10.4.11:
43        # ld: common symbols not allowed with MH_DYLIB output format with the -multi_module option
44        # The usual advice is to use -fno-common (e.g. http://gcc.gnu.org/ml/gcc/2005-06/msg00378.html)
45        # but this leads to several "multiple definitions of symbol" errors.
46        if {${os.major} < 9} {
47            ui_error "Alien Arena requires Mac OS X 10.5 or greater at the moment."
48            return -code error "incompatible Mac OS X version"
49        }
50    }
51}
52
53if {${name} eq ${subport}} {
54    revision                    0
55   
56    depends_build               port:pkgconfig
57   
58    depends_lib                 port:curl \
59                                port:freetype \
60                                port:jpeg \
61                                port:libvorbis \
62                                port:openal-soft \
63                                port:mesa \
64                                port:xorg-libX11 \
65                                port:xorg-libXext \
66                                port:xorg-libXxf86dga \
67                                port:xorg-libXxf86vm
68   
69    depends_run                 port:alienarena-data
70   
71    pre-extract {
72        # Create list of data files we want to exclude.
73        system -W ${workpath} "${extract.cmd} ${extract.pre_args} ${distpath}/${distfiles} | tar -tf - --exclude '*.cfg' ${worksrcdir}/data1 | grep -v /$ > datafiles.txt"
74    }
75   
76    # Avoid extracting data files.
77    extract.post_args-append    -X datafiles.txt
78   
79    configure.args              --disable-silent-rules \
80                                --x-includes=${prefix}/include \
81                                --x-libraries=${prefix}/lib \
82                                --without-system-libode \
83                                --with-xf86dga \
84                                --with-xf86vm
85   
86    pre-configure {
87        configure.cflags-append -std=gnu89
88    }
89   
90    patchfiles                  patch-Makefile.am.diff \
91                                patch-configure.ac.diff
92   
93    post-patch {
94        reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/configure.ac
95    }
96   
97    use_autoreconf              yes
98   
99    # Prevent finding an installed version of ode which would cause a build error.
100    configure.cppflags-replace  -I${prefix}/include -isystem${prefix}/include
101   
102    post-destroot {
103        xinstall -d ${destroot}${prefix}/share/${name}
104        copy ${worksrcpath}/arena ${worksrcpath}/botinfo ${worksrcpath}/data1 ${destroot}${prefix}/share/${name}
105    }
106   
107    variant debug description {Enable debugging symbols} {
108        configure.args-append   --enable-debugging-symbols
109        configure.optflags      -O0
110    }
111   
112    notes "
113To play Alien Arena, type:
114
115${name}
116
117To run your own dedicated Alien Arena server, use:
118
119${name}-ded
120"
121   
122    livecheck.version           ${version_number}
123    livecheck.type              regex
124    livecheck.url               ${homepage}aquire.html
125    livecheck.regex             ${name}-(\[0-9.\]+)-linux\[0-9\]+${extract.suffix}
126} else {
127    livecheck.type              none
128}
129
130subport alienarena-data {
131    revision                    0
132    license                     Restrictive
133    supported_archs             noarch
134   
135    description                 Assets for the Alien Arena game
136   
137    long_description            ${description}
138   
139    # Extract only the data1 directory, minus its .cfg files.
140    extract.post_args-append    --exclude '*.cfg' ${worksrcdir}/data1
141   
142    use_configure               no
143   
144    build {}
145   
146    destroot {
147        xinstall -d ${destroot}${prefix}/share/${name}
148        copy ${worksrcpath}/data1 ${destroot}${prefix}/share/${name}
149    }
150}
151
Note: See TracBrowser for help on using the repository browser.