| 1 | # configure.host | 
|---|
| 2 |  | 
|---|
| 3 | # This shell script handles all host based configuration for libgcj. | 
|---|
| 4 | # It sets various shell variables based on the the host and the | 
|---|
| 5 | # configuration options.  You can modify this shell script without | 
|---|
| 6 | # needing to rerun autoconf. | 
|---|
| 7 |  | 
|---|
| 8 | # This shell script should be invoked as | 
|---|
| 9 | #   . configure.host | 
|---|
| 10 | # If it encounters an error, it will exit with a message. | 
|---|
| 11 |  | 
|---|
| 12 | # It uses the following shell variables: | 
|---|
| 13 | #   host                The configuration host | 
|---|
| 14 | #   host_cpu            The configuration host CPU | 
|---|
| 15 | #   target_optspace     --enable-target-optspace ("yes", "no", "") | 
|---|
| 16 |  | 
|---|
| 17 | # It sets the following shell variables: | 
|---|
| 18 | #   libgcj_cflags       Special CFLAGS to use when building | 
|---|
| 19 | #   libgcj_cxxflags     Special CXXFLAGS to use when building | 
|---|
| 20 | #   libgcj_javaflags    Special JAVAFLAGS to use when building | 
|---|
| 21 | #   libgcj_interpreter  If the bytecode interpreter supports this platform. | 
|---|
| 22 | #   enable_java_net_default  If java.net native code should be enabled by | 
|---|
| 23 | #                            default. | 
|---|
| 24 | #   enable_hash_synchronization_default  If hash synchronization should be | 
|---|
| 25 | #                                        enabled by default. | 
|---|
| 26 | #   sysdeps_dir         Directory containing system-dependent headers | 
|---|
| 27 | #   slow_pthread_self   The synchronization code should try to avoid | 
|---|
| 28 | #                       pthread_self calls by caching thread IDs in a hashtable | 
|---|
| 29 | #   can_unwind_signal   Set to "yes" if the EH unwinder supports throwing | 
|---|
| 30 | #                       from a signal handler. | 
|---|
| 31 |  | 
|---|
| 32 | libgcj_flags= | 
|---|
| 33 | libgcj_cflags= | 
|---|
| 34 | libgcj_cxxflags= | 
|---|
| 35 | libgcj_javaflags= | 
|---|
| 36 | libgcj_interpreter= | 
|---|
| 37 | enable_java_net_default=yes | 
|---|
| 38 | enable_hash_synchronization_default=no | 
|---|
| 39 | sysdeps_dir=generic | 
|---|
| 40 | slow_pthread_self= | 
|---|
| 41 | can_unwind_signal=no | 
|---|
| 42 |  | 
|---|
| 43 | case "${target_optspace}:${host}" in | 
|---|
| 44 | yes:*) | 
|---|
| 45 | libgcj_flags="${libgcj_flags} -Os" | 
|---|
| 46 | ;; | 
|---|
| 47 | :m32r-* | :d10v-* | :d30v-*) | 
|---|
| 48 | libgcj_flags="${libgcj_flags} -Os" | 
|---|
| 49 | ;; | 
|---|
| 50 | no:* | :*) | 
|---|
| 51 | # Nothing. | 
|---|
| 52 | ;; | 
|---|
| 53 | esac | 
|---|
| 54 |  | 
|---|
| 55 | AM_RUNTESTFLAGS= | 
|---|
| 56 |  | 
|---|
| 57 | # Set any host dependent compiler flags. | 
|---|
| 58 | # THIS TABLE IS SORTED.  KEEP IT THAT WAY. | 
|---|
| 59 |  | 
|---|
| 60 | echo "$target" | 
|---|
| 61 |  | 
|---|
| 62 | DIVIDESPEC=-fuse-divide-subroutine | 
|---|
| 63 | EXCEPTIONSPEC=-fnon-call-exceptions | 
|---|
| 64 | CHECKREFSPEC= | 
|---|
| 65 |  | 
|---|
| 66 | # This case statement supports per-CPU defaults. | 
|---|
| 67 | case "${host}" in | 
|---|
| 68 | arm*-elf | strongarm*-elf | xscale*-elf) | 
|---|
| 69 | with_libffi_default=no | 
|---|
| 70 | PROCESS=Ecos | 
|---|
| 71 | FILE=Posix | 
|---|
| 72 | CHECKREFSPEC=-fcheck-references | 
|---|
| 73 | EXCEPTIONSPEC= | 
|---|
| 74 | enable_java_net_default=no | 
|---|
| 75 | enable_getenv_properties_default=no | 
|---|
| 76 | enable_main_args_default=no | 
|---|
| 77 | ;; | 
|---|
| 78 | mips-tx39-*|mipstx39-unknown-*) | 
|---|
| 79 | libgcj_flags="${libgcj_flags} -G 0" | 
|---|
| 80 | LDFLAGS="$LDFLAGS -Tjmr3904dram.ld" | 
|---|
| 81 | AM_RUNTESTFLAGS="--target_board=jmr3904-sim" | 
|---|
| 82 | # Use "Ecos" processes since they are a no-op. | 
|---|
| 83 | PROCESS=Ecos | 
|---|
| 84 | FILE=Posix | 
|---|
| 85 | enable_java_net_default=no | 
|---|
| 86 | enable_getenv_properties_default=no | 
|---|
| 87 | ;; | 
|---|
| 88 | i686-*|i586-*|i486-*|i386-*) | 
|---|
| 89 | sysdeps_dir=i386 | 
|---|
| 90 | libgcj_flags="${libgcj_flags} -ffloat-store" | 
|---|
| 91 | libgcj_interpreter=yes | 
|---|
| 92 | libgcj_cxxflags="-D__NO_MATH_INLINES" | 
|---|
| 93 | libgcj_cflags="-D__NO_MATH_INLINES" | 
|---|
| 94 | DIVIDESPEC=-fno-use-divide-subroutine | 
|---|
| 95 | enable_hash_synchronization_default=yes | 
|---|
| 96 | slow_pthread_self=yes | 
|---|
| 97 | ;; | 
|---|
| 98 | x86_64-*) | 
|---|
| 99 | CHECKREFSPEC="%{m32:-fcheck-references}" | 
|---|
| 100 | sysdeps_dir=x86-64 | 
|---|
| 101 | libgcj_flags="${libgcj_flags} -ffloat-store -fno-omit-frame-pointer" | 
|---|
| 102 | libgcj_cxxflags="-D__NO_MATH_INLINES" | 
|---|
| 103 | libgcj_cflags="-D__NO_MATH_INLINES" | 
|---|
| 104 | enable_hash_synchronization_default=yes | 
|---|
| 105 | slow_pthread_self=yes | 
|---|
| 106 | libgcj_interpreter=yes | 
|---|
| 107 | ;; | 
|---|
| 108 | alpha*-*) | 
|---|
| 109 | sysdeps_dir=alpha | 
|---|
| 110 | libgcj_flags="${libgcj_flags} -mieee" | 
|---|
| 111 | libgcj_interpreter=yes | 
|---|
| 112 | enable_hash_synchronization_default=yes | 
|---|
| 113 | IEEESPEC=-mieee | 
|---|
| 114 | ;; | 
|---|
| 115 | powerpc64*-*) | 
|---|
| 116 | # libffi not ported. | 
|---|
| 117 | with_libffi_default=no | 
|---|
| 118 | libgcj_interpreter=no | 
|---|
| 119 | libgcj_flags="${libgcj_flags} -mminimal-toc" | 
|---|
| 120 | # this may not be correct | 
|---|
| 121 | sysdeps_dir=powerpc | 
|---|
| 122 | enable_hash_synchronization_default=yes | 
|---|
| 123 | slow_pthread_self=yes | 
|---|
| 124 | ;; | 
|---|
| 125 | powerpc*-*) | 
|---|
| 126 | sysdeps_dir=powerpc | 
|---|
| 127 | libgcj_interpreter=yes | 
|---|
| 128 | enable_hash_synchronization_default=yes | 
|---|
| 129 | slow_pthread_self=yes | 
|---|
| 130 | ;; | 
|---|
| 131 | s390*-*) | 
|---|
| 132 | sysdeps_dir=s390 | 
|---|
| 133 | libgcj_interpreter=yes | 
|---|
| 134 | enable_hash_synchronization_default=yes | 
|---|
| 135 | ;; | 
|---|
| 136 | sparc*-*) | 
|---|
| 137 | libgcj_interpreter=yes | 
|---|
| 138 | ;; | 
|---|
| 139 | ia64-*) | 
|---|
| 140 | sysdeps_dir=ia64 | 
|---|
| 141 | libgcj_flags="${libgcj_flags} -funwind-tables" | 
|---|
| 142 | libgcj_interpreter=yes | 
|---|
| 143 | enable_hash_synchronization_default=yes | 
|---|
| 144 | ;; | 
|---|
| 145 | sh-* | sh[34]*-*) | 
|---|
| 146 | sysdeps_dir=sh | 
|---|
| 147 | libgcj_flags="${libgcj_flags} -mieee" | 
|---|
| 148 | libgcj_interpreter=yes | 
|---|
| 149 | CHECKREFSPEC=-fcheck-references | 
|---|
| 150 | EXCEPTIONSPEC= | 
|---|
| 151 | enable_hash_synchronization_default=yes | 
|---|
| 152 | ;; | 
|---|
| 153 | esac | 
|---|
| 154 |  | 
|---|
| 155 | # This case statement supports generic port properties and may refine | 
|---|
| 156 | # the above per-CPU defaults.  Note: If your OS implements | 
|---|
| 157 | # MD_FALLBACK_FRAME_STATE_FOR, then you want to set can_unwind_signal | 
|---|
| 158 | # here. | 
|---|
| 159 | case "${host}" in | 
|---|
| 160 | i[34567]86*-linux* | \ | 
|---|
| 161 | powerpc*-linux* | \ | 
|---|
| 162 | alpha*-linux* | \ | 
|---|
| 163 | s390*-linux* | \ | 
|---|
| 164 | sparc*-linux* | \ | 
|---|
| 165 | ia64-* | \ | 
|---|
| 166 | x86_64*-linux*) | 
|---|
| 167 | can_unwind_signal=yes | 
|---|
| 168 | ;; | 
|---|
| 169 | *-*-darwin*) | 
|---|
| 170 | enable_hash_synchronization_default=no | 
|---|
| 171 | slow_pthread_self= | 
|---|
| 172 | can_unwind_signal=no | 
|---|
| 173 | ;; | 
|---|
| 174 | *-*-freebsd*) | 
|---|
| 175 | slow_pthread_self= | 
|---|
| 176 | ;; | 
|---|
| 177 | *-cygwin*) | 
|---|
| 178 | # The cygwin linker doesn't do 8-byte alignment by default, so | 
|---|
| 179 | # disable hash synchronization for now. | 
|---|
| 180 | enable_hash_synchronization_default=no | 
|---|
| 181 | slow_pthread_self= | 
|---|
| 182 | ;; | 
|---|
| 183 | esac | 
|---|
| 184 |  | 
|---|
| 185 | libgcj_cflags="${libgcj_cflags} ${libgcj_flags}" | 
|---|
| 186 | libgcj_cxxflags="${libgcj_cxxflags} ${libgcj_flags}" | 
|---|
| 187 | libgcj_javaflags="${libgcj_javaflags} ${libgcj_flags}" | 
|---|