From cdde25b597eb4047e9db27bb8bbcf938e4a43cfe Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 18 Feb 2005 13:47:17 +0000 Subject: Unified build system to use SOURCES for sim builds too, a single Makefile-look made by configure and various related adjustments. This has not yet been tested on cygwin. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6001 a1c6a512-1295-4272-9138-f99709370657 --- tools/configure | 235 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 142 insertions(+), 93 deletions(-) (limited to 'tools/configure') diff --git a/tools/configure b/tools/configure index ac007716bd..364a3d707e 100755 --- a/tools/configure +++ b/tools/configure @@ -19,32 +19,83 @@ input() { echo $response } +prefixtools () { + prefix="$1" + CC=${prefix}gcc + WINDRES=${prefix}windres + DLLTOOL=${prefix}dlltool + DLLWRAP=${prefix}dllwrap + RANLIB=${prefix}ranlib + LD=${prefix}ld + AR=${prefix}ar + AS=${prefix}as + OC=${prefix}objcopy +} + +crosswincc () { + # naive approach to selecting a mingw cross-compiler on linux/*nix + echo "Enabling win32 crosscompiling" + + prefixtools i386-mingw32msvc- + + LDOPTS="-lgdi32 -luser32 -mwindows" + # add cross-compiler option(s) + GCCOPTS="$GCCOPTS -mno-cygwin" +} + +simcc () { + + # default tool setup for native building + prefixtools "" + + GCCOPTS='-W -Wall -g -fno-builtin -I$(ROOTDIR)/uisimulator/common -I$(ROOTDIR)/uisimulator/$(SIMVER)' + + output="rockboxui" # use this as default output binary name + + case $uname in + CYGWIN*) + echo "Cygwin host detected" + LDOPTS='-L/usr/X11R6/lib -lSM -lICE -lXt -lX11 -lXmu -lSM -lICE -lX11 -lpthread' + output="rockboxui.exe" # use this as output binary name + ;; + + Linux) + echo "Linux host detected" + LDOPTS='-L/usr/X11R6/lib -lX11 -lm -lXt -lXmu -lnsl -ldl -lpthread' + if [ "$simver" = "win32" ]; then + crosswincc # setup cross-compiler + fi + ;; + + FreeBSD) + echo "FreeBSD host detected" + LDOPTS='-L/usr/X11R6/lib -lX11 -lm -lXt -lXmu -dl -lpthread' + if [ "$simver" = "win32" ]; then + crosswincc # setup cross-compiler + fi + ;; + + *) + echo "Unsupported system: $uname, fix configure and retry" + exit + ;; + esac +} + shcc () { - CC=sh-elf-gcc - LD=sh-elf-ld - AR=sh-elf-ar - AS=sh-elf-as - OC=sh-elf-objcopy + prefixtools sh-elf- GCCOPTS="$CCOPTS -m1" GCCOPTIMIZE="-fomit-frame-pointer -fschedule-insns" } calmrisccc () { - CC=calmrisc16-unknown-elf-gcc - LD=calmrisc16-unknown-elf-ld - AR=calmrisc16-unknown-elf-ar - AS=calmrisc16-unknown-elf-as - OC=calmrisc16-unknown-elf-objcopy + prefixtools calmrisc16-unknown-elf- GCCOPTS="-Wl\,--no-check-sections $CCOPTS" GCCOPTIMIZE="-fomit-frame-pointer" } coldfirecc () { - CC=m68k-elf-gcc - LD=m68k-elf-ld - AR=m68k-elf-ar - AS=m68k-elf-as - OC=m68k-elf-objcopy + prefixtools m68k-elf- GCCOPTS="$CCOPTS -g -m5200 -Wa\,-m5249 -malign-int -mstrict-align" GCCOPTIMIZE="-fomit-frame-pointer" } @@ -86,6 +137,13 @@ if [ -z "$simver" ]; then case $option in [Ww]) simver="win32" + + WINDRES=windres + DLLTOOL=dlltool + DLLWRAP=dllwrap + + # make sure the code knows this is for win32 + extradefines="$extradefines -DWIN32" ;; *) simver="x11" @@ -95,77 +153,6 @@ if [ -z "$simver" ]; then fi } - -simul () { - -sed > Makefile \ - -e "s,@ROOTDIR@,${rootdir},g" \ - -e "s,@ARCHOS@,${archos},g" \ - -e "s,@DEBUG@,${debug},g" \ - -e "s,@KEYPAD@,${keypad},g" \ - -e "s,@PWD@,${pwd},g" \ - -e "s,@LANGUAGE@,${language},g" \ - -e "s,@TARGET@,${target},g" \ - -e "s,@PLUGINS@,${plugins},g" \ - -e "s,@CODECS@,${codecs},g" \ - -e "s,@SIMVER@,${simver},g" \ - -e "s,@MEMORY@,${memory},g" \ -</dev/null` + + # This makes: + # 3.3.X => 303 + # 3.4.X => 304 + # 2.95.3 => 295 + + echo "Using $CC $gccver ($gccnum)" + fi sed > Makefile \ @@ -523,6 +544,10 @@ sed > Makefile \ -e "s,@AR@,${AR},g" \ -e "s,@AS@,${AS},g" \ -e "s,@OC@,${OC},g" \ + -e "s,@WINDRES@,${WINDRES},g" \ + -e "s,@DLLTOOL@,${DLLTOOL},g" \ + -e "s,@DLLWRAP@,${DLLWRAP},g" \ + -e "s,@RANLIB@,${RANLIB},g" \ -e "s,@TOOL@,${tool},g" \ -e "s,@OUTPUT@,${output},g" \ -e "s,@APPEXTRA@,${appextra},g" \ @@ -531,11 +556,15 @@ sed > Makefile \ -e "s,@PLUGINS@,${plugins},g" \ -e "s,@CODECS@,${codecs},g" \ -e "s,@GCCOPTS@,${GCCOPTS},g" \ + -e "s,@LDOPTS@,${LDOPTS},g" \ -e "s,@LOADADDRESS@,${loadaddress},g" \ -e "s,@EXTRADEF@,${extradefines},g" \ -e "s,@APPSDIR@,${appsdir},g" \ + -e "s,@SIMVER@,${simver},g" \ + -e "s,@GCCVER@,${gccver},g" \ + -e "s,@GCCNUM@,${gccnum},g" \ <> Makefile <