File: q3arch

package info (click to toggle)
ioquake3 1.36+u20190529.350b8f9~dfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 14,704 kB
  • sloc: ansic: 205,858; makefile: 2,565; sh: 1,250; asm: 702; objc: 131; xml: 31
file content (142 lines) | stat: -rwxr-xr-x 3,360 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/bin/sh
#
# Output an architecture and/or platform name that Quake 3 could use for the
# build or host CPU architecture or operating system.

set -e

case "$2" in
    (BUILD|HOST)
        eval "$(dpkg-architecture --print-set)"
        eval "GNU_CPU=\"\${DEB_${2}_GNU_CPU}"\"
        eval "GNU_SYSTEM=\"\${DEB_${2}_GNU_SYSTEM}"\"
        ;;
    (*)
        GNU_CPU="$2"
        GNU_SYSTEM="$3"
        ;;
esac

# In the upstream Makefile the architecture is given by uname -m, with the
# following substitutions:
#
# i.86 -> x86 (used to be i386)
# arm* -> arm
# powerpc -> ppc
# powerpc64 -> ppc64
# axp -> alpha on Linux and FreeBSD (used to be axp)
#
# alpha, i386, ppc(64), sparc and x86_64 are the architectures with special
# handling in the Makefile (all except alpha can compile bytecode).
#
# Before PR #129 was merged, qcommon.h expected to see one of these:
#
# x86, x86_64, AXP (Windows)
# x86, x86_64, ppc64, ppc, s390, s390x, ia64, alpha, sparc, arm, cris,
#    hppa, mips, sh (Linux, kFreeBSD)
# some subset of the Linux set (Mac OS, *BSD, SunOS, Irix)

Q3ARCH="${GNU_CPU}"

case ${GNU_CPU} in
    i?86)
        Q3ARCH=x86
        # previously Q3ARCH=i386
        # RTCW FILE_ARCH=i386
        ;;

    arm*)
        Q3ARCH=arm
        ;;

    alpha)
        Q3ARCH=alpha
        # previously Q3ARCH=axp
        ;;

    powerpc)
        Q3ARCH=ppc
        ;;

    powerpc64)
        Q3ARCH=ppc64
        ;;

    mipsel)
        # both mips and mipsel have $(uname -m) = mips
        Q3ARCH=mips
	;;

    sh4)
        Q3ARCH=sh
        ;;
esac

# In the upstream Makefile the platform is given by uname, with the
# following substitutions:
#
# anything after _ removed
# folded to lower case
# / -> _
#
# This would result in Debian builds being done for linux, gnu_kfreebsd and
# gnu.
#
# However, for most platform names the build system doesn't actually care,
# it's just "some other platform", so we can get away with using the
# GNU system as-is.
#
# (For instance, on Debian kFreeBSD buildd, uname says GNU/kFreeBSD whereas
# the GNU CPU type is kfreebsd-gnu, but that's not important because the
# Makefile doesn't actually do anything different.)

case ${GNU_SYSTEM} in
    linux-gnu*)
        # including, but not limited to:
	# arm-linux-gnueabi (Debian armel: ARM EABI, LE)
	# arm-linux-gnueabihf (Debian armhf: ARM EABI, LE, hardfloat)
	# powerpc-linux-gnuspe (Debian powerpcspe: Signal Processing Extension)
        Q3OS=linux
        ;;
    *)
        Q3OS=${GNU_SYSTEM}
        ;;
esac

echo "GNU CPU:          ${GNU_CPU}" >&2
echo "  => Q3 ARCH:     ${Q3ARCH}" >&2
echo "GNU system        ${GNU_SYSTEM}" >&2
echo "  => Q3 PLATFORM: ${Q3OS}" >&2

case $1 in

(make)
    echo "ARCH=\"${Q3ARCH}\" PLATFORM=\"${Q3OS}\""
    ;;

(make-build)
    echo "COMPILE_ARCH=\"${Q3ARCH}\" COMPILE_PLATFORM=\"${Q3OS}\""
    ;;

(arch)
    echo ${Q3ARCH}
    ;;

(platform)
    echo ${Q3OS}
    ;;

*)
    echo "Usage:" >&2
    echo "    q3arch MODE BUILD|HOST" >&2
    echo " or q3arch MODE CPU SYSTEM" >&2
    echo "MODE is: make|make-build|arch|platform" >&2
    exit 1
    ;;

esac

# Copyright 2009-2015 Simon McVittie <smcv@debian.org>
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided this notice is preserved.
# This file is offered as-is, without any warranty.