summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Jarosch <tomj@simonv.com>2011-02-27 23:42:37 +0000
committerThomas Jarosch <tomj@simonv.com>2011-02-27 23:42:37 +0000
commit6e9e6a7571275f1942630e0383d3fdf912178c8d (patch)
tree74545da1553abed88ef536f0281ab1acbee96576
parent87f7dcf38ed521fcea5561e2a0b7954617f96e66 (diff)
downloadrockbox-6e9e6a7571275f1942630e0383d3fdf912178c8d.tar.gz
rockbox-6e9e6a7571275f1942630e0383d3fdf912178c8d.zip
RaaA: Add initial Pandora support
More information: www.openpandora.org Possible things to implement: - Special button mappings - Battery monitoring - ALSA audio backend - Automate creation of "pnd" (=binary) file git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29451 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs.c2
-rw-r--r--apps/main.c4
-rw-r--r--apps/settings_list.c2
-rw-r--r--firmware/common/filefuncs.c2
-rw-r--r--firmware/common/rbpaths.c2
-rw-r--r--firmware/export/config.h6
-rw-r--r--firmware/export/config/pandora.h96
-rw-r--r--firmware/export/debug.h2
-rw-r--r--firmware/include/dir_uncached.h2
-rw-r--r--firmware/include/file.h2
-rw-r--r--firmware/target/hosted/sdl/app/button-application.c2
-rw-r--r--firmware/target/hosted/sdl/system-sdl.c4
-rwxr-xr-xtools/configure75
13 files changed, 188 insertions, 13 deletions
diff --git a/apps/codecs.c b/apps/codecs.c
index 86e36edcf0..c9f612b3f4 100644
--- a/apps/codecs.c
+++ b/apps/codecs.c
@@ -54,7 +54,7 @@
54#define LOGF_ENABLE 54#define LOGF_ENABLE
55#include "logf.h" 55#include "logf.h"
56 56
57#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO)) 57#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
58#define PREFIX(_x_) sim_ ## _x_ 58#define PREFIX(_x_) sim_ ## _x_
59#else 59#else
60#define PREFIX(_x_) _x_ 60#define PREFIX(_x_) _x_
diff --git a/apps/main.c b/apps/main.c
index bd04223f97..001f368f50 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -125,7 +125,7 @@
125#define MAIN_NORETURN_ATTR 125#define MAIN_NORETURN_ATTR
126#endif 126#endif
127 127
128#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO)) 128#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
129#include "sim_tasks.h" 129#include "sim_tasks.h"
130#include "system-sdl.h" 130#include "system-sdl.h"
131#define HAVE_ARGV_MAIN 131#define HAVE_ARGV_MAIN
@@ -351,7 +351,7 @@ static void init(void)
351 show_logo(); 351 show_logo();
352 button_init(); 352 button_init();
353 backlight_init(); 353 backlight_init();
354#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO)) 354#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
355 sim_tasks_init(); 355 sim_tasks_init();
356#endif 356#endif
357#if (CONFIG_PLATFORM & PLATFORM_ANDROID) 357#if (CONFIG_PLATFORM & PLATFORM_ANDROID)
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 154479b63b..2d73028968 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -217,7 +217,7 @@ static const char graphic_numeric[] = "graphic,numeric";
217 #define DEFAULT_FONTNAME "15-Adobe-Helvetica" 217 #define DEFAULT_FONTNAME "15-Adobe-Helvetica"
218#elif LCD_HEIGHT <= 400 218#elif LCD_HEIGHT <= 400
219 #define DEFAULT_FONTNAME "16-Adobe-Helvetica" 219 #define DEFAULT_FONTNAME "16-Adobe-Helvetica"
220#elif LCD_HEIGHT <= 480 && !(CONFIG_PLATFORM & PLATFORM_MAEMO) 220#elif LCD_HEIGHT <= 480 && !(CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA))
221 #define DEFAULT_FONTNAME "27-Adobe-Helvetica" 221 #define DEFAULT_FONTNAME "27-Adobe-Helvetica"
222#else 222#else
223 #define DEFAULT_FONTNAME "35-Adobe-Helvetica" 223 #define DEFAULT_FONTNAME "35-Adobe-Helvetica"
diff --git a/firmware/common/filefuncs.c b/firmware/common/filefuncs.c
index 3811f06ec9..6eb2bafa40 100644
--- a/firmware/common/filefuncs.c
+++ b/firmware/common/filefuncs.c
@@ -91,7 +91,7 @@ bool dir_exists(const char *path)
91 91
92#endif /* __PCTOOL__ */ 92#endif /* __PCTOOL__ */
93 93
94#if (CONFIG_PLATFORM & (PLATFORM_NATIVE|PLATFORM_SDL|PLATFORM_MAEMO)) 94#if (CONFIG_PLATFORM & (PLATFORM_NATIVE|PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
95struct dirinfo dir_get_info(DIR* parent, struct dirent *entry) 95struct dirinfo dir_get_info(DIR* parent, struct dirent *entry)
96{ 96{
97 (void)parent; 97 (void)parent;
diff --git a/firmware/common/rbpaths.c b/firmware/common/rbpaths.c
index 10fceb69d9..cb56ab4845 100644
--- a/firmware/common/rbpaths.c
+++ b/firmware/common/rbpaths.c
@@ -43,7 +43,7 @@
43#define opendir opendir_android 43#define opendir opendir_android
44#define mkdir mkdir_android 44#define mkdir mkdir_android
45#define rmdir rmdir_android 45#define rmdir rmdir_android
46#elif (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO)) 46#elif (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
47#define open sim_open 47#define open sim_open
48#define remove sim_remove 48#define remove sim_remove
49#define rename sim_rename 49#define rename sim_rename
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 1783cc137d..d00958a71d 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -86,6 +86,7 @@
86#define PLATFORM_MAEMO4 (1<<4) 86#define PLATFORM_MAEMO4 (1<<4)
87#define PLATFORM_MAEMO5 (1<<5) 87#define PLATFORM_MAEMO5 (1<<5)
88#define PLATFORM_MAEMO (PLATFORM_MAEMO4|PLATFORM_MAEMO5) 88#define PLATFORM_MAEMO (PLATFORM_MAEMO4|PLATFORM_MAEMO5)
89#define PLATFORM_PANDORA (1<<6)
89 90
90/* CONFIG_KEYPAD */ 91/* CONFIG_KEYPAD */
91#define PLAYER_PAD 1 92#define PLAYER_PAD 1
@@ -448,6 +449,8 @@ Lyre prototype 1 */
448#include "config/nokian8xx.h" 449#include "config/nokian8xx.h"
449#elif defined(NOKIAN900) 450#elif defined(NOKIAN900)
450#include "config/nokian900.h" 451#include "config/nokian900.h"
452#elif defined(PANDORA)
453#include "config/pandora.h"
451#else 454#else
452/* no known platform */ 455/* no known platform */
453#endif 456#endif
@@ -511,7 +514,8 @@ Lyre prototype 1 */
511#endif 514#endif
512 515
513/* define for all cpus from ARM family */ 516/* define for all cpus from ARM family */
514#if (CONFIG_PLATFORM & PLATFORM_MAEMO5) && defined(MAEMO_ARM_BUILD) 517#if ((CONFIG_PLATFORM & PLATFORM_MAEMO5) && defined(MAEMO_ARM_BUILD)) \
518 || (CONFIG_PLATFORM & PLATFORM_PANDORA)
515#define CPU_ARM 519#define CPU_ARM
516#define ARM_ARCH 7 /* ARMv7 */ 520#define ARM_ARCH 7 /* ARMv7 */
517 521
diff --git a/firmware/export/config/pandora.h b/firmware/export/config/pandora.h
new file mode 100644
index 0000000000..81dd75b975
--- /dev/null
+++ b/firmware/export/config/pandora.h
@@ -0,0 +1,96 @@
1/*
2 * This config file is for Rockbox as an application on the Nokia N8xx
3 */
4#define TARGET_TREE /* this target is using the target tree system */
5
6/* We don't run on hardware directly */
7#define CONFIG_PLATFORM (PLATFORM_HOSTED|PLATFORM_PANDORA)
8
9/* For Rolo and boot loader */
10#define MODEL_NUMBER 100
11
12#define MODEL_NAME "Rockbox"
13
14#define USB_NONE
15
16/* define this if you have a bitmap LCD display */
17#define HAVE_LCD_BITMAP
18
19/* define this if you have a colour LCD */
20#define HAVE_LCD_COLOR
21
22/* define this if you want album art for this target */
23#define HAVE_ALBUMART
24
25/* define this to enable bitmap scaling */
26#define HAVE_BMP_SCALING
27
28/* define this to enable JPEG decoding */
29#define HAVE_JPEG
30
31/* define this if you have access to the quickscreen */
32#define HAVE_QUICKSCREEN
33/* define this if you have access to the pitchscreen */
34#define HAVE_PITCHSCREEN
35
36/* define this if you would like tagcache to build on this target */
37#define HAVE_TAGCACHE
38
39/* LCD dimensions */
40#define LCD_WIDTH 800
41#define LCD_HEIGHT 480
42#define LCD_DEPTH 16
43#define LCD_PIXELFORMAT 565
44
45/* define this to indicate your device's keypad */
46#define HAVE_TOUCHSCREEN
47#define HAVE_BUTTON_DATA
48
49/* define this if you have RTC RAM available for settings */
50//#define HAVE_RTC_RAM
51
52/* The number of bytes reserved for loadable codecs */
53#define CODEC_SIZE 0x100000
54
55/* The number of bytes reserved for loadable plugins */
56#define PLUGIN_BUFFER_SIZE 0x80000
57
58#define AB_REPEAT_ENABLE
59
60/* Define this if you do software codec */
61#define CONFIG_CODEC SWCODEC
62
63/* Work around debug macro expansion of strncmp in scratchbox */
64#define _HAVE_STRING_ARCH_strncmp
65
66#define HAVE_SCROLLWHEEL
67#define CONFIG_KEYPAD SDL_PAD
68
69/* Use SDL audio/pcm in a SDL app build */
70#define HAVE_SDL
71#define HAVE_SDL_AUDIO
72
73#define HAVE_SW_TONE_CONTROLS
74
75/* Define current usage levels. */
76#define CURRENT_NORMAL 88 /* 18 hours from a 1600 mAh battery */
77#define CURRENT_BACKLIGHT 30 /* TBD */
78#define CURRENT_RECORD 0 /* no recording yet */
79
80/* Define this to the CPU frequency */
81/*
82#define CPU_FREQ 48000000
83*/
84
85/* Offset ( in the firmware file's header ) to the file CRC */
86#define FIRMWARE_OFFSET_FILE_CRC 0
87
88/* Offset ( in the firmware file's header ) to the real data */
89#define FIRMWARE_OFFSET_FILE_DATA 8
90
91#define CONFIG_LCD LCD_COWOND2
92
93/* Define this if a programmable hotkey is mapped */
94//#define HAVE_HOTKEY
95
96#define BOOTDIR "/.rockbox"
diff --git a/firmware/export/debug.h b/firmware/export/debug.h
index 99cdf42c05..b5458af487 100644
--- a/firmware/export/debug.h
+++ b/firmware/export/debug.h
@@ -34,7 +34,7 @@ extern void ldebugf(const char* file, int line, const char *fmt, ...)
34 34
35/* */ 35/* */
36#if defined(SIMULATOR) && !defined(__PCTOOL__) \ 36#if defined(SIMULATOR) && !defined(__PCTOOL__) \
37 || ((CONFIG_PLATFORM & (PLATFORM_ANDROID|PLATFORM_MAEMO)) && defined(DEBUG)) 37 || ((CONFIG_PLATFORM & (PLATFORM_ANDROID|PLATFORM_MAEMO|PLATFORM_PANDORA)) && defined(DEBUG))
38#define DEBUGF debugf 38#define DEBUGF debugf
39#define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__) 39#define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__)
40#else 40#else
diff --git a/firmware/include/dir_uncached.h b/firmware/include/dir_uncached.h
index 19bed9af5d..d9a29fbada 100644
--- a/firmware/include/dir_uncached.h
+++ b/firmware/include/dir_uncached.h
@@ -33,7 +33,7 @@ struct dirinfo {
33#include <stdbool.h> 33#include <stdbool.h>
34#include "file.h" 34#include "file.h"
35 35
36#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO)) 36#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
37# define dirent_uncached sim_dirent 37# define dirent_uncached sim_dirent
38# define DIR_UNCACHED SIM_DIR 38# define DIR_UNCACHED SIM_DIR
39# define opendir_uncached sim_opendir 39# define opendir_uncached sim_opendir
diff --git a/firmware/include/file.h b/firmware/include/file.h
index 69ed394828..48354505f5 100644
--- a/firmware/include/file.h
+++ b/firmware/include/file.h
@@ -46,7 +46,7 @@ extern int app_open(const char *name, int o, ...);
46extern int app_creat(const char *name, mode_t mode); 46extern int app_creat(const char *name, mode_t mode);
47extern int app_remove(const char* pathname); 47extern int app_remove(const char* pathname);
48extern int app_rename(const char* path, const char* newname); 48extern int app_rename(const char* path, const char* newname);
49# if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO)) 49# if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA))
50# define filesize(x) sim_filesize(x) 50# define filesize(x) sim_filesize(x)
51# define fsync(x) sim_fsync(x) 51# define fsync(x) sim_fsync(x)
52# define ftruncate(x,y) sim_ftruncate(x,y) 52# define ftruncate(x,y) sim_ftruncate(x,y)
diff --git a/firmware/target/hosted/sdl/app/button-application.c b/firmware/target/hosted/sdl/app/button-application.c
index 72f4a1770d..bb43d904ed 100644
--- a/firmware/target/hosted/sdl/app/button-application.c
+++ b/firmware/target/hosted/sdl/app/button-application.c
@@ -50,7 +50,7 @@ int key_to_button(int keyboard_key)
50 case SDLK_LEFT: 50 case SDLK_LEFT:
51 new_btn = BUTTON_MIDLEFT; 51 new_btn = BUTTON_MIDLEFT;
52 break; 52 break;
53#if (CONFIG_PLATFORM & PLATFORM_MAEMO) 53#if (CONFIG_PLATFORM & PLATFORM_MAEMO|PLATFORM_PANDORA)
54 case SDLK_RETURN: 54 case SDLK_RETURN:
55 case SDLK_KP_ENTER: 55 case SDLK_KP_ENTER:
56#endif 56#endif
diff --git a/firmware/target/hosted/sdl/system-sdl.c b/firmware/target/hosted/sdl/system-sdl.c
index 1cc9b2c919..4dc5509397 100644
--- a/firmware/target/hosted/sdl/system-sdl.c
+++ b/firmware/target/hosted/sdl/system-sdl.c
@@ -133,7 +133,7 @@ static int sdl_event_thread(void * param)
133 depth = 16; 133 depth = 16;
134 134
135 flags = SDL_HWSURFACE|SDL_DOUBLEBUF; 135 flags = SDL_HWSURFACE|SDL_DOUBLEBUF;
136#if (CONFIG_PLATFORM & PLATFORM_MAEMO) 136#if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA))
137 /* Fullscreen mode for maemo app */ 137 /* Fullscreen mode for maemo app */
138 flags |= SDL_FULLSCREEN; 138 flags |= SDL_FULLSCREEN;
139#endif 139#endif
@@ -142,7 +142,7 @@ static int sdl_event_thread(void * param)
142 panicf("%s", SDL_GetError()); 142 panicf("%s", SDL_GetError());
143 } 143 }
144 144
145#if (CONFIG_PLATFORM & PLATFORM_MAEMO) 145#if (CONFIG_PLATFORM & PLATFORM_MAEMO|PLATFORM_PANDORA)
146 /* Hide mouse cursor on real touchscreen device */ 146 /* Hide mouse cursor on real touchscreen device */
147 SDL_ShowCursor(SDL_DISABLE); 147 SDL_ShowCursor(SDL_DISABLE);
148#endif 148#endif
diff --git a/tools/configure b/tools/configure
index 959467029f..eaa391c3e7 100755
--- a/tools/configure
+++ b/tools/configure
@@ -592,6 +592,48 @@ maemocc () {
592 fi 592 fi
593} 593}
594 594
595pandoracc () {
596 # Note: The new "Ivanovic" pandora toolchain is not able to compile rockbox.
597 # You have to use the sebt3 toolchain:
598 # http://www.gp32x.com/board/index.php?/topic/58490-yactfeau/
599
600 PNDSDK="/usr/local/angstrom/arm"
601 if [ ! -x $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc ]; then
602 echo "Pandora SDK gcc not found in $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc"
603 exit
604 fi
605
606 PATH=$PNDSDK/bin:$PATH:$PNDSDK/arm-angstrom-linux-gnueabi/usr/bin
607 PKG_CONFIG_PATH=$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib/pkgconfig
608 LDOPTS="-L$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib $LDOPTS"
609 PKG_CONFIG="pkg-config"
610
611 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
612 GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
613 GCCOPTIMIZE=''
614 LDOPTS="-lm -ldl $LDOPTS"
615 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
616 SHARED_FLAG="-shared"
617 endian="little"
618 thread_support="HAVE_SIGALTSTACK_THREADS"
619
620 # Include path
621 GCCOPTS="-I$PNDSDK/arm-angstrom-linux-gnueabi/usr/include"
622
623 # Set up compiler
624 gccchoice="4.3.3"
625 prefixtools "$PNDSDK/bin/arm-angstrom-linux-gnueabi-"
626
627 # Detect SDL
628 GCCOPTS="$GCCOPTS `$PKG_CONFIG --cflags sdl`"
629 LDOPTS="$LDOPTS `$PKG_CONFIG --libs sdl`"
630
631 # Compiler options
632 GCCOPTS="$GCCOPTS -O2 -fno-strict-aliasing"
633 GCCOPTS="$GCCOPTS -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
634 GCCOPTS="$GCCOPTS -ffast-math -fsingle-precision-constant"
635}
636
595androidcc () { 637androidcc () {
596 if [ -z "$ANDROID_SDK_PATH" ]; then 638 if [ -z "$ANDROID_SDK_PATH" ]; then
597 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH" 639 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
@@ -1230,6 +1272,7 @@ cat <<EOF
1230 201) Android 171) HD300 1272 201) Android 171) HD300
1231 202) Nokia N8xx 1273 202) Nokia N8xx
1232 203) Nokia N900 1274 203) Nokia N900
1275 204) Pandora
1233 1276
1234EOF 1277EOF
1235 1278
@@ -3012,6 +3055,33 @@ fi
3012 t_model="app" 3055 t_model="app"
3013 ;; 3056 ;;
3014 3057
3058 204|pandora)
3059 application="yes"
3060 target_id=77
3061 modelname="pandora"
3062 app_type="sdl-app"
3063 target="-DPANDORA"
3064 sharedir="rockbox/share"
3065 bindir="rockbox/bin"
3066 libdir="rockbox/lib"
3067 memory=8
3068 uname=`uname`
3069 pandoracc
3070 tool="cp "
3071 boottool="cp "
3072 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3073 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3074 output="rockbox"
3075 bootoutput="rockbox"
3076 appextra="recorder:gui:radio"
3077 plugins="yes"
3078 swcodec="yes"
3079 # architecture, manufacturer and model for the target-tree build
3080 t_cpu="hosted"
3081 t_manufacturer="pandora"
3082 t_model="app"
3083 ;;
3084
3015 *) 3085 *)
3016 echo "Please select a supported target platform!" 3086 echo "Please select a supported target platform!"
3017 exit 7 3087 exit 7
@@ -3469,10 +3539,15 @@ if test -n "$t_cpu"; then
3469 # Maemo needs the SDL port, too 3539 # Maemo needs the SDL port, too
3470 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app" 3540 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3471 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl" 3541 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3542 elif [ "$t_cpu" = "hosted" ] && [ "$t_manufacturer" = "pandora" ]; then
3543 # Pandora needs the SDL port, too
3544 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3545 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3472 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree 3546 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3473 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl" 3547 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3474 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted" 3548 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3475 fi 3549 fi
3550
3476 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer" 3551 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3477 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu" 3552 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3478 GCCOPTS="$GCCOPTS" 3553 GCCOPTS="$GCCOPTS"