737
739
tmpdir = create_temp_dir ("java", NULL, false);
738
740
if (tmpdir == NULL)
741
743
conftest_file_name =
742
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
744
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
743
745
if (write_temp_file (tmpdir, conftest_file_name,
744
get_goodcode_snippet (source_version)))
746
free (conftest_file_name);
747
cleanup_temp_dir (tmpdir);
746
get_goodcode_snippet (source_version)))
748
free (conftest_file_name);
749
cleanup_temp_dir (tmpdir);
751
753
compiled_file_name =
752
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
754
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
753
755
register_temp_file (tmpdir, compiled_file_name);
755
757
java_sources[0] = conftest_file_name;
756
758
if (!compile_using_envjavac (javac,
757
java_sources, 1, tmpdir->dir_name,
758
false, false, false, true)
759
&& stat (compiled_file_name, &statbuf) >= 0
760
&& get_classfile_version (compiled_file_name)
761
<= corresponding_classfile_version (target_version))
763
/* $JAVAC compiled conftest.java successfully. */
764
/* Try adding -fsource option if it is useful. */
766
xasprintf ("%s -fsource=%s", javac, source_version);
768
unlink (compiled_file_name);
770
java_sources[0] = conftest_file_name;
771
if (!compile_using_envjavac (javac_source,
772
java_sources, 1, tmpdir->dir_name,
773
false, false, false, true)
774
&& stat (compiled_file_name, &statbuf) >= 0
775
&& get_classfile_version (compiled_file_name)
776
<= corresponding_classfile_version (target_version))
778
const char *failcode = get_failcode_snippet (source_version);
780
if (failcode != NULL)
782
free (compiled_file_name);
783
free (conftest_file_name);
786
concatenated_filename (tmpdir->dir_name,
789
if (write_temp_file (tmpdir, conftest_file_name, failcode))
791
free (conftest_file_name);
793
cleanup_temp_dir (tmpdir);
798
concatenated_filename (tmpdir->dir_name,
799
"conftestfail.class",
801
register_temp_file (tmpdir, compiled_file_name);
803
java_sources[0] = conftest_file_name;
804
if (!compile_using_envjavac (javac,
807
false, false, false, true)
808
&& stat (compiled_file_name, &statbuf) >= 0)
810
unlink (compiled_file_name);
812
java_sources[0] = conftest_file_name;
813
if (compile_using_envjavac (javac_source,
816
false, false, false, true))
817
/* $JAVAC compiled conftestfail.java successfully, and
818
"$JAVAC -fsource=$source_version" rejects it. So
819
the -fsource option is useful. */
820
resultp->fsource_option = true;
827
resultp->usable = true;
759
java_sources, 1, tmpdir->dir_name,
760
false, false, false, true)
761
&& stat (compiled_file_name, &statbuf) >= 0
762
&& get_classfile_version (compiled_file_name)
763
<= corresponding_classfile_version (target_version))
765
/* $JAVAC compiled conftest.java successfully. */
766
/* Try adding -fsource option if it is useful. */
768
xasprintf ("%s -fsource=%s", javac, source_version);
770
unlink (compiled_file_name);
772
java_sources[0] = conftest_file_name;
773
if (!compile_using_envjavac (javac_source,
774
java_sources, 1, tmpdir->dir_name,
775
false, false, false, true)
776
&& stat (compiled_file_name, &statbuf) >= 0
777
&& get_classfile_version (compiled_file_name)
778
<= corresponding_classfile_version (target_version))
780
const char *failcode = get_failcode_snippet (source_version);
782
if (failcode != NULL)
784
free (compiled_file_name);
785
free (conftest_file_name);
788
xconcatenated_filename (tmpdir->dir_name,
791
if (write_temp_file (tmpdir, conftest_file_name, failcode))
793
free (conftest_file_name);
795
cleanup_temp_dir (tmpdir);
800
xconcatenated_filename (tmpdir->dir_name,
801
"conftestfail.class",
803
register_temp_file (tmpdir, compiled_file_name);
805
java_sources[0] = conftest_file_name;
806
if (!compile_using_envjavac (javac,
809
false, false, false, true)
810
&& stat (compiled_file_name, &statbuf) >= 0)
812
unlink (compiled_file_name);
814
java_sources[0] = conftest_file_name;
815
if (compile_using_envjavac (javac_source,
818
false, false, false, true))
819
/* $JAVAC compiled conftestfail.java successfully, and
820
"$JAVAC -fsource=$source_version" rejects it. So
821
the -fsource option is useful. */
822
resultp->fsource_option = true;
829
resultp->usable = true;
831
/* Try with -fsource and -ftarget options. */
833
xasprintf ("%s -fsource=%s -ftarget=%s",
834
javac, source_version, target_version);
836
unlink (compiled_file_name);
838
java_sources[0] = conftest_file_name;
839
if (!compile_using_envjavac (javac_target,
840
java_sources, 1, tmpdir->dir_name,
841
false, false, false, true)
842
&& stat (compiled_file_name, &statbuf) >= 0
843
&& get_classfile_version (compiled_file_name)
844
<= corresponding_classfile_version (target_version))
846
/* "$JAVAC -fsource $source_version -ftarget $target_version"
847
compiled conftest.java successfully. */
848
resultp->fsource_option = true;
849
resultp->ftarget_option = true;
850
resultp->usable = true;
833
/* Try with -fsource and -ftarget options. */
835
xasprintf ("%s -fsource=%s -ftarget=%s",
836
javac, source_version, target_version);
838
unlink (compiled_file_name);
840
java_sources[0] = conftest_file_name;
841
if (!compile_using_envjavac (javac_target,
842
java_sources, 1, tmpdir->dir_name,
843
false, false, false, true)
844
&& stat (compiled_file_name, &statbuf) >= 0
845
&& get_classfile_version (compiled_file_name)
846
<= corresponding_classfile_version (target_version))
848
/* "$JAVAC -fsource $source_version -ftarget $target_version"
849
compiled conftest.java successfully. */
850
resultp->fsource_option = true;
851
resultp->ftarget_option = true;
852
resultp->usable = true;
856
858
free (compiled_file_name);
857
859
free (conftest_file_name);
979
981
java_sources[0] = conftest_file_name;
980
982
if (!compile_using_envjavac (javac_noassert,
981
java_sources, 1, tmpdir->dir_name,
982
false, false, false, true)
983
&& stat (compiled_file_name, &statbuf) >= 0)
984
/* Compilation succeeded. */
985
javac_noassert_works = true;
983
java_sources, 1, tmpdir->dir_name,
984
false, false, false, true)
985
&& stat (compiled_file_name, &statbuf) >= 0)
986
/* Compilation succeeded. */
987
javac_noassert_works = true;
987
javac_noassert_works = false;
989
javac_noassert_works = false;
989
991
free (compiled_file_name);
990
992
free (conftest_file_name);
992
994
if (javac_works && javac_noassert_works)
995
concatenated_filename (tmpdir->dir_name, "conftestfail.java",
997
if (write_temp_file (tmpdir, conftest_file_name,
998
get_failcode_snippet ("1.3")))
1000
free (conftest_file_name);
1001
free (javac_noassert);
1002
cleanup_temp_dir (tmpdir);
1006
compiled_file_name =
1007
concatenated_filename (tmpdir->dir_name, "conftestfail.class",
1009
register_temp_file (tmpdir, compiled_file_name);
1011
java_sources[0] = conftest_file_name;
1012
if (!compile_using_envjavac (javac,
1013
java_sources, 1, tmpdir->dir_name,
1014
false, false, false, true)
1015
&& stat (compiled_file_name, &statbuf) >= 0)
1017
/* Compilation succeeded. */
1018
unlink (compiled_file_name);
1020
java_sources[0] = conftest_file_name;
1021
if (!(!compile_using_envjavac (javac_noassert,
1022
java_sources, 1, tmpdir->dir_name,
1023
false, false, false, true)
1024
&& stat (compiled_file_name, &statbuf) >= 0))
1025
/* Compilation failed. */
1026
/* "$JAVAC -fno-assert" works better than $JAVAC. */
1030
free (compiled_file_name);
1031
free (conftest_file_name);
997
xconcatenated_filename (tmpdir->dir_name, "conftestfail.java",
999
if (write_temp_file (tmpdir, conftest_file_name,
1000
get_failcode_snippet ("1.3")))
1002
free (conftest_file_name);
1003
free (javac_noassert);
1004
cleanup_temp_dir (tmpdir);
1008
compiled_file_name =
1009
xconcatenated_filename (tmpdir->dir_name, "conftestfail.class",
1011
register_temp_file (tmpdir, compiled_file_name);
1013
java_sources[0] = conftest_file_name;
1014
if (!compile_using_envjavac (javac,
1015
java_sources, 1, tmpdir->dir_name,
1016
false, false, false, true)
1017
&& stat (compiled_file_name, &statbuf) >= 0)
1019
/* Compilation succeeded. */
1020
unlink (compiled_file_name);
1022
java_sources[0] = conftest_file_name;
1023
if (!(!compile_using_envjavac (javac_noassert,
1024
java_sources, 1, tmpdir->dir_name,
1025
false, false, false, true)
1026
&& stat (compiled_file_name, &statbuf) >= 0))
1027
/* Compilation failed. */
1028
/* "$JAVAC -fno-assert" works better than $JAVAC. */
1032
free (compiled_file_name);
1033
free (conftest_file_name);
1034
1036
cleanup_temp_dir (tmpdir);
1036
1038
if (javac_works)
1038
envjavac_usable = true;
1039
envjavac_need_no_assert_option = false;
1040
envjavac_usable = true;
1041
envjavac_need_no_assert_option = false;
1041
1043
else if (javac_noassert_works)
1043
envjavac_usable = true;
1044
envjavac_need_no_assert_option = true;
1045
envjavac_usable = true;
1046
envjavac_need_no_assert_option = true;
1047
1049
envjavac_tested = true;
1087
1089
tmpdir = create_temp_dir ("java", NULL, false);
1088
1090
if (tmpdir == NULL)
1091
1093
conftest_file_name =
1092
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1094
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1093
1095
if (write_temp_file (tmpdir, conftest_file_name,
1094
get_goodcode_snippet (source_version)))
1096
free (conftest_file_name);
1097
cleanup_temp_dir (tmpdir);
1096
get_goodcode_snippet (source_version)))
1098
free (conftest_file_name);
1099
cleanup_temp_dir (tmpdir);
1101
1103
compiled_file_name =
1102
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1104
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1103
1105
register_temp_file (tmpdir, compiled_file_name);
1105
1107
java_sources[0] = conftest_file_name;
1106
1108
if (!compile_using_envjavac (javac,
1107
java_sources, 1, tmpdir->dir_name,
1108
false, false, false, true)
1109
&& stat (compiled_file_name, &statbuf) >= 0
1110
&& get_classfile_version (compiled_file_name)
1111
<= corresponding_classfile_version (target_version))
1113
/* $JAVAC compiled conftest.java successfully. */
1114
/* Try adding -source option if it is useful. */
1115
char *javac_source =
1116
xasprintf ("%s -source %s", javac, source_version);
1118
unlink (compiled_file_name);
1120
java_sources[0] = conftest_file_name;
1121
if (!compile_using_envjavac (javac_source,
1122
java_sources, 1, tmpdir->dir_name,
1123
false, false, false, true)
1124
&& stat (compiled_file_name, &statbuf) >= 0
1125
&& get_classfile_version (compiled_file_name)
1126
<= corresponding_classfile_version (target_version))
1128
const char *failcode = get_failcode_snippet (source_version);
1130
if (failcode != NULL)
1132
free (compiled_file_name);
1133
free (conftest_file_name);
1135
conftest_file_name =
1136
concatenated_filename (tmpdir->dir_name,
1137
"conftestfail.java",
1139
if (write_temp_file (tmpdir, conftest_file_name, failcode))
1141
free (conftest_file_name);
1142
free (javac_source);
1143
cleanup_temp_dir (tmpdir);
1147
compiled_file_name =
1148
concatenated_filename (tmpdir->dir_name,
1149
"conftestfail.class",
1151
register_temp_file (tmpdir, compiled_file_name);
1153
java_sources[0] = conftest_file_name;
1154
if (!compile_using_envjavac (javac,
1157
false, false, false, true)
1158
&& stat (compiled_file_name, &statbuf) >= 0)
1160
unlink (compiled_file_name);
1162
java_sources[0] = conftest_file_name;
1163
if (compile_using_envjavac (javac_source,
1166
false, false, false, true))
1167
/* $JAVAC compiled conftestfail.java successfully, and
1168
"$JAVAC -source $source_version" rejects it. So the
1169
-source option is useful. */
1170
resultp->source_option = true;
1175
free (javac_source);
1177
resultp->usable = true;
1109
java_sources, 1, tmpdir->dir_name,
1110
false, false, false, true)
1111
&& stat (compiled_file_name, &statbuf) >= 0
1112
&& get_classfile_version (compiled_file_name)
1113
<= corresponding_classfile_version (target_version))
1115
/* $JAVAC compiled conftest.java successfully. */
1116
/* Try adding -source option if it is useful. */
1117
char *javac_source =
1118
xasprintf ("%s -source %s", javac, source_version);
1120
unlink (compiled_file_name);
1122
java_sources[0] = conftest_file_name;
1123
if (!compile_using_envjavac (javac_source,
1124
java_sources, 1, tmpdir->dir_name,
1125
false, false, false, true)
1126
&& stat (compiled_file_name, &statbuf) >= 0
1127
&& get_classfile_version (compiled_file_name)
1128
<= corresponding_classfile_version (target_version))
1130
const char *failcode = get_failcode_snippet (source_version);
1132
if (failcode != NULL)
1134
free (compiled_file_name);
1135
free (conftest_file_name);
1137
conftest_file_name =
1138
xconcatenated_filename (tmpdir->dir_name,
1139
"conftestfail.java",
1141
if (write_temp_file (tmpdir, conftest_file_name, failcode))
1143
free (conftest_file_name);
1144
free (javac_source);
1145
cleanup_temp_dir (tmpdir);
1149
compiled_file_name =
1150
xconcatenated_filename (tmpdir->dir_name,
1151
"conftestfail.class",
1153
register_temp_file (tmpdir, compiled_file_name);
1155
java_sources[0] = conftest_file_name;
1156
if (!compile_using_envjavac (javac,
1159
false, false, false, true)
1160
&& stat (compiled_file_name, &statbuf) >= 0)
1162
unlink (compiled_file_name);
1164
java_sources[0] = conftest_file_name;
1165
if (compile_using_envjavac (javac_source,
1168
false, false, false, true))
1169
/* $JAVAC compiled conftestfail.java successfully, and
1170
"$JAVAC -source $source_version" rejects it. So the
1171
-source option is useful. */
1172
resultp->source_option = true;
1177
free (javac_source);
1179
resultp->usable = true;
1181
/* Try with -target option alone. (Sun javac 1.3.1 has the -target
1182
option but no -source option.) */
1183
char *javac_target =
1184
xasprintf ("%s -target %s", javac, target_version);
1186
unlink (compiled_file_name);
1188
java_sources[0] = conftest_file_name;
1189
if (!compile_using_envjavac (javac_target,
1190
java_sources, 1, tmpdir->dir_name,
1191
false, false, false, true)
1192
&& stat (compiled_file_name, &statbuf) >= 0
1193
&& get_classfile_version (compiled_file_name)
1194
<= corresponding_classfile_version (target_version))
1196
/* "$JAVAC -target $target_version" compiled conftest.java
1198
/* Try adding -source option if it is useful. */
1199
char *javac_target_source =
1200
xasprintf ("%s -source %s", javac_target, source_version);
1202
unlink (compiled_file_name);
1204
java_sources[0] = conftest_file_name;
1205
if (!compile_using_envjavac (javac_target_source,
1206
java_sources, 1, tmpdir->dir_name,
1207
false, false, false, true)
1208
&& stat (compiled_file_name, &statbuf) >= 0
1209
&& get_classfile_version (compiled_file_name)
1210
<= corresponding_classfile_version (target_version))
1212
const char *failcode = get_failcode_snippet (source_version);
1214
if (failcode != NULL)
1216
free (compiled_file_name);
1217
free (conftest_file_name);
1219
conftest_file_name =
1220
concatenated_filename (tmpdir->dir_name,
1221
"conftestfail.java",
1223
if (write_temp_file (tmpdir, conftest_file_name,
1226
free (conftest_file_name);
1227
free (javac_target_source);
1228
free (javac_target);
1229
cleanup_temp_dir (tmpdir);
1233
compiled_file_name =
1234
concatenated_filename (tmpdir->dir_name,
1235
"conftestfail.class",
1237
register_temp_file (tmpdir, compiled_file_name);
1239
java_sources[0] = conftest_file_name;
1240
if (!compile_using_envjavac (javac_target,
1243
false, false, false, true)
1244
&& stat (compiled_file_name, &statbuf) >= 0)
1246
unlink (compiled_file_name);
1248
java_sources[0] = conftest_file_name;
1249
if (compile_using_envjavac (javac_target_source,
1252
false, false, false,
1254
/* "$JAVAC -target $target_version" compiled
1255
conftestfail.java successfully, and
1256
"$JAVAC -target $target_version -source $source_version"
1257
rejects it. So the -source option is useful. */
1258
resultp->source_option = true;
1263
free (javac_target_source);
1265
resultp->target_option = true;
1266
resultp->usable = true;
1270
/* Maybe this -target option requires a -source option? Try with
1271
-target and -source options. (Supported by Sun javac 1.4 and
1273
char *javac_target_source =
1274
xasprintf ("%s -source %s", javac_target, source_version);
1276
unlink (compiled_file_name);
1278
java_sources[0] = conftest_file_name;
1279
if (!compile_using_envjavac (javac_target_source,
1280
java_sources, 1, tmpdir->dir_name,
1281
false, false, false, true)
1282
&& stat (compiled_file_name, &statbuf) >= 0
1283
&& get_classfile_version (compiled_file_name)
1284
<= corresponding_classfile_version (target_version))
1286
/* "$JAVAC -target $target_version -source $source_version"
1287
compiled conftest.java successfully. */
1288
resultp->source_option = true;
1289
resultp->target_option = true;
1290
resultp->usable = true;
1293
free (javac_target_source);
1296
free (javac_target);
1183
/* Try with -target option alone. (Sun javac 1.3.1 has the -target
1184
option but no -source option.) */
1185
char *javac_target =
1186
xasprintf ("%s -target %s", javac, target_version);
1188
unlink (compiled_file_name);
1190
java_sources[0] = conftest_file_name;
1191
if (!compile_using_envjavac (javac_target,
1192
java_sources, 1, tmpdir->dir_name,
1193
false, false, false, true)
1194
&& stat (compiled_file_name, &statbuf) >= 0
1195
&& get_classfile_version (compiled_file_name)
1196
<= corresponding_classfile_version (target_version))
1198
/* "$JAVAC -target $target_version" compiled conftest.java
1200
/* Try adding -source option if it is useful. */
1201
char *javac_target_source =
1202
xasprintf ("%s -source %s", javac_target, source_version);
1204
unlink (compiled_file_name);
1206
java_sources[0] = conftest_file_name;
1207
if (!compile_using_envjavac (javac_target_source,
1208
java_sources, 1, tmpdir->dir_name,
1209
false, false, false, true)
1210
&& stat (compiled_file_name, &statbuf) >= 0
1211
&& get_classfile_version (compiled_file_name)
1212
<= corresponding_classfile_version (target_version))
1214
const char *failcode = get_failcode_snippet (source_version);
1216
if (failcode != NULL)
1218
free (compiled_file_name);
1219
free (conftest_file_name);
1221
conftest_file_name =
1222
xconcatenated_filename (tmpdir->dir_name,
1223
"conftestfail.java",
1225
if (write_temp_file (tmpdir, conftest_file_name,
1228
free (conftest_file_name);
1229
free (javac_target_source);
1230
free (javac_target);
1231
cleanup_temp_dir (tmpdir);
1235
compiled_file_name =
1236
xconcatenated_filename (tmpdir->dir_name,
1237
"conftestfail.class",
1239
register_temp_file (tmpdir, compiled_file_name);
1241
java_sources[0] = conftest_file_name;
1242
if (!compile_using_envjavac (javac_target,
1245
false, false, false, true)
1246
&& stat (compiled_file_name, &statbuf) >= 0)
1248
unlink (compiled_file_name);
1250
java_sources[0] = conftest_file_name;
1251
if (compile_using_envjavac (javac_target_source,
1254
false, false, false,
1256
/* "$JAVAC -target $target_version" compiled
1257
conftestfail.java successfully, and
1258
"$JAVAC -target $target_version -source $source_version"
1259
rejects it. So the -source option is useful. */
1260
resultp->source_option = true;
1265
free (javac_target_source);
1267
resultp->target_option = true;
1268
resultp->usable = true;
1272
/* Maybe this -target option requires a -source option? Try with
1273
-target and -source options. (Supported by Sun javac 1.4 and
1275
char *javac_target_source =
1276
xasprintf ("%s -source %s", javac_target, source_version);
1278
unlink (compiled_file_name);
1280
java_sources[0] = conftest_file_name;
1281
if (!compile_using_envjavac (javac_target_source,
1282
java_sources, 1, tmpdir->dir_name,
1283
false, false, false, true)
1284
&& stat (compiled_file_name, &statbuf) >= 0
1285
&& get_classfile_version (compiled_file_name)
1286
<= corresponding_classfile_version (target_version))
1288
/* "$JAVAC -target $target_version -source $source_version"
1289
compiled conftest.java successfully. */
1290
resultp->source_option = true;
1291
resultp->target_option = true;
1292
resultp->usable = true;
1295
free (javac_target_source);
1298
free (javac_target);
1299
1301
free (compiled_file_name);
1300
1302
free (conftest_file_name);
1329
1331
argv[1] = "--version";
1330
1332
argv[2] = NULL;
1331
1333
child = create_pipe_in ("gcj", "gcj", argv, DEV_NULL, true, true,
1333
1335
gcj_present = false;
1334
1336
if (child != -1)
1336
/* Read the subprocess output, drop all lines except the first,
1337
drop all characters before the first digit, and test whether
1338
the remaining string starts with a digit >= 3, but not with
1343
while (safe_read (fd[0], &c[count], 1) > 0)
1345
if (c[count] == '\n')
1349
if (!(c[0] >= '0' && c[0] <= '9'))
1351
gcj_present = (c[0] >= '3');
1356
if (c[0] == '3' && c[1] == '.'
1357
&& (c[2] == '0' || c[2] == '1'))
1358
gcj_present = false;
1362
while (safe_read (fd[0], &c[0], 1) > 0)
1367
/* Remove zombie process from process list, and retrieve exit
1370
wait_subprocess (child, "gcj", false, true, true, false);
1371
if (exitstatus != 0)
1372
gcj_present = false;
1338
/* Read the subprocess output, drop all lines except the first,
1339
drop all characters before the first digit, and test whether
1340
the remaining string starts with a digit >= 3, but not with
1345
while (safe_read (fd[0], &c[count], 1) > 0)
1347
if (c[count] == '\n')
1351
if (!(c[0] >= '0' && c[0] <= '9'))
1353
gcj_present = (c[0] >= '3');
1358
if (c[0] == '3' && c[1] == '.'
1359
&& (c[2] == '0' || c[2] == '1'))
1360
gcj_present = false;
1364
while (safe_read (fd[0], &c[0], 1) > 0)
1369
/* Remove zombie process from process list, and retrieve exit
1372
wait_subprocess (child, "gcj", false, true, true, false, NULL);
1373
if (exitstatus != 0)
1374
gcj_present = false;
1375
1377
if (gcj_present)
1377
/* See if libgcj.jar is well installed. */
1378
struct temp_dir *tmpdir;
1380
tmpdir = create_temp_dir ("java", NULL, false);
1382
gcj_present = false;
1385
char *conftest_file_name;
1387
conftest_file_name =
1388
concatenated_filename (tmpdir->dir_name, "conftestlib.java",
1390
if (write_temp_file (tmpdir, conftest_file_name,
1379
/* See if libgcj.jar is well installed. */
1380
struct temp_dir *tmpdir;
1382
tmpdir = create_temp_dir ("java", NULL, false);
1384
gcj_present = false;
1387
char *conftest_file_name;
1389
conftest_file_name =
1390
xconcatenated_filename (tmpdir->dir_name, "conftestlib.java",
1392
if (write_temp_file (tmpdir, conftest_file_name,
1391
1393
"public class conftestlib {\n"
1392
1394
" public static void main (String[] args) {\n"
1395
gcj_present = false;
1398
char *compiled_file_name;
1399
const char *java_sources[1];
1401
compiled_file_name =
1402
concatenated_filename (tmpdir->dir_name,
1403
"conftestlib.class",
1405
register_temp_file (tmpdir, compiled_file_name);
1407
java_sources[0] = conftest_file_name;
1408
if (compile_using_gcj (java_sources, 1, false,
1409
false, NULL, false, NULL,
1411
false, false, false, true))
1412
gcj_present = false;
1414
free (compiled_file_name);
1416
free (conftest_file_name);
1418
cleanup_temp_dir (tmpdir);
1397
gcj_present = false;
1400
char *compiled_file_name;
1401
const char *java_sources[1];
1403
compiled_file_name =
1404
xconcatenated_filename (tmpdir->dir_name,
1405
"conftestlib.class",
1407
register_temp_file (tmpdir, compiled_file_name);
1409
java_sources[0] = conftest_file_name;
1410
if (compile_using_gcj (java_sources, 1, false,
1411
false, NULL, false, NULL,
1413
false, false, false, true))
1414
gcj_present = false;
1416
free (compiled_file_name);
1418
free (conftest_file_name);
1420
cleanup_temp_dir (tmpdir);
1421
1423
gcj_tested = true;
1527
1529
tmpdir = create_temp_dir ("java", NULL, false);
1528
1530
if (tmpdir == NULL)
1531
1533
conftest_file_name =
1532
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1534
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1533
1535
if (write_temp_file (tmpdir, conftest_file_name,
1534
get_goodcode_snippet (source_version)))
1536
free (conftest_file_name);
1537
cleanup_temp_dir (tmpdir);
1536
get_goodcode_snippet (source_version)))
1538
free (conftest_file_name);
1539
cleanup_temp_dir (tmpdir);
1541
1543
compiled_file_name =
1542
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1544
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1543
1545
register_temp_file (tmpdir, compiled_file_name);
1545
1547
java_sources[0] = conftest_file_name;
1546
1548
if (!compile_using_gcj (java_sources, 1, false, false, NULL, false, NULL,
1547
tmpdir->dir_name, false, false, false, true)
1548
&& stat (compiled_file_name, &statbuf) >= 0
1549
&& get_classfile_version (compiled_file_name)
1550
<= corresponding_classfile_version (target_version))
1552
/* gcj compiled conftest.java successfully. */
1553
/* Try adding -fsource option if it is useful. */
1554
unlink (compiled_file_name);
1556
java_sources[0] = conftest_file_name;
1557
if (!compile_using_gcj (java_sources, 1,
1558
false, true, source_version, false, NULL,
1559
tmpdir->dir_name, false, false, false, true)
1560
&& stat (compiled_file_name, &statbuf) >= 0
1561
&& get_classfile_version (compiled_file_name)
1562
<= corresponding_classfile_version (target_version))
1564
const char *failcode = get_failcode_snippet (source_version);
1566
if (failcode != NULL)
1568
free (compiled_file_name);
1569
free (conftest_file_name);
1571
conftest_file_name =
1572
concatenated_filename (tmpdir->dir_name,
1573
"conftestfail.java",
1575
if (write_temp_file (tmpdir, conftest_file_name, failcode))
1577
free (conftest_file_name);
1578
cleanup_temp_dir (tmpdir);
1582
compiled_file_name =
1583
concatenated_filename (tmpdir->dir_name,
1584
"conftestfail.class",
1586
register_temp_file (tmpdir, compiled_file_name);
1588
java_sources[0] = conftest_file_name;
1589
if (!compile_using_gcj (java_sources, 1,
1590
false, false, NULL, false, NULL,
1592
false, false, false, true)
1593
&& stat (compiled_file_name, &statbuf) >= 0)
1595
unlink (compiled_file_name);
1597
java_sources[0] = conftest_file_name;
1598
if (compile_using_gcj (java_sources, 1,
1599
false, true, source_version,
1602
false, false, false, true))
1603
/* gcj compiled conftestfail.java successfully, and
1604
"gcj -fsource=$source_version" rejects it. So
1605
the -fsource option is useful. */
1606
resultp->fsource_option = true;
1611
resultp->usable = true;
1549
tmpdir->dir_name, false, false, false, true)
1550
&& stat (compiled_file_name, &statbuf) >= 0
1551
&& get_classfile_version (compiled_file_name)
1552
<= corresponding_classfile_version (target_version))
1554
/* gcj compiled conftest.java successfully. */
1555
/* Try adding -fsource option if it is useful. */
1556
unlink (compiled_file_name);
1558
java_sources[0] = conftest_file_name;
1559
if (!compile_using_gcj (java_sources, 1,
1560
false, true, source_version, false, NULL,
1561
tmpdir->dir_name, false, false, false, true)
1562
&& stat (compiled_file_name, &statbuf) >= 0
1563
&& get_classfile_version (compiled_file_name)
1564
<= corresponding_classfile_version (target_version))
1566
const char *failcode = get_failcode_snippet (source_version);
1568
if (failcode != NULL)
1570
free (compiled_file_name);
1571
free (conftest_file_name);
1573
conftest_file_name =
1574
xconcatenated_filename (tmpdir->dir_name,
1575
"conftestfail.java",
1577
if (write_temp_file (tmpdir, conftest_file_name, failcode))
1579
free (conftest_file_name);
1580
cleanup_temp_dir (tmpdir);
1584
compiled_file_name =
1585
xconcatenated_filename (tmpdir->dir_name,
1586
"conftestfail.class",
1588
register_temp_file (tmpdir, compiled_file_name);
1590
java_sources[0] = conftest_file_name;
1591
if (!compile_using_gcj (java_sources, 1,
1592
false, false, NULL, false, NULL,
1594
false, false, false, true)
1595
&& stat (compiled_file_name, &statbuf) >= 0)
1597
unlink (compiled_file_name);
1599
java_sources[0] = conftest_file_name;
1600
if (compile_using_gcj (java_sources, 1,
1601
false, true, source_version,
1604
false, false, false, true))
1605
/* gcj compiled conftestfail.java successfully, and
1606
"gcj -fsource=$source_version" rejects it. So
1607
the -fsource option is useful. */
1608
resultp->fsource_option = true;
1613
resultp->usable = true;
1615
/* Try with -fsource and -ftarget options. */
1616
unlink (compiled_file_name);
1617
/* Try with -fsource and -ftarget options. */
1618
unlink (compiled_file_name);
1618
java_sources[0] = conftest_file_name;
1619
if (!compile_using_gcj (java_sources, 1,
1620
false, true, source_version,
1621
true, target_version,
1623
false, false, false, true)
1624
&& stat (compiled_file_name, &statbuf) >= 0
1625
&& get_classfile_version (compiled_file_name)
1626
<= corresponding_classfile_version (target_version))
1628
/* "gcj -fsource $source_version -ftarget $target_version"
1629
compiled conftest.java successfully. */
1630
resultp->fsource_option = true;
1631
resultp->ftarget_option = true;
1632
resultp->usable = true;
1620
java_sources[0] = conftest_file_name;
1621
if (!compile_using_gcj (java_sources, 1,
1622
false, true, source_version,
1623
true, target_version,
1625
false, false, false, true)
1626
&& stat (compiled_file_name, &statbuf) >= 0
1627
&& get_classfile_version (compiled_file_name)
1628
<= corresponding_classfile_version (target_version))
1630
/* "gcj -fsource $source_version -ftarget $target_version"
1631
compiled conftest.java successfully. */
1632
resultp->fsource_option = true;
1633
resultp->ftarget_option = true;
1634
resultp->usable = true;
1636
1638
free (compiled_file_name);
1637
1639
free (conftest_file_name);
1723
1725
tmpdir = create_temp_dir ("java", NULL, false);
1724
1726
if (tmpdir == NULL)
1727
1729
conftest_file_name =
1728
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1730
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1729
1731
if (write_temp_file (tmpdir, conftest_file_name,
1730
get_goodcode_snippet ("1.3")))
1732
free (conftest_file_name);
1733
cleanup_temp_dir (tmpdir);
1732
get_goodcode_snippet ("1.3")))
1734
free (conftest_file_name);
1735
cleanup_temp_dir (tmpdir);
1737
1739
compiled_file_name =
1738
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1740
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1739
1741
register_temp_file (tmpdir, compiled_file_name);
1741
1743
java_sources[0] = conftest_file_name;
1742
1744
if (!compile_using_gcj (java_sources, 1, true, false, NULL, false, NULL,
1743
tmpdir->dir_name, false, false, false, true)
1744
&& stat (compiled_file_name, &statbuf) >= 0)
1745
/* Compilation succeeded. */
1748
gcj_need_no_assert_option = true;
1745
tmpdir->dir_name, false, false, false, true)
1746
&& stat (compiled_file_name, &statbuf) >= 0)
1747
/* Compilation succeeded. */
1750
gcj_need_no_assert_option = true;
1752
unlink (compiled_file_name);
1754
unlink (compiled_file_name);
1754
java_sources[0] = conftest_file_name;
1755
if (!compile_using_gcj (java_sources, 1, false,
1756
false, NULL, false, NULL,
1757
tmpdir->dir_name, false, false, false, true)
1758
&& stat (compiled_file_name, &statbuf) >= 0)
1759
/* Compilation succeeded. */
1762
gcj_need_no_assert_option = false;
1756
java_sources[0] = conftest_file_name;
1757
if (!compile_using_gcj (java_sources, 1, false,
1758
false, NULL, false, NULL,
1759
tmpdir->dir_name, false, false, false, true)
1760
&& stat (compiled_file_name, &statbuf) >= 0)
1761
/* Compilation succeeded. */
1764
gcj_need_no_assert_option = false;
1766
1768
free (compiled_file_name);
1767
1769
free (conftest_file_name);
1831
1833
tmpdir = create_temp_dir ("java", NULL, false);
1832
1834
if (tmpdir == NULL)
1835
1837
conftest_file_name =
1836
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1838
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
1837
1839
if (write_temp_file (tmpdir, conftest_file_name,
1838
get_goodcode_snippet (source_version)))
1840
free (conftest_file_name);
1841
cleanup_temp_dir (tmpdir);
1840
get_goodcode_snippet (source_version)))
1842
free (conftest_file_name);
1843
cleanup_temp_dir (tmpdir);
1845
1847
compiled_file_name =
1846
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1848
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
1847
1849
register_temp_file (tmpdir, compiled_file_name);
1849
1851
java_sources[0] = conftest_file_name;
1850
1852
if (!compile_using_javac (java_sources, 1,
1851
false, source_version,
1852
false, target_version,
1853
tmpdir->dir_name, false, false, false, true)
1854
&& stat (compiled_file_name, &statbuf) >= 0
1855
&& get_classfile_version (compiled_file_name)
1856
<= corresponding_classfile_version (target_version))
1858
/* javac compiled conftest.java successfully. */
1859
/* Try adding -source option if it is useful. */
1860
unlink (compiled_file_name);
1862
java_sources[0] = conftest_file_name;
1863
if (!compile_using_javac (java_sources, 1,
1864
true, source_version,
1865
false, target_version,
1866
tmpdir->dir_name, false, false, false, true)
1867
&& stat (compiled_file_name, &statbuf) >= 0
1868
&& get_classfile_version (compiled_file_name)
1869
<= corresponding_classfile_version (target_version))
1871
const char *failcode = get_failcode_snippet (source_version);
1873
if (failcode != NULL)
1875
free (compiled_file_name);
1876
free (conftest_file_name);
1878
conftest_file_name =
1879
concatenated_filename (tmpdir->dir_name,
1880
"conftestfail.java",
1882
if (write_temp_file (tmpdir, conftest_file_name, failcode))
1884
free (conftest_file_name);
1885
cleanup_temp_dir (tmpdir);
1889
compiled_file_name =
1890
concatenated_filename (tmpdir->dir_name,
1891
"conftestfail.class",
1893
register_temp_file (tmpdir, compiled_file_name);
1895
java_sources[0] = conftest_file_name;
1896
if (!compile_using_javac (java_sources, 1,
1897
false, source_version,
1898
false, target_version,
1900
false, false, false, true)
1901
&& stat (compiled_file_name, &statbuf) >= 0)
1903
unlink (compiled_file_name);
1905
java_sources[0] = conftest_file_name;
1906
if (compile_using_javac (java_sources, 1,
1907
true, source_version,
1908
false, target_version,
1910
false, false, false, true))
1911
/* javac compiled conftestfail.java successfully, and
1912
"javac -source $source_version" rejects it. So the
1913
-source option is useful. */
1914
resultp->source_option = true;
1919
resultp->usable = true;
1853
false, source_version,
1854
false, target_version,
1855
tmpdir->dir_name, false, false, false, true)
1856
&& stat (compiled_file_name, &statbuf) >= 0
1857
&& get_classfile_version (compiled_file_name)
1858
<= corresponding_classfile_version (target_version))
1860
/* javac compiled conftest.java successfully. */
1861
/* Try adding -source option if it is useful. */
1862
unlink (compiled_file_name);
1864
java_sources[0] = conftest_file_name;
1865
if (!compile_using_javac (java_sources, 1,
1866
true, source_version,
1867
false, target_version,
1868
tmpdir->dir_name, false, false, false, true)
1869
&& stat (compiled_file_name, &statbuf) >= 0
1870
&& get_classfile_version (compiled_file_name)
1871
<= corresponding_classfile_version (target_version))
1873
const char *failcode = get_failcode_snippet (source_version);
1875
if (failcode != NULL)
1877
free (compiled_file_name);
1878
free (conftest_file_name);
1880
conftest_file_name =
1881
xconcatenated_filename (tmpdir->dir_name,
1882
"conftestfail.java",
1884
if (write_temp_file (tmpdir, conftest_file_name, failcode))
1886
free (conftest_file_name);
1887
cleanup_temp_dir (tmpdir);
1891
compiled_file_name =
1892
xconcatenated_filename (tmpdir->dir_name,
1893
"conftestfail.class",
1895
register_temp_file (tmpdir, compiled_file_name);
1897
java_sources[0] = conftest_file_name;
1898
if (!compile_using_javac (java_sources, 1,
1899
false, source_version,
1900
false, target_version,
1902
false, false, false, true)
1903
&& stat (compiled_file_name, &statbuf) >= 0)
1905
unlink (compiled_file_name);
1907
java_sources[0] = conftest_file_name;
1908
if (compile_using_javac (java_sources, 1,
1909
true, source_version,
1910
false, target_version,
1912
false, false, false, true))
1913
/* javac compiled conftestfail.java successfully, and
1914
"javac -source $source_version" rejects it. So the
1915
-source option is useful. */
1916
resultp->source_option = true;
1921
resultp->usable = true;
1923
/* Try with -target option alone. (Sun javac 1.3.1 has the -target
1924
option but no -source option.) */
1925
unlink (compiled_file_name);
1927
java_sources[0] = conftest_file_name;
1928
if (!compile_using_javac (java_sources, 1,
1929
false, source_version,
1930
true, target_version,
1932
false, false, false, true)
1933
&& stat (compiled_file_name, &statbuf) >= 0
1934
&& get_classfile_version (compiled_file_name)
1935
<= corresponding_classfile_version (target_version))
1937
/* "javac -target $target_version" compiled conftest.java
1939
/* Try adding -source option if it is useful. */
1940
unlink (compiled_file_name);
1942
java_sources[0] = conftest_file_name;
1943
if (!compile_using_javac (java_sources, 1,
1944
true, source_version,
1945
true, target_version,
1947
false, false, false, true)
1948
&& stat (compiled_file_name, &statbuf) >= 0
1949
&& get_classfile_version (compiled_file_name)
1950
<= corresponding_classfile_version (target_version))
1952
const char *failcode = get_failcode_snippet (source_version);
1954
if (failcode != NULL)
1956
free (compiled_file_name);
1957
free (conftest_file_name);
1959
conftest_file_name =
1960
concatenated_filename (tmpdir->dir_name,
1961
"conftestfail.java",
1963
if (write_temp_file (tmpdir, conftest_file_name,
1966
free (conftest_file_name);
1967
cleanup_temp_dir (tmpdir);
1971
compiled_file_name =
1972
concatenated_filename (tmpdir->dir_name,
1973
"conftestfail.class",
1975
register_temp_file (tmpdir, compiled_file_name);
1977
java_sources[0] = conftest_file_name;
1978
if (!compile_using_javac (java_sources, 1,
1979
false, source_version,
1980
true, target_version,
1982
false, false, false, true)
1983
&& stat (compiled_file_name, &statbuf) >= 0)
1985
unlink (compiled_file_name);
1987
java_sources[0] = conftest_file_name;
1988
if (compile_using_javac (java_sources, 1,
1989
true, source_version,
1990
true, target_version,
1992
false, false, false, true))
1993
/* "javac -target $target_version" compiled
1994
conftestfail.java successfully, and
1995
"javac -target $target_version -source $source_version"
1996
rejects it. So the -source option is useful. */
1997
resultp->source_option = true;
2002
resultp->target_option = true;
2003
resultp->usable = true;
2007
/* Maybe this -target option requires a -source option? Try with
2008
-target and -source options. (Supported by Sun javac 1.4 and
2010
unlink (compiled_file_name);
2012
java_sources[0] = conftest_file_name;
2013
if (!compile_using_javac (java_sources, 1,
2014
true, source_version,
2015
true, target_version,
2017
false, false, false, true)
2018
&& stat (compiled_file_name, &statbuf) >= 0
2019
&& get_classfile_version (compiled_file_name)
2020
<= corresponding_classfile_version (target_version))
2022
/* "javac -target $target_version -source $source_version"
2023
compiled conftest.java successfully. */
2024
resultp->source_option = true;
2025
resultp->target_option = true;
2026
resultp->usable = true;
1925
/* Try with -target option alone. (Sun javac 1.3.1 has the -target
1926
option but no -source option.) */
1927
unlink (compiled_file_name);
1929
java_sources[0] = conftest_file_name;
1930
if (!compile_using_javac (java_sources, 1,
1931
false, source_version,
1932
true, target_version,
1934
false, false, false, true)
1935
&& stat (compiled_file_name, &statbuf) >= 0
1936
&& get_classfile_version (compiled_file_name)
1937
<= corresponding_classfile_version (target_version))
1939
/* "javac -target $target_version" compiled conftest.java
1941
/* Try adding -source option if it is useful. */
1942
unlink (compiled_file_name);
1944
java_sources[0] = conftest_file_name;
1945
if (!compile_using_javac (java_sources, 1,
1946
true, source_version,
1947
true, target_version,
1949
false, false, false, true)
1950
&& stat (compiled_file_name, &statbuf) >= 0
1951
&& get_classfile_version (compiled_file_name)
1952
<= corresponding_classfile_version (target_version))
1954
const char *failcode = get_failcode_snippet (source_version);
1956
if (failcode != NULL)
1958
free (compiled_file_name);
1959
free (conftest_file_name);
1961
conftest_file_name =
1962
xconcatenated_filename (tmpdir->dir_name,
1963
"conftestfail.java",
1965
if (write_temp_file (tmpdir, conftest_file_name,
1968
free (conftest_file_name);
1969
cleanup_temp_dir (tmpdir);
1973
compiled_file_name =
1974
xconcatenated_filename (tmpdir->dir_name,
1975
"conftestfail.class",
1977
register_temp_file (tmpdir, compiled_file_name);
1979
java_sources[0] = conftest_file_name;
1980
if (!compile_using_javac (java_sources, 1,
1981
false, source_version,
1982
true, target_version,
1984
false, false, false, true)
1985
&& stat (compiled_file_name, &statbuf) >= 0)
1987
unlink (compiled_file_name);
1989
java_sources[0] = conftest_file_name;
1990
if (compile_using_javac (java_sources, 1,
1991
true, source_version,
1992
true, target_version,
1994
false, false, false, true))
1995
/* "javac -target $target_version" compiled
1996
conftestfail.java successfully, and
1997
"javac -target $target_version -source $source_version"
1998
rejects it. So the -source option is useful. */
1999
resultp->source_option = true;
2004
resultp->target_option = true;
2005
resultp->usable = true;
2009
/* Maybe this -target option requires a -source option? Try with
2010
-target and -source options. (Supported by Sun javac 1.4 and
2012
unlink (compiled_file_name);
2014
java_sources[0] = conftest_file_name;
2015
if (!compile_using_javac (java_sources, 1,
2016
true, source_version,
2017
true, target_version,
2019
false, false, false, true)
2020
&& stat (compiled_file_name, &statbuf) >= 0
2021
&& get_classfile_version (compiled_file_name)
2022
<= corresponding_classfile_version (target_version))
2024
/* "javac -target $target_version -source $source_version"
2025
compiled conftest.java successfully. */
2026
resultp->source_option = true;
2027
resultp->target_option = true;
2028
resultp->usable = true;
2031
2033
free (compiled_file_name);
2032
2034
free (conftest_file_name);
2084
2086
const char *javac = getenv ("JAVAC");
2085
2087
if (javac != NULL && javac[0] != '\0')
2087
bool usable = false;
2088
bool no_assert_option = false;
2089
bool source_option = false;
2090
bool target_option = false;
2091
bool fsource_option = false;
2092
bool ftarget_option = false;
2094
if (target_version == NULL)
2095
target_version = default_target_version ();
2097
if (is_envjavac_gcj (javac))
2099
/* It's a version of gcj. */
2100
if (is_envjavac_gcj43 (javac))
2102
/* It's a version of gcj >= 4.3. Assume the classfile versions
2104
if (is_envjavac_gcj43_usable (javac,
2105
source_version, target_version,
2107
&fsource_option, &ftarget_option))
2115
/* It's a version of gcj < 4.3. Ignore the version of the
2116
class files that it creates. */
2117
if (strcmp (target_version, "1.4") == 0
2118
&& strcmp (source_version, "1.4") == 0)
2120
if (is_envjavac_oldgcj_14_14_usable (javac, &usable))
2126
else if (strcmp (target_version, "1.4") == 0
2127
&& strcmp (source_version, "1.3") == 0)
2129
if (is_envjavac_oldgcj_14_13_usable (javac,
2141
/* It's not gcj. Assume the classfile versions are correct. */
2142
if (is_envjavac_nongcj_usable (javac,
2143
source_version, target_version,
2145
&source_option, &target_option))
2154
char *old_classpath;
2155
char *javac_with_options;
2157
/* Set CLASSPATH. */
2159
set_classpath (classpaths, classpaths_count, false, verbose);
2161
javac_with_options =
2163
? xasprintf ("%s -fno-assert", javac)
2164
: xasprintf ("%s%s%s%s%s%s%s%s%s",
2166
source_option ? " -source " : "",
2167
source_option ? source_version : "",
2168
target_option ? " -target " : "",
2169
target_option ? target_version : "",
2170
fsource_option ? " -fsource=" : "",
2171
fsource_option ? source_version : "",
2172
ftarget_option ? " -ftarget=" : "",
2173
ftarget_option ? target_version : ""));
2175
err = compile_using_envjavac (javac_with_options,
2176
java_sources, java_sources_count,
2177
directory, optimize, debug, verbose,
2180
free (javac_with_options);
2182
/* Reset CLASSPATH. */
2183
reset_classpath (old_classpath);
2089
bool usable = false;
2090
bool no_assert_option = false;
2091
bool source_option = false;
2092
bool target_option = false;
2093
bool fsource_option = false;
2094
bool ftarget_option = false;
2096
if (target_version == NULL)
2097
target_version = default_target_version ();
2099
if (is_envjavac_gcj (javac))
2101
/* It's a version of gcj. */
2102
if (is_envjavac_gcj43 (javac))
2104
/* It's a version of gcj >= 4.3. Assume the classfile versions
2106
if (is_envjavac_gcj43_usable (javac,
2107
source_version, target_version,
2109
&fsource_option, &ftarget_option))
2117
/* It's a version of gcj < 4.3. Ignore the version of the
2118
class files that it creates. */
2119
if (strcmp (target_version, "1.4") == 0
2120
&& strcmp (source_version, "1.4") == 0)
2122
if (is_envjavac_oldgcj_14_14_usable (javac, &usable))
2128
else if (strcmp (target_version, "1.4") == 0
2129
&& strcmp (source_version, "1.3") == 0)
2131
if (is_envjavac_oldgcj_14_13_usable (javac,
2143
/* It's not gcj. Assume the classfile versions are correct. */
2144
if (is_envjavac_nongcj_usable (javac,
2145
source_version, target_version,
2147
&source_option, &target_option))
2156
char *old_classpath;
2157
char *javac_with_options;
2159
/* Set CLASSPATH. */
2161
set_classpath (classpaths, classpaths_count, false, verbose);
2163
javac_with_options =
2165
? xasprintf ("%s -fno-assert", javac)
2166
: xasprintf ("%s%s%s%s%s%s%s%s%s",
2168
source_option ? " -source " : "",
2169
source_option ? source_version : "",
2170
target_option ? " -target " : "",
2171
target_option ? target_version : "",
2172
fsource_option ? " -fsource=" : "",
2173
fsource_option ? source_version : "",
2174
ftarget_option ? " -ftarget=" : "",
2175
ftarget_option ? target_version : ""));
2177
err = compile_using_envjavac (javac_with_options,
2178
java_sources, java_sources_count,
2179
directory, optimize, debug, verbose,
2182
free (javac_with_options);
2184
/* Reset CLASSPATH. */
2185
reset_classpath (old_classpath);
2204
2206
bool ftarget_option = false;
2206
2208
if (target_version == NULL)
2207
target_version = default_target_version ();
2209
target_version = default_target_version ();
2209
2211
if (is_gcj_43 ())
2211
/* It's a version of gcj >= 4.3. Assume the classfile versions
2213
if (is_gcj43_usable (source_version, target_version,
2214
&usable, &fsource_option, &ftarget_option))
2213
/* It's a version of gcj >= 4.3. Assume the classfile versions
2215
if (is_gcj43_usable (source_version, target_version,
2216
&usable, &fsource_option, &ftarget_option))
2222
/* It's a version of gcj < 4.3. Ignore the version of the class
2223
files that it creates.
2224
Test whether it supports the desired target-version and
2226
if (strcmp (target_version, "1.4") == 0
2227
&& strcmp (source_version, "1.4") == 0)
2229
if (is_oldgcj_14_14_usable (&usable))
2235
else if (strcmp (target_version, "1.4") == 0
2236
&& strcmp (source_version, "1.3") == 0)
2238
if (is_oldgcj_14_13_usable (&usable, &no_assert_option))
2224
/* It's a version of gcj < 4.3. Ignore the version of the class
2225
files that it creates.
2226
Test whether it supports the desired target-version and
2228
if (strcmp (target_version, "1.4") == 0
2229
&& strcmp (source_version, "1.4") == 0)
2231
if (is_oldgcj_14_14_usable (&usable))
2237
else if (strcmp (target_version, "1.4") == 0
2238
&& strcmp (source_version, "1.3") == 0)
2240
if (is_oldgcj_14_13_usable (&usable, &no_assert_option))
2248
char *old_classpath;
2250
/* Set CLASSPATH. We could also use the --CLASSPATH=... option
2251
of gcj. Note that --classpath=... option is different: its
2252
argument should also contain gcj's libgcj.jar, but we don't
2253
know its location. */
2255
set_classpath (classpaths, classpaths_count, use_minimal_classpath,
2258
err = compile_using_gcj (java_sources, java_sources_count,
2260
fsource_option, source_version,
2261
ftarget_option, target_version,
2262
directory, optimize, debug, verbose, false);
2264
/* Reset CLASSPATH. */
2265
reset_classpath (old_classpath);
2250
char *old_classpath;
2252
/* Set CLASSPATH. We could also use the --CLASSPATH=... option
2253
of gcj. Note that --classpath=... option is different: its
2254
argument should also contain gcj's libgcj.jar, but we don't
2255
know its location. */
2257
set_classpath (classpaths, classpaths_count, use_minimal_classpath,
2260
err = compile_using_gcj (java_sources, java_sources_count,
2262
fsource_option, source_version,
2263
ftarget_option, target_version,
2264
directory, optimize, debug, verbose, false);
2266
/* Reset CLASSPATH. */
2267
reset_classpath (old_classpath);
2271
2273
if (is_javac_present ())
2275
2277
bool target_option = false;
2277
2279
if (target_version == NULL)
2278
target_version = default_target_version ();
2280
target_version = default_target_version ();
2280
2282
if (is_javac_usable (source_version, target_version,
2281
&usable, &source_option, &target_option))
2283
&usable, &source_option, &target_option))
2289
char *old_classpath;
2291
/* Set CLASSPATH. We don't use the "-classpath ..." option because
2292
in JDK 1.1.x its argument should also contain the JDK's
2293
classes.zip, but we don't know its location. (In JDK 1.3.0 it
2296
set_classpath (classpaths, classpaths_count, use_minimal_classpath,
2299
err = compile_using_javac (java_sources, java_sources_count,
2300
source_option, source_version,
2301
target_option, target_version,
2302
directory, optimize, debug, verbose,
2305
/* Reset CLASSPATH. */
2306
reset_classpath (old_classpath);
2291
char *old_classpath;
2293
/* Set CLASSPATH. We don't use the "-classpath ..." option because
2294
in JDK 1.1.x its argument should also contain the JDK's
2295
classes.zip, but we don't know its location. (In JDK 1.3.0 it
2298
set_classpath (classpaths, classpaths_count, use_minimal_classpath,
2301
err = compile_using_javac (java_sources, java_sources_count,
2302
source_option, source_version,
2303
target_option, target_version,
2304
directory, optimize, debug, verbose,
2307
/* Reset CLASSPATH. */
2308
reset_classpath (old_classpath);
2312
2314
if (is_jikes_present ())
2314
2316
/* Test whether it supports the desired target-version and
2316
2318
bool usable = (strcmp (source_version, "1.3") == 0);
2320
char *old_classpath;
2322
/* Set CLASSPATH. We could also use the "-classpath ..." option.
2323
Since jikes doesn't come with its own standard library, it
2324
needs a classes.zip or rt.jar or libgcj.jar in the CLASSPATH.
2325
To increase the chance of success, we reuse the current CLASSPATH
2326
if the user has set it. */
2328
set_classpath (classpaths, classpaths_count, false, verbose);
2330
err = compile_using_jikes (java_sources, java_sources_count,
2331
directory, optimize, debug, verbose,
2334
/* Reset CLASSPATH. */
2335
reset_classpath (old_classpath);
2322
char *old_classpath;
2324
/* Set CLASSPATH. We could also use the "-classpath ..." option.
2325
Since jikes doesn't come with its own standard library, it
2326
needs a classes.zip or rt.jar or libgcj.jar in the CLASSPATH.
2327
To increase the chance of success, we reuse the current CLASSPATH
2328
if the user has set it. */
2330
set_classpath (classpaths, classpaths_count, false, verbose);
2332
err = compile_using_jikes (java_sources, java_sources_count,
2333
directory, optimize, debug, verbose,
2336
/* Reset CLASSPATH. */
2337
reset_classpath (old_classpath);
2341
2343
error (0, 0, _("Java compiler not found, try installing gcj or set $JAVAC"));