/[gxemul]/trunk/configure
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/configure

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 36 by dpavlin, Mon Oct 8 16:21:34 2007 UTC revision 44 by dpavlin, Mon Oct 8 16:22:56 2007 UTC
# Line 27  Line 27 
27  #  SUCH DAMAGE.  #  SUCH DAMAGE.
28  #  #
29  #  #
30  #  $Id: configure,v 1.245 2007/03/16 14:13:59 debug Exp $  #  $Id: configure,v 1.277 2007/08/29 20:36:05 debug Exp $
31  #  #
32  #  This is a minimal configure script, hardcoded for GXemul. This script  #  This is a minimal configure script, hardcoded for GXemul. This script
33  #  figures out which compiler flags will work, and creates Makefiles in  #  figures out which compiler flags will work, and creates Makefiles in
# Line 49  Line 49 
49  #    o)  which compiler flags to use  (overridden by setting CFLAGS)  #    o)  which compiler flags to use  (overridden by setting CFLAGS)
50  #    o)  X11 flags and libraries  (TODO: should be possible to override  #    o)  X11 flags and libraries  (TODO: should be possible to override
51  #        via command line options?)  #        via command line options?)
 #    o)  native code generation backend (i.e. detect host architecture)  
 #  
52  #  #
53  #  The general philosophy regarding command line switches is that anything  #  The general philosophy regarding command line switches is that anything
54  #  which can be incorporated into the program as a runtime command line option  #  which can be incorporated into the program as a runtime command line option
# Line 61  Line 59 
59  #  Figure out if this is a stable version (0.x.x).  #  Figure out if this is a stable version (0.x.x).
60  X=`basename \`pwd\`|cut -d \- -f 2-|cut -c1-2`  X=`basename \`pwd\`|cut -d \- -f 2-|cut -c1-2`
61  if [ z"$X" = z0. ]; then  if [ z"$X" = z0. ]; then
62          #  Stable:          #  Stable.
63          ENABLEALPHA=YES          :
         ENABLEARM=YES  
         ENABLEMIPS=YES  
         ENABLEPPC=YES  
         ENABLESH=YES  
64  else  else
65          #  Development:          #  Development.
66          UNSTABLE=YES          UNSTABLE=YES
         ENABLEALPHA=YES  
         ENABLEARM=YES  
         ENABLEAVR=YES  
         ENABLEM68K=YES  
         ENABLEMIPS=YES  
         ENABLEPPC=YES  
         ENABLERCA180X=YES  
         ENABLESH=YES  
         ENABLESPARC=YES  
         ENABLETRANSPUTER=YES  
 fi  
   
 if [ z"$UNSTABLE" = zYES ]; then  
         printf "###\n###  DEVELOPMENT (UNSTABLE)\n###\n\n"  
67  fi  fi
68    
69  if [ z"$*" != z ]; then  if [ z"$*" != z ]; then
# Line 91  if [ z"$*" != z ]; then Line 71  if [ z"$*" != z ]; then
71          for a in $*; do          for a in $*; do
72                  if [ z$a = z--disable-x ]; then                  if [ z$a = z--disable-x ]; then
73                          NOX11=YES                          NOX11=YES
74                    else if [ z$a = z--debug ]; then
75                            DEBUG=YES
76                  else if [ z$a = z--help ]; then                  else if [ z$a = z--help ]; then
77                          printf "usage: $0 [options]\n\n"                          printf "usage: $0 [options]\n\n"
78                          echo "  --disable-x         don't include X11 support,"\                          echo "  --disable-x         don't include X11 support,"\
79                              "even if the host supports it"                              "even if the host supports it"
80                            if [ z"$UNSTABLE" = zYES ]; then
81                                    echo "  --debug             configure" \
82                                            "for a debug build"
83                            fi
84                          echo                          echo
85                          exit                          exit
86                  else                  else
# Line 102  if [ z"$*" != z ]; then Line 88  if [ z"$*" != z ]; then
88                          echo "Run  $0 --help  to get a list of" \                          echo "Run  $0 --help  to get a list of" \
89                              "available options."                              "available options."
90                          exit                          exit
91                  fi; fi                  fi; fi; fi
92          done          done
93  fi  fi
94    
# Line 126  printf "/* Line 112  printf "/*
112  #  Figure out if VERSION should be defined.  #  Figure out if VERSION should be defined.
113  X=`basename \`pwd\`|cut -d \- -f 2-`  X=`basename \`pwd\`|cut -d \- -f 2-`
114  if [ z"$X" = zgxemul ]; then  if [ z"$X" = zgxemul ]; then
115          echo '/*  No VERSION defined.  */' >> config.h          printf "#define VERSION \"(unknown version)\"\n" >> config.h
116  else  else
117          printf "#define VERSION \"$X\"\n" >> config.h          printf "#define VERSION \"$X\"\n" >> config.h
118  fi  fi
# Line 134  fi Line 120  fi
120    
121  if [ z"$UNSTABLE" = zYES ]; then  if [ z"$UNSTABLE" = zYES ]; then
122          printf "#define UNSTABLE_DEVEL\n" >> config.h          printf "#define UNSTABLE_DEVEL\n" >> config.h
123    else
124            CFLAGS="-DNDEBUG $CFLAGS"
125  fi  fi
126    
127    
# Line 141  ZZ=`echo compiled on \`uname\`/\`uname - Line 129  ZZ=`echo compiled on \`uname\`/\`uname -
129  printf "#define COMPILE_DATE \"$ZZ\"\n" >> config.h  printf "#define COMPILE_DATE \"$ZZ\"\n" >> config.h
130    
131    
132    #  Include support for all CPU types:
133    printf "#define ADD_ALL_CPU_FAMILIES    " >> config.h
134    
135  #  Support for various CPU types:  #  Alpha
136  if [ z$ENABLEALPHA = zYES ]; then  printf " add_cpu_family(alpha_cpu_family_init, ARCH_ALPHA);" >> config.h
137          printf "#define ENABLE_ALPHA\n" >> config.h  CPU_ARCHS="$CPU_ARCHS cpu_alpha.o cpu_alpha_palcode.o memory_alpha.o"
138          CPU_ARCHS="$CPU_ARCHS cpu_alpha.o cpu_alpha_palcode.o memory_alpha.o"  CPU_TOOLS="$CPU_TOOLS generate_alpha_misc"
139          CPU_TOOLS="$CPU_TOOLS generate_alpha_misc"  
140  fi  #  ARM
141  if [ z$ENABLEARM = zYES ]; then  printf " add_cpu_family(arm_cpu_family_init, ARCH_ARM);" >> config.h
142          printf "#define ENABLE_ARM\n" >> config.h  CPU_ARCHS="$CPU_ARCHS cpu_arm.o cpu_arm_coproc.o memory_arm.o "
143          CPU_ARCHS="$CPU_ARCHS cpu_arm.o cpu_arm_coproc.o memory_arm.o "  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore.o"
144          CPU_ARCHS="$CPU_ARCHS tmp_arm_dpi.o tmp_arm_loadstore.o tmp_arm_r.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p0_u0_w0.o"
145          CPU_ARCHS="$CPU_ARCHS tmp_arm_r0.o tmp_arm_r1.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p0_u0_w1.o"
146          CPU_ARCHS="$CPU_ARCHS tmp_arm_r2.o tmp_arm_r3.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p0_u1_w0.o"
147          CPU_ARCHS="$CPU_ARCHS tmp_arm_r4.o tmp_arm_r5.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p0_u1_w1.o"
148          CPU_ARCHS="$CPU_ARCHS tmp_arm_r6.o tmp_arm_r7.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p1_u0_w0.o"
149          CPU_ARCHS="$CPU_ARCHS tmp_arm_r8.o tmp_arm_r9.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p1_u0_w1.o"
150          CPU_ARCHS="$CPU_ARCHS tmp_arm_ra.o tmp_arm_rb.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p1_u1_w0.o"
151          CPU_ARCHS="$CPU_ARCHS tmp_arm_rc.o tmp_arm_rd.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_loadstore_p1_u1_w1.o"
152          CPU_ARCHS="$CPU_ARCHS tmp_arm_re.o tmp_arm_rf.o tmp_arm_multi.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_dpi.o tmp_arm_r.o"
153          CPU_TOOLS="$CPU_TOOLS generate_arm_dpi generate_arm_r"  CPU_ARCHS="$CPU_ARCHS tmp_arm_r0.o tmp_arm_r1.o"
154          CPU_TOOLS="$CPU_TOOLS generate_arm_loadstore generate_arm_multi"  CPU_ARCHS="$CPU_ARCHS tmp_arm_r2.o tmp_arm_r3.o"
155  fi  CPU_ARCHS="$CPU_ARCHS tmp_arm_r4.o tmp_arm_r5.o"
156  if [ z$ENABLEAVR = zYES ]; then  CPU_ARCHS="$CPU_ARCHS tmp_arm_r6.o tmp_arm_r7.o"
157          printf "#define ENABLE_AVR\n" >> config.h  CPU_ARCHS="$CPU_ARCHS tmp_arm_r8.o tmp_arm_r9.o"
158          CPU_ARCHS="$CPU_ARCHS cpu_avr.o"  CPU_ARCHS="$CPU_ARCHS tmp_arm_ra.o tmp_arm_rb.o"
159  fi  CPU_ARCHS="$CPU_ARCHS tmp_arm_rc.o tmp_arm_rd.o"
160  if [ z$ENABLEM68K = zYES ]; then  CPU_ARCHS="$CPU_ARCHS tmp_arm_re.o tmp_arm_rf.o tmp_arm_multi.o"
161          printf "#define ENABLE_M68K\n" >> config.h  CPU_TOOLS="$CPU_TOOLS generate_arm_dpi generate_arm_r"
162          CPU_ARCHS="$CPU_ARCHS cpu_m68k.o"  CPU_TOOLS="$CPU_TOOLS generate_arm_loadstore generate_arm_multi"
163  fi  
164  if [ z$ENABLEMIPS = zYES ]; then  #  M32R
165          printf "#define ENABLE_MIPS\n" >> config.h  printf " add_cpu_family(m32r_cpu_family_init, ARCH_M32R);" >> config.h
166          CPU_ARCHS="$CPU_ARCHS cpu_mips.o cpu_mips_coproc.o "  CPU_ARCHS="$CPU_ARCHS cpu_m32r.o memory_m32r.o"
167          CPU_ARCHS="$CPU_ARCHS cpu_mips_instr_unaligned.o"  
168          CPU_TOOLS="$CPU_TOOLS generate_mips_loadstore"  #  M88K
169          CPU_TOOLS="$CPU_TOOLS generate_mips_loadstore_multi"  printf " add_cpu_family(m88k_cpu_family_init, ARCH_M88K);" >> config.h
170  fi  CPU_ARCHS="$CPU_ARCHS cpu_m88k.o memory_m88k.o"
171  if [ z$ENABLEPPC = zYES ]; then  CPU_TOOLS="$CPU_TOOLS generate_m88k_bcnd"
172          printf "#define ENABLE_PPC\n" >> config.h  CPU_TOOLS="$CPU_TOOLS generate_m88k_loadstore"
173          CPU_ARCHS="$CPU_ARCHS cpu_ppc.o"  
174          CPU_TOOLS="$CPU_TOOLS generate_ppc_loadstore"  #  MIPS
175  fi  printf " add_cpu_family(mips_cpu_family_init, ARCH_MIPS);" >> config.h
176  if [ z$ENABLERCA180X = zYES ]; then  CPU_ARCHS="$CPU_ARCHS cpu_mips.o cpu_mips_coproc.o "
177          printf "#define ENABLE_RCA180X\n" >> config.h  CPU_ARCHS="$CPU_ARCHS cpu_mips_instr_unaligned.o"
178          CPU_ARCHS="$CPU_ARCHS cpu_rca180x.o"  CPU_TOOLS="$CPU_TOOLS generate_mips_loadstore"
179  fi  CPU_TOOLS="$CPU_TOOLS generate_mips_loadstore_multi"
180  if [ z$ENABLESH = zYES ]; then  
181          printf "#define ENABLE_SH\n" >> config.h  #  POWER/PowerPC
182          CPU_ARCHS="$CPU_ARCHS cpu_sh.o memory_sh.o"  printf " add_cpu_family(ppc_cpu_family_init, ARCH_PPC);" >> config.h
183  fi  CPU_ARCHS="$CPU_ARCHS cpu_ppc.o"
184  if [ z$ENABLESPARC = zYES ]; then  CPU_TOOLS="$CPU_TOOLS generate_ppc_loadstore"
185          printf "#define ENABLE_SPARC\n" >> config.h  
186          CPU_ARCHS="$CPU_ARCHS cpu_sparc.o memory_sparc.o"  #  SuperH
187          CPU_TOOLS="$CPU_TOOLS generate_sparc_loadstore"  printf " add_cpu_family(sh_cpu_family_init, ARCH_SH);" >> config.h
188  fi  CPU_ARCHS="$CPU_ARCHS cpu_sh.o memory_sh.o"
189  if [ z$ENABLETRANSPUTER = zYES ]; then  
190          printf "#define ENABLE_TRANSPUTER\n" >> config.h  #  SPARC
191          CPU_ARCHS="$CPU_ARCHS cpu_transputer.o"  printf " add_cpu_family(sparc_cpu_family_init, ARCH_SPARC);" >> config.h
192  fi  CPU_ARCHS="$CPU_ARCHS cpu_sparc.o memory_sparc.o"
193    CPU_TOOLS="$CPU_TOOLS generate_sparc_loadstore"
194    
195    printf "\n" >> config.h
196    
197    
198  ###############################################################################  ###############################################################################
# Line 246  printf "# Line 239  printf "#
239  #\n\n" >> _Makefile.header  #\n\n" >> _Makefile.header
240    
241    
242  echo 'int main(int argc, char *argv[]) { return 0; }' > _testprog.c  #  Try with the simplest possible test program. Actually, test static variables
243    #  as well, because GXemul uses things like NULL-initialized global pointers,
244    #  and it is important that they work. (GCC on Solaris is known to be completely
245    #  broken, for instance.)
246    
247    echo '#include <stdio.h>
248    
249    int main(int argc, char *argv[])
250    {
251            static int x = 0;
252            static int y = 1;
253            printf("%i,%i", x, y);
254            return 0;
255    }
256    ' > _testprog.c
257    
258    
259  #  Try to detect which C compiler to use, if CC is not set:  #  Try to detect which C compiler to use, if CC is not set:
260  printf "checking which C compiler to use... "  printf "checking which C compiler to use... "
261    rm -f _testprog
262  if [ z"$CC" = z ]; then  if [ z"$CC" = z ]; then
         CC=cc  
   
263          #  Try gcc first:          #  Try gcc first:
264          printf "#!/bin/sh\ngcc _testprog.c -o _testprog >" > _test.sh          printf "#!/bin/sh\ngcc $CFLAGS _testprog.c -o _testprog >" > _test.sh
265          printf " /dev/null 2> /dev/null\n" >> _test.sh          printf " /dev/null 2> /dev/null\n" >> _test.sh
266          chmod 755 _test.sh          chmod 755 _test.sh
267          ./_test.sh > /dev/null 2> /dev/null          ./_test.sh > /dev/null 2> /dev/null
268          if [ -x _testprog ]; then          if [ -x _testprog ]; then
269                  CC=gcc                  if [ z`./_testprog` = z0,1 ]; then
270                            CC=gcc
271                    else
272                            printf "broken gcc detected\n"
273                            printf "The test program:\n\n"
274                            cat _testprog.c
275                            printf "\nshould have resulted in 0,1, but the"
276                            printf " result was: "
277                            ./_testprog
278                            printf "\n\nchecking for other C compilers... "
279                    fi
280          fi          fi
281          rm -f _testprog          rm -f _testprog
282    
283          #  If both gcc and cc exist, then cc might be a vendor specific          #  If both gcc and cc exist, then cc might be a vendor specific
284          #  compiler which produces faster code than gcc (eg on Solaris):          #  compiler which produces faster code than gcc (eg on Solaris):
285          printf "#!/bin/sh\ncc _testprog.c -o _testprog >" > _test.sh          printf "#!/bin/sh\ncc $CFLAGS _testprog.c -o _testprog >" > _test.sh
286          printf " /dev/null 2> /dev/null\n" >> _test.sh          printf " /dev/null 2> /dev/null\n" >> _test.sh
287          chmod 755 _test.sh          chmod 755 _test.sh
288          ./_test.sh > /dev/null 2> /dev/null          ./_test.sh > /dev/null 2> /dev/null
289          if [ -x _testprog ]; then          if [ -x _testprog ]; then
290                  CC=cc                  if [ z`./_testprog` = z0,1 ]; then
291                            CC=cc
292                    else
293                            printf "broken cc detected\n"
294                            printf "checking for other C compilers... "
295                    fi
296          fi          fi
297          rm -f _testprog          rm -f _testprog
298    
299    #  Actually, don't try ccc on Alpha. ccc generates broken code :(
300    
301  #       #  Try ccc (FreeBSD/Alpha):  #       #  Try ccc (FreeBSD/Alpha):
302  #       printf "#!/bin/sh\nccc _testprog.c -o _testprog >" > _test.sh  #       printf "#!/bin/sh\nccc $CFLAGS _testprog.c -o _testprog >" > _test.sh
303  #       printf " /dev/null 2> /dev/null\n" >> _test.sh  #       printf " /dev/null 2> /dev/null\n" >> _test.sh
304  #       chmod 755 _test.sh  #       chmod 755 _test.sh
305  #       ./_test.sh > /dev/null 2> /dev/null  #       ./_test.sh > /dev/null 2> /dev/null
# Line 291  fi Line 313  fi
313    
314    
315  rm -f _testprog  rm -f _testprog
316    
317    if [ z$CC = z ]; then
318            printf "no working compiler detected\n"
319            printf "\nPlease set the CC environment variable to a working C "
320            printf "compiler before running\nthe configure script, and make"
321            printf " sure that the CFLAGS environment variable is\nalso valid"
322            printf " for that compiler.\n"
323            exit
324    fi
325    
326  printf "$CC $CFLAGS"  printf "$CC $CFLAGS"
327    
328    
# Line 346  if [ z$NOX11 = z ]; then Line 378  if [ z$NOX11 = z ]; then
378    
379          rm -f _test_x11 _test_x11.o          rm -f _test_x11 _test_x11.o
380    
381            if [ z$XOK = z0 ]; then
382                    XINCLUDE=-I/usr/local/include
383                    $CC $CFLAGS _test_x11.c -c -o _test_x11.o \
384                        $XINCLUDE 2> /dev/null
385    
386                    XLIB="-L/usr/local/lib -lX11"
387                    $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
388    
389                    if [ -x _test_x11 ]; then
390                            XOK=1
391                    fi
392            fi
393            rm -f _test_x11 _test_x11.o
394    
395          #  Special case for some 64-bit Linux/x86_64 systems:          #  Special case for some 64-bit Linux/x86_64 systems:
396          if [ z$XOK = z0 ]; then          if [ z$XOK = z0 ]; then
397                  $CC $CFLAGS _test_x11.c -c -o _test_x11.o \                  $CC $CFLAGS _test_x11.c -c -o _test_x11.o \
# Line 570  fi Line 616  fi
616  rm -f _testprog  rm -f _testprog
617    
618    
619    #  -Wstrict-aliasing
620    if [ ! z"$DEBUG" = zYES ]; then
621            printf "checking whether -Wstrict-aliasing can be used... "
622            $CC $CFLAGS -Wstrict-aliasing _testprog.c -o \
623                _testprog 1> _testprog.stdout 2>&1
624            cat _testprog.stdout >> _testprog.error
625            if grep frame _testprog.error > /dev/null 2>&1; then
626                    printf "no\n"
627            else
628                    if [ -x _testprog ]; then
629                            CWARNINGS="-Wstrict-aliasing $CWARNINGS"
630                            printf "yes\n"
631                    else
632                            printf "no\n"
633                    fi
634            fi
635            rm -f _testprog _testprog.error _testprog.stdout
636    fi
637    
638    
639  if [ z"$COMPAQCC" = zYES ]; then  if [ z"$COMPAQCC" = zYES ]; then
640          #  -O4 is possible, but sometimes -O3 is better?          #  -O4 is possible, but sometimes -O3 is better?
641          CFLAGS="-O4 $CFLAGS"          if [ ! z"$DEBUG" = zYES ]; then
642                    CFLAGS="-O4 $CFLAGS"
643            fi
644  else  else
645          if [ z"`uname`" = zSunOS ]; then          if [ z"`uname`" = zSunOS ]; then
646                  #  "cc", the system's default compiler:                  #  "cc", the system's default compiler:
647                  if [ z"$SUNCC" = zYES ]; then                  if [ ! z"$DEBUG" = zYES ]; then
648                          CFLAGS="-xO5 -xdepend $CFLAGS"                          if [ z"$SUNCC" = zYES ]; then
649                                    CFLAGS="-xO5 -xdepend $CFLAGS"
650                            fi
651                  fi                  fi
652                  printf "#define SOLARIS\n" >> config.h                  printf "#define SOLARIS\n" >> config.h
653                  OTHERLIBS="-lsocket $OTHERLIBS"                  OTHERLIBS="-lsocket $OTHERLIBS"
654          else          else
655                  #  gcc or something else:                  #  gcc or something else:
656                  $CC $CFLAGS _testprog.c -o _testprog -O 2> /dev/null                  if [ ! z"$DEBUG" = zYES ]; then
657                  if [ -x _testprog ]; then                          $CC $CFLAGS _testprog.c -o _testprog -O 2> /dev/null
                         rm -f _testprog  
                         $CC $CFLAGS _testprog.c -o _testprog -O3 2> /dev/null  
658                          if [ -x _testprog ]; then                          if [ -x _testprog ]; then
659                                  CFLAGS="-O3 $CFLAGS"                                  rm -f _testprog
660                          else                                  $CC $CFLAGS _testprog.c -o _testprog    \
661                                  CFLAGS="-O $CFLAGS"                                          -O3 2> /dev/null
662                                    if [ -x _testprog ]; then
663                                            CFLAGS="-O3 $CFLAGS"
664                                    else
665                                            CFLAGS="-O $CFLAGS"
666                                    fi
667                          fi                          fi
668                  fi                  fi
669          fi          fi
# Line 600  rm -f _testprog Line 673  rm -f _testprog
673    
674  #  -fschedule-insns causes bugs on i386 with gcc,  #  -fschedule-insns causes bugs on i386 with gcc,
675  #  but works OK on my alpha with ccc (compaq's cc).  #  but works OK on my alpha with ccc (compaq's cc).
676  if [ z"$COMPAQCC" = zYES ]; then  if [ ! z"$DEBUG" = zYES ]; then
677        if [ z"$COMPAQCC" = zYES ]; then
678          printf "checking whether -fschedule-insns2 can be used... "          printf "checking whether -fschedule-insns2 can be used... "
679          $CC $CFLAGS _testprog.c -o _testprog -fschedule-insns2 2> /dev/null          $CC $CFLAGS _testprog.c -o _testprog -fschedule-insns2 2> /dev/null
680          if [ -x _testprog ]; then          if [ -x _testprog ]; then
# Line 621  if [ z"$COMPAQCC" = zYES ]; then Line 695  if [ z"$COMPAQCC" = zYES ]; then
695          fi          fi
696          rm -f _testprog          rm -f _testprog
697    
698  #       #  -intrinsics          #  -intrinsics
699  #       $CC $CFLAGS _testprog.c -o _testprog -intrinsics 2> /dev/null          printf "checking whether -intrinsics can be used... "
700  #       if [ -x _testprog ]; then          $CC $CFLAGS _testprog.c -o _testprog -intrinsics 2> /dev/null
701  #               CFLAGS="-intrinsics $CFLAGS"          if [ -x _testprog ]; then
702  #       fi                  CFLAGS="-intrinsics $CFLAGS"
703  #       rm -f _testprog                  printf "yes\n"
704            else
705                    printf "no\n"
706            fi
707            rm -f _testprog
708    
709          #  -fast          #  -fast
710          printf "checking whether -fast can be used... "          printf "checking whether -fast can be used... "
# Line 638  if [ z"$COMPAQCC" = zYES ]; then Line 716  if [ z"$COMPAQCC" = zYES ]; then
716                  printf "no\n"                  printf "no\n"
717          fi          fi
718          rm -f _testprog          rm -f _testprog
719  fi  fi; fi
720    
721    
722  #  -fpeephole  #  -fpeephole
723  printf "checking whether -fpeephole can be used... "  if [ ! z"$DEBUG" = zYES ]; then
724  $CC $CFLAGS -fpeephole _testprog.c -o _testprog > _testprog.stdout 2>&1          printf "checking whether -fpeephole can be used... "
725  cat _testprog.stdout >> _testprog.error          $CC $CFLAGS -fpeephole _testprog.c -o _testprog > _testprog.stdout 2>&1
726  if grep peephole _testprog.error > /dev/null 2>&1; then          cat _testprog.stdout >> _testprog.error
727          printf "no\n"          if grep peephole _testprog.error > /dev/null 2>&1; then
 else  
         if [ -x _testprog ]; then  
                 CFLAGS="-fpeephole $CFLAGS"  
                 printf "yes\n"  
         else  
728                  printf "no\n"                  printf "no\n"
729            else
730                    if [ -x _testprog ]; then
731                            CFLAGS="-fpeephole $CFLAGS"
732                            printf "yes\n"
733                    else
734                            printf "no\n"
735                    fi
736          fi          fi
737            rm -f _testprog _testprog.error _testprog.stdout
738  fi  fi
 rm -f _testprog _testprog.error _testprog.stdout  
739    
740    
741  #  -fomit-frame-pointer  #  -fomit-frame-pointer
742  printf "checking whether -fomit-frame-pointer can be used... "  if [ ! z"$DEBUG" = zYES ]; then
743  $CC $CFLAGS -fomit-frame-pointer _testprog.c -o \          printf "checking whether -fomit-frame-pointer can be used... "
744      _testprog 1> _testprog.stdout 2>&1          $CC $CFLAGS -fomit-frame-pointer _testprog.c -o \
745  cat _testprog.stdout >> _testprog.error              _testprog 1> _testprog.stdout 2>&1
746  if grep frame _testprog.error > /dev/null 2>&1; then          cat _testprog.stdout >> _testprog.error
747          printf "no\n"          if grep frame _testprog.error > /dev/null 2>&1; then
748  else                  printf "no\n"
         if [ -x _testprog ]; then  
                 CFLAGS="-fomit-frame-pointer $CFLAGS"  
                 printf "yes\n"  
749          else          else
750                    if [ -x _testprog ]; then
751                            CFLAGS="-fomit-frame-pointer $CFLAGS"
752                            printf "yes\n"
753                    else
754                            printf "no\n"
755                    fi
756            fi
757            rm -f _testprog _testprog.error _testprog.stdout
758    fi
759    
760    
761    #  -fstrict-aliasing
762    if [ ! z"$DEBUG" = zYES ]; then
763            printf "checking whether -fstrict-aliasing can be used... "
764            $CC $CFLAGS -fstrict-aliasing _testprog.c -o \
765                _testprog 1> _testprog.stdout 2>&1
766            cat _testprog.stdout >> _testprog.error
767            if grep frame _testprog.error > /dev/null 2>&1; then
768                  printf "no\n"                  printf "no\n"
769            else
770                    if [ -x _testprog ]; then
771                            CFLAGS="-fstrict-aliasing $CFLAGS"
772                            printf "yes\n"
773                    else
774                            printf "no\n"
775                    fi
776          fi          fi
777            rm -f _testprog _testprog.error _testprog.stdout
778  fi  fi
 rm -f _testprog _testprog.error _testprog.stdout  
779    
780    
781  #  -g, for development builds  #  -g, for development builds
782  if [ z"$UNSTABLE" = zYES ]; then  if [ z"$UNSTABLE" = zYES ]; then
783          printf "checking whether -g can be used... "          printf "checking whether -g can be used... "
784          if [ z"$COMPAQCC" = zYES ]; then          if [ z"$COMPAQCC" = zYES ]; then
785                  printf "skipping\n"                  $CC $CFLAGS -g3 _testprog.c -o _testprog > _testprog.stdout 2>&1
786                    cat _testprog.stdout >> _testprog.error
787                    if [ -x _testprog ]; then
788                            CFLAGS="-g3 $CFLAGS"
789                            printf "yes (-g3)\n"
790                    else
791                            printf "no\n"
792                    fi
793          else          else
794                  $CC $CFLAGS -g _testprog.c -o _testprog > _testprog.stdout 2>&1                  $CC $CFLAGS -g _testprog.c -o _testprog > _testprog.stdout 2>&1
795                  cat _testprog.stdout >> _testprog.error                  cat _testprog.stdout >> _testprog.error
# Line 688  if [ z"$UNSTABLE" = zYES ]; then Line 797  if [ z"$UNSTABLE" = zYES ]; then
797                          CFLAGS="-g $CFLAGS"                          CFLAGS="-g $CFLAGS"
798                          printf "yes\n"                          printf "yes\n"
799                  else                  else
800                  printf "no\n"                          printf "no\n"
801                          fi                  fi
802          fi          fi
803          rm -f _testprog _testprog.error _testprog.stdout          rm -f _testprog _testprog.error _testprog.stdout
804  fi  fi
# Line 748  rm -f _testr.[co] _testr Line 857  rm -f _testr.[co] _testr
857  #  -lm?  #  -lm?
858  printf "checking for math libs..."  printf "checking for math libs..."
859  printf "#include <math.h>\nint main(int argc, char *argv[]) { " > _testr.c  printf "#include <math.h>\nint main(int argc, char *argv[]) { " > _testr.c
860  printf "double x = sqrt((double)argc); return (int)x; }\n" >> _testr.c  printf "double x = sqrt(sin((double)argc)); return (int)x; }\n" >> _testr.c
861  $CC $CFLAGS _testr.c -o _testr 2> /dev/null  $CC $CFLAGS _testr.c -o _testr 2> /dev/null
862  if [ ! -x _testr ]; then  if [ ! -x _testr ]; then
863          $CC $CFLAGS _testr.c -lm -o _testr 2> /dev/null          $CC $CFLAGS _testr.c -lm -o _testr 2> /dev/null
# Line 927  else Line 1036  else
1036                          printf "#include <stdio.h>\n#include <inttypes.h>\nint main(int argc, char *argv[]){                          printf "#include <stdio.h>\n#include <inttypes.h>\nint main(int argc, char *argv[]){
1037                              printf(\"%%lx\\\n\", (int64_t)128);return 0;}\n" > _testpri.c                              printf(\"%%lx\\\n\", (int64_t)128);return 0;}\n" > _testpri.c
1038                          rm -f _testpri                          rm -f _testpri
1039                          $CC $CFLAGS $CWARNINGS _testpri.c -o _testpri 2> /dev/null                          $CC $CFLAGS $CWARNINGS _testpri.c -o _testpri 2> _testpri.result
1040                          if [ z`./_testpri` = z80 ]; then                          if [ z`./_testpri` = z80 ]; then
1041                                  printf "PRIx64=lx\n"                                  printf "PRIx64=lx\n"
1042                          else                          else
# Line 937  else Line 1046  else
1046                  fi                  fi
1047          fi          fi
1048  fi  fi
1049  rm -f _testpri.c _testpri  rm -f _testpri.c _testpri _testpri.result
1050    
1051    
1052  #  Check for 64-bit off_t:  #  Check for 64-bit off_t:
# Line 1027  if [ ! -x _testuint ]; then Line 1136  if [ ! -x _testuint ]; then
1136  else  else
1137          printf "yes\n"          printf "yes\n"
1138  fi  fi
1139  rm -f _testuint.c _testuint  rm -f _testuint*
1140    
1141    printf "checking for __FUNCTION__... "
1142    printf "#include <stdio.h>\n\nint main(int argc, char *argv[]) {
1143      if (__FUNCTION__) printf(__FUNCTION__);\n  return 0;\n}\n" > _testfunction.c
1144    $CC $CFLAGS _testfunction.c -o _testfunction 2> /dev/null
1145    if [ ! -x _testfunction ]; then
1146            printf "no\n"
1147    else
1148            if [ z`./_testfunction` = zmain ]; then
1149                    printf "yes\n"
1150                    printf "#define HAVE___FUNCTION__\n" >> config.h
1151            else
1152                    printf "no\n"
1153            fi
1154    fi
1155    rm -f _testfunction*
1156    
1157    
1158  ###############################################################################  ###############################################################################
# Line 1057  rm -f _test_end* Line 1182  rm -f _test_end*
1182    
1183    
1184  ###############################################################################  ###############################################################################
 #  
 #  Native code generation backend:  (Detect host architecture.)  
 #  
 ###############################################################################  
   
 if [ z$UNSTABLE = zYES ]; then  
         printf "native code generation backend... "  
   
         if [ z"`uname -m`" = zamd64 ]; then  
                 NATIVE_CODE_GENERATION=YES  
                 printf "amd64\n"  
                 printf "#define NATIVE_CODE_GENERATION\n" >> config.h  
                 printf "#define HOST_ARCH_AMD64\n" >> config.h  
         fi  
   
         if [ z"`uname -m`" = zx86_64 ]; then  
                 NATIVE_CODE_GENERATION=YES  
                 printf "amd64\n"  
                 printf "#define NATIVE_CODE_GENERATION\n" >> config.h  
                 printf "#define HOST_ARCH_AMD64\n" >> config.h  
         fi  
   
         if [ z$NATIVE_CODE_GENERATION = z ]; then  
                 printf "not yet for this host platform\n"  
         fi  
 fi  
   
   
 ###############################################################################  
1185    
1186  INCLUDE=-Iinclude/  INCLUDE=-Iinclude/
1187  DINCLUDE=-I../include/  DINCLUDE=-I../include/
# Line 1106  echo "" >> _Makefile.header Line 1202  echo "" >> _Makefile.header
1202    
1203    
1204  #  Create the Makefiles:  #  Create the Makefiles:
1205  D=". src src/include src/cpus src/debugger src/devices src/devices/fonts"  D=". src src/include src/console src/cpus src/debugger src/devices"
1206  D="$D src/disk src/machines src/native src/net src/promemul"  D="$D src/devices/fonts src/disk src/file src/machines"
1207    D="$D src/net src/promemul src/symbol src/useremul"
1208  for a in $D; do  for a in $D; do
1209          echo "creating $a/Makefile"          echo "creating $a/Makefile"
1210          touch $a/Makefile          touch $a/Makefile
# Line 1122  printf "\n#endif  /*  CONFIG_H  */\n" >> Line 1219  printf "\n#endif  /*  CONFIG_H  */\n" >>
1219  rm -f _Makefile.header  rm -f _Makefile.header
1220    
1221  echo Configured. You may now run make to build gxemul.  echo Configured. You may now run make to build gxemul.
1222    

Legend:
Removed from v.36  
changed lines
  Added in v.44

  ViewVC Help
Powered by ViewVC 1.1.26