Added support for Symbian GCCE compiler

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3067 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
gewlitys
2008-08-31 21:27:02 +00:00
parent 4790be9ae4
commit 934b3ad08c
11 changed files with 142 additions and 42 deletions
+14 -14
View File
@@ -1,5 +1,5 @@
UQM for Symbian S60 3rd ed.
===========================
UQM for Symbian S60 3rd edition
===============================
First some general notes. These instructions might be somewhat incomplete or
unclear. If you encounter any problems or have suggestions how to improve this
@@ -18,9 +18,9 @@ Known problems:
Prerequisites:
--------------
- Platform SDK for S60 3rd ed. (MR) / 3rd ed. FP1 / 3rd ed. FP2, depending on
target hardware
- Platform SDK for S60 3rd ed.
* Download from http://www.forum.nokia.com/
* 3rd ed. MR was used for development, FP1 and FP2 have not been tested
- Open C plugins (if SDK is other than FP2; in FP2 those should be included already)
* Download from http://www.forum.nokia.com/main/resources/tools_and_sdks/openc_cpp/
@@ -28,9 +28,9 @@ Prerequisites:
- Carbide.c++ (if building for emulator)
* Download from http://www.forum.nokia.com/
* Command line compiling must be enabled
- ARM RealView compiler (if building for hardware)
* Commercial, see http://www.arm.com/products/DevTools/
- CSL ARM Toolchain or RVCT v2.2 (if building for hardware)
* GCCE included with SDK
- MinGW and MSYS (for build scripts)
* Download from http://www.mingw.org/
@@ -69,18 +69,18 @@ Building:
Set BUILD_EPOCROOT to point to the substed drive:
export BUILD_EPOCROOT=/z
Set BUILD_HOST to either WINSCW (emulator) or ARMV5 (hardware), depending
Set BUILD_HOST to WINSCW (emulator) or GCCE / ARMV5 (hardware), depending
for which target you want to build:
export BUILD_HOST=ARMV5
export BUILD_HOST=GCCE
8) Compile (you don't need to change any options from the interactive menu):
./build.sh uqm
9) Install. It builds the content zip and puts everything to proper
place (WINSCW) or creates a self-signed SIS package (ARMV5):
place (WINSCW) or creates a self-signed SIS package (GCCE / ARMV5):
./build.sh uqm install
10) If you built for ARMV5, you should now have uqm.sisx in the same directory
from where you did the build. Remember to also install SDL SIS package and
if not using FP2 SDK, Open C plugins before attempting to run UQM on actual
device.
10) If you built for GCCE or ARMV5, you should now have uqm.sisx in the same
directory from where you did the build. Remember to also install SDL SIS
package and if not using FP2 SDK, Open C plugins before attempting to run
UQM on actual device.
+4
View File
@@ -22,10 +22,14 @@ ifeq ($(HOST_SYSTEM),ARMV5)
else
ifeq ($(HOST_SYSTEM),WINSCW)
include build/unix/make/buildtools-winscw
else
ifeq ($(HOST_SYSTEM),GCCE)
include build/unix/make/buildtools-gcce
else
include build/unix/make/buildtools-generic
endif
endif
endif
default:
+1 -1
View File
@@ -9,7 +9,7 @@ else
uqm_NAME=uqm # File name of executable
fi
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
uqm_NAME="uqm.lib"
;;
MINGW32*|CYGWIN*)
+39 -15
View File
@@ -72,7 +72,7 @@ uqm_prepare_config()
MENU_main_ITEMS="debug graphics sound mikmod ovcodec netplay joystick \
ioformat accel threadlib"
case "$HOST_SYSTEM" in
Darwin|WINSCW|ARMV5)
Darwin|WINSCW|ARMV5|GCCE)
# Installation directory not modifiable
;;
MINGW32*|cegcc)
@@ -106,6 +106,9 @@ uqm_prepare_config()
;;
ARMV5)
CFLAGS="$CFLAGS -O3 -Otime -DNDEBUG"
;;
GCCE)
CFLAGS="$CFLAGS -O3 -DNDEBUG"
;;
*)
CFLAGS="$CFLAGS -O3"
@@ -120,9 +123,9 @@ uqm_prepare_config()
WINSCW)
CFLAGS="$CFLAGS -g -O0 -W all -d DEBUG -d _DEBUG"
;;
ARMV5)
ARMV5|GCCE)
CFLAGS="$CFLAGS -g -O0 -DDEBUG -D_DEBUG"
;;
;;
*)
CFLAGS="$CFLAGS -g -O0 -W -Wall -DDEBUG"
LDFLAGS="$LDFLAGS -O0"
@@ -137,9 +140,9 @@ uqm_prepare_config()
WINSCW)
CFLAGS="$CFLAGS -g -O0 -W all -d DEBUG -d _DEBUG"
;;
ARMV5)
ARMV5|GCCE)
CFLAGS="$CFLAGS -g -O0 -DDEBUG -D_DEBUG"
;;
;;
*)
CFLAGS="$CFLAGS -O1" # This is needed for -Wunitialized
CFLAGS="$CFLAGS -W -Wall \
@@ -172,7 +175,7 @@ uqm_prepare_config()
DEBUG=1
}
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
CHOICE_debug_DEFAULT=nodebug
;;
*)
@@ -272,7 +275,7 @@ uqm_prepare_config()
}
CHOICE_joystick_OPTION_disabled_TITLE="disabled"
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
CHOICE_joystick_DEFAULT=disabled
;;
*)
@@ -354,7 +357,7 @@ uqm_prepare_config()
use_library pthread
}
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
CHOICE_threadlib_DEFAULT=pthread
;;
*)
@@ -478,17 +481,24 @@ uqm_post_build() {
ARMV5)
cp "$TARGET_FILE" "$BUILD_EPOCROOT/epoc32/release/armv5/urel/"
cd src/symbian
cmd \\/C bldmake bldfiles armv5
cmd \\/C bldmake bldfiles
cmd \\/C abld build armv5 urel
cd ../..
;;
WINSCW)
cp "$TARGET_FILE" "$BUILD_EPOCROOT/epoc32/release/winscw/udeb/"
cd src/symbian
cmd \\/C bldmake bldfiles winscw
cmd \\/C bldmake bldfiles
cmd \\/C abld build winscw udeb
cd ../..
;;
;;
GCCE)
cp "$TARGET_FILE" "$BUILD_EPOCROOT/epoc32/release/armv5/urel/"
cd src/symbian
cmd \\/C bldmake bldfiles
cmd \\/C abld build gcce urel
cd ../..
;;
esac
}
@@ -515,6 +525,9 @@ uqm_install() {
ARMV5)
uqm_install_armv5
;;
GCCE)
uqm_install_gcce
;;
*)
generic_install
;;
@@ -613,7 +626,18 @@ uqm_install_armv5() {
cd src/symbian
cmd \\/C makekeys -cert -password asdfgh -len 2048 -dname "CN=UQM OR=Ur-Quan Masters CO=FI" uqm.key uqm.cer
cmd \\/C makesis uqm.pkg
cmd \\/C makesis uqm-armv5.pkg uqm.sis
cmd \\/C signsis -v uqm.sis uqm.sisx uqm.cer uqm.key asdfgh
mv uqm.sisx ../..
cd ../..
}
uqm_install_gcce() {
uqm_create_symbian_content_package
cd src/symbian
cmd \\/C makekeys -cert -password asdfgh -len 2048 -dname "CN=UQM OR=Ur-Quan Masters CO=FI" uqm.key uqm.cer
cmd \\/C makesis uqm-gcce.pkg uqm.sis
cmd \\/C signsis -v uqm.sis uqm.sisx uqm.cer uqm.key asdfgh
mv uqm.sisx ../..
cd ../..
@@ -640,7 +664,7 @@ uqm_clean() {
MINGW32*|CYGWIN*)
rm -f "$BUILD_WORK/config_win.h"
;;
ARMV5)
ARMV5|GCCE)
local TARGET_FILE
eval TARGET_FILE="\$BUILD_WORK/\${${BUILD_PROJECT}_NAME}"
@@ -649,7 +673,7 @@ uqm_clean() {
rm -f $TARGET_FILE uqm.sisx content.uqm
cd src/symbian
cmd \\/C abld reallyclean armv5
cmd \\/C abld reallyclean
cmd \\/C bldmake clean
rm -f uqm.sis uqm.key uqm.cer
cd ../..
@@ -663,7 +687,7 @@ uqm_clean() {
rm -f $TARGET_FILE content.uqm
cd src/symbian
cmd \\/C abld reallyclean winscw
cmd \\/C abld reallyclean
cmd \\/C bldmake clean
cd ../..
;;
+2
View File
@@ -1019,6 +1019,8 @@ set_host_system() {
HOST_SYSTEM="WINSCW" ;;
[Aa][Rr][Mm][Vv]5)
HOST_SYSTEM="ARMV5" ;;
[Gg][Cc][Cc][Ee])
HOST_SYSTEM="GCCE" ;;
*)
build_message "Warning: host type '$BUILD_HOST' unknown. Using defaults."
;;
+33
View File
@@ -117,6 +117,31 @@ case "$HOST_SYSTEM" in
BUILDTOOL_LINK_COMMAND="\$PROG_armar_FILE $EXTRA_ARMV5_FLAGS_LINK"
BUILDTOOL_LINK_DEPEND='armar'
;;
GCCE)
EXTRA_GCCE_FLAGS_COMPILE='-Wno-unknown-pragmas -march=armv5t -mapcs -pipe -nostdinc -msoft-float -D_UNICODE -D__GCCE__ -D__SYMBIAN32__ -D__SERIES60_30__ -D__SERIES60_3X__ -D__GCCE__ -D__EPOC32__ -D__MARM__ -D__EABI__ -D__MARM_ARMV5__ -D __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ -D__PRODUCT_INCLUDE__=\"/epoc32/include/variant/Symbian_OS_v9.1.hrh\" -x c -include $BUILD_EPOCROOT/EPOC32/INCLUDE/GCCE/GCCE.h -I$BUILD_EPOCROOT/epoc32/include -I$BUILD_EPOCROOT/epoc32/include/stdapis -I$BUILD_EPOCROOT/epoc32/include/variant'
EXTRA_GCCE_FLAGS_LINK=''
BUILDTOOL_PREPROC_C_COMMAND="\$PROG_gcce_FILE -E $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_PREPROC_C_DEPEND='gcce'
BUILDTOOL_MKDEP_C_COMMAND="\$PROG_gcce_FILE -MM $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_MKDEP_C_DEPEND='gcce'
BUILDTOOL_COMPILE_C_COMMAND="\$PROG_gcce_FILE -c $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_COMPILE_C_DEPEND='gcce'
BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_gcce_FILE -E"
BUILDTOOL_PREPROC_OBJC_DEPEND='gcce'
BUILDTOOL_MKDEP_OBJC_COMMAND="\$PROG_gcce_FILE -MM"
BUILDTOOL_MKDEP_OBJC_DEPEND='gcce'
BUILDTOOL_COMPILE_OBJC_COMMAND="\$PROG_gcce_FILE -c"
BUILDTOOL_COMPILE_OBJC_DEPEND='gcce'
BUILDTOOL_LINK_COMMAND="\$PROG_gcce_FILE $EXTRA_GCCE_FLAGS_LINK"
BUILDTOOL_LINK_DEPEND='gcce'
;;
*)
useGccBuildTools
;;
@@ -271,6 +296,14 @@ PROG_armar_ACTION=""
PROG_armar_VERSION='$(armar --vsn)'
### gcce ###
PROG_gcce_NAME="GNU C Compiler (CodeSourcery ARM)"
PROG_gcce_FILE="arm-none-symbianelf-gcc"
PROG_gcce_ACTION=""
PROG_gcce_VERSION='$(arm-none-symbianelf-gcc --version)'
##############################################################################
# Describe the libaries (possibly) used: #
##############################################################################
+14 -11
View File
@@ -67,15 +67,17 @@ case "$HOST_SYSTEM" in
gcc -E -include SDL/SDL_version.h $LIB_SDL_CFLAGS - | \
tail -1 | tr -d ' ')
;;
WINSCW)
WINSCW|GCCE)
LIB_SDL_CFLAGS='-I$BUILD_EPOCROOT/epoc32/include/SDL'
LIB_SDL_LDFLAGS=''
LIB_SDL_VERSION='1.2.13'
LIB_SDL_DETECT="true"
;;
ARMV5)
LIB_SDL_CFLAGS='-J$BUILD_EPOCROOT/epoc32/include/SDL'
LIB_SDL_LDFLAGS=''
LIB_SDL_VERSION='1.2.13'
LIB_SDL_DETECT="true"
;;
*)
LIB_SDL_CFLAGS='$(sdl-config --cflags)'
@@ -99,9 +101,10 @@ case "$HOST_SYSTEM" in
LIB_SDL_image_CFLAGS=''
LIB_SDL_image_LDFLAGS="-framework SDL_image"
;;
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_SDL_image_CFLAGS="$LIB_SDL_CFLAGS"
LIB_SDL_image_LDFLAGS="$LIB_SDL_LDFLAGS"
LIB_SDL_image_DETECT="true"
;;
*)
LIB_SDL_image_CFLAGS="$LIB_SDL_CFLAGS"
@@ -149,7 +152,7 @@ case "$HOST_SYSTEM" in
LIB_opengl_CFLAGS=""
LIB_opengl_LDFLAGS="-framework OpenGL"
;;
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_opengl_DETECT="false"
;;
*)
@@ -166,7 +169,7 @@ LIB_vorbis_CFLAGS=""
LIB_vorbis_LDFLAGS="-lvorbis"
LIB_vorbis_VERSION=""
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_vorbis_DETECT="false"
;;
esac
@@ -198,7 +201,7 @@ case "$HOST_SYSTEM" in
esac
LIB_vorbisfile_VERSION=""
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_vorbisfile_DETECT="false"
;;
*)
@@ -220,7 +223,7 @@ case "$HOST_SYSTEM" in
LIB_tremor_CFLAGS=""
LIB_tremor_LDFLAGS="-framework Tremor"
;;
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_tremor_DETECT="false"
;;
*)
@@ -237,7 +240,7 @@ LIB_libmikmod_CFLAGS="$(libmikmod-config --cflags)"
LIB_libmikmod_LDFLAGS="$(libmikmod-config --libs)"
LIB_libmikmod_VERSION="$(libmikmod-config --version)"
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_libmikmod_DETECT="false"
;;
esac
@@ -250,7 +253,7 @@ case "$HOST_SYSTEM" in
MINGW32*|CYGWIN*|cegcc)
LIB_zlib_LDFLAGS="-lzdll"
;;
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_zlib_LDFLAGS=""
;;
*)
@@ -259,7 +262,7 @@ case "$HOST_SYSTEM" in
esac
LIB_zlib_VERSION=""
case "$HOST_SYSTEM" in
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_zlib_DETECT="true"
;;
*)
@@ -283,7 +286,7 @@ case "$HOST_SYSTEM" in
LIB_pthread_LDFLAGS="$(pthread-config --ldflags)"
LIB_pthread_VERSION="$(pthread-config --version)"
;;
WINSCW|ARMV5)
WINSCW|ARMV5|GCCE)
LIB_pthread_CFLAGS=""
LIB_pthread_LDFLAGS=""
LIB_pthread_VERSION=""
@@ -304,7 +307,7 @@ case "$HOST_SYSTEM" in
LIB_netlibs_LDFLAGS="-lsocket"
LIB_netlibs_VERSION=""
;;
ARMV5|WINSCW)
ARMV5|WINSCW|GCCE)
LIB_netlibs_DETECT="false"
;;
esac
+8
View File
@@ -0,0 +1,8 @@
# Definitions for build tools for the makefile used by the UQM build system.
# This file defines the build commands for GCCE tools.
include build/unix/make/buildtools-generic
define act_link
arm-none-symbianelf-ar cr "$@" $^ $(LDFLAGS)
endef
+26
View File
@@ -0,0 +1,26 @@
;Language - standard language definitions
&EN
; standard SIS file header
#{"Ur-Quan Masters"},(0xA000A0C3),1,0,0
;Localised Vendor name
%{"Interstellar Frungy League"}
;Unique Vendor name
:"Interstellar Frungy League"
;Supports Series 60 v 3.0
[0x101F7961], 0, 0, 0, {"Series60ProductID"}
*"uqm.key", "uqm.cer"
;Files to install
;<source> <destination>
"\Epoc32\release\gcce\urel\uqm.exe" - "!:\sys\bin\uqm.exe"
"\Epoc32\data\z\resource\apps\uqm.rsc" - "!:\resource\apps\uqm.rsc"
"\Epoc32\data\z\resource\apps\uqm_icon.mif" - "!:\resource\apps\uqm_icon.mif"
"\Epoc32\data\z\private\10003a3f\import\apps\uqm_reg.rsc" - "!:\private\10003a3f\import\apps\uqm_reg.rsc"
"uqm.cfg" - "c:\private\A000A0C3\userdata\uqm.cfg"
"..\..\content\version" - "c:\private\A000A0C3\content\version"
"..\..\content.uqm" - "c:\private\A000A0C3\content\packages\content.uqm"
+1 -1
View File
@@ -39,5 +39,5 @@ LIBRARY libm.lib
LIBRARY libz.lib
LIBRARY libpthread.lib
STATICLIBRARY SDL_image.lib
STATICLIBRARY uqm.lib
STATICLIBRARY SDL_image.lib