From 7fe41b0827d1794e823c3795d06bd873159c3db8 Mon Sep 17 00:00:00 2001 From: Florian Kaltenberger Date: Tue, 21 Apr 2015 12:06:50 +0000 Subject: [PATCH] moving EMOS to extras git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7222 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair1/EMOS/DOC/measurement_manual.tex | 105 - openair1/EMOS/DUMP/COPYING | 674 -- openair1/EMOS/DUMP/Makefile | 37 - openair1/EMOS/DUMP/dump_size.c | 45 - openair1/EMOS/DUMP/emos_dump.c | 228 - openair1/EMOS/DUMP/emos_dump.h | 29 - openair1/EMOS/GPS/COPYING | 674 -- openair1/EMOS/GPS/Makefile | 5 - openair1/EMOS/GPS/gps.c | 140 - openair1/EMOS/GPS/load_gps_trace.m | 85 - openair1/EMOS/GPS/read_iw.c | 186 - openair1/EMOS/GUI/AUTHORS | 1 - openair1/EMOS/GUI/COPYING | 674 -- openair1/EMOS/GUI/ChangeLog | 0 openair1/EMOS/GUI/Doxyfile | 275 - openair1/EMOS/GUI/INSTALL | 167 - openair1/EMOS/GUI/Makefile.am | 23 - openair1/EMOS/GUI/Makefile.cvs | 8 - openair1/EMOS/GUI/Makefile.in | 595 -- openair1/EMOS/GUI/NEWS | 0 openair1/EMOS/GUI/README | 4 - openair1/EMOS/GUI/TODO | 0 openair1/EMOS/GUI/config.guess | 1466 ---- openair1/EMOS/GUI/config.h.in | 55 - openair1/EMOS/GUI/config.sub | 1579 ---- openair1/EMOS/GUI/configure | 4789 ------------- openair1/EMOS/GUI/configure.in | 10 - openair1/EMOS/GUI/depcomp | 441 -- openair1/EMOS/GUI/emos_gui.kdevelop | 240 - openair1/EMOS/GUI/install-sh | 276 - openair1/EMOS/GUI/ltmain.sh | 6343 ----------------- openair1/EMOS/GUI/missing | 336 - openair1/EMOS/GUI/mkinstalldirs | 111 - openair1/EMOS/GUI/src/COPYING | 674 -- openair1/EMOS/GUI/src/Eurecom_Logo.png | Bin 2532 -> 0 bytes openair1/EMOS/GUI/src/Eurecom_Logo.xpm | 554 -- openair1/EMOS/GUI/src/FFT.c | 96 - openair1/EMOS/GUI/src/Makefile.am | 16 - openair1/EMOS/GUI/src/Makefile.in | 446 -- openair1/EMOS/GUI/src/emos_callbacks.c | 39 - openair1/EMOS/GUI/src/emos_gui.c | 1808 ----- openair1/EMOS/GUI/src/emos_gui.h | 82 - openair1/EMOS/GUI/src/emos_gui_forms.c | 437 -- openair1/EMOS/GUI/src/emos_gui_forms.fd | 1519 ---- openair1/EMOS/GUI/src/emos_gui_forms.h | 137 - openair1/EMOS/GUI/src/make_links.sh | 11 - openair1/EMOS/GUI/src/matrix_util.c | 106 - openair1/EMOS/GUI/src/matrix_util.h | 41 - openair1/EMOS/LTE/GUI/COPYING | 674 -- openair1/EMOS/LTE/GUI/Eurecom_Logo.png | Bin 2532 -> 0 bytes openair1/EMOS/LTE/GUI/Eurecom_Logo.xpm | 554 -- openair1/EMOS/LTE/GUI/FFT.c | 97 - openair1/EMOS/LTE/GUI/Makefile | 29 - openair1/EMOS/LTE/GUI/emos_gui.c | 1734 ----- openair1/EMOS/LTE/GUI/emos_gui.h | 70 - openair1/EMOS/LTE/GUI/emos_gui_forms.c | 579 -- openair1/EMOS/LTE/GUI/emos_gui_forms.fd | 1664 ----- openair1/EMOS/LTE/GUI/emos_gui_forms.h | 149 - openair1/EMOS/LTE/GUI/matrix_util.c | 106 - openair1/EMOS/LTE/GUI/matrix_util.h | 41 - openair1/EMOS/LTE/IMPORT_FILTER/COPYING | 674 -- openair1/EMOS/LTE/IMPORT_FILTER/Makefile | 41 - .../EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c | 466 -- .../EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h | 55 - openair1/EMOS/LTE/IMPORT_FILTER/binread.m | 53 - openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m | 25 - openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c | 161 - openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll | Bin 176172 -> 0 bytes openair1/EMOS/LTE/IMPORT_FILTER/cstruct.m | 48 - openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mex | Bin 27549 -> 0 bytes .../EMOS/LTE/IMPORT_FILTER/cstruct.mexa64 | Bin 17639 -> 0 bytes .../EMOS/LTE/IMPORT_FILTER/cstruct.mexglx | Bin 14146 -> 0 bytes .../EMOS/LTE/IMPORT_FILTER/cstruct.mexw64 | Bin 13312 -> 0 bytes openair1/EMOS/LTE/IMPORT_FILTER/dump_size.c | 45 - openair1/EMOS/LTE/IMPORT_FILTER/example.m | 89 - .../EMOS/LTE/IMPORT_FILTER/get_dump_size.m | 3 - .../LTE/IMPORT_FILTER/load_estimates_lte.m | 158 - .../IMPORT_FILTER/load_estimates_lte_new.m | 128 - .../EMOS/LTE/IMPORT_FILTER/struct_template.m | 290 - .../LTE/IMPORT_FILTER/struct_template_new.m | 335 - openair1/EMOS/LTE/MU-MIMO/eval_results.m | 76 - openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m | 149 - .../EMOS/LTE/POST_PROCESSING/CapCom/Cat.m | 18 - .../LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m | 39 - .../LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m | 39 - .../CapCom/Concatenate_results_UE_quick.m | 54 - .../CapCom/Concatenate_results_eNB_quick.m | 44 - .../CapCom/Dist_Calc_from_GPS.m | 42 - .../POST_PROCESSING/CapCom/Rice_Factor_Plot.m | 66 - .../LTE/POST_PROCESSING/CapCom/calc_dist.m | 41 - .../CapCom/calc_rps_Alamouti.m | 107 - .../CapCom/calc_rps_Beamforming.m | 131 - .../POST_PROCESSING/CapCom/calc_rps_SISO.m | 108 - .../POST_PROCESSING/CapCom/calc_rps_SISO_UL.m | 93 - .../CapCom/calc_rps_alamouti_2.m | 41 - .../POST_PROCESSING/CapCom/calc_rps_mu_mimo.m | 33 - .../POST_PROCESSING/CapCom/calc_rps_siso_2.m | 40 - .../CapCom/capacity_Alamouti_1.m | 205 - .../CapCom/capacity_Mode6_beamforming_1.m | 229 - .../CapCom/capacity_mode5_mumimo.m | 340 - .../POST_PROCESSING/CapCom/capacity_siso_1.m | 235 - .../POST_PROCESSING/CapCom/coded2uncoded.m | 34 - .../CapCom/load_estimates_lte_1.m | 448 -- .../CapCom/load_estimates_lte_2.m | 285 - .../POST_PROCESSING/CapCom/plot_figures_top.m | 36 - .../POST_PROCESSING/CapCom/plot_results_cat.m | 474 -- .../CapCom/plot_results_eNb_cat.m | 223 - .../LTE/POST_PROCESSING/CapCom/quantize_q.m | 35 - .../LTE/POST_PROCESSING/CapCom/test_figures.m | 37 - .../LTE/POST_PROCESSING/Mode5_ConCat_Table.m | 62 - openair1/EMOS/LTE/POST_PROCESSING/README.txt | 42 - .../Rice Factor Estimation/Contents.m | 7 - .../Rice Factor Estimation/estimate_rice.m | 56 - .../Rice Factor Estimation/fitcurve.m | 37 - .../Rice Factor Estimation/fitfunct.m | 28 - .../Rice Factor Estimation/mrice.m | 11 - .../Rice Factor Estimation/ricedemo.m | 146 - .../Rice Factor Estimation/ricepdf.m | 50 - .../Rice Factor Estimation/ricernd.m | 51 - .../Rice Factor Estimation/ricestat.m | 42 - .../Rice Factor Estimation/test_rice.m | 55 - openair1/EMOS/LTE/POST_PROCESSING/SISO.mat | Bin 1642 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/SISO_scaling.mat | Bin 2078 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/align_routes.m | 329 - .../LTE/POST_PROCESSING/ambialet_zoom1.mat | Bin 787 -> 0 bytes .../LTE/POST_PROCESSING/ambialet_zoom2.mat | Bin 994 -> 0 bytes .../LTE/POST_PROCESSING/ambialet_zoom3.mat | Bin 990 -> 0 bytes .../LTE/POST_PROCESSING/capacity_mode1_siso.m | 180 - .../POST_PROCESSING/capacity_mode2_alamouti.m | 178 - .../LTE/POST_PROCESSING/capacity_mode5_tab.m | 122 - .../capacity_mode5_tab_16_16.m | 107 - .../POST_PROCESSING/capacity_mode5_tab_16_4.m | 107 - .../POST_PROCESSING/capacity_mode5_tab_4_16.m | 107 - .../LTE/POST_PROCESSING/capacity_siso_tab.m | 30 - .../capacity_siso_tab_measurements.m | 30 - openair1/EMOS/LTE/POST_PROCESSING/channel.m | 16 - .../EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat | Bin 856 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat | Bin 1005 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/cost231_hata.m | 16 - .../distance_traveled_comparison.m | 136 - .../LTE/POST_PROCESSING/eval_nomadic_points.m | 149 - .../POST_PROCESSING/eval_village_ambialet.m | 68 - .../EMOS/LTE/POST_PROCESSING/filter_routes.m | 20 - .../LTE/POST_PROCESSING/find_closest_points.m | 13 - .../POST_PROCESSING/gen_cap_SISO_tab_new.m | 26 - .../LTE/POST_PROCESSING/gen_cap_siso_table.m | 9 - .../EMOS/LTE/POST_PROCESSING/get_chunks.m | 34 - .../POST_PROCESSING/get_gps_coordinates_eNB.m | 34 - openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m | 52 - openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m | 58 - .../EMOS/LTE/POST_PROCESSING/gps_link_brush.m | 82 - .../LTE/POST_PROCESSING/integrity_check.m | 93 - openair1/EMOS/LTE/POST_PROCESSING/map_q.m | 16 - openair1/EMOS/LTE/POST_PROCESSING/mapping.m | 36 - .../EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG | Bin 1311548 -> 0 bytes .../LTE/POST_PROCESSING/maps/ambialet2.png | Bin 1263847 -> 0 bytes .../LTE/POST_PROCESSING/maps/ambialet3.png | Bin 783287 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/maps/cordes.png | Bin 21542550 -> 0 bytes .../maps/cordes_merged_routes_wp.png | Bin 1016010 -> 0 bytes .../maps/gps_calib_ambialet3.mat | Bin 655 -> 0 bytes .../maps/gps_calib_ambialet_new.mat | Bin 581 -> 0 bytes .../POST_PROCESSING/maps/gps_calib_cordes.mat | Bin 563 -> 0 bytes .../maps/gps_calib_cordes_new.mat | Bin 576 -> 0 bytes .../POST_PROCESSING/maps/gps_calib_penne.mat | Bin 751 -> 0 bytes .../maps/gps_calib_penne_new.mat | Bin 577 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/maps/penne3.png | Bin 1043393 -> 0 bytes .../maps/plot_gps_coordinates.m | 151 - .../POST_PROCESSING/mode1_mode2_comparison.m | 105 - .../EMOS/LTE/POST_PROCESSING/my_data_tip.m | 14 - .../EMOS/LTE/POST_PROCESSING/penne_zoom1.mat | Bin 529 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/penne_zoom2.mat | Bin 667 -> 0 bytes .../EMOS/LTE/POST_PROCESSING/penne_zoom3.mat | Bin 530 -> 0 bytes openair1/EMOS/LTE/POST_PROCESSING/pfair.m | 61 - .../EMOS/LTE/POST_PROCESSING/plot_all_eNb.m | 62 - .../EMOS/LTE/POST_PROCESSING/plot_all_ue.m | 69 - .../plot_comparison_all_modes.m | 570 -- .../plot_comparison_all_modes_cordes.m | 569 -- .../POST_PROCESSING/plot_distance_travelled.m | 94 - .../plot_distance_travelled_cordes.m | 300 - .../plot_distance_travelled_ideal.m | 90 - .../POST_PROCESSING/plot_figures_ambialet.m | 40 - .../LTE/POST_PROCESSING/plot_figures_cordes.m | 42 - .../LTE/POST_PROCESSING/plot_figures_penne.m | 45 - .../EMOS/LTE/POST_PROCESSING/plot_in_bins.m | 52 - .../POST_PROCESSING/plot_results_I0_quick.m | 23 - .../POST_PROCESSING/plot_results_UE_quick.m | 16 - .../plot_results_UE_quick_common.m | 331 - .../plot_results_eNb_aligned.m | 114 - .../POST_PROCESSING/plot_results_eNb_quick.m | 256 - .../POST_PROCESSING/post_processing_MUMIMO.m | 43 - .../post_processing_UE_channel.m | 32 - .../post_processing_UE_nomadic_quick.m | 84 - .../post_processing_UE_quick.m | 108 - .../post_processing_eNB_nomadic_quick.m | 93 - .../post_processing_eNb_quick.m | 150 - .../EMOS/LTE/POST_PROCESSING/rank_pmi_calc.m | 135 - .../EMOS/LTE/POST_PROCESSING/scale_ideal_tp.m | 17 - .../select_dist_travelled_ideal.m | 31 - .../select_mu-mimo_ambialet.mat | Bin 1076 -> 0 bytes .../start_post_processing_channel.m | 71 - .../start_post_processing_nomadic_quick.m | 35 - .../start_post_processing_quick.m | 51 - .../POST_PROCESSING/table_LTE_MODE_4_5.mat | Bin 11845 -> 0 bytes openair1/EMOS/LTE/RECIPROCITY/main.m | 67 - openair1/EMOS/LTE/RECIPROCITY/main_part2.m | 182 - openair1/EMOS/LTE/RECIPROCITY/some_plots.m | 39 - openair1/EMOS/MATLAB/Antenna4Test.m | 33 - openair1/EMOS/MATLAB/BD.m | 53 - openair1/EMOS/MATLAB/DProfile.m | 66 - .../EMOS/MATLAB/EMOS_generate_LaTex_file.m | 242 - .../MATLAB/EMOS_generate_LaTex_presentation.m | 36 - openair1/EMOS/MATLAB/IWF_4users.m | 25 - openair1/EMOS/MATLAB/MAC_to_BC/MAC_to_BC.m | 65 - .../MATLAB/MAC_to_BC/iterative_waterfill.m | 73 - openair1/EMOS/MATLAB/MAC_to_BC/sample.m | 29 - .../EMOS/MATLAB/MAC_to_BC/waterfill_block.m | 90 - openair1/EMOS/MATLAB/MISO_MMSE.m | 34 - openair1/EMOS/MATLAB/MMSE_test.m | 88 - openair1/EMOS/MATLAB/agc_sim/agc_sim.m | 59 - openair1/EMOS/MATLAB/antenna_selection.m | 27 - openair1/EMOS/MATLAB/cap_MMSE.m | 22 - openair1/EMOS/MATLAB/cap_ZF.m | 22 - openair1/EMOS/MATLAB/cap_gui.m | 165 - openair1/EMOS/MATLAB/cap_iid.m | 85 - openair1/EMOS/MATLAB/cap_iid_measured.m | 68 - openair1/EMOS/MATLAB/capacityEMOS.m | 79 - openair1/EMOS/MATLAB/capacity_MU_SUTS.m | 57 - openair1/EMOS/MATLAB/capacity_MU_ZF.m | 93 - openair1/EMOS/MATLAB/capacity_SU_CL_ML.m | 78 - openair1/EMOS/MATLAB/capacity_SU_DSTTD.m | 112 - openair1/EMOS/MATLAB/capacity_SU_ML.m | 82 - openair1/EMOS/MATLAB/capacity_SU_MMSE.m | 88 - openair1/EMOS/MATLAB/capacity_SU_TDMA_CL_ML.m | 36 - openair1/EMOS/MATLAB/capacity_SU_TDMA_DSTTD.m | 36 - openair1/EMOS/MATLAB/capacity_SU_TDMA_ML.m | 35 - openair1/EMOS/MATLAB/capacity_SU_TDMA_MMSE.m | 36 - openair1/EMOS/MATLAB/cat_files.m | 15 - openair1/EMOS/MATLAB/check_latex.m | 11 - openair1/EMOS/MATLAB/ecap_iid_snr.m | 97 - openair1/EMOS/MATLAB/eval_data.m | 118 - openair1/EMOS/MATLAB/eval_data_MU.m | 249 - openair1/EMOS/MATLAB/eval_data_MU_CVQ.m | 150 - openair1/EMOS/MATLAB/eval_data_MU_DPC.m | 203 - openair1/EMOS/MATLAB/eval_data_MU_RVQ.m | 170 - openair1/EMOS/MATLAB/eval_data_MU_multiSNR.m | 199 - openair1/EMOS/MATLAB/eval_data_MU_plot.m | 382 - openair1/EMOS/MATLAB/eval_data_MU_test.m | 119 - openair1/EMOS/MATLAB/eval_data_SU_TDMA.m | 102 - openair1/EMOS/MATLAB/gen_align_matrix.m | 29 - .../EMOS/MATLAB/import_filter/eval_data2_MU.m | 79 - .../EMOS/MATLAB/import_filter/eval_data_MU.m | 98 - .../MATLAB/import_filter/load_estimates.m | 261 - .../import_filter/load_estimates2_MU_lm_new.m | 48 - .../load_estimates2_MU_no_channel.m | 74 - .../MATLAB/import_filter/load_estimates2_lm.m | 287 - .../load_estimates2_no_channel.m | 279 - .../MATLAB/import_filter/load_estimates_MU.m | 115 - .../import_filter/load_estimates_MU_lm_new.m | 45 - .../load_estimates_MU_no_channel.m | 93 - .../MATLAB/import_filter/load_estimates_lm.m | 245 - .../import_filter/load_estimates_no_channel.m | 257 - openair1/EMOS/MATLAB/k_factor.m | 41 - openair1/EMOS/MATLAB/largest_contiguous_set.m | 25 - openair1/EMOS/MATLAB/lim_feedback/MISO_CVQ.m | 33 - openair1/EMOS/MATLAB/lim_feedback/MISO_MMSE.m | 34 - openair1/EMOS/MATLAB/lim_feedback/MISO_RVQ.m | 33 - .../EMOS/MATLAB/lim_feedback/codebookRVQ.m | 28 - .../EMOS/MATLAB/lim_feedback/codebook_corr.m | 30 - .../EMOS/MATLAB/lim_feedback/est_trans_prob.m | 16 - .../EMOS/MATLAB/lim_feedback/feedback_test.m | 107 - .../lim_feedback/generate_corr_codebook.m | 21 - .../MATLAB/lim_feedback/get_codebook_idx.m | 43 - .../MATLAB/lim_feedback/meas_feedback_rate.m | 15 - .../EMOS/MATLAB/lim_feedback/quantize_H.m | 45 - .../MATLAB/lim_feedback/quantize_H_codebook.m | 42 - openair1/EMOS/MATLAB/megaMISO.m | 191 - openair1/EMOS/MATLAB/plot_ber.m | 126 - openair1/EMOS/MATLAB/plot_ber2.m | 76 - openair1/EMOS/MATLAB/plot_ber3.m | 93 - .../EMOS/MATLAB/plot_capacity_comp_SU_MU.m | 29 - ...plot_capacity_comp_multiple_measurements.m | 192 - ...lot_capacity_comp_multiple_measurements2.m | 305 - ...lot_capacity_comp_multiple_measurements3.m | 250 - openair1/EMOS/MATLAB/plot_data_MU_CVQ.m | 195 - openair1/EMOS/MATLAB/plot_data_MU_CVQ3.m | 63 - openair1/EMOS/MATLAB/plot_data_MU_DPC.m | 240 - openair1/EMOS/MATLAB/plot_data_MU_SFR.m | 404 -- openair1/EMOS/MATLAB/plot_data_corrmat.m | 76 - openair1/EMOS/MATLAB/plot_ecap_CVQ.m | 24 - openair1/EMOS/MATLAB/plot_ecap_comp.m | 68 - openair1/EMOS/MATLAB/plot_ecap_comp2.m | 49 - openair1/EMOS/MATLAB/plot_eigval_dist.m | 72 - openair1/EMOS/MATLAB/plot_fer_snr.m | 22 - openair1/EMOS/MATLAB/plot_gps_coordinates.m | 62 - .../EMOS/MATLAB/plot_gps_coordinates_sophia.m | 113 - openair1/EMOS/MATLAB/plot_map_indoor.m | 32 - openair1/EMOS/MATLAB/scale_test.m | 11 - openair1/EMOS/MATLAB/test_BD.m | 44 - openair1/EMOS/MATLAB/textable.m | 217 - openair1/EMOS/MATLAB/top_ecap.m | 60 - openair1/EMOS/MATLAB/top_eval_data.m | 40 - openair1/EMOS/MATLAB/top_eval_data_MU.m | 116 - openair1/EMOS/MATLAB/top_eval_data_MU_plot.m | 56 - openair1/EMOS/MATLAB/top_eval_data_MU_quick.m | 81 - .../EMOS/MATLAB/top_eval_data_MU_quick_plot.m | 93 - openair1/EMOS/MATLAB/top_eval_data_quick.m | 52 - .../EMOS/MATLAB/top_eval_data_quick_plot.m | 61 - openair1/EMOS/MATLAB/top_plot_data_MU.m | 106 - openair1/EMOS/MATLAB/top_plot_data_MU_quick.m | 108 - openair1/EMOS/MATLAB/top_plot_data_quick.m | 64 - openair1/EMOS/SIM/COPYING | 674 -- openair1/EMOS/SIM/Makefile | 69 - openair1/EMOS/SIM/emos_sim.c | 408 -- openair1/EMOS/UTIL/COPYING | 674 -- openair1/EMOS/UTIL/split_emos_files.c | 165 - 315 files changed, 56347 deletions(-) delete mode 100644 openair1/EMOS/DOC/measurement_manual.tex delete mode 100644 openair1/EMOS/DUMP/COPYING delete mode 100644 openair1/EMOS/DUMP/Makefile delete mode 100644 openair1/EMOS/DUMP/dump_size.c delete mode 100644 openair1/EMOS/DUMP/emos_dump.c delete mode 100644 openair1/EMOS/DUMP/emos_dump.h delete mode 100644 openair1/EMOS/GPS/COPYING delete mode 100644 openair1/EMOS/GPS/Makefile delete mode 100644 openair1/EMOS/GPS/gps.c delete mode 100644 openair1/EMOS/GPS/load_gps_trace.m delete mode 100644 openair1/EMOS/GPS/read_iw.c delete mode 100644 openair1/EMOS/GUI/AUTHORS delete mode 100644 openair1/EMOS/GUI/COPYING delete mode 100644 openair1/EMOS/GUI/ChangeLog delete mode 100644 openair1/EMOS/GUI/Doxyfile delete mode 100644 openair1/EMOS/GUI/INSTALL delete mode 100644 openair1/EMOS/GUI/Makefile.am delete mode 100644 openair1/EMOS/GUI/Makefile.cvs delete mode 100644 openair1/EMOS/GUI/Makefile.in delete mode 100644 openair1/EMOS/GUI/NEWS delete mode 100644 openair1/EMOS/GUI/README delete mode 100644 openair1/EMOS/GUI/TODO delete mode 100755 openair1/EMOS/GUI/config.guess delete mode 100644 openair1/EMOS/GUI/config.h.in delete mode 100755 openair1/EMOS/GUI/config.sub delete mode 100755 openair1/EMOS/GUI/configure delete mode 100644 openair1/EMOS/GUI/configure.in delete mode 100755 openair1/EMOS/GUI/depcomp delete mode 100644 openair1/EMOS/GUI/emos_gui.kdevelop delete mode 100755 openair1/EMOS/GUI/install-sh delete mode 100644 openair1/EMOS/GUI/ltmain.sh delete mode 100755 openair1/EMOS/GUI/missing delete mode 100755 openair1/EMOS/GUI/mkinstalldirs delete mode 100644 openair1/EMOS/GUI/src/COPYING delete mode 100644 openair1/EMOS/GUI/src/Eurecom_Logo.png delete mode 100644 openair1/EMOS/GUI/src/Eurecom_Logo.xpm delete mode 100644 openair1/EMOS/GUI/src/FFT.c delete mode 100644 openair1/EMOS/GUI/src/Makefile.am delete mode 100644 openair1/EMOS/GUI/src/Makefile.in delete mode 100644 openair1/EMOS/GUI/src/emos_callbacks.c delete mode 100644 openair1/EMOS/GUI/src/emos_gui.c delete mode 100644 openair1/EMOS/GUI/src/emos_gui.h delete mode 100644 openair1/EMOS/GUI/src/emos_gui_forms.c delete mode 100644 openair1/EMOS/GUI/src/emos_gui_forms.fd delete mode 100644 openair1/EMOS/GUI/src/emos_gui_forms.h delete mode 100644 openair1/EMOS/GUI/src/make_links.sh delete mode 100644 openair1/EMOS/GUI/src/matrix_util.c delete mode 100644 openair1/EMOS/GUI/src/matrix_util.h delete mode 100644 openair1/EMOS/LTE/GUI/COPYING delete mode 100644 openair1/EMOS/LTE/GUI/Eurecom_Logo.png delete mode 100644 openair1/EMOS/LTE/GUI/Eurecom_Logo.xpm delete mode 100644 openair1/EMOS/LTE/GUI/FFT.c delete mode 100644 openair1/EMOS/LTE/GUI/Makefile delete mode 100644 openair1/EMOS/LTE/GUI/emos_gui.c delete mode 100644 openair1/EMOS/LTE/GUI/emos_gui.h delete mode 100644 openair1/EMOS/LTE/GUI/emos_gui_forms.c delete mode 100644 openair1/EMOS/LTE/GUI/emos_gui_forms.fd delete mode 100644 openair1/EMOS/LTE/GUI/emos_gui_forms.h delete mode 100644 openair1/EMOS/LTE/GUI/matrix_util.c delete mode 100644 openair1/EMOS/LTE/GUI/matrix_util.h delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/COPYING delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/Makefile delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/binread.m delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.m delete mode 100755 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mex delete mode 100755 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexa64 delete mode 100755 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexglx delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexw64 delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/dump_size.c delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/example.m delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m delete mode 100755 openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m delete mode 100644 openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m delete mode 100644 openair1/EMOS/LTE/MU-MIMO/eval_results.m delete mode 100644 openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_eNb_cat.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/CapCom/quantize_q.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/README.txt delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/SISO.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/SISO_scaling.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/align_routes.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom1.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom2.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom3.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_mode1_siso.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/channel.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/cost231_hata.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/distance_traveled_comparison.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/filter_routes.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/map_q.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/mapping.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet2.png delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet3.png delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/maps/cordes.png delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/cordes_merged_routes_wp.png delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet3.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet_new.mat delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes_new.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne_new.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/penne3.png delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/maps/plot_gps_coordinates.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/mode1_mode2_comparison.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/my_data_tip.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/penne_zoom1.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/penne_zoom2.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/penne_zoom3.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/pfair.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/plot_all_eNb.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_all_ue.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_comparison_all_modes.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_comparison_all_modes_cordes.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_cordes.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_ideal.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_figures_ambialet.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_figures_cordes.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_figures_penne.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_in_bins.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/plot_results_I0_quick.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick_common.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/plot_results_eNb_aligned.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/plot_results_eNb_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/post_processing_MUMIMO.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/post_processing_UE_channel.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/post_processing_UE_nomadic_quick.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/post_processing_UE_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/post_processing_eNB_nomadic_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/post_processing_eNb_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/rank_pmi_calc.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/scale_ideal_tp.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/select_dist_travelled_ideal.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/select_mu-mimo_ambialet.mat delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_channel.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_nomadic_quick.m delete mode 100755 openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_quick.m delete mode 100644 openair1/EMOS/LTE/POST_PROCESSING/table_LTE_MODE_4_5.mat delete mode 100644 openair1/EMOS/LTE/RECIPROCITY/main.m delete mode 100644 openair1/EMOS/LTE/RECIPROCITY/main_part2.m delete mode 100644 openair1/EMOS/LTE/RECIPROCITY/some_plots.m delete mode 100755 openair1/EMOS/MATLAB/Antenna4Test.m delete mode 100755 openair1/EMOS/MATLAB/BD.m delete mode 100755 openair1/EMOS/MATLAB/DProfile.m delete mode 100755 openair1/EMOS/MATLAB/EMOS_generate_LaTex_file.m delete mode 100755 openair1/EMOS/MATLAB/EMOS_generate_LaTex_presentation.m delete mode 100755 openair1/EMOS/MATLAB/IWF_4users.m delete mode 100755 openair1/EMOS/MATLAB/MAC_to_BC/MAC_to_BC.m delete mode 100755 openair1/EMOS/MATLAB/MAC_to_BC/iterative_waterfill.m delete mode 100755 openair1/EMOS/MATLAB/MAC_to_BC/sample.m delete mode 100755 openair1/EMOS/MATLAB/MAC_to_BC/waterfill_block.m delete mode 100755 openair1/EMOS/MATLAB/MISO_MMSE.m delete mode 100755 openair1/EMOS/MATLAB/MMSE_test.m delete mode 100755 openair1/EMOS/MATLAB/agc_sim/agc_sim.m delete mode 100644 openair1/EMOS/MATLAB/antenna_selection.m delete mode 100644 openair1/EMOS/MATLAB/cap_MMSE.m delete mode 100644 openair1/EMOS/MATLAB/cap_ZF.m delete mode 100644 openair1/EMOS/MATLAB/cap_gui.m delete mode 100755 openair1/EMOS/MATLAB/cap_iid.m delete mode 100755 openair1/EMOS/MATLAB/cap_iid_measured.m delete mode 100755 openair1/EMOS/MATLAB/capacityEMOS.m delete mode 100755 openair1/EMOS/MATLAB/capacity_MU_SUTS.m delete mode 100755 openair1/EMOS/MATLAB/capacity_MU_ZF.m delete mode 100755 openair1/EMOS/MATLAB/capacity_SU_CL_ML.m delete mode 100755 openair1/EMOS/MATLAB/capacity_SU_DSTTD.m delete mode 100755 openair1/EMOS/MATLAB/capacity_SU_ML.m delete mode 100644 openair1/EMOS/MATLAB/capacity_SU_MMSE.m delete mode 100644 openair1/EMOS/MATLAB/capacity_SU_TDMA_CL_ML.m delete mode 100755 openair1/EMOS/MATLAB/capacity_SU_TDMA_DSTTD.m delete mode 100755 openair1/EMOS/MATLAB/capacity_SU_TDMA_ML.m delete mode 100644 openair1/EMOS/MATLAB/capacity_SU_TDMA_MMSE.m delete mode 100644 openair1/EMOS/MATLAB/cat_files.m delete mode 100755 openair1/EMOS/MATLAB/check_latex.m delete mode 100644 openair1/EMOS/MATLAB/ecap_iid_snr.m delete mode 100755 openair1/EMOS/MATLAB/eval_data.m delete mode 100755 openair1/EMOS/MATLAB/eval_data_MU.m delete mode 100644 openair1/EMOS/MATLAB/eval_data_MU_CVQ.m delete mode 100755 openair1/EMOS/MATLAB/eval_data_MU_DPC.m delete mode 100644 openair1/EMOS/MATLAB/eval_data_MU_RVQ.m delete mode 100644 openair1/EMOS/MATLAB/eval_data_MU_multiSNR.m delete mode 100755 openair1/EMOS/MATLAB/eval_data_MU_plot.m delete mode 100644 openair1/EMOS/MATLAB/eval_data_MU_test.m delete mode 100644 openair1/EMOS/MATLAB/eval_data_SU_TDMA.m delete mode 100755 openair1/EMOS/MATLAB/gen_align_matrix.m delete mode 100644 openair1/EMOS/MATLAB/import_filter/eval_data2_MU.m delete mode 100644 openair1/EMOS/MATLAB/import_filter/eval_data_MU.m delete mode 100755 openair1/EMOS/MATLAB/import_filter/load_estimates.m delete mode 100644 openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_lm_new.m delete mode 100644 openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_no_channel.m delete mode 100644 openair1/EMOS/MATLAB/import_filter/load_estimates2_lm.m delete mode 100644 openair1/EMOS/MATLAB/import_filter/load_estimates2_no_channel.m delete mode 100755 openair1/EMOS/MATLAB/import_filter/load_estimates_MU.m delete mode 100755 openair1/EMOS/MATLAB/import_filter/load_estimates_MU_lm_new.m delete mode 100755 openair1/EMOS/MATLAB/import_filter/load_estimates_MU_no_channel.m delete mode 100755 openair1/EMOS/MATLAB/import_filter/load_estimates_lm.m delete mode 100755 openair1/EMOS/MATLAB/import_filter/load_estimates_no_channel.m delete mode 100755 openair1/EMOS/MATLAB/k_factor.m delete mode 100755 openair1/EMOS/MATLAB/largest_contiguous_set.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/MISO_CVQ.m delete mode 100755 openair1/EMOS/MATLAB/lim_feedback/MISO_MMSE.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/MISO_RVQ.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/codebookRVQ.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/codebook_corr.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/est_trans_prob.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/feedback_test.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/generate_corr_codebook.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/get_codebook_idx.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/meas_feedback_rate.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/quantize_H.m delete mode 100644 openair1/EMOS/MATLAB/lim_feedback/quantize_H_codebook.m delete mode 100755 openair1/EMOS/MATLAB/megaMISO.m delete mode 100644 openair1/EMOS/MATLAB/plot_ber.m delete mode 100644 openair1/EMOS/MATLAB/plot_ber2.m delete mode 100644 openair1/EMOS/MATLAB/plot_ber3.m delete mode 100755 openair1/EMOS/MATLAB/plot_capacity_comp_SU_MU.m delete mode 100755 openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements.m delete mode 100644 openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements2.m delete mode 100644 openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements3.m delete mode 100644 openair1/EMOS/MATLAB/plot_data_MU_CVQ.m delete mode 100644 openair1/EMOS/MATLAB/plot_data_MU_CVQ3.m delete mode 100644 openair1/EMOS/MATLAB/plot_data_MU_DPC.m delete mode 100755 openair1/EMOS/MATLAB/plot_data_MU_SFR.m delete mode 100644 openair1/EMOS/MATLAB/plot_data_corrmat.m delete mode 100644 openair1/EMOS/MATLAB/plot_ecap_CVQ.m delete mode 100644 openair1/EMOS/MATLAB/plot_ecap_comp.m delete mode 100644 openair1/EMOS/MATLAB/plot_ecap_comp2.m delete mode 100755 openair1/EMOS/MATLAB/plot_eigval_dist.m delete mode 100755 openair1/EMOS/MATLAB/plot_fer_snr.m delete mode 100755 openair1/EMOS/MATLAB/plot_gps_coordinates.m delete mode 100755 openair1/EMOS/MATLAB/plot_gps_coordinates_sophia.m delete mode 100644 openair1/EMOS/MATLAB/plot_map_indoor.m delete mode 100755 openair1/EMOS/MATLAB/scale_test.m delete mode 100755 openair1/EMOS/MATLAB/test_BD.m delete mode 100644 openair1/EMOS/MATLAB/textable.m delete mode 100644 openair1/EMOS/MATLAB/top_ecap.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data_MU.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data_MU_plot.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data_MU_quick.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data_MU_quick_plot.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data_quick.m delete mode 100755 openair1/EMOS/MATLAB/top_eval_data_quick_plot.m delete mode 100755 openair1/EMOS/MATLAB/top_plot_data_MU.m delete mode 100755 openair1/EMOS/MATLAB/top_plot_data_MU_quick.m delete mode 100755 openair1/EMOS/MATLAB/top_plot_data_quick.m delete mode 100644 openair1/EMOS/SIM/COPYING delete mode 100755 openair1/EMOS/SIM/Makefile delete mode 100644 openair1/EMOS/SIM/emos_sim.c delete mode 100644 openair1/EMOS/UTIL/COPYING delete mode 100644 openair1/EMOS/UTIL/split_emos_files.c diff --git a/openair1/EMOS/DOC/measurement_manual.tex b/openair1/EMOS/DOC/measurement_manual.tex deleted file mode 100644 index b48e7190eb..0000000000 --- a/openair1/EMOS/DOC/measurement_manual.tex +++ /dev/null @@ -1,105 +0,0 @@ -\documentclass[10pt,a4paper]{article} -%\usepackage{epsfig,amsmath,amsfonts,url,subfigure,verbatim} - -\begin{document} -\author{Florian Kaltenberger (\texttt{florian.kaltenberger@eurecom.fr})} -\title{EMOS Multiuser Measurement Manual} - -\maketitle - -\section{EMOS Multiuser Measurement Manual} - -\subsection{Checklist} - -Each user should have the following equipment - -\begin{itemize} -\item Laptop -\item Power supply -\item Car power adaptor -\item GPS -\item CBMIMO1 Card (Availiable cards: 2, 6, 7, 11. Card 10 has a bad frequency response and card 12 crashes after some time) -\item 2 Batteries -\item Antennas -\item This Manual -\item Route and Time -\item Walkie Talkie -\end{itemize} - -\subsection{Startup} -\begin{itemize} -\item Login using the name written on the laptop (password {\tt linux}) -\item Power up the CBMIMO1 card, connect the antennas to the two outer connectors on the card, and insert it in the card slot -\item Connect the USB GPS receiver -\item Open a terminal window and change directory:\\ - {\tt cd EMOS/emos\_gui} -\item Load the kernel module as root:\\ - {\tt sudo make install\_cbmimo1\_softmodem\_emos}\\ - (provide password {\tt linux} if asked)\\ - The leds on the card should now be ``moving'' -\item Start the GPS daemon as root:\\ - {\tt sudo gpsd -f /dev/ttyUSB0} (provide password {\tt linux} if asked) -\item Start the GUI:\\ - {\tt cd src}\\ - {\tt ./emos\_gui -n4} -%Start with {\tt ./emos\_gui -nx}, where {\tt x} is the number of base station antennas. -\end{itemize} - -\subsection{Operation} -\begin{itemize} - -\item Turn on the GUI by clicking the ``PWR'' button. - -\item Make sure, there are no error messages. - -\item If the terminal can synchronize to the base station, the displays should turn on and the two rightmost leds on the card should stay on. - -\item Bring the GUI into multiuser mode by pressing the ``terminal mode'' button. - -\item Make sure you set the terminal number to the number indicated on your laptop. - -\item Now you are ready to turn on the recorder by pressing ``record''. The terminal now waits for the base station to signal the recording flag. Upon receiving the flag, the terminal will record the estimated channel. When the recording flag goes off, the data is stored to file, the file index is increased, and the terminal goes into standby again. -\end{itemize} - -\subsection{Troubleshooting} - -\paragraph{Card does not synchronize} -Most probably you are in an area with no or too little signal. -\begin{itemize} -\item Make sure you stay on the measurement routes. -\item Make sure the antennas are connected correctly. -\item Check for other error messages on the GUI. -\end{itemize} - -\paragraph{Channel displays do not refresh} -Most probably the card has crashed or there is a problem with the fifo. -\begin{itemize} -\item Stop recording and exit the GUI -\item Remove the kernel module:\\ - {\tt cd ~/EMOS/emos\_gui}\\ - {\tt sudo make remove\_cbmimo1\_emos} -\item Remove the card and the power -\item Load the kernel module as described above -\item Restart the GUI -\end{itemize} - -\paragraph{No GPS data availiable} -\begin{itemize} -\item Make sure the GPS is connected correctly and that it can see the satelites (led on GPS constantly on) -\item Have you started the GPS daemon {\tt gpsd -f /dev/ttyUSB0} -\item Restart the GUI -\end{itemize} - -\paragraph{GUI does not record or records permanently} -\begin{itemize} -\item Make sure you are in multiuser mode and you turned on record -\item Make sure there is enough disk space -\item Make sure that the record path (``config'' button) is set to ~/EMOS/data/ -\end{itemize} - -\paragraph{Computer freezes} -\begin{itemize} -\item Reboot -\end{itemize} - -\end{document} \ No newline at end of file diff --git a/openair1/EMOS/DUMP/COPYING b/openair1/EMOS/DUMP/COPYING deleted file mode 100644 index 818433ecc0..0000000000 --- a/openair1/EMOS/DUMP/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/openair1/EMOS/DUMP/Makefile b/openair1/EMOS/DUMP/Makefile deleted file mode 100644 index cd8bec5885..0000000000 --- a/openair1/EMOS/DUMP/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -SRC = emos_dump.c dump_size.c - -OBJ = emos_dump.o dump_size.o - -CFLAGS += $(shell rtai-config --lxrt-cflags) -LDFLAGS = $(shell rtai-config --lxrt-ldflags) -lpthread -llxrt -lm -lgps -lforms - -CFLAGS += -m32 -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES - -CFLAGS += -DPHYSIM -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 - -CFLAGS += -DOPENAIR_LTE -DENABLE_FXP -DOPENAIR1 #-DDLSCH_THREAD -DULSCH_THREAD - -CFLAGS += -DEMOS -DEXMIMO - -all: emos_dump dump_size - -$(OBJ): %.o : %.c - @echo Compiling $< ... - @$(CC) -c $(CFLAGS) -o $@ $< - -emos_dump: emos_dump.c - $(CC) $(CFLAGS) $(LDFLAGS) emos_dump.c -o emos_dump - -dump_size: dump_size.c - $(CC) $(CFLAGS) $(LDFLAGS) dump_size.c -o dump_size - -clean: - rm -rf emos_dump dump_size - rm -rf $(OBJ) - -show: - @echo $(CFLAGS) - @echo $(OBJ) - -beautiful: - astyle --style=gnu -s2 $(SRC) diff --git a/openair1/EMOS/DUMP/dump_size.c b/openair1/EMOS/DUMP/dump_size.c deleted file mode 100644 index e436cdf6a9..0000000000 --- a/openair1/EMOS/DUMP/dump_size.c +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include "gps.h" -#include "SCHED/phy_procedures_emos.h" - -int main(void) -{ - printf("MAX_CQI_BITS = %d;\n",MAX_CQI_BITS); - printf("PHY_measurements_size = %d;\n",sizeof(PHY_MEASUREMENTS)); - printf("PHY_measurements_eNb_size = %d;\n",sizeof(PHY_MEASUREMENTS_eNB)); - //printf("UCI_data_t_size = %d;\n",sizeof(UCI_DATA_t)); - //printf("DCI_alloc_t_size = %d;\n",sizeof(DCI_ALLOC_t)); - printf("eNb_UE_stats_size = %d;\n",sizeof(LTE_eNB_UE_stats)); - printf("fifo_dump_emos_UE_size = %d;\n",sizeof(fifo_dump_emos_UE)); - printf("fifo_dump_emos_eNb_size = %d;\n",sizeof(fifo_dump_emos_eNB)); - printf("gps_fix_t_size = %d\n",sizeof(struct gps_fix_t)); - - return(0); -} diff --git a/openair1/EMOS/DUMP/emos_dump.c b/openair1/EMOS/DUMP/emos_dump.c deleted file mode 100644 index c88246798b..0000000000 --- a/openair1/EMOS/DUMP/emos_dump.c +++ /dev/null @@ -1,228 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/*! \file emod_dump.c -* \brief reads data from a fifo and dumps it to disk -* \author F. Kaltenberger, Leonardo Cardoso -* \date 2012 -* \version 0.2 -* \company Eurecom -* \email: florian.kaltenberger@eurecom.fr -* \note -* \warning -*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "SCHED/phy_procedures_emos.h" -#include "emos_dump.h" - -int end=0; - -static void endme(int dummy) -{ - printf("SIGINT received\n"); - end=1; -} - -/* -#define TIMESTAMP_SIZE 8 -#define PDU_ERRORS_SIZE 4 -#define RX_RSSI_SIZE 2 -#define COMPLEX16_SIZE 4 -#define NO_OF_OFDM_CARRIERS 256 -#define CHANNEL_BUFFER_SIZE (NB_ANTENNAS*COMPLEX16_SIZE*NO_OF_OFDM_CARRIERS+TIMESTAMP_SIZE+PDU_ERRORS_SIZE+RX_RSSI_SIZE) //in bytes -*/ -#define NO_ESTIMATES_DISK 100 //No. of estimates that are aquired before dumped to disk - -int main (int argc, char **argv) -{ - char c, eNB_flag=0; - char *fifo2file_buffer, *fifo2file_ptr; - - int fifo, counter=0, bytes; - - FILE *dumpfile_id; - char dumpfile_name[1024]; - time_t starttime_tmp; - struct tm starttime; - - int channel_buffer_size; - - time_t timer; - struct tm *now; - - struct gps_data_t *gps_data = NULL; - struct gps_fix_t dummy_gps_data; - - while ((c = getopt (argc, argv, "he")) != -1) { - switch (c) { - case 'e': - eNB_flag=1; - break; - - case 'h': - printf("EMOS FIFO to file dump.\n"); - printf("Usage: %s -h(elp) -e(NB) (default=ue)\n",argv[0]); - exit(0); - - default: - break; - } - } - - timer = time(NULL); - now = localtime(&timer); - - memset(&dummy_gps_data,1,sizeof(struct gps_fix_t)); - - gps_data = gps_open("127.0.0.1","2947"); - - if (gps_data == NULL) { - printf("Could not open GPS\n"); - //exit(-1); - } - -#if GPSD_API_MAJOR_VERSION>=4 - else if (gps_stream(gps_data, WATCH_ENABLE,NULL) != 0) -#else - else if (gps_query(gps_data, "w+x") != 0) -#endif - { - //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data); - printf("Error sending command to GPS\n"); - //exit(-1); - } - - if (eNB_flag==1) - channel_buffer_size = sizeof(fifo_dump_emos_eNB); - else - channel_buffer_size = sizeof(fifo_dump_emos_UE); - - // allocate memory for NO_FRAMES_DISK channes estimations - fifo2file_buffer = malloc(NO_ESTIMATES_DISK*channel_buffer_size); - fifo2file_ptr = fifo2file_buffer; - - if (fifo2file_buffer == NULL) { - printf("Cound not allocate memory for fifo2file_buffer\n"); - exit(EXIT_FAILURE); - } - - if ((fifo = open(CHANSOUNDER_FIFO_DEV, O_RDONLY)) < 0) { - fprintf(stderr, "Error opening the fifo\n"); - exit(EXIT_FAILURE); - } - - - time(&starttime_tmp); - localtime_r(&starttime_tmp,&starttime); - snprintf(dumpfile_name,1024,"%s_data_%d%02d%02d_%02d%02d%02d.EMOS", - (eNB_flag==1) ? "eNB" : "UE", - 1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, starttime.tm_min, starttime.tm_sec); - - dumpfile_id = fopen(dumpfile_name,"w"); - - if (dumpfile_id == NULL) { - fprintf(stderr, "Error opening dumpfile\n"); - exit(EXIT_FAILURE); - } - - signal(SIGINT, endme); - - printf("starting dump, channel_buffer_size=%d ...\n",channel_buffer_size); - - while (!end) { - bytes = rtf_read_all_at_once(fifo, fifo2file_ptr, channel_buffer_size); - /* - if (eNB_flag==1) - printf("eNB: count %d, frame %d, read: %d bytes from the fifo\n",counter, ((fifo_dump_emos_eNB*)fifo2file_ptr)->frame_tx,bytes); - else - printf("UE: count %d, frame %d, read: %d bytes from the fifo\n",counter, ((fifo_dump_emos_UE*)fifo2file_ptr)->frame_rx,bytes); - */ - - fifo2file_ptr += channel_buffer_size; - counter ++; - - if (counter == NO_ESTIMATES_DISK) { - //reset stuff - fifo2file_ptr = fifo2file_buffer; - counter = 0; - - //flush buffer to disk - if (eNB_flag==1) - printf("eNB: count %d, frame %d, flushing buffer to disk\n", - counter, ((fifo_dump_emos_eNB*)fifo2file_ptr)->frame_tx); - else - printf("UE: count %d, frame %d, flushing buffer to disk\n", - counter, ((fifo_dump_emos_UE*)fifo2file_ptr)->frame_rx); - - - if (fwrite(fifo2file_buffer, sizeof(char), NO_ESTIMATES_DISK*channel_buffer_size, dumpfile_id) != NO_ESTIMATES_DISK*channel_buffer_size) { - fprintf(stderr, "Error writing to dumpfile\n"); - exit(EXIT_FAILURE); - } - - if (gps_data) { - if (gps_poll(gps_data) != 0) { - printf("problem polling data from gps\n"); - } else { - printf("lat %g, lon %g\n",gps_data->fix.latitude,gps_data->fix.longitude); - } - - if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - printf("Error writing to dumpfile, stopping recording\n"); - exit(EXIT_FAILURE); - } - } else { - printf("WARNING: No GPS data available, storing dummy packet\n"); - - if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - printf("Error writing to dumpfile, stopping recording\n"); - exit(EXIT_FAILURE); - } - } - } - } - - free(fifo2file_buffer); - fclose(dumpfile_id); - close(fifo); - - return 0; - -} - diff --git a/openair1/EMOS/DUMP/emos_dump.h b/openair1/EMOS/DUMP/emos_dump.h deleted file mode 100644 index 4f65d0a6bb..0000000000 --- a/openair1/EMOS/DUMP/emos_dump.h +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#define CHANSOUNDER_FIFO_DEV "/dev/rtf3" diff --git a/openair1/EMOS/GPS/COPYING b/openair1/EMOS/GPS/COPYING deleted file mode 100644 index 818433ecc0..0000000000 --- a/openair1/EMOS/GPS/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/openair1/EMOS/GPS/Makefile b/openair1/EMOS/GPS/Makefile deleted file mode 100644 index 4ae707f60b..0000000000 --- a/openair1/EMOS/GPS/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -gps_trace: gps.c - gcc gps.c -Wall -g -I/usr/include/X11 -lgps -lforms -o gps_trace - -read_iw: read_iw.c - gcc read_iw.c -Wall -g -o read_iw \ No newline at end of file diff --git a/openair1/EMOS/GPS/gps.c b/openair1/EMOS/GPS/gps.c deleted file mode 100644 index eecfe0ded3..0000000000 --- a/openair1/EMOS/GPS/gps.c +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include -#include -#include -#include -#include -#include - -struct gps_data_t *gps_data = NULL; -struct gps_fix_t dummy_gps_data; -FILE *dumpfile_id = NULL; - - -void gps_data_callback(int gps_fd, void* data) -{ - //char tmptxt[1024]; - time_t timer; - struct tm *now; - - timer = time(NULL); - - //printf("GPS timer called\n"); - if (gps_data) { - if (gps_poll(gps_data) != 0) { - //sprintf(tmptxt,"Error polling data from GPS, gps_data = %x", gps_data); - printf("Error polling data from GPS\n"); - } else - now = localtime(&timer); - - printf("%04d%02d%02d%02d%02d%02d,%g,%g\n", - now->tm_year+1900,now->tm_mon+1,now->tm_mday,now->tm_hour, now->tm_min, now->tm_sec, - //asctime(localtime(&timer)), - gps_data->fix.latitude,gps_data->fix.longitude); - } - - //fl_set_timer(ob, 0.05); - - //write GPS - if (gps_data) { - if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - printf("Error writing to dumpfile, stopping recording\n"); - } - } else { - printf("WARNING: No GPS data available, storing dummy packet\n"); - - if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - printf("Error writing to dumpfile, stopping recording\n"); - } - } -} - -void stop_gps(int sig) -{ - - // stop gps - if (gps_data) - fl_remove_io_callback(gps_data->gps_fd, FL_READ , &gps_data_callback); - - // close the GPS - if (gps_data) - gps_close(gps_data); - - fclose(dumpfile_id); - dumpfile_id = NULL; - - fl_finish(); - - exit(0); -} - -int main(int argc, char *argv[]) -{ - - time_t timer; - char log_filename[256], date_str[128]; - struct tm *now; - - timer = time(NULL); - now = localtime(&timer); - - // open GPS - gps_data = gps_open("127.0.0.1","2947"); - - if (gps_data == NULL) { - printf("Could not open GPS\n"); - exit(-1); - } else if (gps_stream(gps_data, WATCH_ENABLE,NULL) != 0) { - //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data); - printf("Error sending command to GPS\n"); - exit(-1); - } - - strftime(date_str, 128, "%Y%m%d_%H%M%S", now); - sprintf(log_filename,"gps_trace_%s.log", date_str); - dumpfile_id = fopen(log_filename,"w"); - - if (dumpfile_id == NULL) { - printf("Error opening dumpfile\n"); - exit(-1); - } - - signal(SIGINT, stop_gps); - - fl_initialize(&argc, argv, "GPS Tracer", 0, 0); - - if (gps_data) - fl_add_io_callback(gps_data->gps_fd, FL_READ, &gps_data_callback, NULL); - - fl_do_forms(); - - exit(0); -} - diff --git a/openair1/EMOS/GPS/load_gps_trace.m b/openair1/EMOS/GPS/load_gps_trace.m deleted file mode 100644 index fb0ab8dd0d..0000000000 --- a/openair1/EMOS/GPS/load_gps_trace.m +++ /dev/null @@ -1,85 +0,0 @@ -function [gps_data, NFrames] = load_gps_trace(filename, NFrames_max, decimation) -% -% EMOS GPS trace import filter -% -% [gps_data, NFrames] = -% load_estimates_lte(filename, NFrames_max) -% -% Parameters: -% filename - filename(s) of the EMOS data file -% NFrames_max - Maximum number of estimates. Leave it blank to get up to the -% maximum file contents -% decimation - read every 'decimation' frame -% -% Returns: -% gps_data - A structure array containing gps data -% NFrames - the number of read estimates - -% Author: Florian Kaltenberger -% Copyright: Eurecom Sophia Antipolis - -% Version History -% Date Version Comment -% 20120123 0.1 Created based on load_estimates - -if nargin < 3 - decimation = 1; -end -if nargin < 2 - NFrames_max = Inf; -end - -gps_data_struct = struct(... - 'timestamp', double(0),... - 'mode', int32(0),... - 'ept',double(0),... - 'latitude',double(0),... - 'longitude',double(0),... - 'eph',double(0),... - 'altitude',double(0),... - 'epv',double(0),... - 'track',double(0),... - 'epd',double(0),... - 'speed',double(0),... - 'eps',double(0),... - 'climb',double(0),... - 'epc',double(0)); - -gps_data_struct_a = cstruct(gps_data_struct,[],4); - -gps_fix_t_size = gps_data_struct_a.size; - -% Estimate the size of the file for a pre-allocation of memory -if ~iscell(filename) - filename = {filename}; -end -NFiles = length(filename); -NFrames_file = zeros(1,NFiles); -for n=1:NFiles - if ~exist(filename{n},'file') - error('File does not exist!') - end - info_file = dir(filename{n}); - NFrames_file(n) = floor(info_file.bytes/gps_fix_t_size); - if (mod(info_file.bytes,gps_fix_t_size) ~= 0) - warning('File size not a multiple of buffer size. File might be corrupt.'); - end -end -NFrames = min(sum(NFrames_file), NFrames_max); - -gps_data = repmat(gps_data_struct,1,NFrames); - -l = 1; -for n=1:NFiles - fid = fopen(filename{n},'r'); - - while (~feof(fid) && (l <= min(sum(NFrames_file(1:n)),NFrames_max))) - - %read GPS data - gps_data(l) = binread(fid,gps_data_struct,1,4,'l'); - l=l+1; - end - - fclose(fid); -end - diff --git a/openair1/EMOS/GPS/read_iw.c b/openair1/EMOS/GPS/read_iw.c deleted file mode 100644 index fbd75e5d35..0000000000 --- a/openair1/EMOS/GPS/read_iw.c +++ /dev/null @@ -1,186 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include -#include -#include -#include - -int main(int argc, char *argv[]) -{ - - FILE *file_id = NULL; - - struct iw_struct { - char wday[8]; - char mon[8]; - int day; - int hour; - int min; - int sec; - int year; - char addr[32]; - char dev[32]; - int inactive_time; - int rx_bytes; - int rx_packets; - int tx_bytes; - int tx_packets; - int tx_retries; - int tx_failed; - int signal; - int signal_ctl0; - int signal_ctl1; - float tx_bitrate; - int tx_mcs; - int tx_bw; - char tx_gi1[32]; - char tx_gi2[32]; - float rx_bitrate; - int rx_mcs; - int rx_bw; - char rx_gi1[32]; - char rx_gi2[32]; - } iw_field; - - char line[256]; - - int i; - - if (argc < 2) { - printf("Program requires an argument (filename)\n"); - return(-1); - } - - file_id = fopen(argv[1],"r"); - - if (file_id == NULL) { - printf("Error opening file %s\n", argv[1]); - return(-1); - } - - i=0; - - while (~feof(file_id)) { - fgets(line, 256, file_id); - - if (feof(file_id)) - break; - - sscanf(line,"%s %s %d %d:%d:%d GMT %d", - iw_field.wday, - iw_field.mon, - &iw_field.day, - &iw_field.hour, - &iw_field.min, - &iw_field.sec, - &iw_field.year); - fgets(line, 256, file_id); - sscanf(line,"Station %s (on %s", - iw_field.addr, - iw_field.dev); - fgets(line, 256, file_id); - sscanf(line," inactive time: %d ms", - &iw_field.inactive_time); - fgets(line, 256, file_id); - sscanf(line," rx bytes: %d", - &iw_field.rx_bytes); - fgets(line, 256, file_id); - sscanf(line," rx packets: %d", - &iw_field.rx_packets); - fgets(line, 256, file_id); - sscanf(line," tx bytes: %d", - &iw_field.tx_bytes); - fgets(line, 256, file_id); - sscanf(line," tx packets: %d", - &iw_field.tx_packets); - fgets(line, 256, file_id); - sscanf(line," tx retries: %d", - &iw_field.tx_retries); - fgets(line, 256, file_id); - sscanf(line," tx failed: %d", - &iw_field.tx_failed); - fgets(line, 256, file_id); - sscanf(line," signal: %d dBm", - &iw_field.signal); - fgets(line, 256, file_id); - sscanf(line," signal_ctl0: %d dBm", - &iw_field.signal_ctl0); - fgets(line, 256, file_id); - sscanf(line," signal_ctl1: %d dBm", - &iw_field.signal_ctl1); - fgets(line, 256, file_id); - sscanf(line," tx bitrate: %e MBit/s MCS %d %dMhz %s %s", - &iw_field.tx_bitrate, - &iw_field.tx_mcs, - &iw_field.tx_bw, - iw_field.tx_gi1, - iw_field.tx_gi2); - fgets(line, 256, file_id); - sscanf(line," rx bitrate: %e MBit/s MCS %d %dMhz %s %s", - &iw_field.rx_bitrate, - &iw_field.rx_mcs, - &iw_field.rx_bw, - iw_field.rx_gi1, - iw_field.rx_gi2); - - //printf("read set %d, time %d:%d:%d\n",i,iw_field.hour,iw_field.min,iw_field.sec); - if (i==0) { - printf("num, date; inactive_time; rx_bytes; rx_packets; tx_bytes; tx_packets; tx_retries; tx_failed; signal; signal0; signal1; tx_bitrate; tx_mcs; rx_bitrate; rx_mcs\n"); - } - - printf("%d; %d-%s-%d %d:%d:%d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %e; %d; %e; %d\n", - i, - iw_field.day, - iw_field.mon, - iw_field.year, - iw_field.hour, - iw_field.min, - iw_field.sec, - iw_field.inactive_time, - iw_field.rx_bytes, - iw_field.rx_packets, - iw_field.tx_bytes, - iw_field.tx_packets, - iw_field.tx_retries, - iw_field.tx_failed, - iw_field.signal, - iw_field.signal_ctl0, - iw_field.signal_ctl1, - iw_field.tx_bitrate, - iw_field.tx_mcs, - iw_field.rx_bitrate, - iw_field.rx_mcs); - - i=i+1; - } - - fclose(file_id); - - return (0); -} diff --git a/openair1/EMOS/GUI/AUTHORS b/openair1/EMOS/GUI/AUTHORS deleted file mode 100644 index 6890b9612f..0000000000 --- a/openair1/EMOS/GUI/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Leonardo Cardoso diff --git a/openair1/EMOS/GUI/COPYING b/openair1/EMOS/GUI/COPYING deleted file mode 100644 index 818433ecc0..0000000000 --- a/openair1/EMOS/GUI/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/openair1/EMOS/GUI/ChangeLog b/openair1/EMOS/GUI/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/openair1/EMOS/GUI/Doxyfile b/openair1/EMOS/GUI/Doxyfile deleted file mode 100644 index 722c5e1841..0000000000 --- a/openair1/EMOS/GUI/Doxyfile +++ /dev/null @@ -1,275 +0,0 @@ -# Doxyfile 1.4.1-KDevelop - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = emos_gui.kdevelop -PROJECT_NUMBER = 0.1 -OUTPUT_DIRECTORY = -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = NO -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = /homes/cardoso/Devel/openairinterface/emos_dump/ -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = NO -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = /homes/cardoso/Devel/openairinterface/emos_ofdm/emos_gui -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.C \ - *.CC \ - *.C++ \ - *.II \ - *.I++ \ - *.H \ - *.HH \ - *.H++ \ - *.CS \ - *.PHP \ - *.PHP3 \ - *.M \ - *.MM \ - *.C \ - *.H \ - *.tlh \ - *.diff \ - *.patch \ - *.moc \ - *.xpm \ - *.dox -RECURSIVE = yes -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = YES -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = yes -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = emos_gui.tag -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/openair1/EMOS/GUI/INSTALL b/openair1/EMOS/GUI/INSTALL deleted file mode 100644 index 02a4a0740a..0000000000 --- a/openair1/EMOS/GUI/INSTALL +++ /dev/null @@ -1,167 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes a while. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Type `make install' to install the programs and any data files and - documentation. - - 4. You can remove the program binaries and object files from the - source code directory by typing `make clean'. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. - diff --git a/openair1/EMOS/GUI/Makefile.am b/openair1/EMOS/GUI/Makefile.am deleted file mode 100644 index 661f7a3c5e..0000000000 --- a/openair1/EMOS/GUI/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# not a GNU package. You can remove this line, if -# have all needed files, that a GNU package needs -AUTOMAKE_OPTIONS = foreign 1.4 - -SUBDIRS = src - -install_cbmimo1_softmodem_emos: - make fifos - insmod device_driver/openair_rf_softmodem_emos.ko ; - -remove_cbmimo1_emos: - rmmod openair_rf - -fifos: - @for i in `seq 0 64`;\ - do \ - have_rtfX=`ls /dev/ |grep -c rtf$$i`;\ - if test "$$have_rtfX" == 0 ;then \ - mknod -m 666 /dev/rtf$$i c 150 $$i; \ - fi;\ - done - - diff --git a/openair1/EMOS/GUI/Makefile.cvs b/openair1/EMOS/GUI/Makefile.cvs deleted file mode 100644 index d16070234d..0000000000 --- a/openair1/EMOS/GUI/Makefile.cvs +++ /dev/null @@ -1,8 +0,0 @@ -default: all - -all: - aclocal - autoheader - automake - autoconf - diff --git a/openair1/EMOS/GUI/Makefile.in b/openair1/EMOS/GUI/Makefile.in deleted file mode 100644 index a38fe9ee93..0000000000 --- a/openair1/EMOS/GUI/Makefile.in +++ /dev/null @@ -1,595 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - TODO config.guess config.sub depcomp install-sh ltmain.sh \ - missing mkinstalldirs -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EXEEXT = @EXEEXT@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -# not a GNU package. You can remove this line, if -# have all needed files, that a GNU package needs -AUTOMAKE_OPTIONS = foreign 1.4 -SUBDIRS = src -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile config.h -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am clean clean-generic clean-recursive ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ - dist-tarZ dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-recursive distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-info-am - - -install_cbmimo1_softmodem_emos: - make fifos - insmod device_driver/openair_rf_softmodem_emos.ko ; - -remove_cbmimo1_emos: - rmmod openair_rf - -fifos: - @for i in `seq 0 64`;\ - do \ - have_rtfX=`ls /dev/ |grep -c rtf$$i`;\ - if test "$$have_rtfX" == 0 ;then \ - mknod -m 666 /dev/rtf$$i c 150 $$i; \ - fi;\ - done -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/openair1/EMOS/GUI/NEWS b/openair1/EMOS/GUI/NEWS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/openair1/EMOS/GUI/README b/openair1/EMOS/GUI/README deleted file mode 100644 index b9d445efca..0000000000 --- a/openair1/EMOS/GUI/README +++ /dev/null @@ -1,4 +0,0 @@ -to compile run -./src/make_links -./configure -make \ No newline at end of file diff --git a/openair1/EMOS/GUI/TODO b/openair1/EMOS/GUI/TODO deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/openair1/EMOS/GUI/config.guess b/openair1/EMOS/GUI/config.guess deleted file mode 100755 index ad5281e66e..0000000000 --- a/openair1/EMOS/GUI/config.guess +++ /dev/null @@ -1,1466 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - -timestamp='2005-08-03' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - *86) UNAME_PROCESSOR=i686 ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/openair1/EMOS/GUI/config.h.in b/openair1/EMOS/GUI/config.h.in deleted file mode 100644 index 5a1898acfb..0000000000 --- a/openair1/EMOS/GUI/config.h.in +++ /dev/null @@ -1,55 +0,0 @@ -/* config.h.in. Generated from configure.in by autoheader. */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION diff --git a/openair1/EMOS/GUI/config.sub b/openair1/EMOS/GUI/config.sub deleted file mode 100755 index 1c366dfde9..0000000000 --- a/openair1/EMOS/GUI/config.sub +++ /dev/null @@ -1,1579 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - -timestamp='2005-07-08' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | ms1 \ - | msp430 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m32c) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | ms1-* \ - | msp430-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - m32c-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16c) - basic_machine=cr16c-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/openair1/EMOS/GUI/configure b/openair1/EMOS/GUI/configure deleted file mode 100755 index 9fbc54ac83..0000000000 --- a/openair1/EMOS/GUI/configure +++ /dev/null @@ -1,4789 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell bug-autoconf@gnu.org about your system, - echo including any error possibly output before this message. - echo This can help us improve future autoconf versions. - echo Configuration will now proceed without shell functions. -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - -exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="configure.in" -ac_subst_vars='LTLIBOBJS -LIBOBJS -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_dependency_tracking -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 - { (exit 1); exit 1; }; } ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.63 - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.63. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_config_headers="$ac_config_headers config.h" - -am__api_version="1.9" -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - -done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -$as_echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:$LINENO: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE=emos_gui - VERSION=0.1 - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - fi - fi -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -AM_PROG_LIBTOOL - -ac_config_files="$ac_config_files Makefile src/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.63. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTION]... [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.63, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2008 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - { $as_echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { $as_echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$as_me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=' ' -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\).*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\).*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 -$as_echo "$as_me: error: could not setup config files machinery" >&2;} - { (exit 1); exit 1; }; } -_ACEOF - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then - break - elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 -$as_echo "$as_me: error: could not setup config headers machinery" >&2;} - { (exit 1); exit 1; }; } -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 -$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - ac_file_inputs="$ac_file_inputs '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; - esac \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 -$as_echo "$as_me: error: could not create -" >&2;} - { (exit 1); exit 1; }; } - fi -# Compute "$ac_file"'s index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - "$ac_file" | "$ac_file":* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir=$dirpart/$fdir - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - - esac -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/openair1/EMOS/GUI/configure.in b/openair1/EMOS/GUI/configure.in deleted file mode 100644 index 9b640d8f88..0000000000 --- a/openair1/EMOS/GUI/configure.in +++ /dev/null @@ -1,10 +0,0 @@ -AC_INIT(configure.in) - -AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(emos_gui, 0.1) - -AC_LANG_C -AC_PROG_CC -AM_PROG_LIBTOOL - -AC_OUTPUT(Makefile src/Makefile) diff --git a/openair1/EMOS/GUI/depcomp b/openair1/EMOS/GUI/depcomp deleted file mode 100755 index 4c20c6c944..0000000000 --- a/openair1/EMOS/GUI/depcomp +++ /dev/null @@ -1,441 +0,0 @@ -#! /bin/sh - -# depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi -# `libtool' can also be set to `yes' or `no'. - -depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. This file always lives in the current directory. - # Also, the AIX compiler puts `$object:' at the start of each line; - # $object doesn't have directory information. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - outname="$stripped.o" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Must come before tru64. - - # Intel's C compiler understands `-MD -MF file'. However - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 AIX compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - - tmpdepfile1="$object.d" - tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` - if test "$libtool" = yes; then - "$@" -Wc,-MD - else - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - else - tmpdepfile="$tmpdepfile2" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - test -z "$dashmflag" && dashmflag=-M - ( IFS=" " - case " $* " in - *" --mode=compile "*) # this is libtool, let us make it quiet - for arg - do # cycle over the arguments - case "$arg" in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - # X makedepend - ( - shift - cleared=no - for arg in "$@"; do - case $cleared in no) - set ""; shift - cleared=yes - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift;; - -*) - ;; - *) - set fnord "$@" "$arg"; shift;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tail +3 "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 diff --git a/openair1/EMOS/GUI/emos_gui.kdevelop b/openair1/EMOS/GUI/emos_gui.kdevelop deleted file mode 100644 index 5b85f23067..0000000000 --- a/openair1/EMOS/GUI/emos_gui.kdevelop +++ /dev/null @@ -1,240 +0,0 @@ - - - - Leonardo Cardoso - sampaio@eurecom.fr - 0.1 - KDevAutoProject - C - - C - Code - - - . - false - - - - - src/emos_gui - default - - - src/emos_gui - true - executable - / - -n 4 - true - - - - - - - - optimized - kdevgccoptions - kdevgppoptions - kdevg77options - -O2 -g0 - - - - - -lforms - - - - - - - - --enable-debug=full - debug - kdevgccoptions - kdevgppoptions - kdevg77options - -O0 -g3 - - - - - - - - - - - - - - - - - - kdevgccoptions - kdevgppoptions - kdevg77options - - - - - - - - - - - - - - true - false - 1 - false - - 0 - - - - - ada - ada_bugs_gcc - bash - bash_bugs - clanlib - w3c-dom-level2-html - fortran_bugs_gcc - gnome1 - gnustep - gtk - gtk_bugs - haskell - haskell_bugs_ghc - java_bugs_gcc - java_bugs_sun - kde2book - libstdc++ - opengl - pascal_bugs_fp - php - php_bugs - perl - perl_bugs - python - python_bugs - qt-kdev3 - ruby - ruby_bugs - sdl - stl - w3c-svg - sw - w3c-uaag10 - wxwidgets_bugs - - - Guide to the Qt Translation Tools - Qt Assistant Manual - Qt Designer Manual - Qt Reference Documentation - qmake User Guide - - - KDE Libraries (Doxygen) - - - - - - - - - - - - - false - false - - - *.o,*.lo,CVS - false - - - - - Doxygen Documentation Collection - emos_gui.tag - - - - emos_gui - emos_gui - Emos_gui - EMOS_GUI - Leonardo Cardoso - - sampaio@eurecom.fr - Custom - -I/usr/include - -lm - 0.1 - 2007 - /homes/cardoso/Devel/openairinterface/emos_ofdm/emos_gui - - - - .h - .cpp - - - - - false - 3 - - - - true - true - true - false - true - true - true - 250 - 400 - 250 - - - - set - m_,_ - theValue - true - true - - - - - - -n 4 - - libtool - - - - true - true - false - - - false - true - 10 - - - diff --git a/openair1/EMOS/GUI/install-sh b/openair1/EMOS/GUI/install-sh deleted file mode 100755 index 36f96f3e03..0000000000 --- a/openair1/EMOS/GUI/install-sh +++ /dev/null @@ -1,276 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd=$cpprog - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "$0: no input file specified" >&2 - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d "$dst" ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "$0: $src does not exist" >&2 - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "$0: no destination specified" >&2 - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dst" ] - then - dst=$dst/`basename "$src"` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-$defaultIFS}" - -oIFS=$IFS -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 - shift - - if [ ! -d "$pathcomp" ] ; - then - $mkdirprog "$pathcomp" - else - : - fi - - pathcomp=$pathcomp/ -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd "$dst" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename "$dst"` - else - dstfile=`basename "$dst" $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename "$dst"` - else - : - fi - -# Make a couple of temp file names in the proper directory. - - dsttmp=$dstdir/#inst.$$# - rmtmp=$dstdir/#rm.$$# - -# Trap to clean up temp files at exit. - - trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 - -# Move or copy the file name to the temp name - - $doit $instcmd "$src" "$dsttmp" && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && - -# Now remove or move aside any old file at destination location. We try this -# two ways since rm can't unlink itself on some systems and the destination -# file might be busy for other reasons. In this case, the final cleanup -# might fail but the new file should still install successfully. - -{ - if [ -f "$dstdir/$dstfile" ] - then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || - $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || - { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit - } - else - : - fi -} && - -# Now rename the file to the real destination. - - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - -fi && - -# The final little trick to "correctly" pass the exit status to the exit trap. - -{ - (exit 0); exit -} diff --git a/openair1/EMOS/GUI/ltmain.sh b/openair1/EMOS/GUI/ltmain.sh deleted file mode 100644 index b36e997fea..0000000000 --- a/openair1/EMOS/GUI/ltmain.sh +++ /dev/null @@ -1,6343 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun configure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 -# Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -win32_libid () { - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | \ - sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` - if test "X$win32_nmres" = "Ximport" ; then - win32_libid_type="x86 archive import" - else - win32_libid_type="x86 archive static" - fi - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $echo $win32_libid_type -} - -# End of Shell function definitions -##################################### - -# Parse our command line options once, thoroughly. -while test "$#" -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - tag) - tagname="$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - $echo "$progname: invalid tag name: $tagname" 1>&2 - exit 1 - ;; - esac - - case $tagname in - CC) - # Don't test for the "default" C tag, as we know, it's there, but - # not specially marked. - ;; - *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" - else - $echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi - ;; - esac - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; - - --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - $echo - $echo "Copyright (C) 2003 Free Software Foundation, Inc." - $echo "This is free software; see the source for copying conditions. There is NO" - $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit 0 - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 - # Now print the configurations for the tags. - for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" - done - exit 0 - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x - ;; - - --dry-run | -n) - run=: - ;; - - --features) - $echo "host: $host" - if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" - else - $echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - $echo "enable static libraries" - else - $echo "disable static libraries" - fi - exit 0 - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --preserve-dup-deps) duplicate_deps="yes" ;; - - --quiet | --silent) - show=: - ;; - - --tag) prevopt="--tag" prev=tag ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 -fi - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 - $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_output= - arg_mode=normal - libobj= - - for arg - do - case "$arg_mode" in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - if test -n "$libobj" ; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 - fi - arg_mode=target - continue - ;; - - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - - * ) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; - esac - - base_compile="$base_compile $lastarg" - done # for arg - - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" - exit 1 - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 - ;; - *) - # Get the name of the library object. - [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSifmso]' - case $libobj in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.ii) xform=ii ;; - *.class) xform=class ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; - *.for) xform=for ;; - *.java) xform=java ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 - ;; - esac - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base compile - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case "$base_compile " in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi - - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir= - else - xdir=$xdir/ - fi - lobj=${xdir}$objdir/$objname - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $echo "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - $echo $srcfile > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - $show "$mv $output_obj $lobj" - if $run $mv $output_obj $lobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - else - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - fi - build_libtool_libs=no - build_old_libs=yes - prefer_static_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - base_compile="$base_compile $arg" - shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case $prev in - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$dlprefiles $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit 1 - fi - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat $save_arg` - do -# moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - done - else - $echo "$modename: link input file \`$save_arg' does not exist" - exit 1 - fi - arg=$save_arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" - prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$finalize_command $wl$qarg" - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - ;; - esac - continue - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 - fi - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-freebsd*-gnu*) - # prevent being parsed by the freebsd regexp below - ;; - *-*-mingw* | *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs -framework System" - continue - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-freebsd*-gnu*) - # prevent being parsed by the freebsd regexp below - ;; - *-*-openbsd*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # gcc -m* arguments should be passed to the linker via $compiler_flags - # in order to pass architecture information to the linker - # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo - # but this is not reliable with gcc because gcc may use -mfoo to - # select a different linker, different libraries, etc, while - # -Wl,-mfoo simply passes -mfoo to the linker. - -m*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - if test "$with_gcc" = "yes" ; then - compiler_flags="$compiler_flags $arg" - fi - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - # The PATH hackery in wrapper scripts is required on Windows - # in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - continue - ;; - - -static) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - add_flags="$add_flags $arg" - ;; - - *.$objext) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - ;; - - *.$libext) - # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - add_flags="$add_flags $arg" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base link - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case $base_compile in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in $compile_command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test "$status" -ne 0 && test ! -d "$output_objdir"; then - exit $status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - case $host in - *cygwin* | *mingw* | *pw32*) - # don't eliminate duplcations in $postdeps and $predeps - duplicate_compiler_generated_deps=yes - ;; - *) - duplicate_compiler_generated_deps=$duplicate_deps - ;; - esac - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if test "X$duplicate_deps" = "Xyes" ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$pre_post_deps $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - case $linkmode in - lib) - passes="conv link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - for pass in $passes; do - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - for deplib in $libs; do - lib= - found=no - case $deplib in - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - continue - fi - if test "$pass" = conv && test "$allow_undefined" = yes; then - deplibs="$deplib $deplibs" - continue - fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - for search_ext in .la $shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if (${SED} -e '2q' $lib | - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - library_names= - old_library= - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - if test "$deplibs_check_method" != pass_all; then - $echo - $echo "*** Warning: Trying to link with static lib archive $deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because the file extensions .$libext of this argument makes me believe" - $echo "*** that it is just a static archive that I should not used here." - else - $echo - $echo "*** Warning: Linking the shared library $output against the" - $echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - tmp_libs= - for deplib in $dependency_libs; do - #echo "Adding $deplib to \$deplibs" - deplibs="$deplib $deplibs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 - fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" - else - newdlfiles="$newdlfiles $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 - abs_ladir="$ladir" - fi - ;; - esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes - fi - # This is a shared library - - # Warn about portability, can't link against -module's on some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then - $echo - if test "$linkmode" = prog; then - $echo "*** Warning: Linking the executable $output against the loadable module" - else - $echo "*** Warning: Linking the shared library $output against the loadable module" - fi - $echo "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - realname="$2" - shift; shift - libname=`eval \\$echo \"$libname_spec\"` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw*) - major=`expr $current - $age` - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - soname=`$echo $soroot | ${SED} -e 's/^.*\///'` - newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' - eval cmds=\"$extract_expsyms_cmds\" - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' - eval cmds=\"$old_archive_from_expsyms_cmds\" - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5* ) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a module then we can not link against it, someone - # is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then - $echo "** Warning, lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - $echo - $echo "** And there doesn't seem to be a static archive available" - $echo "** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\\/]*) - add_dir="-L$inst_prefix_dir$libdir $add_dir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\\/]*) - add_dir="-L$inst_prefix_dir$libdir $add_dir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - $echo - $echo "*** Warning: This system can not link to static lib archive $lib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - $echo "*** But as you try to build a module library, libtool will still create " - $echo "*** a static module, that should work as long as the dlopening application" - $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - #if test -n "$dependency_libs" && - # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || - # test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - #fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - fi - ;; - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - if test "$absdir" != "$libdir"; then - # Sure, some shells/systems don't implement the -ef. - # Those will have to live with the warning. - test "$absdir" -ef "$libdir" > /dev/null 2>&1 || - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="$absdir" - fi - depdepl= - case $host in - *-*-darwin*) - # we do not want to link against static libs, but need to link against shared - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$path/$depdepl" ; then - depdepl="$path/$depdepl" - fi - # do not add paths which are already there - case " $newlib_search_path " in - *" $path "*) ;; - *) newlib_search_path="$newlib_search_path $path";; - esac - path="" - fi - ;; - *) - path="-L$path" - ;; - esac - - ;; - -l*) - case $host in - *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" - ;; - *) continue ;; - esac - ;; - *) continue ;; - esac - case " $deplibs " in - *" $depdepl "*) ;; - *) deplibs="$deplibs $depdepl" ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$deplibs $path" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - tmp_libs="$tmp_libs $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - objs="$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext\" - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext\" - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 - else - $echo - $echo "*** Warning: Linking the shared library $output against the non-libtool" - $echo "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test "$#" -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$2" - number_minor="$3" - number_revision="$4" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - current=`expr $number_major + $number_minor - 1` - age="$number_minor" - revision="$number_minor" - ;; - esac - ;; - no) - current="$2" - revision="$3" - age="$4" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case $revision in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case $age in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - if test "$age" -gt "$current"; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - irix | nonstopux) - major=`expr $current - $age + 1` - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - iface=`expr $revision - $loop` - loop=`expr $loop - 1` - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=.`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - major=`expr $current - $age` - versuffix="-$major" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - fi - - if test "$mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$echo "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - removelist="$removelist $p" - ;; - *) ;; - esac - done - if test -n "$removelist"; then - $show "${rm}r $removelist" - $run ${rm}r $removelist - fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` - deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` - dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` - done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-freebsd*-gnu*) - # Prevent $arg from being parsed by the freebsd regexp below. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" - fi - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $rm conftest.c - cat > conftest.c </dev/null` - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null \ - | grep " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for file magic test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a file magic. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval $echo \"$potent_lib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a regex pattern. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` - done - fi - if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ - | grep . >/dev/null; then - $echo - if test "X$deplibs_check_method" = "Xnone"; then - $echo "*** Warning: inter-library dependencies are not supported in this platform." - else - $echo "*** Warning: inter-library dependencies are not known to be supported." - fi - $echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - fi - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - $echo - $echo "*** Warning: libtool could not satisfy all declared inter-library" - $echo "*** dependencies of module $libname. Therefore, libtool will create" - $echo "*** a static module, that should work as long as the dlopening" - $echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - $echo "*** The inter-library dependencies that have been dropped here will be" - $echo "*** automatically added whenever a program is linked with this library" - $echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - $echo - $echo "*** Since this library must not contain undefined symbols," - $echo "*** because either the platform does not support them or" - $echo "*** it was explicitly requested with -no-undefined," - $echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - for link - do - linknames="$linknames $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - if len=`expr "X$cmd" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - $show "$cmd" - $run eval "$cmd" || exit $? - skipped_export=false - else - # The command line is too long to execute in one step. - $show "using reloadable object file for export list..." - skipped_export=: - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - - # Add all flags from the command line. We here create a library, - # but those flags were only added to compile_command and - # finalize_command, which are only used when creating executables. - # So do it by hand here. - compiler_flags="$compiler_flags $add_flags" - # Only add it to commands which use CC, instead of LD, i.e. - # only to $compiler_flags - #linker_flags="$linker_flags $add_flags" - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval cmds=\"$module_expsym_cmds\" - else - eval cmds=\"$module_cmds\" - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" - else - eval cmds=\"$archive_cmds\" - fi - fi - - if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise. - $echo "creating reloadable object files..." - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - delfiles= - last_robj= - k=1 - output=$output_objdir/$save_output-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$max_cmd_len"; }; then - objlist="$objlist $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" - else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" - fi - last_robj=$output_objdir/$save_output-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$save_output-${k}.$objext - objlist=$obj - len=1 - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - - if ${skipped_export-false}; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - libobjs=$output - # Append the command to create the export file. - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" - fi - - # Set up a command to remove the reloadale object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" - done - - $echo "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" - else - eval cmds=\"$archive_cmds\" - fi - - # Append the command to remove the reloadable object files - # to the just-reset $cmds. - eval cmds=\"\$cmds~$rm $delfiles\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - eval cmds=\"$reload_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit 0 - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $run eval "echo timestamp > $libobj" || exit $? - exit 0 - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - eval cmds=\"$reload_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit 0 - ;; - - prog) - case $host in - *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; - esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - fi - ;; - esac - - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi - fi - - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$output.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - else - $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' - $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` - $run eval '$echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $mv "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - grep -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' - else - $echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{\ -" - - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - - # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G - # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath. - # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld. - # This does not apply on AIX for ia64, which uses a SysV linker. - case "$host" in - ia64-*-aix5*) ;; - *-*-aix4* | *-*-aix5*) - compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` - finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;; - esac - - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - - exit $status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $run $rm $output - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit 0 - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - cwrappersource=`$echo ${objdir}/lt-${output}.c` - cwrapper=`$echo ${output}.exe` - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 - - cat > $cwrappersource <> $cwrappersource<<"EOF" -#include -#include -#include -#include -#include -#include - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef DIR_SEPARATOR -#define DIR_SEPARATOR '/' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -#define HAVE_DOS_BASED_FILE_SYSTEM -#ifndef DIR_SEPARATOR_2 -#define DIR_SEPARATOR_2 '\\' -#endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -const char *program_name = NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -char * basename (const char *name); -char * fnqualify(const char *path); -char * strendzap(char *str, const char *pat); -void lt_fatal (const char *message, ...); - -int -main (int argc, char *argv[]) -{ - char **newargz; - int i; - - program_name = (char *) xstrdup ((char *) basename (argv[0])); - newargz = XMALLOC(char *, argc+2); -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] = fnqualify(argv[0]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ - strendzap(newargz[1],".exe"); - for (i = 1; i < argc; i++) - newargz[i+1] = xstrdup(argv[i]); - newargz[argc+1] = NULL; -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" -} - -void * -xmalloc (size_t num) -{ - void * p = (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL -; -} - -char * -basename (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha (name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return (char *) base; -} - -char * -fnqualify(const char *path) -{ - size_t size; - char *p; - char tmp[LT_PATHMAX + 1]; - - assert(path != NULL); - - /* Is it qualified already? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha (path[0]) && path[1] == ':') - return xstrdup (path); -#endif - if (IS_DIR_SEPARATOR (path[0])) - return xstrdup (path); - - /* prepend the current directory */ - /* doesn't handle '~' */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ - p = XMALLOC(char, size); - sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); - return p; -} - -char * -strendzap(char *str, const char *pat) -{ - size_t len, patlen; - - assert(str != NULL); - assert(pat != NULL); - - len = strlen(str); - patlen = strlen(pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp(str, pat) == 0) - *str = '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} -EOF - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. - $run $LTCC -s -o $cwrapper $cwrappersource - ;; - esac - $rm $output - trap "$rm $output; exit 1" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' -sed_quote_subst='$sed_quote_subst' - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$echo are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $echo >> $output "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || \\ - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $mkdir \"\$progdir\" - else - $rm \"\$progdir/\$file\" - fi" - - $echo >> $output "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $echo \"\$relink_command_output\" >&2 - $rm \"\$progdir/\$file\" - exit 1 - fi - fi - - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" - fi" - else - $echo >> $output "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} -" - ;; - - *) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - $echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" - chmod +x $output - fi - exit 0 - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done - fi - - compiler_flags="$compiler_flags $add_flags" - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" - else - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - # GNU ar 2.10+ was changed to match POSIX; thus no paths are - # encoded into archives. This makes 'ar r' malfunction in - # this piecewise linking case whenever conflicting object - # names appear in distinct ar calls; check, warn and compensate. - if (for obj in $save_oldobjs - do - $echo "X$obj" | $Xsed -e 's%^.*/%%' - done | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 - $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 - AR_FLAGS=cq - fi - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~$old_archive_cmds\" - fi - fi - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlfiles="$newdlfiles $libdir/$name" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then - $echo >> $output "\ -relink_command=\"$relink_command\"" - fi - done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit 0 - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit 1 - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test "$#" -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 - fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit 1 - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit 0 - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - file=`$echo $file|${SED} 's,.exe$,,'` - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin*|*mingw*) - wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` - ;; - *) - wrapper=$file - ;; - esac - if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit 1 - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir="$tmpdir/libtool-$$" - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : - else - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyways - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` - ;; - esac - ;; - esac - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 --finish$current_libdirs' - else - exit 0 - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - exit 0 - - $echo "----------------------------------------------------------------------" - $echo "Libraries have been installed in:" - for libdir in $libdirs; do - $echo " $libdir" - done - $echo - $echo "If you ever happen to want to link against installed libraries" - $echo "in a given directory, LIBDIR, you must either use libtool, and" - $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - $echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - $echo " during execution" - fi - if test -n "$runpath_var"; then - $echo " - add LIBDIR to the \`$runpath_var' environment variable" - $echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $echo " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $echo - $echo "See any operating system documentation about shared libraries for" - $echo "more information, such as the ld(1) and ld.so(8) manual pages." - $echo "----------------------------------------------------------------------" - exit 0 - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit 1 - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - fi - $echo "$cmd$args" - exit 0 - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - rmdirs= - - origobjdir="$objdir" - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if (test -L "$file") >/dev/null 2>&1 \ - || (test -h "$file") >/dev/null 2>&1 \ - || test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - - if test "$mode" = uninstall; then - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. - fi - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - - # Read the .lo file - . $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" \ - && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" \ - && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$mode" = clean ; then - noexename=$name - case $file in - *.exe) - file=`$echo $file|${SED} 's,.exe$,,'` - noexename=`$echo $name|${SED} 's,.exe$,,'` - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$noexename - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=1 - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit 1 -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - --version print version information - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE. - -Report bugs to ." - exit 0 - ;; - -clean) - $echo \ -"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo \ -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; -esac - -$echo -$echo "Try \`$modename --help' for more information about other modes." - -exit 0 - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/openair1/EMOS/GUI/missing b/openair1/EMOS/GUI/missing deleted file mode 100755 index 6a37006e8f..0000000000 --- a/openair1/EMOS/GUI/missing +++ /dev/null @@ -1,336 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. - You can get \`$1Help2man' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/openair1/EMOS/GUI/mkinstalldirs b/openair1/EMOS/GUI/mkinstalldirs deleted file mode 100755 index d2d5f21b61..0000000000 --- a/openair1/EMOS/GUI/mkinstalldirs +++ /dev/null @@ -1,111 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -case $dirmode in - '') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi - ;; - *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi - ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# End: -# mkinstalldirs ends here diff --git a/openair1/EMOS/GUI/src/COPYING b/openair1/EMOS/GUI/src/COPYING deleted file mode 100644 index 818433ecc0..0000000000 --- a/openair1/EMOS/GUI/src/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/openair1/EMOS/GUI/src/Eurecom_Logo.png b/openair1/EMOS/GUI/src/Eurecom_Logo.png deleted file mode 100644 index a499d213a564487690f5dd978f33670d1af98cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2532 zcmV)o@$m8M>+5%QcDa1{wEzGK3Q0sk zRCwC#Tnl%jDiD?|P+PU_iZp|w{QrM>fjk^Qt>)~WyRlAsdXj)6^Zo{sWZ6Ln9dyt^ z2OV_KK?fal&_NmeWZBEjv=?>dqS{Cz--*$+*i1VSJ>%O&@AqMJs5VPpmHRMyv0Ze& zn=Hpf{3qV$Q=c8vJE@YrPDs2i(_2a}Sq;x7`^0)bUVd$+orn%^+eQC8?*hnvy>1u% z_dXKe@9mPme(Xc^&j&<*%CbHTZA34xTghg*-N0CODe%+(et$*u@s#d92V-X;Ugcoy z$H#emoS(FXZGJ9{ZN(2p@DDWWb^L((2}R$&Pr>q!h`zqy3Bw)wsJ0DlZn50!@*|(8ORDz!H>8_X%=!so{3M`xe-{g)PaM3|@Pv@&frFR9+PKE#C4WBAA2@hvG6*Pp zM!9D?)+K)z?>v&zbuZ5d<@zc)WD)GmJ{JByQ+mpM==4Jak0AK3V>kAxL2On(fZ*SD zAv)9#A^3e*{q={6UPJxsXCAj%Sk}C3rq6S|3(>brQSW4j=6v1?Pb`W(|K!hG9(2$_ zf3^9TO)uZ)9oRJfr}Nlf&x`OcFBak#|Hx|BUE1`0-z*Q8t8N0@7F-e)5W$Nm>>&Oy zCsRrUz@xZbO_-j#qX?O+bT3jX(@7~iswO`xtO@nQhBY(n34X&Zhpqk0aefM^!}{d* z4J0~rr;`ez7%%mg|+h5IR_UPMtO?=gClTljv1BTeHHg zQoH9;Pq3HB52>?)T>H%mu+zz$nwl=up^EJ0J&yTJWUs?hY!~~UfuOBHgKg(5Ilksy zs5-|`HQ2vsv_8jPj_*1jwSUdZG}k7&#yQ675C<@gL!Haf6orgOCoaHhvwjkA&jwN= zcXW}6jbc)>TlTy=b^U#{RBZ@#>%+2`8?;%YD?&3>^AnOBnDr7zVnpN=4MKpeT$(T$ zO4d9IV{m5c3UlL9T19B*!)yJWq;53wHsPSXc@#)E7xd2gBfZKr{PA>^!jYS7rSe)u zZV+7nem&G_klehVz>=CmaEj6Lq|q?K0;M24jcMwe}XM*@pFqq7iU)7Y7b zTRXqL>-A8DZn_Ml+#SkhB#3GU4};Sr#f8tV%wM2pn5PgS)l8ol!UV<1vKLt?y|hJV z6~E-elZi}rBN>beoel>G^L=2}3aw8i(ctqxW{wTQzj4h}k;z+4=kG{8>aw?I^=FlAlV6>anxOaCWNg6ilI&PK@pf-F%U4zR7Yb43C>Onuxvc7O8JNZslra+vY-~YnC(*v-$oyVd#gJ z%Sk!%2n)szLzV-vOC3~2?ETsu0yxp)2CLWlyILv+k%Omdx=&E2DIrDN?BG6sh1F9Z z3_gh=ZrOtQ5sLwQ9$tBlQ7+*=9F8zi)uFj7+4-K$fUsV#?phOr$MJfP<=O!4(3qRL zt=&pY{N-%9YOL>FGNc!K@6_MzEl*b^PrCeKCZo&CWHG>JiDS|04BOG_$v$zBmWx5? zlP0kt$~!*ZB9|`~_38jc5SKOMA%?(S0jX|n{gG|B6W6WpU9x4|XK)=SscZ_BX4hNL zCedp#+Zj10>QHgXO<+_PiU?%bKFG3<%L@&AA6NMGTG5?L_9L}r;&kTX6oZn9MlZDs z&?X(hHt=}5Ek@?y%1eT_+dy0XvWa&E<#mHG_c^>zT27U~pw+#LOS2MD7ow8J70k{M zLi`q*f)s1=vA0UHya}1dFxRC`E0A*R{ni^ze9GS44f|0uL>oXR2`9Coci{`0u}-l$ z+E49RbV}nefgF?Y*W=Vuw?D zP|ZCuu|Krq>3cTxt!mebE^OqXrePphxYqWnD4w;b$MA-la~$eK%tg9wwf@}Fzyf> u&Bj3o9dyt^2OV_KK?fal(4Oc&0R{kU!1yZ1=6Ig~0000 c #BFC0C3", -", c #BEC0C3", -"' c #BDBFC3", -") c #B2BEC4", -"! c #B2BEC5", -"~ c #B3BFC5", -"{ c #DBE6EA", -"] c #EFFAFE", -"^ c #F9FDFF", -"/ c #FEFFFE", -"( c #FBFBFB", -"_ c #F4F4F4", -": c #B8DEEC", -"< c #16B0EB", -"[ c #21B7F0", -"} c #22B8F0", -"| c #BFEAFA", -"1 c #FEFEFD", -"2 c #FEFEFE", -"3 c #87D7F3", -"4 c #02ADEF", -"5 c #0AAEED", -"6 c #D8F2FB", -"7 c #F0F0F1", -"8 c #EEEEEF", -"9 c #EEEFEF", -"0 c #74C9EA", -"a c #34B3E3", -"b c #35B3E3", -"c c #35B3E4", -"d c #37B6E6", -"e c #3DBCEB", -"f c #3DBCEC", -"g c #47C1EF", -"h c #F1FAFD", -"i c #C2C1C3", -"j c #BBBDC0", -"k c #BBBDC1", -"l c #BABDC0", -"m c #BCBEC1", -"n c #D3D6D8", -"o c #F9FDFD", -"p c #F8FDFD", -"q c #F9FDFC", -"r c #FAFDFD", -"s c #FDFEFF", -"t c #F6F6F7", -"u c #BEBFC1", -"v c #E1E1E1", -"w c #FFFFFE", -"x c #F6F6F6", -"y c #DCDCDE", -"z c #DDDDDF", -"A c #DCDDDE", -"B c #AFCDDA", -"C c #52B5DC", -"D c #5DB6D9", -"E c #5AB6DA", -"F c #59B6DA", -"G c #5CB6DA", -"H c #5BB6DA", -"I c #5BB6D9", -"J c #6BC6E8", -"K c #80D1F0", -"L c #80D1EF", -"M c #DCF2F8", -"N c #86D8F7", -"O c #13B2EF", -"P c #D6F1F9", -"Q c #FDFDFD", -"R c #5EC9F0", -"S c #06AEEF", -"T c #05AEEF", -"U c #07AFEF", -"V c #26B9F1", -"W c #EEF9FC", -"X c #FAFAFA", -"Y c #CBCDD0", -"Z c #C9C9CB", -"` c #C6C8CA", -" . c #A5C2CC", -".. c #9BC1CE", -"+. c #9AC0CD", -"@. c #9BC0CD", -"#. c #99BFCC", -"$. c #97BECB", -"%. c #98BECC", -"&. c #ABD2E0", -"*. c #C4ECF9", -"=. c #C5EDFB", -"-. c #CDEFFA", -";. c #FCFEFC", -">. c #F2F2F2", -",. c #C0C0C3", -"'. c #BEBEC1", -"). c #BEBEC0", -"!. c #BFBEC0", -"~. c #C0BFC0", -"{. c #E2E1E1", -"]. c #EDECEC", -"^. c #C4C4C6", -"/. c #C5C4C6", -"(. c #BCC1C5", -"_. c #9CBECB", -":. c #9BBECB", -"<. c #9DBECB", -"[. c #9EBECA", -"}. c #A5BCC4", -"|. c #A0BDC8", -"1. c #9BBECC", -"2. c #BFDDE9", -"3. c #CBEEFB", -"4. c #CAEEFB", -"5. c #CAEEFA", -"6. c #E9F8FB", -"7. c #AEE4F9", -"8. c #03ADEF", -"9. c #B1E3F4", -"0. c #FDFEFC", -"a. c #DAF3FC", -"b. c #9BDDF6", -"c. c #61CBF4", -"d. c #67CDF4", -"e. c #F7FDFD", -"f. c #FEFFFD", -"g. c #DDDCDD", -"h. c #DEDDDE", -"i. c #F7F6F6", -"j. c #F8F8F8", -"k. c #E5E6E7", -"l. c #E8E8E9", -"m. c #E3E4E5", -"n. c #E1E1E2", -"o. c #E5E4E5", -"p. c #D0CFCF", -"q. c #BAB9BA", -"r. c #C4C3C3", -"s. c #F8F7F8", -"t. c #D2D1D2", -"u. c #BCBBBB", -"v. c #C3C1C2", -"w. c #E7E9EA", -"x. c #E9E9EA", -"y. c #DDDDDD", -"z. c #EDEDED", -"A. c #DCDCDC", -"B. c #F0F1F2", -"C. c #7D7C7D", -"D. c #2A2728", -"E. c #2D2A2B", -"F. c #393637", -"G. c #DAD9DA", -"H. c #B3B2B2", -"I. c #312D2E", -"J. c #EEEEEE", -"K. c #514F50", -"L. c #858384", -"M. c #B0AEAF", -"N. c #292627", -"O. c #2F2C2D", -"P. c #312E2F", -"Q. c #2E2C2D", -"R. c #4B4848", -"S. c #CDCCCD", -"T. c #EAE9EA", -"U. c #343031", -"V. c #2C292A", -"W. c #757374", -"X. c #FBFAFB", -"Y. c #9F9D9E", -"Z. c #403D3E", -"`. c #3A3738", -" + c #4A4748", -".+ c #373435", -"++ c #6F6D6F", -"@+ c #F3F4F5", -"#+ c #C1C0C1", -"$+ c #4D4A4B", -"%+ c #363334", -"&+ c #4B4849", -"*+ c #373434", -"=+ c #333031", -"-+ c #A1A1A3", -";+ c #5D5A5B", -">+ c #2A2627", -",+ c #B3B1B2", -"'+ c #4A4A4C", -")+ c #282526", -"!+ c #BDBFC1", -"~+ c #484546", -"{+ c #7E7C7C", -"]+ c #E6E6E7", -"^+ c #E7E7E7", -"/+ c #E5E7E8", -"(+ c #807E7F", -"_+ c #4D4C4E", -":+ c #E2E1E2", -"<+ c #7E7C7D", -"[+ c #4F4E50", -"}+ c #F0F0F0", -"|+ c #D7D9DA", -"1+ c #434041", -"2+ c #4E4D4F", -"3+ c #F6F7F7", -"4+ c #BFBEBF", -"5+ c #2B2728", -"6+ c #CDCDCE", -"7+ c #E7E6E7", -"8+ c #F1F2F2", -"9+ c #F7F7F8", -"0+ c #767475", -"a+ c #B5B6B7", -"b+ c #FAF9F9", -"c+ c #BAB9B9", -"d+ c #615E5F", -"e+ c #ABAAAB", -"f+ c #2D292A", -"g+ c #989798", -"h+ c #F2F4F5", -"i+ c #F3F3F3", -"j+ c #7F7D7E", -"k+ c #221E1F", -"l+ c #CBCBCB", -"m+ c #322F30", -"n+ c #484646", -"o+ c #797778", -"p+ c #828081", -"q+ c #2B2829", -"r+ c #E8E8E8", -"s+ c #292526", -"t+ c #B7B5B6", -"u+ c #F8F9F9", -"v+ c #BDBCBD", -"w+ c #252122", -"x+ c #E6E6E6", -"y+ c #F7F8F8", -"z+ c #4B4A4B", -"A+ c #8B898A", -"B+ c #3F3D3F", -"C+ c #F2F2F3", -"D+ c #8D8B8C", -"E+ c #474445", -"F+ c #F5F5F5", -"G+ c #A5A4A4", -"H+ c #2F2B2C", -"I+ c #9B999A", -"J+ c #383536", -"K+ c #808183", -"L+ c #C6C5C5", -"M+ c #4D494A", -"N+ c #3E3A3B", -"O+ c #7B7A7A", -"P+ c #F7F6F7", -"Q+ c #292628", -"R+ c #D0D2D3", -"S+ c #F0EFEF", -"T+ c #EAEAEA", -"U+ c #B2B1B1", -"V+ c #8C8A8B", -"W+ c #3F3D3E", -"X+ c #B4B3B3", -"Y+ c #504D4E", -"Z+ c #737272", -"`+ c #5A5758", -" @ c #706D6E", -".@ c #F2F1F1", -"+@ c #3F3B3C", -"@@ c #868485", -"#@ c #7D7B7B", -"$@ c #474547", -"%@ c #F2F3F4", -"&@ c #555253", -"*@ c #696667", -"=@ c #999898", -"-@ c #D6D6D6", -";@ c #E3E2E2", -">@ c #E9E9E9", -",@ c #444142", -"'@ c #B5B4B4", -")@ c #585556", -"!@ c #7A7879", -"~@ c #322E2F", -"{@ c #353132", -"]@ c #C2C1C2", -"^@ c #5D5B5C", -"/@ c #737374", -"(@ c #C2C1C1", -"_@ c #D1D0D0", -":@ c #787676", -"<@ c #454243", -"[@ c #DFDFDF", -"}@ c #FEFDFE", -"|@ c #CCCBCC", -"1@ c #262223", -"2@ c #CFCECE", -"3@ c #747375", -"4@ c #636263", -"5@ c #868484", -"6@ c #F1F1F1", -"7@ c #3D393A", -"8@ c #B8B9BA", -"9@ c #737172", -"0@ c #7C7B7C", -"a@ c #AAA9A9", -"b@ c #5B595A", -"c@ c #696767", -"d@ c #D7D6D6", -"e@ c #D5D5D5", -"f@ c #EBEBEC", -"g@ c #A8A6A7", -"h@ c #8F8D8E", -"i@ c #E6E5E5", -"j@ c #CBCBCC", -"k@ c #282425", -"l@ c #B7B6B6", -"m@ c #D7D6D7", -"n@ c #E4E3E3", -"o@ c #A9A8A8", -"p@ c #DFDEDF", -"q@ c #383435", -"r@ c #9E9D9E", -"s@ c #373536", -"t@ c #B2B3B5", -"u@ c #6A6768", -"v@ c #494647", -"w@ c #ECEBEC", -"x@ c #CFCECF", -"y@ c #EAEAEB", -"z@ c #373335", -"A@ c #AAA8A9", -"B@ c #5C5A5B", -"C@ c #6B696A", -"D@ c #CBCACB", -"E@ c #D8D7D7", -"F@ c #595758", -"G@ c #6A696A", -"H@ c #D9D8D8", -"I@ c #878585", -"J@ c #9B9A9B", -"K@ c #3B3839", -"L@ c #9D9B9C", -"M@ c #343132", -"N@ c #D5D4D4", -"O@ c #BEBDBD", -"P@ c #272324", -"Q@ c #D8D8D9", -"R@ c #9A9B9C", -"S@ c #242122", -"T@ c #CECDCE", -"U@ c #9C9B9C", -"V@ c #3E3C3D", -"W@ c #F0F2F2", -"X@ c #231F20", -"Y@ c #DAD9D9", -"Z@ c #7B797A", -"`@ c #514E4F", -" # c #332F30", -".# c #A1A2A3", -"+# c #ABA9AA", -"@# c #262324", -"## c #CAC9C9", -"$# c #696768", -"%# c #5E5C5D", -"&# c #AFAEAF", -"*# c #CFD0D1", -"=# c #E2E4E5", -"-# c #9A9899", -";# c #EDEEEE", -"># c #4C4A4C", -",# c #716F6F", -"'# c #A9A7A8", -")# c #E4E4E4", -"!# c #C0BFBF", -"~# c #656466", -"{# c #686566", -"]# c #9E9C9D", -"^# c #F9F9F9", -"/# c #59595A", -"(# c #F1F0F1", -"_# c #B8B7B8", -":# c #B9B8B8", -"<# c #605D5E", -"[# c #4E4B4C", -"}# c #F4F3F3", -"|# c #959494", -"1# c #FAF9FA", -"2# c #605E60", -"3# c #8D8C8D", -"4# c #595657", -"5# c #403C3D", -"6# c #DADBDD", -"7# c #E8E7E8", -"8# c #E6E5E6", -"9# c #747172", -"0# c #706E6F", -"a# c #9C9A9B", -"b# c #6F6D6D", -"c# c #E3E3E3", -"d# c #CCCCCC", -"e# c #575455", -"f# c #ABADAE", -"g# c #9F9FA0", -"h# c #E6E6E5", -"i# c #302D2E", -"j# c #8E8C8D", -"k# c #2E2B2C", -"l# c #7A7878", -"m# c #C3C2C3", -"n# c #524F50", -"o# c #484547", -"p# c #C6C6C6", -"q# c #DFDEDE", -"r# c #4C494A", -"s# c #525051", -"t# c #A7A6A6", -"u# c #CDCCCC", -"v# c #DBDADA", -"w# c #D3D3D3", -"x# c #B6B4B5", -"y# c #A4A3A4", -"z# c #E2E4E4", -"A# c #D9D8D9", -"B# c #D8D7D8", -"C# c #FDFCFC", -"D# c #D0D0D0", -"E# c #EEEDEE", -"F# c #A5A3A4", -"G# c #AFAEAE", -"H# c #D3D2D3", -"I# c #C5C4C4", -"J# c #A7A5A5", -"K# c #D4D3D3", -"L# c #F3F4F4", -"M# c #F9F9FA", -"N# c #FBFAFA", -"O# c #D4D3D4", -"P# c #D2D2D4", -"Q# c #DEDEDF", -"R# c #EAE9E9", -"S# c #C3C4C6", -"T# c #E9EAEB", -"U# c #F5F5F6", -"V# c #BFC1C2", -"W# c #C6C5C6", -"X# c #ECECEC", -"Y# c #F6F7F8", -"Z# c #DBDBDC", -"`# c #FDFCFD", -" $ c #F4F3F2", -".$ c #D4D5D6", -"+$ c #E1E0E1", -"@$ c #E2E2E2", -"#$ c #BCBEBF", -"$$ c #DCDEE0", -"%$ c #CECECF", -"&$ c #D3D5D6", -"*$ c #C5C4C5", -"=$ c #CACACA", -"-$ c #ACABAC", -";$ c #BFBFC0", -">$ c #CECECE", -",$ c #C2C2C3", -"'$ c #DBDADB", -")$ c #C9C9CA", -"!$ c #C8C7C8", -"~$ c #CDCFD0", -"{$ c #C9CACA", -"]$ c #E3E3E4", -"^$ c #E8EAEA", -"/$ c #B7B6B7", -"($ c #E4E4E5", -"_$ c #C5C5C6", -":$ c #E0E0E0", -"<$ c #BBBABB", -"[$ c #D2D4D5", -"}$ c #CCCCCD", -"|$ c #CACACB", -"1$ c #FEFFFF", -"2$ c #E4E6E7", -"3$ c #D7D9DB", -"4$ c #D7D7D8", -"5$ c #D8DADB", -"6$ c #F9FAF9", -"7$ c #B0AFB0", -"8$ c #FEFDFD", -"9$ c #D7D7D7", -"0$ c #C9C9C9", -"a$ c #DEDEDE", -"b$ c #C9C8C9", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + @ # # # # # # # # # # # # # # # # # # # # $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % & * * * * * * * * * * * * * * * * * * * * = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ; ; > , ; ; ; ' ) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ) { ] ] ] ] ] ] ] ^ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( _ _ _ _ _ _ _ : < < < < < < < < < < < < < [ } } } } } } } | 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 9 9 9 9 9 9 0 a a a a a a b a c a c a d e e e e e e f g h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 i * * * * * * * * j j j j j j k l m l m j n o p p q q q r s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t u * * * * * * * * * * * * * * * * * * * * v w w w w w w w / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x y z z z z z A B C D D E F F D D G F F H I J K K K K K K L M / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 O P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q Q Q Q Q Q Q Q R S S S S S T S S S T S S S U U U U U U U V W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X Y Z Z Z Z Z Z ` ...+.@.@.#.$.@.@.@.%.#.@.&.*.=.=.=.=.=.=.-.;.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.,.* * * * * * * '.).!.!.!.!.!.!.!.!.!.!.~.{.1 1 1 1 1 1 / 1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].^././././././.(._.:.<.[.}.|.<.<.|.}.[.<.1.2.3.4.4.4.4.4.5.6.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Q Q Q Q Q Q Q 7.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.9.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.a.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w 0.b.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.d.e.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 f.. . . . . . . . . . . . . . . . . . . . f.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . - g.g.g.g.g.h.i.. . . . % h.j.. . . . k.l.. . . . . % h.g.g.m.X . . . . . . . Q n.g.g.g.g.g.o.2 . . . . . . >.p.q.r.{.2 . . . . . . . s.t.u.v.w.. . . . . . . . x.y.x . . . . z.A.B.. . . . . . . . ", -". . . . . . . . C.D.E.E.E.E.F.G.. . . . H.I.J.. . . ( K.L.. . . . . M.N.O.P.Q.R.S.. . . . . . T.U.V.E.E.E.E.W.Q . . . . X.Y.Z.`. +.+V.++@+. . . 2 2 #+$+%+&+*+=+-+2 . . . . . ( ;+>+,+. . . _ '+)+!+. . . . . . . . ", -". . . . . . . Q ~+{+]+]+]+^+/++ . . . 2 (+_+X . . . :+V.q.. . . . 2 <+[+- }+|+1+2+3+. . . . . 4+5+6+7+7+7+k.8+. . . . 9+0+`.a+b+. s.c+d+x . . . 2 e+f+g+h+. i+j+k+l+. . . . . ^+m+n+o+. . Q p+m+q+^+. . . . . . . . ", -". . . . . . . r+s+t+. . . . . . . . . u+_+<+2 . . . v+w+x+. . . . y+z+L.2 . . A+B+C+. . . . . D+E+F+. . . . . . . . . G+E.t.. . . . 2 i+2 . . . y.H+I++ . . . J.J+K+. . . . 2 L+O.Y.M+x . ~.N+O+~+P+. . . . . . . . ", -". . . . . . . 4+Q+R+S+S+S+S+b+. . . . T+q+U+. . . . V+W+Q . . . . T+D.X+. . + Y+Z++ . . . . 2 `+ @- S+S+S+.@. . . . F++@@@2 . . . . 2 . . . . . #@$@%@. . . . 2 &@*@. . . . 2 =@Y+-@P.;@>@,@'@)@!@2 . . . . . . . . ", -". . . . . . . A+k+~@{@{@{@=+S.. . . . ]@>+A.. . . X ^@/@. . . . . ~.w+(@v _@:@<@[@. . . . . B.~@>+{@{@{@{@d+}@. . . |@1@2@. . . . . . . . . . i.F.D+. . . . . Q $+3@. . . . + 4@5@6@7@8@9@0@}+V.a@. . . . . . . . . ", -". . . . . . Q b@c@d@d@d@d@e@X . . . . D+1+i+. . . f@=+g@. . . . . h@k+U.I.s+o+i@. . . . . . j@k@l@d@d@d@m@n@. . . . o@m+x+. . . . . . . . . . p@k@l@. . . . . J.q@r@. . . . i+s@t@Q u@$+v@w@x@k@m@. . . . . . . . . ", -". . . . . . y@z@A@. . . . . . . . . . B@C@. . . . D@1@E@. . . . . F@G@z.H@%+I@2 . . . . . . J@K@_ . . . . . . . . . L@M@>@. . . . . . . . . . N@1@O@. . . . . '@P@p@. . . . Q@O.h.. R@S@T@2 U@V@W@. . . . . . . . . ", -". . . . . . l+X@Y@. . . . . . . . . . E+p+. . . 2 Z@`@x . . . . }+ #.#. . +#@###. . . . . 2 $#%#. . . . . . . . . . &#w+*#. . . . . W@. . . . =#N.-#. . . . ;#>#,#. . . . . '#<@_ . )#!#. . ~#{#2 . . . . . . . . . ", -". . . . . . ]#.+}+^#^#^#^#Q . . . . . /#Y+(#. Q _#>+:#. . . . . T@s+t.. . j.<#[#}#. . . . >.Z.|#1#^#^#^#X . . . . . r+P.2#S+. . i+Y.3#. . . . + 4#5#6#. . 7#;+~+8#. . . . . 9#0#2 . . . . F+K@a#. . . . . . . . . . ", -". . . . . Q b#k@I.I.I.I.`.c#. . . . . d#{@.+e#~+F.f#2 . . . . . g#`._ . . . h#i#j#Q . . . Y@k#H+I.I.I.I.l#. . . . . . m#Z.=+&@n#F.o#p#. . . . . q#r#5+s#s#m+C@7#2 . . . . + v@t#. . . . . -@i#u#. . . . . . . . . . ", -". . . . . 2 v#_@_@_@_@_@w#( . . . . . 2 i@x#y#u.7#w . . . . . . z#A#. . . . . g.B#C#. . . >._@_@_@_@_@D#^+. . . . . . . E#!#F#G#H#j.. . . . . . . i+I#J#G#e@Q . . . . . . + K#6@. . . . . .@_@^#. . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . Q L#+ . . . . . . . . . . . . . . . . ^#. . . . . Q + . . . . . . . . . . . . . . . 2 X . . . . . . . . . . . Q . . . . ( 2 . . . . . . . . . . . . . . . 2 M#. . . . N#. . . . . . . . . . . . . . . . . ", -". . . . . O#P#- . . . + Q#x . . . 2 :+R#. . . . S#y.. . . . T#.@. . . U#A.+ . . . . . . . . . v V#. . . . i+A.( . . . - W#2 . . . c#^#2 . . X#Q#Q . . . Y#Z#`#. . . $.$. . . 1#$ . . . C#+$F+. . . . . . . . . . . ", -". . . . . @$#$>.. . . $$%$&$. . . }+D@W#. . . Q *$!#. . . . =$X . . . G.-$F+. . . . . . . . Q e+;$2 . . . >$,$6@. . . @$'$. . . Q )$Q . . 2 p#!$% . . . ~${$>@. . . q#]$. . . ^$v#. . . 6@/$_ . . . . . . . . . . . ", -". . . . . t.%$y+. . . ($_$6@. . . :$<$8#. . . % A.[$. . . w N@. . . . }$|$1$. . . . . . . . 2$^+3$Q . . . 4$5$6$. . . @$[@. . . ^#v#. . . ( 7$R+8$. . . 9$0$Q . . . a$j.. . . ]+}+. . . J.b$_ . . . . . . . . . . . ", -". . . . . 2 2 . . . . . 2 . . . . J.x 2 . . . . 2 2 . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . 2 2 . . . . 2 . . . . . . . . Q >@2 . . . . . 2 . . . . . . . . 2 2 . . . . . 2 . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/openair1/EMOS/GUI/src/FFT.c b/openair1/EMOS/GUI/src/FFT.c deleted file mode 100644 index f2c5c9545d..0000000000 --- a/openair1/EMOS/GUI/src/FFT.c +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ - -// ******* FFT function ********************************************************** - -#define PI 3.14159264359 -#define SWAP(a,b) tempr=(a); (a)=(b); (b)=tempr - -void FFT(float *data, // the vector with the outputs - // real part in even indexes - // imaginary part in the odd indexes - // for power conservation, the output should be normalized by 1/sqrt(nn) - unsigned long nn, // number of complex samples - int isign) // isign = 1 -> FFT, -1 -> iFFT - -{ - unsigned long n,mmax,m,j,istep,i; - float wtemp,wr,wpr,wpi,wi,theta; - float tempr,tempi; - - n = nn << 1; - j = 1; - - for( i = 1 ; i < n ; i += 2) { // The bit-reversal - if(j > i) { - SWAP(data[j-1],data[i-1]); // Exchanging the two complex number - SWAP(data[j],data[i]); - } - - m = n >> 1; - - while((m >= 2)&&(j > m)) { - j -= m; - m >>= 1; - } - - j += m; - } - - mmax = 2; - - while(n > mmax) { - istep = mmax << 1; - theta = isign*(-2*PI/mmax); - wtemp = sin(0.5 * theta); - wpr = -2.0 * wtemp * wtemp; - wpi = sin(theta); - wr = 1.0; - wi = 0.0; - - for (m = 1; m < mmax; m += 2) { - for (i = m; i <= n; i += istep) { - j = i + mmax; - tempr = wr*data[j-1] - wi*data[j]; - tempi = wr*data[j] + wi*data[j-1]; - data[j-1] = data[i-1] - tempr; - data[j] = data[i] - tempi; - data[i-1] += tempr; - data[i] += tempi; - } - - wr = (wtemp=wr)*wpr - wi*wpi + wr; - wi = wi*wpr + wtemp*wpi + wi; - } - - mmax = istep; - } -} - - diff --git a/openair1/EMOS/GUI/src/Makefile.am b/openair1/EMOS/GUI/src/Makefile.am deleted file mode 100644 index 279534da4a..0000000000 --- a/openair1/EMOS/GUI/src/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -include $(OPENAIR_HOME)/common/utils/Makefile.inc -TOP_DIR = $(OPENAIR1_DIR) -bin_PROGRAMS = emos_gui -emos_gui_SOURCES = emos_gui.c emos_gui_forms.c emos_callbacks.c \ -$(TOP_DIR)/PHY/CONFIG/openair_configure.c $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c FFT.c matrix_util.c - -# set the include path found by configure -INCLUDES = -I$(TOP_DIR) -I/usr/realtime/include -I/usr/include/X11 $(all_includes) - -# the library search path. -emos_gui_LDFLAGS = $(all_libraries) -noinst_HEADERS = emos_gui.h emos_gui_forms.h matrix_util.h -AM_CFLAGS = -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DEMOS -DNODE_RG -DCBMIMO1 -DPHY_CONTEXT -emos_gui_LDADD = -L/usr/lib -L/usr/local/lib -L/usr/realtime/lib\ - -L/usr/X11R6/lib -lm -lforms -llxrt -lpthread -lX11 -lXpm -lgps - diff --git a/openair1/EMOS/GUI/src/Makefile.in b/openair1/EMOS/GUI/src/Makefile.in deleted file mode 100644 index b326acd84e..0000000000 --- a/openair1/EMOS/GUI/src/Makefile.in +++ /dev/null @@ -1,446 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -bin_PROGRAMS = emos_gui$(EXEEXT) -subdir = src -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -PROGRAMS = $(bin_PROGRAMS) -am_emos_gui_OBJECTS = emos_gui.$(OBJEXT) emos_gui_forms.$(OBJEXT) \ - emos_callbacks.$(OBJEXT) openair_configure.$(OBJEXT) \ - openair_readconfigfile.$(OBJEXT) FFT.$(OBJEXT) \ - matrix_util.$(OBJEXT) -emos_gui_OBJECTS = $(am_emos_gui_OBJECTS) -emos_gui_DEPENDENCIES = -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(emos_gui_SOURCES) -DIST_SOURCES = $(emos_gui_SOURCES) -HEADERS = $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EXEEXT = @EXEEXT@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -TOP_DIR = $(OPENAIR1_DIR) -emos_gui_SOURCES = emos_gui.c emos_gui_forms.c emos_callbacks.c \ -$(TOP_DIR)/PHY/CONFIG/openair_configure.c $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c FFT.c matrix_util.c - - -# set the include path found by configure -INCLUDES = -I$(TOP_DIR) -I/usr/realtime/include -I/usr/include/X11 $(all_includes) - -# the library search path. -emos_gui_LDFLAGS = $(all_libraries) -noinst_HEADERS = emos_gui.h emos_gui_forms.h matrix_util.h -AM_CFLAGS = -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DEMOS -DNODE_RG -DCBMIMO1 -DPHY_CONTEXT -msse2 -mmmx -msse -emos_gui_LDADD = -L/usr/lib -L/usr/local/lib -L/usr/realtime/lib\ - -L/usr/X11R6/lib -lm -lforms -llxrt -lpthread -lX11 -lXpm -lgps - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -emos_gui$(EXEEXT): $(emos_gui_OBJECTS) $(emos_gui_DEPENDENCIES) - @rm -f emos_gui$(EXEEXT) - $(LINK) $(emos_gui_LDFLAGS) $(emos_gui_OBJECTS) $(emos_gui_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FFT.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emos_callbacks.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emos_gui.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emos_gui_forms.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix_util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openair_configure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openair_readconfigfile.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -openair_configure.o: $(TOP_DIR)/PHY/CONFIG/openair_configure.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_configure.o -MD -MP -MF "$(DEPDIR)/openair_configure.Tpo" -c -o openair_configure.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_configure.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_configure.Tpo" "$(DEPDIR)/openair_configure.Po"; else rm -f "$(DEPDIR)/openair_configure.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_configure.c' object='openair_configure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_configure.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_configure.c - -openair_configure.obj: $(TOP_DIR)/PHY/CONFIG/openair_configure.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_configure.obj -MD -MP -MF "$(DEPDIR)/openair_configure.Tpo" -c -o openair_configure.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_configure.Tpo" "$(DEPDIR)/openair_configure.Po"; else rm -f "$(DEPDIR)/openair_configure.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_configure.c' object='openair_configure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_configure.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; fi` - -openair_readconfigfile.o: $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_readconfigfile.o -MD -MP -MF "$(DEPDIR)/openair_readconfigfile.Tpo" -c -o openair_readconfigfile.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_readconfigfile.Tpo" "$(DEPDIR)/openair_readconfigfile.Po"; else rm -f "$(DEPDIR)/openair_readconfigfile.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' object='openair_readconfigfile.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_readconfigfile.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c - -openair_readconfigfile.obj: $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_readconfigfile.obj -MD -MP -MF "$(DEPDIR)/openair_readconfigfile.Tpo" -c -o openair_readconfigfile.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_readconfigfile.Tpo" "$(DEPDIR)/openair_readconfigfile.Po"; else rm -f "$(DEPDIR)/openair_readconfigfile.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' object='openair_readconfigfile.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_readconfigfile.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; fi` -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/openair1/EMOS/GUI/src/emos_callbacks.c b/openair1/EMOS/GUI/src/emos_callbacks.c deleted file mode 100644 index 2c82c9e9d5..0000000000 --- a/openair1/EMOS/GUI/src/emos_callbacks.c +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include -#include "emos_gui.h" -#include "emos_gui_forms.h" - diff --git a/openair1/EMOS/GUI/src/emos_gui.c b/openair1/EMOS/GUI/src/emos_gui.c deleted file mode 100644 index 3921b5cb0d..0000000000 --- a/openair1/EMOS/GUI/src/emos_gui.c +++ /dev/null @@ -1,1808 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#ifdef HAVE_CONFIG_H -#include -#endif - -// System includes -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Realtime includes -//#include -#include - -// Xform includes -#include - -// Openair includes -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -#include "PHY/CONFIG/vars.h" -#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - -// Program includes -#include "emos_gui.h" -#include "emos_gui_forms.h" -#include "matrix_util.h" - - -// Definition of the main form -FD_main_frm *main_frm; -Window main_wnd; -FD_config_dialog *config_frm; -Window config_wnd; - -// Diverse variables and default values -int power = TERM_OFF; -int record = REC_OFF; -int record_multi = REC_OFF; -int terminal_mode = TERM_MODE_SINGL; -int file_index = 0; -int emos_ready = EMOS_READY; -int openair_dev_fd; -double screen_refresh_period = 1; // in seconds -//int screen_refresh_in_frames = 0; // in frames -int fifo_fd; -int frame_counter = 0; -int rec_frame_counter = 0; -FILE *dumpfile_id = NULL; -char data_buffer[CHANNEL_BUFFER_SIZE]; -int values_in_memory=0; -long long start_time; -int num_tx_ant = 2; -int num_ch = 2; -int terminal_idx = 0; -int pdu_errors[2] = {0,0}; -int pdu_errors_last[2] = {0,0}; -int domain_selector = TIME_DOMAIN; -int noise_selector = SNR; -int chsch_index; -int is_cluster_head = 0; -int node_id = 8; -int tx_gain = 0; -CHBCH_RX_t rxmode = ML; - -unsigned char tx_gain_table_c[36] = { - 113, 111, 0, 0, //-20dBm - 119, 118, 0, 0, //-15dBm - 126, 125, 0, 0, //-10dBm - 133, 131, 0, 0, //-5dBm - 139, 138, 0, 0, //0dBm - 147, 145, 0, 0, //5dBm - 152, 151, 0, 0, //10dBm - 160, 158, 0, 0, //15dBm - 177, 173, 30, 17 -}; //20dBm -unsigned int *tx_gain_table = (unsigned int*) tx_gain_table_c; - - -fifo_read_emos *fifo_output = NULL; -char *fifo_buffer = NULL; -char *fifo_ptr = NULL; -char date_string[1024] = "date: "; -char dumpfile_dir[1024] = "$HOME/EMOS/data/"; - -// GUI variables -float power1_memory[2][SCREEN_MEMORY_SIZE]; -float power2_memory[2][SCREEN_MEMORY_SIZE]; -float noise1_memory[2][SCREEN_MEMORY_SIZE]; -float noise2_memory[2][SCREEN_MEMORY_SIZE]; -float snr1_memory[2][SCREEN_MEMORY_SIZE]; -float snr2_memory[2][SCREEN_MEMORY_SIZE]; -// float bw1_memory[]; -// float bw2_memory[]; -float capacity_memory[SCREEN_MEMORY_SIZE]; -float time_memory[SCREEN_MEMORY_SIZE]; -float ***channel = NULL; // this variable is of size [NB_ANTENNAS](num_tx_ant][NUMBER_OF_OFDM_CARRIERS_EMOS] -struct complexf ***channelT = NULL; // this variable is of size [NUMBER_OF_OFDM_CARRIERS_EMOS][NB_ANTENNAS](num_tx_ant] -float *subcarrier_ind = NULL; -float *delay_ind = NULL; - -//Openair variables -PHY_CONFIG PHY_config_mem; -PHY_CONFIG *PHY_config; - -// GPS -//char gpsd_buffer[GPSD_BUFFER_SIZE]; -//int gpsd_fd; -struct gps_data_t *gps_data = NULL; -struct gps_fix_t dummy_gps_data; - -// Function prototypes -void exit_callback(FL_OBJECT *ob, long user_data); -void power_callback(FL_OBJECT *ob, long user_data); -void terminal_mode_callback(FL_OBJECT *ob, long user_data); -//void use_gps_callback(FL_OBJECT *ob, long user_data); -//void set_origin_callback(FL_OBJECT *ob, long user_data); -void refresh_callback(FL_OBJECT *ob, long user_data); -void record_callback(FL_OBJECT *ob, long user_data); -void new_data_callback(FL_OBJECT *ob, long user_data); -void time_freq_callback(FL_OBJECT *ob, long user_data); -void noise_snr_callback(FL_OBJECT *ob, long user_data); -void gps_data_callback(FL_OBJECT *ob, long user_data); - -void initialize_interface(); -void stop_interface(); -void refresh_interface(); -int open_dumpfile(); - -void message(const char *msg); -void error(const char *msg); - -int mac_phy_init(); - -// void get_gps_time_position(int socknum, char *buffer, int buffersize); -// int open_gpsd_socket(); -// void update_gps_data(struct gps_data_t *gps_data, char *buf); - -int help() -{ - printf("Valid options + default values: -c %d (# CHs), -n %d (# TX ant), -g %d (TX gain (dBm)), -h (help)\n", num_ch, num_tx_ant, tx_gain); -} - -int main(int argc, char *argv[]) -{ - char temp_text[1024]; - char c; - int ar,at,as; - long temp = 0; - int ioctl_result; - - printf("sizeof(fifo_read_emos) = %x\n",sizeof(fifo_read_emos)); - printf("sizeof(gps_fix_t) = %x\n",sizeof(struct gps_fix_t)); - - while ((c = getopt (argc, argv, "hn:c:g:")) != -1) { - switch (c) { - case 'h': - help (); - exit (1); - - /* - case 'b': - is_cluster_head = atoi (optarg); - break; - case 'i': - node_id = atoi (optarg); - break; - */ - case 'g': - tx_gain = atoi (optarg); - break; - - case 'n': - num_tx_ant = atoi (optarg); - break; - - case 'c': - num_ch = atoi (optarg); - break; - - default: - help (); - exit (-1); - break; - } - } - - // Initialize the buffers for the channels according to the number of TX antennas - channel = (float***) malloc(NB_ANTENNAS_RX * sizeof(float**)); - - if (!channel) - error("Cannot allocate channel (1)"); - - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) { - // Loops over the receive antennas - channel[ar] = (float**) malloc(num_ch * num_tx_ant * sizeof(float*)); - - if (!channel[ar]) - error("Cannot allocate channel (2)"); - - for (at = 0; at < num_tx_ant*num_ch; at++) { - // Loops over the transmit antennas - channel[ar][at] = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float)); - - if (!channel[ar][at]) - error("Cannot allocate channel (3)"); - } - } - - channelT = (struct complexf***) malloc(NUMBER_OF_USEFUL_CARRIERS_EMOS * sizeof(struct complexf**)); - - if (!channelT) - error("Cannot allocate channelT (1)"); - else { - for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++) { - channelT[as] = (struct complexf**) malloc(NB_ANTENNAS_RX * sizeof(struct complexf*)); - - if (!channelT[as]) - error("Cannot allocate channelT (2)"); - else { - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) { - // Loops over the transmit antennas - channelT[as][ar] = (struct complexf*) malloc(num_tx_ant * sizeof(struct complexf)); - - if (!channelT[as][ar]) - error("Cannot allocate channelT (3)"); - } - } - } - } - - subcarrier_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float)); - - if (!subcarrier_ind) - error("Cannot allocate subcarrier_ind"); - - for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++) - subcarrier_ind[as] = //(NUMBER_OF_OFDM_CARRIERS_EMOS/2 + as * num_tx_ant)%NUMBER_OF_OFDM_CARRIERS_EMOS; - as * num_tx_ant - NUMBER_OF_OFDM_CARRIERS_EMOS/2; - - delay_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float)); - - if (!delay_ind) - error("Cannot allocate delay_ind"); - - for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++) - delay_ind[as] = as / 7.68e6; - - fl_initialize(&argc, argv, "EMOS terminal GUI", 0, 0); - main_frm = create_form_main_frm(); - config_frm = create_form_config_dialog(); - - // Get time stamp of startup time (for time difference calculations) - start_time = rt_get_time_ns(); - - fl_set_timer(main_frm->refresh_timer, screen_refresh_period); - fl_suspend_timer(main_frm->refresh_timer); - - //fl_set_timer(main_frm->gps_timer, 0.05); - //fl_suspend_timer(main_frm->gps_timer); - - stop_interface(); - - main_wnd = fl_show_form(main_frm->main_frm, FL_PLACE_HOTSPOT, FL_FULLBORDER, "EMOS terminal GUI"); - - // Check for openair device - if ((openair_dev_fd = open("/dev/openair0", O_RDWR,0)) < 0) { - //Could not find the module - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - - emos_ready = EMOS_NOT_READY; - - error("Openair module not found. Load modules first!"); - } else { - mac_phy_init(); - } - - //screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3); - - // set the default dumfile directory - sprintf(dumpfile_dir,"%s/EMOS/data/",getenv("HOME")); - printf("Default directory = %s\n",dumpfile_dir); - - fl_do_forms(); - - return EXIT_SUCCESS; -} - - -void initialize_interface() -{ - char temp_label[1024]; - - // Pannel widgets - ///////////////////////////// - - // Screen widgets - ///////////////////////////// - - // Labels - fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_ON); - - /* fl_set_object_color(main_frm->bw1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->bw1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->bw2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->bw2_xyp, SCREEN_COLOR_ON);*/ - - fl_set_object_color(main_frm->ch11_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch11_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch12_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch12_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch13_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch13_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch14_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch14_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch21_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch21_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch22_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch22_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch23_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch23_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch24_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch24_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->cap_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->cap_xyp, SCREEN_COLOR_ON); - - // Labels - sprintf(temp_label, "idx:"); - fl_set_object_label(main_frm->idx_lbl, temp_label); - fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_ON); - - // Terminal mode indicator - fl_set_object_lcolor(main_frm->mode_lbl, SCREEN_COLOR_ON); - - if(domain_selector == TIME_DOMAIN) { - fl_set_button(main_frm->time_domain_btn,1); - fl_set_button(main_frm->freq_domain_btn,0); - } else { - fl_set_button(main_frm->time_domain_btn,0); - fl_set_button(main_frm->freq_domain_btn,1); - } - - if(noise_selector == N0) { - fl_set_button(main_frm->n0_btn,1); - fl_set_button(main_frm->snr_btn,0); - } else { - fl_set_button(main_frm->n0_btn,0); - fl_set_button(main_frm->snr_btn,1); - } - - if(terminal_mode == TERM_MODE_SINGL) { - sprintf(temp_label, "Mode: SGL"); - fl_set_object_label(main_frm->mode_lbl, temp_label); - fl_set_object_color(main_frm->single_led, LED_COLOR_ON, LED_COLOR_OFF); - fl_set_object_color(main_frm->multi_led, LED_COLOR_OFF, LED_COLOR_OFF); - } else { - sprintf(temp_label, "Mode: MLT"); - fl_set_object_label(main_frm->mode_lbl, temp_label); - fl_set_object_color(main_frm->single_led, LED_COLOR_OFF, LED_COLOR_OFF); - fl_set_object_color(main_frm->multi_led, LED_COLOR_ON, LED_COLOR_OFF); - } - - // Recording indicator OFF - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Sync indicator - fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Error indicator - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Buffer indicator - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF); - - // CBMIMO indicator - if(emos_ready) { - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - } else { - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - // GPS indicator - fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_OFF); - - // Fix indicator - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF); - - // X indicator - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF); - - // Y indicator - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF); - - // Date indicator - fl_set_object_label(main_frm->date_lbl, date_string); - fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_ON); - - // Refresh interval indicator - fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_ON); - sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period); - fl_set_object_label(main_frm->refresh_lbl, temp_label); - fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period); - - // BLER indicator - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_OFF); - - // REC'd frames indicator - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF); - - // RX mode indicator - fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_OFF); - - // Messages - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - - switch(terminal_idx) { - case 1: - fl_set_button(main_frm->terminal_btn1,1); - break; - - case 2: - fl_set_button(main_frm->terminal_btn2,1); - break; - - case 3: - fl_set_button(main_frm->terminal_btn3,1); - break; - - case 4: - fl_set_button(main_frm->terminal_btn4,1); - break; - } - - switch(rxmode) { - case SINGLE: - fl_set_button(main_frm->single_btn,1); - break; - - case MMSE: - fl_set_button(main_frm->mmse_btn,1); - break; - - case ML: - fl_set_button(main_frm->ml_btn,1); - break; - } - - - // fl_set_object_color(main_frm->const1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - // fl_set_object_color(main_frm->const2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - // fl_set_object_lcolor(main_frm->const1_xyp, SCREEN_COLOR_ON); - // fl_set_object_lcolor(main_frm->const2_xyp, SCREEN_COLOR_ON); - - fl_deactivate_object(main_frm->num_sym_dial); - fl_deactivate_object(main_frm->num_sym_plus); - fl_deactivate_object(main_frm->num_sym_minus); - //fl_deactivate_object(main_frm->use_gps_btn); - //fl_deactivate_object(main_frm->set_origin_btn); -} - -void stop_interface() -{ - // Pannel widgets - ///////////////////////////// - fl_set_object_color(main_frm->single_led, LED_COLOR_OFF, LED_COLOR_OFF); - fl_set_object_color(main_frm->multi_led, LED_COLOR_OFF, LED_COLOR_OFF); - - // Screen widgets - ///////////////////////////// - - // Labels - fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_BG); - - // Graphs - fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_BG); - - /* fl_set_object_color(main_frm->bw1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->bw1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->bw2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->bw2_xyp, SCREEN_COLOR_BG);*/ - - fl_set_object_color(main_frm->ch11_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch11_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch12_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch12_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch13_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch13_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch14_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch14_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch21_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch21_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch22_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch22_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch23_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch23_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch24_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch24_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->cap_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->cap_xyp, SCREEN_COLOR_BG); - - // Labels - - // Index indicator - fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_BG); - - // Terminal mode indicator - fl_set_object_lcolor(main_frm->mode_lbl, SCREEN_COLOR_BG); - - // Recording indicator OFF - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Sync indicator - fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Error indicator - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Buffer indicator - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_BG); - - // CBMIMO indicator - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // GPS indicator - fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Fix indicator - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - - // X indicator - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_BG); - - // Y indicator - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_BG); - - // Date indicator - fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_BG); - - // Refresh interval indicator - fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_BG); - - // BLER indicator - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_BG); - - // REC'd frames indicator - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_BG); - - // RX mode indicator - fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_BG); - - // Messages - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_BG); - - /* fl_set_object_color(main_frm->const1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->const2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->const1_xyp, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->const2_xyp, SCREEN_COLOR_BG);*/ - -} - -void refresh_interface() -{ - char temp_label[1024]; - int i,ar,at,as,ac, gps_error; - float disp_max_power = 0; - struct complexf channel_temp[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]; //frequency response of one link of the MIMO channel - struct complexf channel_temp2[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant/2]; //frequency response of one link of the MIMO channel - struct complexf **IpHH=NULL; //matrix used for the capacity of one subcarrier C[i] = log(det(IpHH)) - float norm = 0; - double snr_lin; - float capacity4x2 = 0; //overall capacity of the 4x2 frequency selcective MIMO channel - static RTIME last_timestamp = (RTIME) 0; - int disp_min_power = 30; - - IpHH = (struct complexf **) malloc(NB_ANTENNAS_RX * sizeof(struct complexf *)); - - for (ar=0; archannel_f_unpacked[ac][ar][as*num_tx_ant + at].r; - channel_temp[as].i = (float) fifo_output->channel_f_unpacked[ac][ar][as*num_tx_ant + at].i; - } - - if(domain_selector == TIME_DOMAIN) { - // IFFT of the freq domain channel - FFT((float*) channel_temp, NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, -1); - - // normalize by 1/sqrt(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant) - for (i=0; i disp_max_power) - disp_max_power = channel[ar][at][as]; - } - } - } - } - - disp_max_power = 90; - - // Lost frames - pdu_errors_last[0] = pdu_errors[0]; - pdu_errors[0] = fifo_output->pdu_errors[0]; - pdu_errors_last[1] = pdu_errors[1]; - pdu_errors[1] = fifo_output->pdu_errors[1]; - - // Capacity - // We calculate the capacity of the frequency selective channel according to [Eq. (4.58), Paulraj et al. 2003]: - // C = 1/(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant) sum_{i=0}^{NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant} - // log2(det(I + 1/num_tx_ant H H^H)) - - // Reshape the channel stored in fifo_output->channel_f_unpacked and calculate norm - norm = 0; - - for (as=0; aschannel_f_unpacked[0][ar][(176+as*num_tx_ant)%NUMBER_OF_OFDM_CARRIERS_EMOS + at].r; - channelT[as][ar][at].i = (float) fifo_output->channel_f_unpacked[0][ar][(176+as*num_tx_ant)%NUMBER_OF_OFDM_CARRIERS_EMOS + at].i; - /* channelT[as][ar][at].r = (float) 1; - channelT[as][ar][at].i = (float) 0; */ - } - } - - norm += norm_fro_sq(channelT[as],NB_ANTENNAS_RX,num_tx_ant); - } - - //printf("H = [%g %g; %g %g]\n",channelT[0][0][0].r,channelT[0][0][1].r,channelT[0][1][0].r,channelT[0][1][1].r); - - norm /= (NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant); - //printf("norm=%g\n",norm); - - snr_lin = (pow(10,(double) (fifo_output->PHY_measurements.rx_power_dB[0] - fifo_output->PHY_measurements.n0_power_dB[0])/10) + - pow(10,(double) (fifo_output->PHY_measurements.rx_power_dB[1] - fifo_output->PHY_measurements.n0_power_dB[1])/10))/2; - - // calculate capacity for each subcarrier and take the mean - capacity4x2 = 0; - - for (as=0; astimestamp) { - //printf("rx_power=%d, noise_power=%d, snr=%d\n",fifo_output->rx_power_db[0],fifo_output->n0_power_db[0],fifo_output->rx_power_db[0]-fifo_output->n0_power_db[0]); - - /* - if(values_in_memory < SCREEN_MEMORY_SIZE) - { - // Initial vector filling - time_memory[values_in_memory] = (float)(fifo_output->timestamp - start_time) / (float)1e9; - power1_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][0]; - power2_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][1]; - noise1_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][0]; - noise2_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][1]; - //noise2_memory[values_in_memory] = ((float) (pdu_errors - pdu_errors_last)/(screen_refresh_period/2.6667e-3)); - snr1_memory[chsch_index-1][values_in_memory] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][0] - fifo_output->PHY_measurements.n0_power_dB[chsch_index][0]); - snr2_memory[chsch_index-1][values_in_memory] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][1] - fifo_output->PHY_measurements.n0_power_dB[chsch_index][1]); - capacity_memory[values_in_memory] = capacity4x2; - values_in_memory++; - } - else - */ - - // FIFO vector filling - for (i = 0; i < SCREEN_MEMORY_SIZE - 1; i++) { - time_memory[i] = time_memory[i+1]; - - for (chsch_index=0; chsch_index<2; chsch_index++) { - power1_memory[chsch_index][i] = power1_memory[chsch_index][i+1]; - power2_memory[chsch_index][i] = power2_memory[chsch_index][i+1]; - noise1_memory[chsch_index][i] = noise1_memory[chsch_index][i+1]; - noise2_memory[chsch_index][i] = noise2_memory[chsch_index][i+1]; - snr1_memory[chsch_index][i] = snr1_memory[chsch_index][i+1]; - snr2_memory[chsch_index][i] = snr2_memory[chsch_index][i+1]; - } - - capacity_memory[i] = capacity_memory[i+1]; - } - - - time_memory[SCREEN_MEMORY_SIZE - 1] = (float)(fifo_output->timestamp - start_time) / (float)1e9; - - for (chsch_index=0; chsch_index<2; chsch_index++) { - if (!is_cluster_head) { - power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index+1][0]; - power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index+1][1]; - noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][0]; - noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][1]; - snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index+1][0] - - fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][0]); - snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index+1][1] - - fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][1]); - } else { - power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][0]; - power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][1]; - noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][0]; - noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][1]; - snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][0] - - fifo_output->PHY_measurements.n0_power_dB[chsch_index][0]); - snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][1] - - fifo_output->PHY_measurements.n0_power_dB[chsch_index][1]); - } - } - - capacity_memory[SCREEN_MEMORY_SIZE - 1] = capacity4x2; - - values_in_memory = SCREEN_MEMORY_SIZE; - } - - last_timestamp = fifo_output->timestamp; - - // Pannel widgets - ///////////////////////////// - - // Screen widgets - ///////////////////////////// - - // Power meters - fl_set_xyplot_data(main_frm->pwr1_xyp, time_memory, power1_memory[0], values_in_memory, "", "time (s)", "dBm"); - fl_add_xyplot_overlay(main_frm->pwr1_xyp, 1, time_memory, power1_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->pwr1_xyp, -100, -40); - fl_set_xyplot_data(main_frm->pwr2_xyp, time_memory, power2_memory[0], values_in_memory, "", "time (s)", "dBm"); - fl_add_xyplot_overlay(main_frm->pwr2_xyp, 1, time_memory, power2_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->pwr2_xyp, -100, -40); - - if (noise_selector == N0) { - fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, noise1_memory[0], values_in_memory, "", "time (s)", "dB"); - fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, noise1_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40); - fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, noise2_memory[0], values_in_memory, "", "time (s)", "dB"); - fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, noise2_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40); - //fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 1); - } else { - fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, snr1_memory[0], values_in_memory, "", "time (s)", "dB"); - fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, snr1_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40); - fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, snr2_memory[0], values_in_memory, "", "time (s)", "dB"); - fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, snr2_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40); - } - - // Channel response - if(domain_selector == FREQ_DOMAIN) { - // Frequency domain plots - fl_set_xyplot_data(main_frm->ch11_xyp, subcarrier_ind, channel[0][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch11_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch11_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch11_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch12_xyp, subcarrier_ind, channel[0][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch12_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch12_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch12_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch21_xyp, subcarrier_ind, channel[1][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch21_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch21_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch21_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch22_xyp, subcarrier_ind, channel[1][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch22_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch22_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch22_xyp, disp_min_power, disp_max_power); - - if ((num_tx_ant*num_ch)==4) { - fl_set_xyplot_data(main_frm->ch13_xyp, subcarrier_ind, channel[0][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch13_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch13_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch13_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch13_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch14_xyp, subcarrier_ind, channel[0][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch14_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch14_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch14_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch14_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch23_xyp, subcarrier_ind, channel[1][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch23_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch23_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch23_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch23_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch24_xyp, subcarrier_ind, channel[1][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch24_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch24_xyp, -1, -1); - fl_set_xyplot_xbounds(main_frm->ch24_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch24_xyp, disp_min_power, disp_max_power); - } - } else { - // Time domain plots - fl_set_xyplot_data(main_frm->ch11_xyp, delay_ind, channel[0][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch11_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch11_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch11_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch12_xyp, delay_ind, channel[0][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch12_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch12_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch12_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch21_xyp, delay_ind, channel[1][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch21_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch21_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch21_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch22_xyp, delay_ind, channel[1][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch22_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch22_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch22_xyp, disp_min_power, disp_max_power); - - if ((num_tx_ant*num_ch)==4) { - fl_set_xyplot_data(main_frm->ch13_xyp, delay_ind, channel[0][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch13_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch13_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch13_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch14_xyp, delay_ind, channel[0][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch14_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch14_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch14_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch23_xyp, delay_ind, channel[1][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch23_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch23_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch23_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch24_xyp, delay_ind, channel[1][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB"); - fl_set_xyplot_xtics(main_frm->ch24_xyp, 2, 1); - fl_set_xyplot_xbounds(main_frm->ch24_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]); - fl_set_xyplot_ybounds(main_frm->ch24_xyp, disp_min_power, disp_max_power); - } - } - - // BLER - if ((is_cluster_head) || (fifo_output->rx_mode==0)) { - sprintf(temp_label, "BLER: %f", ((double) (pdu_errors[0] - pdu_errors_last[0])/(screen_refresh_period/0.0031508))); - fl_set_object_label(main_frm->bler_lbl, temp_label); - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_ON); - } else { - sprintf(temp_label, "BLER: %f, %f", ((double) (pdu_errors[0] - pdu_errors_last[0])/(screen_refresh_period/0.0031508)), - ((double) (pdu_errors[1] - pdu_errors_last[1])/(screen_refresh_period/0.0031508))); - fl_set_object_label(main_frm->bler_lbl, temp_label); - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_ON); - } - - // RX mode - if (!is_cluster_head) { - switch (fifo_output->rx_mode) { - case 0: - sprintf(temp_label, "RX mode: SINGLE"); - break; - - case 1: - sprintf(temp_label, "RX mode: MMSE"); - break; - - case 2: - sprintf(temp_label, "RX mode: ML"); - break; - - default: - sprintf(temp_label, "RX mode: %d",fifo_output->rx_mode); - } - - fl_set_object_label(main_frm->rx_mode_lbl, temp_label); - fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_ON); - } - - // Capacity - fl_set_xyplot_data(main_frm->cap_xyp, time_memory, capacity_memory, values_in_memory, "", "time (s)", "Bits/sec/Hz"); - fl_set_xyplot_ybounds(main_frm->cap_xyp, 0, 10); - - - } - - // update GPS - if(gps_data) { - if (gps_data->online) { - switch(gps_data->fix.mode) { - case MODE_2D: - // Fix indicator - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "2D"); - - // X indicator - sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude); - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lat_lbl, temp_label); - - // Y indicator - sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude); - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lon_lbl, temp_label); - - break; - - case MODE_3D: - // Fix indicator - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "3D"); - - // X indicator - sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude); - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lat_lbl, temp_label); - - // Y indicator - sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude); - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lon_lbl, temp_label); - break; - - default: - // STATUS_NO_FIX: - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "NO"); - - // X indicator - sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude); - fl_set_object_label(main_frm->gps_lat_lbl, temp_label); - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF); - - // Y indicator - sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude); - fl_set_object_label(main_frm->gps_lon_lbl, temp_label); - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF); - break; - } - } else { - // STATUS_NO_FIX: - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "NO"); - - //printf("GPS not online\n"); - } - } - - for (ar=0; armsg_text, msg); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); -} - -void error(const char *msg) -{ - fprintf(stderr,msg); - fprintf(stderr,"\n"); - fl_set_object_label(main_frm->msg_text, msg); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); -} -// -// EXIT function -// -void exit_callback(FL_OBJECT *ob, long user_data) -{ - char temp_text[1024]; - int ar,at,as; - - if (power) { - //message("Turn the terminal off with prior to exiting."); - sprintf(temp_text, "Turn the terminal off with prior to exiting."); - fl_set_object_label(main_frm->msg_text, temp_text); - } else { - printf("exiting normally.\n"); - - // Openair device - close(openair_dev_fd); - - // Free the channel buffer memory - /* - if (num_tx_ant == 2) - { - free(ch11); - free(ch12); - free(ch21); - free(ch22); - } - else if (num_tx_ant == 4) - { - free(ch11); - free(ch12); - free(ch13); - free(ch14); - free(ch21); - free(ch22); - free(ch23); - free(ch24); - } - */ - - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) { - // Loops over the receive antennas - for (at = 0; at < num_tx_ant*num_ch; at++) { - // Loops over the transmit antennas - free(channel[ar][at]); - } - - free(channel[ar]); - } - - free(channel); - channel = NULL; - - for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++) { - // Loops over the receive antennas - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) { - // Loops over the transmit antennas - free(channelT[as][ar]); - } - - free(channelT[as]); - } - - free(channelT); - channelT = NULL; - free(subcarrier_ind); - subcarrier_ind = NULL; - free(delay_ind); - delay_ind = NULL; - - exit(0); - } -} - -void power_callback(FL_OBJECT *ob, long user_data) -{ - int ioctl_result; - char temp_text[1024]; - - if (emos_ready) { - // Turns on and off the acquisition - if (!power) { - if (terminal_idx!=0) { - // Turn the receiver on - unsigned int fc = 0; - unsigned int frequency = 1; - //unsigned char gains[4]; - - //gains[0] = 177; - //gains[1] = 173; - //gains[2] = 30; - //gains[3] = 17; - - ioctl_result=ioctl(openair_dev_fd,openair_SET_TX_GAIN,&tx_gain_table[tx_gain/5+4]); - ioctl_result=ioctl(openair_dev_fd,openair_SET_RX_MODE,&rxmode); - - if (terminal_idx==1) { - is_cluster_head = 1; - node_id = 0; - fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5); - ioctl_result+=ioctl(openair_dev_fd, openair_START_1ARY_CLUSTERHEAD, &fc); - } else if (terminal_idx==2) { - is_cluster_head = 2; - node_id = 1; - fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5); - ioctl_result+=ioctl(openair_dev_fd, openair_START_2ARY_CLUSTERHEAD, &fc); - } else if (terminal_idx==3) { - is_cluster_head = 0; - node_id = 8; - fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5); - ioctl_result+=ioctl(openair_dev_fd, openair_START_NODE, &fc); - } else if (terminal_idx==4) { - is_cluster_head = 0; - node_id = 9; - fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5); - ioctl_result+=ioctl(openair_dev_fd, openair_START_NODE, &fc); - } else - error("Unknown terminal index"); - - if (ioctl_result != 0) { - printf(temp_text, "Error starting terminal mode!"); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - // Open the EMOS FIFO - fifo_fd = open(CHANSOUNDER_FIFO_DEV, O_RDONLY); - - if (fifo_fd < 0) { - printf(temp_text, "Error opening the EMOS FIFO!"); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - // flush the FIFO - if (rtf_reset(fifo_fd)) - error("Error reseting FIFO"); - - // Ties the FIFO handling routine - fl_add_io_callback(fifo_fd, FL_READ, &new_data_callback, NULL); - - // open GPS - gps_data = gps_open("127.0.0.1","2947"); - - if (gps_data == NULL) { - fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - error("Could not open GPS"); - } else { - if (gps_query(gps_data, "w+x\n") != 0) { - //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data); - error("Error sending command to GPS"); - } else - fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - } - - if (gps_data) - fl_add_io_callback(gps_data->gps_fd, FL_READ, &gps_data_callback, NULL); - - - // resume timer - fl_resume_timer(main_frm->refresh_timer); - //fl_resume_timer(main_frm->gps_timer); - - initialize_interface(); - power = TERM_ON; - } else { - error("Set terminal index first!"); - } - } else { - if (record) { - sprintf(temp_text, "Still recording! Stop recording prior to powering down."); - fl_set_object_label(main_frm->msg_text, temp_text); - } else { - fl_suspend_timer(main_frm->refresh_timer); - - // Turn the receiver off - ioctl_result = ioctl(openair_dev_fd, openair_STOP, NULL); - - if (ioctl_result != 0) { - printf(temp_text, "Error stopping terminal mode!"); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - //fl_suspend_timer(main_frm->gps_timer); - - if (gps_data) { - gps_close(gps_data); - gps_data = NULL; - } - - stop_interface(); - power = TERM_OFF; - } - } - } -} - - -// -// Terminal mode function -// -void terminal_mode_callback(FL_OBJECT *ob, long user_data) -{ - char temp_label[1024]; - - terminal_mode ^= 0x1; - - if(terminal_mode == TERM_MODE_SINGL) { - sprintf(temp_label, "Mode: SGL"); - fl_set_object_label(main_frm->mode_lbl, temp_label); - fl_set_object_color(main_frm->single_led, LED_COLOR_ON, LED_COLOR_OFF); - fl_set_object_color(main_frm->multi_led, LED_COLOR_OFF, LED_COLOR_OFF); - } else { - sprintf(temp_label, "Mode: MLT"); - fl_set_object_label(main_frm->mode_lbl, temp_label); - fl_set_object_color(main_frm->single_led, LED_COLOR_OFF, LED_COLOR_OFF); - fl_set_object_color(main_frm->multi_led, LED_COLOR_ON, LED_COLOR_OFF); - } -} - -// // -// // GPS function -// // -// void use_gps_callback(FL_OBJECT *ob, long user_data) -// { -// //gpsd_fd = open_gpsd_socket(); -// if(!gps_data) -// { -// gps_data = gps_open("127.0.0.1","2947"); -// if (gps_data == NULL) -// { -// fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); -// error("Could not open GPS"); -// } -// else -// { -// fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); -// } -// //gps_set_raw_hook(gps_data, &update_gps_data); -// } -// else -// { -// gps_close(gps_data); -// gps_data = NULL; -// fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); -// fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); -// fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF); -// fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF); -// } -// } - -// // -// // Origin function -// // -// void set_origin_callback(FL_OBJECT *ob, long user_data) -// { -// message("Not yet implemented"); -// //printf("exiting normally.\n"); -// //exit(0); -// } - -// -// Refresh function -// -void refresh_callback(FL_OBJECT *ob, long user_data) -{ - char temp_label[1024]; - - // update the dial - screen_refresh_period = fl_get_dial_value(main_frm->refresh_dial); - screen_refresh_period += (double) user_data / 10.0; - - if (screen_refresh_period > 5) - screen_refresh_period = 5; - else if (screen_refresh_period < 0.05) - screen_refresh_period = 0.05; - - fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period); - - fl_set_timer(main_frm->refresh_timer,screen_refresh_period); - - // Update the screen refresh in frames - // screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3)+1; - - sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period); - fl_set_object_label(main_frm->refresh_lbl, temp_label); -} - -// -// Refresh function -// -void record_callback(FL_OBJECT *ob, long user_data) -{ - char temp_text[1024]; - - if(power) { - // Terminal mode leds - if(record) { - // @TODO write rest of the buffer to disk - - // Turn off recording - record = REC_OFF; - rec_frame_counter = 0; - - // release the buffer - free(fifo_buffer); - fifo_buffer = NULL; - fifo_output = NULL; - fifo_ptr = NULL; - - // close the dumpfile - fclose(dumpfile_id); - dumpfile_id = NULL; - - } else { - // Turn on recording - if (open_dumpfile() == 0) - record = REC_ON; - - // else - // error("Error opening dumpfile"); - - } - } -} - -int open_dumpfile() -{ - char dumpfile_name[1024]; - char temp_label[1024]; - - // create the dumpfile buffer - // allocate memory for NO_FRAMES_DISK channes estimations - fifo_buffer = malloc(NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE); - fifo_ptr = fifo_buffer; - - if(fifo_buffer == NULL) { - error( "Could not allocate memory for fifo2file_buffer"); - return -1; - } - - // open the dumpfile - time_t starttime_tmp; - struct tm starttime; - - time(&starttime_tmp); - localtime_r(&starttime_tmp,&starttime); - snprintf(dumpfile_name,1024,"%sdata_term%d_idx%d_%d%0.2d%0.2d_%0.2d%0.2d%0.2d.EMOS",dumpfile_dir,terminal_idx,file_index,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, - starttime.tm_hour, starttime.tm_min, starttime.tm_sec); - - dumpfile_id = fopen(dumpfile_name,"w"); - - if (dumpfile_id == NULL) { - sprintf(temp_label,"Error opening dumpfile %s", dumpfile_name); - error(temp_label); - return -1; - } - - snprintf(date_string,1024,"date: %d%0.2d%0.2d_%0.2d%0.2d%0.2d",1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, starttime.tm_min, starttime.tm_sec); - fl_set_object_label(main_frm->date_lbl, date_string); - sprintf(temp_label, "idx: %d", file_index); - fl_set_object_label(main_frm->idx_lbl, temp_label); - - return 0; -} - -// -// Prcesses all the new data in the FIFO -// -void new_data_callback(FL_OBJECT *ob, long user_data) -{ - int n_bytes = 0; - char temp_text[1024]; - - // Read data from FIFO - n_bytes = rtf_read_all_at_once(fifo_fd, &data_buffer, CHANNEL_BUFFER_SIZE); - - if (n_bytes != CHANNEL_BUFFER_SIZE) { - sprintf(temp_text, "Error reading FIFO."); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - } - - fifo_output = (fifo_read_emos*) data_buffer; - - if (terminal_mode == TERM_MODE_MULTI) { - /* if (fifo_output->crc_status == 0) - { - memcpy(&file_index,fifo_output->chbch_pdu+sizeof(RTIME)+4,sizeof(int)); - record_multi = (int) fifo_output->chbch_pdu[16]; - }*/ - - if (fifo_output->PHY_measurements.frame_tx[0] % REC_FRAMES_MAX < REC_FRAMES_PER_FILE) - record_multi = REC_ON; - else - record_multi = REC_OFF; - - file_index = fifo_output->PHY_measurements.frame_tx[0]/REC_FRAMES_MAX % REC_FILE_IDX_MAX; - } - - if((frame_counter % 1000) == 0) { - printf("record = %d. record_multi = %d, terminal_mode = %d, frame_tx=%d, file_index = %d\n", record, record_multi, terminal_mode, fifo_output->PHY_measurements.frame_tx[0], file_index); - /* printf("sizeof(struct gps_fix_t)=%d\n",sizeof(struct gps_fix_t)); - refresh_interface();*/ - } - - frame_counter++; - - if ((record==REC_ON && terminal_mode == TERM_MODE_SINGL) || (record==REC_ON && record_multi==REC_ON && terminal_mode == TERM_MODE_MULTI)) { - // Recording indicator ON - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_ON); - - if (dumpfile_id == NULL) { - error("Dumpfile not open"); - } else { - // copy the data to the fifo buffer - memcpy(fifo_ptr, data_buffer, CHANNEL_BUFFER_SIZE); - fifo_ptr += CHANNEL_BUFFER_SIZE; - rec_frame_counter++; - - sprintf(temp_text,"Buffer: %3d%%", ((rec_frame_counter%NO_ESTIMATES_DISK)*100/NO_ESTIMATES_DISK)); - fl_set_object_label(main_frm->buffer_lbl,temp_text); - sprintf(temp_text,"Rec'd Frames: %d", rec_frame_counter); - fl_set_object_label(main_frm->n_recd_frames_lbl,temp_text); - - // store data to disk - if (rec_frame_counter%NO_ESTIMATES_DISK==0) { - //reset stuff - fifo_ptr = fifo_buffer; - - //flush buffer to disk - printf("flushing buffer to disk\n"); - - if (fwrite(fifo_buffer, sizeof(char), NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE, dumpfile_id) != NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE) { - message("Error writing to dumpfile, stopping recording"); - record = REC_OFF; - } - - // write GPS data to disk - if (gps_data) { - if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - message("Error writing to dumpfile, stopping recording"); - record = REC_OFF; - } - } else { - message("WARNING: No GPS data available, storing dummy packet"); - - if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - message("Error writing to dumpfile, stopping recording"); - record = REC_OFF; - } - } - } - } - } else if (record==REC_ON && record_multi==REC_OFF && terminal_mode == TERM_MODE_MULTI) { - // Recording indicator Ready - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - - if (rec_frame_counter > 0) { - // Turn off recording - record = REC_OFF; - rec_frame_counter = 0; - - // release the buffer - free(fifo_buffer); - fifo_buffer = NULL; - fifo_output = NULL; - fifo_ptr = NULL; - - // close the dumpfile - fclose(dumpfile_id); - dumpfile_id = NULL; - - // open another dumpfile - if (open_dumpfile() == 0) - record = REC_ON; - else - error("Error opening dumpfile"); - } - } else { //record==REC_OFF - // Recording indicator OFF - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF); - } -} - -// -// Initializes the MAC and PHY vars -// -int mac_phy_init() -{ - int ioctl_result; - - // FILE *config; --> already declared in config_vars.h - // FILE *scenario; --> already declared in config_vars.h - - char temp_text[1024]; - - // Load configuration files - if ((config = fopen("./config.cfg","r")) == NULL) { - error("Openair configuration file could not be found!"); - emos_ready = EMOS_NOT_READY; - return -1; - } - - if ((scenario = fopen("./scenario.scn","r")) == NULL) { - error("Openair scenario file could not be found!"); - emos_ready = EMOS_NOT_READY; - return -1; - } - - // Load openair configuration - PHY_config = (PHY_CONFIG *)&PHY_config_mem; - // PHY_vars = malloc(sizeof(PHY_VARS)); - // mac_xface = malloc(sizeof(MAC_xface)); - - reconfigure_MACPHY(scenario); - - //phy_init(); - //mac_init(); - - // Load the configuration to the device driver - ioctl_result = ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config); - - if (ioctl_result != 0) { - error("Loading openair configuration in kernel space failed!"); - emos_ready = EMOS_NOT_READY; - return -1; - } - - // Openair configuration - fclose(config); - - // Openair scenario - // fclose(scenario_fd); --> already closed in reconfigure_MACPHY - - dump_config(); - return 0; -} - -// -// Refresh function -// -void terminal_button_callback(FL_OBJECT *ob, long user_data) -{ - fl_set_button(main_frm->terminal_btn1,0); - fl_set_button(main_frm->terminal_btn2,0); - fl_set_button(main_frm->terminal_btn3,0); - fl_set_button(main_frm->terminal_btn4,0); - fl_set_button(ob,1); - terminal_idx = user_data; -} - -void rx_mode_button_callback(FL_OBJECT *ob, long user_data) -{ - fl_set_button(main_frm->single_btn,0); - fl_set_button(main_frm->mmse_btn,0); - fl_set_button(main_frm->ml_btn,0); - fl_set_button(ob,1); - - switch (user_data) { - case 0: - rxmode = SINGLE; - break; - - case 1: - rxmode = MMSE; - break; - - case 2: - rxmode = ML; - break; - - default: - rxmode = ML; - } -} - - -// -// Time/Freq domain selector -// -void time_freq_callback(FL_OBJECT *ob, long user_data) -{ - fl_set_button(main_frm->time_domain_btn,0); - fl_set_button(main_frm->freq_domain_btn,0); - fl_set_button(ob,1); - domain_selector = user_data; -} - -// -// SNR/N0 selector -// -void noise_snr_callback(FL_OBJECT *ob, long user_data) -{ - fl_set_button(main_frm->snr_btn,0); - fl_set_button(main_frm->n0_btn,0); - fl_set_button(ob,1); - noise_selector = user_data; - printf("noise_selector = %d\n",noise_selector); -} - -// -// Refresh function -// -void file_index_callback(FL_OBJECT *ob, long user_data) -{ - char temp_label[1024]; - - // update the dial - file_index = fl_get_dial_value(main_frm->file_index_dial); - file_index += user_data; - - if (file_index > 100) - file_index = 100; - else if (file_index < 0) - file_index = 0; - - fl_set_dial_value(main_frm->file_index_dial, file_index); - - sprintf(temp_label, "idx: %d", file_index); - fl_set_object_label(main_frm->idx_lbl, temp_label); -} - -void refresh_timer_callback(FL_OBJECT *ob, long user_data) -{ - refresh_interface(); - fl_set_timer(ob, screen_refresh_period); -} - -void config_btn_callback(FL_OBJECT *ob, long user_data) -{ - - config_wnd = fl_show_form(config_frm->config_dialog, FL_PLACE_HOTSPOT, FL_FULLBORDER, "Select Directory"); - fl_set_input(config_frm->dir_input,dumpfile_dir); - -} - -void get_dir_callback(FL_OBJECT *ob, long user_data) -{ - const char *filename; - filename = fl_get_input(config_frm->dir_input); - - if (user_data==0) - strcpy(dumpfile_dir, filename); - - printf("Directory = %s\n",dumpfile_dir); - fl_hide_form(config_frm->config_dialog); -} -/* -void get_gps_time_position(int socknum, char *buffer, int buffersize) -{ - dprintf(socknum, "dp\n"); - memset(buffer, 0, buffersize); - read(socknum, buffer, buffersize); -} - -int open_gpsd_socket() -{ - struct sockaddr_in skin; - struct servent *sp; - int socknum = -1; - - if ((sp=getservbyname("gpsd","tcp"))==NULL) //get port number for gpsd daemon service - error("get gpsd port number failed"); - if ((socknum=socket(AF_INET,SOCK_STREAM,0))<0) - error("failed to create gpsd socket"); - - memset(&skin,0,sizeof(struct sockaddr_in)); - - skin.sin_family = AF_INET; - skin.sin_port = sp->s_port; - inet_aton("127.0.0.1",&(skin.sin_addr.s_addr)); - - if (connect(socknum,&skin,sizeof(struct sockaddr_in))< 0) { - error("Failed to connect to GPSD socket"); - return -1; - } else - return socknum; - -} - -void update_gps_data(struct gps_data_t *gps_data, char *buf) -{ - printf("%s\n",buf); - printf("GPS online = %f, mode = %d, lat = %f, lon = %f\n",gps_data->online,gps_data->fix.mode,gps_data->fix.latitude,gps_data->fix.longitude); -} - -*/ diff --git a/openair1/EMOS/GUI/src/emos_gui.h b/openair1/EMOS/GUI/src/emos_gui.h deleted file mode 100644 index cdea608aea..0000000000 --- a/openair1/EMOS/GUI/src/emos_gui.h +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include "SCHED/phy_procedures_emos.h" - -#define TERM_MODE_SINGL 0 -#define TERM_MODE_MULTI 1 - -#define TERM_ON 1 -#define TERM_OFF 0 - -#define SCREEN_COLOR_ON FL_CHARTREUSE -#define SCREEN_COLOR_OFF FL_RIGHT_BCOL -#define SCREEN_COLOR_BG FL_BLACK -#define SCREEN_COLOR_HL FL_RED - -#define LED_COLOR_ON FL_RED -#define LED_COLOR_OFF FL_RIGHT_BCOL - -#define REC_ON 1 -#define REC_OFF 0 - -#define EMOS_NOT_READY 0 -#define EMOS_READY 1 - -#define TIME_DOMAIN 0 -#define FREQ_DOMAIN 1 - -#define N0 0 -#define SNR 1 - -#define REC_FRAMES_MAX 22500 -#define REC_FRAMES_PER_FILE 18750 -#define REC_FILE_IDX_MAX 100 - -#define CHANSOUNDER_FIFO_DEV "/dev/rtf3" - -#define NO_ESTIMATES_DISK 100 //No. of estimates that are aquired before dumped to disk - -/* -#define TIMESTAMP_SIZE 8 -#define PDU_ERRORS_SIZE 4 -#define RX_RSSI_SIZE 2 -#define COMPLEX16_SIZE 4 -#define NO_OF_OFDM_CARRIERS 256 -#define CHANNEL_BUFFER_SIZE (NB_ANTENNAS*COMPLEX16_SIZE*NO_OF_OFDM_CARRIERS+TIMESTAMP_SIZE+PDU_ERRORS_SIZE+RX_RSSI_SIZE) //in bytes -*/ - -#define CHANNEL_BUFFER_SIZE sizeof(fifo_read_emos) //in bytes - -#define SCREEN_MEMORY_SIZE 32 - -#define DISP_MAX_POWER 4194304 //maximum value for the display of the frequency response - -#define GPSD_BUFFER_SIZE 64 - -//struct gps_data_struct {} diff --git a/openair1/EMOS/GUI/src/emos_gui_forms.c b/openair1/EMOS/GUI/src/emos_gui_forms.c deleted file mode 100644 index 71950abeb5..0000000000 --- a/openair1/EMOS/GUI/src/emos_gui_forms.c +++ /dev/null @@ -1,437 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated with fdesign. */ - -#include "forms.h" -#include -#include "emos_gui_forms.h" - -FD_main_frm *create_form_main_frm(void) -{ - FL_OBJECT *obj; - FD_main_frm *fdui = (FD_main_frm *) fl_calloc(1, sizeof(*fdui)); - - fdui->main_frm = fl_bgn_form(FL_NO_BOX, 1010, 710); - obj = fl_add_box(FL_FLAT_BOX,0,0,1010,710,"Main form"); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_MCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - obj = fl_add_box(FL_ROUNDED_BOX,10,610,230,90,""); - fl_set_object_color(obj,FL_DARKER_COL1,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - obj = fl_add_box(FL_ROUNDED3D_DOWNBOX,5,5,850,600,""); - fl_set_object_color(obj,FL_BLACK,FL_BLACK); - fdui->sync_lbl = obj = fl_add_text(FL_NORMAL_TEXT,635,15,40,20,"sync"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->rec_lbl = obj = fl_add_text(FL_NORMAL_TEXT,720,15,40,20,"rec"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->pwr1_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,20,45,300,110,"Power"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->pwr2_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,330,45,300,110,"Power"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->rx2_lbl = obj = fl_add_text(FL_NORMAL_TEXT,345,10,80,40,"RX 2"); - fl_set_object_color(obj,FL_BLACK,FL_MCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lsize(obj,FL_HUGE_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->noise1_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,20,170,300,110,"N0/SNR"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->noise2_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,330,170,300,110,"N0/SNR"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch11_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,15,310,140,110,"CH TX1"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch12_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,180,310,140,110,"CH TX2"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch13_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,15,450,140,110,"CH TX3"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch14_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,180,450,140,110,"CH TX4"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch21_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,325,310,140,110,"CH TX1"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch22_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,490,310,140,110,"CH TX2"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch23_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,325,450,140,110,"CH TX3"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->ch24_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,490,450,140,110,"CH TX4"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->error_lbl = obj = fl_add_text(FL_NORMAL_TEXT,680,15,40,20,"error"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->gps_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,65,60,30,"gps"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->date_lbl = obj = fl_add_text(FL_NORMAL_TEXT,655,130,170,30,"date: "); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->gps_lat_lbl = obj = fl_add_text(FL_NORMAL_TEXT,700,65,150,30,"lat: 0"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->gps_lon_lbl = obj = fl_add_text(FL_NORMAL_TEXT,700,95,150,30,"lon: 0"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->mode_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,160,90,20,"Mode: SGL"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->idx_lbl = obj = fl_add_text(FL_NORMAL_TEXT,730,160,110,20,"Idx: "); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - obj = fl_add_box(FL_ROUNDED_BOX,460,610,140,90,""); - fl_set_object_color(obj,FL_DARKCYAN,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->power_btn = obj = fl_add_button(FL_NORMAL_BUTTON,130,620,100,70,"PWR"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_MEDIUM_SIZE); - fl_set_object_callback(obj,power_callback,0); - fdui->buffer_lbl = obj = fl_add_text(FL_NORMAL_TEXT,760,15,90,20,"Buffer: 100%"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->cap_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,640,310,200,250,"Capacity"); - fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fdui->refresh_lbl = obj = fl_add_text(FL_NORMAL_TEXT,655,185,170,20,"Refresh interval: 1s"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - obj = fl_add_box(FL_ROUNDED_BOX,860,90,140,220,""); - fl_set_object_color(obj,FL_DARKER_COL1,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->refresh_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,110,80,70,"screen refresh rate"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_RIGHT_BCOL); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fl_set_object_callback(obj,refresh_callback,0); - fl_set_dial_bounds(obj, 0, 5); - fl_set_dial_angles(obj, 45, 315); - fl_set_dial_value(obj, 1); - fl_set_dial_step(obj, 1); - fl_set_dial_return(obj, FL_RETURN_CHANGED); - obj = fl_add_box(FL_ROUNDED_BOX,860,460,140,140,""); - fl_set_object_color(obj,FL_INDIANRED,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->bler_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,210,180,20,"BLER:: 0"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->n_recd_frames_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,235,180,20,"Rec'd frms: 0"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->msg_text = obj = fl_add_text(FL_NORMAL_TEXT,25,570,810,30,""); - fl_set_object_color(obj,FL_BLACK,FL_MCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - obj = fl_add_pixmapbutton(FL_NORMAL_BUTTON,860,5,140,70,""); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_WHITE,FL_YELLOW); - fl_set_pixmapbutton_file(obj, "Eurecom_Logo.xpm"); - fdui->rx1_lbl = obj = fl_add_text(FL_NORMAL_TEXT,35,10,80,40,"RX 1"); - fl_set_object_color(obj,FL_BLACK,FL_MCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lsize(obj,FL_HUGE_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - obj = fl_add_box(FL_ROUNDED_BOX,610,610,180,90,""); - fl_set_object_color(obj,FL_WHEAT,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->terminal_mode_btn = obj = fl_add_button(FL_NORMAL_BUTTON,635,620,130,20,"terminal mode"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,terminal_mode_callback,0); - fdui->single_led = obj = fl_add_box(FL_EMBOSSED_BOX,640,650,10,10,"Single user"); - fl_set_object_color(obj,FL_RIGHT_BCOL,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_RIGHT); - fdui->multi_led = obj = fl_add_box(FL_EMBOSSED_BOX,640,670,10,10,"Multi user"); - fl_set_object_color(obj,FL_RIGHT_BCOL,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_RIGHT); - fdui->mmse_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,655,100,20,"MMSE"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,rx_mode_button_callback,1); - fdui->ml_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,675,100,20,"ML"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,rx_mode_button_callback,2); - fdui->cbmimo_lbl = obj = fl_add_text(FL_NORMAL_TEXT,665,40,70,20,"cbmimo"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->file_index_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,485,80,70,"file index"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_RIGHT_BCOL); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fl_set_object_callback(obj,file_index_callback,0); - fl_set_dial_bounds(obj, 0, 100); - fl_set_dial_angles(obj, 10, 350); - fl_set_dial_value(obj, 0); - fl_set_dial_step(obj, 10); - obj = fl_add_button(FL_NORMAL_BUTTON,870,560,40,30,"+"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,file_index_callback,1); - obj = fl_add_button(FL_NORMAL_BUTTON,950,560,40,30,"-"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,file_index_callback,-1); - obj = fl_add_box(FL_ROUNDED_BOX,860,320,140,130,""); - fl_set_object_color(obj,FL_PALEGREEN,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->num_sym_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,340,80,70,"number of symbols"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_RIGHT_BCOL); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_TOP); - fl_set_dial_bounds(obj, 0, 5); - fl_set_dial_angles(obj, 30, 360); - fl_set_dial_value(obj, 0); - fl_set_dial_step(obj, 0.5); - fdui->fix_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,95,60,30,"NO"); - fl_set_object_boxtype(obj,FL_ROUNDED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - obj = fl_add_box(FL_ROUNDED_BOX,800,610,200,90,""); - fl_set_object_color(obj,FL_INDIANRED,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->rec_btn = obj = fl_add_button(FL_PUSH_BUTTON,820,620,160,70,"Record"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,record_callback,0); - fdui->exit_btn = obj = fl_add_button(FL_NORMAL_BUTTON,20,660,90,30,"exit"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_TOMATO,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,exit_callback,0); - fdui->config_btn = obj = fl_add_button(FL_NORMAL_BUTTON,20,620,90,30,"config"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,config_btn_callback,0); - obj = fl_add_box(FL_ROUNDED_BOX,250,610,200,90,""); - fl_set_object_color(obj,FL_PALEGREEN,FL_COL1); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->terminal_btn1 = obj = fl_add_button(FL_PUSH_BUTTON,270,650,40,40,"CH1"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,terminal_button_callback,1); - fdui->terminal_btn2 = obj = fl_add_button(FL_PUSH_BUTTON,310,650,40,40,"CH2"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,terminal_button_callback,2); - fdui->terminal_btn3 = obj = fl_add_button(FL_PUSH_BUTTON,350,650,40,40,"MR1"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,terminal_button_callback,3); - fdui->terminal_btn4 = obj = fl_add_button(FL_PUSH_BUTTON,390,650,40,40,"MR2"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,terminal_button_callback,4); - obj = fl_add_text(FL_NORMAL_TEXT,300,620,110,20,"terminal number"); - fl_set_object_color(obj,FL_PALEGREEN,FL_MCOL); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - obj = fl_add_button(FL_NORMAL_BUTTON,870,180,40,30,"+"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,refresh_callback,1); - obj = fl_add_button(FL_NORMAL_BUTTON,950,180,40,30,"-"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fl_set_object_callback(obj,refresh_callback,-1); - fdui->time_domain_btn = obj = fl_add_button(FL_PUSH_BUTTON,870,235,60,20,"time"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,time_freq_callback,0); - fdui->freq_domain_btn = obj = fl_add_button(FL_PUSH_BUTTON,930,235,60,20,"freq"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,time_freq_callback,1); - obj = fl_add_text(FL_NORMAL_TEXT,875,215,110,20,"channel display"); - fl_set_object_color(obj,FL_DARKER_COL1,FL_MCOL); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fdui->refresh_timer = obj = fl_add_timer(FL_HIDDEN_TIMER,810,720,10,10,"timer"); - fl_set_object_callback(obj,refresh_timer_callback,0); - obj = fl_add_text(FL_NORMAL_TEXT,875,260,110,20,"N0/SNR"); - fl_set_object_color(obj,FL_DARKER_COL1,FL_MCOL); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fdui->n0_btn = obj = fl_add_button(FL_PUSH_BUTTON,870,280,60,20,"N0"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,noise_snr_callback,0); - fdui->snr_btn = obj = fl_add_button(FL_PUSH_BUTTON,930,280,60,20,"SNR"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,noise_snr_callback,1); - fdui->num_sym_plus = obj = fl_add_button(FL_NORMAL_BUTTON,870,415,40,30,"+"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->num_sym_minus = obj = fl_add_button(FL_NORMAL_BUTTON,950,415,40,30,"-"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->rx_mode_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,260,180,20,"RX mode:"); - fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL); - fl_set_object_lcolor(obj,FL_RIGHT_BCOL); - fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); - fl_set_object_lstyle(obj,FL_BOLD_STYLE); - fdui->single_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,635,100,20,"SINGLE"); - fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); - fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); - fl_set_object_lsize(obj,FL_TINY_SIZE); - fl_set_object_callback(obj,rx_mode_button_callback,0); - obj = fl_add_text(FL_NORMAL_TEXT,480,615,100,20,"receiver mode"); - fl_set_object_boxtype(obj,FL_NO_BOX); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fl_end_form(); - - fdui->main_frm->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - -FD_splash_frm *create_form_splash_frm(void) -{ - FL_OBJECT *obj; - FD_splash_frm *fdui = (FD_splash_frm *) fl_calloc(1, sizeof(*fdui)); - - fdui->splash_frm = fl_bgn_form(FL_NO_BOX, 390, 280); - obj = fl_add_box(FL_FLAT_BOX,0,0,390,280,""); - obj = fl_add_pixmap(FL_NORMAL_PIXMAP,40,20,310,100,""); - obj = fl_add_text(FL_NORMAL_TEXT,70,150,80,30,"text"); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fl_end_form(); - - fdui->splash_frm->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - -FD_config_dialog *create_form_config_dialog(void) -{ - FL_OBJECT *obj; - FD_config_dialog *fdui = (FD_config_dialog *) fl_calloc(1, sizeof(*fdui)); - - fdui->config_dialog = fl_bgn_form(FL_NO_BOX, 410, 120); - obj = fl_add_box(FL_UP_BOX,0,0,410,120,""); - fdui->cancel_btn = obj = fl_add_button(FL_NORMAL_BUTTON,80,75,100,30,"Cancel"); - fl_set_object_callback(obj,get_dir_callback,-1); - fdui->ok_btn = obj = fl_add_button(FL_RETURN_BUTTON,225,75,100,30,"OK"); - fl_set_object_callback(obj,get_dir_callback,0); - fdui->dir_input = obj = fl_add_input(FL_NORMAL_INPUT,80,30,300,30,"Directory"); - fl_end_form(); - - fdui->config_dialog->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - diff --git a/openair1/EMOS/GUI/src/emos_gui_forms.fd b/openair1/EMOS/GUI/src/emos_gui_forms.fd deleted file mode 100644 index 52002a8dcf..0000000000 --- a/openair1/EMOS/GUI/src/emos_gui_forms.fd +++ /dev/null @@ -1,1519 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 3 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: main_frm -Width: 1010 -Height: 710 -Number of Objects: 75 - --------------------- -class: FL_BOX -type: FLAT_BOX -box: 0 0 1010 710 -boxtype: FL_FLAT_BOX -colors: FL_LIGHTER_COL1 FL_MCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Main form -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 10 610 230 90 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKER_COL1 FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED3D_DOWNBOX -box: 5 5 850 600 -boxtype: FL_ROUNDED3D_DOWNBOX -colors: FL_BLACK FL_BLACK -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 635 15 40 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: sync -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sync_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 720 15 40 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: rec -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rec_lbl -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 45 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Power -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: pwr1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 330 45 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Power -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: pwr2_xyp -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 345 10 80 40 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_HUGE_SIZE -lcol: FL_RIGHT_BCOL -label: RX 2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rx2_lbl -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 170 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: N0/SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: noise1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 330 170 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: N0/SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: noise2_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 15 310 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch11_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 180 310 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch12_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 15 450 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX3 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch13_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 180 450 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX4 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch14_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 325 310 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch21_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 490 310 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch22_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 325 450 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX3 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch23_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 490 450 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH TX4 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch24_xyp -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 680 15 40 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: error -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: error_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 640 65 60 30 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: gps -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: gps_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 655 130 170 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: date: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: date_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 700 65 150 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: lat: 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: gps_lat_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 700 95 150 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: lon: 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: gps_lon_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 640 160 90 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Mode: SGL -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: mode_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 730 160 110 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_RIGHT|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Idx: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: idx_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 460 610 140 90 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKCYAN FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 130 620 100 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_BLACK -label: PWR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: power_btn -callback: power_callback -argument: 0 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 760 15 90 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Buffer: 100% -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: buffer_lbl -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 640 310 200 250 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Capacity -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: cap_xyp -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 655 185 170 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Refresh interval: 1s -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: refresh_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 860 90 140 220 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKER_COL1 FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_DIAL -type: NORMAL_DIAL -box: 890 110 80 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: screen refresh rate -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: refresh_dial -callback: refresh_callback -argument: 0 - bounds: 0 5 - angles: 45 315 - value: 1 - step: 1 - return: FL_RETURN_CHANGED - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 860 460 140 140 -boxtype: FL_ROUNDED_BOX -colors: FL_INDIANRED FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 210 180 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: BLER:: 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: bler_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 235 180 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Rec'd frms: 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: n_recd_frames_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 25 570 810 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: msg_text -callback: -argument: - --------------------- -class: FL_PIXMAPBUTTON -type: NORMAL_BUTTON -box: 860 5 140 70 -boxtype: FL_ROUNDED_BOX -colors: FL_WHITE FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - file: Eurecom_Logo.xpm - fullpath: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 35 10 80 40 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_HUGE_SIZE -lcol: FL_RIGHT_BCOL -label: RX 1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rx1_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 610 610 180 90 -boxtype: FL_ROUNDED_BOX -colors: FL_WHEAT FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 635 620 130 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: terminal mode -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_mode_btn -callback: terminal_mode_callback -argument: 0 - --------------------- -class: FL_BOX -type: EMBOSSED_BOX -box: 640 650 10 10 -boxtype: FL_EMBOSSED_BOX -colors: FL_RIGHT_BCOL FL_COL1 -alignment: FL_ALIGN_RIGHT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Single user -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: single_led -callback: -argument: - --------------------- -class: FL_BOX -type: EMBOSSED_BOX -box: 640 670 10 10 -boxtype: FL_EMBOSSED_BOX -colors: FL_RIGHT_BCOL FL_COL1 -alignment: FL_ALIGN_RIGHT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Multi user -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: multi_led -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 480 655 100 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: MMSE -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: mmse_btn -callback: rx_mode_button_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 480 675 100 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: ML -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ml_btn -callback: rx_mode_button_callback -argument: 2 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 665 40 70 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: cbmimo -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: cbmimo_lbl -callback: -argument: - --------------------- -class: FL_DIAL -type: NORMAL_DIAL -box: 890 485 80 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: file index -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: file_index_dial -callback: file_index_callback -argument: 0 - bounds: 0 100 - angles: 10 350 - value: 0 - step: 10 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 870 560 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: + -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: file_index_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 950 560 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: - -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: file_index_callback -argument: -1 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 860 320 140 130 -boxtype: FL_ROUNDED_BOX -colors: FL_PALEGREEN FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_DIAL -type: NORMAL_DIAL -box: 890 340 80 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: number of symbols -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: num_sym_dial -callback: -argument: - bounds: 0 5 - angles: 30 360 - value: 0 - step: 0.5 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 640 95 60 30 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: NO -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: fix_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 800 610 200 90 -boxtype: FL_ROUNDED_BOX -colors: FL_INDIANRED FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 820 620 160 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Record -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rec_btn -callback: record_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 20 660 90 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_TOMATO FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: exit -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: exit_btn -callback: exit_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 20 620 90 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: config -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: config_btn -callback: config_btn_callback -argument: 0 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 250 610 200 90 -boxtype: FL_ROUNDED_BOX -colors: FL_PALEGREEN FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 270 650 40 40 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: CH1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_btn1 -callback: terminal_button_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 310 650 40 40 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: CH2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_btn2 -callback: terminal_button_callback -argument: 2 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 350 650 40 40 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: MR1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_btn3 -callback: terminal_button_callback -argument: 3 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 390 650 40 40 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: MR2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_btn4 -callback: terminal_button_callback -argument: 4 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 300 620 110 20 -boxtype: FL_FLAT_BOX -colors: FL_PALEGREEN FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: terminal number -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 870 180 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: + -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: refresh_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 950 180 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: - -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: refresh_callback -argument: -1 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 870 235 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: time -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: time_domain_btn -callback: time_freq_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 930 235 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: freq -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: freq_domain_btn -callback: time_freq_callback -argument: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 875 215 110 20 -boxtype: FL_FLAT_BOX -colors: FL_DARKER_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: channel display -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TIMER -type: HIDDEN_TIMER -box: 810 720 10 10 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_RED -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: timer -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: refresh_timer -callback: refresh_timer_callback -argument: 0 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 875 260 110 20 -boxtype: FL_FLAT_BOX -colors: FL_DARKER_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: N0/SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 870 280 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: N0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: n0_btn -callback: noise_snr_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 930 280 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: snr_btn -callback: noise_snr_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 870 415 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: + -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: num_sym_plus -callback: -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 950 415 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: - -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: num_sym_minus -callback: -argument: -1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 260 180 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: RX mode: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rx_mode_lbl -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 480 635 100 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: SINGLE -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: single_btn -callback: rx_mode_button_callback -argument: 0 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 480 615 100 20 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: receiver mode -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - -=============== FORM =============== -Name: splash_frm -Width: 390 -Height: 280 -Number of Objects: 3 - --------------------- -class: FL_BOX -type: FLAT_BOX -box: 0 0 390 280 -boxtype: FL_FLAT_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_PIXMAP -type: NORMAL_PIXMAP -box: 40 20 310 100 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 70 150 80 30 -boxtype: FL_FLAT_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: text -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - -=============== FORM =============== -Name: config_dialog -Width: 410 -Height: 120 -Number of Objects: 4 - --------------------- -class: FL_BOX -type: UP_BOX -box: 0 0 410 120 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 80 75 100 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Cancel -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: cancel_btn -callback: get_dir_callback -argument: -1 - --------------------- -class: FL_BUTTON -type: RETURN_BUTTON -box: 225 75 100 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: OK -shortcut: ^M -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ok_btn -callback: get_dir_callback -argument: 0 - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 80 30 300 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Directory -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: dir_input -callback: -argument: - -============================== -create_the_forms diff --git a/openair1/EMOS/GUI/src/emos_gui_forms.h b/openair1/EMOS/GUI/src/emos_gui_forms.h deleted file mode 100644 index 7fb6d06c99..0000000000 --- a/openair1/EMOS/GUI/src/emos_gui_forms.h +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/** Header file generated with fdesign on Fri Apr 24 14:16:53 2009.**/ - -#ifndef FD_main_frm_h_ -#define FD_main_frm_h_ - -/** Callbacks, globals and object handlers **/ -extern void power_callback(FL_OBJECT *, long); -extern void refresh_callback(FL_OBJECT *, long); -extern void terminal_mode_callback(FL_OBJECT *, long); -extern void rx_mode_button_callback(FL_OBJECT *, long); -extern void file_index_callback(FL_OBJECT *, long); -extern void record_callback(FL_OBJECT *, long); -extern void exit_callback(FL_OBJECT *, long); -extern void config_btn_callback(FL_OBJECT *, long); -extern void terminal_button_callback(FL_OBJECT *, long); -extern void time_freq_callback(FL_OBJECT *, long); -extern void refresh_timer_callback(FL_OBJECT *, long); -extern void noise_snr_callback(FL_OBJECT *, long); - - -extern void get_dir_callback(FL_OBJECT *, long); - - -/**** Forms and Objects ****/ -typedef struct { - FL_FORM *main_frm; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *sync_lbl; - FL_OBJECT *rec_lbl; - FL_OBJECT *pwr1_xyp; - FL_OBJECT *pwr2_xyp; - FL_OBJECT *rx2_lbl; - FL_OBJECT *noise1_xyp; - FL_OBJECT *noise2_xyp; - FL_OBJECT *ch11_xyp; - FL_OBJECT *ch12_xyp; - FL_OBJECT *ch13_xyp; - FL_OBJECT *ch14_xyp; - FL_OBJECT *ch21_xyp; - FL_OBJECT *ch22_xyp; - FL_OBJECT *ch23_xyp; - FL_OBJECT *ch24_xyp; - FL_OBJECT *error_lbl; - FL_OBJECT *gps_lbl; - FL_OBJECT *date_lbl; - FL_OBJECT *gps_lat_lbl; - FL_OBJECT *gps_lon_lbl; - FL_OBJECT *mode_lbl; - FL_OBJECT *idx_lbl; - FL_OBJECT *power_btn; - FL_OBJECT *buffer_lbl; - FL_OBJECT *cap_xyp; - FL_OBJECT *refresh_lbl; - FL_OBJECT *refresh_dial; - FL_OBJECT *bler_lbl; - FL_OBJECT *n_recd_frames_lbl; - FL_OBJECT *msg_text; - FL_OBJECT *rx1_lbl; - FL_OBJECT *terminal_mode_btn; - FL_OBJECT *single_led; - FL_OBJECT *multi_led; - FL_OBJECT *mmse_btn; - FL_OBJECT *ml_btn; - FL_OBJECT *cbmimo_lbl; - FL_OBJECT *file_index_dial; - FL_OBJECT *num_sym_dial; - FL_OBJECT *fix_lbl; - FL_OBJECT *rec_btn; - FL_OBJECT *exit_btn; - FL_OBJECT *config_btn; - FL_OBJECT *terminal_btn1; - FL_OBJECT *terminal_btn2; - FL_OBJECT *terminal_btn3; - FL_OBJECT *terminal_btn4; - FL_OBJECT *time_domain_btn; - FL_OBJECT *freq_domain_btn; - FL_OBJECT *refresh_timer; - FL_OBJECT *n0_btn; - FL_OBJECT *snr_btn; - FL_OBJECT *num_sym_plus; - FL_OBJECT *num_sym_minus; - FL_OBJECT *rx_mode_lbl; - FL_OBJECT *single_btn; -} FD_main_frm; - -extern FD_main_frm * create_form_main_frm(void); -typedef struct { - FL_FORM *splash_frm; - void *vdata; - char *cdata; - long ldata; -} FD_splash_frm; - -extern FD_splash_frm * create_form_splash_frm(void); -typedef struct { - FL_FORM *config_dialog; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *cancel_btn; - FL_OBJECT *ok_btn; - FL_OBJECT *dir_input; -} FD_config_dialog; - -extern FD_config_dialog * create_form_config_dialog(void); - -#endif /* FD_main_frm_h_ */ diff --git a/openair1/EMOS/GUI/src/make_links.sh b/openair1/EMOS/GUI/src/make_links.sh deleted file mode 100644 index bb231159a9..0000000000 --- a/openair1/EMOS/GUI/src/make_links.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# Make all the symlinks required for the emos_dump project -# Leonardo Cardoso -# -# V20070924 - -OPENAIR_PATH="../../../"; - -ln -sf ${OPENAIR_PATH}PHY/CONFIG/emos.cfg config.cfg -ln -sf ${OPENAIR_PATH}PHY/CONFIG/emos.scn scenario.scn \ No newline at end of file diff --git a/openair1/EMOS/GUI/src/matrix_util.c b/openair1/EMOS/GUI/src/matrix_util.c deleted file mode 100644 index cb1697da01..0000000000 --- a/openair1/EMOS/GUI/src/matrix_util.c +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -// Matrix Utilities for Capacity Calculations -// by Florian Kaltenberger -// Created 10.10.2007 - -# include "matrix_util.h" -#include -#include - -// This function calculates HxH^H for a complex matrix H -// HH must be a pre-allocated matrix of size rows x rows -// The function returns NULL on error and a pointer to the -// calculated matrix otherwise -struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH) -{ - int r,r2,c; - - if (H==NULL || HH==NULL || rows == 0 || cols == 0) - return NULL; - - for (r=0; r. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -// Matrix Utilities for Capacity Calculations -// by Florian Kaltenberger -// Created 10.10.2007 - -# include "PHY/TOOLS/defs.h" - -struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH); - -struct complexf **addI_scale_mat(struct complexf **H, int rows, float scale); - -float det(struct complexf **H); - -float norm_fro_sq(struct complexf**H, int rows, int cols); diff --git a/openair1/EMOS/LTE/GUI/COPYING b/openair1/EMOS/LTE/GUI/COPYING deleted file mode 100644 index 818433ecc0..0000000000 --- a/openair1/EMOS/LTE/GUI/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/openair1/EMOS/LTE/GUI/Eurecom_Logo.png b/openair1/EMOS/LTE/GUI/Eurecom_Logo.png deleted file mode 100644 index a499d213a564487690f5dd978f33670d1af98cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2532 zcmV)o@$m8M>+5%QcDa1{wEzGK3Q0sk zRCwC#Tnl%jDiD?|P+PU_iZp|w{QrM>fjk^Qt>)~WyRlAsdXj)6^Zo{sWZ6Ln9dyt^ z2OV_KK?fal&_NmeWZBEjv=?>dqS{Cz--*$+*i1VSJ>%O&@AqMJs5VPpmHRMyv0Ze& zn=Hpf{3qV$Q=c8vJE@YrPDs2i(_2a}Sq;x7`^0)bUVd$+orn%^+eQC8?*hnvy>1u% z_dXKe@9mPme(Xc^&j&<*%CbHTZA34xTghg*-N0CODe%+(et$*u@s#d92V-X;Ugcoy z$H#emoS(FXZGJ9{ZN(2p@DDWWb^L((2}R$&Pr>q!h`zqy3Bw)wsJ0DlZn50!@*|(8ORDz!H>8_X%=!so{3M`xe-{g)PaM3|@Pv@&frFR9+PKE#C4WBAA2@hvG6*Pp zM!9D?)+K)z?>v&zbuZ5d<@zc)WD)GmJ{JByQ+mpM==4Jak0AK3V>kAxL2On(fZ*SD zAv)9#A^3e*{q={6UPJxsXCAj%Sk}C3rq6S|3(>brQSW4j=6v1?Pb`W(|K!hG9(2$_ zf3^9TO)uZ)9oRJfr}Nlf&x`OcFBak#|Hx|BUE1`0-z*Q8t8N0@7F-e)5W$Nm>>&Oy zCsRrUz@xZbO_-j#qX?O+bT3jX(@7~iswO`xtO@nQhBY(n34X&Zhpqk0aefM^!}{d* z4J0~rr;`ez7%%mg|+h5IR_UPMtO?=gClTljv1BTeHHg zQoH9;Pq3HB52>?)T>H%mu+zz$nwl=up^EJ0J&yTJWUs?hY!~~UfuOBHgKg(5Ilksy zs5-|`HQ2vsv_8jPj_*1jwSUdZG}k7&#yQ675C<@gL!Haf6orgOCoaHhvwjkA&jwN= zcXW}6jbc)>TlTy=b^U#{RBZ@#>%+2`8?;%YD?&3>^AnOBnDr7zVnpN=4MKpeT$(T$ zO4d9IV{m5c3UlL9T19B*!)yJWq;53wHsPSXc@#)E7xd2gBfZKr{PA>^!jYS7rSe)u zZV+7nem&G_klehVz>=CmaEj6Lq|q?K0;M24jcMwe}XM*@pFqq7iU)7Y7b zTRXqL>-A8DZn_Ml+#SkhB#3GU4};Sr#f8tV%wM2pn5PgS)l8ol!UV<1vKLt?y|hJV z6~E-elZi}rBN>beoel>G^L=2}3aw8i(ctqxW{wTQzj4h}k;z+4=kG{8>aw?I^=FlAlV6>anxOaCWNg6ilI&PK@pf-F%U4zR7Yb43C>Onuxvc7O8JNZslra+vY-~YnC(*v-$oyVd#gJ z%Sk!%2n)szLzV-vOC3~2?ETsu0yxp)2CLWlyILv+k%Omdx=&E2DIrDN?BG6sh1F9Z z3_gh=ZrOtQ5sLwQ9$tBlQ7+*=9F8zi)uFj7+4-K$fUsV#?phOr$MJfP<=O!4(3qRL zt=&pY{N-%9YOL>FGNc!K@6_MzEl*b^PrCeKCZo&CWHG>JiDS|04BOG_$v$zBmWx5? zlP0kt$~!*ZB9|`~_38jc5SKOMA%?(S0jX|n{gG|B6W6WpU9x4|XK)=SscZ_BX4hNL zCedp#+Zj10>QHgXO<+_PiU?%bKFG3<%L@&AA6NMGTG5?L_9L}r;&kTX6oZn9MlZDs z&?X(hHt=}5Ek@?y%1eT_+dy0XvWa&E<#mHG_c^>zT27U~pw+#LOS2MD7ow8J70k{M zLi`q*f)s1=vA0UHya}1dFxRC`E0A*R{ni^ze9GS44f|0uL>oXR2`9Coci{`0u}-l$ z+E49RbV}nefgF?Y*W=Vuw?D zP|ZCuu|Krq>3cTxt!mebE^OqXrePphxYqWnD4w;b$MA-la~$eK%tg9wwf@}Fzyf> u&Bj3o9dyt^2OV_KK?fal(4Oc&0R{kU!1yZ1=6Ig~0000 c #BFC0C3", -", c #BEC0C3", -"' c #BDBFC3", -") c #B2BEC4", -"! c #B2BEC5", -"~ c #B3BFC5", -"{ c #DBE6EA", -"] c #EFFAFE", -"^ c #F9FDFF", -"/ c #FEFFFE", -"( c #FBFBFB", -"_ c #F4F4F4", -": c #B8DEEC", -"< c #16B0EB", -"[ c #21B7F0", -"} c #22B8F0", -"| c #BFEAFA", -"1 c #FEFEFD", -"2 c #FEFEFE", -"3 c #87D7F3", -"4 c #02ADEF", -"5 c #0AAEED", -"6 c #D8F2FB", -"7 c #F0F0F1", -"8 c #EEEEEF", -"9 c #EEEFEF", -"0 c #74C9EA", -"a c #34B3E3", -"b c #35B3E3", -"c c #35B3E4", -"d c #37B6E6", -"e c #3DBCEB", -"f c #3DBCEC", -"g c #47C1EF", -"h c #F1FAFD", -"i c #C2C1C3", -"j c #BBBDC0", -"k c #BBBDC1", -"l c #BABDC0", -"m c #BCBEC1", -"n c #D3D6D8", -"o c #F9FDFD", -"p c #F8FDFD", -"q c #F9FDFC", -"r c #FAFDFD", -"s c #FDFEFF", -"t c #F6F6F7", -"u c #BEBFC1", -"v c #E1E1E1", -"w c #FFFFFE", -"x c #F6F6F6", -"y c #DCDCDE", -"z c #DDDDDF", -"A c #DCDDDE", -"B c #AFCDDA", -"C c #52B5DC", -"D c #5DB6D9", -"E c #5AB6DA", -"F c #59B6DA", -"G c #5CB6DA", -"H c #5BB6DA", -"I c #5BB6D9", -"J c #6BC6E8", -"K c #80D1F0", -"L c #80D1EF", -"M c #DCF2F8", -"N c #86D8F7", -"O c #13B2EF", -"P c #D6F1F9", -"Q c #FDFDFD", -"R c #5EC9F0", -"S c #06AEEF", -"T c #05AEEF", -"U c #07AFEF", -"V c #26B9F1", -"W c #EEF9FC", -"X c #FAFAFA", -"Y c #CBCDD0", -"Z c #C9C9CB", -"` c #C6C8CA", -" . c #A5C2CC", -".. c #9BC1CE", -"+. c #9AC0CD", -"@. c #9BC0CD", -"#. c #99BFCC", -"$. c #97BECB", -"%. c #98BECC", -"&. c #ABD2E0", -"*. c #C4ECF9", -"=. c #C5EDFB", -"-. c #CDEFFA", -";. c #FCFEFC", -">. c #F2F2F2", -",. c #C0C0C3", -"'. c #BEBEC1", -"). c #BEBEC0", -"!. c #BFBEC0", -"~. c #C0BFC0", -"{. c #E2E1E1", -"]. c #EDECEC", -"^. c #C4C4C6", -"/. c #C5C4C6", -"(. c #BCC1C5", -"_. c #9CBECB", -":. c #9BBECB", -"<. c #9DBECB", -"[. c #9EBECA", -"}. c #A5BCC4", -"|. c #A0BDC8", -"1. c #9BBECC", -"2. c #BFDDE9", -"3. c #CBEEFB", -"4. c #CAEEFB", -"5. c #CAEEFA", -"6. c #E9F8FB", -"7. c #AEE4F9", -"8. c #03ADEF", -"9. c #B1E3F4", -"0. c #FDFEFC", -"a. c #DAF3FC", -"b. c #9BDDF6", -"c. c #61CBF4", -"d. c #67CDF4", -"e. c #F7FDFD", -"f. c #FEFFFD", -"g. c #DDDCDD", -"h. c #DEDDDE", -"i. c #F7F6F6", -"j. c #F8F8F8", -"k. c #E5E6E7", -"l. c #E8E8E9", -"m. c #E3E4E5", -"n. c #E1E1E2", -"o. c #E5E4E5", -"p. c #D0CFCF", -"q. c #BAB9BA", -"r. c #C4C3C3", -"s. c #F8F7F8", -"t. c #D2D1D2", -"u. c #BCBBBB", -"v. c #C3C1C2", -"w. c #E7E9EA", -"x. c #E9E9EA", -"y. c #DDDDDD", -"z. c #EDEDED", -"A. c #DCDCDC", -"B. c #F0F1F2", -"C. c #7D7C7D", -"D. c #2A2728", -"E. c #2D2A2B", -"F. c #393637", -"G. c #DAD9DA", -"H. c #B3B2B2", -"I. c #312D2E", -"J. c #EEEEEE", -"K. c #514F50", -"L. c #858384", -"M. c #B0AEAF", -"N. c #292627", -"O. c #2F2C2D", -"P. c #312E2F", -"Q. c #2E2C2D", -"R. c #4B4848", -"S. c #CDCCCD", -"T. c #EAE9EA", -"U. c #343031", -"V. c #2C292A", -"W. c #757374", -"X. c #FBFAFB", -"Y. c #9F9D9E", -"Z. c #403D3E", -"`. c #3A3738", -" + c #4A4748", -".+ c #373435", -"++ c #6F6D6F", -"@+ c #F3F4F5", -"#+ c #C1C0C1", -"$+ c #4D4A4B", -"%+ c #363334", -"&+ c #4B4849", -"*+ c #373434", -"=+ c #333031", -"-+ c #A1A1A3", -";+ c #5D5A5B", -">+ c #2A2627", -",+ c #B3B1B2", -"'+ c #4A4A4C", -")+ c #282526", -"!+ c #BDBFC1", -"~+ c #484546", -"{+ c #7E7C7C", -"]+ c #E6E6E7", -"^+ c #E7E7E7", -"/+ c #E5E7E8", -"(+ c #807E7F", -"_+ c #4D4C4E", -":+ c #E2E1E2", -"<+ c #7E7C7D", -"[+ c #4F4E50", -"}+ c #F0F0F0", -"|+ c #D7D9DA", -"1+ c #434041", -"2+ c #4E4D4F", -"3+ c #F6F7F7", -"4+ c #BFBEBF", -"5+ c #2B2728", -"6+ c #CDCDCE", -"7+ c #E7E6E7", -"8+ c #F1F2F2", -"9+ c #F7F7F8", -"0+ c #767475", -"a+ c #B5B6B7", -"b+ c #FAF9F9", -"c+ c #BAB9B9", -"d+ c #615E5F", -"e+ c #ABAAAB", -"f+ c #2D292A", -"g+ c #989798", -"h+ c #F2F4F5", -"i+ c #F3F3F3", -"j+ c #7F7D7E", -"k+ c #221E1F", -"l+ c #CBCBCB", -"m+ c #322F30", -"n+ c #484646", -"o+ c #797778", -"p+ c #828081", -"q+ c #2B2829", -"r+ c #E8E8E8", -"s+ c #292526", -"t+ c #B7B5B6", -"u+ c #F8F9F9", -"v+ c #BDBCBD", -"w+ c #252122", -"x+ c #E6E6E6", -"y+ c #F7F8F8", -"z+ c #4B4A4B", -"A+ c #8B898A", -"B+ c #3F3D3F", -"C+ c #F2F2F3", -"D+ c #8D8B8C", -"E+ c #474445", -"F+ c #F5F5F5", -"G+ c #A5A4A4", -"H+ c #2F2B2C", -"I+ c #9B999A", -"J+ c #383536", -"K+ c #808183", -"L+ c #C6C5C5", -"M+ c #4D494A", -"N+ c #3E3A3B", -"O+ c #7B7A7A", -"P+ c #F7F6F7", -"Q+ c #292628", -"R+ c #D0D2D3", -"S+ c #F0EFEF", -"T+ c #EAEAEA", -"U+ c #B2B1B1", -"V+ c #8C8A8B", -"W+ c #3F3D3E", -"X+ c #B4B3B3", -"Y+ c #504D4E", -"Z+ c #737272", -"`+ c #5A5758", -" @ c #706D6E", -".@ c #F2F1F1", -"+@ c #3F3B3C", -"@@ c #868485", -"#@ c #7D7B7B", -"$@ c #474547", -"%@ c #F2F3F4", -"&@ c #555253", -"*@ c #696667", -"=@ c #999898", -"-@ c #D6D6D6", -";@ c #E3E2E2", -">@ c #E9E9E9", -",@ c #444142", -"'@ c #B5B4B4", -")@ c #585556", -"!@ c #7A7879", -"~@ c #322E2F", -"{@ c #353132", -"]@ c #C2C1C2", -"^@ c #5D5B5C", -"/@ c #737374", -"(@ c #C2C1C1", -"_@ c #D1D0D0", -":@ c #787676", -"<@ c #454243", -"[@ c #DFDFDF", -"}@ c #FEFDFE", -"|@ c #CCCBCC", -"1@ c #262223", -"2@ c #CFCECE", -"3@ c #747375", -"4@ c #636263", -"5@ c #868484", -"6@ c #F1F1F1", -"7@ c #3D393A", -"8@ c #B8B9BA", -"9@ c #737172", -"0@ c #7C7B7C", -"a@ c #AAA9A9", -"b@ c #5B595A", -"c@ c #696767", -"d@ c #D7D6D6", -"e@ c #D5D5D5", -"f@ c #EBEBEC", -"g@ c #A8A6A7", -"h@ c #8F8D8E", -"i@ c #E6E5E5", -"j@ c #CBCBCC", -"k@ c #282425", -"l@ c #B7B6B6", -"m@ c #D7D6D7", -"n@ c #E4E3E3", -"o@ c #A9A8A8", -"p@ c #DFDEDF", -"q@ c #383435", -"r@ c #9E9D9E", -"s@ c #373536", -"t@ c #B2B3B5", -"u@ c #6A6768", -"v@ c #494647", -"w@ c #ECEBEC", -"x@ c #CFCECF", -"y@ c #EAEAEB", -"z@ c #373335", -"A@ c #AAA8A9", -"B@ c #5C5A5B", -"C@ c #6B696A", -"D@ c #CBCACB", -"E@ c #D8D7D7", -"F@ c #595758", -"G@ c #6A696A", -"H@ c #D9D8D8", -"I@ c #878585", -"J@ c #9B9A9B", -"K@ c #3B3839", -"L@ c #9D9B9C", -"M@ c #343132", -"N@ c #D5D4D4", -"O@ c #BEBDBD", -"P@ c #272324", -"Q@ c #D8D8D9", -"R@ c #9A9B9C", -"S@ c #242122", -"T@ c #CECDCE", -"U@ c #9C9B9C", -"V@ c #3E3C3D", -"W@ c #F0F2F2", -"X@ c #231F20", -"Y@ c #DAD9D9", -"Z@ c #7B797A", -"`@ c #514E4F", -" # c #332F30", -".# c #A1A2A3", -"+# c #ABA9AA", -"@# c #262324", -"## c #CAC9C9", -"$# c #696768", -"%# c #5E5C5D", -"&# c #AFAEAF", -"*# c #CFD0D1", -"=# c #E2E4E5", -"-# c #9A9899", -";# c #EDEEEE", -"># c #4C4A4C", -",# c #716F6F", -"'# c #A9A7A8", -")# c #E4E4E4", -"!# c #C0BFBF", -"~# c #656466", -"{# c #686566", -"]# c #9E9C9D", -"^# c #F9F9F9", -"/# c #59595A", -"(# c #F1F0F1", -"_# c #B8B7B8", -":# c #B9B8B8", -"<# c #605D5E", -"[# c #4E4B4C", -"}# c #F4F3F3", -"|# c #959494", -"1# c #FAF9FA", -"2# c #605E60", -"3# c #8D8C8D", -"4# c #595657", -"5# c #403C3D", -"6# c #DADBDD", -"7# c #E8E7E8", -"8# c #E6E5E6", -"9# c #747172", -"0# c #706E6F", -"a# c #9C9A9B", -"b# c #6F6D6D", -"c# c #E3E3E3", -"d# c #CCCCCC", -"e# c #575455", -"f# c #ABADAE", -"g# c #9F9FA0", -"h# c #E6E6E5", -"i# c #302D2E", -"j# c #8E8C8D", -"k# c #2E2B2C", -"l# c #7A7878", -"m# c #C3C2C3", -"n# c #524F50", -"o# c #484547", -"p# c #C6C6C6", -"q# c #DFDEDE", -"r# c #4C494A", -"s# c #525051", -"t# c #A7A6A6", -"u# c #CDCCCC", -"v# c #DBDADA", -"w# c #D3D3D3", -"x# c #B6B4B5", -"y# c #A4A3A4", -"z# c #E2E4E4", -"A# c #D9D8D9", -"B# c #D8D7D8", -"C# c #FDFCFC", -"D# c #D0D0D0", -"E# c #EEEDEE", -"F# c #A5A3A4", -"G# c #AFAEAE", -"H# c #D3D2D3", -"I# c #C5C4C4", -"J# c #A7A5A5", -"K# c #D4D3D3", -"L# c #F3F4F4", -"M# c #F9F9FA", -"N# c #FBFAFA", -"O# c #D4D3D4", -"P# c #D2D2D4", -"Q# c #DEDEDF", -"R# c #EAE9E9", -"S# c #C3C4C6", -"T# c #E9EAEB", -"U# c #F5F5F6", -"V# c #BFC1C2", -"W# c #C6C5C6", -"X# c #ECECEC", -"Y# c #F6F7F8", -"Z# c #DBDBDC", -"`# c #FDFCFD", -" $ c #F4F3F2", -".$ c #D4D5D6", -"+$ c #E1E0E1", -"@$ c #E2E2E2", -"#$ c #BCBEBF", -"$$ c #DCDEE0", -"%$ c #CECECF", -"&$ c #D3D5D6", -"*$ c #C5C4C5", -"=$ c #CACACA", -"-$ c #ACABAC", -";$ c #BFBFC0", -">$ c #CECECE", -",$ c #C2C2C3", -"'$ c #DBDADB", -")$ c #C9C9CA", -"!$ c #C8C7C8", -"~$ c #CDCFD0", -"{$ c #C9CACA", -"]$ c #E3E3E4", -"^$ c #E8EAEA", -"/$ c #B7B6B7", -"($ c #E4E4E5", -"_$ c #C5C5C6", -":$ c #E0E0E0", -"<$ c #BBBABB", -"[$ c #D2D4D5", -"}$ c #CCCCCD", -"|$ c #CACACB", -"1$ c #FEFFFF", -"2$ c #E4E6E7", -"3$ c #D7D9DB", -"4$ c #D7D7D8", -"5$ c #D8DADB", -"6$ c #F9FAF9", -"7$ c #B0AFB0", -"8$ c #FEFDFD", -"9$ c #D7D7D7", -"0$ c #C9C9C9", -"a$ c #DEDEDE", -"b$ c #C9C8C9", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + @ # # # # # # # # # # # # # # # # # # # # $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % & * * * * * * * * * * * * * * * * * * * * = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ; ; > , ; ; ; ' ) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ) { ] ] ] ] ] ] ] ^ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( _ _ _ _ _ _ _ : < < < < < < < < < < < < < [ } } } } } } } | 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 9 9 9 9 9 9 0 a a a a a a b a c a c a d e e e e e e f g h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 i * * * * * * * * j j j j j j k l m l m j n o p p q q q r s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t u * * * * * * * * * * * * * * * * * * * * v w w w w w w w / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x y z z z z z A B C D D E F F D D G F F H I J K K K K K K L M / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 O P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q Q Q Q Q Q Q Q R S S S S S T S S S T S S S U U U U U U U V W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X Y Z Z Z Z Z Z ` ...+.@.@.#.$.@.@.@.%.#.@.&.*.=.=.=.=.=.=.-.;.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.,.* * * * * * * '.).!.!.!.!.!.!.!.!.!.!.~.{.1 1 1 1 1 1 / 1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].^././././././.(._.:.<.[.}.|.<.<.|.}.[.<.1.2.3.4.4.4.4.4.5.6.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Q Q Q Q Q Q Q 7.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.9.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.a.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w 0.b.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.d.e.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 f.. . . . . . . . . . . . . . . . . . . . f.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . - g.g.g.g.g.h.i.. . . . % h.j.. . . . k.l.. . . . . % h.g.g.m.X . . . . . . . Q n.g.g.g.g.g.o.2 . . . . . . >.p.q.r.{.2 . . . . . . . s.t.u.v.w.. . . . . . . . x.y.x . . . . z.A.B.. . . . . . . . ", -". . . . . . . . C.D.E.E.E.E.F.G.. . . . H.I.J.. . . ( K.L.. . . . . M.N.O.P.Q.R.S.. . . . . . T.U.V.E.E.E.E.W.Q . . . . X.Y.Z.`. +.+V.++@+. . . 2 2 #+$+%+&+*+=+-+2 . . . . . ( ;+>+,+. . . _ '+)+!+. . . . . . . . ", -". . . . . . . Q ~+{+]+]+]+^+/++ . . . 2 (+_+X . . . :+V.q.. . . . 2 <+[+- }+|+1+2+3+. . . . . 4+5+6+7+7+7+k.8+. . . . 9+0+`.a+b+. s.c+d+x . . . 2 e+f+g+h+. i+j+k+l+. . . . . ^+m+n+o+. . Q p+m+q+^+. . . . . . . . ", -". . . . . . . r+s+t+. . . . . . . . . u+_+<+2 . . . v+w+x+. . . . y+z+L.2 . . A+B+C+. . . . . D+E+F+. . . . . . . . . G+E.t.. . . . 2 i+2 . . . y.H+I++ . . . J.J+K+. . . . 2 L+O.Y.M+x . ~.N+O+~+P+. . . . . . . . ", -". . . . . . . 4+Q+R+S+S+S+S+b+. . . . T+q+U+. . . . V+W+Q . . . . T+D.X+. . + Y+Z++ . . . . 2 `+ @- S+S+S+.@. . . . F++@@@2 . . . . 2 . . . . . #@$@%@. . . . 2 &@*@. . . . 2 =@Y+-@P.;@>@,@'@)@!@2 . . . . . . . . ", -". . . . . . . A+k+~@{@{@{@=+S.. . . . ]@>+A.. . . X ^@/@. . . . . ~.w+(@v _@:@<@[@. . . . . B.~@>+{@{@{@{@d+}@. . . |@1@2@. . . . . . . . . . i.F.D+. . . . . Q $+3@. . . . + 4@5@6@7@8@9@0@}+V.a@. . . . . . . . . ", -". . . . . . Q b@c@d@d@d@d@e@X . . . . D+1+i+. . . f@=+g@. . . . . h@k+U.I.s+o+i@. . . . . . j@k@l@d@d@d@m@n@. . . . o@m+x+. . . . . . . . . . p@k@l@. . . . . J.q@r@. . . . i+s@t@Q u@$+v@w@x@k@m@. . . . . . . . . ", -". . . . . . y@z@A@. . . . . . . . . . B@C@. . . . D@1@E@. . . . . F@G@z.H@%+I@2 . . . . . . J@K@_ . . . . . . . . . L@M@>@. . . . . . . . . . N@1@O@. . . . . '@P@p@. . . . Q@O.h.. R@S@T@2 U@V@W@. . . . . . . . . ", -". . . . . . l+X@Y@. . . . . . . . . . E+p+. . . 2 Z@`@x . . . . }+ #.#. . +#@###. . . . . 2 $#%#. . . . . . . . . . &#w+*#. . . . . W@. . . . =#N.-#. . . . ;#>#,#. . . . . '#<@_ . )#!#. . ~#{#2 . . . . . . . . . ", -". . . . . . ]#.+}+^#^#^#^#Q . . . . . /#Y+(#. Q _#>+:#. . . . . T@s+t.. . j.<#[#}#. . . . >.Z.|#1#^#^#^#X . . . . . r+P.2#S+. . i+Y.3#. . . . + 4#5#6#. . 7#;+~+8#. . . . . 9#0#2 . . . . F+K@a#. . . . . . . . . . ", -". . . . . Q b#k@I.I.I.I.`.c#. . . . . d#{@.+e#~+F.f#2 . . . . . g#`._ . . . h#i#j#Q . . . Y@k#H+I.I.I.I.l#. . . . . . m#Z.=+&@n#F.o#p#. . . . . q#r#5+s#s#m+C@7#2 . . . . + v@t#. . . . . -@i#u#. . . . . . . . . . ", -". . . . . 2 v#_@_@_@_@_@w#( . . . . . 2 i@x#y#u.7#w . . . . . . z#A#. . . . . g.B#C#. . . >._@_@_@_@_@D#^+. . . . . . . E#!#F#G#H#j.. . . . . . . i+I#J#G#e@Q . . . . . . + K#6@. . . . . .@_@^#. . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . Q L#+ . . . . . . . . . . . . . . . . ^#. . . . . Q + . . . . . . . . . . . . . . . 2 X . . . . . . . . . . . Q . . . . ( 2 . . . . . . . . . . . . . . . 2 M#. . . . N#. . . . . . . . . . . . . . . . . ", -". . . . . O#P#- . . . + Q#x . . . 2 :+R#. . . . S#y.. . . . T#.@. . . U#A.+ . . . . . . . . . v V#. . . . i+A.( . . . - W#2 . . . c#^#2 . . X#Q#Q . . . Y#Z#`#. . . $.$. . . 1#$ . . . C#+$F+. . . . . . . . . . . ", -". . . . . @$#$>.. . . $$%$&$. . . }+D@W#. . . Q *$!#. . . . =$X . . . G.-$F+. . . . . . . . Q e+;$2 . . . >$,$6@. . . @$'$. . . Q )$Q . . 2 p#!$% . . . ~${$>@. . . q#]$. . . ^$v#. . . 6@/$_ . . . . . . . . . . . ", -". . . . . t.%$y+. . . ($_$6@. . . :$<$8#. . . % A.[$. . . w N@. . . . }$|$1$. . . . . . . . 2$^+3$Q . . . 4$5$6$. . . @$[@. . . ^#v#. . . ( 7$R+8$. . . 9$0$Q . . . a$j.. . . ]+}+. . . J.b$_ . . . . . . . . . . . ", -". . . . . 2 2 . . . . . 2 . . . . J.x 2 . . . . 2 2 . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . 2 2 . . . . 2 . . . . . . . . Q >@2 . . . . . 2 . . . . . . . . 2 2 . . . . . 2 . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/openair1/EMOS/LTE/GUI/FFT.c b/openair1/EMOS/LTE/GUI/FFT.c deleted file mode 100644 index c93c4e3501..0000000000 --- a/openair1/EMOS/LTE/GUI/FFT.c +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include - -// ******* FFT function ********************************************************** - -#define PI 3.14159264359 -#define SWAP(a,b) tempr=(a); (a)=(b); (b)=tempr - -void FFT(float *data, // the vector with the outputs - // real part in even indexes - // imaginary part in the odd indexes - // for power conservation, the output should be normalized by 1/sqrt(nn) - unsigned long nn, // number of complex samples - int isign) // isign = 1 -> FFT, -1 -> iFFT - -{ - unsigned long n,mmax,m,j,istep,i; - float wtemp,wr,wpr,wpi,wi,theta; - float tempr,tempi; - - n = nn << 1; - j = 1; - - for( i = 1 ; i < n ; i += 2) { // The bit-reversal - if(j > i) { - SWAP(data[j-1],data[i-1]); // Exchanging the two complex number - SWAP(data[j],data[i]); - } - - m = n >> 1; - - while((m >= 2)&&(j > m)) { - j -= m; - m >>= 1; - } - - j += m; - } - - mmax = 2; - - while(n > mmax) { - istep = mmax << 1; - theta = isign*(-2*PI/mmax); - wtemp = sin(0.5 * theta); - wpr = -2.0 * wtemp * wtemp; - wpi = sin(theta); - wr = 1.0; - wi = 0.0; - - for (m = 1; m < mmax; m += 2) { - for (i = m; i <= n; i += istep) { - j = i + mmax; - tempr = wr*data[j-1] - wi*data[j]; - tempi = wr*data[j] + wi*data[j-1]; - data[j-1] = data[i-1] - tempr; - data[j] = data[i] - tempi; - data[i-1] += tempr; - data[i] += tempi; - } - - wr = (wtemp=wr)*wpr - wi*wpi + wr; - wi = wi*wpr + wtemp*wpi + wi; - } - - mmax = istep; - } -} - - diff --git a/openair1/EMOS/LTE/GUI/Makefile b/openair1/EMOS/LTE/GUI/Makefile deleted file mode 100644 index a3374efa5b..0000000000 --- a/openair1/EMOS/LTE/GUI/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -include $(OPENAIR_HOME)/common/utils/Makefile.inc -TOP_DIR = $(OPENAIR1_DIR) - -bin_PROGRAMS = emos_gui - -#emos_gui_SOURCES = emos_gui.c emos_gui_forms.c $(TOP_DIR)/PHY/CONFIG/openair_configure.c $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c FFT.c matrix_util.c -#emos_gui_HEADERS = emos_gui.h emos_gui_forms.h matrix_util.h -emos_gui_OBJS = emos_gui.o emos_gui_forms.o FFT.o matrix_util.o \ -$(TOP_DIR)/PHY/CONFIG/openair_configure.o $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.o $(TOP_DIR)/PHY/TOOLS/fft.o $(TOP_DIR)/PHY/CODING/ccoding_byte.o $(TOP_DIR)/PHY/CODING/crc_byte.o $(TOP_DIR)/PHY/CODING/viterbi.o $(TOP_DIR)/PHY/TOOLS/cdot_prod.o $(TOP_DIR)/PHY/INIT/lte_init.o $(TOP_DIR)/PHY/LTE_ESTIMATION/lte_sync_time.o $(TOP_DIR)/PHY/LTE_REFSIG/lte_ul_ref.o $(TOP_DIR)/PHY/LTE_TRANSPORT/srs_modulation.o $(TOP_DIR)/PHY/CODING/ccoding_byte_lte.o $(TOP_DIR)/PHY/CODING/viterbi_lte.o $(TOP_DIR)/PHY/LTE_REFSIG/lte_gold.o $(TOP_DIR)/PHY/LTE_TRANSPORT/lte_mcs.o $(TOP_DIR)/PHY/LTE_TRANSPORT/pcfich.o $(TOP_DIR)/PHY/LTE_TRANSPORT/phich.o $(TOP_DIR)/PHY/LTE_TRANSPORT/dci_tools.o $(TOP_DIR)/PHY/LTE_TRANSPORT/uci_tools.o $(TOP_DIR)/SIMULATION/TOOLS/taus.o $(TOP_DIR)/PHY/LTE_TRANSPORT/dlsch_modulation.o - -# $(TOP_DIR)/PHY/INIT/init_top.o - -# set the include path found by configure -INCLUDES = -I$(TOP_DIR) -I/usr/realtime/include -I/usr/include/X11 - -# the library search path. -CFLAGS += -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DEMOS -DNODE_RG -DCBMIMO1 -DPHY_CONTEXT -DOPENAIR_LTE -emos_gui_LDADD = -L/usr/lib -L/usr/local/lib -L/usr/realtime/lib -L/usr/X11R6/lib -lm -lforms -llxrt -lpthread -lX11 -lXpm -lgps - -all: emos_gui - -$(emos_gui_OBJS) : %.o : %.c - $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $< - -emos_gui : $(emos_gui_OBJS) - $(CC) -o emos_gui $(CFLAGS) $(emos_gui_OBJS) $(emos_gui_LDADD) - -clean: - rm -f $(emos_gui_OBJS) diff --git a/openair1/EMOS/LTE/GUI/emos_gui.c b/openair1/EMOS/LTE/GUI/emos_gui.c deleted file mode 100644 index a8fedef782..0000000000 --- a/openair1/EMOS/LTE/GUI/emos_gui.c +++ /dev/null @@ -1,1734 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#ifdef HAVE_CONFIG_H -#include -#endif - -// System includes -#include -#include -/* - #include - #include - #include - #include - #include - #include -*/ -#include -#include -#include - -// Realtime includes -#include -#include - -// Xform includes -#include - -// Openair includes -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#include "PHY/CONFIG/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif - -#include "MAC_INTERFACE/defs.h" -#include "MAC_INTERFACE/vars.h" - -#include "SCHED/phy_procedures_emos.h" - -// Program includes -#include "emos_gui.h" -#include "emos_gui_forms.h" -#include "matrix_util.h" - - -// Definition of the main form -FD_main_frm *main_frm; -Window main_wnd; -FD_config_dialog *config_frm; -Window config_wnd; - -// Diverse variables and default values -int power = TERM_OFF; -int record = REC_OFF; -int record_multi = REC_OFF; -int terminal_mode = TERM_MODE_MULTI; -int file_index = 0; -int emos_ready = EMOS_READY; -int openair_dev_fd; -double screen_refresh_period = 1; // in seconds -//int screen_refresh_in_frames = 0; // in frames -int fifo_fd = -1; -int frame_counter = 0; -int rec_frame_counter = 0; -FILE *dumpfile_id = NULL; -char *data_buffer; -int CHANNEL_BUFFER_SIZE; -int values_in_memory=0; -long long start_time; -int num_tx_ant = 2; -int num_ch = 2; -int terminal_idx = 0; -//int pdu_errors[2] = {0,0}; -//int pdu_errors_last[2] = {0,0}; -int domain_selector = TIME_DOMAIN; -int noise_selector = SNR; -int chsch_index; -int is_cluster_head = 0; -int node_id = 8; -int tx_gain = 0; -unsigned char mimo_mode = 2; -int checkpoint = 1; -int frame_tx; -time_t starttime_tmp; -struct tm starttime; -int current_dlsch_cqi; //this is actually defined in phy_procedures_lte_ue.c - we should get rid of this -int rate_adaptation = 1; -int use_label = 0; -unsigned int frequency = 0; - -/* -unsigned char tx_gain_table_c[36] = { - 113, 111, 0, 0, //-20dBm - 119, 118, 0, 0, //-15dBm - 126, 125, 0, 0, //-10dBm - 133, 131, 0, 0, //-5dBm - 139, 138, 0, 0, //0dBm - 147, 145, 0, 0, //5dBm - 152, 151, 0, 0, //10dBm - 160, 158, 0, 0, //15dBm - 177, 173, 30, 17}; //20dBm -unsigned int *tx_gain_table = (unsigned int*) tx_gain_table_c; -*/ -unsigned char tx_gain_table_ue[4] = {200, 200, 140, 140}; -unsigned char tx_gain_table_eNb[4] = {195, 195, 140, 140}; -unsigned int timing_advance = 0; -unsigned int tcxo = 128; -int freq_correction = 0; -//unsigned int rf_mode_ue=0; //mixer low gain, lna off -unsigned int rf_mode_ue=1; //mixer low gain, lna on -unsigned int rf_mode_eNb=2; //mixer high gain, lna on -// for the interference test we use a UE but set it to eNb mode -// unsigned int rf_mode_eNb=1; //mixer low gain, lna on - - - -fifo_dump_emos_UE fifo_output_UE; -fifo_dump_emos_eNb fifo_output_eNB; -char *fifo_buffer = NULL; -char *fifo_ptr = NULL; -char date_string[1024] = "date: "; -char dumpfile_dir[1024] = "$HOME/EMOS/data/"; -char label_str[16] = ""; - -// GUI variables -float power1_memory[2][SCREEN_MEMORY_SIZE]; -float power2_memory[2][SCREEN_MEMORY_SIZE]; -float noise1_memory[2][SCREEN_MEMORY_SIZE]; -float noise2_memory[2][SCREEN_MEMORY_SIZE]; -float snr1_memory[2][SCREEN_MEMORY_SIZE]; -float snr2_memory[2][SCREEN_MEMORY_SIZE]; -// float bw1_memory[]; -// float bw2_memory[]; -float capacity_memory[SCREEN_MEMORY_SIZE]; -float time_memory[SCREEN_MEMORY_SIZE]; -//float channel[NUMBER_OF_eNB_MAX][NB_ANTENNAS_RX*NB_ANTENNAS_TX][N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS]; -float channel[NUMBER_OF_eNB_MAX][NB_ANTENNAS_RX*NB_ANTENNAS_TX][NUMBER_OF_OFDM_CARRIERS_EMOS]; -//float channelT[NUMBER_OF_eNB_MAX][NB_ANTENNAS_RX*NB_ANTENNAS_TX][N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS]; -float subcarrier_ind[N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS]; -//float *delay_ind = NULL; - -//Openair variables -PHY_CONFIG PHY_config_mem; -PHY_CONFIG *PHY_config; - -// GPS -//char gpsd_buffer[GPSD_BUFFER_SIZE]; -//int gpsd_fd; -struct gps_data_t *gps_data = NULL; -struct gps_fix_t dummy_gps_data; - -// Function prototypes -void exit_callback(FL_OBJECT *ob, long user_data); -void power_callback(FL_OBJECT *ob, long user_data); -//void terminal_mode_callback(FL_OBJECT *ob, long user_data); -//void use_gps_callback(FL_OBJECT *ob, long user_data); -//void set_origin_callback(FL_OBJECT *ob, long user_data); -void refresh_callback(FL_OBJECT *ob, long user_data); -void record_callback(FL_OBJECT *ob, long user_data); -void checkpoint_callback(FL_OBJECT *ob, long user_data); -void new_data_callback(int fifo_fd, void* data); -void time_freq_callback(FL_OBJECT *ob, long user_data); -void noise_snr_callback(FL_OBJECT *ob, long user_data); -void input_callback(FL_OBJECT *ob, long user_data); -void label_callback(FL_OBJECT *ob, long user_data); -void label_btn_callback(FL_OBJECT *ob, long user_data); -void gps_data_callback(int gps_fd, void* data); - -void initialize_interface(); -void stop_interface(); -void refresh_interface(); -int open_dumpfile(); - -void message(const char *msg); -void error(const char *msg); - -int mac_phy_init(); - -// void get_gps_time_position(int socknum, char *buffer, int buffersize); -// int open_gpsd_socket(); -// void update_gps_data(struct gps_data_t *gps_data, char *buf); - -void help() -{ - printf("Valid options + default values: -c %d (# CHs), -n %d (# TX ant), -g %d (TX gain (dBm)), -h (help)\n", num_ch, num_tx_ant, tx_gain); -} - -int main(int argc, char *argv[]) -{ - char temp_text[1024]; - char c; - int ar,at,as; - long temp = 0; - int ioctl_result; - - printf("sizeof(fifo_dump_emos_UE) = %x\n",sizeof(fifo_dump_emos_UE)); - printf("sizeof(fifo_dump_emos_eNB) = %x\n",sizeof(fifo_dump_emos_eNb)); - printf("sizeof(gps_fix_t) = %x\n",sizeof(struct gps_fix_t)); - - while ((c = getopt (argc, argv, "hn:c:g:")) != -1) { - switch (c) { - case 'h': - help (); - exit (1); - - /* - case 'b': - is_cluster_head = atoi (optarg); - break; - case 'i': - node_id = atoi (optarg); - break; - */ - case 'g': - tx_gain = atoi (optarg); - break; - - case 'n': - num_tx_ant = atoi (optarg); - break; - - case 'c': - num_ch = atoi (optarg); - break; - - default: - help (); - exit (-1); - break; - } - } - - /* - // Initialize the buffers for the channels according to the number of TX antennas - channel = (float***) malloc(NB_ANTENNAS_RX * sizeof(float**)); - if (!channel) - error("Cannot allocate channel (1)"); - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) - { // Loops over the receive antennas - channel[ar] = (float**) malloc(num_ch * num_tx_ant * sizeof(float*)); - if (!channel[ar]) - error("Cannot allocate channel (2)"); - for (at = 0; at < num_tx_ant*num_ch; at++) - { // Loops over the transmit antennas - channel[ar][at] = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float)); - if (!channel[ar][at]) - error("Cannot allocate channel (3)"); - } - } - - channelT = (struct complexf***) malloc(NUMBER_OF_USEFUL_CARRIERS_EMOS * sizeof(struct complexf**)); - if (!channelT) - error("Cannot allocate channelT (1)"); - else - { - for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++) - { - channelT[as] = (struct complexf**) malloc(NB_ANTENNAS_RX * sizeof(struct complexf*)); - if (!channelT[as]) - error("Cannot allocate channelT (2)"); - else - { - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) - { // Loops over the transmit antennas - channelT[as][ar] = (struct complexf*) malloc(num_tx_ant * sizeof(struct complexf)); - if (!channelT[as][ar]) - error("Cannot allocate channelT (3)"); - } - } - } - } - - subcarrier_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float)); - if (!subcarrier_ind) - error("Cannot allocate subcarrier_ind"); - for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++) - subcarrier_ind[as] = as * num_tx_ant - NUMBER_OF_OFDM_CARRIERS_EMOS/2; - - delay_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float)); - if (!delay_ind) - error("Cannot allocate delay_ind"); - for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++) - delay_ind[as] = as / 7.68e6; - */ - - fl_initialize(&argc, argv, "EMOS terminal GUI", 0, 0); - main_frm = create_form_main_frm(); - config_frm = create_form_config_dialog(); - - // Get time stamp of startup time (for time difference calculations) - start_time = rt_get_time_ns(); - - fl_set_timer(main_frm->refresh_timer, screen_refresh_period); - fl_suspend_timer(main_frm->refresh_timer); - - //fl_set_timer(main_frm->gps_timer, 0.05); - //fl_suspend_timer(main_frm->gps_timer); - - stop_interface(); - - main_wnd = fl_show_form(main_frm->main_frm, FL_PLACE_HOTSPOT, FL_FULLBORDER, "EMOS terminal GUI"); - - // Check for openair device - if ((openair_dev_fd = open("/dev/openair0", O_RDWR,0)) < 0) { - //Could not find the module - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - - emos_ready = EMOS_NOT_READY; - - error("Openair module not found. Load modules first!"); - } else { - mac_phy_init(); - } - - //screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3); - - // set the default dumfile directory - sprintf(dumpfile_dir,"%s/EMOS/data/",getenv("HOME")); - printf("Default directory = %s\n",dumpfile_dir); - - fl_do_forms(); - - return EXIT_SUCCESS; -} - - -void initialize_interface() -{ - char temp_label[1024]; - - // Pannel widgets - ///////////////////////////// - - // Screen widgets - ///////////////////////////// - - // Labels - fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_ON); - - fl_set_object_lcolor(main_frm->sec0_lbl, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->sec1_lbl, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->sec2_lbl, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch11_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch11_sec0_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch12_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch12_sec0_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch21_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch21_sec0_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch22_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch22_sec0_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch11_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch11_sec1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch12_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch12_sec1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch21_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch21_sec1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch22_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch22_sec1_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch11_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch11_sec2_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch12_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch12_sec2_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch21_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch21_sec2_xyp, SCREEN_COLOR_ON); - - fl_set_object_color(main_frm->ch22_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->ch22_sec2_xyp, SCREEN_COLOR_ON); - - // Labels - sprintf(temp_label, "idx:"); - fl_set_object_label(main_frm->idx_lbl, temp_label); - fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_ON); - - - if(domain_selector == TIME_DOMAIN) { - fl_set_button(main_frm->time_domain_btn,1); - fl_set_button(main_frm->freq_domain_btn,0); - } else { - fl_set_button(main_frm->time_domain_btn,0); - fl_set_button(main_frm->freq_domain_btn,1); - } - - if(noise_selector == N0) { - fl_set_button(main_frm->n0_btn,1); - fl_set_button(main_frm->snr_btn,0); - } else { - fl_set_button(main_frm->n0_btn,0); - fl_set_button(main_frm->snr_btn,1); - } - - // Recording indicator OFF - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Sync indicator - fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Error indicator - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Buffer indicator - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF); - - // CBMIMO indicator - if(emos_ready) { - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - } else { - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - // GPS indicator - fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_OFF); - - // Fix indicator - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF); - - // X indicator - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF); - - // Y indicator - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF); - - // Date indicator - fl_set_object_label(main_frm->date_lbl, date_string); - fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_ON); - - // Refresh interval indicator - fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_ON); - sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period); - fl_set_object_label(main_frm->refresh_lbl, temp_label); - fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period); - - // BLER indicator - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_OFF); - - // REC'd frames indicator - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF); - - // RX mode indicator - fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_OFF); - - // Messages - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - - switch(terminal_idx) { - case 1: - fl_set_button(main_frm->terminal_btn1,1); - break; - - //case 2: - // fl_set_button(main_frm->terminal_btn2,1); - // break; - case 3: - fl_set_button(main_frm->terminal_btn3,1); - break; - //case 4: - // fl_set_button(main_frm->terminal_btn4,1); - // break; - } - - switch(mimo_mode) { - case 1: - fl_set_button(main_frm->siso_btn,1); - break; - - case 2: - fl_set_button(main_frm->alamouti_btn,1); - break; - - //case ANTCYCLING: - //fl_set_button(main_frm->antcycling_btn,1); - //break; - case 6: - fl_set_button(main_frm->precoding_btn,1); - break; - - default: - fl_set_button(main_frm->siso_btn,1); - break; - - } - -} - -void stop_interface() -{ - // Pannel widgets - ///////////////////////////// - - // Screen widgets - ///////////////////////////// - - // Labels - fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_BG); - - fl_set_object_lcolor(main_frm->sec0_lbl, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->sec1_lbl, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->sec2_lbl, SCREEN_COLOR_BG); - - // Graphs - fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch11_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch11_sec0_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch12_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch12_sec0_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch21_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch21_sec0_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch22_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch22_sec0_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch11_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch11_sec1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch12_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch12_sec1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch21_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch21_sec1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch22_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch22_sec1_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch11_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch11_sec2_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch12_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch12_sec2_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch21_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch21_sec2_xyp, SCREEN_COLOR_BG); - - fl_set_object_color(main_frm->ch22_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->ch22_sec2_xyp, SCREEN_COLOR_BG); - - // Labels - - // Index indicator - fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_BG); - - // Recording indicator OFF - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Sync indicator - fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Error indicator - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Buffer indicator - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_BG); - - // CBMIMO indicator - fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // GPS indicator - fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - - // Fix indicator - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - - // X indicator - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_BG); - - // Y indicator - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_BG); - - // Date indicator - fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_BG); - - // Refresh interval indicator - fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_BG); - - // BLER indicator - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_BG); - - // REC'd frames indicator - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_BG); - - // RX mode indicator - fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_BG); - - // Messages - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_BG); - - /* fl_set_object_color(main_frm->const1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_color(main_frm->const2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->const1_xyp, SCREEN_COLOR_BG); - fl_set_object_lcolor(main_frm->const2_xyp, SCREEN_COLOR_BG);*/ - -} - -void refresh_interface() -{ - char temp_label[1024]; - int i,aa,ar,at,as,ac, gps_error; - float disp_max_power = 0; - //struct complexf channel_temp[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]; //frequency response of one link of the MIMO channel - //struct complexf channel_temp2[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant/2]; //frequency response of one link of the MIMO channel - float norm = 0; - double snr_lin; - int length; - - static RTIME last_timestamp = (RTIME) 0; - static RTIME timestamp = (RTIME) 0; - int disp_min_power = 30; - - if (data_buffer) { - if (is_cluster_head) - timestamp = fifo_output_eNB.timestamp; - else - timestamp = fifo_output_UE.timestamp; - - // Prepare data for Power meters - if (last_timestamp != timestamp) { - //printf("rx_power=%d, noise_power=%d, snr=%d\n",fifo_output->rx_power_db[0],fifo_output->n0_power_db[0],fifo_output->rx_power_db[0]-fifo_output->n0_power_db[0]); - - // FIFO vector filling - for (i = 0; i < SCREEN_MEMORY_SIZE - 1; i++) { - time_memory[i] = time_memory[i+1]; - - for (chsch_index=0; chsch_index<2; chsch_index++) { - power1_memory[chsch_index][i] = power1_memory[chsch_index][i+1]; - power2_memory[chsch_index][i] = power2_memory[chsch_index][i+1]; - noise1_memory[chsch_index][i] = noise1_memory[chsch_index][i+1]; - noise2_memory[chsch_index][i] = noise2_memory[chsch_index][i+1]; - snr1_memory[chsch_index][i] = snr1_memory[chsch_index][i+1]; - snr2_memory[chsch_index][i] = snr2_memory[chsch_index][i+1]; - } - - //capacity_memory[i] = capacity_memory[i+1]; - } - - - time_memory[SCREEN_MEMORY_SIZE - 1] = (float)(timestamp - start_time) / (float)1e9; - - for (chsch_index=0; chsch_index<2; chsch_index++) { - if (!is_cluster_head) { - power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].rx_rssi_dBm[chsch_index]; - power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].rx_rssi_dBm[chsch_index]; - noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].n0_power_dB[0]; - noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].n0_power_dB[1]; - snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].wideband_cqi_tot[chsch_index]; - snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].wideband_cqi_tot[chsch_index]; - } else { - power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_tot_dBm; - power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_tot_dBm; - noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_dB[0]; - noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_dB[1]; - snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].wideband_cqi_tot[chsch_index]; - snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].wideband_cqi_tot[chsch_index]; - } - } - - capacity_memory[SCREEN_MEMORY_SIZE - 1] = 0; - - values_in_memory = SCREEN_MEMORY_SIZE; - } - - last_timestamp = timestamp; - - // Pannel widgets - ///////////////////////////// - - // Screen widgets - ///////////////////////////// - - // Power meters - fl_set_xyplot_data(main_frm->pwr1_xyp, time_memory, power1_memory[0], values_in_memory, "", "time (s)", "dBm"); - //fl_add_xyplot_overlay(main_frm->pwr1_xyp, 1, time_memory, power1_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->pwr1_xyp, -110, -40); - fl_set_xyplot_data(main_frm->pwr2_xyp, time_memory, power2_memory[0], values_in_memory, "", "time (s)", "dBm"); - //fl_add_xyplot_overlay(main_frm->pwr2_xyp, 1, time_memory, power2_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->pwr2_xyp, -110, -40); - - if (noise_selector == N0) { - fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, noise1_memory[0], values_in_memory, "", "time (s)", "dB"); - //fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, noise1_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40); - fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, noise2_memory[0], values_in_memory, "", "time (s)", "dB"); - //fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, noise2_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40); - //fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 1); - } else { - fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, snr1_memory[0], values_in_memory, "", "time (s)", "dB"); - //fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, snr1_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40); - fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, snr2_memory[0], values_in_memory, "", "time (s)", "dB"); - //fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, snr2_memory[1], values_in_memory, FL_BLUE); - fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40); - } - - // Channel response - // if(domain_selector == FREQ_DOMAIN) - if (is_cluster_head==0) { - - //convert to float - disp_min_power = 30; - disp_max_power = 80; - - for (as=0; asch11_sec0_xyp, subcarrier_ind, channel[0][0], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch11_sec0_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch11_sec0_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch11_sec0_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch12_sec0_xyp, subcarrier_ind, channel[0][1], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch12_sec0_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch12_sec0_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch12_sec0_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch21_sec0_xyp, subcarrier_ind, channel[0][2], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch21_sec0_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch21_sec0_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch21_sec0_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch22_sec0_xyp, subcarrier_ind, channel[0][3], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch22_sec0_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch22_sec0_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch22_sec0_xyp, disp_min_power, disp_max_power); - - fl_set_xyplot_data(main_frm->ch11_sec1_xyp, subcarrier_ind, channel[1][0], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch11_sec1_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch11_sec1_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch11_sec1_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch12_sec1_xyp, subcarrier_ind, channel[1][1], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch12_sec1_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch12_sec1_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch12_sec1_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch21_sec1_xyp, subcarrier_ind, channel[1][2], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch21_sec1_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch21_sec1_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch21_sec1_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch22_sec1_xyp, subcarrier_ind, channel[1][3], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch22_sec1_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch22_sec1_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch22_sec1_xyp, disp_min_power, disp_max_power); - - fl_set_xyplot_data(main_frm->ch11_sec2_xyp, subcarrier_ind, channel[2][0], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch11_sec2_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch11_sec2_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch11_sec2_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch12_sec2_xyp, subcarrier_ind, channel[2][1], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch12_sec2_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch12_sec2_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch12_sec2_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch21_sec2_xyp, subcarrier_ind, channel[2][2], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch21_sec2_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch21_sec2_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch21_sec2_xyp, disp_min_power, disp_max_power); - fl_set_xyplot_data(main_frm->ch22_sec2_xyp, subcarrier_ind, channel[2][3], length, "", "subcarrier index", "dB"); - fl_set_xyplot_xtics(main_frm->ch22_sec2_xyp, 0, 0); - //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1); - //fl_set_xyplot_xbounds(main_frm->ch22_sec2_xyp, -100, 100); - fl_set_xyplot_ybounds(main_frm->ch22_sec2_xyp, disp_min_power, disp_max_power); - - - if (!is_cluster_head) { - // BLER - sprintf(temp_label, "BLER: %d%%", fifo_output_UE.pbch_fer[0]); - fl_set_object_label(main_frm->bler_lbl, temp_label); - fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_ON); - } - - // RX mode - if (!is_cluster_head) { - switch (fifo_output_UE.mimo_mode) { - case 1: - sprintf(temp_label, "RX mode: SISO"); - break; - - case 2: - sprintf(temp_label, "RX mode: ALAMOUTI"); - break; - - //case ANTCYCLING: - //sprintf(temp_label, "RX mode: ANTCYCLING"); - //break; - case 6: - sprintf(temp_label, "RX mode: LAYER1 PRECODING"); - break; - - default: - sprintf(temp_label, "RX mode: %d",fifo_output_UE.mimo_mode); - } - - fl_set_object_label(main_frm->rx_mode_lbl, temp_label); - fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_ON); - } - - - } - - // update GPS - if(gps_data) { - if (gps_data->online) { - switch(gps_data->fix.mode) { - case MODE_2D: - // Fix indicator - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "2D"); - - // X indicator - sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude); - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lat_lbl, temp_label); - - // Y indicator - sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude); - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lon_lbl, temp_label); - - break; - - case MODE_3D: - // Fix indicator - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "3D"); - - // X indicator - sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude); - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lat_lbl, temp_label); - - // Y indicator - sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude); - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON); - fl_set_object_label(main_frm->gps_lon_lbl, temp_label); - break; - - default: - // STATUS_NO_FIX: - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "NO"); - - // X indicator - sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude); - fl_set_object_label(main_frm->gps_lat_lbl, temp_label); - fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF); - - // Y indicator - sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude); - fl_set_object_label(main_frm->gps_lon_lbl, temp_label); - fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF); - break; - } - } else { - // STATUS_NO_FIX: - fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF); - fl_set_object_label(main_frm->fix_lbl, "NO"); - - //printf("GPS not online\n"); - } - } - -} - -void gps_data_callback(int gps_fd, void* data) -{ - //char tmptxt[1024]; - //printf("GPS timer called\n"); - if (gps_data) { - if (gps_poll(gps_data) != 0) { - //sprintf(tmptxt,"Error polling data from GPS, gps_data = %x", gps_data); - error("Error polling data from GPS"); - } - - //else - //printf("GPS poll called\n"); - } - - //fl_set_timer(ob, 0.05); - -} - -void message(const char *msg) -{ - fl_set_object_label(main_frm->msg_text, msg); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); -} - -void error(const char *msg) -{ - fprintf(stderr,"%s\n",msg); - fl_set_object_label(main_frm->msg_text, msg); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); -} - -// -// EXIT function -// -void exit_callback(FL_OBJECT *ob, long user_data) -{ - char temp_text[1024]; - int ar,at,as; - - if (power) { - //message("Turn the terminal off with prior to exiting."); - sprintf(temp_text, "Turn the terminal off with prior to exiting."); - fl_set_object_label(main_frm->msg_text, temp_text); - } else { - printf("exiting normally.\n"); - - // Openair device - close(openair_dev_fd); - - /* - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) - { // Loops over the receive antennas - for (at = 0; at < num_tx_ant*num_ch; at++) - { // Loops over the transmit antennas - if (channel[ar][at]) free(channel[ar][at]); - } - if (channel[ar]) free(channel[ar]); - } - if (channel) free(channel); - channel = NULL; - for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++) - { // Loops over the receive antennas - for (ar = 0; ar < NB_ANTENNAS_RX; ar++) - { // Loops over the transmit antennas - if (channelT[as][ar]) free(channelT[as][ar]); - } - if (channelT[as]) free(channelT[as]); - } - if (channelT) free(channelT); - channelT = NULL; - if (subcarrier_ind) free(subcarrier_ind); - subcarrier_ind = NULL; - if (delay_ind) free(delay_ind); - delay_ind = NULL; - */ - - // remove all io handlers - if (fifo_fd>=0) fl_remove_io_callback(fifo_fd, FL_READ, &new_data_callback); - - if (gps_data) fl_remove_io_callback(gps_data->gps_fd, FL_READ , &gps_data_callback); - - // close the GPS - if (gps_data) gps_close(gps_data); - - fl_finish(); - exit(0); - } -} - -void power_callback(FL_OBJECT *ob, long user_data) -{ - int ioctl_result; - char temp_text[1024]; - unsigned int fc; - //unsigned char gains[4]; - - - if (emos_ready) { - // Turns on and off the acquisition - if (!power) { - if (terminal_idx!=0) { - // Turn the receiver on - - //gains[0] = 177; - //gains[1] = 173; - //gains[2] = 30; - //gains[3] = 17; - - ioctl_result = 0; - - if (terminal_idx==1) { - is_cluster_head = 1; - node_id = 0; - PHY_config->tdd = 1; - PHY_config->dual_tx = 1; - fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7); - - // Load the configuration to the device driver - ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config); - ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_eNb); - ioctl_result += ioctl(openair_dev_fd, openair_RX_RF_MODE,&rf_mode_eNb); - ioctl_result += ioctl(openair_dev_fd, openair_SET_DLSCH_RATE_ADAPTATION, &rate_adaptation); - ioctl_result += ioctl(openair_dev_fd, openair_SET_DLSCH_TRANSMISSION_MODE,&mimo_mode); - ioctl_result += ioctl(openair_dev_fd, openair_START_1ARY_CLUSTERHEAD, &fc); - } else if (terminal_idx==2) { - is_cluster_head = 2; - node_id = 1; - PHY_config->tdd = 1; - PHY_config->dual_tx = 1; - fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7); - ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config); - ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_eNb); - ioctl_result += ioctl(openair_dev_fd, openair_START_2ARY_CLUSTERHEAD, &fc); - } else if (terminal_idx==3) { - is_cluster_head = 0; - node_id = 8; - PHY_config->tdd = 1; - PHY_config->dual_tx = 0; - fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7); - - tx_gain_table_ue[0]= atoi(fl_get_input(main_frm->rf_gain_txt)); - tx_gain_table_ue[1]= atoi(fl_get_input(main_frm->rf_gain_txt)); - tx_gain_table_ue[2]= atoi(fl_get_input(main_frm->digital_gain_txt)); - tx_gain_table_ue[3]= atoi(fl_get_input(main_frm->digital_gain_txt)); - rf_mode_ue= atoi(fl_get_input(main_frm->rf_mode_txt)); - - - ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config); - ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_ue); - //ioctl_result += ioctl(openair_dev_fd, openair_SET_TIMING_ADVANCE,&timing_advance); - ioctl_result += ioctl(openair_dev_fd, openair_SET_TCXO_DAC,&tcxo); - ioctl_result += ioctl(openair_dev_fd, openair_SET_FREQ_OFFSET,&freq_correction); - ioctl_result += ioctl(openair_dev_fd, openair_RX_RF_MODE,&rf_mode_ue); - ioctl_result += ioctl(openair_dev_fd, openair_START_NODE, &fc); - } else if (terminal_idx==4) { - is_cluster_head = 0; - node_id = 9; - PHY_config->tdd = 1; - PHY_config->dual_tx = 0; - fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7); - ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config); - ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_ue); - ioctl_result+=ioctl(openair_dev_fd, openair_START_NODE, &fc); - } else - error("Unknown terminal index"); - - if (ioctl_result != 0) { - printf(temp_text, "Error starting terminal mode!"); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - // Open the EMOS FIFO - fifo_fd = open(CHANSOUNDER_FIFO_DEV, O_RDONLY); - - if (fifo_fd < 0) { - printf(temp_text, "Error opening the EMOS FIFO!"); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - // flush the FIFO - if (rtf_reset(fifo_fd)) - error("Error reseting FIFO"); - - // Ties the FIFO handling routine - fl_add_io_callback(fifo_fd, FL_READ, &new_data_callback, NULL); - - // open GPS - gps_data = gps_open("127.0.0.1","2947"); - - if (gps_data == NULL) { - fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - error("Could not open GPS"); - } else { - if (gps_query(gps_data, "w+x\n") != 0) { - //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data); - error("Error sending command to GPS"); - } else - fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - } - - if (gps_data) - fl_add_io_callback(gps_data->gps_fd, FL_READ, &gps_data_callback, NULL); - - - // resume timer - fl_resume_timer(main_frm->refresh_timer); - //fl_resume_timer(main_frm->gps_timer); - - initialize_interface(); - power = TERM_ON; - } else { - error("Set terminal index first!"); - } - } else { - if (record) { - sprintf(temp_text, "Still recording! Stop recording prior to powering down."); - fl_set_object_label(main_frm->msg_text, temp_text); - } else { - fl_suspend_timer(main_frm->refresh_timer); - - // Turn the receiver off - fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7); - ioctl_result = ioctl(openair_dev_fd, openair_STOP, &fc); - - if (ioctl_result != 0) { - printf(temp_text, "Error stopping terminal mode!"); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - } - - //fl_suspend_timer(main_frm->gps_timer); - - stop_interface(); - power = TERM_OFF; - } - } - } -} - - - -// -// Refresh function -// -void refresh_callback(FL_OBJECT *ob, long user_data) -{ - char temp_label[1024]; - - // update the dial - screen_refresh_period = fl_get_dial_value(main_frm->refresh_dial); - screen_refresh_period += (double) user_data / 10.0; - - if (screen_refresh_period > 5) - screen_refresh_period = 5; - else if (screen_refresh_period < 0.05) - screen_refresh_period = 0.05; - - fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period); - - fl_set_timer(main_frm->refresh_timer,screen_refresh_period); - - // Update the screen refresh in frames - // screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3)+1; - - sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period); - fl_set_object_label(main_frm->refresh_lbl, temp_label); -} - -// -// Refresh function -// -void record_callback(FL_OBJECT *ob, long user_data) -{ - char temp_text[1024]; - - if(power) { - // Terminal mode leds - if(record) { - // @TODO write rest of the buffer to disk - - // Turn off recording - record = REC_OFF; - rec_frame_counter = 0; - - // release the buffer - free(fifo_buffer); - fifo_buffer = NULL; - data_buffer = NULL; - fifo_ptr = NULL; - - // close the dumpfile - fclose(dumpfile_id); - dumpfile_id = NULL; - - } else { - // Turn on recording - if (open_dumpfile() == 0) - record = REC_ON; - else - error("Error opening dumpfile"); - - } - } -} - -void checkpoint_callback(FL_OBJECT *ob, long user_data) -{ - char temp_label[1024]; - char filename[1024]; - FILE *checkpoints_file = NULL; - - if (user_data==1) - checkpoint++; - else if (user_data==-1) - checkpoint--; - else if (user_data==0) { - sprintf(filename,"%scheckpoints.txt",dumpfile_dir); - checkpoints_file = fopen(filename,"a"); - - if (checkpoints_file) { - fprintf(checkpoints_file,"date %d%d%d_%d%d%d, checkpoint %d, frame_tx %d, file_index %d, frame_counter %d\n", 1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, - starttime.tm_min, starttime.tm_sec, checkpoint, frame_tx, file_index, frame_counter); - fclose(checkpoints_file); - } - - checkpoint++; - } - - sprintf(temp_label, "Next CP: %d", checkpoint); - fl_set_object_label(main_frm->next_cp, temp_label); - - -} - - -int open_dumpfile() -{ - char dumpfile_name[1024]; - char temp_label[1024]; - - // create the dumpfile buffer - // allocate memory for NO_FRAMES_DISK channes estimations - - fifo_buffer = malloc(NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE); - fifo_ptr = fifo_buffer; - - if(fifo_buffer == NULL) { - error( "Could not allocate memory for fifo2file_buffer"); - return -1; - } - - // open the dumpfile - - time(&starttime_tmp); - localtime_r(&starttime_tmp,&starttime); - - if (use_label) - sprintf(dumpfile_name,"%sdata_term%d_idx%02d_%s_%04d%02d%02dT%02d%02d%02d.EMOS",dumpfile_dir,terminal_idx,file_index,label_str,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, - starttime.tm_hour, starttime.tm_min, starttime.tm_sec); - else - sprintf(dumpfile_name,"%sdata_term%d_idx%02d_%04d%02d%02dT%02d%02d%02d.EMOS",dumpfile_dir,terminal_idx,file_index,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, - starttime.tm_min, starttime.tm_sec); - - dumpfile_id = fopen(dumpfile_name,"w"); - - if (dumpfile_id == NULL) { - sprintf(temp_label,"Error opening dumpfile %s", dumpfile_name); - error(temp_label); - return -1; - } - - sprintf(date_string,"date: %04d%02d%02dT%02d%02d%02d",1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, starttime.tm_min, starttime.tm_sec); - fl_set_object_label(main_frm->date_lbl, date_string); - sprintf(temp_label, "idx: %d", file_index); - fl_set_object_label(main_frm->idx_lbl, temp_label); - - return 0; -} - -// -// Prcesses all the new data in the FIFO -// -void new_data_callback(int fifo_fd, void* data) -{ - int n_bytes = 0; - char temp_text[1024]; - - // Read data from FIFO - if (is_cluster_head) { - data_buffer = (char*) &fifo_output_eNB; - CHANNEL_BUFFER_SIZE = sizeof(fifo_dump_emos_eNb); - } else { - data_buffer = (char*) &fifo_output_UE; - CHANNEL_BUFFER_SIZE = sizeof(fifo_dump_emos_UE); - } - - n_bytes = rtf_read_all_at_once(fifo_fd, data_buffer, CHANNEL_BUFFER_SIZE); - - if (n_bytes != CHANNEL_BUFFER_SIZE) { - sprintf(temp_text, "Error reading FIFO."); - fl_set_object_label(main_frm->msg_text, temp_text); - fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON); - } - - if (is_cluster_head) { - frame_tx = fifo_output_eNB.frame_tx; - } else { - // if UE is not synched use rec_frame_counter instead - if (fifo_output_UE.UE_mode == NOT_SYNCHED) - frame_tx = rec_frame_counter; - else - frame_tx = fifo_output_UE.frame_tx; - } - - - if (terminal_mode == TERM_MODE_MULTI) { - if (frame_tx % REC_FRAMES_MAX < REC_FRAMES_PER_FILE) - record_multi = REC_ON; - else - record_multi = REC_OFF; - - file_index = frame_tx/REC_FRAMES_MAX % REC_FILE_IDX_MAX; - } - - if((frame_counter % 1000) == 0) { - printf("record = %d. record_multi = %d, terminal_mode = %d, frame_tx=%d, file_index = %d\n", record, record_multi, terminal_mode, frame_tx, file_index); - } - - frame_counter++; - - if ((record==REC_ON && terminal_mode == TERM_MODE_SINGL) || (record==REC_ON && record_multi==REC_ON && terminal_mode == TERM_MODE_MULTI)) { - // Recording indicator ON - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_ON); - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_ON); - - if (dumpfile_id == NULL) { - error("Dumpfile not open"); - } else { - // copy the data to the fifo buffer - memcpy(fifo_ptr, data_buffer, CHANNEL_BUFFER_SIZE); - fifo_ptr += CHANNEL_BUFFER_SIZE; - rec_frame_counter++; - - sprintf(temp_text,"Buffer: %3d%%", ((rec_frame_counter%NO_ESTIMATES_DISK)*100/NO_ESTIMATES_DISK)); - fl_set_object_label(main_frm->buffer_lbl,temp_text); - sprintf(temp_text,"Rec'd Frames: %d", rec_frame_counter); - fl_set_object_label(main_frm->n_recd_frames_lbl,temp_text); - - // store data to disk - if (rec_frame_counter%NO_ESTIMATES_DISK==0) { - //reset stuff - fifo_ptr = fifo_buffer; - - //flush buffer to disk - printf("flushing buffer to disk\n"); - - if (fwrite(fifo_buffer, sizeof(char), NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE, dumpfile_id) != NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE) { - message("Error writing to dumpfile, stopping recording"); - record = REC_OFF; - } - - // write GPS data to disk - if (gps_data) { - if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - message("Error writing to dumpfile, stopping recording"); - record = REC_OFF; - } - } else { - message("WARNING: No GPS data available, storing dummy packet"); - - if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) { - message("Error writing to dumpfile, stopping recording"); - record = REC_OFF; - } - } - } - } - } else if (record==REC_ON && record_multi==REC_OFF && terminal_mode == TERM_MODE_MULTI) { - // Recording indicator Ready - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF); - - if (rec_frame_counter > 0) { - // Turn off recording - record = REC_OFF; - rec_frame_counter = 0; - - // release the buffer - free(fifo_buffer); - fifo_buffer = NULL; - data_buffer = NULL; - fifo_ptr = NULL; - - // close the dumpfile - fclose(dumpfile_id); - dumpfile_id = NULL; - - // open another dumpfile - if (open_dumpfile() == 0) - record = REC_ON; - else - error("Error opening dumpfile"); - } - } else { //record==REC_OFF - // Recording indicator OFF - fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF); - fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF); - fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF); - } -} - -// -// Refresh function -// -void terminal_button_callback(FL_OBJECT *ob, long user_data) -{ - char temp_label[1024]; - fl_set_button(main_frm->terminal_btn1,0); - //fl_set_button(main_frm->terminal_btn2,0); - fl_set_button(main_frm->terminal_btn3,0); - //fl_set_button(main_frm->terminal_btn4,0); - fl_set_button(ob,1); - terminal_idx = user_data; - - if (terminal_idx == 1) { - sprintf(temp_label,"%d",tx_gain_table_eNb[0]); - fl_set_input(main_frm->rf_gain_txt, temp_label); - sprintf(temp_label,"%d",tx_gain_table_eNb[2]); - fl_set_input(main_frm->digital_gain_txt, temp_label); - sprintf(temp_label,"%d",rf_mode_eNb); - fl_set_input(main_frm->rf_mode_txt, temp_label); - sprintf(temp_label,"%d",frequency); - fl_set_input(main_frm->freq_txt, temp_label); - sprintf(temp_label,"%d",tcxo); - fl_set_input(main_frm->tcxo_txt, temp_label); - } else if (terminal_idx == 3) { - sprintf(temp_label,"%d",tx_gain_table_ue[0]); - fl_set_input(main_frm->rf_gain_txt, temp_label); - sprintf(temp_label,"%d",tx_gain_table_ue[2]); - fl_set_input(main_frm->digital_gain_txt, temp_label); - sprintf(temp_label,"%d",rf_mode_ue); - fl_set_input(main_frm->rf_mode_txt, temp_label); - sprintf(temp_label,"%d",frequency); - fl_set_input(main_frm->freq_txt, temp_label); - sprintf(temp_label,"%d",tcxo); - fl_set_input(main_frm->tcxo_txt, temp_label); - } -} - -void rx_mode_button_callback(FL_OBJECT *ob, long user_data) -{ - int ioctl_result; - - fl_set_button(main_frm->siso_btn,0); - fl_set_button(main_frm->alamouti_btn,0); - fl_set_button(main_frm->precoding_btn,0); - fl_set_button(ob,1); - mimo_mode = user_data; - - if (power) - ioctl_result=ioctl(openair_dev_fd,openair_SET_DLSCH_TRANSMISSION_MODE,&mimo_mode); -} - -void link_adpt_callback(FL_OBJECT *ob, long user_data) -{ - int ioctl_result; - - rate_adaptation = fl_get_button(main_frm->la_btn); - - if (power) - ioctl_result = ioctl(openair_dev_fd, openair_SET_DLSCH_RATE_ADAPTATION, &rate_adaptation); -} - - -// -// Time/Freq domain selector -// -void time_freq_callback(FL_OBJECT *ob, long user_data) -{ - fl_set_button(main_frm->time_domain_btn,0); - fl_set_button(main_frm->freq_domain_btn,0); - fl_set_button(ob,1); - domain_selector = user_data; -} - -// -// SNR/N0 selector -// -void noise_snr_callback(FL_OBJECT *ob, long user_data) -{ - fl_set_button(main_frm->snr_btn,0); - fl_set_button(main_frm->n0_btn,0); - fl_set_button(ob,1); - noise_selector = user_data; - printf("noise_selector = %d\n",noise_selector); -} - -void refresh_timer_callback(FL_OBJECT *ob, long user_data) -{ - refresh_interface(); - fl_set_timer(ob, screen_refresh_period); -} - -void config_btn_callback(FL_OBJECT *ob, long user_data) -{ - - config_wnd = fl_show_form(config_frm->config_dialog, FL_PLACE_HOTSPOT, FL_FULLBORDER, "Select Directory"); - fl_set_input(config_frm->dir_input,dumpfile_dir); - -} - -void get_dir_callback(FL_OBJECT *ob, long user_data) -{ - const char *filename; - filename = fl_get_input(config_frm->dir_input); - - if (user_data==0) - strcpy(dumpfile_dir, filename); - - printf("Directory = %s\n",dumpfile_dir); - fl_hide_form(config_frm->config_dialog); -} - -void input_callback(FL_OBJECT *ob, long user_data) -{ - tx_gain_table_eNb[0]= atoi(fl_get_input(main_frm->rf_gain_txt)); - tx_gain_table_eNb[1]= atoi(fl_get_input(main_frm->rf_gain_txt)); - tx_gain_table_eNb[2]= atoi(fl_get_input(main_frm->digital_gain_txt)); - tx_gain_table_eNb[3]= atoi(fl_get_input(main_frm->digital_gain_txt)); - rf_mode_eNb= atoi(fl_get_input(main_frm->rf_mode_txt)); - frequency = atoi(fl_get_input(main_frm->freq_txt)); - tcxo = atoi(fl_get_input(main_frm->tcxo_txt)); - -} - -void label_callback(FL_OBJECT *ob, long user_data) -{ - strcpy(label_str,fl_get_input(main_frm->label_input)); - - if (label_str) { - fl_set_button(main_frm->label_button,1); - use_label = 1; - } -} - -void label_btn_callback(FL_OBJECT *ob, long user_data) -{ - use_label = fl_get_button(main_frm->label_button); - - if (!use_label) - fl_set_input(main_frm->label_input, ""); -} - -// -// Initializes the MAC and PHY vars -// -int mac_phy_init() -{ - int ioctl_result; - - // FILE *config; --> already declared in config_vars.h - // FILE *scenario; --> already declared in config_vars.h - - char temp_text[1024]; - - // Load configuration files - if ((config = fopen("./config.cfg","r")) == NULL) { - error("Openair configuration file could not be found!"); - emos_ready = EMOS_NOT_READY; - return -1; - } - - if ((scenario = fopen("./scenario.scn","r")) == NULL) { - error("Openair scenario file could not be found!"); - emos_ready = EMOS_NOT_READY; - return -1; - } - - // Load openair configuration - PHY_config = (PHY_CONFIG *)&PHY_config_mem; - PHY_vars = malloc(sizeof(PHY_VARS)); - mac_xface = malloc(sizeof(MAC_xface)); - - reconfigure_MACPHY(scenario); - printf("reconfigure_MACPHY() done.\n"); - -#ifndef OPENAIR_LTE - phy_init(NB_ANTENNAS_TX); -#else - lte_frame_parms = &(PHY_config->lte_frame_parms); - /* - lte_ue_common_vars = &(PHY_vars->lte_ue_common_vars); - lte_ue_dlsch_vars = &(PHY_vars->lte_ue_dlsch_vars[0]); - lte_ue_pbch_vars = &(PHY_vars->lte_ue_pbch_vars[0]); - lte_eNB_common_vars = &(PHY_vars->lte_eNB_common_vars); - */ - - lte_frame_parms->N_RB_DL = 25; - lte_frame_parms->N_RB_UL = 25; - lte_frame_parms->Ng_times6 = 1; - lte_frame_parms->Ncp = 1; - lte_frame_parms->Nid_cell = 0; - lte_frame_parms->nushift = 0; - lte_frame_parms->nb_antennas_tx = NB_ANTENNAS_TX; - lte_frame_parms->nb_antennas_rx = NB_ANTENNAS_RX; - lte_frame_parms->first_dlsch_symbol = 4; - lte_frame_parms->num_dlsch_symbols = 6; - lte_frame_parms->mode1_flag = 1; //default == SISO - lte_frame_parms->Csrs = 2; - lte_frame_parms->Bsrs = 0; - lte_frame_parms->kTC = 0; - lte_frame_parms->n_RRC = 0; - - init_frame_parms(lte_frame_parms); - - //phy_init_top(NB_ANTENNAS_TX); - - //lte_frame_parms->twiddle_fft = twiddle_fft; - //lte_frame_parms->twiddle_ifft = twiddle_ifft; - //lte_frame_parms->rev = rev; - - //phy_init_lte_ue(lte_frame_parms,lte_ue_common_vars,lte_ue_dlsch_vars,lte_ue_pbch_vars); - //phy_init_lte_eNB(lte_frame_parms, lte_eNB_common_vars); -#endif - - // Openair configuration - fclose(config); - - // Openair scenario - // fclose(scenario_fd); --> already closed in reconfigure_MACPHY - - dump_config(); - - emos_ready = EMOS_READY; - - return 0; -} - - - diff --git a/openair1/EMOS/LTE/GUI/emos_gui.h b/openair1/EMOS/LTE/GUI/emos_gui.h deleted file mode 100644 index c4284d903d..0000000000 --- a/openair1/EMOS/LTE/GUI/emos_gui.h +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#define TERM_MODE_SINGL 0 -#define TERM_MODE_MULTI 1 - -#define TERM_ON 1 -#define TERM_OFF 0 - -#define SCREEN_COLOR_ON FL_CHARTREUSE -#define SCREEN_COLOR_OFF FL_RIGHT_BCOL -#define SCREEN_COLOR_BG FL_BLACK -#define SCREEN_COLOR_HL FL_RED - -#define LED_COLOR_ON FL_RED -#define LED_COLOR_OFF FL_RIGHT_BCOL - -#define REC_ON 1 -#define REC_OFF 0 - -#define EMOS_NOT_READY 0 -#define EMOS_READY 1 - -#define TIME_DOMAIN 0 -#define FREQ_DOMAIN 1 - -#define N0 0 -#define SNR 1 - -#define REC_FRAMES_MAX (100*60*5) //5min -#define REC_FRAMES_PER_FILE (100*(60*5-5)) //4min55sec -#define REC_FILE_IDX_MAX 100 - -#define CHANSOUNDER_FIFO_DEV "/dev/rtf3" - -#define NO_ESTIMATES_DISK 100 //No. of estimates that are aquired before dumped to disk - -//#define CHANNEL_BUFFER_SIZE sizeof(fifo_dump_emos_UE) //in bytes - -#define SCREEN_MEMORY_SIZE 32 - -#define DISP_MAX_POWER 4194304 //maximum value for the display of the frequency response - -//#define GPSD_BUFFER_SIZE 64 - diff --git a/openair1/EMOS/LTE/GUI/emos_gui_forms.c b/openair1/EMOS/LTE/GUI/emos_gui_forms.c deleted file mode 100644 index 4330af6186..0000000000 --- a/openair1/EMOS/LTE/GUI/emos_gui_forms.c +++ /dev/null @@ -1,579 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated by fdesign */ - -#include -#include "emos_gui_forms.h" - - -/*************************************** - ***************************************/ - -FD_main_frm * -create_form_main_frm( void ) -{ - FL_OBJECT *obj; - FD_main_frm *fdui = fl_malloc( sizeof *fdui ); - - fdui->vdata = fdui->cdata = NULL; - fdui->ldata = 0; - - fdui->main_frm = fl_bgn_form( FL_NO_BOX, 1010, 710 ); - - obj = fl_add_box( FL_FLAT_BOX, 0, 0, 1010, 710, "Main form" ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_MCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - obj = fl_add_box( FL_ROUNDED_BOX, 10, 610, 230, 90, "" ); - fl_set_object_color( obj, FL_DARKER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - obj = fl_add_box( FL_ROUNDED3D_DOWNBOX, 5, 5, 850, 600, "" ); - fl_set_object_color( obj, FL_BLACK, FL_BLACK ); - - fdui->sync_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 635, 15, 40, 20, "sync" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->rec_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 720, 15, 40, 20, "rec" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->pwr1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 45, 300, 110, "Power" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->pwr2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 330, 45, 300, 110, "Power" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->rx2_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 345, 10, 80, 40, "RX 2" ); - fl_set_object_color( obj, FL_BLACK, FL_MCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_HUGE_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->noise1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 170, 300, 110, "N0/SNR" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->noise2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 330, 170, 300, 110, "N0/SNR" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch11_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 10, 325, 140, 110, "CH 11" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch12_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 145, 325, 140, 110, "CH 12" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch21_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 10, 455, 140, 110, "CH 21" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch22_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 145, 455, 140, 110, "CH 22" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch11_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 290, 325, 140, 110, "CH 11" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch12_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 430, 325, 140, 110, "CH 12" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch21_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 290, 455, 140, 110, "CH 21" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch22_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 430, 455, 140, 110, "CH 22" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->error_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 680, 15, 40, 20, "error" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->gps_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 640, 65, 60, 30, "gps" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->date_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 655, 120, 170, 30, "date: " ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->gps_lat_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 700, 65, 150, 30, "lat: 0" ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->gps_lon_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 700, 95, 150, 30, "lon: 0" ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->idx_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 685, 150, 110, 20, "Idx: " ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - obj = fl_add_box( FL_ROUNDED_BOX, 485, 610, 140, 90, "" ); - fl_set_object_color( obj, FL_DARKCYAN, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - fdui->power_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 130, 620, 100, 70, "PWR" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, power_callback, 0 ); - - fdui->buffer_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 760, 15, 90, 20, "Buffer: 100%" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->refresh_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 655, 175, 170, 20, "Refresh interval: 1s" ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - obj = fl_add_box( FL_ROUNDED_BOX, 860, 90, 140, 220, "" ); - fl_set_object_color( obj, FL_DARKER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - fdui->refresh_dial = obj = fl_add_dial( FL_NORMAL_DIAL, 890, 110, 80, 70, "screen refresh rate" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - fl_set_object_callback( obj, refresh_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_CHANGED ); - fl_set_dial_bounds( obj, 0, 5 ); - fl_set_dial_angles( obj, 45, 315 ); - fl_set_dial_value( obj, 1 ); - fl_set_dial_step( obj, 1 ); - - obj = fl_add_box( FL_ROUNDED_BOX, 860, 528, 137, 72, "" ); - fl_set_object_color( obj, FL_INDIANRED, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - fdui->bler_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 200, 180, 20, "BLER:" ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->n_recd_frames_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 225, 180, 20, "Rec'd frms:" ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->msg_text = obj = fl_add_text( FL_NORMAL_TEXT, 25, 570, 810, 30, "" ); - fl_set_object_color( obj, FL_BLACK, FL_MCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - - obj = fl_add_pixmapbutton( FL_NORMAL_BUTTON, 860, 5, 140, 70, "" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_WHITE, FL_YELLOW ); - fl_set_pixmapbutton_file( obj, "Eurecom_Logo.xpm" ); - - fdui->rx1_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 35, 10, 80, 40, "RX 1" ); - fl_set_object_color( obj, FL_BLACK, FL_MCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_HUGE_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->alamouti_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 655, 100, 20, "2: ALAMOUTI" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, rx_mode_button_callback, 2 ); - - fdui->precoding_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 675, 100, 20, "6: PRECODING" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, rx_mode_button_callback, 6 ); - - fdui->cbmimo_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 665, 40, 70, 20, "cbmimo" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->fix_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 640, 95, 60, 30, "NO" ); - fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - obj = fl_add_box( FL_ROUNDED_BOX, 800, 610, 200, 90, "" ); - fl_set_object_color( obj, FL_INDIANRED, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - fdui->rec_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 820, 620, 160, 70, "Record" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, record_callback, 0 ); - - fdui->exit_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 20, 660, 90, 30, "exit" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_TOMATO, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, exit_callback, 0 ); - - fdui->config_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 20, 620, 90, 30, "config" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, config_btn_callback, 0 ); - - obj = fl_add_button( FL_NORMAL_BUTTON, 870, 180, 40, 30, "+" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - fl_set_object_callback( obj, refresh_callback, 1 ); - - obj = fl_add_button( FL_NORMAL_BUTTON, 950, 180, 40, 30, "-" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - fl_set_object_callback( obj, refresh_callback, -1 ); - - fdui->time_domain_btn = obj = fl_add_button( FL_PUSH_BUTTON, 870, 235, 60, 20, "time" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, time_freq_callback, 0 ); - - fdui->freq_domain_btn = obj = fl_add_button( FL_PUSH_BUTTON, 930, 235, 60, 20, "freq" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, time_freq_callback, 1 ); - - obj = fl_add_text( FL_NORMAL_TEXT, 875, 215, 110, 20, "channel display" ); - fl_set_object_color( obj, FL_DARKER_COL1, FL_MCOL ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - fdui->refresh_timer = obj = fl_add_timer( FL_HIDDEN_TIMER, 810, 720, 10, 10, "timer" ); - fl_set_object_callback( obj, refresh_timer_callback, 0 ); - - obj = fl_add_text( FL_NORMAL_TEXT, 875, 260, 110, 20, "N0/SNR" ); - fl_set_object_color( obj, FL_DARKER_COL1, FL_MCOL ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - fdui->n0_btn = obj = fl_add_button( FL_PUSH_BUTTON, 870, 280, 60, 20, "N0" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, noise_snr_callback, 0 ); - - fdui->snr_btn = obj = fl_add_button( FL_PUSH_BUTTON, 930, 280, 60, 20, "SNR" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, noise_snr_callback, 1 ); - - fdui->rx_mode_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 250, 180, 20, "RX mode:" ); - fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - - fdui->siso_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 635, 100, 20, "1: SISO" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, rx_mode_button_callback, 1 ); - - obj = fl_add_text( FL_NORMAL_TEXT, 505, 615, 100, 20, "TX mode" ); - fl_set_object_boxtype( obj, FL_NO_BOX ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - fdui->ch11_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 570, 325, 140, 110, "CH 11" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch12_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 710, 325, 140, 110, "CH 12" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch21_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 570, 455, 140, 110, "CH 21" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->ch22_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 710, 455, 140, 110, "CH 22" ); - fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - - fdui->sec0_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 85, 285, 140, 20, "Sector 0" ); - fl_set_object_color( obj, FL_BLACK, FL_BLACK ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - fdui->sec1_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 380, 285, 140, 20, "Sector 1" ); - fl_set_object_color( obj, FL_BLACK, FL_BLACK ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - fdui->sec2_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 285, 140, 20, "Sector 2" ); - fl_set_object_color( obj, FL_BLACK, FL_BLACK ); - fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); - fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - obj = fl_add_box( FL_ROUNDED_BOX, 250, 610, 130, 90, "" ); - fl_set_object_color( obj, FL_PALEGREEN, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - fdui->terminal_btn1 = obj = fl_add_button( FL_PUSH_BUTTON, 265, 650, 40, 40, "eNb" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - fl_set_object_callback( obj, terminal_button_callback, 1 ); - - fdui->terminal_btn3 = obj = fl_add_button( FL_PUSH_BUTTON, 320, 650, 40, 40, "UE" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - fl_set_object_callback( obj, terminal_button_callback, 3 ); - - obj = fl_add_text( FL_NORMAL_TEXT, 260, 620, 110, 20, "terminal type" ); - fl_set_object_color( obj, FL_PALEGREEN, FL_MCOL ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - obj = fl_add_box( FL_ROUNDED_BOX, 630, 610, 160, 90, "" ); - fl_set_object_color( obj, FL_WHEAT, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - obj = fl_add_button( FL_NORMAL_BUTTON, 645, 660, 90, 30, "Checkpoint" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, checkpoint_callback, 0 ); - - obj = fl_add_button( FL_NORMAL_BUTTON, 740, 620, 40, 30, "+" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - fl_set_object_callback( obj, checkpoint_callback, 1 ); - - obj = fl_add_button( FL_NORMAL_BUTTON, 740, 660, 40, 30, "-" ); - fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); - fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_lstyle( obj, FL_BOLD_STYLE ); - fl_set_object_callback( obj, checkpoint_callback, -1 ); - - fdui->next_cp = obj = fl_add_text( FL_NORMAL_TEXT, 650, 625, 90, 20, "Next CP: 1" ); - fl_set_object_color( obj, FL_WHEAT, FL_MCOL ); - - obj = fl_add_box( FL_ROUNDED_BOX, 860, 320, 142, 199, "" ); - fl_set_object_color( obj, FL_PALEGREEN, FL_COL1 ); - - fdui->rf_gain_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 340, 60, 20, "RF gain" ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_callback( obj, input_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - fdui->digital_gain_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 374, 60, 20, "digital gain" ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_callback( obj, input_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - fdui->rf_mode_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 409, 60, 20, "RF mode" ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_callback( obj, input_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - obj = fl_add_box( FL_ROUNDED_BOX, 390, 610, 90, 90, "" ); - fl_set_object_color( obj, FL_DARKCYAN, FL_COL1 ); - fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - - fdui->la_btn = obj = fl_add_lightbutton( FL_PUSH_BUTTON, 405, 645, 60, 40, "LA" ); - fl_set_object_callback( obj, link_adpt_callback, 0 ); - fl_set_button( obj, 1 ); - - obj = fl_add_text( FL_NORMAL_TEXT, 400, 620, 70, 20, "link adpt." ); - fl_set_object_color( obj, FL_DARKCYAN, FL_MCOL ); - - fdui->label_input = obj = fl_add_input( FL_NORMAL_INPUT, 880, 569, 100, 20, "" ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_lalign( obj, FL_ALIGN_TOP ); - fl_set_object_callback( obj, label_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - fdui->label_button = obj = fl_add_checkbutton( FL_PUSH_BUTTON, 877, 539, 60, 30, "manual label" ); - fl_set_object_callback( obj, label_btn_callback, 0 ); - - fdui->freq_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 444, 60, 20, "frequency" ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_callback( obj, input_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - fdui->tcxo_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 479, 60, 20, "TCXO" ); - fl_set_object_lsize( obj, FL_TINY_SIZE ); - fl_set_object_callback( obj, input_callback, 0 ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - fl_end_form( ); - - fdui->main_frm->fdui = fdui; - - return fdui; -} - - -/*************************************** - ***************************************/ - -FD_splash_frm * -create_form_splash_frm( void ) -{ - FL_OBJECT *obj; - FD_splash_frm *fdui = fl_malloc( sizeof *fdui ); - - fdui->vdata = fdui->cdata = NULL; - fdui->ldata = 0; - - fdui->splash_frm = fl_bgn_form( FL_NO_BOX, 390, 280 ); - - obj = fl_add_box( FL_FLAT_BOX, 0, 0, 390, 280, "" ); - - obj = fl_add_pixmap( FL_NORMAL_PIXMAP, 40, 20, 310, 100, "" ); - - obj = fl_add_text( FL_NORMAL_TEXT, 70, 150, 80, 30, "text" ); - - fl_end_form( ); - - fdui->splash_frm->fdui = fdui; - - return fdui; -} - - -/*************************************** - ***************************************/ - -FD_config_dialog * -create_form_config_dialog( void ) -{ - FL_OBJECT *obj; - FD_config_dialog *fdui = fl_malloc( sizeof *fdui ); - - fdui->vdata = fdui->cdata = NULL; - fdui->ldata = 0; - - fdui->config_dialog = fl_bgn_form( FL_NO_BOX, 410, 120 ); - - obj = fl_add_box( FL_UP_BOX, 0, 0, 410, 120, "" ); - - fdui->cancel_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 80, 75, 100, 30, "Cancel" ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, get_dir_callback, -1 ); - - fdui->ok_btn = obj = fl_add_button( FL_RETURN_BUTTON, 225, 75, 100, 30, "OK" ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_callback( obj, get_dir_callback, 0 ); - - fdui->dir_input = obj = fl_add_input( FL_NORMAL_INPUT, 80, 30, 300, 30, "Directory" ); - fl_set_object_return( obj, FL_RETURN_END_CHANGED ); - - fl_end_form( ); - - fdui->config_dialog->fdui = fdui; - - return fdui; -} diff --git a/openair1/EMOS/LTE/GUI/emos_gui_forms.fd b/openair1/EMOS/LTE/GUI/emos_gui_forms.fd deleted file mode 100644 index 8b9daf609d..0000000000 --- a/openair1/EMOS/LTE/GUI/emos_gui_forms.fd +++ /dev/null @@ -1,1664 +0,0 @@ -Magic: 14000 - -Internal Form Definition File - (do not change) - -Number of forms: 3 -Unit of measure: FL_COORD_PIXEL -SnapGrid: 1 - -=============== FORM =============== -Name: main_frm -Width: 1010 -Height: 710 -Number of Objects: 83 - --------------------- -class: FL_BOX -type: FLAT_BOX -box: 0 0 1010 710 -boxtype: FL_FLAT_BOX -colors: FL_LIGHTER_COL1 FL_MCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Main form -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 10 610 230 90 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKER_COL1 FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED3D_DOWNBOX -box: 5 5 850 600 -boxtype: FL_ROUNDED3D_DOWNBOX -colors: FL_BLACK FL_BLACK -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 635 15 40 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: sync -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sync_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 720 15 40 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: rec -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rec_lbl -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 45 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Power -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: pwr1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 330 45 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Power -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: pwr2_xyp -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 345 10 80 40 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_HUGE_SIZE -lcol: FL_RIGHT_BCOL -label: RX 2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rx2_lbl -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 170 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: N0/SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: noise1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 330 170 300 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: N0/SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: noise2_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 10 325 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 11 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch11_sec0_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 145 325 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 12 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch12_sec0_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 10 455 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 21 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch21_sec0_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 145 455 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 22 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch22_sec0_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 290 325 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 11 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch11_sec1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 430 325 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 12 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch12_sec1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 290 455 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 21 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch21_sec1_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 430 455 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 22 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch22_sec1_xyp -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 680 15 40 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: error -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: error_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 640 65 60 30 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: gps -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: gps_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 655 120 170 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: date: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: date_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 700 65 150 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: lat: 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: gps_lat_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 700 95 150 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: lon: 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: gps_lon_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 685 150 110 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Idx: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: idx_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 485 610 140 90 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKCYAN FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 130 620 100 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_BLACK -label: PWR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: power_btn -callback: power_callback -argument: 0 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 760 15 90 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: Buffer: 100% -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: buffer_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 655 175 170 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Refresh interval: 1s -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: refresh_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 860 90 140 220 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKER_COL1 FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_DIAL -type: NORMAL_DIAL -box: 890 110 80 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: screen refresh rate -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: refresh_dial -callback: refresh_callback -argument: 0 -return: FL_RETURN_CHANGED - bounds: 0 5 - angles: 45 315 - value: 1 - step: 1 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 860 528 137 72 -boxtype: FL_ROUNDED_BOX -colors: FL_INDIANRED FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 200 180 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: BLER: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: bler_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 225 180 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: Rec'd frms: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: n_recd_frames_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 25 570 810 30 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: msg_text -callback: -argument: - --------------------- -class: FL_PIXMAPBUTTON -type: NORMAL_BUTTON -box: 860 5 140 70 -boxtype: FL_ROUNDED_BOX -colors: FL_WHITE FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - file: Eurecom_Logo.xpm - fullpath: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 35 10 80 40 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_HUGE_SIZE -lcol: FL_RIGHT_BCOL -label: RX 1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rx1_lbl -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 505 655 100 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: 2: ALAMOUTI -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: alamouti_btn -callback: rx_mode_button_callback -argument: 2 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 505 675 100 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: 6: PRECODING -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: precoding_btn -callback: rx_mode_button_callback -argument: 6 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 665 40 70 20 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: cbmimo -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: cbmimo_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 640 95 60 30 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: NO -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: fix_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 800 610 200 90 -boxtype: FL_ROUNDED_BOX -colors: FL_INDIANRED FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 820 620 160 70 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Record -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rec_btn -callback: record_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 20 660 90 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_TOMATO FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: exit -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: exit_btn -callback: exit_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 20 620 90 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: config -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: config_btn -callback: config_btn_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 870 180 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: + -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: refresh_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 950 180 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: - -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: refresh_callback -argument: -1 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 870 235 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: time -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: time_domain_btn -callback: time_freq_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 930 235 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: freq -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: freq_domain_btn -callback: time_freq_callback -argument: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 875 215 110 20 -boxtype: FL_FLAT_BOX -colors: FL_DARKER_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: channel display -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TIMER -type: HIDDEN_TIMER -box: 810 720 10 10 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_RED -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: timer -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: refresh_timer -callback: refresh_timer_callback -argument: 0 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 875 260 110 20 -boxtype: FL_FLAT_BOX -colors: FL_DARKER_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: N0/SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 870 280 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: N0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: n0_btn -callback: noise_snr_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 930 280 60 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: SNR -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: snr_btn -callback: noise_snr_callback -argument: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 250 180 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_TOP_BCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_RIGHT_BCOL -label: RX mode: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rx_mode_lbl -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 505 635 100 20 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: 1: SISO -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: siso_btn -callback: rx_mode_button_callback -argument: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 505 615 100 20 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: TX mode -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 570 325 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 11 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch11_sec2_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 710 325 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 12 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch12_sec2_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 570 455 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 21 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch21_sec2_xyp -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 710 455 140 110 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RIGHT_BCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RIGHT_BCOL -label: CH 22 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch22_sec2_xyp -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 85 285 140 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_BLACK -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_RIGHT_BCOL -label: Sector 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sec0_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 380 285 140 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_BLACK -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_RIGHT_BCOL -label: Sector 1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sec1_lbl -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 285 140 20 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_BLACK -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_RIGHT_BCOL -label: Sector 2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sec2_lbl -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 250 610 130 90 -boxtype: FL_ROUNDED_BOX -colors: FL_PALEGREEN FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 265 650 40 40 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: eNb -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_btn1 -callback: terminal_button_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: PUSH_BUTTON -box: 320 650 40 40 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: UE -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: terminal_btn3 -callback: terminal_button_callback -argument: 3 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 260 620 110 20 -boxtype: FL_FLAT_BOX -colors: FL_PALEGREEN FL_MCOL -alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: terminal type -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 630 610 160 90 -boxtype: FL_ROUNDED_BOX -colors: FL_WHEAT FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 645 660 90 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Checkpoint -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: checkpoint_callback -argument: 0 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 740 620 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: + -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: checkpoint_callback -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 740 660 40 30 -boxtype: FL_ROUNDED3D_UPBOX -colors: FL_LIGHTER_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_BOLD_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: - -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: checkpoint_callback -argument: -1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 650 625 90 20 -boxtype: FL_FLAT_BOX -colors: FL_WHEAT FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Next CP: 1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: next_cp -callback: -argument: - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 860 320 142 199 -boxtype: FL_ROUNDED_BOX -colors: FL_PALEGREEN FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 925 340 60 20 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: RF gain -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rf_gain_txt -callback: input_callback -argument: 0 -return: FL_RETURN_END_CHANGED - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 925 374 60 20 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: digital gain -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: digital_gain_txt -callback: input_callback -argument: 0 -return: FL_RETURN_END_CHANGED - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 925 409 60 20 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: RF mode -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rf_mode_txt -callback: input_callback -argument: 0 -return: FL_RETURN_END_CHANGED - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 390 610 90 90 -boxtype: FL_ROUNDED_BOX -colors: FL_DARKCYAN FL_COL1 -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_LIGHTBUTTON -type: PUSH_BUTTON -box: 405 645 60 40 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_YELLOW -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: LA -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: la_btn -callback: link_adpt_callback -argument: 0 - value: 1 - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 400 620 70 20 -boxtype: FL_FLAT_BOX -colors: FL_DARKCYAN FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: link adpt. -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 880 569 100 20 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_TOP -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: label_input -callback: label_callback -argument: 0 -return: FL_RETURN_END_CHANGED - --------------------- -class: FL_CHECKBUTTON -type: PUSH_BUTTON -box: 877 539 60 30 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_YELLOW -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: manual label -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: label_button -callback: label_btn_callback -argument: 0 - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 925 444 60 20 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: frequency -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: freq_txt -callback: input_callback -argument: 0 -return: FL_RETURN_END_CHANGED - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 925 479 60 20 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: TCXO -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: tcxo_txt -callback: input_callback -argument: 0 -return: FL_RETURN_END_CHANGED - -=============== FORM =============== -Name: splash_frm -Width: 390 -Height: 280 -Number of Objects: 3 - --------------------- -class: FL_BOX -type: FLAT_BOX -box: 0 0 390 280 -boxtype: FL_FLAT_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_PIXMAP -type: NORMAL_PIXMAP -box: 40 20 310 100 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 70 150 80 30 -boxtype: FL_FLAT_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: text -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - -=============== FORM =============== -Name: config_dialog -Width: 410 -Height: 120 -Number of Objects: 4 - --------------------- -class: FL_BOX -type: UP_BOX -box: 0 0 410 120 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 80 75 100 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Cancel -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: cancel_btn -callback: get_dir_callback -argument: -1 - --------------------- -class: FL_BUTTON -type: RETURN_BUTTON -box: 225 75 100 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: OK -shortcut: ^M -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ok_btn -callback: get_dir_callback -argument: 0 - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 80 30 300 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: Directory -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: dir_input -callback: -argument: -return: FL_RETURN_END_CHANGED - -============================== -create_the_forms diff --git a/openair1/EMOS/LTE/GUI/emos_gui_forms.h b/openair1/EMOS/LTE/GUI/emos_gui_forms.h deleted file mode 100644 index 0d6738b7fc..0000000000 --- a/openair1/EMOS/LTE/GUI/emos_gui_forms.h +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Header file generated by fdesign on Thu Jun 3 18:41:21 2010 */ - -#ifndef FD_main_frm_h_ -#define FD_main_frm_h_ - -#include - -/* Callbacks, globals and object handlers */ - -extern void power_callback( FL_OBJECT *, long ); -extern void refresh_callback( FL_OBJECT *, long ); -extern void rx_mode_button_callback( FL_OBJECT *, long ); -extern void record_callback( FL_OBJECT *, long ); -extern void exit_callback( FL_OBJECT *, long ); -extern void config_btn_callback( FL_OBJECT *, long ); -extern void time_freq_callback( FL_OBJECT *, long ); -extern void refresh_timer_callback( FL_OBJECT *, long ); -extern void noise_snr_callback( FL_OBJECT *, long ); -extern void terminal_button_callback( FL_OBJECT *, long ); -extern void checkpoint_callback( FL_OBJECT *, long ); -extern void input_callback( FL_OBJECT *, long ); -extern void link_adpt_callback( FL_OBJECT *, long ); -extern void label_callback( FL_OBJECT *, long ); -extern void label_btn_callback( FL_OBJECT *, long ); - - -extern void get_dir_callback( FL_OBJECT *, long ); - - -/* Forms and Objects */ - -typedef struct { - FL_FORM * main_frm; - void * vdata; - char * cdata; - long ldata; - FL_OBJECT * sync_lbl; - FL_OBJECT * rec_lbl; - FL_OBJECT * pwr1_xyp; - FL_OBJECT * pwr2_xyp; - FL_OBJECT * rx2_lbl; - FL_OBJECT * noise1_xyp; - FL_OBJECT * noise2_xyp; - FL_OBJECT * ch11_sec0_xyp; - FL_OBJECT * ch12_sec0_xyp; - FL_OBJECT * ch21_sec0_xyp; - FL_OBJECT * ch22_sec0_xyp; - FL_OBJECT * ch11_sec1_xyp; - FL_OBJECT * ch12_sec1_xyp; - FL_OBJECT * ch21_sec1_xyp; - FL_OBJECT * ch22_sec1_xyp; - FL_OBJECT * error_lbl; - FL_OBJECT * gps_lbl; - FL_OBJECT * date_lbl; - FL_OBJECT * gps_lat_lbl; - FL_OBJECT * gps_lon_lbl; - FL_OBJECT * idx_lbl; - FL_OBJECT * power_btn; - FL_OBJECT * buffer_lbl; - FL_OBJECT * refresh_lbl; - FL_OBJECT * refresh_dial; - FL_OBJECT * bler_lbl; - FL_OBJECT * n_recd_frames_lbl; - FL_OBJECT * msg_text; - FL_OBJECT * rx1_lbl; - FL_OBJECT * alamouti_btn; - FL_OBJECT * precoding_btn; - FL_OBJECT * cbmimo_lbl; - FL_OBJECT * fix_lbl; - FL_OBJECT * rec_btn; - FL_OBJECT * exit_btn; - FL_OBJECT * config_btn; - FL_OBJECT * time_domain_btn; - FL_OBJECT * freq_domain_btn; - FL_OBJECT * refresh_timer; - FL_OBJECT * n0_btn; - FL_OBJECT * snr_btn; - FL_OBJECT * rx_mode_lbl; - FL_OBJECT * siso_btn; - FL_OBJECT * ch11_sec2_xyp; - FL_OBJECT * ch12_sec2_xyp; - FL_OBJECT * ch21_sec2_xyp; - FL_OBJECT * ch22_sec2_xyp; - FL_OBJECT * sec0_lbl; - FL_OBJECT * sec1_lbl; - FL_OBJECT * sec2_lbl; - FL_OBJECT * terminal_btn1; - FL_OBJECT * terminal_btn3; - FL_OBJECT * next_cp; - FL_OBJECT * rf_gain_txt; - FL_OBJECT * digital_gain_txt; - FL_OBJECT * rf_mode_txt; - FL_OBJECT * la_btn; - FL_OBJECT * label_input; - FL_OBJECT * label_button; - FL_OBJECT * freq_txt; - FL_OBJECT * tcxo_txt; -} FD_main_frm; - -extern FD_main_frm * create_form_main_frm( void ); -typedef struct { - FL_FORM * splash_frm; - void * vdata; - char * cdata; - long ldata; -} FD_splash_frm; - -extern FD_splash_frm * create_form_splash_frm( void ); -typedef struct { - FL_FORM * config_dialog; - void * vdata; - char * cdata; - long ldata; - FL_OBJECT * cancel_btn; - FL_OBJECT * ok_btn; - FL_OBJECT * dir_input; -} FD_config_dialog; - -extern FD_config_dialog * create_form_config_dialog( void ); - -#endif /* FD_main_frm_h_ */ diff --git a/openair1/EMOS/LTE/GUI/matrix_util.c b/openair1/EMOS/LTE/GUI/matrix_util.c deleted file mode 100644 index cb1697da01..0000000000 --- a/openair1/EMOS/LTE/GUI/matrix_util.c +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -// Matrix Utilities for Capacity Calculations -// by Florian Kaltenberger -// Created 10.10.2007 - -# include "matrix_util.h" -#include -#include - -// This function calculates HxH^H for a complex matrix H -// HH must be a pre-allocated matrix of size rows x rows -// The function returns NULL on error and a pointer to the -// calculated matrix otherwise -struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH) -{ - int r,r2,c; - - if (H==NULL || HH==NULL || rows == 0 || cols == 0) - return NULL; - - for (r=0; r. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -// Matrix Utilities for Capacity Calculations -// by Florian Kaltenberger -// Created 10.10.2007 - -# include "PHY/TOOLS/defs.h" - -struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH); - -struct complexf **addI_scale_mat(struct complexf **H, int rows, float scale); - -float det(struct complexf **H); - -float norm_fro_sq(struct complexf**H, int rows, int cols); diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/COPYING b/openair1/EMOS/LTE/IMPORT_FILTER/COPYING deleted file mode 100644 index 818433ecc0..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/Makefile b/openair1/EMOS/LTE/IMPORT_FILTER/Makefile deleted file mode 100644 index a2d3a5c6cb..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -include $(OPENAIR_HOME)/common/utils/Makefile.inc -SRC = dump_size.c - -#CFLAGS = $(shell rtai-config --lxrt-cflags) -#LDFLAGS = $(shell rtai-config --lxrt-ldflags) -lpthread -lm -lgps -lforms #-llxrt - -CFLAGS += -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES -I$(OPENAIR_HOME)/common/utils -I$(OPENAIR2_DIR) -I$(OPENAIR2_DIR)/COMMON - -CFLAGS += -DPHYSIM -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 - -CFLAGS += -DOPENAIR_LTE -DENABLE_FXP -DOPENAIR1 #-DDLSCH_THREAD -DULSCH_THREAD - -CFLAGS += -DEMOS -DEXMIMO -DNO_RTAI - -ifeq ($(EMOS_CHANNEL),1) -CFLAGS += -DEMOS_CHANNEL -endif - -all: dump_size cstruct - -$(OBJ): %.o : %.c - @echo Compiling $< ... - @$(CC) -c $(CFLAGS) -o $@ $< - -cstruct: cstruct.c MatlabCStruct.c - mkoctfile --mex cstruct.c MatlabCStruct.c - -dump_size: dump_size.c - $(CC) $(CFLAGS) $(LDFLAGS) dump_size.c -o dump_size - -cleanall: - rm -rf dump_size cstruct.oct cstruct.mex - -clean: - rm -rf dump_size - -show: - @echo $(CFLAGS) - -beautiful: - astyle --style=gnu -s2 $(SRC) diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c b/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c deleted file mode 100644 index 7ec96b5cf0..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c +++ /dev/null @@ -1,466 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -//-------------------------------------------------------------- -// file: MatlabCStruct.c - Computes the amount of storages that -// would be required to represent a Matlab array in a C lngusage -// struture. It also moves data between C structures and Matlab -// arrays. -// This is particularly usful when reading/writing data from a -// byte stream, such as a file or socket interface, which contains -// formatted data, but needs to be re-represented in a Matlab array -// from its raw binary layout, or vice versa. -// 05/24/2004 jaj Replaced __int64 with INT64_T for portability -//-------------------------------------------------------------- -#include -#include - -#include -#include "MatlabCStruct.h" - -int MatlabCStruct_DebugFlag = 0; - -#ifndef MAX -#define MAX(a,b) ((a)>=(b)?(a):(b)) -#define MIN(a,b) ((a)<=(b)?(a):(b)) -#endif - -//-------------------------------------------------------------- -// ClassIDText() - Simply return the name of the class -//-------------------------------------------------------------- -char *ClassIDText(const mxArray *pArray) -{ - switch(mxGetClassID(pArray)) { - case mxUNKNOWN_CLASS : - return "UNKNOWN"; - - case mxCELL_CLASS : - return "CELL"; - - case mxFUNCTION_CLASS: - return "FUNCTION"; - - //case mxOBJECT_CLASS : return "OBJECT"; - case mxSTRUCT_CLASS : - return "STRUCT"; - - case mxCHAR_CLASS : - return "CHAR"; - - case mxLOGICAL_CLASS : - return "LOGICAL"; - - case mxDOUBLE_CLASS : - return "DOUBLE"; - - case mxSINGLE_CLASS : - return "SINGLE"; - - case mxINT8_CLASS : - return "INT8"; - - case mxUINT8_CLASS : - return "UINT8"; - - case mxINT16_CLASS : - return "INT16"; - - case mxUINT16_CLASS : - return "UINT16"; - - case mxINT32_CLASS : - return "INT32"; - - case mxUINT32_CLASS : - return "UINT32"; - - case mxINT64_CLASS : - return "INT64"; - - default: - return "INVALID"; - } -} // end ClassIDText() - -//-------------------------------------------------------------- -// SwapBytes() - size must be even. -//-------------------------------------------------------------- -void SwapBytes(char *p0, int size, int count) -{ - char t; // Temporory register for byte swaps - int inc0 = size/2; // pointer increments - int inc1 = size+inc0; - char *p1 = p0+(size-1); - - while (count-- > 0) { - while (p1>p0) { - t = *p0; - *p0 = *p1; - p0++; - *p1 = t; - p1--; - } - - p0 += inc0; - p1 += inc1; - } -} -#define SWAP(x) SwapBytes(&(x), sizeof(x)) - -//-------------------------------------------------------------- -// funciton: MatlabCStruct() - Traverse the structure tree -// to determine the storage requirements when converted to a -// C structure. -// INPUTS: -// pArray - Pointer to Matlab array to be analyzed -// MemoryAlignment - 1, 2, 4, or 8, indicating desired (maximum) element -// alignment in the C structure. -// NestLevel - For recursing strucutres containing structures. -// pDataDest - NULL, or a pointer to the beginning of a C structure/ -// memory area to which to move Matlab array data. -// pDataSource - NULL, or a pointer to the beginning of a C structure/ -// memory area from which to move Matlab array data. -// RETURNS: -// ELEMENT_ATTRIBUTES structure, containing information about the -// Matlab array being analyzed. -// NOTES: -// Call with both pDataDest and pDataSource equal to NULL to simply -// determine how much C storage is required for a given Matlab -// array. That amount can then be allocated, or compared to -// expected. -//-------------------------------------------------------------- -ELEMENT_ATTRIBUTES MatlabCStruct(const mxArray *pArray, int MemoryAlignment, int NestLevel, - unsigned char *pDataDest, unsigned char *pDataSource, int SwapFlag) -{ -#define SPACES {int k;for (k=0; k 0) { - int Padding; - Padding = CellAttributes.Alignment - (Attributes.StorageSize % CellAttributes.Alignment); - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [%d bytes of padding]\n", Attributes.StorageSize, Padding); - } - - Attributes.StorageSize += Padding; - } - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [cell %d of %d]: %dx%d bytes of %s data\n", Attributes.StorageSize, i, nElem, CellAttributes.StorageSize, CellAttributes.ElementCount, ClassIDText(pCell)); - } - - if (pDataDest) - if ((long)pDataDest == -1) - CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, pDataDest, NULL, SwapFlag); - else - CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, pDataDest+Attributes.StorageSize, NULL, SwapFlag); - - if (pDataSource) - if ((long)pDataSource == -1) - CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, NULL, pDataSource, SwapFlag); - else - CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, NULL, pDataSource+Attributes.StorageSize, SwapFlag); - - Attributes.StorageSize += CellAttributes.StorageSize * CellAttributes.ElementCount; - Attributes.Alignment = MAX(Attributes.Alignment, CellAttributes.Alignment); - } - - // See if padding needs to be added at the end of the structure - if (Attributes.StorageSize % Attributes.Alignment > 0) { - int Padding; - Padding = Attributes.Alignment - (Attributes.StorageSize % Attributes.Alignment); - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [%d bytes of padding]\n", Attributes.StorageSize, Padding); - } - - Attributes.StorageSize += Padding; - } - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [end of cell array]\n", Attributes.StorageSize); - } - - // 08/14/03 jaj Make the element count 1 for cell arrays - Attributes.ElementCount = 1; - - } // end array is Cell array - - - else if (mxIsChar(pArray)) { - mxChar *pChar; - Attributes.StorageSize = sizeof(char); // special case - Attributes.Alignment = MIN(Attributes.StorageSize, MemoryAlignment); - - if (pDataDest && (long)pDataDest != -1) { - pChar = (mxChar *)mxGetData(pArray); - - for (i=0; i 1 && MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [index %d of %d]\n", Attributes.StorageSize, j, nElem); - NestLevel++; - } - - - for (i=0; i 0) { - int Padding; - Padding = FieldAttributes.Alignment - (LocalAttributes.StorageSize % FieldAttributes.Alignment); - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [%d bytes of padding]\n", LocalAttributes.StorageSize, Padding); - } - - LocalAttributes.StorageSize += Padding; - } - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [%s] %dx%d bytes of %s data\n", LocalAttributes.StorageSize, FieldName, FieldAttributes.StorageSize, FieldAttributes.ElementCount, ClassIDText(pField)); - } - - if (pDataDest) { - if ((long)pDataDest == -1) - FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, pDataDest, NULL, SwapFlag); - else - FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, pDataDest+LocalAttributes.StorageSize+Attributes.StorageSize, NULL, SwapFlag); - } - - if (pDataSource) { - if ((long)pDataSource == -1) - FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, NULL, pDataSource, SwapFlag); - else - FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, NULL, pDataSource+LocalAttributes.StorageSize+Attributes.StorageSize, SwapFlag); - } - - LocalAttributes.StorageSize += FieldAttributes.StorageSize * FieldAttributes.ElementCount; - LocalAttributes.Alignment = MAX(LocalAttributes.Alignment, FieldAttributes.Alignment); - LocalAttributes.ElementCount = 1; - } - - // See if padding needs to be added at the end of the structure - if (LocalAttributes.StorageSize % LocalAttributes.Alignment > 0) { - int Padding; - Padding = LocalAttributes.Alignment - (LocalAttributes.StorageSize % LocalAttributes.Alignment); - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [%d bytes of padding]\n", LocalAttributes.StorageSize, Padding); - } - - LocalAttributes.StorageSize += Padding; - } - - Attributes.StorageSize += LocalAttributes.StorageSize * LocalAttributes.ElementCount; - Attributes.Alignment = MAX(Attributes.Alignment, LocalAttributes.Alignment); - - if (nElem > 1 && MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - NestLevel--; - } - } // end for(j) - - // See if padding needs to be added at the end of the structure - if (Attributes.StorageSize % Attributes.Alignment > 0) { - int Padding; - Padding = Attributes.Alignment - (Attributes.StorageSize % Attributes.Alignment); - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [%d bytes of padding]\n", Attributes.StorageSize, Padding); - } - - Attributes.StorageSize += Padding; - } - - if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) { - SPACES printf("%3d: [end of structure]\n", Attributes.StorageSize); - } - - // 08/14/03 jaj Make the element count 1 for structure arrays - Attributes.ElementCount = 1; - - } // end array is Structure - - - else { - // Array is any of the basic, non-aggregate types, except mxChar - // Handle byte-swapping on Windows WIN32 platform - - Attributes.StorageSize = Attributes.ElementSize; - Attributes.Alignment = MIN(Attributes.StorageSize, MemoryAlignment); - - if (pDataDest && (long)pDataDest != -1) { - memcpy(pDataDest, mxGetData(pArray), Attributes.ElementSize * Attributes.ElementCount); - - if (SwapFlag) - SwapBytes((char *)pDataDest, Attributes.ElementSize, Attributes.ElementCount); - } - - if (pDataSource && (long)pDataSource != -1) { - if (SwapFlag) - SwapBytes((char *)pDataSource, Attributes.ElementSize, Attributes.ElementCount); - - memcpy(mxGetData(pArray), pDataSource, Attributes.ElementSize * Attributes.ElementCount); - - // and un-swap - if (SwapFlag) - SwapBytes((char *)pDataSource, Attributes.ElementSize, Attributes.ElementCount); - } - } // end basic type (except mxChar) - - - return Attributes; -} // end MatlabCStruct() - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h b/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h deleted file mode 100644 index a0b5551854..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -//-------------------------------------------------------------- -// file: MatlabCStruct.h - Include file for MatlabCStruct.c -//-------------------------------------------------------------- - -//-------------------------------------------------------------- -// ELEMENT_ATTRIBUTES -//-------------------------------------------------------------- -typedef struct { - int ElementSize; // Number of bytes required for storage of a single element in a Matlab array - int ElementCount; // Number of elements in array - int StorageSize; // Number of bytes required for storage of a single element in a C Structure - int Alignment; // 1, 2, 4, or 8 denoting required byte alignment for this structure. -} ELEMENT_ATTRIBUTES; - -extern int MatlabCStruct_DebugFlag; - -// Function prototypes -ELEMENT_ATTRIBUTES MatlabCStruct(const mxArray *pArray, int MemoryAlignment, int NestLevel, - unsigned char *pDataDest, unsigned char *pDataSource, - int SwapFlag); -char *ClassIDText(const mxArray *pArray); -void SwapBytes(char *p0, int size, int count); -#define SWAP(x) SwapBytes(&(x), sizeof(x)) - - - - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/binread.m b/openair1/EMOS/LTE/IMPORT_FILTER/binread.m deleted file mode 100644 index 4d4b63f100..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/binread.m +++ /dev/null @@ -1,53 +0,0 @@ -function s=binread(fid,fmt,count,varargin) -% BINREAD - Read formatted binary data from a file -% S=BINREAD(FID,TEMPLATE) reads binary data from an open file handle and -% formats it according to TEMPLATE. TEMPLATE is typically a structure, but -% it may be any data or aggregate type. Refer to CSTRUCT for more details -% on formatting. -% -% S=BINREAD(...,COUNT) reads sucessive records from the file. If COUNT is -% INF, then all data possible is read from the file. If omitted, or empty, -% only one data record will be read. -% -% S=BINREAD(...,COUNT,OPTS) passes the OPTS along to the call to CSTRUCT -% which allows the byte alignment or order to be changed from default. -% -% Example: (modeled from C structures) -% header_template = struct('DataType',uint32(0),'DataCount',uint32(0)); -% data_template = struct('SampleTime',double(0),'Data',int16(zeros(1,16))); -% fid = fopen('myfile.bin','rb'); -% header = binread(fid,header_template); -% data = binread(fid,data_template,double(header.DataCount)); -% -% See also BINREAD, FOPEN, CSTRUCT - -% 11/14/2003 fixed OBOB thanks to Olaf Bousche - -if nargin < 3 - count = 1; -end - -attrib = cstruct(fmt,[],varargin{:}); -if isinf(count) - s=cell(0,0); -else - s = cell(count,1); % Preallocate cell structure -end -i=1; -while i <= count % 11/14/2003 '<' changed to '<=' - b = uint8(fread(fid,attrib.size,'uint8')); - if length(b) < attrib.size - if length(b) > 0 - warning('partial data record at end of file'); - end - s(i:end) = []; % Out of data, remove extraneous elements - break; - end - s{i} = cstruct(fmt,b,varargin{:}); - i = i+1; -end - -try - % Try de-celling the data, if possible - s = [s{:}]; -end diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m b/openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m deleted file mode 100644 index cd24d733d1..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m +++ /dev/null @@ -1,25 +0,0 @@ -function n=binwrite(fid,data,varargin) -%BINWRITE - Write data to a formatted binary file -% BINWRITE(FID,DATA) writes data to an open file handle in a binary -% format, according to the structure of DATA, and returns the number of -% bytes written to the file. DATA is typically a structure, but it may -% be any data or aggregate type. Refer to CSTRUCT for more details on -% formatting. -% -% S=BINWRITE(...,,OPTS) passes the OPTS along to the call to CSTRUCT -% which allows the byte alignment or order to be changed from default. -% -% Example: (modeled from C structures) -% data(1) = struct('SampleTime',double(8),'Data',int16(1:16)); -% data(2) = struct('SampleTime',double(9),'Data',int16(101:116)); -% data(3) = struct('SampleTime',double(10),'Data',int16(201:216)); -% header = struct('DataType',uint32(1),'DataCount',uint32(length(data))); -% fid = fopen('myfile.bin','wb'); -% binwrite(fid,header); -% binwrite(fid,data); -% fclose(fid); -% -% See also BINREAD, FOPEN, CSTRUCT -[attrib,bytes] = cstruct(data); -n = fwrite(fid,bytes,'uint8'); - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c deleted file mode 100644 index bd502b307f..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see . - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -//-------------------------------------------------------------- -// file: cstruct.c - Analyze a Matlab array, to determine how it -// would fit into C structure. -// 05/25/2004 jaj Removed include; stricter type -// type compatibility when calling mxCreateStructMatrix(); -//-------------------------------------------------------------- -#include "mex.h" -#include -//#include jaj 05/25/2004 removed - -#include "MatlabCStruct.h" - -// TODO: Add you supporting functions here - - -//-------------------------------------------------------------- -// function: mexFunction - Entry point from Matlab environment -// INPUTS: -// nlhs - number of left hand side arguments (outputs) -// plhs[] - pointer to table where created matrix pointers are -// to be placed -// nrhs - number of right hand side arguments (inputs) -// prhs[] - pointer to table of input matrices -//-------------------------------------------------------------- -void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) -{ - ELEMENT_ATTRIBUTES Attributes; - int ByteCount; // Total number of bytes required for C structure - int Alignment = 8; - int SwapFlag; // Byte Swapping Flag - int LittleEndian = 0; // 0/1=local machine is big/litle Endian - int ii; - - // Determine local byte ordering - { - unsigned char pattern[2] = {0x12, 0x34}; - unsigned short word1 = 0x1234; - unsigned short word2 = *(unsigned short *)&pattern; - LittleEndian = (word1 == word2) ? 0 : 1; - } - SwapFlag = LittleEndian; // Default = assume data is big endian - - if (nlhs == 0) - MatlabCStruct_DebugFlag = 1; - else - MatlabCStruct_DebugFlag = 0; - - if (nrhs < 1) - mexErrMsgTxt("Not enough input arguments."); - - if (nrhs >= 3) { - for (ii=2; ii= 2 && !mxIsEmpty(prhs[1])) { - mxClassID ClassID; - ClassID = mxGetClassID(prhs[1]); - - if (ClassID != mxUINT8_CLASS && ClassID != mxINT8_CLASS) - mexErrMsgTxt("Byte data vector must be of type INT8 or UINT8"); - - if (ByteCount != mxGetNumberOfElements(prhs[1])) { - char msg[100]; - sprintf(msg, "Number of elements in Byte data vector (%d) does not match structure size (%d)", - mxGetNumberOfElements(prhs[1]), ByteCount); - mexErrMsgTxt(msg); - } - - plhs[0] = mxDuplicateArray(prhs[0]); - MatlabCStruct(plhs[0], Alignment, 0, NULL, mxGetData(prhs[1]), SwapFlag); - } else - // Create output structure for Attributes - { - const char *FieldNames[] = {"size","align"}; // jaj 05/24/2004 added const - plhs[0] = mxCreateStructMatrix(1, 1, 2, &FieldNames[0]);// jaj 05/24/2004 slightly altered - mxSetField(plhs[0], 0, "size", mxCreateDoubleScalar(ByteCount)); - mxSetField(plhs[0], 0, "align", mxCreateDoubleScalar(Attributes.Alignment)); - - if (nlhs >= 2) { - // Extract C Data from array - plhs[1] = mxCreateNumericMatrix(1, ByteCount, mxUINT8_CLASS, mxREAL); - MatlabCStruct(prhs[0], Alignment, 0, mxGetData(plhs[1]), NULL, SwapFlag); - } - } - -} // end mexFunction() - - - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll deleted file mode 100644 index c4a72ad1b285b40053e5571c830b59ff24994180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176172 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 X^_P8#1uA>76TZn}e(1%zli>dY(DRx2 diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexa64 b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexa64 deleted file mode 100755 index 1ea42265cf020c52ab324aca5fa6b94a61116cbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17639 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 WcgD&2u^!SP>x_fzV?}fp`+oqRA0?jv diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexglx b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexglx deleted file mode 100755 index f8a1e90fc81d2439462a96979b0a1f14a91d7e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14146 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 Wmn(dLGWL6#QTzC{1r#|xgZY0c6pqUP diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexw64 b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexw64 deleted file mode 100644 index 6e7fae7903292de0261a81791450ab72786dba81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13312 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. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include -#include "SCHED/phy_procedures_emos.h" - -int main(void) -{ - printf("MAX_CQI_BITS = %zu;\n",MAX_CQI_BITS); - printf("PHY_measurements_size = %zu;\n",sizeof(PHY_MEASUREMENTS)); - printf("PHY_measurements_eNb_size = %zu;\n",sizeof(PHY_MEASUREMENTS_eNB)); - //printf("UCI_data_t_size = %zu;\n",sizeof(UCI_DATA_t)); - //printf("DCI_alloc_t_size = %zu;\n",sizeof(DCI_ALLOC_t)); - printf("eNb_UE_stats_size = %zu;\n",sizeof(LTE_eNB_UE_stats)); - printf("fifo_dump_emos_UE_size = %zu;\n",sizeof(fifo_dump_emos_UE)); - printf("fifo_dump_emos_eNb_size = %zu;\n",sizeof(fifo_dump_emos_eNB)); - printf("gps_fix_t_size = %zu;\n",sizeof(struct gps_fix_t)); - printf("align = %zu;\n",sizeof(void*)); - return(0); -} diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/example.m b/openair1/EMOS/LTE/IMPORT_FILTER/example.m deleted file mode 100644 index 4a882d00c9..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/example.m +++ /dev/null @@ -1,89 +0,0 @@ -clear all -close all - -addpath('../IMPORT_FILTER'); - -% [estimates_eNB,NFrames_eNB]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\eNB_data_20130327_163635.EMOS',inf,1,1); -% [estimates_UE,NFrames_UE]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\UE_data_20130327_163721.EMOS',inf,1,0); - -[estimates_eNB,NFrames_eNB]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\eNB_data_20130328_114006.EMOS',inf,1,1); -[estimates_UE,NFrames_UE]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\UE_data_20130328_115128.EMOS',inf,1,0); - -%load eNB_estimates2 -%load UE_estimates2 - -% use r3531 for measuremnts taken march 2013 -struct_template_new - -%% -NFrames = 1000; -decimation = 1; -NFrames_eNB = size(estimates_eNB,2); -NFrames_UE = size(estimates_UE,2); - -H_eNB = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_eNb.channel,1)/2,size(fifo_dump_emos_struct_eNb.channel,2))); -H_UE = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_UE.channel,1)/2,size(fifo_dump_emos_struct_UE.channel,2),size(fifo_dump_emos_struct_UE.channel,3))); - -% find the indices to align the eNB and the UE data -frames_eNB = [estimates_eNB.frame_tx]; %frame counter at eNB -frames_UE = [estimates_UE.frame_rx]; %frame counter at UE -%frame0 = frames_UE(3); -%idx0_eNB = find(frames_eNB==frame0); -%idx0_UE = find(frames_UE==frame0); -idx0_eNB = 1; -idx0_UE = 4354; - -%% -for k=1:NFrames %-max(idx0_eNB,idx0_UE) - %disp([frame0+k-1 frames_eNB(idx0_eNB+k-1) frames_UE(idx0_UE+k-1)]); - H_eNB(k,:,:) = double(estimates_eNB(idx0_eNB+k-1).channel(1:2:end,:)) + 1j*double(estimates_eNB(idx0_eNB+k-1).channel(2:2:end,:)); - H_UE(k,:,:,:) = double(estimates_UE(idx0_UE+k-1).channel(1:2:end,:,:)) + 1j*double(estimates_UE(idx0_UE+k-1).channel(2:2:end,:,:)); -end - -% size(H_eNB) = [NFrames,N_RB_UL_EMOS*12*N_PILOTS_UL_EMOS*N_SUBFRAMES_UL_EMOS,NB_ANTENNAS_RX_EMOS] -% where N_RB_UL_EMOS*12 = 25*12 = 300 is the number of usefull subcarriers -% N_PILOTS_UL_EMOS = 2 is the number of OFDM symbols per subframe that have pilots -% N_SUBFRAMES_UL_EMOS = 3 is the number of UL subframes per frame* - -% size(H_UE) = -% [NFrames,NUMBER_OF_OFDM_CARRIERS_EMOS*N_PILOTS_DL_EMOS*N_SUBFRAMES_DL_EMOS,NB_ANTENNAS_TX_EMOS] -% where NUMBER_OF_OFDM_CARRIERS_EMOS = 512 is the number of OFDM carrier -% (out of which only the first 300 are non-zero) -% N_PILOTS_DL_EMOS = 4 is the number of OFDM carriers that have pilots -% (linear interpolation in the frequency domain has already been -% performed) -% N_SUBFRAMES_DL_EMOS = 5 is the number of DL subframes per frame* - -% NB_ANTENNAS_TX_EMOS = NB_ANTENNAS_RX =2 is the number of antennas at the eNB -% (the UE has one antenna for TX/RX) - -% *here we are using TDD configuration 3 which looks like this (S = special subframe) -% [DL | S | UL | UL | UL | DL | DL | DL | DL | DL] - - -%% -figure(1) -hold off -%plot(idx0_eNB:idx0_eNB+NFrames_eNB-1,[estimates_eNB.frame_tx]-1024*4) -%hold on -plot(idx0_UE:idx0_UE+NFrames_UE-1,[estimates_UE.frame_rx],'r') - -%% -txant = 1; -rxant = 1; -frames = 201:210; - -%H_UE2 = reshape(permute(H_UE(frames,2049:2560,:),[2 1 3]),512,[],2); -%H_UE2 = reshape(permute(H_UE(:,2561:3072,:),[2 1 3]),512,[],2); -H_UE2 = reshape(permute(H_UE(:,1:512,:),[2 1 3]),512,NFrames,2,2); -H_UE3 = complex(zeros(size(H_UE2))); -H_UE3(363:512,:,:,:) = H_UE2(6:155,:,:,:); -H_UE3(1:151,:,:,:) = H_UE2(156:306,:,:,:); -H_UE_t = ifft(conj(H_UE3),512,1); %the channel estimates are stored in conjugated format -H_UE_t = circshift(H_UE_t,[-15,0,0]); %shift the peak to the desired position -figure(2) -hold off -%waterfall(squeeze(20*log10(abs(H_UE_t))).') -plot(squeeze(20*log10(abs(H_UE_t(:,frames,txant,rxant))))) -title('PDP DL channel') - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m b/openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m deleted file mode 100644 index 75b1d2d5bd..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m +++ /dev/null @@ -1,3 +0,0 @@ -system(sprintf('make clean && make dump_size EMOS_CHANNEL=%d',EMOS_CHANNEL)); -[status,result] = system('./dump_size'); -eval(result); diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m b/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m deleted file mode 100755 index 52e08c2220..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m +++ /dev/null @@ -1,158 +0,0 @@ -function [H, H_fq, estimates, gps_data, NFrames] = load_estimates_lte(filename, NFrames_max, decimation, is_eNb, version) -% -% EMOS Single User Import Filter -% -% [H, H_fq, estimates, gps_data, NFrames] = -% load_estimates_lte(filename, NFrames_max, version) -% -% Parameters: -% filename - filename(s) of the EMOS data file -% NFrames_max - Maximum number of estimates. Leave it blank to get up to the -% maximum file contents -% decimation - read every 'decimation' frame -% is_eNb - if ~= 0 we load data from an eNb -% version - for backward compatibility (see details below) -% -% Returns: -% estimates - A structure array containing timestamp, etc -% gps_data - A structure array containing gps data -% NFrames - the number of read estimates - -% Author: Florian Kaltenberger -% Copyright: Eurecom Sophia Antipolis - -% Version History -% Date Version Comment -% 20100317 0.1 Created based on load_estimates - -if nargin < 5 - version = Inf; -end -if nargin < 4 - is_eNb = 0; -end -if nargin < 3 - decimation = 1; -end -if nargin < 2 - NFrames_max = Inf; -end - -% NTx = 2; -% NRx = 2; -% NFreq = 512; -% NZFreq = 300; - -% Logfile structure: -% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h) -% - 1 entry of type gps_fix_t defined in gps.h - -if exist('../IMPORT_FILTER/a.out','file') && isunix - [dummy,result] = system('../IMPORT_FILTER/a.out'); - eval(result); -else - warning('File dump_size.c has to be compiled to enable error checking of sizes'); - %PHY_measurements_size = 1120; - %UCI_data_t_size = 49; - %DCI_alloc_t_size = 16; - %eNb_UE_stats_size = 20; - %fifo_dump_emos_UE_size = 33492; - %fifo_dump_emos_eNb_size = 36980; - %gps_fix_t_size = 108; -end - -struct_template; - -if (version < 1) - fifo_dump_emos_struct_eNb = fifo_dump_emos_struct_eNb_old; - fifo_dump_emos_struct_eNb_a = fifo_dump_emos_struct_eNb_old_a; -end - -gps_fix_t_size = gps_data_struct_a.size; -fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size; -fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size; - - -NO_ESTIMATES_DISK = 100; -if (is_eNb) - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size; -else - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size; -end - -if (mod(NO_ESTIMATES_DISK,decimation) ~= 0) - error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK); -end - -% Estimate the size of the file for a pre-allocation of memory -if ~iscell(filename) - filename = {filename}; -end -NFiles = length(filename); -NFrames_file = zeros(1,NFiles); -for n=1:NFiles - if ~exist(filename{n},'file') - error('File does not exist!') - end - info_file = dir(filename{n}); - NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK; - if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0) - warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag is wrong.'); - end -end -NFrames = min(sum(NFrames_file), NFrames_max); - -if (is_eNb) - estimates = repmat(fifo_dump_emos_struct_eNb,1,floor(NFrames/decimation)); -else - estimates = repmat(fifo_dump_emos_struct_UE,1,floor(NFrames/decimation)); -end - -gps_data = repmat(gps_data_struct,1,NFrames/100); - -k = 1; -l = 1; -for n=1:NFiles - fid = fopen(filename{n},'r'); - - while (~feof(fid) && (k <= min(sum(NFrames_file(1:n)),NFrames_max))) - - if (is_eNb) - estimates_tmp = binread(fid,fifo_dump_emos_struct_eNb,1,4,'l'); - else - estimates_tmp = binread(fid,fifo_dump_emos_struct_UE,1,4,'l'); - end - - if (mod((k-1),decimation) == 0) - estimates(((k-1)/decimation)+1) = estimates_tmp; - end - - %read GPS data - if ((mod(k,NO_ESTIMATES_DISK)==0) && ~feof(fid)) - gps_data(l) = binread(fid,gps_data_struct,1,4,'l'); - l=l+1; - end - %I will have to add it here if the data is huge - %enough************************************************************ - %****************************************************************** - %****************************************************************** - k=k+1; - end - - fclose(fid); -end - -H=[]; -H_fq=[]; - -% H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames)); -% H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames); -% H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames); -% -% H = ifft(H_fq,[],3); -% -% % remove zero carriers from Frequency response -% NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices -% H_fq = H_fq(:,:,NZFreq_ind,:); -% - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m b/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m deleted file mode 100644 index 64da83bde6..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m +++ /dev/null @@ -1,128 +0,0 @@ -function [estimates, NFrames, gps_data, H] = load_estimates_lte_new(filename, NFrames_max, decimation, is_eNb, EMOS_CHANNEL, align) -% -% EMOS Single User Import Filter -% -% [estimates, NFrames] = -% load_estimates_lte(filename, NFrames_max, decimation, is_eNb, EMOS_CHANNEL, align) -% -% Parameters: -% filename - filename(s) of the EMOS data file -% NFrames_max - Maximum number of estimates. Leave it blank to get up to the -% maximum file contents -% decimation - read every 'decimation' frame -% is_eNb - if ~= 0 we load data from an eNb -% EMOS_CHANNEL - if the measurement contains the full channel estimate, set this to 1 -% align - alignment of the data structures. If data was recorded on a 64bit -% machine set this to 8, for 32bit use 4. -% -% Returns: -% estimates - A structure array containing timestamp, etc -% gps_data - A structure array containing gps data -% NFrames - the number of read estimates - -% Author: Florian Kaltenberger -% Copyright: Eurecom Sophia Antipolis - -% Version History -% Date Version Comment -% 20100317 0.1 Created based on load_estimates - -if nargin < 6 - align=4; -end -if nargin < 5 - EMOS_CHANNEL = 0; -end -if nargin < 4 - is_eNb = 1; -end -if nargin < 3 - decimation = 1; -end -if nargin < 2 - NFrames_max = Inf; -end - -% Logfile structure: -% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h) - -struct_template_new; - -gps_fix_t_size = gps_data_struct_a.size; -fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size; -fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size; - - -NO_ESTIMATES_DISK = 100; -if (is_eNb) - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size; -else - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size; -end - -if (mod(NO_ESTIMATES_DISK,decimation) ~= 0) - error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK); -end - -% Estimate the size of the file for a pre-allocation of memory -if ~iscell(filename) - filename = {filename}; -end -NFiles = length(filename); -NFrames_file = zeros(1,NFiles); -for n=1:NFiles - if ~exist(filename{n},'file') - error('File does not exist!') - end - info_file = dir(filename{n}); - NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK; - if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0) - warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag or alignment is wrong.'); - end -end -NFrames = min(sum(NFrames_file), NFrames_max); - -if (is_eNb) - estimates = repmat(fifo_dump_emos_struct_eNb,1,floor(NFrames/decimation)); - if nargout==4 - H = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_eNb.channel,1)/2,size(fifo_dump_emos_struct_eNb.channel,2))); - end -else - estimates = repmat(fifo_dump_emos_struct_UE,1,floor(NFrames/decimation)); - if nargout==4 - H = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_UE.channel,1)/2,size(fifo_dump_emos_struct_UE.channel,2))); - end -end - -%gps_data = repmat(gps_data_struct,1,NFrames/100); - -k = 1; -l = 1; -for n=1:NFiles - fid = fopen(filename{n},'r'); - - while (~feof(fid) && (k <= min(sum(NFrames_file(1:n)),NFrames_max))) - - if (is_eNb) - estimates_tmp = binread(fid,fifo_dump_emos_struct_eNb,1,align,'l'); - else - estimates_tmp = binread(fid,fifo_dump_emos_struct_UE,1,align,'l'); - end - - if (mod((k-1),decimation) == 0) - estimates(((k-1)/decimation)+1) = estimates_tmp; - end - if nargout==4 - H(k,:,:) = (double(estimates_tmp.channel(1:2:end,:)) + 1j*double(estimates_tmp.channel(2:2:end,:))); - end - - %read GPS data - if ((mod(k,NO_ESTIMATES_DISK)==0) && ~feof(fid)) - gps_data(l) = binread(fid,gps_data_struct,1,align,'l'); - l=l+1; - end - k=k+1; - end - - fclose(fid); -end diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m b/openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m deleted file mode 100644 index 5230bf00e9..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m +++ /dev/null @@ -1,290 +0,0 @@ -% file: struct_template.m -% author: florian.kaltenberger@eurecom.fr -% date: 13.3.2010 -% purpose: this file reconstructs the structures fifo_dump_emos_struct_UE -% and fifo_dump_emos_struct_UE which are defined in -% SCHED/phy_procedures_emos.h - - -NUMBER_OF_OFDM_CARRIERS_EMOS = 512; -NUMBER_OF_USEFUL_CARRIERS_EMOS = 300; - -N_RB_DL_EMOS = 25; -N_PILOTS_PER_RB = 4; -N_SLOTS_EMOS = 4; - -N_RB_UL_EMOS = 25; -N_SRS_SYMBOLS = 3; - -N_PILOTS_PER_RB_UL = 12; -N_SRS_SYMBOLS_OLD = 5; - -MAX_DCI_PER_FRAME = 20; -MAX_UCI_PER_FRAME = 20; - -PBCH_PDU_SIZE = 6; - -NUMBER_OF_eNB_MAX = 3; -NUMBER_OF_UE_MAX = 1; -NUMBER_OF_SUBBANDS = 7; - -NB_ANTENNAS_RX = 2; -NB_ANTENNAS_TX = 2; - -MAX_CQI_BITS = 40; -MAX_DCI_SIZE_BITS = 45; - -phy_measurements_struct = struct(... - 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_tot', uint32(0),... - 'n0_power_tot_dB', uint16(0),... - 'n0_power_tot_dBm', int16(0),... - 'rx_spatial_power', uint32(zeros(2,2,NUMBER_OF_eNB_MAX)),... - 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_eNB_MAX)),... - 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_eNB_MAX)),... - 'rx_correlation', int32(zeros(2,NUMBER_OF_eNB_MAX)),... - 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_eNB_MAX)),... - 'wideband_cqi', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'wideband_cqi_dB', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'wideband_cqi_tot', int32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'precoded_cqi_dB', int32(zeros(4,NUMBER_OF_eNB_MAX)),... - 'subband_cqi', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'subband_cqi_tot', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'subband_cqi_dB', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'subband_cqi_tot_dB', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'wideband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'wideband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'subband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'subband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'selected_rx_antennas', int8(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'rank', uint8(zeros(1,NUMBER_OF_eNB_MAX))); - -phy_measurements_struct_a = cstruct(phy_measurements_struct,[],4); -if (exist('PHY_measurements_size','var') && (phy_measurements_struct_a.size ~= PHY_measurements_size)) - error('PHY_measurements_size does not match'); -end - -phy_measurements_eNb_struct = struct(... - 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_tot', uint32(0),... - 'n0_power_tot_dB', uint16(0),... - 'n0_power_tot_dBm', int16(0),... - 'n0_subband_power', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),... - 'n0_subband_power_dB', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),... - 'n0_subband_power_tot_dB', int16(zeros(1,N_RB_UL_EMOS)),... - 'n0_subband_power_tot_dBm', int16(zeros(1,N_RB_UL_EMOS)),... - 'rx_spatial_power', uint32(zeros(2,2,NUMBER_OF_UE_MAX)),... - 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_UE_MAX)),... - 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_UE_MAX)),... - 'rx_correlation', int32(zeros(2,NUMBER_OF_UE_MAX)),... - 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_UE_MAX)),... - 'wideband_cqi', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'wideband_cqi_dB', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'wideband_cqi_tot', int8(zeros(1,NUMBER_OF_UE_MAX)),... - 'subband_cqi', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'subband_cqi_tot', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX)),... - 'subband_cqi_dB', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'subband_cqi_tot_dB', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX))); - -phy_measurements_eNb_struct_a = cstruct(phy_measurements_eNb_struct,[],4); -if (exist('PHY_measurements_eNb_size','var') && (phy_measurements_eNb_struct_a.size ~= PHY_measurements_eNb_size)) - error('PHY_measurements_eNb_size does not match'); -end - -uci_data_struct = struct(... - 'o',uint8(zeros(1,MAX_CQI_BITS)),... - 'O',uint8(0),... - 'o_RI',uint8(zeros(1,2)),... - 'O_RI',uint8(0),... - 'o_ACK',uint8(zeros(1,4)),... - 'O_ACK',uint8(0)); - -uci_data_struct_a = cstruct(uci_data_struct,[],4); -if (exist('UCI_data_t_size','var') && (uci_data_struct_a.size ~= UCI_data_t_size)) - error('UCI_data_t_size does not match'); -end - - -dci_alloc_struct = struct(... - 'dci_length',uint8(0),... - 'L',uint8(0),... - 'rnti',uint16(0),... - 'format',uint32(0),... - 'dci_pdu',uint16(zeros(1,1+floor(MAX_DCI_SIZE_BITS/16)))); - -% this one does not work unfortunately -% dci_alloc_struct = struct(... -% 'dci_length',uint8(0),... -% 'L',uint8(0),... -% 'rnti',uint16(0),... -% 'format',uint32(0),... -% 'rah',logical(0),... -% 'rballoc',logical(zeros(1,13)),... -% 'TPC',logical(zeros(1,2)),... %16 -% -% 'dai',logical(zeros(1,2)),... 1:2 -% 'harq_pid',logical(zeros(1,4)),... 3:6 -% 'tb_swap',logical(0),... 7 -% 'mcs1',logical(zeros(1,5)),... 8:12 -% 'ndi1',logical(0),... 13 -% 'rv1',logical(zeros(1,2)),... 14:15 -% 'tpmi',logical(zeros(1,3)),... 16:17:... -% 'mcs2',logical(zeros(1,5)),... -% 'ndi2',logical(0),... -% 'rv2',logical(zeros(1,2)),... -% 'padding',logical(zeros(1,6))); - -dci_alloc_struct_a = cstruct(dci_alloc_struct,[],4); -if (exist('DCI_alloc_t_size','var') && (dci_alloc_struct_a.size ~= DCI_alloc_t_size)) - error('DCI_alloc_t_size does not match'); -end - - -eNb_UE_stats_struct = struct(... - 'UL_rssi',int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'DL_cqi',uint8(zeros(2,NUMBER_OF_UE_MAX)),... - 'DL_diffcqi',uint8(zeros(2,NUMBER_OF_UE_MAX)),... - 'DL_pmi_single',uint16(zeros(1,NUMBER_OF_UE_MAX)),... - 'DL_pmi_dual',uint16(zeros(1,NUMBER_OF_UE_MAX)),... - 'rank',uint8(zeros(1,NUMBER_OF_UE_MAX)),... - 'UE_id',uint16(zeros(1,NUMBER_OF_UE_MAX)),... - 'UE_timing_offset',int16(zeros(1,NUMBER_OF_UE_MAX)),... - 'UE_mode',uint32(zeros(1,NUMBER_OF_UE_MAX)),... - 'sector',uint8(zeros(1,NUMBER_OF_UE_MAX))); - - -eNb_UE_stats_struct_a = cstruct(eNb_UE_stats_struct,[],4); -if (exist('eNb_UE_stats_size','var') && (eNb_UE_stats_struct_a.size ~= eNb_UE_stats_size)) - error('eNb_UE_stats_size does not match'); -end - -complex_struct = struct('real',int16(0),'imag',int16(0)); - -fifo_dump_emos_struct_UE = struct(... - 'timestamp',int64(0),... - 'frame_tx',uint32(0),... - 'frame_rx',uint32(0),... - 'UE_mode',uint32(0),... - 'phy_measurements', repmat(phy_measurements_struct,1,20),... - 'pbch_pdu',uint8(zeros(PBCH_PDU_SIZE,NUMBER_OF_eNB_MAX)),... - 'pbch_errors',uint32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'pbch_errors_last',uint32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'pbch_errors_conseq',uint32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'pbch_fer',uint32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'dci_cnt',uint32(zeros(1,10)),... - 'dci_errors',uint32(0),... - 'dci_received',uint32(0),... - 'dci_false',uint32(0),... - 'dci_missed',uint32(0),... - 'dci_alloc',repmat(dci_alloc_struct,10,2),... - 'dlsch_errors',uint32(0),... - 'dlsch_errors_last',uint32(0),... - 'dlsch_received',uint32(0),... - 'dlsch_received_last',uint32(0),... - 'dlsch_fer',uint32(0),... - 'dlsch_cntl_errors',uint32(0),... - 'dlsch_ra_errors',uint32(0),... - 'timing_offset',int32(0),... - 'timing_advance',int32(0),... - 'freq_offset',int32(0),... - 'rx_total_gain_dB',uint32(0),... - 'eNb_id',uint8(0),... - 'mimo_mode',uint8(0),... - 'channel',int32(zeros(N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS,NB_ANTENNAS_RX*NB_ANTENNAS_TX,NUMBER_OF_eNB_MAX)),... - 'uci_cnt',uint32(zeros(1,10)),... - 'uci_data',repmat(uci_data_struct,10,2)); - -fifo_dump_emos_struct_UE_a = cstruct(fifo_dump_emos_struct_UE,[],4); -if (exist('fifo_dump_emos_UE_size','var') && (fifo_dump_emos_struct_UE_a.size ~= fifo_dump_emos_UE_size)) - error('fifo_dump_emos_UE_size does not match'); -end - -fifo_dump_emos_struct_eNb_old = struct(... - 'timestamp',int64(0),... - 'frame_tx',uint32(0),... - 'dci_cnt',uint32(zeros(1,10)),... - 'dci_alloc',repmat(dci_alloc_struct,10,2),... - 'mimo_mode',uint8(0),... - 'phy_measurements_eNb',repmat(phy_measurements_eNb_struct,1,3),... - 'eNb_UE_stats',repmat(eNb_UE_stats_struct,10,NUMBER_OF_eNB_MAX),... - 'ulsch_errors',uint32(0),... - 'rx_total_gain_dB',uint32(0),... - 'channel',int16(zeros(N_RB_DL_EMOS*N_PILOTS_PER_RB_UL*2,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX,N_SRS_SYMBOLS_OLD))); - -fifo_dump_emos_struct_eNb_old_a = cstruct(fifo_dump_emos_struct_eNb_old,[],4); - -fifo_dump_emos_struct_eNb = struct(... - 'timestamp',int64(0),... - 'frame_tx',uint32(0),... - 'dci_cnt',uint32(zeros(1,10)),... - 'dci_alloc',repmat(dci_alloc_struct,10,2),... - 'mimo_mode',uint8(0),... - 'phy_measurements_eNb',repmat(phy_measurements_eNb_struct,1,3),... - 'eNb_UE_stats',repmat(eNb_UE_stats_struct,3,1),... - 'ulsch_errors',uint32(0),... - 'rx_total_gain_dB',uint32(0),... - 'channel',int16(zeros(NUMBER_OF_OFDM_CARRIERS_EMOS*2,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX,N_SRS_SYMBOLS))); - - -fifo_dump_emos_struct_eNb_a = cstruct(fifo_dump_emos_struct_eNb,[],4); -if (exist('fifo_dump_emos_eNb_size','var') && (fifo_dump_emos_struct_eNb_a.size ~= fifo_dump_emos_eNb_size)) - error('fifo_dump_emos_eNb_size does not match'); -end - - -gps_data_struct = struct(... - 'timestamp', double(0),... - 'mode', int32(0),... - 'ept',double(0),... - 'latitude',double(0),... - 'longitude',double(0),... - 'eph',double(0),... - 'altitude',double(0),... - 'epv',double(0),... - 'track',double(0),... - 'epd',double(0),... - 'speed',double(0),... - 'eps',double(0),... - 'climb',double(0),... - 'epc',double(0)); - -gps_data_struct_a = cstruct(gps_data_struct,[],4); -if (exist('gps_fix_t_size','var') && (gps_data_struct_a.size ~= gps_fix_t_size)) - error('gps_data_struct_size does not match'); -end - - -min_estimates_struct = struct(... - 'mcs',double(0),... - 'tbs',double(0),... - 'rx_rssi_dBm',int16(0),... - 'frame_tx',uint32(0),... - 'frame_rx',uint32(0),... - 'pbch_fer',uint32(0),... - 'timestamp',int64(0),... - 'UE_mode',uint32(0),... - 'phy_measurements', repmat(phy_measurements_struct,1,1),... - 'dlsch_fer',uint32(0),... - 'dlsch_errors',uint32(0),... - 'mimo_mode',uint8(0),... - 'eNb_id',uint8(0)); -min_estimates_struct_a = cstruct(min_estimates_struct,[],4); - -min_estimates_struct_eNb = struct(... - 'mcs',double(0),... - 'tbs',double(0),... - 'rx_rssi_dBm',int16(0),... - 'frame_tx',uint32(0),... - 'timestamp',int64(0),... - 'UE_mode',uint32(0),... - 'phy_measurements', repmat(phy_measurements_eNb_struct,1,1),... - 'ulsch_errors',uint32(0),... - 'mimo_mode',uint8(0),... - 'eNb_id',uint8(0)); -min_estimates_struct_eNb_a = cstruct(min_estimates_struct,[],4); - - - - diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m b/openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m deleted file mode 100644 index c633cf8c98..0000000000 --- a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m +++ /dev/null @@ -1,335 +0,0 @@ -% file: struct_template.m -% author: florian.kaltenberger@eurecom.fr -% date: 13.3.2010 -% purpose: this file reconstructs the structures fifo_dump_emos_struct_UE -% and fifo_dump_emos_struct_UE which are defined in -% SCHED/phy_procedures_emos.h - - -NUMBER_OF_OFDM_CARRIERS_EMOS = 512; -NUMBER_OF_USEFUL_CARRIERS_EMOS = 300; - -N_RB_UL_EMOS = 25; -N_PILOTS_DL_EMOS = 2; % ofdm symbols with pilots per slot -N_PILOTS_UL_EMOS = 2; % ofdm symbols with pilots per subframe -N_SLOTS_DL_EMOS = 2; % we take slots 10,11 -N_SUBFRAMES_UL_EMOS = 1; % we take subframes 3 -NB_ANTENNAS_TX_EMOS = 2; % antennas at eNB -NB_ANTENNAS_RX_EMOS = 2; % antennas at UE - - -MAX_DCI_PER_FRAME = 20; -MAX_UCI_PER_FRAME = 20; - -PBCH_PDU_SIZE = 6; - -NUMBER_OF_eNB_MAX = 3; -NUMBER_OF_UE_MAX = 2; -NUMBER_OF_SUBBANDS = 13; - -NB_ANTENNAS_RX = 2; % maximum number of antennas (for memory allocation only) -%NB_ANTENNAS_TX = 2; - -MAX_CQI_BITS = 40; -MAX_DCI_SIZE_BITS = 45; - -% enable this line to enable error checking -if exist('check_errors','var') && (check_errors==1) - if isunix - get_dump_size - else - warning('Error checking of sizes only possible in Linux'); - end -end - -if ~exist('align','var') - error('variable align must be specified'); -else - if ((align~=4) && (align~=8)) - error('variable align must be either 4 or 8'); - end -end - -if ~exist('EMOS_CHANNEL','var') - error('variable EMOS_CHANNEL must be specified'); -end - - -phy_measurements_struct = struct(... - 'rssi', uint32(0),... - 'n_adj_cells', int32(0),... - 'n_adj_cells_id', uint32(zeros(1,6)),... - 'rsrq', uint32(zeros(1,7)),... - 'rsrp', uint32(zeros(1,7)),... - 'rsrp_filtered', single(zeros(1,7)),... - 'rsrq_filtered', single(zeros(1,7)),... - 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_tot', uint32(0),... - 'n0_power_tot_dB', uint16(0),... - 'n0_power_avg', uint32(0),... - 'n0_power_avg_dB', uint16(0),... - 'n0_power_tot_dBm', int16(0),... - 'rx_spatial_power', int32(zeros(2,2,NUMBER_OF_eNB_MAX)),... - 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_eNB_MAX)),... - 'rx_power', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'rx_power_dB', uint16(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'rx_power_tot', int32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'rx_power_tot_dB', uint16(zeros(1,NUMBER_OF_eNB_MAX)),... - 'rx_power_avg', int32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'rx_power_avg_dB', uint16(zeros(1,NUMBER_OF_eNB_MAX)),... - 'wideband_cqi_tot', int32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'wideband_cqi_avg', int32(zeros(1,NUMBER_OF_eNB_MAX)),... - 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_eNB_MAX)),... - 'rx_correlation', int32(zeros(2,NUMBER_OF_eNB_MAX)),... - 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_eNB_MAX)),... - 'precoded_cqi_dB', int32(zeros(4,NUMBER_OF_eNB_MAX+1)),... - 'subband_cqi', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'subband_cqi_tot', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'subband_cqi_dB', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'subband_cqi_tot_dB', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'wideband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'wideband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),... - 'subband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'subband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'selected_rx_antennas', int8(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),... - 'rank', uint8(zeros(1,NUMBER_OF_eNB_MAX)),... - 'nb_antennas_rx', uint8(0)); - - -phy_measurements_struct_a = cstruct(phy_measurements_struct,[],align); -if (exist('PHY_measurements_size','var') && (phy_measurements_struct_a.size ~= PHY_measurements_size)) - warning('PHY_measurements_size does not match'); -end - -phy_measurements_eNb_struct = struct(... - 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),... - 'n0_power_tot', uint32(0),... - 'n0_power_tot_dB', uint16(0),... - 'n0_power_tot_dBm', int16(0),... - 'n0_subband_power', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),... - 'n0_subband_power_dB', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),... - 'n0_subband_power_tot_dB', int16(zeros(1,N_RB_UL_EMOS)),... - 'n0_subband_power_tot_dBm', int16(zeros(1,N_RB_UL_EMOS)),... - 'rx_spatial_power', uint32(zeros(2,2,NUMBER_OF_UE_MAX)),... - 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_UE_MAX)),... - 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_UE_MAX)),... - 'rx_correlation', int32(zeros(2,NUMBER_OF_UE_MAX)),... - 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_UE_MAX)),... - 'wideband_cqi', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'wideband_cqi_dB', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'wideband_cqi_tot', int8(zeros(1,NUMBER_OF_UE_MAX)),... - 'subband_cqi', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'subband_cqi_tot', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX)),... - 'subband_cqi_dB', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),... - 'subband_cqi_tot_dB', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX))); - -phy_measurements_eNb_struct_a = cstruct(phy_measurements_eNb_struct,[],align); -if (exist('PHY_measurements_eNb_size','var') && (phy_measurements_eNb_struct_a.size ~= PHY_measurements_eNb_size)) - warning('PHY_measurements_eNb_size does not match'); -end - -uci_data_struct = struct(... - 'o',uint8(zeros(1,MAX_CQI_BITS)),... - 'O',uint8(0),... - 'o_RI',uint8(zeros(1,2)),... - 'O_RI',uint8(0),... - 'o_ACK',uint8(zeros(1,4)),... - 'O_ACK',uint8(0)); - -uci_data_struct_a = cstruct(uci_data_struct,[],align); -if (exist('UCI_data_t_size','var') && (uci_data_struct_a.size ~= UCI_data_t_size)) - warning('UCI_data_t_size does not match'); -end - - -dci_alloc_struct = struct(... - 'dci_length',uint8(0),... - 'L',uint8(0),... - 'rnti',uint16(0),... - 'format',uint32(0),... - 'dci_pdu',uint16(zeros(1,1+floor(MAX_DCI_SIZE_BITS/16)))); - -% this one does not work unfortunately -% dci_alloc_struct = struct(... -% 'dci_length',uint8(0),... -% 'L',uint8(0),... -% 'rnti',uint16(0),... -% 'format',uint32(0),... -% 'rah',logical(0),... -% 'rballoc',logical(zeros(1,13)),... -% 'TPC',logical(zeros(1,2)),... %16 -% -% 'dai',logical(zeros(1,2)),... 1:2 -% 'harq_pid',logical(zeros(1,4)),... 3:6 -% 'tb_swap',logical(0),... 7 -% 'mcs1',logical(zeros(1,5)),... 8:12 -% 'ndi1',logical(0),... 13 -% 'rv1',logical(zeros(1,2)),... 14:15 -% 'tpmi',logical(zeros(1,3)),... 16:17:... -% 'mcs2',logical(zeros(1,5)),... -% 'ndi2',logical(0),... -% 'rv2',logical(zeros(1,2)),... -% 'padding',logical(zeros(1,6))); - -dci_alloc_struct_a = cstruct(dci_alloc_struct,[],align); -if (exist('DCI_alloc_t_size','var') && (dci_alloc_struct_a.size ~= DCI_alloc_t_size)) - warning('DCI_alloc_t_size does not match'); -end - - -eNb_UE_stats_struct = struct(... - 'UL_rssi',int32(zeros(1,NB_ANTENNAS_RX)),... - 'DL_cqi',uint8(zeros(1,2)),... - 'DL_subband_cqi',uint8(zeros(13,2)),... - 'DL_pmi_single',uint16(0),... - 'DL_pmi_dual',uint16(0),... - 'rank',uint8(0),... - 'crnti',uint16(0),... - 'UE_timing_offset',int32(0),... - 'timing_advance_update',int32(0),... - 'UE_mode',uint32(0),... - 'sector',uint8(0),... - 'dlsch_l2_errors', uint32(zeros(1,8)),... - 'dlsch_trials', uint32(zeros(8,8)),... - 'dlsch_ACK', uint32(zeros(8,8)),... - 'dlsch_NAK', uint32(zeros(8,8)),... - 'ulsch_errors', uint32(zeros(1,8)),... - 'ulsch_consecutive_errors', uint32(0),... - 'ulsch_decoding_attempts', uint32(zeros(8,8)),... - 'ulsch_round_errors', uint32(zeros(8,8)),... - 'ulsch_decoding_attempts_last', uint32(zeros(8,8)),... - 'ulsch_round_errors_last', uint32(zeros(8,8)),... - 'ulsch_round_fer', uint32(zeros(8,8)),... - 'sr_received', uint32(0), ... - 'sr_total', uint32(0), ... - 'dlsch_sliding_cnt', uint32(0),... - 'dlsch_NAK_round0', uint32(0),... - 'dlsch_mcs_offset', int8(0),... - 'dlsch_mcs1', uint8(0),... - 'dlsch_mcs2', uint8(0),... - 'total_TBS_MAC', int32(0),... - 'total_TBS', int32(0),... - 'total_TBS_last', int32(0),... - 'dlsch_bitrate', uint32(0)); - - -eNb_UE_stats_struct_a = cstruct(eNb_UE_stats_struct,[],align); -if (exist('eNb_UE_stats_size','var') && (eNb_UE_stats_struct_a.size ~= eNb_UE_stats_size)) - warning('eNb_UE_stats_size does not match'); -end - -complex_struct = struct('real',int16(0),'imag',int16(0)); - -fifo_dump_emos_struct_UE = struct(... - 'timestamp',int64(0),... - 'frame_tx',uint32(0),... - 'frame_rx',uint32(0),... - 'UE_mode',uint32(0),... - 'phy_measurements', phy_measurements_struct,... - 'pbch_errors',uint32(0),... - 'pbch_errors_last',uint32(0),... - 'pbch_errors_conseq',uint32(0),... - 'pbch_fer',uint32(0),... - 'dlsch_errors',uint32(0),... - 'dlsch_errors_last',uint32(0),... - 'dlsch_received',uint32(0),... - 'dlsch_received_last',uint32(0),... - 'dlsch_fer',uint32(0),... - 'dlsch_cntl_errors',uint32(0),... - 'dlsch_ra_errors',uint32(0),... - 'total_TBS',uint32(0),... - 'total_TBS_last',uint32(0),... - 'bitrate',uint32(0),... - 'total_received_bits',uint32(0),... - 'timing_offset',int32(0),... - 'timing_advance',int32(0),... - 'freq_offset',int32(0),... - 'use_ia_receiver',int32(0),... - 'pmi_saved',uint16(0),... - 'mcs',uint16(0),... - 'rx_total_gain_dB',uint32(0),... - 'eNb_id',uint8(0),... - 'mimo_mode',uint8(0)); -if (EMOS_CHANNEL) - fifo_dump_emos_struct_UE.channel=int16(zeros(2*NUMBER_OF_OFDM_CARRIERS_EMOS*N_PILOTS_DL_EMOS*N_SLOTS_DL_EMOS,NB_ANTENNAS_TX_EMOS,NB_ANTENNAS_RX_EMOS)); -end - -fifo_dump_emos_struct_UE_a = cstruct(fifo_dump_emos_struct_UE,[],align); -if (exist('fifo_dump_emos_UE_size','var') && (fifo_dump_emos_struct_UE_a.size ~= fifo_dump_emos_UE_size)) - warning('fifo_dump_emos_UE_size does not match'); -end - -fifo_dump_emos_struct_eNb = struct(... - 'timestamp',int64(0),... - 'frame_tx',uint32(0),... - 'mimo_mode',uint8(0),... - 'phy_measurements_eNb',phy_measurements_eNb_struct,... - 'eNb_UE_stats',repmat(eNb_UE_stats_struct,1,NUMBER_OF_UE_MAX),... - 'rx_total_gain_dB',uint32(0)); -if (EMOS_CHANNEL) - fifo_dump_emos_struct_eNb.channel = int16(zeros(2*N_RB_UL_EMOS*12*N_PILOTS_UL_EMOS*N_SUBFRAMES_UL_EMOS,NB_ANTENNAS_RX_EMOS)); -end - -fifo_dump_emos_struct_eNb_a = cstruct(fifo_dump_emos_struct_eNb,[],align); -if (exist('fifo_dump_emos_eNb_size','var') && (fifo_dump_emos_struct_eNb_a.size ~= fifo_dump_emos_eNb_size)) - warning('fifo_dump_emos_eNb_size does not match'); -end - - -gps_data_struct = struct(... - 'timestamp', double(0),... - 'mode', int32(0),... - 'ept',double(0),... - 'latitude',double(0),... - 'epy',double(0),... - 'longitude',double(0),... - 'epx',double(0),... - 'altitude',double(0),... - 'epv',double(0),... - 'track',double(0),... - 'epd',double(0),... - 'speed',double(0),... - 'eps',double(0),... - 'climb',double(0),... - 'epc',double(0)); - -gps_data_struct_a = cstruct(gps_data_struct,[],align); -if (exist('gps_fix_t_size','var') && (gps_data_struct_a.size ~= gps_fix_t_size)) - warning('gps_data_struct_size does not match'); -end - - -min_estimates_struct = struct(... - 'mcs',double(0),... - 'tbs',double(0),... - 'rx_rssi_dBm',int16(0),... - 'frame_tx',uint32(0),... - 'frame_rx',uint32(0),... - 'pbch_fer',uint32(0),... - 'timestamp',int64(0),... - 'UE_mode',uint32(0),... - 'phy_measurements', repmat(phy_measurements_struct,1,1),... - 'dlsch_fer',uint32(0),... - 'dlsch_errors',uint32(0),... - 'mimo_mode',uint8(0),... - 'eNb_id',uint8(0)); -min_estimates_struct_a = cstruct(min_estimates_struct,[],align); - -min_estimates_struct_eNb = struct(... - 'mcs',double(0),... - 'tbs',double(0),... - 'rx_rssi_dBm',int16(0),... - 'frame_tx',uint32(0),... - 'timestamp',int64(0),... - 'UE_mode',uint32(0),... - 'phy_measurements', repmat(phy_measurements_eNb_struct,1,1),... - 'ulsch_errors',uint32(0),... - 'mimo_mode',uint8(0),... - 'eNb_id',uint8(0)); -min_estimates_struct_eNb_a = cstruct(min_estimates_struct,[],align); - - - - diff --git a/openair1/EMOS/LTE/MU-MIMO/eval_results.m b/openair1/EMOS/LTE/MU-MIMO/eval_results.m deleted file mode 100644 index 8cff48b390..0000000000 --- a/openair1/EMOS/LTE/MU-MIMO/eval_results.m +++ /dev/null @@ -1,76 +0,0 @@ -%% Script for reading in the EMOS input -clear all; -%close all; - -addpath('E:\Synchro\kaltenbe\My Documents\openair4G\openair1\EMOS\LTE\IMPORT_FILTER') - -% 2rx -% [estimates,NFrames]=load_estimates_lte_new('E:\Synchro\kaltenbe\My Documents\openair4G\openair1\EMOS\DUMP\UE_data_20130315_142130.EMOS',inf,1,0); -% 1rx -% estimates = load_estimates_lte_new('E:\EMOS\globecom\UE_data_20130315_155139.EMOS', inf, 1, 0); - -% 2rx long test -% estimates = load_estimates_lte_new('/home/wagner/GC/UE_data_20130315_142130.EMOS', 250000, 1, 0); -% 1rx short test -% estimates = load_estimates_lte_new('/home/wagner/GC/UE_data_20130315_153101.EMOS', inf, 1, 0); - -% ITJ -%Nrx = 1; -%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130916_175331.EMOS', inf, 1, 0, 0); -Nrx = 2; -%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130916_174719.EMOS', inf, 1, 0, 0); -%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130924_143804.EMOS', inf, 1, 0, 0); -%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130924_143250.EMOS', inf, 1, 0, 0); - -% outdoor messungen 2013-10-10 -filepath = 'E:\EMOS\MU-MIMO\ITJ3\'; -filename = 'UE_data_20131030_143345'; -estimates = load_estimates_lte_new([filepath filename '.EMOS'], inf, 1, 0, 0); - -%% frame -frame_rx = double([estimates.frame_rx]); -%throughput = [0 diff(double([estimates.total_TBS]))*100]; -throughput = double([estimates.bitrate]); -mcs = double([estimates.mcs]); -use_iu_receiver = ([estimates.use_ia_receiver]==0); -use_ia_receiver = ([estimates.use_ia_receiver]==1); -use_iag_receiver = ([estimates.use_ia_receiver]==2); - - -%% average -avg_tp_ia = zeros(28,1); -avg_tp_iag = zeros(28,1); -avg_tp_iu = zeros(28,1); -num_ia = zeros(28,1); -num_iag = zeros(28,1); -num_iu = zeros(28,1); - -for imcs=0:1:27 - mcs_window = (mcs==imcs); - throughput_iag_mcs = throughput(use_iag_receiver & mcs_window); - num_iag(imcs+1) = sum(use_iag_receiver & mcs_window); - avg_tp_iag(imcs+1) = mean(throughput_iag_mcs); - throughput_ia_mcs = throughput(use_ia_receiver & mcs_window); - num_ia(imcs+1) = sum(use_ia_receiver & mcs_window); - avg_tp_ia(imcs+1) = mean(throughput_ia_mcs); - throughput_iu_mcs = throughput(use_iu_receiver & mcs_window); - num_iu(imcs+1) = sum(use_iu_receiver & mcs_window); - avg_tp_iu(imcs+1) = mean(throughput_iu_mcs); -end - - -%% Plot -figure(2) -hold off -colormap hot -bar(0:1:27,[avg_tp_iu avg_tp_ia avg_tp_iag]) -grid on -xlim([-1 28]) -h = legend('IU Receiver','IA Receiver','IA genie'); -set(h,'FontSize',14); -xlabel('MCS','FontSize',14) -ylabel('Throughput [bps]','FontSize',14) - -%saveas(gcf, filename, 'eps') -%save(filename,'avg_tp*', 'mcs*', 'throughput*', 'use*', 'frame*'); -%csvwrite([filename '.csv'],[(0:1:27).' avg_tp_iu avg_tp_ia avg_tp_iag]) \ No newline at end of file diff --git a/openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m b/openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m deleted file mode 100644 index 69b06eecd3..0000000000 --- a/openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m +++ /dev/null @@ -1,149 +0,0 @@ -%% Script for reading in the EMOS input -clear all; -close all; - -addpath('E:\Synchro\kaltenbe\My Documents\openair4G\openair1\EMOS\LTE\IMPORT_FILTER') - -% outdoor messungen 2013-10-10 fuer ITJ paper -%filepath = 'E:\EMOS\MU-MIMO\ITJ3\'; -%filename = 'UE_data_20131030_143345'; - -% indoor messungen 20140220 fuer SAM paper -filepath = 'E:\EMOS\MU-MIMO\SAM\'; - -% outdoor messungen for SAM paper -%filename = 'UE_data_pmi_fixed_all'; -filename = 'UE_data_20140220_163107'; -%filename = 'UE_data_all'; - -[estimates, NFrames] = load_estimates_lte_new([filepath filename '.EMOS'], inf, 1, 0, 0); - -%% frame -frame_rx = double([estimates.frame_rx]); -%throughput = [0 diff(double([estimates.total_TBS]))*100]; -throughput = double([estimates.bitrate]); -mcs = double([estimates.mcs]); -use_iu_receiver = ([estimates.use_ia_receiver]==0); -use_ia_receiver = ([estimates.use_ia_receiver]==1); -use_iag_receiver = ([estimates.use_ia_receiver]==2); - -%% phy measurements -SNR_dB = zeros(1,NFrames); -INR_dB = zeros(1,NFrames); -for i=2:NFrames - SNR_dB(i-1) = estimates(i).phy_measurements.precoded_cqi_dB(1,1); - INR_dB(i-1) = estimates(i).phy_measurements.precoded_cqi_dB(1,2); -end -SIR_dB = SNR_dB - INR_dB; - -%% average -avg_tp_ia = zeros(28,1); -avg_tp_iag = zeros(28,1); -avg_tp_iu = zeros(28,1); -avg_SIR_ia = zeros(28,1); -avg_SIR_iag = zeros(28,1); -num_ia = zeros(28,1); -num_iag = zeros(28,1); -num_iu = zeros(28,1); - - -for imcs=16 %[0:11 13:25] - %% - mcs_window = (mcs==imcs); - throughput_iag_mcs = throughput(use_iag_receiver & mcs_window); - num_iag(imcs+1) = sum(use_iag_receiver & mcs_window); - avg_tp_iag(imcs+1) = mean(throughput_iag_mcs); - throughput_ia_mcs = throughput(use_ia_receiver & mcs_window); - num_ia(imcs+1) = sum(use_ia_receiver & mcs_window); - avg_tp_ia(imcs+1) = mean(throughput_ia_mcs); - throughput_iu_mcs = throughput(use_iu_receiver & mcs_window); - num_iu(imcs+1) = sum(use_iu_receiver & mcs_window); - avg_tp_iu(imcs+1) = mean(throughput_iu_mcs); - - SIR_iu_mcs = SIR_dB(use_iu_receiver & mcs_window); - SIR_ia_mcs = SIR_dB(use_ia_receiver & mcs_window); - SIR_iag_mcs = SIR_dB(use_iag_receiver & mcs_window); - avg_SIR_ia(imcs+1) = mean(SIR_ia_mcs); - avg_SIR_iag(imcs+1) = mean(SIR_iag_mcs); - - isir=0; - for sir=min(SIR_dB):max(SIR_dB) - ia(1,isir+1) = sum(use_ia_receiver & mcs_window & (SIR_dB==sir)); - if ia(1,isir+1)>=5 - IA(1,isir+1) = mean(throughput(use_ia_receiver & mcs_window & (SIR_dB==sir))); - else - IA(1,isir+1) = NaN; - end - iu(1,isir+1) = sum(use_iu_receiver & mcs_window & (SIR_dB==sir)); - if iu(1,isir+1)>=5 - IU(1,isir+1) = mean(throughput(use_iu_receiver & mcs_window & (SIR_dB==sir))); - else - IU(1,isir+1) = NaN; - end - iag(1,isir+1) = sum(use_iag_receiver & mcs_window & (SIR_dB==sir)); - if iag(1,isir+1)>=5 - IAG(1,isir+1) = mean(throughput(use_iag_receiver & mcs_window & (SIR_dB==sir))); - else - IAG(1,isir+1) = NaN; - end - isir = isir+1; - end -end - - -%% Plot -f = figure(1); -hold off -colormap hot -bar(0:1:27,[avg_tp_iu avg_tp_ia avg_tp_iag]) -grid on -xlim([-1 28]) -h = legend('IU Receiver','IA Receiver','IA genie'); -set(h,'FontSize',14); -xlabel('MCS','FontSize',14) -ylabel('Throughput [bps]','FontSize',14) - -saveas(f, ['tp_vs_mcs' filename '.eps'], 'epsc2') -%save(filename,'avg_tp*', 'mcs*', 'throughput*', 'use*', 'frame*'); -%csvwrite([filename '.csv'],[(0:1:27).' avg_tp_iu avg_tp_ia avg_tp_iag]) - -%% Plot2 -plot_style = {'b-*';'r-*';'g-*';'y-*';'k-*';... - 'b-o';'r-o';'g-o';'y-o';'k-o';... - 'b-s';'r-s';'g-s';'y-s';'k-s';... - 'b-d';'r-d';'g-d';'y-d';'k-d';... - 'b-x';'r-x';'g-x';'y-x';'k-x';... - 'b-+';'r-+';'g-+';'y-+';'k-+'}; -legend_str = {}; -f = figure(2); -hold off -plot(min(SIR_dB):max(SIR_dB),IAG/1000,'r-x','Markersize',10) -hold on -plot(min(SIR_dB):max(SIR_dB),IA/1000,'b--o') -plot(min(SIR_dB):max(SIR_dB),IU/1000,'k:s') -h=legend('NA-IA','IA','IU','Location','NorthWest'); -set(h,'FontSize',14); -%for imcs=0:27 - %plot(avg_SIR_ia(imcs+1),avg_tp_ia(imcs+1)-avg_tp_iu(imcs+1),plot_style{imcs+1},'Markersize',10); - %hold on - %legend_str{imcs+1} = sprintf('mcs %d',imcs); -%end -%legend(legend_str) -xlabel('SIR [dB]'); -ylabel('Throughput [kbps]') -saveas(f, ['tp_vs_sir' filename '.eps'], 'epsc2') - -%% Plot 3 -f = figure(3); -hold off -bar(min(SIR_dB):max(SIR_dB),[ia; iu; iag].') -h=legend('NA-IA','IA','IU','Location','NorthWest'); -set(h,'FontSize',14); -xlabel('SIR [dB]'); -ylabel('Occurrence'); -shading flat -% plot([0:4], X(15:2:23,:).') -% legend('mcs 14', 'mcs 16', 'mcs 18', 'mcs 20', 'mcs 22') -% xlabel('SIR [dB]') -% ylabel('delta TP [bps]') -saveas(f,['hist_sir' filename '.eps'], 'epsc2') \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m deleted file mode 100644 index d7f9edd443..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m +++ /dev/null @@ -1,18 +0,0 @@ -close all -clear all - -root_path = '/emos/AMBIALET/Mode2/'; - -d = dir(fullfile(root_path, '*MODE2*')); -dir_names = {d.name}; - -for d_idx=1:length(dir_names) - pathname = fullfile(root_path,dir_names{d_idx}); - disp(pathname) - Concatenate_results_UE_quick - %Concatenate_results_eNb_quick - -end - - - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m deleted file mode 100644 index 9ba7fb3657..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m +++ /dev/null @@ -1,39 +0,0 @@ -%% This file concatenates all the matlab results files from different folders and then saves the resulting file in root_path folder. -clear all; -close all; - -start_idx = 1; -root_path = '/emos/AMBIALET/Mode2/'; - -d = dir(fullfile(root_path, '*MODE2*')); -dir_names = {d.name}; - -%% -for d_idx=1:length(dir_names) - - pathname = fullfile(root_path,dir_names{d_idx}) - try - temp = load(fullfile(pathname, 'results_cat_UE.mat')); - catch exception - disp(exception.getReport) - disp(sprintf('Detected error in folder %s, skipping it',pathname)); - continue - end -% vars = whos('*_cat'); -% nn = {vars.name}; - - nn = fieldnames(temp); - if (start_idx==1) - for n = 1:length(nn) - eval([nn{n} ' = [];']); - end - end - for n = 1:length(nn) - eval([nn{n} ' = [' nn{n} ' ' 'temp.' nn{n} '];']); - end - - save(fullfile(root_path,'results_cat_UE.mat'), '*_cat'); - start_idx = start_idx + 1; - -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m deleted file mode 100644 index cb5567cab6..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m +++ /dev/null @@ -1,39 +0,0 @@ -%% This file concatenates all the matlab results files from different folders and then saves the resulting file in root_path folder. -clear all; -close all; -clc - -start_idx = 1; -root_path = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2/'; - -d = dir(fullfile(root_path, '*mode*')); -dir_names = {d.name}; - -for d_idx=1:length(dir_names) - - pathname = fullfile(root_path,dir_names{d_idx}) - try - temp = load(fullfile(pathname, 'results_cat_eNb.mat')); - catch exception - disp(exception.getReport) - disp(sprintf('Detected error in folder %s, skipping it',pathname)); - continue - end -% vars = whos('*_cat'); -% nn = {vars.name}; - - nn = fieldnames(temp); - if (start_idx==1) - for n = 1:length(nn) - eval([nn{n} ' = [];']); - end - end - for n = 1:length(nn) - eval([nn{n} ' = [' nn{n} ' ' 'temp.' nn{n} '];']); - end - - save(fullfile(root_path,'results_cat_eNb.mat'), '*_cat'); - start_idx = start_idx + 1; - -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m deleted file mode 100755 index 0e595605cd..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m +++ /dev/null @@ -1,54 +0,0 @@ -%pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/20100510_mode2_parcours1_part1/'; - -d = dir(fullfile(pathname, 'data_term3*.mat')); -d1 = dir(fullfile(pathname, 'data_term3*.EMOS')); -filenames = {d.name}; -filedates = {d1.date}; -[filedates,idx] = sort(filedates); -filenames = filenames(idx); - -gps_data_cat = []; - -%minestimates_cat = []; -UE_mode_cat = []; - -K_fac_cat = []; - -%% -for f = 1:length(filenames) - s = fullfile(pathname, filenames{f}); - load(s); - - nn = fieldnames(throughput); - if (f==1) - for n = 1:length(nn) - eval([nn{n} '_cat = [];']); - end - end - for n = 1:length(nn) - eval([nn{n} '_cat = [' nn{n} '_cat throughput.' nn{n} '];']); - end - - nn = fieldnames(SNR); - if (f==1) - for n = 1:length(nn) - eval([nn{n} '_cat = [];']); - end - end - for n = 1:length(nn) - eval([nn{n} '_cat = [' nn{n} '_cat SNR.' nn{n} '];']); - end - - gps_data_cat = cat(2,gps_data_cat,gps_data); - - %minestimates_cat = cat(2,minestimates_cat,minestimates); - - UE_mode_cat = cat(2,UE_mode_cat,[minestimates.UE_mode]); - - K_fac_cat = cat(2,K_fac_cat,K_fac); - - save(fullfile(pathname,'results_cat_UE.mat'),'*_cat'); - -end - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m deleted file mode 100644 index 86dddbeb28..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m +++ /dev/null @@ -1,44 +0,0 @@ -d = dir(fullfile(pathname, 'data_term1*.mat')); -filenames = {d.name}; - -gps_data_cat = []; - -%minestimates_cat = []; - -%K_fac_cat = []; - -%% -for f = 1:length(filenames) - s = fullfile(pathname, filenames{f}); - load(s); - - nn = fieldnames(throughput); - if (f==1) - for n = 1:length(nn) - eval([nn{n} '_cat = [];']); - end - end - for n = 1:length(nn) - eval([nn{n} '_cat = [' nn{n} '_cat throughput.' nn{n} '];']); - end - - nn = fieldnames(SNR); - if (f==1) - for n = 1:length(nn) - eval([nn{n} '_cat = [];']); - end - end - for n = 1:length(nn) - eval([nn{n} '_cat = [' nn{n} '_cat SNR.' nn{n} '];']); - end - - gps_data_cat = cat(2,gps_data_cat,gps_data); - - %minestimates_cat = cat(2,minestimates_cat,minestimates); - - %K_fac_cat = cat(2,K_fac_cat,K_fac); - - save(fullfile(pathname,'results_cat_eNB.mat'),'*_cat'); - -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m deleted file mode 100755 index 7afe7067e5..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m +++ /dev/null @@ -1,42 +0,0 @@ -function [DISTANCE] = Dist_Calc_from_GPS(LAT1, LONG1, LAT2, LONG2) -%% Distance Calculator between two GPS coordinates -% [DISTANCE] = Dist_Calc_from_GPS(LAT1, LONG1, LAT2, LONG2) -% DISTANCE is in Kilometers. -% LAT1 is the latitude value of first point in decimal degrees -% LONG1 is the longitude value of first point in decimal degrees -% LAT2 is the latitude value of second point in decimal degrees -% LONG2 is the longitude value of second point in decimal degrees -% -% For Example -% -% DISTANCE = Dist_Calc_from_GPS(43.62785, 7.052418, 43.629224, 7.040884); -% -% Date: 20-04-2010 -% Author: Imran Latif (imran.latif@eurecom.fr) -% Source: http://www.mathforum.com/library/drmath/view/51711.html - -% all converted to radians: degree/57.29577951 - - A = LAT1/57.29577951; - B = LONG1/57.29577951; - - C = LAT2/57.29577951; - D = LONG2/57.29577951; - - - if (A == C && B == D) - DISTANCE = 0; - else - if ((sin(A) * sin(C) + cos(A) * cos(C) * cos(B-D)) > 1) - DISTANCE = 6378 * acos(1); - else - DISTANCE = 6378 * acos(sin(A) * sin(C) + cos(A) * cos(C) * cos(B-D)); - end - end - -% disp('distance in Kilometers: '); -% DISTANCE -if isnan(DISTANCE) - DISTANCE = 0; -end - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m deleted file mode 100644 index 1a146095ef..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m +++ /dev/null @@ -1,66 +0,0 @@ -%% Concatenating Script -lat_cat= []; -lon_cat=[]; -K_fac_cat=[]; - -root_path = '/media/Expansion_Drive/Mode2/'; - -d = dir(fullfile(root_path, '*mode2_parcours*')); -dir_names = {d.name}; - -% post processing for vehicular measurements -for i=1:length(dir_names) - - pathname = fullfile(root_path,dir_names{i}); -%pathname = '/homes/latif/Mode2_UE_matFiles/'; - -d = dir(fullfile(pathname, '*_K_factor.mat')); -filenames = {d.name}; - -for f = 1:length(filenames) - s = fullfile(pathname, filenames{f}); - load(s); - - lat_cat = [lat_cat [gps_data.latitude]]; - lon_cat = [lon_cat [gps_data.longitude]]; - - K_fac_cat=[K_fac_cat K_fac]; - - -end - -end -save(fullfile(root_path, 'mode2_K_factor.mat'), 'lat_cat', 'lon_cat','K_fac_cat'); - -mm='cordes'; - -%% Plotting Script -in = 0; -in = in + 1; -h_fig = figure(in); -hold off -plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(1:4:end))); -title('Ricean Factor for First Antenna Pair(H11)') -saveas(h_fig,fullfile(root_path,'K_factor_h11.jpg'),'jpg') - -in = in + 1; -h_fig = figure(in); -hold off -plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(2:4:end))); -title('Ricean Factor for Second Antenna Pair(H12)') -saveas(h_fig,fullfile(pathname,'K_factor_h12.jpg'),'jpg') - -in = in + 1; -h_fig = figure(in); -hold off -plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(3:4:end))); -title('Ricean Factor for third Antenna Pair(H21)') -saveas(h_fig,fullfile(pathname,'K_factor_h21.jpg'),'jpg') - -in = in + 1; -h_fig = figure(in); -hold off -plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(4:4:end))); -title('Ricean Factor for Fourth Antenna Pair(H22)') -saveas(h_fig,fullfile(pathname,'K_factor_h22.jpg'),'jpg') - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m deleted file mode 100644 index 309bcb0da0..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m +++ /dev/null @@ -1,41 +0,0 @@ -function [dist, dist_travelled] = calc_dist(MS_Lat, MS_Long, site) -% [dist, dist_traveled] = calc_dist(MS_Lat, MS_Long) -% Calculates distance from Base Station as well as distance travelled in km. -% We take the reference of the BS in Cordes -% Source http://itouchmap.com/latlong.html - -if nargin<3 - site = 'cordes'; -end - -switch(site) - case 'cordes' - BS_Lat = 44.084015; - BS_Long = 1.965765; - case 'penne' - BS_Lat = 44.079722; - BS_Long = 1.714722; - case 'ambialet' - BS_Lat = 43.945; - BS_Long = 2.373889; -end - - -dist = zeros(1,length(MS_Lat)); -for i = 1:length(MS_Lat) - if (MS_Lat(i)~=0 && MS_Long(i)~=0) - dist(i) = Dist_Calc_from_GPS(BS_Lat, BS_Long, MS_Lat(i), MS_Long(i)); - else - dist(i) = nan; - end -end - -dist_travelled = zeros(1,length(MS_Lat)); -for i = 2:length(MS_Lat); - if (MS_Lat(i-1)~=0 && MS_Long(i-1)~=0 && MS_Lat(i)~=0 && MS_Long(i)~=0) - dist_travelled(i) = Dist_Calc_from_GPS(MS_Lat(i-1), MS_Long(i-1), MS_Lat(i), MS_Long(i)); - else - dist_travelled(i) = nan; - end -end -dist_travelled = cumsum(dist_travelled); diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m deleted file mode 100755 index dfd0458814..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m +++ /dev/null @@ -1,107 +0,0 @@ -function [Rate_4Qam_1stRx,Rate_16Qam_1stRx,Rate_64Qam_1stRx,Rate_4Qam_2ndRx,... - Rate_16Qam_2ndRx,Rate_64Qam_2ndRx, alam_SNR_1stRx_persecond,alam_SNR_2ndRx_persecond,... - Rate_4Qam_2Rx,Rate_16Qam_2Rx,Rate_64Qam_2Rx,alam_SNR_2Rx_persecond,... - Rate_SupportedQam_1stRx,Rate_SupportedQam_2ndRx,Rate_SupportedQam_2Rx] = calc_rps_Alamouti(estimates_UE) - -capacity_Alamouti_1 - -alam_SNR_1stRx_persecond = mean(SNR_eNB_1stRx(:)); -alam_SNR_2ndRx_persecond = mean(SNR_eNB_2ndRx(:)); -alam_SNR_2Rx_persecond = mean(SNR_eNB_2Rx(:)); - -%plot(SNR_eNB1, 'g-x'); - -%[x y z] = size(chcap_siso_single_stream_4Qam_eNB1); - -% Following will hold the data rate of one whole Frame - -Frame_DL_sum_4Qam_1stRx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_1stRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_1stRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_1stRx = zeros(1,length(estimates_UE)); - -Frame_DL_sum_4Qam_2ndRx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_2ndRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_2ndRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_2ndRx = zeros(1,length(estimates_UE)); - -Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE)); - -for i = 1:length(estimates_UE) - %following holds accumulated data rate of 200 resource elements - - RS_sum_4Qam_1stRx = sum(chcap_alamouti_4Qam_1stRx(1,:,i)); - RS_sum_16Qam_1stRx = sum(chcap_alamouti_16Qam_1stRx(1,:,i)); - RS_sum_64Qam_1stRx = sum(chcap_alamouti_64Qam_1stRx(1,:,i)); - RS_sum_supportedQam_1stRx = sum(chcap_alamouti_supportedQam_1stRx(1,:,i)); - - RS_sum_4Qam_2ndRx = sum(chcap_alamouti_4Qam_2ndRx(1,:,i)); - RS_sum_16Qam_2ndRx = sum(chcap_alamouti_16Qam_2ndRx(1,:,i)); - RS_sum_64Qam_2ndRx = sum(chcap_alamouti_64Qam_2ndRx(1,:,i)); - RS_sum_supportedQam_2ndRx = sum(chcap_alamouti_supportedQam_2ndRx(1,:,i)); - - - RS_sum_4Qam_2Rx = sum(chcap_alamouti_4Qam_2Rx(1,:,i)); - RS_sum_16Qam_2Rx = sum(chcap_alamouti_16Qam_2Rx(1,:,i)); - RS_sum_64Qam_2Rx = sum(chcap_alamouti_64Qam_2Rx(1,:,i)); - RS_sum_supportedQam_2Rx = sum(chcap_alamouti_supportedQam_2Rx(1,:,i)); - - % since 4200/200 = 21 groups of 200 resource elements are there in one subframe, so to get - % the estimate of whole subframe we need to multiply RS_sum_XQam by 21. - - Subframe_DL_sum_4Qam_1stRx = RS_sum_4Qam_1stRx * 12; - Subframe_DL_sum_16Qam_1stRx = RS_sum_16Qam_1stRx * 12; - Subframe_DL_sum_64Qam_1stRx = RS_sum_64Qam_1stRx * 12; - Subframe_DL_sum_supportedQam_1stRx = RS_sum_supportedQam_1stRx * 12; - - Subframe_DL_sum_4Qam_2ndRx = RS_sum_4Qam_2ndRx * 12; - Subframe_DL_sum_16Qam_2ndRx = RS_sum_16Qam_2ndRx * 12; - Subframe_DL_sum_64Qam_2ndRx = RS_sum_64Qam_2ndRx * 12; - Subframe_DL_sum_supportedQam_2ndRx = RS_sum_supportedQam_2ndRx * 12; - - - Subframe_DL_sum_4Qam_2Rx = RS_sum_4Qam_2Rx * 12; - Subframe_DL_sum_16Qam_2Rx = RS_sum_16Qam_2Rx * 12; - Subframe_DL_sum_64Qam_2Rx = RS_sum_64Qam_2Rx * 12; - Subframe_DL_sum_supportedQam_2Rx = RS_sum_supportedQam_2Rx * 12; - - %In LTE Confguration 3 we have 6 downlink subframes in one frame so - - Frame_DL_sum_4Qam_1stRx(i) = Subframe_DL_sum_4Qam_1stRx * 6; - Frame_DL_sum_16Qam_1stRx(i) = Subframe_DL_sum_16Qam_1stRx * 6; - Frame_DL_sum_64Qam_1stRx(i) = Subframe_DL_sum_64Qam_1stRx * 6; - Frame_DL_sum_supportedQam_1stRx(i) = Subframe_DL_sum_supportedQam_1stRx * 6; - - Frame_DL_sum_4Qam_2ndRx(i) = Subframe_DL_sum_4Qam_2ndRx * 6; - Frame_DL_sum_16Qam_2ndRx(i) = Subframe_DL_sum_16Qam_2ndRx * 6; - Frame_DL_sum_64Qam_2ndRx(i) = Subframe_DL_sum_64Qam_2ndRx * 6; - Frame_DL_sum_supportedQam_2ndRx(i) = Subframe_DL_sum_supportedQam_2ndRx * 6; - - Frame_DL_sum_4Qam_2Rx(i) = Subframe_DL_sum_4Qam_2Rx * 6; - Frame_DL_sum_16Qam_2Rx(i) = Subframe_DL_sum_16Qam_2Rx * 6; - Frame_DL_sum_64Qam_2Rx(i) = Subframe_DL_sum_64Qam_2Rx * 6; - Frame_DL_sum_supportedQam_2Rx(i) = Subframe_DL_sum_supportedQam_2Rx * 6; -end - - % add rate of all 100 frames each of 10ms length to compute data rate/sec - Rate_4Qam_1stRx = sum(Frame_DL_sum_4Qam_1stRx(:)); - Rate_16Qam_1stRx = sum(Frame_DL_sum_16Qam_1stRx(:)); - Rate_64Qam_1stRx = sum(Frame_DL_sum_64Qam_1stRx(:)); - Rate_SupportedQam_1stRx = sum(Frame_DL_sum_supportedQam_1stRx(:)); - - Rate_4Qam_2ndRx = sum(Frame_DL_sum_4Qam_2ndRx(:)); - Rate_16Qam_2ndRx = sum(Frame_DL_sum_16Qam_2ndRx(:)); - Rate_64Qam_2ndRx = sum(Frame_DL_sum_64Qam_2ndRx(:)); - Rate_SupportedQam_2ndRx = sum(Frame_DL_sum_supportedQam_2ndRx(:)); - - Rate_4Qam_2Rx = sum(Frame_DL_sum_4Qam_2Rx(:)); - Rate_16Qam_2Rx = sum(Frame_DL_sum_16Qam_2Rx(:)); - Rate_64Qam_2Rx = sum(Frame_DL_sum_64Qam_2Rx(:)); - Rate_SupportedQam_2Rx = sum(Frame_DL_sum_supportedQam_2Rx(:)); - - - - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m deleted file mode 100755 index 38f75d6a05..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m +++ /dev/null @@ -1,131 +0,0 @@ -function [Rate_4Qam_1Rx_maxq,Rate_16Qam_1Rx_maxq,Rate_64Qam_1Rx_maxq, Rate_4Qam_1Rx_feedbackq,... - Rate_16Qam_1Rx_feedbackq,Rate_64Qam_1Rx_feedbackq,bmfr_optmq_SNR_1Rx, bmfr_feedbkq_SNR_1Rx,... - Rate_4Qam_2Rx_maxq,Rate_16Qam_2Rx_maxq,Rate_64Qam_2Rx_maxq, Rate_4Qam_2Rx_feedbackq,... - Rate_16Qam_2Rx_feedbackq,Rate_64Qam_2Rx_feedbackq,bmfr_optmq_SNR_2Rx,... - bmfr_feedbkq_SNR_2Rx, Rate_supportedQam_1Rx_maxq, Rate_supportedQam_1Rx_feedbackq,... - Rate_supportedQam_2Rx_maxq,Rate_supportedQam_2Rx_feedbackq] = calc_rps_Beamforming(estimates_UE) - -capacity_Mode6_beamforming_1 - - -bmfr_optmq = SNR_eNB_1Rx(1,1:200,:); -bmfr_optmq_SNR_1Rx = mean(bmfr_optmq(:)); - -bmfr_optmq = SNR_eNB_2Rx(1,1:200,:); -bmfr_optmq_SNR_2Rx = mean(bmfr_optmq(:)); - -bmfr_feedbkq = SNR_eNB_1Rx(1,201:end,:); -bmfr_feedbkq_SNR_1Rx = mean(bmfr_feedbkq(:)); - -bmfr_feedbkq = SNR_eNB_2Rx(1,201:end,:); -bmfr_feedbkq_SNR_2Rx = mean(bmfr_feedbkq(:)); - -%[x y z] = size(chcap_siso_single_stream_4Qam_1Rx_eNB1); - -% Following will hold the data rate of one whole Frame - -Frame_DL_sum_4Qam_1Rx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_1Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_1Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_1Rx = zeros(1,length(estimates_UE)); - -Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE)); -for i = 1:length(estimates_UE) - - %following holds accumulated data rate of 200 resource elements - % first 200 values corresponds to q which maximizes the over all sum - % rate, and next 200 values correspond to the calculations which are - % done on the basis of fedback q - RS_sum_4Qam_1Rx_maxq = sum(chcap_beamforming_4Qam_1Rx(1,1:200,i)); - RS_sum_16Qam_1Rx_maxq = sum(chcap_beamforming_16Qam_1Rx(1,1:200,i)); - RS_sum_64Qam_1Rx_maxq = sum(chcap_beamforming_64Qam_1Rx(1,1:200,i)); - RS_sum_supportedQam_1Rx_maxq = sum(chcap_beamforming_supportedQam_1Rx(1,1:200,i)); - - RS_sum_4Qam_2Rx_maxq = sum(chcap_beamforming_4Qam_2Rx(1,1:200,i)); - RS_sum_16Qam_2Rx_maxq = sum(chcap_beamforming_16Qam_2Rx(1,1:200,i)); - RS_sum_64Qam_2Rx_maxq = sum(chcap_beamforming_64Qam_2Rx(1,1:200,i)); - RS_sum_supportedQam_2Rx_maxq = sum(chcap_beamforming_supportedQam_2Rx(1,1:200,i)); - - RS_sum_4Qam_1Rx_feedbackq = sum(chcap_beamforming_4Qam_1Rx(1,201:end,i)); - RS_sum_16Qam_1Rx_feedbackq = sum(chcap_beamforming_16Qam_1Rx(1,201:end,i)); - RS_sum_64Qam_1Rx_feedbackq = sum(chcap_beamforming_64Qam_1Rx(1,201:end,i)); - RS_sum_supportedQam_1Rx_feedbackq = sum(chcap_beamforming_supportedQam_1Rx(1,201:end,i)); - - RS_sum_4Qam_2Rx_feedbackq = sum(chcap_beamforming_4Qam_2Rx(1,201:end,i)); - RS_sum_16Qam_2Rx_feedbackq = sum(chcap_beamforming_16Qam_2Rx(1,201:end,i)); - RS_sum_64Qam_2Rx_feedbackq = sum(chcap_beamforming_64Qam_2Rx(1,201:end,i)); - RS_sum_supportedQam_2Rx_feedbackq = sum(chcap_beamforming_supportedQam_2Rx(1,201:end,i)); - - % since 4200/200 = 21 groups of 200 resource elements are there in one subframe, so to get - % the estimate of whole subframe we need to multiply RS_sum_XQam_1Rx by 21. - - Subframe_DL_sum_4Qam_1Rx_maxq = RS_sum_4Qam_1Rx_maxq * 12; - Subframe_DL_sum_16Qam_1Rx_maxq = RS_sum_16Qam_1Rx_maxq * 12; - Subframe_DL_sum_64Qam_1Rx_maxq = RS_sum_64Qam_1Rx_maxq * 12; - Subframe_DL_sum_supportedQam_1Rx_maxq = RS_sum_supportedQam_1Rx_maxq * 12; - - Subframe_DL_sum_4Qam_1Rx_feedbackq = RS_sum_4Qam_1Rx_feedbackq * 12; - Subframe_DL_sum_16Qam_1Rx_feedbackq = RS_sum_16Qam_1Rx_feedbackq * 12; - Subframe_DL_sum_64Qam_1Rx_feedbackq = RS_sum_64Qam_1Rx_feedbackq * 12; - Subframe_DL_sum_supportedQam_1Rx_feedbackq = RS_sum_supportedQam_1Rx_feedbackq * 12; - - Subframe_DL_sum_4Qam_2Rx_maxq = RS_sum_4Qam_2Rx_maxq * 12; - Subframe_DL_sum_16Qam_2Rx_maxq = RS_sum_16Qam_2Rx_maxq * 12; - Subframe_DL_sum_64Qam_2Rx_maxq = RS_sum_64Qam_2Rx_maxq * 12; - Subframe_DL_sum_supportedQam_2Rx_maxq = RS_sum_supportedQam_2Rx_maxq * 12; - - Subframe_DL_sum_4Qam_2Rx_feedbackq = RS_sum_4Qam_2Rx_feedbackq * 12; - Subframe_DL_sum_16Qam_2Rx_feedbackq = RS_sum_16Qam_2Rx_feedbackq * 12; - Subframe_DL_sum_64Qam_2Rx_feedbackq = RS_sum_64Qam_2Rx_feedbackq * 12; - Subframe_DL_sum_supportedQam_2Rx_feedbackq = RS_sum_supportedQam_2Rx_feedbackq * 12; - - %In LTE Confguration 3 we have 6 downlink subframes in one frame so - - Frame_DL_sum_4Qam_1Rx_feedbackq(i) = Subframe_DL_sum_4Qam_1Rx_feedbackq * 6; - Frame_DL_sum_16Qam_1Rx_feedbackq(i) = Subframe_DL_sum_16Qam_1Rx_feedbackq * 6; - Frame_DL_sum_64Qam_1Rx_feedbackq(i) = Subframe_DL_sum_64Qam_1Rx_feedbackq * 6; - Frame_DL_sum_supportedQam_1Rx_feedbackq(i) = Subframe_DL_sum_supportedQam_1Rx_feedbackq * 6; - - Frame_DL_sum_4Qam_1Rx_maxq(i) = Subframe_DL_sum_4Qam_1Rx_maxq * 6; - Frame_DL_sum_16Qam_1Rx_maxq(i) = Subframe_DL_sum_16Qam_1Rx_maxq * 6; - Frame_DL_sum_64Qam_1Rx_maxq(i) = Subframe_DL_sum_64Qam_1Rx_maxq * 6; - Frame_DL_sum_supportedQam_1Rx_maxq(i) = Subframe_DL_sum_supportedQam_1Rx_maxq * 6; - - Frame_DL_sum_4Qam_2Rx_feedbackq(i) = Subframe_DL_sum_4Qam_2Rx_feedbackq * 6; - Frame_DL_sum_16Qam_2Rx_feedbackq(i) = Subframe_DL_sum_16Qam_2Rx_feedbackq * 6; - Frame_DL_sum_64Qam_2Rx_feedbackq(i) = Subframe_DL_sum_64Qam_2Rx_feedbackq * 6; - Frame_DL_sum_supportedQam_2Rx_feedbackq(i) = Subframe_DL_sum_supportedQam_2Rx_feedbackq * 6; - - Frame_DL_sum_4Qam_2Rx_maxq(i) = Subframe_DL_sum_4Qam_2Rx_maxq * 6; - Frame_DL_sum_16Qam_2Rx_maxq(i) = Subframe_DL_sum_16Qam_2Rx_maxq * 6; - Frame_DL_sum_64Qam_2Rx_maxq(i) = Subframe_DL_sum_64Qam_2Rx_maxq * 6; - Frame_DL_sum_supportedQam_2Rx_maxq(i) = Subframe_DL_sum_supportedQam_2Rx_maxq * 6; -end - - % add rate of all 100 frames each of 10ms length to compute data rate/sec - Rate_4Qam_1Rx_maxq = sum(Frame_DL_sum_4Qam_1Rx_maxq(:)); - Rate_16Qam_1Rx_maxq = sum(Frame_DL_sum_16Qam_1Rx_maxq(:)); - Rate_64Qam_1Rx_maxq = sum(Frame_DL_sum_64Qam_1Rx_maxq(:)); - Rate_supportedQam_1Rx_maxq = sum(Frame_DL_sum_supportedQam_1Rx_maxq(:)); - - Rate_4Qam_1Rx_feedbackq = sum(Frame_DL_sum_4Qam_1Rx_feedbackq(:)); - Rate_16Qam_1Rx_feedbackq = sum(Frame_DL_sum_16Qam_1Rx_feedbackq(:)); - Rate_64Qam_1Rx_feedbackq = sum(Frame_DL_sum_64Qam_1Rx_feedbackq(:)); - Rate_supportedQam_1Rx_feedbackq = sum(Frame_DL_sum_supportedQam_1Rx_feedbackq(:)); - - Rate_4Qam_2Rx_maxq = sum(Frame_DL_sum_4Qam_2Rx_maxq(:)); - Rate_16Qam_2Rx_maxq = sum(Frame_DL_sum_16Qam_2Rx_maxq(:)); - Rate_64Qam_2Rx_maxq = sum(Frame_DL_sum_64Qam_2Rx_maxq(:)); - Rate_supportedQam_2Rx_maxq = sum(Frame_DL_sum_supportedQam_2Rx_maxq(:)); - - Rate_4Qam_2Rx_feedbackq = sum(Frame_DL_sum_4Qam_2Rx_feedbackq(:)); - Rate_16Qam_2Rx_feedbackq = sum(Frame_DL_sum_16Qam_2Rx_feedbackq(:)); - Rate_64Qam_2Rx_feedbackq = sum(Frame_DL_sum_64Qam_2Rx_feedbackq(:)); - Rate_supportedQam_2Rx_feedbackq = sum(Frame_DL_sum_supportedQam_2Rx_feedbackq(:)); - - - - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m deleted file mode 100755 index a3b06036f3..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m +++ /dev/null @@ -1,108 +0,0 @@ -function [Rate_4Qam_1stRx,Rate_16Qam_1stRx,Rate_64Qam_1stRx,Rate_4Qam_2ndRx,... - Rate_16Qam_2ndRx,Rate_64Qam_2ndRx,siso_SNR_1stRx_persecond,... - siso_SNR_2ndRx_persecond,Rate_4Qam_2Rx,Rate_16Qam_2Rx,Rate_64Qam_2Rx,... - siso_SNR_2Rx_persecond,Rate_supportedQam_1stRx,Rate_supportedQam_2ndRx, Rate_supportedQam_2Rx] = calc_rps_SISO(estimates_UE) - -capacity_siso_1 - -[x y z] = size(chcap_siso_single_stream_4Qam_1stRx); - -siso_SNR_1stRx_persecond = mean(SNR_eNB_1stRx(:)); -siso_SNR_2ndRx_persecond = mean(SNR_eNB_2ndRx(:)); -siso_SNR_2Rx_persecond = mean(SNR_eNB_2Rx(:)); -% figure -% hold on -% plot(SNR_eNB1, 'b-x'); - -% Following will hold the data rate of one whole Frame - -Frame_DL_sum_4Qam_1stRx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_1stRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_1stRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_1stRx = zeros(1,length(estimates_UE)); - -Frame_DL_sum_4Qam_2ndRx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_2ndRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_2ndRx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_2ndRx = zeros(1,length(estimates_UE)); - -Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE)); -Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE)); -Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE)); - -for i = 1:length(estimates_UE) - %following holds accumulated data rate of 200 resource elements - - RS_sum_4Qam_1stRx = sum(chcap_siso_single_stream_4Qam_1stRx(1,:,i)); - RS_sum_16Qam_1stRx = sum(chcap_siso_single_stream_16Qam_1stRx(1,:,i)); - RS_sum_64Qam_1stRx = sum(chcap_siso_single_stream_64Qam_1stRx(1,:,i)); - RS_sum_supportedQam_1stRx = sum(chcap_siso_single_stream_supportedQam_1stRx(1,:,i)); - - RS_sum_4Qam_2ndRx = sum(chcap_siso_single_stream_4Qam_2ndRx(1,:,i)); - RS_sum_16Qam_2ndRx = sum(chcap_siso_single_stream_16Qam_2ndRx(1,:,i)); - RS_sum_64Qam_2ndRx = sum(chcap_siso_single_stream_64Qam_2ndRx(1,:,i)); - RS_sum_supportedQam_2ndRx = sum(chcap_siso_single_stream_supportedQam_2ndRx(1,:,i)); - - RS_sum_4Qam_2Rx = sum(chcap_siso_single_stream_4Qam_2Rx(1,:,i)); - RS_sum_16Qam_2Rx = sum(chcap_siso_single_stream_16Qam_2Rx(1,:,i)); - RS_sum_64Qam_2Rx = sum(chcap_siso_single_stream_64Qam_2Rx(1,:,i)); - RS_sum_supportedQam_2Rx = sum(chcap_siso_single_stream_supportedQam_2Rx(1,:,i)); - % The number of RE availiable for the DLSCH is 9 OFDM symbols * 300 - % subcarriers - 300 pilots = 2400. - % since 2400/200 = 12 groups of 200 resource elements are there in one subframe, so to get - % the estimate of whole subframe we need to multiply RS_sum_XQam by 12. - - Subframe_DL_sum_4Qam_1stRx = RS_sum_4Qam_1stRx * 12; - Subframe_DL_sum_16Qam_1stRx = RS_sum_16Qam_1stRx * 12; - Subframe_DL_sum_64Qam_1stRx = RS_sum_64Qam_1stRx * 12; - Subframe_DL_sum_supportedQam_1stRx = RS_sum_supportedQam_1stRx * 12; - - Subframe_DL_sum_4Qam_2ndRx = RS_sum_4Qam_2ndRx * 12; - Subframe_DL_sum_16Qam_2ndRx = RS_sum_16Qam_2ndRx * 12; - Subframe_DL_sum_64Qam_2ndRx = RS_sum_64Qam_2ndRx * 12; - Subframe_DL_sum_supportedQam_2ndRx = RS_sum_supportedQam_2ndRx * 12; - - Subframe_DL_sum_4Qam_2Rx = RS_sum_4Qam_2Rx * 12; - Subframe_DL_sum_16Qam_2Rx = RS_sum_16Qam_2Rx * 12; - Subframe_DL_sum_64Qam_2Rx = RS_sum_64Qam_2Rx * 12; - Subframe_DL_sum_supportedQam_2Rx = RS_sum_supportedQam_2Rx * 12; - - %In LTE Confguration 3 we have 6 downlink subframes in one frame so - - Frame_DL_sum_4Qam_1stRx(i) = Subframe_DL_sum_4Qam_1stRx * 6; - Frame_DL_sum_16Qam_1stRx(i) = Subframe_DL_sum_16Qam_1stRx * 6; - Frame_DL_sum_64Qam_1stRx(i) = Subframe_DL_sum_64Qam_1stRx * 6; - - Frame_DL_sum_supportedQam_1stRx(i) = Subframe_DL_sum_supportedQam_1stRx * 6; - - Frame_DL_sum_4Qam_2ndRx(i) = Subframe_DL_sum_4Qam_2ndRx * 6; - Frame_DL_sum_16Qam_2ndRx(i) = Subframe_DL_sum_16Qam_2ndRx * 6; - Frame_DL_sum_64Qam_2ndRx(i) = Subframe_DL_sum_64Qam_2ndRx * 6; - Frame_DL_sum_supportedQam_2ndRx(i) = Subframe_DL_sum_supportedQam_2ndRx * 6; - - Frame_DL_sum_4Qam_2Rx(i) = Subframe_DL_sum_4Qam_2Rx * 6; - Frame_DL_sum_16Qam_2Rx(i) = Subframe_DL_sum_16Qam_2Rx * 6; - Frame_DL_sum_64Qam_2Rx(i) = Subframe_DL_sum_64Qam_2Rx * 6; - Frame_DL_sum_supportedQam_2Rx(i) = Subframe_DL_sum_supportedQam_2Rx * 6; -end - - % add rate of all 100 frames each of 10ms length to compute data rate/sec - Rate_4Qam_1stRx = sum(Frame_DL_sum_4Qam_1stRx(:)); - Rate_16Qam_1stRx = sum(Frame_DL_sum_16Qam_1stRx(:)); - Rate_64Qam_1stRx = sum(Frame_DL_sum_64Qam_1stRx(:)); - Rate_supportedQam_1stRx = sum(Frame_DL_sum_supportedQam_1stRx(:)); - - Rate_4Qam_2ndRx = sum(Frame_DL_sum_4Qam_2ndRx(:)); - Rate_16Qam_2ndRx = sum(Frame_DL_sum_16Qam_2ndRx(:)); - Rate_64Qam_2ndRx = sum(Frame_DL_sum_64Qam_2ndRx(:)); - Rate_supportedQam_2ndRx = sum(Frame_DL_sum_supportedQam_2ndRx(:)); - - Rate_4Qam_2Rx = sum(Frame_DL_sum_4Qam_2Rx(:)); - Rate_16Qam_2Rx = sum(Frame_DL_sum_16Qam_2Rx(:)); - Rate_64Qam_2Rx = sum(Frame_DL_sum_64Qam_2Rx(:)); - Rate_supportedQam_2Rx = sum(Frame_DL_sum_supportedQam_2Rx(:)); - - - - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m deleted file mode 100644 index a1dcdfe5d9..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m +++ /dev/null @@ -1,93 +0,0 @@ -function [Rate_4Qam,Rate_16Qam,Rate_64Qam, siso_SNR_persecond] = calc_rps_SISO_UL(estimates_eNB, nb_rx, version, avg) -% Channel Capacity of SISO system -% [Rate_4Qam,Rate_16Qam,Rate_64Qam, siso_SNR_persecond] = calc_rps_SISO_UL(estimates_eNB, nb_rx, version, avg) -% -% set version=0 if using measurements with the storage bug. -% All measurements before the 10.6.2010 did not store the UL properly. -% In fact only the first 133 carriers of the 1st Rx antenna of sector 0 -% was stored. So if version==0 and sector~=0, we return 0. If version==0 -% and sector==0, we extrapolate and assume the same signal on both RX -% antennas. -% -% set avg=1 if averaging should be performed over all estimates - - -load 'SISO.mat'; - -if version<1 - srs_len = 113; -else - srs_len = 144; -end - -chcap_siso_single_stream_4Qam = zeros(1, 3*srs_len, length(estimates_eNB)); -chcap_siso_single_stream_16Qam = zeros(1, 3*srs_len, length(estimates_eNB)); -chcap_siso_single_stream_64Qam = zeros(1, 3*srs_len, length(estimates_eNB)); - -SNR_eNB = zeros(1,3*srs_len,length(estimates_eNB)); - -for est=1:length(estimates_eNB) - - % choose the right sector - if (version<1) - sector = estimates_eNB(est).eNb_UE_stats(3,1).sector; - if sector~=0 - chcap_siso_single_stream_4Qam(1, :, est) = nan; - chcap_siso_single_stream_16Qam(1, :, est) = nan; - chcap_siso_single_stream_64Qam(1, :, est) = nan; - continue - end - else - sector = estimates_eNB(est).eNb_UE_stats(1,1).sector; - end - - N0 = double(estimates_eNB(est).phy_measurements_eNb(sector+1).n0_power(1)); - - H_abs_sqr = double(estimates_eNB(est).channel(1:2:end,:,:,1:3)).^2 + ... - double(estimates_eNB(est).channel(2:2:end,:,:,1:3)).^2; - - % extract 144 carriers with constitute SRS - if version<1 - H_abs_sqr = reshape(H_abs_sqr,450,2,2,3); - ind = [363:2:450 2:2:138 ]; - H_abs_sqr_tot = sum(H_abs_sqr(ind,ones(1,nb_rx),1,:),2); - else - ind = [363:2:512 2:2:138]; - H_abs_sqr_tot = sum(H_abs_sqr(ind,1:nb_rx,sector+1,:),2); - end - - SNR_eNB(1, :, est) = 10*log10(H_abs_sqr_tot(:)/N0); - -% SNR_eNB(isnan(SNR_eNB)) = 0; -% -% index = (SNR_eNB(1, :, est) < -20); -% SNR_eNB(1, index, est) = -20; -% -% index = (SNR_eNB(1, :, est) > 40); -% SNR_eNB(1, index, est) = 40; - - chcap_siso_single_stream_4Qam(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB(1, :, est),'nearest','extrap'); - - chcap_siso_single_stream_16Qam(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB(1, :, est),'nearest','extrap'); - - chcap_siso_single_stream_64Qam(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB(1, :, est),'nearest','extrap'); - -end - -% for the UL we have 300 subcarriers times 9 symbols (2 are DRS, 1 is SRS) -if avg - siso_SNR_persecond = mean(SNR_eNB(:)); - Rate_4Qam = sum(sum(chcap_siso_single_stream_4Qam,2)*300/srs_len*9,3); - Rate_16Qam = sum(sum(chcap_siso_single_stream_16Qam,2)*300/srs_len*9,3); - Rate_64Qam = sum(sum(chcap_siso_single_stream_64Qam,2)*300/srs_len*9,3); -else - siso_SNR_persecond = squeeze(mean(SNR_eNB,2)); - Rate_4Qam = squeeze(sum(chcap_siso_single_stream_4Qam,2)*300/srs_len*9); - Rate_16Qam = squeeze(sum(chcap_siso_single_stream_16Qam,2)*300/srs_len*9); - Rate_64Qam = squeeze(sum(chcap_siso_single_stream_64Qam,2)*300/srs_len*9); -end - - - - - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m deleted file mode 100644 index e519b83b1a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m +++ /dev/null @@ -1,41 +0,0 @@ -function [Ratepersec_4Qam_alamouti,Ratepersec_16Qam_alamouti,Ratepersec_64Qam_alamouti] = ... - calc_rps_alamouti_2(estimates_UE_1) - -% this function calculates the MU-MIMO rate of the two users -% first we have to determine the compatible subbands (based on PMI feedback) -% on the compatible subbands we should use the MU-MIMO capacity, on the -% others we use the single layer precoding capacity and select the user -% with the higher capacity - -capacity_mode2_alamouti - -Frame_DL_sum_4Qam = zeros(1, 100); -Frame_DL_sum_16Qam = zeros(1, 100); -Frame_DL_sum_64Qam = zeros(1, 100); - - -for i = 1:length(estimates_UE_1) - RS_sum_4Qam = sum(chcap_alamouti(1,:,i)); - RS_sum_16Qam = sum(chcap_alamouti_16(1,:,i)); - RS_sum_64Qam = sum(chcap_alamouti_64(1,:,i)); - % Since RS_sum_4Qam contains the throughput for the 4 symobols and there - % are total 12 symbols in exteded cyclic prefix subframe of LTE out of - % which 3 are used for control signals and rest of the 9 are used for - % DLSCH with 12*25 = 300 cell specific reference signals in between - % them. so basically we need to measure the throughput for in total 8 - % symbols. - - Subframe_DL_sum_4Qam = (RS_sum_4Qam * 2); - Subframe_DL_sum_16Qam = (RS_sum_16Qam * 2); - Subframe_DL_sum_64Qam = (RS_sum_64Qam * 2); - %In LTE TDD Confguration 3 we have 6 downlink subframes in one frame so - Frame_DL_sum_4Qam(i) = Subframe_DL_sum_4Qam * 6; - Frame_DL_sum_16Qam(i) = Subframe_DL_sum_16Qam * 6; - Frame_DL_sum_64Qam(i) = Subframe_DL_sum_64Qam * 6; - -end -% add rate of all 100 frames each of 10ms length to compute data rate/sec -Ratepersec_4Qam_alamouti = sum(Frame_DL_sum_4Qam(:)); - Ratepersec_16Qam_alamouti = sum(Frame_DL_sum_16Qam(:)); - Ratepersec_64Qam_alamouti = sum(Frame_DL_sum_64Qam(:)); - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m deleted file mode 100644 index e9f7127a27..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m +++ /dev/null @@ -1,33 +0,0 @@ -function [Ratepersec_4Qam_MUMIMO] = ... - calc_rps_mu_mimo(estimates_UE_1) - -% this function calculates the MU-MIMO rate of the two users -% first we have to determine the compatible subbands (based on PMI feedback) -% on the compatible subbands we should use the MU-MIMO capacity, on the -% others we use the single layer precoding capacity and select the user -% with the higher capacity - -capacity_mode5_mumimo - -Frame_DL_sum_4Qam = zeros(1, 100); - -for i = 1:length(estimates_UE_1) - RS_sum_4Qam = sum(chcap_mumimo(1,:,i)); - - % Since RS_sum_4Qam contains the throughput for the 4 symobols and there - % are total 12 symbols in exteded cyclic prefix subframe of LTE out of - % which 3 are used for control signals and rest of the 9 are used for - % DLSCH with 12*25 = 300 cell specific reference signals in between - % them. so basically we need to measure the throughput for in total 8 - % symbols. - Subframe_DL_sum_4Qam = (RS_sum_4Qam * 2); - - %In LTE TDD Confguration 3 we have 6 downlink subframes in one frame so - Frame_DL_sum_4Qam(i) = Subframe_DL_sum_4Qam * 6; - -end -% add rate of all 100 frames each of 10ms length to compute data rate/sec -Ratepersec_4Qam_MUMIMO = sum(Frame_DL_sum_4Qam(:)); - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m deleted file mode 100644 index 187bf7c6ef..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m +++ /dev/null @@ -1,40 +0,0 @@ -function [Ratepersec_4Qam_siso,Ratepersec_16Qam_siso,Ratepersec_64Qam_siso ] = ... - calc_rps_siso_2(estimates_UE_1) - -% this function calculates the MU-MIMO rate of the two users -% first we have to determine the compatible subbands (based on PMI feedback) -% on the compatible subbands we should use the MU-MIMO capacity, on the -% others we use the single layer precoding capacity and select the user -% with the higher capacity - -capacity_mode1_siso - -Frame_DL_sum_4Qam = zeros(1, 100); -Frame_DL_sum_16Qam = zeros(1, 100); -Frame_DL_sum_64Qam = zeros(1, 100); - -for i = 1:length(estimates_UE_1) - RS_sum_4Qam = sum(chcap_siso(1,:,i)); - RS_sum_16Qam = sum(chcap_siso_16(1,:,i)); - RS_sum_64Qam = sum(chcap_siso_64(1,:,i)); - % Since RS_sum_4Qam contains the throughput for the 4 symobols and there - % are total 12 symbols in exteded cyclic prefix subframe of LTE out of - % which 3 are used for control signals and rest of the 9 are used for - % DLSCH with 12*25 = 300 cell specific reference signals in between - % them. so basically we need to measure the throughput for in total 8 - % symbols. - Subframe_DL_sum_4Qam = (RS_sum_4Qam * 2); - Subframe_DL_sum_16Qam = (RS_sum_16Qam * 2); - Subframe_DL_sum_64Qam = (RS_sum_64Qam * 2); - - %In LTE TDD Confguration 3 we have 6 downlink subframes in one frame so - Frame_DL_sum_4Qam(i) = Subframe_DL_sum_4Qam * 6; - Frame_DL_sum_16Qam(i) = Subframe_DL_sum_16Qam * 6; - Frame_DL_sum_64Qam(i) = Subframe_DL_sum_64Qam * 6; -end -% add rate of all 100 frames each of 10ms length to compute data rate/sec -Ratepersec_4Qam_siso = sum(Frame_DL_sum_4Qam(:)); -Ratepersec_16Qam_siso = sum(Frame_DL_sum_16Qam(:)); -Ratepersec_64Qam_siso = sum(Frame_DL_sum_64Qam(:)); - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m deleted file mode 100755 index 46d4f64557..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m +++ /dev/null @@ -1,205 +0,0 @@ -%Channel Capacity of Alamouti MIMO system - -load 'SISO.mat'; - -[x, y, z] = size(estimates_UE(1).channel); - -z = x/4; - -%MultiAntenna_Rx = 1; % 0 for Single antenna - % 1 for Multi Antenna (2 antennas here) -h = zeros(1,z); - -chcap_alamouti_4Qam_1stRx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_16Qam_1stRx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_64Qam_1stRx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_supportedQam_1stRx = zeros(1,length(h), length(estimates_UE)); - -chcap_alamouti_4Qam_2ndRx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_16Qam_2ndRx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_64Qam_2ndRx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_supportedQam_2ndRx = zeros(1,length(h), length(estimates_UE)); - -chcap_alamouti_4Qam_2Rx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_16Qam_2Rx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_64Qam_2Rx = zeros(1,length(h), length(estimates_UE)); -chcap_alamouti_supportedQam_2Rx = zeros(1,length(h), length(estimates_UE)); - -SNR_eNB_1stRx = zeros(1,length(h), length(estimates_UE)); -SNR_eNB_2ndRx = zeros(1,length(h), length(estimates_UE)); -SNR_eNB_2Rx = zeros(1,length(h), length(estimates_UE)); - -for est=1:length(estimates_UE) - - NO_1stRx = double(estimates_UE(est).phy_measurements(11).n0_power(1)); - NO_2ndRx = double(estimates_UE(est).phy_measurements(11).n0_power(2)); - - % for checking the connected Sector - H = estimates_UE(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind] = max(Hs); - - - h11_eNB = double(estimates_UE(est).channel(2*z+1:2:end,1,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,1,ind)); - h12_eNB = double(estimates_UE(est).channel(2*z+1:2:end,2,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,2,ind)); - h21_eNB = double(estimates_UE(est).channel(2*z+1:2:end,3,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,3,ind)); - h22_eNB = double(estimates_UE(est).channel(2*z+1:2:end,4,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,4,ind)); - - - %SNR calculation for Alamouti Scheme - SNR_eNB_1stRx(1, :, est) = 10*log10(((abs(h11_eNB).^2) + (abs(h21_eNB).^2))/NO_1stRx); - SNR_eNB_2ndRx(1, :, est) = 10*log10(((abs(h12_eNB).^2) + (abs(h22_eNB).^2))/NO_2ndRx); - SNR_eNB_2Rx(1, :, est) = 10*log10((((abs(h11_eNB).^2) + (abs(h12_eNB).^2))/NO_1stRx) + (((abs(h21_eNB).^2) + (abs(h22_eNB).^2))/NO_2ndRx)); - - - - nan_in_SNR = isnan(SNR_eNB_1stRx); - SNR_eNB_1stRx(nan_in_SNR) = 0; - - nan_in_SNR = isnan(SNR_eNB_2ndRx); - SNR_eNB_2ndRx(nan_in_SNR) = 0; - - nan_in_SNR = isnan(SNR_eNB_2Rx); - SNR_eNB_2Rx(nan_in_SNR) = 0; - - chcap_alamouti_4Qam_1stRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap'); - chcap_alamouti_4Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap'); - chcap_alamouti_4Qam_2Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - chcap_alamouti_16Qam_1stRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap'); - chcap_alamouti_16Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap'); - chcap_alamouti_16Qam_2Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - chcap_alamouti_64Qam_1stRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap'); - chcap_alamouti_64Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap'); - chcap_alamouti_64Qam_2Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - %% - - - while (min(SNR_eNB_1stRx(1, :, est)) < -20) - [value, index] = min(SNR_eNB_1stRx(1, :, est)); - SNR_eNB_1stRx(1, index, est) = -20; - continue - - end - - while (max(SNR_eNB_1stRx(1, :, est)) > 40) - [value, index] = max(SNR_eNB_1stRx(1, :, est)); - SNR_eNB_1stRx(1, index, est) = 40; - continue - - end - while (min(SNR_eNB_2ndRx(1, :, est)) < -20) - [value, index] = min(SNR_eNB_2ndRx(1, :, est)); - SNR_eNB_2ndRx(1, index, est) = -20; - continue - - end - - while (max(SNR_eNB_2ndRx(1, :, est)) > 40) - [value, index] = max(SNR_eNB_2ndRx(1, :, est)); - SNR_eNB_2ndRx(1, index, est) = 40; - continue - - end - - while (min(SNR_eNB_2Rx(1, :, est)) < -20) - [value, index] = min(SNR_eNB_2Rx(1, :, est)); - SNR_eNB_2Rx(1, index, est) = -20; - continue - - end - - while (max(SNR_eNB_2Rx(1, :, est)) > 40) - [value, index] = max(SNR_eNB_2Rx(1, :, est)); - SNR_eNB_2Rx(1, index, est) = 40; - continue - end - - MI = log2(abs((1 + SNR_eNB_1stRx(1,:,est)))); - C1 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_2ndRx(1,:,est)))); - C2 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_2Rx(1,:,est)))); - C3 = mean(MI); - - if C1 <2 - for c=1:z - chcap_alamouti_supportedQam_1stRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); - end - else - if C1 >2 && C1 < 4 - for c=1:z - chcap_alamouti_supportedQam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); - end - else - for c=1:z - chcap_alamouti_supportedQam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); - end - - end - end - - if C2 <2 - for c=1:z - chcap_alamouti_supportedQam_2ndRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); - end - else - if C2 >2 && C2 < 4 - for c=1:z - chcap_alamouti_supportedQam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); - end - else - for c=1:z - chcap_alamouti_supportedQam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); - end - end - end - - if C3 <2 - for c=1:z - chcap_alamouti_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - if C3 >2 && C3 < 4 - for c=1:z - chcap_alamouti_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - for c=1:z - chcap_alamouti_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - end - end -% for const=1:3 -% if const ==1 -% for c=1:length(h) -% chcap_alamouti_4Qam_1stRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); -% chcap_alamouti_4Qam_2ndRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); -% chcap_alamouti_4Qam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); -% end -% else if const==2 -% for c=1:length(h) -% chcap_alamouti_16Qam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); -% chcap_alamouti_16Qam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); -% chcap_alamouti_16Qam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); -% end -% else -% for c=1:length(h) -% chcap_alamouti_64Qam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); -% chcap_alamouti_64Qam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); -% chcap_alamouti_64Qam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); -% end -% end -% end -% end -end -% if MultiAntenna_Rx == 1 -% save 'chcap_alamouti_MultiAntennaUE_Measurements.mat' 'chcap_alamouti*' 'SNR_eNB*' -% else -% save 'chcap_alamouti_SingleAntennaUE_Measurements.mat' 'chcap_alamouti*' 'SNR_eNB*' -% end diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m deleted file mode 100755 index 21e1e3b5b1..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m +++ /dev/null @@ -1,229 +0,0 @@ -%Channel Capacity for LTE Mode 6 Beamforming -load 'SISO.mat' - -[x, y, z] = size(estimates_UE(1).channel); - -z = x/4; -h = zeros(1,2*z); - -%precoding matrix values q -qi = [1 -1 1i -1i]; - -chcap_beamforming_4Qam_1Rx = zeros(1,length(h), length(estimates_UE)); -chcap_beamforming_16Qam_1Rx = zeros(1,length(h), length(estimates_UE)); -chcap_beamforming_64Qam_1Rx = zeros(1,length(h), length(estimates_UE)); -chcap_beamforming_supportedQam_1Rx = zeros(1,length(h), length(estimates_UE)); - -chcap_beamforming_4Qam_2Rx = zeros(1,length(h), length(estimates_UE)); -chcap_beamforming_16Qam_2Rx = zeros(1,length(h), length(estimates_UE)); -chcap_beamforming_64Qam_2Rx = zeros(1,length(h), length(estimates_UE)); -chcap_beamforming_supportedQam_2Rx = zeros(1,length(h), length(estimates_UE)); - -SNR_eNB_1Rx = zeros(1,length(h), length(estimates_UE)); -SNR_eNB_2Rx = zeros(1,length(h), length(estimates_UE)); - -index(1).subband = [1:8 51:58 101:108 151:158]; -index(2).subband = [9:16 59:66 109:116 159:166]; -index(3).subband = [17:24 67:74 117:124 167:174]; -index(4).subband = [25:32 75:82 125:132 175:182]; -index(5).subband = [33:40 83:90 133:140 183:190]; -index(6).subband = [41:48 91:98 141:148 191:198]; -index(7).subband = [49 50 99 100 149 150 199 200]; - -for est=1:length(estimates_UE) - - NO_1Rx = double(estimates_UE(est).phy_measurements(11).n0_power(1)); - NO_2ndRx = double(estimates_UE(est).phy_measurements(11).n0_power(2)); - - % for checking the connected Sector - H = estimates_UE(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind] = max(Hs); - antenna_index = estimates_UE(est).phy_measurements(11).selected_rx_antennas(:,1); - - h11_eNB = double(estimates_UE(est).channel(2*z+1:2:end,1,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,1,ind)); - h12_eNB = double(estimates_UE(est).channel(2*z+1:2:end,2,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,2,ind)); - h21_eNB = double(estimates_UE(est).channel(2*z+1:2:end,3,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,3,ind)); - h22_eNB = double(estimates_UE(est).channel(2*z+1:2:end,4,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,4,ind)); - - for i=1:1:7 - - for qq=1:4 - - Rx1(qq).eNB = abs(h11_eNB(index(i).subband) + qi(qq)*h21_eNB(index(i).subband)).^2; - Rx2(qq).eNB = abs(h12_eNB(index(i).subband) + qi(qq)*h22_eNB(index(i).subband)).^2; - - end - - - for ii=1:4 - - SNR_eNB_q_1Rx(ii).snr = 10*log10((Rx1(ii).eNB)/NO_1Rx); - sum_eNB_q_1Rx(ii) = sum(SNR_eNB_q_1Rx(ii).snr); - - SNR_eNB_q_2Rx(ii).snr = 10*log10(((Rx1(ii).eNB)/NO_1Rx) + ((Rx2(ii).eNB)/NO_2ndRx)); - sum_eNB_q_2Rx(ii) = sum(SNR_eNB_q_2Rx(ii).snr); - - end - - [value_eNB_1Rx, index_eNB_1Rx] = max(sum_eNB_q_1Rx); - [value_eNB_2Rx, index_eNB_2Rx] = max(sum_eNB_q_2Rx); - - %SNR calculation - SNR_eNB_1Rx(1, (index(i).subband), est) = SNR_eNB_q_1Rx(index_eNB_1Rx).snr; - SNR_eNB_2Rx(1, (index(i).subband), est) = SNR_eNB_q_2Rx(index_eNB_2Rx).snr; - end - - - % after feedback in 3rd subframe - - Rx111 = []; - Rx222 = []; - - % q = double(estimates_UE(est).phy_measurements(1).subband_pmi_re((antenna_index(i)+1),i,ind))+1j*double(estimates_UE(est).phy_measurements(1).subband_pmi_im((antenna_index(i)+1),i,ind)); - % q = double(estimates_UE(est).phy_measurements(1).subband_pmi_re(ind,:,1))+1j*double(estimates_UE(est).phy_measurements(1).subband_pmi_im(ind,:,1)); - for i =1:1:7 - - q = double(estimates_UE(est).phy_measurements(1).subband_pmi_re((antenna_index(i)+1),i,1))+1j*double(estimates_UE(est).phy_measurements(1).subband_pmi_im((antenna_index(i)+1),i,1)); - - qq(i) = quantize_q(q); - - Rx11 = abs(h11_eNB(index(i).subband) + qq(i)*h21_eNB(index(i).subband)).^2; - Rx22 = abs(h12_eNB(index(i).subband) + qq(i)*h22_eNB(index(i).subband)).^2; - - Rx111 = [Rx111 Rx11']; - Rx222 = [Rx222 Rx22']; - end - - SNR_eNB_1Rx(1, 201:end, est) = 10*log10((Rx111)/NO_1Rx); - SNR_eNB_2Rx(1, 201:end, est) = 10*log10((Rx111/NO_1Rx) + (Rx222/NO_2ndRx)); - - nan_in_SNR = isnan(SNR_eNB_1Rx); - SNR_eNB_1Rx(nan_in_SNR) = 0; - - nan_in_SNR = isnan(SNR_eNB_2Rx); - SNR_eNB_2Rx(nan_in_SNR) = 0; - - - chcap_beamforming_4Qam_1Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_1Rx(1, :, est),'nearest','extrap'); - chcap_beamforming_4Qam_2Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - chcap_beamforming_16Qam_1Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_1Rx(1, :, est),'nearest','extrap'); - chcap_beamforming_16Qam_2Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - chcap_beamforming_64Qam_1Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_1Rx(1, :, est),'nearest','extrap'); - chcap_beamforming_64Qam_2Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - %% - while (min(SNR_eNB_1Rx(1, :, est)) < -20) - [value, index1] = min(SNR_eNB_1Rx(1, :, est)); - SNR_eNB_1Rx(1, index1, est) = -20; - continue - - end - - while (max(SNR_eNB_1Rx(1, :, est)) > 40) - [value, index1] = max(SNR_eNB_1Rx(1, :, est)); - SNR_eNB_1Rx(1, index1, est) = 40; - continue - - end - - while (min(SNR_eNB_2Rx(1, :, est)) < -20) - [value, index1] = min(SNR_eNB_2Rx(1, :, est)); - SNR_eNB_2Rx(1, index1, est) = -20; - continue - - end - - while (max(SNR_eNB_2Rx(1, :, est)) > 40) - [value, index1] = max(SNR_eNB_2Rx(1, :, est)); - SNR_eNB_2Rx(1, index1, est) = 40; - continue - end - - MI = log2(abs((1 + SNR_eNB_1Rx(1,1:200,est)))); - C1 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_1Rx(1,201:end,est)))); - C2 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_2Rx(1,1:200,est)))); - C3 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_2Rx(1,201:end,est)))); - C4 = mean(MI); - - -% MI = log2(abs((1 + SNR_eNB_2ndRx(1,:,est)))); -% C2 = mean(MI); - - - if C1 <2 - for c=1:z - chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est)))); - end - else - if C1 >2 && C1 < 4 - for c=1:z - chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est)))); - end - else - for c=1:z - chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est)))); - end - - end - end - - if C2 <2 - for c=201:2*z - chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est)))); - end - else - if C2 >2 && C2 < 4 - for c=201:2*z - chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est)))); - end - else - for c=201:2*z - chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est)))); - end - end - end - - if C3 <2 - for c=1:z - chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - if C3 >2 && C3 < 4 - for c=1:z - chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - for c=1:z - chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - - end - end - - if C4 <2 - for c=201:2*z - chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - if C4 >2 && C4 < 4 - for c=201:2*z - chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - for c=201:2*z - chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - end - end -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m deleted file mode 100644 index 6ab8d78de8..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m +++ /dev/null @@ -1,340 +0,0 @@ -global mumimo_count beamforming_count - -load 'table_LTE_MODE_4_5.mat'; -load 'SISO.mat'; - -[x, y, z] = size(estimates_UE_1(1).channel); - -estimates_UE1 = estimates_UE_1(1,:); -estimates_UE2 = estimates_UE_1(2,:); - -chcap_mumimo = zeros(1,1200, length(estimates_UE1)); -chcap_mumimo_ue1 = zeros(1,1200, length(estimates_UE1)); -chcap_mumimo_ue2 = zeros(1,1200, length(estimates_UE1)); -subband_indices = 1:48:288; -subband_indices(7) = 289; -subband_indices(8) = 301; -for est=1:length(estimates_UE1) - - try - N0_1Rx = (double(estimates_UE1(est).phy_measurements(11).n0_power(1))); - N0_2ndRx = (double(estimates_UE2(est).phy_measurements(11).n0_power(1))); - - catch exception - disp(exception.getReport) - fprintf('Detected error in reading N0_2ndRx, Making it zero'); - N0_2ndRx = 0; - continue - end - - H = estimates_UE1(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind1] = max(Hs); - antenna_index1 = estimates_UE1(est).phy_measurements(11).selected_rx_antennas(:,1); - - H = estimates_UE2(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind2] = max(Hs); - antenna_index2 = estimates_UE2(est).phy_measurements(11).selected_rx_antennas(:,1); - - %h11_eNB1 = double([estimates_UE1(est).channel(z+1:end,1,ind1).real]) + 1j*double([estimates_UE1(est).channel(z+1:end,1,ind1).imag]); - channel_tmp = typecast(estimates_UE1(est).channel(201:end,1,ind1),'int16'); - h11_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h11_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h11_eNB1_srs1 = interp1(1:6:300,h11_eNB1(1:50),1:1:300,'linear','extrap'); - h11_eNB1_srs2 = interp1(4:6:300,h11_eNB1(51:100),1:1:300,'linear','extrap'); - h11_eNB1_srs3 = interp1(1:6:300,h11_eNB1(101:150),1:1:300,'linear','extrap'); - h11_eNB1_srs4 = interp1(4:6:300,h11_eNB1(151:200),1:1:300,'linear','extrap'); - - h11_eNB1_comp = [h11_eNB1_srs1' h11_eNB1_srs2' h11_eNB1_srs3' h11_eNB1_srs4']'; - - channel_tmp = typecast(estimates_UE1(est).channel(201:end,2,ind1),'int16'); - - h12_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h12_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h12_eNB1_srs1 = interp1(1:6:300,h12_eNB1(1:50),1:1:300,'linear','extrap'); - h12_eNB1_srs2 = interp1(4:6:300,h12_eNB1(51:100),1:1:300,'linear','extrap'); - h12_eNB1_srs3 = interp1(1:6:300,h12_eNB1(101:150),1:1:300,'linear','extrap'); - h12_eNB1_srs4 = interp1(4:6:300,h12_eNB1(151:200),1:1:300,'linear','extrap'); - - h12_eNB1_comp = [h12_eNB1_srs1' h12_eNB1_srs2' h12_eNB1_srs3' h12_eNB1_srs4']'; - - channel_tmp = typecast(estimates_UE1(est).channel(201:end,3,ind1),'int16'); - h21_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h21_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h21_eNB1_srs1 = interp1(4:6:300,h21_eNB1(1:50),1:1:300,'linear','extrap'); - h21_eNB1_srs2 = interp1(1:6:300,h21_eNB1(51:100),1:1:300,'linear','extrap'); - h21_eNB1_srs3 = interp1(4:6:300,h21_eNB1(101:150),1:1:300,'linear','extrap'); - h21_eNB1_srs4 = interp1(1:6:300,h21_eNB1(151:200),1:1:300,'linear','extrap'); - - h21_eNB1_comp = [h21_eNB1_srs1' h21_eNB1_srs2' h21_eNB1_srs3' h21_eNB1_srs4']'; - - channel_tmp = typecast(estimates_UE1(est).channel(201:end,4,ind1),'int16'); - h22_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h22_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h22_eNB1_srs1 = interp1(4:6:300,h22_eNB1(1:50),1:1:300,'linear','extrap'); - h22_eNB1_srs2 = interp1(1:6:300,h22_eNB1(51:100),1:1:300,'linear','extrap'); - h22_eNB1_srs3 = interp1(4:6:300,h22_eNB1(101:150),1:1:300,'linear','extrap'); - h22_eNB1_srs4 = interp1(1:6:300,h22_eNB1(151:200),1:1:300,'linear','extrap'); - - h22_eNB1_comp = [h22_eNB1_srs1' h22_eNB1_srs2' h22_eNB1_srs3' h22_eNB1_srs4']'; - - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,1,ind2),'int16'); - - h11_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h11_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h11_eNB2_srs1 = interp1(1:6:300,h11_eNB2(1:50),1:1:300,'linear','extrap'); - h11_eNB2_srs2 = interp1(4:6:300,h11_eNB2(51:100),1:1:300,'linear','extrap'); - h11_eNB2_srs3 = interp1(1:6:300,h11_eNB2(101:150),1:1:300,'linear','extrap'); - h11_eNB2_srs4 = interp1(4:6:300,h11_eNB2(151:200),1:1:300,'linear','extrap'); - - h11_eNB2_comp = [h11_eNB2_srs1' h11_eNB2_srs2' h11_eNB2_srs3' h11_eNB2_srs4']'; - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,2,ind2),'int16'); - h12_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h12_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h12_eNB2_srs1 = interp1(1:6:300,h12_eNB2(1:50),1:1:300,'linear','extrap'); - h12_eNB2_srs2 = interp1(4:6:300,h12_eNB2(51:100),1:1:300,'linear','extrap'); - h12_eNB2_srs3 = interp1(1:6:300,h12_eNB2(101:150),1:1:300,'linear','extrap'); - h12_eNB2_srs4 = interp1(4:6:300,h12_eNB2(151:200),1:1:300,'linear','extrap'); - - h12_eNB2_comp = [h12_eNB2_srs1' h12_eNB2_srs2' h12_eNB2_srs3' h12_eNB2_srs4']'; - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,3,ind2),'int16'); - h21_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h21_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - h21_eNB2_srs1 = interp1(4:6:300,h21_eNB2(1:50),1:1:300,'linear','extrap'); - h21_eNB2_srs2 = interp1(1:6:300,h21_eNB2(51:100),1:1:300,'linear','extrap'); - h21_eNB2_srs3 = interp1(4:6:300,h21_eNB2(101:150),1:1:300,'linear','extrap'); - h21_eNB2_srs4 = interp1(1:6:300,h21_eNB2(151:200),1:1:300,'linear','extrap'); - - h21_eNB2_comp = [h21_eNB2_srs1' h21_eNB2_srs2' h21_eNB2_srs3' h21_eNB2_srs4']'; - - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,4,ind2),'int16'); - h22_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h22_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h22_eNB2_srs1 = interp1(4:6:300,h22_eNB2(1:50),1:1:300,'linear','extrap'); - h22_eNB2_srs2 = interp1(1:6:300,h22_eNB2(51:100),1:1:300,'linear','extrap'); - h22_eNB2_srs3 = interp1(4:6:300,h22_eNB2(101:150),1:1:300,'linear','extrap'); - h22_eNB2_srs4 = interp1(1:6:300,h22_eNB2(151:200),1:1:300,'linear','extrap'); - - h22_eNB2_comp = [h22_eNB2_srs1' h22_eNB2_srs2' h22_eNB2_srs3' h22_eNB2_srs4']'; - - - - % plot(10*log10(abs(h12_eNB2).^2),'go'); - % pause - %end - %if 0 - q1=zeros(1,7); - q2=zeros(1,7); - pmi_ue1=zeros(1,7); - pmi_ue2=zeros(1,7); - - for i = 1:7 - if (antenna_index1(i) == 0) - h11 = h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - h21 = h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - q1(i) = mean(conj(h11(:)).*h21(:)); - pmi_ue1(i) = quantize_q(q1(i)); - else - h12 = h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - h22 = h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - q1(i) = mean(conj(h12(:)).*h22(:)); - pmi_ue1(i) = quantize_q(q1(i)); - end - - if (antenna_index2(i) == 0) - h11 = h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - h21 = h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - q2(i) = mean(conj(h11(:)).*h21(:)); - pmi_ue2(i) = quantize_q(q2(i)); - else - h12 = h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - h22 = h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)); - q2(i) = mean(conj(h12(:)).*h22(:)); - pmi_ue2(i) = quantize_q(q2(i)); - end - - - % q1(i) = double(estimates_UE1(est).phy_measurements(11).subband_pmi_re((antenna_index1(i)+1),i,1))+1j*double(estimates_UE1(est).phy_measurements(11).subband_pmi_im((antenna_index1(i)+1),i,1)); - % q2(i) = double(estimates_UE2(est).phy_measurements(11).subband_pmi_re((antenna_index2(i)+1),i,1))+1j*double(estimates_UE2(est).phy_measurements(11).subband_pmi_im((antenna_index2(i)+1),i,1)); - end - - - - %q_ext; % calculating the maximizing precoder - - - %qq1 = q_ue1; - %qq2 = q_ue2; - Rx_ue1 = []; - Rx_ue2 = []; - Ry_ue1 = []; - Ry_ue2 = []; - chcap_mumimo_1 = []; - chcap_mumimo_2 = []; - chcap_mumimo_3 = []; - for i = 1:1:7 - SNR_eNB_ue1=zeros(1,((subband_indices(i+1) - subband_indices(i))*4)); - SNR_eNB_ue2=zeros(1,((subband_indices(i+1) - subband_indices(i))*4)); - Rx_ue1 = []; - Rx_ue2 = []; - Ry_ue1 = []; - Ry_ue2 = []; - if (mumimo_on == 0) - - ran(i)=0; - else - qq11(i) = map_q(pmi_ue1(i)); - qq22(i) = map_q(pmi_ue2(i)); - - if ((qq11(i)==0 && qq22(i)==1) || (qq11(i)==1 && qq22(i)==0) || (qq11(i)==2 && qq22(i)==3) || (qq11(i)==3 && qq22(i)==2)) - ran(i) = 1; - else - ran(i) = 0; - end - end - - if(ran(i)==1) %MU-MIMO - - - mumimo_count = mumimo_count +1; - - %for i =1:1:7 - - if(antenna_index1(i) == 0) - Rx_ue1 = (abs(h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - Ry_ue1 = (abs(h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue1(i)*h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - else - Rx_ue1 = (abs(h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - Ry_ue1 = (abs(h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue1(i)*h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - end - - if(antenna_index2(i) == 0) - Rx_ue2 = (abs(h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - Ry_ue2 = (abs(h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue2(i)*h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - else - Rx_ue2 = (abs(h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - Ry_ue2 = (abs(h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue2(i)*h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2; - end - - % Rx1_ue1 = [Rx1_ue1 Rx_ue1']; - % Rx1_ue2 = [Rx1_ue2 Rx_ue2']; - % - % Ry1_ue1 = [Ry1_ue1 Ry_ue1']; - % Ry1_ue2 = [Ry1_ue2 Ry_ue2']; - %Rx222_ue2 = [Rx222_ue2 Rx22_ue2']; - - %end - - SNR_eNB_ue1 = 10*log10((Rx_ue1(:)/N0_1Rx)); - nan_in_SNR = isnan(SNR_eNB_ue1); - SNR_eNB_ue1(nan_in_SNR) = 0; - SNR_eNB_ue1(SNR_eNB_ue1 < 0) = 0; - SNR_eNB_ue1(SNR_eNB_ue1 > 50) = 50; - - SNR_eNB_ue2 = 10*log10((Rx_ue2(:)/N0_2ndRx)); - nan_in_SNR = isnan(SNR_eNB_ue2); - SNR_eNB_ue2(nan_in_SNR) = 0; - SNR_eNB_ue2(SNR_eNB_ue2 < 0) = 0; - SNR_eNB_ue2(SNR_eNB_ue2 > 50) = 50; - %****************************************************************** - %% Red Zone - I_ue1 = Ry_ue1(:)./Rx_ue1(:); - I_ue2 = Ry_ue2(:)./Rx_ue2(:); - % plot(I_ue1); - % pause - - I_ue1 = round(I_ue1*10+1); - I_ue2 = round(I_ue2*10+1); - - I_ue1(isnan(I_ue1))=11; - I_ue2(isnan(I_ue2))=11; - - I_ue1(I_ue1>11) = 11; - I_ue2(I_ue2>11) = 11; - cap_mumimo_ue1 = []; - cap_mumimo_ue2 = []; - % Read Tables here ... MUMIMO QPSK-QPSK - for c=1:((subband_indices(i+1) - subband_indices(i))*4) - cap_mumimo_ue1(c) = chcap_mode5_4_4_user1_cat(I_ue1(c), round(SNR_eNB_ue1(c))+1); - cap_mumimo_ue2(c) = chcap_mode5_4_4_user2_cat(I_ue2(c), round(SNR_eNB_ue2(c))+1); - end - - %interp1(SNR_4_4_cat,chcap_mode5_4_4_user1_cat, SNR_eNB_ue1(1, :, est),'nearest','extrap'); - %chcap_mumimo_ue2(1, :, est) = interp1(SNR_4_4_cat,chcap_mode5_4_4_user2_cat, SNR_eNB_ue2(1, :, est),'nearest','extrap'); - - chcap_mumimo_1 = [chcap_mumimo_1 (cap_mumimo_ue1 + cap_mumimo_ue2)]; - chcap_mumimo_2 = [chcap_mumimo_2 cap_mumimo_ue1]; - chcap_mumimo_3 = [chcap_mumimo_3 cap_mumimo_ue2]; - %****************************************************************** - % - % call capacity_Mode5_mumimo_1 with parameters Channels, qq1,qq2, and - % antenna index1 and 2 - else - % select the user with the stronger precoded SNR and calculate its - % capacity - beamforming_count = beamforming_count + 1; - if (antenna_index1(i) == 0) - Rx1 = (abs(h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)'; - else - Rx1 = (abs(h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)'; - end - - SNR_eNB_ue1 = 10*log10((Rx1(:))/N0_1Rx); - - nan_in_SNR = isnan(SNR_eNB_ue1); - SNR_eNB_ue1(nan_in_SNR) = 0; - - if ((antenna_index2(i) == 0)) - Rx2 = (abs(h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)'; - else - Rx2 = (abs(h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)'; - end - - SNR_eNB_ue2 = 10*log10((Rx2(:))/N0_2ndRx); - - nan_in_SNR = isnan(SNR_eNB_ue2); - SNR_eNB_ue2(nan_in_SNR) = 0; - - if(sum(SNR_eNB_ue2) < sum(SNR_eNB_ue1)) - tmp = interp1(SNR,c_siso_4Qam,SNR_eNB_ue1','nearest','extrap'); - chcap_mumimo_1 = [chcap_mumimo_1 tmp]; - chcap_mumimo_2 = [chcap_mumimo_2 interp1(SNR,c_siso_16Qam,SNR_eNB_ue1','nearest','extrap')]; - chcap_mumimo_3 = [chcap_mumimo_3 interp1(SNR,c_siso_64Qam,SNR_eNB_ue1','nearest','extrap')]; - if(mumimo_on) - chcap_mumimo_2 = [chcap_mumimo_2 tmp]; - chcap_mumimo_3 = [chcap_mumimo_3 interp1(SNR,c_siso_4Qam,SNR_eNB_ue2','nearest','extrap')]; - end - else - tmp = interp1(SNR,c_siso_4Qam,SNR_eNB_ue2','nearest','extrap'); - chcap_mumimo_1 = [chcap_mumimo_1 tmp]; - chcap_mumimo_2 = [chcap_mumimo_2 interp1(SNR,c_siso_16Qam,SNR_eNB_ue2','nearest','extrap')]; - chcap_mumimo_3 = [chcap_mumimo_3 interp1(SNR,c_siso_64Qam,SNR_eNB_ue2','nearest','extrap')]; - if(mumimo_on) - chcap_mumimo_3 = [chcap_mumimo_3 tmp]; - chcap_mumimo_2 = [chcap_mumimo_2 interp1(SNR,c_siso_4Qam,SNR_eNB_ue1','nearest','extrap')]; - - end - end - end - - end - chcap_mumimo(1,:,est) = chcap_mumimo_1; -% if (mumimo_on) - chcap_mumimo_ue1(1,:,est) = chcap_mumimo_2; - chcap_mumimo_ue2(1,:,est) = chcap_mumimo_3; -% end -end \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m deleted file mode 100755 index 62e78323ac..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m +++ /dev/null @@ -1,235 +0,0 @@ -%Channel Capacity of SISO system - -load 'SISO.mat'; -[x, y, z] = size(estimates_UE(1).channel); - -z = x/4; - -chcap_siso_single_stream_4Qam_2Rx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_16Qam_2Rx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_64Qam_2Rx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_supportedQam_2Rx = zeros(1,z, length(estimates_UE)); - -chcap_siso_single_stream_4Qam_1stRx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_16Qam_1stRx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_64Qam_1stRx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_supportedQam_1stRx = zeros(1,z, length(estimates_UE)); - -chcap_siso_single_stream_4Qam_2ndRx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_16Qam_2ndRx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_64Qam_2ndRx = zeros(1,z, length(estimates_UE)); -chcap_siso_single_stream_supportedQam_2ndRx = zeros(1,z, length(estimates_UE)); - -SNR_eNB_1stRx = zeros(1,z, length(estimates_UE)); -SNR_eNB_2ndRx = zeros(1,z, length(estimates_UE)); -SNR_eNB_2Rx = zeros(1,z, length(estimates_UE)); - -I = [1 0;0 1]; -for est=1:length(estimates_UE) - - NO_1stRx = double(estimates_UE(est).phy_measurements(11).n0_power(1)); - NO_2ndRx = double(estimates_UE(est).phy_measurements(11).n0_power(2)); - - % for checking the connected Sector - H = estimates_UE(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind] = max(Hs); - - - h11_eNB = double(estimates_UE(est).channel(2*z+1:2:end,1,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,1,ind)); - h12_eNB = double(estimates_UE(est).channel(2*z+1:2:end,2,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,2,ind)); - h21_eNB = double(estimates_UE(est).channel(2*z+1:2:end,3,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,3,ind)); - h22_eNB = double(estimates_UE(est).channel(2*z+1:2:end,4,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,4,ind)); - - - % version 1: using tabulated values - SNR_eNB_1stRx(1, :, est) = 10*log10(abs(h11_eNB + h21_eNB).^2/NO_1stRx); - - SNR_eNB_2ndRx(1, :, est) = 10*log10(abs(h12_eNB + h22_eNB).^2/NO_2ndRx); - - SNR_eNB_2Rx(1, :, est) = 10*log10(((abs(h11_eNB + h21_eNB).^2)/NO_1stRx)+((abs(h12_eNB + h22_eNB).^2)/NO_2ndRx)); - - nan_in_SNR = isnan(SNR_eNB_1stRx); - SNR_eNB_1stRx(nan_in_SNR) = 0; - - nan_in_SNR = isnan(SNR_eNB_2ndRx); - SNR_eNB_2ndRx(nan_in_SNR) = 0; - - nan_in_SNR = isnan(SNR_eNB_2Rx); - SNR_eNB_2Rx(nan_in_SNR) = 0; - - chcap_siso_single_stream_4Qam_1stRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap'); - chcap_siso_single_stream_4Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap'); - chcap_siso_single_stream_4Qam_2Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - chcap_siso_single_stream_16Qam_1stRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap'); - chcap_siso_single_stream_16Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap'); - chcap_siso_single_stream_16Qam_2Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - chcap_siso_single_stream_64Qam_1stRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap'); - chcap_siso_single_stream_64Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap'); - chcap_siso_single_stream_64Qam_2Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap'); - - %% -% CH = [h11_eNB'; h12_eNB'; h21_eNB'; h22_eNB']; -% -% Hh = reshape(CH,2,2,200); -% -% %for mi=1:200 -% -% % MI(mi) = log2(det((I + SNR_eNB_1stRx(1,mi,est)*(Hh(:,:,mi)*(conj(Hh(:,:,mi)))')))); -% -% %end - - - while (min(SNR_eNB_1stRx(1, :, est)) < -20 ) - [value, index] = min(SNR_eNB_1stRx(1, :, est)); - SNR_eNB_1stRx(1, index, est) = -20; - continue - - end - - while (max(SNR_eNB_1stRx(1, :, est)) > 40) - [value, index] = max(SNR_eNB_1stRx(1, :, est)); - SNR_eNB_1stRx(1, index, est) = 40; - continue - - end - - - while (min(SNR_eNB_2ndRx(1, :, est)) < -20 ) - [value, index] = min(SNR_eNB_2ndRx(1, :, est)); - SNR_eNB_2ndRx(1, index, est) = -20; - continue - - end - - while (max(SNR_eNB_2ndRx(1, :, est)) > 40) - [value, index] = max(SNR_eNB_2ndRx(1, :, est)); - SNR_eNB_2ndRx(1, index, est) = 40; - continue - - end - - while (min(SNR_eNB_2Rx(1, :, est)) < -20 ) - [value, index] = min(SNR_eNB_2Rx(1, :, est)); - SNR_eNB_2Rx(1, index, est) = -20; - continue - - end - - while (max(SNR_eNB_2Rx(1, :, est)) > 40) - [value, index] = max(SNR_eNB_2Rx(1, :, est)); - SNR_eNB_2Rx(1, index, est) = 40; - continue - - end - - MI = log2(abs((1 + SNR_eNB_1stRx(1,:,est)))); - C1 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_2ndRx(1,:,est)))); - C2 = mean(MI); - - MI = log2(abs((1 + SNR_eNB_2Rx(1,:,est)))); - C3 = mean(MI); - - - if C1 <=2 - for c=1:z - chcap_siso_single_stream_supportedQam_1stRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); - end - else - if C1 >2 && C1 <= 4 - for c=1:z - chcap_siso_single_stream_supportedQam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); - end - else - for c=1:z - chcap_siso_single_stream_supportedQam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); - end - - end - end - - if C2 <=2 - for c=1:z - chcap_siso_single_stream_supportedQam_2ndRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); - end - else - if C2 >2 && C2 <= 4 - for c=1:z - chcap_siso_single_stream_supportedQam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); - end - else - for c=1:z - chcap_siso_single_stream_supportedQam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); - end - end - end - - if C3 <=2 - for c=1:z - chcap_siso_single_stream_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - if C3 >2 && C3 <= 4 - for c=1:z - chcap_siso_single_stream_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - else - for c=1:z - chcap_siso_single_stream_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); - end - end - end - -% MI = log2(abs((1 + SNR_eNB_2Rx(1,:,est)))); -% C3 = mean(MI); -% nc = [NO_1stRx 0;0 NO_2ndRx]; -% -% for mi = 1:200 -% -% MII(mi) = log2(abs(det((I + (conj(Hh(:,:,mi)))'*nc*Hh(:,:,mi))))); -% -% end -% -% C4 = mean(MI) -% for const=1:3 -% if const ==1 -% for c=1:z - - - -% chcap_siso_single_stream_16Qam(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB(1, :, est),'nearest','extrap'); -% -% chcap_siso_single_stream_64Qam(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB(1, :, est),'nearest','extrap'); -% -% chcap_siso_single_stream_4Qam_1stRx(1, :, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, :, est)))); -% chcap_siso_single_stream_4Qam_2ndRx(1, :, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, :, est)))); -% chcap_siso_single_stream_4Qam_2Rx(1, :, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, :, est)))); -% -% end -% else if const==2 -% for c=1:z -% -% chcap_siso_single_stream_16Qam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); -% chcap_siso_single_stream_16Qam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); -% chcap_siso_single_stream_16Qam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); -% -% end -% else -% for c=1:z -% -% chcap_siso_single_stream_64Qam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est)))); -% chcap_siso_single_stream_64Qam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est)))); -% chcap_siso_single_stream_64Qam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est)))); -% -% end -% end -% end -% end -end - -%save 'chcap_SISO_Measurements.mat' 'chcap_siso*' 'SNR_eNB*' diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m deleted file mode 100644 index 996034098f..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m +++ /dev/null @@ -1,34 +0,0 @@ -function uncoded_rps = coded2uncoded(coded_rps,direction) -% uncoded_rps = coded2uncoded(coded_rps); -% -% This function computes the uncoded rate per second for a coded rate. It -% basically caps the rate to the one given in the table below. -% -% The maximum uncoded throughput is derived as follows. Each DL subframe -% contains 3600 REs out of which 400 REs are used for pilots and 800 for -% the PDCCH, leaving 2400 REs for the DLSCH. Each UL subframe has 3600 RE, -% out of which 600 are used for pilots and 300 for the SRS, leving 2700 REs -% for the ULSCH. Assuming TDD frame configuration 3 (6 DL subframes, 3 UL -% subframes, 1 special subframe), this results in a maximum throughput of -% -% DL UL -% QPSK: 2.88 Mbps 1.62 Mbps -% 16QAM: 5.76 Mbps 3.24 Mbps -% 64QAM: 8.64 Mbps 4.86 Mbps - -uncoded_rps = coded_rps; - -switch (direction) - case 'DL' - uncoded_rps(coded_rps>0 & coded_rps<=2.88e6) = 2.88e6; - uncoded_rps(coded_rps>2.88e6 & coded_rps<=5.76e6) = 5.76e6; - uncoded_rps(coded_rps>5.76e6) = 8.64e6; - case 'UL' - uncoded_rps(coded_rps>0 & coded_rps<=1.62e6) = 1.62e6; - uncoded_rps(coded_rps>1.62e6 & coded_rps<=3.24e6) = 3.24e6; - uncoded_rps(coded_rps>3.24e6) = 4.86e6; - otherwise - error('Unknown direction') -end - - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m deleted file mode 100755 index 1cd33f5858..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m +++ /dev/null @@ -1,448 +0,0 @@ -function [H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(filename, NFrames_max, decimation, is_eNb, version) -% -% EMOS Single User Import Filter -% -% [H, H_fq, estimates, gps_data, NFrames] = -% load_estimates_lte(filename, NFrames_max, version) -% -% Parameters: -% filename - filename(s) of the EMOS data file -% NFrames_max - Maximum number of estimates. Leave it blank to get up to the -% maximum file contents -% decimation - read every 'decimation' frame -% is_eNb - if ~= 0 we load data from an eNb -% version - for backward compatibility (see details below) -% -% Returns: -% estimates - A structure array containing timestamp, etc -% gps_data - A structure array containing gps data -% NFrames - the number of read estimates - -% Author: Florian Kaltenberger, Imran Latif -% Copyright: Eurecom Sophia Antipolis - -% Version History -% Date Version Comment -% 20100317 0.1 Created based on load_estimates - -if nargin < 5 - version = Inf; -end -if nargin < 4 - is_eNb = 0; -end -if nargin < 3 - decimation = 1; -end -if nargin < 2 - NFrames_max = Inf; -end - -% NTx = 2; -% NRx = 2; -% NFreq = 512; -% NZFreq = 300; - -% Logfile structure: -% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h) -% - 1 entry of type gps_fix_t defined in gps.h - -if exist('../../IMPORT_FILTER/a.out','file') - [dummy,result] = system('../../IMPORT_FILTER/a.out'); - eval(result); -else - warning('File dump_size.c has to be compiled to enable error checking of sizes'); - %PHY_measurements_size = 1120; - %UCI_data_t_size = 49; - %DCI_alloc_t_size = 16; - %eNb_UE_stats_size = 20; - %fifo_dump_emos_UE_size = 33492; - %fifo_dump_emos_eNb_size = 36980; - %gps_fix_t_size = 108; -end - -struct_template; - -% if (version < 1) -% fifo_dump_emos_struct_eNb = fifo_dump_emos_struct_eNb_old; -% fifo_dump_emos_struct_eNb_a = fifo_dump_emos_struct_eNb_old_a; -% end - -gps_fix_t_size = gps_data_struct_a.size; -fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size; -fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size; - - -NO_ESTIMATES_DISK = 100; -if (is_eNb) - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size; -else - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size; -end - -if (mod(NO_ESTIMATES_DISK,decimation) ~= 0) - error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK); -end - -% Estimate the size of the file for a pre-allocation of memory -if ~iscell(filename) - filename = {filename}; -end -NFiles = length(filename); -NFrames_file = zeros(1,NFiles); -for n=1:NFiles - if ~exist(filename{n},'file') - error('File does not exist!') - end - info_file = dir(filename{n}); - NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK; - if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0) - warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag is wrong.'); - end -end -NFrames = min(sum(NFrames_file), NFrames_max); - -% if (is_eNb) -% estimates = repmat(fifo_dump_emos_struct_eNb,1,floor(NFrames/decimation)); -% else -% estimates = repmat(fifo_dump_emos_struct_UE,1,floor(NFrames/decimation)); -% end - -if (is_eNb) - estimates = repmat(fifo_dump_emos_struct_eNb,1,100); - - Ratepersec_4Qam_SISO_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_1Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - - siso_SNR_1Rx = zeros(1,floor(NFrames/100)); - siso_SNR_2Rx = zeros(1,floor(NFrames/100)); - - minestimates = repmat(min_estimates_struct_eNb, 1,NFrames); -else - estimates = repmat(fifo_dump_emos_struct_UE,1,100); - - Ratepersec_4Qam_SISO_1stRx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_1stRx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_1stRx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_SISO_1stRx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_SISO_2ndRx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_2ndRx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_2ndRx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_SISO_2ndRx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_SISO_2Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_alamouti_1stRx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_alamouti_1stRx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_alamouti_1stRx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_alamouti_1stRx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_alamouti_2ndRx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_alamouti_2ndRx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_alamouti_2ndRx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_alamouti_2ndRx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_alamouti_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_alamouti_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_alamouti_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_alamouti_2Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_supportedQam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100)); - - % Rate_mode4_sch = zeros(1,floor(NFrames/100)); - - siso_SNR_1stRx = zeros(1,floor(NFrames/100)); - siso_SNR_2ndRx = zeros(1,floor(NFrames/100)); - alam_SNR_1stRx = zeros(1,floor(NFrames/100)); - alam_SNR_2ndRx = zeros(1,floor(NFrames/100)); - bmfr_maxq_SNR_1Rx = zeros(1,floor(NFrames/100)); - bmfr_fbq_SNR_1Rx = zeros(1,floor(NFrames/100)); - - siso_SNR_2Rx = zeros(1,floor(NFrames/100)); - alam_SNR_2Rx = zeros(1,floor(NFrames/100)); - bmfr_maxq_SNR_2Rx = zeros(1,floor(NFrames/100)); - bmfr_fbq_SNR_2Rx = zeros(1,floor(NFrames/100)); - - K_fac = []; - - minestimates = repmat(min_estimates_struct, 1,NFrames); - h11_eNbm = []; - h12_eNbm = []; - h21_eNbm = []; - h22_eNbm = []; -end -gps_data = repmat(gps_data_struct,1,NFrames/100); - -k = 1; -l = 1; -sec = 1; -count =0; -for n=1:NFiles - fid = fopen(filename{n},'r'); - - while (~feof(fid) && (k <= min(sum(NFrames_file(1:n)),NFrames_max))) - - if (is_eNb) - estimates_tmp = binread(fid,fifo_dump_emos_struct_eNb,1,4,'l'); - - minestimates(k).mcs = get_mcs(estimates_tmp.dci_alloc(10,1).dci_pdu,'format0'); - minestimates(k).tbs = get_tbs(minestimates(k).mcs,25); - minestimates(k).rx_rssi_dBm = estimates_tmp.phy_measurements_eNb(1).rx_rssi_dBm(1); - minestimates(k).frame_tx = estimates_tmp.frame_tx; - minestimates(k).timestamp = estimates_tmp.timestamp; - if (version<1) - minestimates(k).UE_mode = estimates_tmp.eNb_UE_stats(3,1).UE_mode; - else - minestimates(k).UE_mode = estimates_tmp.eNb_UE_stats(1,1).UE_mode; - end - minestimates(k).phy_measurements = estimates_tmp.phy_measurements_eNb(1); - minestimates(k).ulsch_errors = estimates_tmp.ulsch_errors; - minestimates(k).mimo_mode = estimates_tmp.mimo_mode; - minestimates(k).eNb_id = estimates_tmp.eNb_UE_stats.sector; - - else - estimates_tmp = binread(fid,fifo_dump_emos_struct_UE,1,4,'l'); - - count = count +1; - estimates(1,count) = estimates_tmp; - minestimates(k).mcs = get_mcs(estimates_tmp.dci_alloc(7,1).dci_pdu); - minestimates(k).tbs = get_tbs(minestimates(k).mcs,25); - minestimates(k).rx_rssi_dBm = estimates_tmp.phy_measurements(1).rx_rssi_dBm(1); - minestimates(k).frame_tx = estimates_tmp.frame_tx; - minestimates(k).frame_rx = estimates_tmp.frame_rx; - minestimates(k).pbch_fer = estimates_tmp.pbch_fer(1); - minestimates(k).timestamp = estimates_tmp.timestamp; - minestimates(k).UE_mode = estimates_tmp.UE_mode; - minestimates(k).phy_measurements = estimates_tmp.phy_measurements(1); - minestimates(k).dlsch_fer = estimates_tmp.dlsch_fer; - minestimates(k).dlsch_errors = estimates_tmp.dlsch_errors; - minestimates(k).mimo_mode = estimates_tmp.mimo_mode; - minestimates(k).eNb_id = estimates_tmp.eNb_id; - - - % Ricean Factor calculation - H = estimates_tmp.channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind] = max(Hs); - - h11_eNB = double(estimates_tmp.channel(1:2:end/2,1,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,1,ind)); - h12_eNB = double(estimates_tmp.channel(1:2:end/2,2,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,2,ind)); - h21_eNB = double(estimates_tmp.channel(1:2:end/2,3,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,3,ind)); - h22_eNB = double(estimates_tmp.channel(1:2:end/2,4,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,4,ind)); - - h11_eNB1 = reshape(h11_eNB, 50,4); - h12_eNB1 = reshape(h12_eNB, 50,4); - h21_eNB1 = reshape(h21_eNB, 50,4); - h22_eNB1 = reshape(h22_eNB, 50,4); - - h11_eNbm = [h11_eNbm mean((abs(h11_eNB1)).^2,1)]; - h12_eNbm = [h12_eNbm mean((abs(h12_eNB1)).^2,1)]; - h21_eNbm = [h21_eNbm mean((abs(h21_eNB1)).^2,1)]; - h22_eNbm = [h22_eNbm mean((abs(h22_eNB1)).^2,1)]; - - - end - - - %read GPS data and estimates every second - if ((mod(k,NO_ESTIMATES_DISK)==0) && ~feof(fid)) - gps_data(l) = binread(fid,gps_data_struct,1,4,'l'); - - count = 0; - - if (is_eNb) - [Ratepersec_4Qam_SISO_1Rx(sec),Ratepersec_16Qam_SISO_1Rx(sec),Ratepersec_64Qam_SISO_1Rx(sec),siso_SNR_1Rx(sec)] = calc_rps_SISO_UL(estimates,1,version,1); - [Ratepersec_4Qam_SISO_2Rx(sec),Ratepersec_16Qam_SISO_2Rx(sec),Ratepersec_64Qam_SISO_2Rx(sec),siso_SNR_2Rx(sec)] = calc_rps_SISO_UL(estimates,2,version,1); - else - - K1(l) = estimate_rice(h11_eNbm); - K2(l) = estimate_rice(h12_eNbm); - K3(l) = estimate_rice(h21_eNbm); - K4(l) = estimate_rice(h22_eNbm); - h11_eNbm = []; - h12_eNbm = []; - h21_eNbm = []; - h22_eNbm = []; - K_fac = [K_fac K1(l) K2(l) K3(l) K4(l)]; - - try - - % [Rate_mode4_sch(sec), mode4_SNR] = calc_rps_mode4(estimates); - - [Ratepersec_4Qam_SISO_1stRx(sec),Ratepersec_16Qam_SISO_1stRx(sec),Ratepersec_64Qam_SISO_1stRx(sec),Ratepersec_4Qam_SISO_2ndRx(sec),... - Ratepersec_16Qam_SISO_2ndRx(sec),Ratepersec_64Qam_SISO_2ndRx(sec),siso_SNR_1stRx(sec),siso_SNR_2ndRx(sec),... - Ratepersec_4Qam_SISO_2Rx(sec),Ratepersec_16Qam_SISO_2Rx(sec),Ratepersec_64Qam_SISO_2Rx(sec),... - siso_SNR_2Rx(sec),Ratepersec_supportedQam_SISO_1stRx(sec),Ratepersec_supportedQam_SISO_2ndRx(sec),... - Ratepersec_supportedQam_SISO_2Rx(sec)] = calc_rps_SISO(estimates); - - % siso_SNR_1stRx = [siso_SNR_1stRx siso_SNR_1stRx]; - % siso_SNR_2ndRx = [siso_SNR_2ndRx siso_SNR_2ndRx]; - % siso_SNR_2Rx = [siso_SNR_2Rx siso_SNR_2Rx]; - - % include results for 1 Rx with other Rx antenna - [Ratepersec_4Qam_alamouti_1stRx(sec),Ratepersec_16Qam_alamouti_1stRx(sec),Ratepersec_64Qam_alamouti_1stRx(sec),... - Ratepersec_4Qam_alamouti_2ndRx(sec),Ratepersec_16Qam_alamouti_2ndRx(sec),Ratepersec_64Qam_alamouti_2ndRx(sec),... - alam_SNR_1stRx(sec),alam_SNR_2ndRx(sec),Ratepersec_4Qam_alamouti_2Rx(sec),Ratepersec_16Qam_alamouti_2Rx(sec),... - Ratepersec_64Qam_alamouti_2Rx(sec),alam_SNR_2Rx(sec),Ratepersec_supportedQam_alamouti_1stRx(sec),... - Ratepersec_supportedQam_alamouti_2ndRx(sec),Ratepersec_supportedQam_alamouti_2Rx(sec)] = calc_rps_Alamouti(estimates); - - % alam_SNR_1stRx = [alam_SNR_1stRx alam_SNR_1stRx]; - % alam_SNR_2ndRx = [alam_SNR_2ndRx alam_SNR_2ndRx]; - % alam_SNR_2Rx = [alam_SNR_2Rx alam_SNR_2Rx]; - - [Ratepersec_4Qam_beamforming_maxq_1Rx(sec),Ratepersec_16Qam_beamforming_maxq_1Rx(sec),... - Ratepersec_64Qam_beamforming_maxq_1Rx(sec),Ratepersec_4Qam_beamforming_feedbackq_1Rx(sec),... - Ratepersec_16Qam_beamforming_feedbackq_1Rx(sec),Ratepersec_64Qam_beamforming_feedbackq_1Rx(sec),... - bmfr_maxq_SNR_1Rx(sec), bmfr_fbq_SNR_1Rx(sec), Ratepersec_4Qam_beamforming_maxq_2Rx(sec),... - Ratepersec_16Qam_beamforming_maxq_2Rx(sec),Ratepersec_64Qam_beamforming_maxq_2Rx(sec),... - Ratepersec_4Qam_beamforming_feedbackq_2Rx(sec),Ratepersec_16Qam_beamforming_feedbackq_2Rx(sec),... - Ratepersec_64Qam_beamforming_feedbackq_2Rx(sec),bmfr_maxq_SNR_2Rx(sec), bmfr_fbq_SNR_2Rx(sec),... - Ratepersec_supportedQam_beamforming_maxq_1Rx(sec),Ratepersec_supportedQam_beamforming_feedbackq_1Rx(sec),... - Ratepersec_supportedQam_beamforming_maxq_2Rx(sec),Ratepersec_supportedQam_beamforming_feedbackq_2Rx(sec)] = calc_rps_Beamforming(estimates); - - % bmfr_maxq_SNR_1Rx = [bmfr_maxq_SNR_1Rx bmfr_optmq_SNR_1Rx]; - % bmfr_fbq_SNR_1Rx = [bmfr_fbq_SNR_1Rx bmfr_feedbkq_SNR_1Rx]; - % bmfr_maxq_SNR_2Rx = [bmfr_maxq_SNR_2Rx bmfr_optmq_SNR_2Rx]; - % bmfr_fbq_SNR_2Rx = [bmfr_fbq_SNR_2Rx bmfr_feedbkq_SNR_2Rx]; - - catch exception - disp(exception.getReport) - disp(sprintf('Detected error in file %s, second %d, skipping it',filename{1},sec)); - l=l+1; - k=k+1; - sec=sec+1; - continue - end - end - l=l+1; - sec = sec +1; - end - k=k+1; - end - - fclose(fid); -end - -H=[]; -H_fq=[]; - -if (is_eNb) - throughput.rateps_SISO_4Qam_eNB1_1Rx = Ratepersec_4Qam_SISO_1Rx; - throughput.rateps_SISO_16Qam_eNB1_1Rx = Ratepersec_16Qam_SISO_1Rx; - throughput.rateps_SISO_64Qam_eNB1_1Rx = Ratepersec_64Qam_SISO_1Rx; - throughput.rateps_SISO_4Qam_eNB1_2Rx = Ratepersec_4Qam_SISO_2Rx; - throughput.rateps_SISO_16Qam_eNB1_2Rx = Ratepersec_16Qam_SISO_2Rx; - throughput.rateps_SISO_64Qam_eNB1_2Rx = Ratepersec_64Qam_SISO_2Rx; - SNR.siso_1Rx = siso_SNR_1Rx; - SNR.siso_2Rx = siso_SNR_2Rx; - K_fac = []; -else - - throughput.rateps_SISO_4Qam_eNB1_1stRx = Ratepersec_4Qam_SISO_1stRx; - throughput.rateps_SISO_16Qam_eNB1_1stRx = Ratepersec_16Qam_SISO_1stRx; - throughput.rateps_SISO_64Qam_eNB1_1stRx = Ratepersec_64Qam_SISO_1stRx; - throughput.rateps_SISO_supportedQam_eNB1_1stRx = Ratepersec_supportedQam_SISO_1stRx; - - throughput.rateps_SISO_4Qam_eNB1_2ndRx = Ratepersec_4Qam_SISO_2ndRx; - throughput.rateps_SISO_16Qam_eNB1_2ndRx = Ratepersec_16Qam_SISO_2ndRx; - throughput.rateps_SISO_64Qam_eNB1_2ndRx = Ratepersec_64Qam_SISO_2ndRx; - throughput.rateps_SISO_supportedQam_eNB1_2ndRx = Ratepersec_supportedQam_SISO_2ndRx; - - % K_fac = []; - % - % SNR = []; - - throughput.rateps_alamouti_4Qam_eNB1_1stRx = Ratepersec_4Qam_alamouti_1stRx; - throughput.rateps_alamouti_16Qam_eNB1_1stRx = Ratepersec_16Qam_alamouti_1stRx; - throughput.rateps_alamouti_64Qam_eNB1_1stRx = Ratepersec_64Qam_alamouti_1stRx; - throughput.rateps_alamouti_supportedQam_eNB1_1stRx = Ratepersec_supportedQam_alamouti_1stRx; - - throughput.rateps_alamouti_4Qam_eNB1_2ndRx = Ratepersec_4Qam_alamouti_2ndRx; - throughput.rateps_alamouti_16Qam_eNB1_2ndRx = Ratepersec_16Qam_alamouti_2ndRx; - throughput.rateps_alamouti_64Qam_eNB1_2ndRx = Ratepersec_64Qam_alamouti_2ndRx; - throughput.rateps_alamouti_supportedQam_eNB1_2ndRx = Ratepersec_supportedQam_alamouti_2ndRx; - - throughput.rateps_beamforming_4Qam_eNB1_1Rx_feedbackq = Ratepersec_4Qam_beamforming_feedbackq_1Rx; - throughput.rateps_beamforming_16Qam_eNB1_1Rx_feedbackq = Ratepersec_16Qam_beamforming_feedbackq_1Rx; - throughput.rateps_beamforming_64Qam_eNB1_1Rx_feedbackq = Ratepersec_64Qam_beamforming_feedbackq_1Rx; - throughput.rateps_beamforming_supportedQam_eNB1_1Rx_feedbackq = Ratepersec_supportedQam_beamforming_feedbackq_1Rx; - - throughput.rateps_beamforming_4Qam_eNB1_1Rx_maxq = Ratepersec_4Qam_beamforming_maxq_1Rx; - throughput.rateps_beamforming_16Qam_eNB1_1Rx_maxq = Ratepersec_16Qam_beamforming_maxq_1Rx; - throughput.rateps_beamforming_64Qam_eNB1_1Rx_maxq = Ratepersec_64Qam_beamforming_maxq_1Rx; - throughput.rateps_beamforming_supportedQam_eNB1_1Rx_maxq = Ratepersec_supportedQam_beamforming_maxq_1Rx; - - SNR.siso_1stRx = siso_SNR_1stRx; - SNR.siso_2ndRx = siso_SNR_2ndRx; - SNR.alamouti_1stRx = alam_SNR_1stRx; - SNR.alamouti_2ndRx = alam_SNR_2ndRx; - SNR.bmfr_maxq_1Rx = bmfr_maxq_SNR_1Rx; - SNR.bmfr_feedbackq_1Rx = bmfr_fbq_SNR_1Rx; - - throughput.rateps_SISO_4Qam_eNB1_2Rx = Ratepersec_4Qam_SISO_2Rx; - throughput.rateps_SISO_16Qam_eNB1_2Rx = Ratepersec_16Qam_SISO_2Rx; - throughput.rateps_SISO_64Qam_eNB1_2Rx = Ratepersec_64Qam_SISO_2Rx; - throughput.rateps_SISO_supportedQam_eNB1_2Rx = Ratepersec_supportedQam_SISO_2Rx; - - throughput.rateps_alamouti_4Qam_eNB1_2Rx = Ratepersec_4Qam_alamouti_2Rx; - throughput.rateps_alamouti_16Qam_eNB1_2Rx = Ratepersec_16Qam_alamouti_2Rx; - throughput.rateps_alamouti_64Qam_eNB1_2Rx = Ratepersec_64Qam_alamouti_2Rx; - throughput.rateps_alamouti_supportedQam_eNB1_2Rx = Ratepersec_supportedQam_alamouti_2Rx; - - throughput.rateps_beamforming_4Qam_eNB1_2Rx_feedbackq = Ratepersec_4Qam_beamforming_feedbackq_2Rx; - throughput.rateps_beamforming_16Qam_eNB1_2Rx_feedbackq = Ratepersec_16Qam_beamforming_feedbackq_2Rx; - throughput.rateps_beamforming_64Qam_eNB1_2Rx_feedbackq = Ratepersec_64Qam_beamforming_feedbackq_2Rx; - throughput.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq = Ratepersec_supportedQam_beamforming_feedbackq_2Rx; - - throughput.rateps_beamforming_4Qam_eNB1_2Rx_maxq = Ratepersec_4Qam_beamforming_maxq_2Rx; - throughput.rateps_beamforming_16Qam_eNB1_2Rx_maxq = Ratepersec_16Qam_beamforming_maxq_2Rx; - throughput.rateps_beamforming_64Qam_eNB1_2Rx_maxq = Ratepersec_64Qam_beamforming_maxq_2Rx; - throughput.rateps_beamforming_supportedQam_eNB1_2Rx_maxq = Ratepersec_supportedQam_beamforming_maxq_2Rx; - - %throughput.rateps_mode4_sch = Rate_mode4_sch; - - SNR.siso_2Rx = siso_SNR_2Rx; - SNR.alamouti_2Rx = alam_SNR_2Rx; - SNR.bmfr_maxq_2Rx = bmfr_maxq_SNR_2Rx; - SNR.bmfr_feedbackq_2Rx = bmfr_fbq_SNR_2Rx; -end - -% H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames)); -% H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames); -% H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames); -% -% H = ifft(H_fq,[],3); -% -% % remove zero carriers from Frequency response -% NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices -% H_fq = H_fq(:,:,NZFreq_ind,:); -% - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m deleted file mode 100644 index 6e96182006..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m +++ /dev/null @@ -1,285 +0,0 @@ -function [H, H_fq, gps_data, NFrames, minestimates, throughput, SNR] = load_estimates_lte_2(filename, NFrames_max, decimation, is_eNb,mumimo_on, version) -% -% EMOS Single User Import Filter -% -% [H, H_fq, estimates, gps_data, NFrames] = -% load_estimates_lte(filename, NFrames_max, version) -% -% Parameters: -% filename - filename(s) of the EMOS data file -% NFrames_max - Maximum number of estimates. Leave it blank to get up to the -% maximum file contents -% decimation - read every 'decimation' frame -% is_eNb - if ~= 0 we load data from an eNb -% version - for backward compatibility (see details below) -% -% Returns: -% estimates - A structure array containing timestamp, etc -% gps_data - A structure array containing gps data -% NFrames - the number of read estimates - -% Author: Florian Kaltenberger, Imran Latif -% Copyright: Eurecom Sophia Antipolis - -% Version History -% Date Version Comment -% 20100317 0.1 Created based on load_estimates - -if nargin < 5 - version = Inf; -end -if nargin < 4 - is_eNb = 0; -end -if nargin < 3 - decimation = 1; -end -if nargin < 2 - NFrames_max = Inf; -end - -% NTx = 2; -% NRx = 2; -% NFreq = 512; -% NZFreq = 300; - -% Logfile structure: -% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h) -% - 1 entry of type gps_fix_t defined in gps.h - -if exist('../../IMPORT_FILTER/a.out','file') - [dummy,result] = system('../../IMPORT_FILTER/a.out'); - eval(result); -else - warning('File dump_size.c has to be compiled to enable error checking of sizes'); - %PHY_measurements_size = 1120; - %UCI_data_t_size = 49; - %DCI_alloc_t_size = 16; - %eNb_UE_stats_size = 20; - %fifo_dump_emos_UE_size = 33492; - %fifo_dump_emos_eNb_size = 36980; - %gps_fix_t_size = 108; -end - -struct_template; - -% if (version < 1) -% fifo_dump_emos_struct_eNb = fifo_dump_emos_struct_eNb_old; -% fifo_dump_emos_struct_eNb_a = fifo_dump_emos_struct_eNb_old_a; -% end - -gps_fix_t_size = gps_data_struct_a.size; -fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size; -fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size; - - -NO_ESTIMATES_DISK = 100; -if (is_eNb) - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size; -else - CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size; -end - -if (mod(NO_ESTIMATES_DISK,decimation) ~= 0) - error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK); -end - -% Estimate the size of the file for a pre-allocation of memory -if ~iscell(filename) - filename = {filename}; -end -NFiles = length(filename); -NFrames_file = zeros(1,NFiles); -for n=1:NFiles - if ~exist(filename{n},'file') - error('File does not exist!') - end - info_file = dir(filename{n}); - NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK; - if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0) - warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag is wrong.'); - end -end -NFrames = min(min(NFrames_file), NFrames_max); - -if (is_eNb) - estimates_tmp = repmat(fifo_dump_emos_struct_eNb,NFiles,100); - - Ratepersec_4Qam_SISO_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_1Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_1Rx = zeros(1,floor(NFrames/100)); - - Ratepersec_4Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_SISO_2Rx = zeros(1,floor(NFrames/100)); - - siso_SNR_1Rx = zeros(1,floor(NFrames/100)); - siso_SNR_2Rx = zeros(1,floor(NFrames/100)); - - minestimates = repmat(min_estimates_struct_eNb, NFiles, NFrames); -else - estimates_tmp = repmat(fifo_dump_emos_struct_UE,NFiles,100); - -%% Ratepersec_4Qam_alamouti = zeros(1,floor(NFrames/100)); -% Ratepersec_4Qam_siso = zeros(1,floor(NFrames/100)); -% Ratepersec_16Qam_alamouti = zeros(1,floor(NFrames/100)); -% Ratepersec_16Qam_siso = zeros(1,floor(NFrames/100)); -% Ratepersec_64Qam_alamouti = zeros(1,floor(NFrames/100)); -% Ratepersec_64Qam_siso = zeros(1,floor(NFrames/100)); - Ratepersec_4Qam_beamforming = zeros(1,floor(NFrames/100)); -% Ratepersec_4Qam_MUMIMO_ue1 = zeros(1,floor(NFrames/100)); -% Ratepersec_4Qam_MUMIMO_ue2 = zeros(1,floor(NFrames/100)); - Ratepersec_16Qam_beamforming = zeros(1,floor(NFrames/100)); - Ratepersec_64Qam_beamforming = zeros(1,floor(NFrames/100)); - % Ratepersec_supportedQam_MUMIMO_1stRx = zeros(1,floor(NFrames/100)); - % - % Ratepersec_4Qam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100)); - % Ratepersec_16Qam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100)); - % Ratepersec_64Qam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100)); - % Ratepersec_supportedQam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100)); - % - % Ratepersec_4Qam_MUMIMO_2Rx = zeros(1,floor(NFrames/100)); - % Ratepersec_16Qam_MUMIMO_2Rx = zeros(1,floor(NFrames/100)); - % Ratepersec_64Qam_MUMIMO_2Rx = zeros(1,floor(NFrames/100)); - % Ratepersec_supportedQam_MUMIMO_2Rx = zeros(1,floor(NFrames/100)); - - SNR=[]; - - minestimates = repmat(min_estimates_struct, NFiles, NFrames); - -end -gps_data = repmat(gps_data_struct,NFiles,NFrames/100); - -k = 1; -l = 1; -sec = 1; -count =1; -fid = zeros(1,NFiles); -for n=1:NFiles - fid(n) = fopen(filename{n},'r'); -end - -while (any(~feof_vec(fid)) && (k <= min([NFrames_file,NFrames_max]))) - %while (sec<70) - for n=1:NFiles - %H = complex(zeros(2,2,2,200)); % NUser * NTx x NRx * Nsymb - - if (is_eNb) - estimates_tmp(n,k) = binread(fid(n),fifo_dump_emos_struct_eNb,1,4,'l'); - - minestimates(n,k).mcs = get_mcs(estimates_tmp(n,k).dci_alloc(10,1).dci_pdu,'format0'); - minestimates(n,k).tbs = get_tbs(minestimates(k).mcs,25); - minestimates(n,k).rx_rssi_dBm = estimates_tmp(n,k).phy_measurements_eNb(1).rx_rssi_dBm(1); - minestimates(n,k).frame_tx = estimates_tmp(n,k).frame_tx; - minestimates(n,k).timestamp = estimates_tmp(n,k).timestamp; - if (version<1) - minestimates(n,k).UE_mode = estimates_tmp(n,k).eNb_UE_stats(3,1).UE_mode; - else - minestimates(n,k).UE_mode = estimates_tmp(n,k).eNb_UE_stats(1,1).UE_mode; - end - minestimates(n,k).phy_measurements = estimates_tmp(n,k).phy_measurements_eNb(1); - minestimates(n,k).ulsch_errors = estimates_tmp(n,k).ulsch_errors; - minestimates(n,k).mimo_mode = estimates_tmp(n,k).mimo_mode; - minestimates(n,k).eNb_id = estimates_tmp(n,k).eNb_UE_stats.sector; - - else - estimates_tmp(n,count) = binread(fid(n),fifo_dump_emos_struct_UE,1,4,'l'); - - minestimates(n,k).mcs = get_mcs(estimates_tmp(n,count).dci_alloc(7,1).dci_pdu); - minestimates(n,k).tbs = get_tbs(minestimates(n,k).mcs,25); - minestimates(n,k).rx_rssi_dBm = estimates_tmp(n,count).phy_measurements(1).rx_rssi_dBm(1); - minestimates(n,k).frame_tx = estimates_tmp(n,count).frame_tx; - minestimates(n,k).frame_rx = estimates_tmp(n,count).frame_rx; - minestimates(n,k).pbch_fer = estimates_tmp(n,count).pbch_fer(1); - minestimates(n,k).timestamp = estimates_tmp(n,count).timestamp; - minestimates(n,k).UE_mode = estimates_tmp(n,count).UE_mode; - minestimates(n,k).phy_measurements = estimates_tmp(n,count).phy_measurements(1); - minestimates(n,k).dlsch_fer = estimates_tmp(n,count).dlsch_fer; - minestimates(n,k).dlsch_errors = estimates_tmp(n,count).dlsch_errors; - minestimates(n,k).mimo_mode = estimates_tmp(n,count).mimo_mode; - minestimates(n,k).eNb_id = estimates_tmp(n,count).eNb_id; - - - end % if (is_eNb) - - %read GPS data and estimates every second - if ((mod(k,NO_ESTIMATES_DISK)==0) && ~any(feof_vec(fid))) - - - gps_data(n,l) = binread(fid(n),gps_data_struct,1,4,'l'); - end - %k=k+1; - end %NFiles - - - if ((mod(k,NO_ESTIMATES_DISK)==0) && ~any(feof_vec(fid))) - - % do MU-MIMO processing - [Ratepersec_4Qam_beamforming(sec),Ratepersec_16Qam_beamforming(sec),... - Ratepersec_64Qam_beamforming(sec)] = calc_rps_mu_mimo(estimates_tmp,mumimo_on); - %plot(Ratepersec_4Qam_MUMIMO(1:sec),'r-x'); -% [Ratepersec_4Qam_alamouti(sec),Ratepersec_16Qam_alamouti(sec),Ratepersec_64Qam_alamouti(sec)] = calc_rps_alamouti_2(estimates_tmp); -% [Ratepersec_4Qam_siso(sec),Ratepersec_16Qam_siso(sec),Ratepersec_64Qam_siso(sec)] = calc_rps_siso_2(estimates_tmp); - - l=l+1; - sec = sec+1 - count = 0; - end - count = count+1; - k=k+1; - -end %while - -for n=1:NFiles - fclose(fid(n)); -end - -H=[]; -H_fq=[]; - -if (is_eNb) - throughput.rateps_SISO_4Qam_eNB1_1Rx = Ratepersec_4Qam_SISO_1Rx; - throughput.rateps_SISO_16Qam_eNB1_1Rx = Ratepersec_16Qam_SISO_1Rx; - throughput.rateps_SISO_64Qam_eNB1_1Rx = Ratepersec_64Qam_SISO_1Rx; - throughput.rateps_SISO_4Qam_eNB1_2Rx = Ratepersec_4Qam_SISO_2Rx; - throughput.rateps_SISO_16Qam_eNB1_2Rx = Ratepersec_16Qam_SISO_2Rx; - throughput.rateps_SISO_64Qam_eNB1_2Rx = Ratepersec_64Qam_SISO_2Rx; - SNR.siso_1Rx = siso_SNR_1Rx; - SNR.siso_2Rx = siso_SNR_2Rx; -else - -% throughput.rateps_alamouti_4Qam = Ratepersec_4Qam_alamouti; -% throughput.rateps_siso_4Qam = Ratepersec_4Qam_siso; -% throughput.rateps_alamouti_16Qam = Ratepersec_16Qam_alamouti; -% throughput.rateps_siso_16Qam = Ratepersec_16Qam_siso; -% throughput.rateps_alamouti_64Qam = Ratepersec_64Qam_alamouti; -% throughput.rateps_siso_64Qam = Ratepersec_64Qam_siso; -% throughput.rateps_MUMIMO_4Qam_eNB1 = Ratepersec_4Qam_MUMIMO; -% throughput.rateps_MUMIMO_4Qam_eNB1_ue1 = Ratepersec_4Qam_MUMIMO_ue1; -% throughput.rateps_MUMIMO_4Qam_eNB1_ue2 = Ratepersec_4Qam_MUMIMO_ue2; - throughput.rateps_bmfr_4Qam = Ratepersec_4Qam_beamforming; - throughput.rateps_bmfr_16Qam = Ratepersec_16Qam_beamforming; - throughput.rateps_bmfr_64Qam = Ratepersec_64Qam_beamforming; - % throughput.rateps_MUMIMO_16Qam_eNB1_1stRx = Ratepersec_16Qam_MUMIMO_1stRx; - % throughput.rateps_MUMIMO_64Qam_eNB1_1stRx = Ratepersec_64Qam_MUMIMO_1stRx; - % throughput.rateps_MUMIMO_supportedQam_eNB1_1stRx = Ratepersec_supportedQam_MUMIMO_1stRx; - % - % throughput.rateps_MUMIMO_4Qam_eNB1_2ndRx = Ratepersec_4Qam_MUMIMO_2ndRx; - % throughput.rateps_MUMIMO_16Qam_eNB1_2ndRx = Ratepersec_16Qam_MUMIMO_2ndRx; - % throughput.rateps_MUMIMO_64Qam_eNB1_2ndRx = Ratepersec_64Qam_MUMIMO_2ndRx; - % throughput.rateps_MUMIMO_supportedQam_eNB1_2ndRx = Ratepersec_supportedQam_MUMIMO_2ndRx; - % - % throughput.rateps_MUMIMO_4Qam_eNB1_2Rx = Ratepersec_4Qam_MUMIMO_2Rx; - % throughput.rateps_MUMIMO_16Qam_eNB1_2Rx = Ratepersec_16Qam_MUMIMO_2Rx; - % throughput.rateps_MUMIMO_64Qam_eNB1_2Rx = Ratepersec_64Qam_MUMIMO_2Rx; - % throughput.rateps_MUMIMO_supportedQam_eNB1_2Rx = Ratepersec_supportedQam_MUMIMO_2Rx; -end -end - - -function eof = feof_vec(fid) -eof = false(size(fid)); -for i=1:length(fid) - eof(i) = feof(fid(i)); -end -end diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m deleted file mode 100644 index 91fbfa9978..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m +++ /dev/null @@ -1,36 +0,0 @@ -% file: plot_figures_top.m -% this file reads the data post processed measurement data and procudes all -% the figures requested by Mr. Scot. The comparison between different modes -% is done with the script plot_comparison_all_modes.m and -% mode1_mode2_comparison.m -clear all -close all - -%decimation = 1; -%NFrames_max = 100*60*10; -mm='cordes'; - -%% results from raw channel estimates (ideal throughput) -%pathname = '/emos/EMOS/Mode2/20100520_mode2_parcours1_part4_part5/'; -pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2/results'; -%Concatenate_results_UE_quick -plot_results_cat - -%% results from quick post processing (modem throughput) -pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode1/results'; -plot_results_ue_quick - -%% -pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2/results'; -plot_results_ue_quick - -%% -pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2_update/results'; -plot_results_ue_quick - -%% -pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode6/results'; -plot_results_ue_quick -plot_results_eNB_quick - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m deleted file mode 100755 index 8d582c325e..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m +++ /dev/null @@ -1,474 +0,0 @@ -%plot_results_cat -load(fullfile(pathname,'results_cat_UE.mat')); - -in = 0; - -%plotwrtdistanceCalc; -[dist, dist_travelled] = calc_dist([gps_data_cat.latitude],[gps_data_cat.longitude],mm); -max_dist = ceil(max(dist)); -speed = [gps_data_cat.speed]; -time = [gps_data_cat.timestamp]; -timebase = 1:length(time); -timebase2 = time-time(find(~isnan(time),1)); -timebase_cuts = find(diff(timebase2)>60*60*8); - - -%% set throughput to 0 when UE was not synched -UE_connected = all(reshape(UE_mode_cat,100,[])==3,1); -UE_synched = all(reshape(UE_mode_cat,100,[])>0,1); -vars = whos('rateps*'); -nn = {vars.name}; -for n = 1:length(nn) - eval([nn{n} '(~UE_synched) = 0;']); -end -K_fac_cat = reshape(K_fac_cat,4,[]); -K_fac_cat(:,~UE_synched) = nan; - -% %% get real throughput from modem -% dlsch_error = double([1 diff([minestimates_cat.dlsch_errors])]); -% rateps_modem = (1-dlsch_error) .* double([minestimates_cat.tbs]); -% rateps_modem([minestimates.UE_mode]~=3) = 0; -% rateps_modem = sum(reshape(rateps_modem,100,[]),1)*6; -% -% dlsch_mcs = [minestimates_cat.mcs]; -% mod_order = zeros(size(dlsch_mcs)); -% mod_order(dlsch_mcs<10) = 2; -% mod_order(dlsch_mcs>=10 & dlsch_mcs<17) = 4; -% mod_order(dlsch_mcs>=17) = 6; -% rateps_uncoded_modem = 2400*mod_order; -% rateps_uncoded_modem([minestimates.UE_mode]~=3) = 0; -% rateps_uncoded_modem = sum(reshape(rateps_uncoded_modem,100,[]),1)*6; - -%% plot K-factor -in=in+1; -h_fig = figure(in); -hold off -plot_gps_coordinates(mm, [gps_data_cat.longitude], [gps_data_cat.latitude], 10*log10(mean(K_fac_cat,1))); -title('K_factor [dB]') -saveas(h_fig,fullfile(pathname,'K_factor_gps.jpg'),'jpg'); - -in=in+1; -h_fig = figure(in); -hold off -plot(10*log10(mean(K_fac_cat,1))); -xlabel('Time [sec]') -ylabel('K_factor [dB]') -plot(timebase_cuts,0,'k^','Markersize',10,'Linewidth',2) -saveas(h_fig,fullfile(pathname,'K_factor_time.eps'),'epsc2'); - - -%% plot coded throughput as CDFs -in = in+1; -h_fig = figure(in); -hold off -colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'}; -legend_str = {}; -ni=1; -for n = 1:length(nn) - si = strfind(nn{n},'supportedQam'); - if si - eval(['[f,x] = ecdf(scale_ideal_tp(' nn{n} '));']); - plot(x,f,colors{ni},'Linewidth',2); - hold on - legend_tmp = nn{n}; - legend_tmp(si:si+10) = []; - legend_str{ni} = legend_tmp; - ni=ni+1; - end -end -% [f,x] = ecdf(rateps_modem); -% plot(x,f,colors{ni},'Linewidth',2); -% legend_str{ni} = 'rateps_modem'; -% ni=ni+1; - -legend(legend_str,'Interpreter','none','Location','SouthOutside'); -title('DL Throughput CDF') -xlabel('Throughput [bps]') -ylabel('P(x=10 & ulsch_mcs<17) = 4; -% mod_order(ulsch_mcs>=17) = 6; -% rateps_uncoded_modem = 2700*mod_order; -% rateps_uncoded_modem([minestimates.UE_mode]~=3) = 0; -% rateps_uncoded_modem = sum(reshape(rateps_uncoded_modem,100,[]),1)*3; - - - -%% plot coded throughput as CDFs -in = in+1; -h_fig = figure(in); -colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'}; -legend_str = {}; -ni=1; -for n = 1:length(nn) - hold on - si = strfind(nn{n},'64Qam'); - if si - eval(['[f,x] = ecdf(' nn{n} '_cat);']); - plot(x,f,colors{ni},'Linewidth',2); - legend_tmp = nn{n}; - legend_tmp(si:si+10) = []; - legend_str{ni} = legend_tmp; - ni=ni+1; - end -end -% [f,x] = ecdf(rateps_modem); -% plot(x,f,colors{ni},'Linewidth',2); -% legend_str{ni} = 'rateps_modem'; -% ni=ni+1; - - -legend(legend_str,'Interpreter','none','Location','SouthOutside'); -xlabel('Throughput [bps]') -ylabel('P(x 0) - if (imag(q_in) > 0) - if (abs(real(q_in)) > abs(imag(q_in))) - q_out = 1; - else - q_out = 1i; - end - else - if (abs(real(q_in)) > abs(imag(q_in))) - q_out = 1; - else - q_out = -1i; - end - end -else - - if (imag(q_in) > 0) - if (abs(real(q_in)) > abs(imag(q_in))) - q_out = -1; - else - q_out = 1i; - end - else - if (abs(real(q_in)) > abs(imag(q_in))) - q_out = -1; - else - q_out = -1i; - end - end -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m deleted file mode 100644 index 61558a0089..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m +++ /dev/null @@ -1,37 +0,0 @@ -% file: test_figures -% this file reads the data from exaclty one measurement and procudes all -% the figures requested by Mr. Scot. -clear all -close all - -decimation = 1; -NFrames_max = 100*60*10; -pathname = '/extras/kaltenbe/CNES/emos_raw_data/20100512_mode2_parcours2_part2/'; - -%% -filename_UE = 'data_term3_idx04_20100512T103328.EMOS'; -is_eNb = 0; -version = 1; - -[H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(fullfile(pathname,filename_UE),NFrames_max,decimation,is_eNb,version); - -save(regexprep((fullfile(pathname,filename_UE,'results_UE.mat')), '.EMOS/results_UE.mat', '_results_UE.mat'), 'gps_data', 'NFrames', 'SNR', 'throughput', 'minestimates', 'K_fac'); - -%% -Concatenate_results_UE_quick - -plot_results_cat - -%% -filename_eNB = 'data_term1_idx04_20100512T103520.EMOS'; -is_eNb = 1; -version = 0; - -[H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(fullfile(pathname,filename_eNB),NFrames_max,decimation,is_eNb,version); - -save(regexprep((fullfile(pathname,filename_eNB,'results_eNB.mat')), '.EMOS/results_eNB.mat', '_results_eNB.mat'), 'gps_data', 'NFrames', 'SNR', 'throughput', 'minestimates', 'K_fac'); - -%% -Concatenate_results_eNB_quick - -plot_results_eNb_cat \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m b/openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m deleted file mode 100644 index 91ab39bdac..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m +++ /dev/null @@ -1,62 +0,0 @@ -pathname = '/homes/latif/devel/openair_lte/openair1/EMOS/LTE/POST_PROCESSING/Mode5'; -d = dir([pathname '/*.mat']); -filenames = {d.name}; -SNR_4_4_cat = []; -chcap_mode5_4_4_cat = []; -chcap_mode5_4_4_user1_cat = []; -chcap_mode5_4_4_user2_cat = []; - -SNR_4_16_cat = []; -chcap_mode5_4_16_cat = []; -chcap_mode5_4_16_user1_cat = []; -chcap_mode5_4_16_user2_cat = []; - -SNR_16_4_cat = []; -chcap_mode5_16_4_cat = []; -chcap_mode5_16_4_user1_cat = []; -chcap_mode5_16_4_user2_cat = []; - -SNR_16_16_cat = []; -chcap_mode5_16_16_cat = []; -chcap_mode5_16_16_user1_cat = []; -chcap_mode5_16_16_user2_cat = []; - -for i = 1:length(filenames) - - load(filenames{i}) - - if (M1 == 4 && M2 == 4) - - SNR_4_4_cat =[SNR_4_4_cat SNR]; - chcap_mode5_4_4_cat = [chcap_mode5_4_4_cat chcap_lte_sch]; - chcap_mode5_4_4_user1_cat = [chcap_mode5_4_4_user1_cat chcap_lte_sch1]; - chcap_mode5_4_4_user2_cat = [chcap_mode5_4_4_user2_cat chcap_lte_sch2]; - - - else if (M1 == 4 && M2 == 16) - SNR_4_16_cat =[SNR_4_16_cat SNR]; - chcap_mode5_4_16_cat = [chcap_mode5_4_16_cat chcap_lte_sch]; - chcap_mode5_4_16_user1_cat = [chcap_mode5_4_16_user1_cat chcap_lte_sch1]; - chcap_mode5_4_16_user2_cat = [chcap_mode5_4_16_user2_cat chcap_lte_sch2]; - - else if (M1 == 16 && M2 == 4) - SNR_16_4_cat =[SNR_16_4_cat SNR]; - chcap_mode5_16_4_cat = [chcap_mode5_16_4_cat chcap_lte_sch]; - chcap_mode5_16_4_user1_cat = [chcap_mode5_16_4_user1_cat chcap_lte_sch1]; - chcap_mode5_16_4_user2_cat = [chcap_mode5_16_4_user2_cat chcap_lte_sch2]; - else - SNR_16_16_cat =[SNR_16_4_cat SNR]; - chcap_mode5_16_16_cat = [chcap_mode5_16_16_cat chcap_lte_sch]; - chcap_mode5_16_16_user1_cat = [chcap_mode5_16_16_user1_cat chcap_lte_sch1]; - chcap_mode5_16_16_user2_cat = [chcap_mode5_16_16_user2_cat chcap_lte_sch2]; - end - end - end - -end - -save('table_LTE_MODE_4_5.mat', 'SNR_4_4_cat', 'chcap_mode5_4_4_cat', 'chcap_mode5_4_4_user1_cat', 'chcap_mode5_4_4_user2_cat', ... - 'SNR_4_16_cat', 'chcap_mode5_4_16_cat', 'chcap_mode5_4_16_user1_cat', 'chcap_mode5_4_16_user2_cat', ... - 'SNR_16_4_cat', 'chcap_mode5_16_4_cat', 'chcap_mode5_16_4_user1_cat', 'chcap_mode5_16_4_user2_cat', ... - 'SNR_16_16_cat', 'chcap_mode5_16_16_cat', 'chcap_mode5_16_16_user1_cat', 'chcap_mode5_16_16_user2_cat') - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/README.txt b/openair1/EMOS/LTE/POST_PROCESSING/README.txt deleted file mode 100644 index be59c8f7fa..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/README.txt +++ /dev/null @@ -1,42 +0,0 @@ -This folder contains all the matlab code for the post processing - -There are two levels of post processing - 1) Integrity checks that visualize some of the recorded data - 2) Capacity evaluations of the channel measurements - -ad 1) The files for the integrity check are located in the POST_PROCESSING directory. -The top level files are: - - start_post_processing_quick.m - This is the top level script that invokes all of the other files. START HERE! - - post_processing_eNb_quick.m - This script processes the eNB measurements - - post_processing_UE_quick.m - This script processes the UE measurements - - post_processing_UE_nomadic_quick.m - This script processes the nomadic measurements - - plot_results_UE_quick.m - This script plots the results after a post_processing_UE_quick.m - - plot_all_ue.m - This script collects results from severals directories and plots them - - plot_results_UE_quick_common.m - Common to the two above - - plot_results_eNb_quick.m - This script plots the results after a post_processing_eNB_quick.m - - plot_results_I0_quick.m - This script plots only the IO results after a post_processing_UE_quick.m - - eval_nomadic_points.m - This script produces a table after from the nomadic measuremetns - - -ad 2) The files for the capacity evaluations are loacted in the POST_PROCESSING/CapCom directory. -The top level files are - - integrity_check_1.m (start_capcom.m) - This is the top level script that invokes all of the other files. START HERE! - This script produces a .mat file for every .EMOS file in the same directory. - - integrity_check_11.m (start_capcom_multi_dir.m) - This is the same as before but going over multiple directories. -- Concatenate_results_UE_quick.m - This script collects all the .mat files in a specific directory. Call this before plotting the results. - - plot_results_cat.m - Plots the results after the above script - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m deleted file mode 100644 index aee17248f3..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m +++ /dev/null @@ -1,7 +0,0 @@ -% RICIAN -% -% Files -% ricepdf - Rice/Rician probability density function (pdf). -% ricernd - Random samples from the Rice/Rician probability distribution. -% ricestat - Mean and variance of Rice/Rician probability distribution. -% ricedemo - Rice/Rician Distribution Demo diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m deleted file mode 100644 index 885ec63916..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m +++ /dev/null @@ -1,56 +0,0 @@ -function [K, V2, s2] = estimate_rice(G) -% Ricean factor estimation -% [K, V2, s2] = estimate_rice(h) estimates the Ricean K-Factor from the set of -% impulse responses h using Moment Method estimation [1]. -% -% [1] Greenstein, L., Michelson, D., and Erceg, V., -% "Moment-method estimation of the Ricean K-factor", -% #IEEE_J_COML#, 1999, 3, 175-176 -% -% Parameters: -% G - size [NTau x Nsamp] Sequence of impulse responses (absolute square) -% -% Author: Florian Kaltenberger -% Copyright: Eurecom Sophia Antipolis -% -% Version History -% Date Version Comment -% 20080620 0.1 Created -% 20080730 0.2 We caclculate the rice factor for every delay bin - -[NTau, Nsamp] = size(G); - -if ~isreal(G) - error('Input G must be real'); -end - -Ga = mean(G,2); - -Gv = zeros(NTau,1); -V2 = zeros(NTau,1); -s2 = zeros(NTau,1); -K = zeros(NTau,1); - -for t=1:NTau - Gv(t) = sqrt(mean((G(t,:)-Ga(t)).^2)); - - if Gv(t)>Ga(t) - V2(t)=0; - else - V2(t) = sqrt(Ga(t)^2 - Gv(t)^2); - end - - s2(t) = Ga(t) - V2(t); - - K(t) = V2(t)/s2(t); -end - -% %% plot -% figure(69) -% cdfplot(G); -% hold on -% x = linspace(0,2.5,100); -% p = ricepdf(x,Ga,sqrt(s2)); -% plot(x,cumsum(p)/sum(p),'r') -% legend('empirical cdf','reconstructed cdf') -% hold off diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m deleted file mode 100644 index e1f944e5de..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m +++ /dev/null @@ -1,37 +0,0 @@ -function [lambda,Err]=fitcurve(x,y,funct,init_lam) -% Created by: Mauro Fiacco -% Date: 25/10/97 -% -% Function: Find the best coefficients for curve best fitting. -% -% Input: x: abscissa -% y: values -% funct: name of the function -% init_lam: initial values of lambda (opt.) -% tol: tollerance (opt.) -% - -%------------------------------------------------------------------- - -global Data Funct; -global Plothandle Err; -%------------------------------------------------------------------- -if (nargin<4 | isempty(init_lam)), init_lam = [1;0]; tol=1; -elseif nargin<5; tol=1; -end; - -Funct=funct; -Data=[x,y]; - -% axis auto; -% plot(x,y,'ro','EraseMode','xor'); -% title('Input data') -% hold on -% -% Plothandle = plot(x,y,'b--','LineWidth',2,'EraseMode','xor'); - -trace = 0; -lambda = fminsearch('fitfunct',init_lam,[trace tol]); - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m deleted file mode 100644 index 30115d4cad..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m +++ /dev/null @@ -1,28 +0,0 @@ -function err = fitfunct(lambda) -%FITFUN Used by FITDEMO. -% FITFUN(lambda) returns the error between the data and the -% values computed by the current function of lambda. -% FITFUN assumes a function of the form -% -% y = c(1)*exp(-lambda(1)*t) + ... + c(n)*exp(-lambda(n)*t) -% -% with n linear parameters and n nonlinear parameters. - -% Copyright (c) 1984-97 by The MathWorks, Inc. -% $Revision: 5.2 $ $Date: 1997/04/08 05:33:07 $ - -%------------------------------------------------------------------- - -global Data Plothandle Funct Err; - -%------------------------------------------------------------------- -x = Data(:,1); -y = Data(:,2); - -z=feval(Funct,x,lambda(1), lambda(2)); - -%set(Plothandle,'ydata',z) -%drawnow - -err = norm(z-y); -Err=err; diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m deleted file mode 100644 index 29233e80e3..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m +++ /dev/null @@ -1,11 +0,0 @@ -function [m1r, m2r, stdr] = mrice(sig, c) - -q = c.^2/4./sig^2; - -m1r = sqrt(pi*sig^2/2).*exp(-q).*(besseli(0, q).*(1+2*q)+besseli(1,q)*2.*q); - -m2r = 2*sig.^2+c.^2; - -stdr = sqrt(m2r-m1r.^2); - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m deleted file mode 100644 index 9277d1fb9f..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m +++ /dev/null @@ -1,146 +0,0 @@ -%% Rice/Rician Distribution Demo -% Demonstrate ricernd, ricepdf, and ricestat, in the context of simulating -% Rician distributed noise for Magnetic Resonance Imaging magnitude data. - -%% Example: Rician noise vs (additive) Gaussian noise -% "Rician noise" depends on the data itself, it is not additive, so to -% "add" Rician noise to data, what we really mean is make the data -% Rician distributed. -clear, close('all'), clc -data = load('mri'); % MRI dataset (magnitude image) distributed with MATLAB -im = double(data.D(:,:,1,16)); % (particular slice through the brain) -s=5; % noise level (NB actual Rician stdev depends on signal, see ricestat) -im_g = im + 5 * randn(size(im)); % *Add* Gaussian noise -im_r = ricernd(im, s); % "Add" Rician noise (make Rician distributed) -% Note that the Gaussian noise has made some data go negative. -min_o = round(min(im(:))); max_o = round(max(im(:))); -min_g = round(min(im_g(:))); max_g = round(max(im_g(:))); -min_r = round(min(im_r(:))); max_r = round(max(im_r(:))); -% Show each image with the same color scaling limits -clim = [min_g max(max_g, max_r)]; -figure('Position', [30 500 800 300]); colormap(data.map); -subplot(1,3,1); imagesc(im, clim); axis image; -title('Original'); -xlabel(['Range: (' num2str(min_o) ', ' num2str(max_o) ')']) -subplot(1,3,2); imagesc(im_g, clim); axis image; -title('Gaussian noise'); -xlabel(['Range: (' num2str(min_g) ', ' num2str(max_g) ')']) -subplot(1,3,3); imagesc(im_r, clim); axis image; -title('Rician noise') -xlabel(['Range: (' num2str(min_r) ', ' num2str(max_r) ')']) - -%% The Rician PDF -x = linspace(0, 8, 100); -figure; -subplot(3, 1, 1) -plot(x, ricepdf(x, 0, 1), x, ricepdf(x, 1, 1),... - x, ricepdf(x, 2, 1), x, ricepdf(x, 4, 1)) -title('Rice PDF with s = 1') -legend('v=0', 'v=1', 'v=2', 'v=4') -subplot(3,1,2) -plot(x, ricepdf(x, 1, 0.25), x, ricepdf(x, 1, 0.50),... - x, ricepdf(x, 1, 1.00), x, ricepdf(x, 1, 2.00)) -title('Rice PDF with v = 1') -legend('s=0.25', 's=0.50', 's=1.00', 's=2.00') -subplot(3,1,3) -plot(x, ricepdf(x, 0.5, 0.25), x, ricepdf(x, 1, 0.50),... - x, ricepdf(x, 2.0, 1.00), x, ricepdf(x, 4, 2.00)) -title('Rice PDF with v/s = 2') -legend('s=0.25', 's=0.50', 's=1.00', 's=2.00') - -%% Approximations to the Rician PDF -% At high SNR (e.g. v/s > 3), Rician data is approximately Gaussian, though -% note that v is not the mean of the Rician distribution, nor of the -% Gaussian approximation (though for very high SNR it tends towards it). -v = 1.75; s = 0.5; x = linspace(0, 4, 100); -mu1 = v; -gpdf1 = (2*pi*s^2)^(-0.5) * exp(-0.5*(x-mu1).^2/s^2); -mu2 = ricestat(v, s); % (mu2 is approximately sqrt(v^2 + s^2)) -gpdf2 = (2*pi*s^2)^(-0.5) * exp(-0.5*(x-mu2).^2/s^2); -figure; plot(x, ricepdf(x, v, s), x, gpdf1, x, gpdf2); -title('High SNR'); -legend('Rician', 'Gaussian, naive mean', 'Gaussian, corrected mean') -%% -% At very low SNR, Rician data is approximately Rayleigh distributed -% (with no signal, the distributions are exactly equivalent) -v = 0.25; s = 0.5; x = linspace(0, 3, 100); -raypdf = (x / s^2) .* exp(-x.^2 / (2*s^2)); -figure; plot(x, ricepdf(x, v, s), x, raypdf); -title('Low SNR'); legend('Rician', 'Rayleigh') -%% -% At low-medium SNR, neither Gaussian nor Rayleigh is a great approximation -v = 0.75; s = 0.5; x = linspace(-1, 3, 100); -mu = ricestat(v, s); -gpdf = (2*pi*s^2)^(-0.5) * exp(-0.5*(x-mu).^2/s^2); -raypdf = (x / s^2) .* exp(-x.^2 / (2*s^2)); raypdf(x <= 0) = 0; -figure; plot(x, ricepdf(x, v, s), x, gpdf, x, raypdf); -title('Medium SNR'); legend('Rician', 'Gaussian', 'Rayleigh') - -%% A pitfal: Adding approximate Rician noise -% Since the Rician distribution with zero signal is equivalent to the -% Rayleigh, and with high SNR is approximated by a Gaussian, it is -% tempting to add Rayleigh or Gaussian noise (depending on SNR) to existing -% data, to simulate Rician distributed data (aka "adding Rician noise"). -v = 75; s = 50; % medium SNR => Add Rayleigh noise -% Generate Rayleigh samples -N = 10000; -gsamp = s * randn(2, N); -rsamp = sqrt(sum(gsamp .^ 2)); - -%% -% Compare data with added Rayleigh samples to expected Rician distribution -r = v + rsamp; % Add Rayleigh noise to (constant) signal -c = linspace(0, 250, 20); -w = c(2); % histogram bin-width -h = histc(r, c); -figure; hold on; bar(c, h, 'histc'); -xl = xlim; x = linspace(xl(1), xl(2), 100); -yl = ylim; % (for second plot) -plot(x, N*w*ricepdf(x, v, s), 'r'); -title('Histogram of data, vs desired Rician PDF') -legend('Data with added Rayleigh noise', 'Rician distribution') -%% -% Compare Rician samples to expected Rician distribution -r = ricernd(v*ones(1, N), s); -c = linspace(0, 250, 20); -w = c(2); % histogram bin-width -h = histc(r, c); -figure; hold on; bar(c, h, 'histc'); -xl = xlim; x = linspace(xl(1), xl(2), 100); -ylim(yl); -plot(x, N*w*ricepdf(x, v, s), 'r'); -title('Histogram of data, vs desired Rician PDF') -legend('Rician sampled data', 'Rician distribution') -%% -% We see that the additive Rayleigh result is very poor (with medium SNR). -% -% With high noise levels the appearance of results can differ dramatically: -s = 0.15 * max_o; -% Approximate additive Rayleigh/Gaussian noise: -im_r = im; -for i=1:numel(im_r) - if im_r(i) <= 3*s - im_r(i) = im_r(i) + s*norm(randn(2,1)); % Add Rayleigh noise - else - im_r(i) = im_r(i) + s*randn; % Add Gaussian noise - end -end -% "Add" Rician noise (make Rician distributed): -im_R = ricernd(im, s); -% Show each image with the same color scaling limits -min_r = round(min(im_r(:))); max_r = round(max(im_r(:))); -min_R = round(min(im_R(:))); max_R = round(max(im_R(:))); -clim = [min_r max(max_r, max_R)]; -figure('Position', [30 500 800 300]); colormap(data.map); -subplot(1,3,1); imagesc(im, clim); axis image; -title('Original'); -xlabel(['Range: (' num2str(min_o) ', ' num2str(max_o) ')']) -subplot(1,3,2); imagesc(im_r, clim); axis image; -title('Rayleigh/Gaussian noise') -xlabel(['Range: (' num2str(min_r) ', ' num2str(max_r) ')']) -subplot(1,3,3); imagesc(im_R, clim); axis image; -title('Rician data'); -xlabel(['Range: (' num2str(min_R) ', ' num2str(max_R) ')']) - -%% -% Copyright 2007 Ged Ridgway (Ged at cantab dot net) diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m deleted file mode 100644 index c348018a0a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m +++ /dev/null @@ -1,50 +0,0 @@ -function y = ricepdf(x, v, s) -%RICEPDF Rice/Rician probability density function (pdf). -% y = ricepdf(x, v, s) returns the pdf of the Rice (aka Rician) -% distribution with parameters v and s, evaluated at the values in x. -% -% R ~ Rice(v, s) if R = sqrt(X^2 + Y^2), where X ~ N(v*cos(a), s^2) and -% Y ~ N(v*sin(a), s^2) are independent normal distributions (any real a). -% Note that v and s are *not* the mean and standard deviation of R -- use -% ricestat to get these statistics for specified v and s. -% -% The size of Y is the common size of the input arguments. A scalar -% input functions as a constant matrix of the same size as the other -% inputs. -% -% Reference: http://en.wikipedia.org/wiki/Rice_distribution (!) -% -% Example: -% -% x = linspace(0, 8, 100); -% figure; subplot(2, 1, 1) -% plot(x, ricepdf(x, 0, 1), x, ricepdf(x, 1, 1),... -% x, ricepdf(x, 2, 1), x, ricepdf(x, 4, 1)) -% title('Rice PDF with s=1') -% legend('v=0', 'v=1', 'v=2', 'v=4') -% subplot(2,1,2) -% plot(x, ricepdf(x, 1, 0.25), x, ricepdf(x, 1, 0.50),... -% x, ricepdf(x, 1, 1.00), x, ricepdf(x, 1, 2.00)) -% title('Rice PDF with v=1') -% legend('s=0.25', 's=0.50', 's=1.00', 's=2.00') -% -% See also RICERND, RICESTAT. - -% Missing (?) 'See also's RICECDF, RICEFIT, RICEINV, RICELIKE - -% Inspired by normpdf from the MATLAB statistics toolbox -% Copyright 2007 Ged Ridgway (Ged at cantab dot net) - -s2 = s.^2; % (neater below) - -try - y = (x ./ s2) .*... - exp(-0.5 * (x.^2 + v.^2) ./ s2) .*... - besseli(0, x .* v ./ s2); - % besseli(0, ...) is the zeroth order modified Bessel function of - % the first kind. (see help bessel) - y(x <= 0) = 0; -catch - error('ricepdf:InputSizeMismatch',... - 'Non-scalar arguments must match in size.'); -end diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m deleted file mode 100644 index aad57c6a5c..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m +++ /dev/null @@ -1,51 +0,0 @@ -function r = ricernd(v, s) -%RICERND Random samples from the Rice/Rician probability distribution. -% r = ricepdf(v, s) returns random sample(s) from the Rice (aka Rician) -% distribution with parameters v and s. -% (either v or s may be arrays, if both are, they must match in size) -% -% R ~ Rice(v, s) if R = sqrt(X^2 + Y^2), where X ~ N(v*cos(a), s^2) and -% Y ~ N(v*sin(a), s^2) are independent normal distributions (any real a). -% Note that v and s are *not* the mean and standard deviation of R! -% -% The size of Y is the common size of the input arguments. A scalar -% input functions as a constant matrix of the same size as the other -% inputs. -% -% Note, to add Rician noise to data, with given s and data-dependent v: -% new = ricernd(old, s); -% -% Reference: http://en.wikipedia.org/wiki/Rice_distribution (!) -% -% Example: -% -% % Compare histogram of random samples with theoretical PDF: -% v = 4; s = 3; N = 1000; -% r = ricernd(v*ones(1, N), s); -% c = linspace(0, ceil(max(r)), 20); -% w = c(2); % histogram bin-width -% h = histc(r, c); bar(c, h, 'histc'); hold on -% xl = xlim; x = linspace(xl(1), xl(2), 100); -% plot(x, N*w*ricepdf(x, v, s), 'r'); -% -% See also RICEPDF, RICESTAT. - -% Missing (?) 'See also's RICECDF, RICEFIT, RICEINV, RICELIKE - -% Inspired by normpdf from the MATLAB statistics toolbox -% Copyright 2007 Ged Ridgway (Ged at cantab dot net) - -if isscalar(v) - dim = size(s); -elseif isscalar(s) - dim = size(v); -elseif all(isequal(size(v), size(s))) - % (both non-scalar, matching) - dim = size(v); % == size(s) -else - error('ricernd:InputSizeMismatch','Sizes of s and v inconsistent.') -end - -x = s .* randn(dim) + v; -y = s .* randn(dim); -r = sqrt(x.^2 + y.^2); diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m deleted file mode 100644 index 5adddeec0d..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m +++ /dev/null @@ -1,42 +0,0 @@ -function [mu vr] = ricestat(v, s) -%RICESTAT Mean and variance of Rice/Rician probability distribution. -% [mu vr] = ricepdf(v, s) returns the mean and variance of the Rice -% distribution with parameters v and s. -% -% R ~ Rice(v, s) if R = sqrt(X^2 + Y^2), where X ~ N(v*cos(a), s^2) and -% Y ~ N(v*sin(a), s^2) are independent normal distributions (any real a). -% Note that v and s are *not* the mean and standard deviation of R! -% -% Reference: http://en.wikipedia.org/wiki/Rice_distribution (!) -% -% Example: -% -% % Compare expected and sample stats: -% v = 5; s = 4; N = 1000; -% r = ricernd(v*ones(1, N), s); -% mu = mean(r), vr = var(r) -% [Mu Vr] = ricestat(v, s) -% % Plot histogram and mark expected mean +/- 1 stdev: -% c = linspace(0, ceil(max(r)), 20); -% w = c(2); % histogram bin-width -% h = histc(r, c); bar(c, h, 'histc'); hold on -% pk = N*w*ricepdf(Mu, v, s); -% plot([Mu-sqrt(Vr) Mu+sqrt(Vr)], [pk pk]/2, 'ro-') -% plot(Mu, pk/2, 'rx') -% -% See also RICEPDF, RICERND. - -% Missing (?) 'See also's RICECDF, RICEFIT, RICEINV, RICELIKE - -% Inspired by normstat from the MATLAB statistics toolbox -% Copyright 2007 Ged Ridgway (Ged at cantab dot net) - -L = Lhalf(-0.5 * v^2 / s^2); -mu = s * sqrt(pi/2) * L; -vr = 2*s^2 + v^2 - (pi * s^2 / 2) * L^2; - - -function l = Lhalf(x) -% Laguerre polynomial L_{1/2}(x) -% see Moments section of http://en.wikipedia.org/wiki/Rice_distribution -l = exp(x/2) * ( (1-x) * besseli(0, -x/2) - x*besseli(1, -x/2) ); diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m deleted file mode 100644 index 8a626f7a10..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m +++ /dev/null @@ -1,55 +0,0 @@ -clear all -close all - -%% these lines are for syntetic data -v = 10; s = 0.5; N = 20000; - r = ricernd(v*ones(1, N), s); - -K = v.^2/(2*s.^2) -rc = v + s*(randn(1,N)+1j*randn(1,N)); -r1 = abs(rc).^2; -r2 = ricernd(v*ones(1, N), s).^2; -r = r1; - -%% Rice factor estimation -c = linspace(floor(min(sqrt(r(:)))), ceil(max(sqrt(r(:)))), 100); -w = c(2)-c(1); % histogram bin-width -h = hist(sqrt(r), c); -h = h./(sum(h)*w); - -% estimate Rice factor using method of moments -[Ke,v2,s2] = estimate_rice(r) -epdf = ricepdf(c, sqrt(v2), sqrt(s2./2)); -epdf(isnan(epdf))=0; -Err = norm(h-epdf); - -% use Claude's LS estimator -init_lam = [sqrt(v2), sqrt(s2./2)]; -[lambda,Err2]=fitcurve(c.',h.','ricepdf',init_lam); -Ke2 = lambda(1).^2/(2*lambda(2).^2) -epdf2 = ricepdf(c, lambda(1), lambda(2)); -epdf2(isnan(epdf))=0; - -%% plot results -figure(2) -hold off -bar(c, h); %, 'histc'); -%xlim([c(1),c(end)]) -hold on -plot(c, epdf, 'r','Linewidth',2); -plot(c, epdf2, 'g','Linewidth',2); -hold off -legend('Histogram','Method of Moments','LS estimation') -%legend('Histogram','Estimated pdf'); -xlabel('Channel Gain (normalized by its mean)'); -ylabel('Histogram') - - -%% -%mcdf = empirical_cdf(c,sqrt(r)); -%figure(3) -%hold off -%semilogy(c,mcdf) -%hold on -%semilogy(c,cumsum(epdf)/sum(epdf),'r') -%hold off diff --git a/openair1/EMOS/LTE/POST_PROCESSING/SISO.mat b/openair1/EMOS/LTE/POST_PROCESSING/SISO.mat deleted file mode 100644 index 8834ba78dfddb9b6d660e21f810a8d34e4271ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1642 zcmb7^X;9J$7{;--?C`2dQ55;RwOuNBP?i^xTDqxaIcb`L2e4L#x8jAzvQ(CtWmaOR zE7O)}c37I?nVGUEUI;2)X(~o}{9PsZuTDGragTTAnfJ@{;hEnv@9U2Da>E}0_MpuG zcf6M=IrJ>a1UPy&Fq%w_46_Cfxq0~D_hL-|$4F9OG${n2p0ftLmp48<5-`UC=H}Ms zSZhlQz{1Sj4EUb|Q*m|Igu!6HEGwR6n$@JfN=0imGkSFEI4d+=C*Hxz%QP|X_LW~ zG-p&+(u@QXiEYFnB5}3AKurtrozMNGgTPCMpwEG2KwzC@p{Sd0-rRViX?+96A%{S| zo3N*fe`koNmvQUrH7OE|a`V99c*>eWyNj8x#(ObB`IJ=knKP&+I?{9DJf=KOtJr-@ zxBnS__(%&|8)YS;?xg1Vbyx6G@QN?AIP8Kjs?Uz}u=K;dDj2ke-So9din(scn=G>n zqs}JuEYVSD;gl`9`TPVo2uC_yFyYyf51R9-xXNs4@f^5**oDFn|G78xg%vURR5~(V_z3ZKy+e_ZW}s zug;xj7bLMCa1=c$qA_jJ8U`fACGx=A6s05}3^CrTJ_U*C1u31~!@YF5Haar>16L{L zD&~n7+aU-Xdzo`kk~+7sR)b4-@a;_y(}7a%B1%nqzjn&ZD-`Az)o5RT~Yq`{z5tr3BlG#Rz4NF{m-1!;sriMK-UVJDcuH<_C;sbq4elUy(ZR z<};n(_RpZQM?eIm@CJ9-m-x=ck0i>SjUi68WU<+P@=a4Q>wO8Bzk9ebDo>Lp z+?ay{DQ`d)&Grkoiat4RSVX&|;Y@ka-9JH$6}Bh%)Noi`fp1Ufqbm(!nRRXVczaY> z8hCfMTL$Abl2d(QL$hD&$Wf9{UGv=ap4!?6!kJl;y=wieN$oK0tA>?QmKYZCvt+2f zmZGUH`D}Cc59FEoML4%!?|8>y7PN?Lz3Xn3tXfDgOp?gqE|^gH5`@dnT7*z;`Si55 zY~dzdGX!kpYQy%G!i4{^F!IWg{8d;SxO6V-;|q$;)Y)RoC$@jQ z$A)l{GX^O9j!l_T{Z9rEc4)#vzIMTx?ZNR6mV{qPvvN9nttw;TQOz7pEJe;-qWB@C zPpN~xRwK&M3{VYfJpskXb`A_JadWNLvZr^vGi+(W#nlE39w(bFh>XGYr=oDwtXH92 zhr$bl;VwHlQZ^jaS8i8EZ>uzE`EBf$f}!?eO}?zEj6#gtU;lEXN}&TeiNiW@y;e!# zUOKF~F69*=f+>Ng2upT?1PK*ts(zcZ2v$&_>8?!74b_0)Xko?kkr25ynVCuLmQB;% zO&+Dx1UAeu`_s5x)9U4jyw%5h`jIC+Z8Z*~{9Qr{n#XI7Viyv_s#EI=yDr_Qve#L& zQuaTTc6b;ucUf-Hn2~73?#u2HNtA94fycvlR7zqznJ$mHc*bml0Vj!G$?bLOGqMN0 zc+y+L8Z*v(g?h<(n^IJzL7Xh(RXwGr?lYX*h}8KZe^R7`$GO->S%SN=Ki%G4uE1oI z6CckjaM>w--m{ucjzOO3lUSI(xFvU`-)+nK_5;meL3@F*Q~^-4;e%zJ`Bq1xZ1O5W Ys{;ZCFNKN!#jCgCeYxz_?NmYh34O0ATL1t6 diff --git a/openair1/EMOS/LTE/POST_PROCESSING/SISO_scaling.mat b/openair1/EMOS/LTE/POST_PROCESSING/SISO_scaling.mat deleted file mode 100644 index b40bd6929deac467c5e304b6bc0cfc3431f8f5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2078 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 saved in modex.ind_common - -% 2) remove routes taken more than once -% --> saved in modex.ind_duplicate - -%% combine common and not duplicate -mode1.ind_cnd = mode1.ind_common & ~mode1.ind_duplicate; -mode2.ind_cnd = mode2.ind_common & ~mode2.ind_duplicate; -mode6.ind_cnd = mode6.ind_common & ~mode6.ind_duplicate; - -% %% optional: select a subset of the routes -% select1=zeros(1,length(mode1.ind_cnd)); -% select2=zeros(1,length(mode2.ind_cnd)); -% select6=zeros(1,length(mode6.ind_cnd)); -% mode1.gps_lon_cat(~mode1.ind_cnd) = nan; -% mode1.gps_lon_cat(~mode1.ind_cnd) = nan; -% mode2.gps_lat_cat(~mode2.ind_cnd) = nan; -% mode2.gps_lon_cat(~mode2.ind_cnd) = nan; -% mode6.gps_lon_cat(~mode6.ind_cnd) = nan; -% mode6.gps_lat_cat(~mode6.ind_cnd) = nan; -% figure(2) -% hold off -% [x1,y1] = plot_gps_coordinates(mm,mode1.gps_lon_cat,mode1.gps_lat_cat,[],[],'Mode1','blue','Marker','x','Line','none'); -% hold on -% [x2,y2] = plot_gps_coordinates('',mode2.gps_lon_cat,mode2.gps_lat_cat,[],[],'Mode2','blue','Marker','s','Line','none'); -% %[x2_update,y2_update] = plot_gps_coordinates('',mode2_update.gps_lon_cat,mode2_update.gps_lat_cat); -% [x6,y6] = plot_gps_coordinates('',mode6.gps_lon_cat,mode6.gps_lat_cat,[],[],'Mode6','blue','Marker','o','Line','none'); -% linkdata on -% set(findobj('XDataSource','x1'),'ZDataSource','select1'); -% set(findobj('XDataSource','x2'),'ZDataSource','select2'); -% set(findobj('XDataSource','x6'),'ZDataSource','select6'); -% % you might have to set ZDataSource manually -% -% keyboard -% -% load ambialet_select1 -% -% mode1.ind_cnd = select1~=0; -% mode2.ind_cnd = select2~=0; -% mode6.ind_cnd = select6~=0; - - -% 3) Identify checkpoints (GPS coordinates) common to all routes, where any -% of the routes has a discontinuity. Checkpoints of a single route can be -% identified by using the end of file information or the data that has been -% removed in points 1 and 2. Once a checkpoint is identified, the -% corresponding checkpoint in the other routes has to be identified. We -% take the point closest to it. At the end of this process we have split -% our data set in continuous chunks, which are common to all routes. -% -%% -mode1 = get_chunks(mode1); -mode2 = get_chunks(mode2); -mode6 = get_chunks(mode6); - - -%% visualize all chunks -%if 0 -h_fig = figure(1); -hold off -%colors = {'blue','green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'}; -cm = colormap(lines); -for i=1:length(mode1.start_points); - if (i==1) - plot_gps_coordinates(mm,mode1.gps_lon_cat(mode1.start_points(i):mode1.end_points(i)),... - mode1.gps_lat_cat(mode1.start_points(i):mode1.end_points(i)),... - [],[],sprintf('m1c%d',i),cm(mod(i-1,64)+1,:),'Marker','x','Line','none'); - else - plot_gps_coordinates('',mode1.gps_lon_cat(mode1.start_points(i):mode1.end_points(i)),... - mode1.gps_lat_cat(mode1.start_points(i):mode1.end_points(i)),... - [],[],sprintf('m1c%d',i),cm(mod(i-1,64)+1,:),'Marker','x','Line','none'); - end - fprintf(1,'saved %d\n',i); -end -saveas(h_fig,fullfile(pathname,'route_align','chunks_mode1.jpg')); - -h_fig = figure(2); -hold off -%colors = {'blue','green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'}; -cm = colormap(lines); -for i=1:length(mode2.start_points); - if (i==1) - plot_gps_coordinates(mm,mode2.gps_lon_cat(mode2.start_points(i):mode2.end_points(i)),... - mode2.gps_lat_cat(mode2.start_points(i):mode2.end_points(i)),... - [],[],sprintf('m2c%d',i),cm(mod(i-1,64)+1,:),'Marker','o','Line','none'); - else - plot_gps_coordinates('',mode2.gps_lon_cat(mode2.start_points(i):mode2.end_points(i)),... - mode2.gps_lat_cat(mode2.start_points(i):mode2.end_points(i)),... - [],[],sprintf('m2c%d',i),cm(mod(i-1,64)+1,:),'Marker','o','Line','none'); - end - fprintf(1,'saved %d\n',i); -end -saveas(h_fig,fullfile(pathname,'route_align','chunks_mode2.jpg')); - -h_fig = figure(3); -hold off -%colors = {'blue','green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'}; -cm = colormap(lines); -for i=1:length(mode6.start_points); - if (i==1) - plot_gps_coordinates(mm,mode6.gps_lon_cat(mode6.start_points(i):mode6.end_points(i)),... - mode6.gps_lat_cat(mode6.start_points(i):mode6.end_points(i)),... - [],[],sprintf('m6c%d',i),cm(mod(i-1,64)+1,:),'Marker','s','Line','none'); - else - plot_gps_coordinates('',mode6.gps_lon_cat(mode6.start_points(i):mode6.end_points(i)),... - mode6.gps_lat_cat(mode6.start_points(i):mode6.end_points(i)),... - [],[],sprintf('m6c%d',i),cm(mod(i-1,64)+1,:),'Marker','s','Line','none'); - end - fprintf(1,'saved %d\n',i); -end -saveas(h_fig,fullfile(pathname,'route_align','chunks_mode6.jpg')); - -%keyboard -%end - -% testpoints1 = [mode1.gps_lat_cat(mode1.ind_cnd).' mode2.gps_lon_cat(mode1.ind_cnd).']; -% testpoints2 = [mode2.gps_lat_cat(mode2.ind_cnd).' mode2.gps_lon_cat(mode2.ind_cnd).']; -% testpoints6 = [mode6.gps_lat_cat(mode6.ind_cnd).' mode2.gps_lon_cat(mode6.ind_cnd).']; - -%% -startpoint1 = [mode1.gps_lat_cat(mode1.start_points).' mode1.gps_lon_cat(mode1.start_points).']; -endpoint1 = [mode1.gps_lat_cat(mode1.end_points).' mode1.gps_lon_cat(mode1.end_points).']; -startpoint2 = [mode2.gps_lat_cat(mode2.start_points).' mode2.gps_lon_cat(mode2.start_points).']; -endpoint2 = [mode2.gps_lat_cat(mode2.end_points).' mode2.gps_lon_cat(mode2.end_points).']; -startpoint6 = [mode6.gps_lat_cat(mode6.start_points).' mode6.gps_lon_cat(mode6.start_points).']; -endpoint6 = [mode6.gps_lat_cat(mode6.end_points).' mode6.gps_lon_cat(mode6.end_points).']; - -% %% -% [mode2,startpoint2_1] = addpoints(mode2,startpoint1); -% [mode2,startpoint2_6] = addpoints(mode2,startpoint6); -% [mode1,startpoint1_2] = addpoints(mode1,startpoint2); -% [mode1,startpoint1_6] = addpoints(mode1,startpoint6); -% [mode6,startpoint6_1] = addpoints(mode6,startpoint1); -% [mode6,startpoint6_2] = addpoints(mode6,startpoint2); -% -% [mode2,endpoint2_1] = addpoints(mode2,endpoint1); -% [mode2,endpoint2_6] = addpoints(mode2,endpoint6); -% [mode1,endpoint1_2] = addpoints(mode1,endpoint2); -% [mode1,endpoint1_6] = addpoints(mode1,endpoint6); -% [mode6,endpoint6_1] = addpoints(mode6,endpoint1); -% [mode6,endpoint6_2] = addpoints(mode6,endpoint2); - -%% for each start and endpoint get the corresponing point in the other modes -startpoint2_1 = find_closest_points(mode2,startpoint1); -startpoint2_6 = find_closest_points(mode2,startpoint6); -startpoint1_2 = find_closest_points(mode1,startpoint2); -startpoint1_6 = find_closest_points(mode1,startpoint6); -startpoint6_1 = find_closest_points(mode6,startpoint1); -startpoint6_2 = find_closest_points(mode6,startpoint2); - -endpoint2_1 = find_closest_points(mode2,endpoint1); -endpoint2_6 = find_closest_points(mode2,endpoint6); -endpoint1_2 = find_closest_points(mode1,endpoint2); -endpoint1_6 = find_closest_points(mode1,endpoint6); -endpoint6_1 = find_closest_points(mode6,endpoint1); -endpoint6_2 = find_closest_points(mode6,endpoint2); - -%% -num_chunks = length(startpoint1)+length(startpoint1_2)+length(startpoint1_6); - -startpoint1_all = [mode1.start_points startpoint1_2 startpoint1_6]; -startpoint2_all = [startpoint2_1 mode2.start_points startpoint2_6]; -startpoint6_all = [startpoint6_1 startpoint6_2 mode6.start_points ]; - -endpoint1_all = [mode1.end_points endpoint1_2 endpoint1_6]; -endpoint2_all = [endpoint2_1 mode2.end_points endpoint2_6]; -endpoint6_all = [endpoint6_1 endpoint6_2 mode6.end_points ]; - -%% make a list of structure with fields -%gps_data = struct('lon',0,'lat',0,'time',0); -chunk_data = struct('start_gps', zeros(1,2), ... - 'end_gps', zeros(1,2), ... - 'start_idx', 0, ... - 'end_idx', 0, ... - 'indices', []); -chunk_list = struct('mode1',chunk_data,'mode2',chunk_data,'mode6',chunk_data); - -%% old version -for i=1:num_chunks - chunk_list(i).mode1.start_gps = [mode1.gps_lat_cat(startpoint1_all(i)) mode1.gps_lon_cat(startpoint1_all(i))]; - chunk_list(i).mode1.end_gps = [mode1.gps_lat_cat(endpoint1_all(i)) mode1.gps_lon_cat(endpoint1_all(i))]; - chunk_list(i).mode1.start_idx = startpoint1_all(i); - chunk_list(i).mode1.end_idx = endpoint1_all(i); - if chunk_list(i).mode1.start_idx>chunk_list(i).mode1.end_idx %time reverse - chunk_list(i).mode1.indices = chunk_list(i).mode1.start_idx:-1:chunk_list(i).mode1.end_idx; - else - chunk_list(i).mode1.indices = chunk_list(i).mode1.start_idx:chunk_list(i).mode1.end_idx; - end - % puncutre indices that are not in mode1.ind_cnd; - % chunk_list(i).mode1.indices = chunk_list(i).mode1.indices(mode1.ind_cnd(chunk_list(i).mode1.indices)); - if all(mode1.ind_cnd(chunk_list(i).mode1.indices)) % it is within a chunk - chunk_list(i).mode1.ok = 1; - else - chunk_list(i).mode1.ok = 0; - end - - chunk_list(i).mode2.start_gps = [mode2.gps_lat_cat(startpoint2_all(i)) mode2.gps_lon_cat(startpoint2_all(i))]; - chunk_list(i).mode2.end_gps = [mode2.gps_lat_cat(endpoint2_all(i)) mode2.gps_lon_cat(endpoint2_all(i))]; - chunk_list(i).mode2.start_idx = startpoint2_all(i); - chunk_list(i).mode2.end_idx = endpoint2_all(i); - if chunk_list(i).mode2.start_idx>chunk_list(i).mode2.end_idx %time reverse - chunk_list(i).mode2.indices = chunk_list(i).mode2.start_idx:-1:chunk_list(i).mode2.end_idx; - else - chunk_list(i).mode2.indices = chunk_list(i).mode2.start_idx:chunk_list(i).mode2.end_idx; - end - % puncutre indices that are not in mode2.ind_cnd; - % chunk_list(i).mode2.indices = chunk_list(i).mode2.indices(mode2.ind_cnd(chunk_list(i).mode2.indices)); - if all(mode2.ind_cnd(chunk_list(i).mode2.indices)) % it is within a chunk - chunk_list(i).mode2.ok = 1; - else - chunk_list(i).mode2.ok = 0; - end - - chunk_list(i).mode6.start_gps = [mode6.gps_lat_cat(startpoint6_all(i)) mode6.gps_lon_cat(startpoint6_all(i))]; - chunk_list(i).mode6.end_gps = [mode6.gps_lat_cat(endpoint6_all(i)) mode6.gps_lon_cat(endpoint6_all(i))]; - chunk_list(i).mode6.start_idx = startpoint6_all(i); - chunk_list(i).mode6.end_idx = endpoint6_all(i); - if chunk_list(i).mode6.start_idx>chunk_list(i).mode6.end_idx %time reverse - chunk_list(i).mode6.indices = chunk_list(i).mode6.start_idx:-1:chunk_list(i).mode6.end_idx; - else - chunk_list(i).mode6.indices = chunk_list(i).mode6.start_idx:chunk_list(i).mode6.end_idx; - end - % puncutre indices that are not in mode6.ind_cnd; - %chunk_list(i).mode6.indices = chunk_list(i).mode6.indices(mode6.ind_cnd(chunk_list(i).mode6.indices)); - if all(mode6.ind_cnd(chunk_list(i).mode6.indices)) % it is within a chunk - chunk_list(i).mode6.ok = 1; - else - chunk_list(i).mode6.ok = 0; - end - - -end - -% -% 4) For each chunk identify if it is time reversed by comparing it to the -% time indices of the starting and the end point -% -% 5) reorder the routes to give one continuous route. This has to be done -% manually for one route. The others can be automatically aligned to the -% reference route. - -%% compute some statistics of the chunks -% historgram of length -chunk_size1 = zeros(1,num_chunks); -chunk_size2 = zeros(1,num_chunks); -chunk_size6 = zeros(1,num_chunks); -chunk_idx = false(1,num_chunks); -for i=1:num_chunks - chunk_size1(i) = length(chunk_list(i).mode1.indices); - chunk_size2(i) = length(chunk_list(i).mode2.indices); - chunk_size6(i) = length(chunk_list(i).mode6.indices); -% if (max(chunk_size1(i),chunk_size2(i))/min(chunk_size1(i),chunk_size2(i))<10 && ... -% max(chunk_size1(i),chunk_size6(i))/min(chunk_size1(i),chunk_size6(i))<10 && ... -% max(chunk_size2(i),chunk_size6(i))/min(chunk_size2(i),chunk_size6(i))<10) -% chunk_idx(i) = true; -% end - if (chunk_list(i).mode1.ok && chunk_list(i).mode2.ok && chunk_list(i).mode6.ok && ... - length(chunk_list(i).mode1.indices)>=10 && length(chunk_list(i).mode2.indices)>=10 && length(chunk_list(i).mode6.indices)>=10) - chunk_idx(i)=true; - end -end - -h_fig = figure(4); -hold off -bar([chunk_size1(chunk_idx);chunk_size2(chunk_idx);chunk_size6(chunk_idx)].','stacked') -%set(gca,'yscale','log'); -legend('mode1','mode2','mode6') -xlabel('chunk') -ylabel('# samples') -saveas(h_fig,fullfile(pathname,'route_align','chunk_stats.eps'), 'epsc2'); - -%% visualize chunks ver 1 -h_fig=figure(10); -hold off -first_plot=1; -cm = colormap(lines); -for i=1:num_chunks - if chunk_idx(i) - h_fig=figure(10); - if (first_plot==1) - plot_gps_coordinates(mm,mode1.gps_lon_cat(chunk_list(i).mode1.indices),... - mode1.gps_lat_cat(chunk_list(i).mode1.indices),... - [],[],sprintf('chunk %d',i),cm(mod(i-1,64)+1,:),... - 'Marker','x','Line','none'); - first_plot = 0; - else - plot_gps_coordinates('',mode1.gps_lon_cat(chunk_list(i).mode1.indices),... - mode1.gps_lat_cat(chunk_list(i).mode1.indices),... - [],[],sprintf('chunk %d',i),cm(mod(i-1,64)+1,:),... - 'Marker','x','Line','none'); - end - plot_gps_coordinates('',mode2.gps_lon_cat(chunk_list(i).mode2.indices),... - mode2.gps_lat_cat(chunk_list(i).mode2.indices),... - [],[],'',cm(mod(i-1,64)+1,:),... - 'Marker','o','Line','none'); - plot_gps_coordinates('',mode6.gps_lon_cat(chunk_list(i).mode6.indices),... - mode6.gps_lat_cat(chunk_list(i).mode6.indices),... - [],[],'',cm(mod(i-1,64)+1,:),... - 'Marker','s','Line','none'); - %fprintf(1,'saved %d\n',i); - %drawnow; - plot_distance_travelled(mode1,chunk_list(i).mode1.indices,... - mode2,mode2_ideal,chunk_list(i).mode2.indices,... - mode6,chunk_list(i).mode6.indices,... - fullfile(pathname,'route_align'), i, mm); - end -end -h_fig=figure(10); -saveas(h_fig,fullfile(pathname,'route_align','chunks.jpg')); - - -% %% -% h_fig = figure(6); -% align_matrix = ones(length(mode1.start_points),length(mode1.ind_cnd)); -% for i=1:length(mode1.start_points) -% align_matrix(i,mode1.start_points(i):mode1.end_points(i)) = 0; -% end -% imagesc(align_matrix) -% xlabel('time [sec]') -% ylabel('chunk') \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom1.mat b/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom1.mat deleted file mode 100644 index 2fb84023b66e46e37dd7697737e4f864731d854d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i?A@$QE)CwO)N=GQOM7; zQV7W?Rd6g#S5PojFf_F?G`2D|P%ttuG*BQFFfe-h@-r|n90B5rId4u~z~~YeP-wVeP-#cXHRc@+qlQ| z?_EZq5kS!J-v&tj|NrKoAy9;eX~E6?Uz~naFtCd-f#n$t9szns|3+2A1H zdNJ^WaAf;RQOy%+Y1uc$9-hkMS9^ZovC(FiBULUvON+16wUw2po{zJh`m|)}=X;Ct z>mkl$cu=noWP#lRw2tAB!tdpEeC7#I*#mnak{1{S85met41P@)dn_B>A_|c%2>L&9 zU7IKyNPn^dP(@@H+gFg=W&$zTZM+QzJg$MwN0ui^ggL!?(XiJ@$?+tg$#W0?@NZ&* zs>;u9nMTdI;i})_WacTjsM|^02(|OL6OYCZ16Tds)B>{rq&vU8`qC~ cWd>Tpz;HkrNCU$M?hGzBMqnzsu!Z#y0CRm2tpET3 diff --git a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom2.mat b/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom2.mat deleted file mode 100644 index de4bd4af359fb131466250bd6af80a647cda2aeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 994 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i?A@$QE)CwO)N=GQOM7; zQV7W?Rd6g#S5PojFf_F?HnK9XP%ttuG*BQFFfe-h@-r|n90B5rId4u~z~~YeP-wVeP-#cXHRc@+qlQ| z?_EZq5kS!J-v&tj|NrKoAy9;eX~E6?Uz~naFtCd-f#n$t9smkl$cu=noWP#lRw2tAB!tdpEeC7#I*#mnalIK8f;b1oSkS`@@J#9jmqxweCKuM?~ zJ1elFWCcM6hUrt;8bGd_3B+L6@irLnxCS;KS)L>j=Jf7G!(JmL$CG>}&prIZzljN| zDnGkr8f726zkQc_^z>cY=WX8E9{a}*HTWMin9ehTZC7|3e@o)No=E~&y1{7n)OXAW zf`N(&xIS5eb#a17Pg9`55(b9tci2op4r~HqkOQr`8Vta}7rax(`?ikDrJFMkJ(c$S zmQc)Rqh}oLVxyU~E_U%(>pW46iKRg*g1Ly)M8E`OzoXGV1E~B6X z(0GMgQTL63w8LU%kQ))s;BsRGrlZaKSwlcBISO^jL0$(35ta-7PCGQ*JX7-Xu546Y zdHP~fbwQ>6OrNx69XpC#;;S?yZ&#F-nyaS&`*pMW)}^X5-qDDdGzXeQAS~Wo^8|(E z0Z>ee%5bi2*((Or#9*N2e`6g3!9JXh diff --git a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom3.mat b/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom3.mat deleted file mode 100644 index a56bac25668fe1e2c3d48dd93e0acefb17e317e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 990 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i?A@$QE)CwO)N=GQOM7; zQV7W?Rd6g#S5PojFf_F?F|sl>Q!p|xG*BQFFfe-h@-r|n90B5rId4u~z~~YeP-wVeP-#cXHRc@+qlQ| z?_EZq5kS!J-v&tj|NrKoAy9;eX~E6?Uz~naFtCd-f#n$t9szns|3+2A1H zdNJ^WaAf;RQOy%+Y1uc$9-hkMS9^ZovC(FiBULUvON+16wUw2po{zJh`m|)}=X;Ct z>mkl$cu=noWC7iBfl-iwfrZ83*L1PRmeDO&qidt8K=uGZLo6HAxj+{&98&nbypGR2 z0VD$i2lfJq|NoN}fZFFpvz-9xnFYjPxA8U@@VEvxA6cFx5$5#nMZ;brCC8I|CeJydi3;N+UITF*&h4H4%7?+|KNdy+g6~ffx*kcZ16TdD$dDq z8;3ST?~TjyvCEl2(G7H&1nc4ik)EbNgCz_MT76w9_{ zVoGUgQW5*q%SC5!e3IiioUdMm> zld20U^=JB|E$i4(= 40)) = 40; - - SNR_eNB2_1stRx((SNR_eNB2_1stRx <= -20)) = -20; - SNR_eNB2_1stRx((SNR_eNB2_1stRx >= 40)) = 40; - - SNR_eNB1_2ndRx((SNR_eNB1_2ndRx <= -20)) = -20; - SNR_eNB1_2ndRx((SNR_eNB1_2ndRx >= 40)) = 40; - - SNR_eNB2_2ndRx((SNR_eNB2_2ndRx <= -20)) = -20; - SNR_eNB2_2ndRx((SNR_eNB2_2ndRx >= 40)) = 40; - - - chcap_siso_1 = []; - chcap_siso_2 = []; - chcap_siso_3 = []; - - for i=1:1:7 - if (antenna_index1(i) == 0) - SNR_eNB1 = SNR_eNB1_1stRx(:,subband_indices(i):subband_indices(i+1)-1); - else - SNR_eNB1 = SNR_eNB1_2ndRx(:,subband_indices(i):subband_indices(i+1)-1); - end - - if (antenna_index2(i) == 0) - SNR_eNB2 = SNR_eNB2_1stRx(:,subband_indices(i):subband_indices(i+1)-1); - else - SNR_eNB2 = SNR_eNB2_2ndRx(:,subband_indices(i):subband_indices(i+1)-1); - end - if(sum(SNR_eNB2(:)) < sum(SNR_eNB1(:))) - chcap_siso_1 = [chcap_siso_1 (interp1(SNR,c_siso_4Qam,SNR_eNB1(:),'nearest','extrap'))']; - chcap_siso_2 = [chcap_siso_2 (interp1(SNR,c_siso_16Qam,SNR_eNB1(:),'nearest','extrap'))']; - chcap_siso_3 = [chcap_siso_3 (interp1(SNR,c_siso_64Qam,SNR_eNB1(:),'nearest','extrap'))']; - - else - chcap_siso_1 = [chcap_siso_1 (interp1(SNR,c_siso_4Qam,SNR_eNB2(:),'nearest','extrap'))']; - chcap_siso_2 = [chcap_siso_2 (interp1(SNR,c_siso_16Qam,SNR_eNB2(:),'nearest','extrap'))']; - chcap_siso_3 = [chcap_siso_3 (interp1(SNR,c_siso_64Qam,SNR_eNB2(:),'nearest','extrap'))']; - - end - end - - chcap_siso(1,:,est) = chcap_siso_1; - chcap_siso_16(1,:,est) = chcap_siso_2; - chcap_siso_64(1,:,est) = chcap_siso_3; -end \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m deleted file mode 100644 index 575c80cc4f..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m +++ /dev/null @@ -1,178 +0,0 @@ -%load 'table_LTE_MODE_4_5.mat'; -load 'SISO.mat'; - -[x, y, z] = size(estimates_UE_1(1).channel); - -estimates_UE1 = estimates_UE_1(1,:); -estimates_UE2 = estimates_UE_1(2,:); - -chcap_alamouti = zeros(1,1200, length(estimates_UE1)); -chcap_alamouti_16 = zeros(1,1200, length(estimates_UE1)); -chcap_alamouti_64 = zeros(1,1200, length(estimates_UE1)); -subband_indices = 1:48:288; -subband_indices(7) = 289; -subband_indices(8) = 301; -for est=1:length(estimates_UE1) - - N0_1stRx = (double(estimates_UE1(est).phy_measurements(11).n0_power(1))); - N0_2ndRx = (double(estimates_UE2(est).phy_measurements(11).n0_power(1))); - - - H = estimates_UE1(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind1] = max(Hs); - antenna_index1 = estimates_UE1(est).phy_measurements(11).selected_rx_antennas(:,1); - - H = estimates_UE2(est).channel; - Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:)); - Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2))); - [val, ind2] = max(Hs); - antenna_index2 = estimates_UE2(est).phy_measurements(11).selected_rx_antennas(:,1); - - %h11_eNB1 = double([estimates_UE1(est).channel(z+1:end,1,ind1).real]) + 1j*double([estimates_UE1(est).channel(z+1:end,1,ind1).imag]); - channel_tmp = typecast(estimates_UE1(est).channel(201:end,1,ind1),'int16'); - h11_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h11_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h11_eNB1_srs1 = interp1(1:6:300,h11_eNB1(1:50),1:1:300,'linear','extrap'); - h11_eNB1_srs2 = interp1(4:6:300,h11_eNB1(51:100),1:1:300,'linear','extrap'); - h11_eNB1_srs3 = interp1(1:6:300,h11_eNB1(101:150),1:1:300,'linear','extrap'); - h11_eNB1_srs4 = interp1(4:6:300,h11_eNB1(151:200),1:1:300,'linear','extrap'); - - h11_eNB1_comp = [h11_eNB1_srs1' h11_eNB1_srs2' h11_eNB1_srs3' h11_eNB1_srs4']'; - - channel_tmp = typecast(estimates_UE1(est).channel(201:end,2,ind1),'int16'); - - h12_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h12_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h12_eNB1_srs1 = interp1(1:6:300,h12_eNB1(1:50),1:1:300,'linear','extrap'); - h12_eNB1_srs2 = interp1(4:6:300,h12_eNB1(51:100),1:1:300,'linear','extrap'); - h12_eNB1_srs3 = interp1(1:6:300,h12_eNB1(101:150),1:1:300,'linear','extrap'); - h12_eNB1_srs4 = interp1(4:6:300,h12_eNB1(151:200),1:1:300,'linear','extrap'); - - h12_eNB1_comp = [h12_eNB1_srs1' h12_eNB1_srs2' h12_eNB1_srs3' h12_eNB1_srs4']'; - - channel_tmp = typecast(estimates_UE1(est).channel(201:end,3,ind1),'int16'); - h21_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h21_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h21_eNB1_srs1 = interp1(4:6:300,h21_eNB1(1:50),1:1:300,'linear','extrap'); - h21_eNB1_srs2 = interp1(1:6:300,h21_eNB1(51:100),1:1:300,'linear','extrap'); - h21_eNB1_srs3 = interp1(4:6:300,h21_eNB1(101:150),1:1:300,'linear','extrap'); - h21_eNB1_srs4 = interp1(1:6:300,h21_eNB1(151:200),1:1:300,'linear','extrap'); - - h21_eNB1_comp = [h21_eNB1_srs1' h21_eNB1_srs2' h21_eNB1_srs3' h21_eNB1_srs4']'; - - channel_tmp = typecast(estimates_UE1(est).channel(201:end,4,ind1),'int16'); - h22_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h22_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h22_eNB1_srs1 = interp1(4:6:300,h22_eNB1(1:50),1:1:300,'linear','extrap'); - h22_eNB1_srs2 = interp1(1:6:300,h22_eNB1(51:100),1:1:300,'linear','extrap'); - h22_eNB1_srs3 = interp1(4:6:300,h22_eNB1(101:150),1:1:300,'linear','extrap'); - h22_eNB1_srs4 = interp1(1:6:300,h22_eNB1(151:200),1:1:300,'linear','extrap'); - - h22_eNB1_comp = [h22_eNB1_srs1' h22_eNB1_srs2' h22_eNB1_srs3' h22_eNB1_srs4']'; - - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,1,ind2),'int16'); - - h11_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %%h11_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h11_eNB2_srs1 = interp1(1:6:300,h11_eNB2(1:50),1:1:300,'linear','extrap'); - h11_eNB2_srs2 = interp1(4:6:300,h11_eNB2(51:100),1:1:300,'linear','extrap'); - h11_eNB2_srs3 = interp1(1:6:300,h11_eNB2(101:150),1:1:300,'linear','extrap'); - h11_eNB2_srs4 = interp1(4:6:300,h11_eNB2(151:200),1:1:300,'linear','extrap'); - - h11_eNB2_comp = [h11_eNB2_srs1' h11_eNB2_srs2' h11_eNB2_srs3' h11_eNB2_srs4']'; - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,2,ind2),'int16'); - h12_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h12_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h12_eNB2_srs1 = interp1(1:6:300,h12_eNB2(1:50),1:1:300,'linear','extrap'); - h12_eNB2_srs2 = interp1(4:6:300,h12_eNB2(51:100),1:1:300,'linear','extrap'); - h12_eNB2_srs3 = interp1(1:6:300,h12_eNB2(101:150),1:1:300,'linear','extrap'); - h12_eNB2_srs4 = interp1(4:6:300,h12_eNB2(151:200),1:1:300,'linear','extrap'); - - h12_eNB2_comp = [h12_eNB2_srs1' h12_eNB2_srs2' h12_eNB2_srs3' h12_eNB2_srs4']'; - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,3,ind2),'int16'); - h21_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h21_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - h21_eNB2_srs1 = interp1(4:6:300,h21_eNB2(1:50),1:1:300,'linear','extrap'); - h21_eNB2_srs2 = interp1(1:6:300,h21_eNB2(51:100),1:1:300,'linear','extrap'); - h21_eNB2_srs3 = interp1(4:6:300,h21_eNB2(101:150),1:1:300,'linear','extrap'); - h21_eNB2_srs4 = interp1(1:6:300,h21_eNB2(151:200),1:1:300,'linear','extrap'); - - h21_eNB2_comp = [h21_eNB2_srs1' h21_eNB2_srs2' h21_eNB2_srs3' h21_eNB2_srs4']'; - - - channel_tmp = typecast(estimates_UE2(est).channel(201:end,4,ind2),'int16'); - h22_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1)); - %% h22_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1)); - - h22_eNB2_srs1 = interp1(4:6:300,h22_eNB2(1:50),1:1:300,'linear','extrap'); - h22_eNB2_srs2 = interp1(1:6:300,h22_eNB2(51:100),1:1:300,'linear','extrap'); - h22_eNB2_srs3 = interp1(4:6:300,h22_eNB2(101:150),1:1:300,'linear','extrap'); - h22_eNB2_srs4 = interp1(1:6:300,h22_eNB2(151:200),1:1:300,'linear','extrap'); - - h22_eNB2_comp = [h22_eNB2_srs1' h22_eNB2_srs2' h22_eNB2_srs3' h22_eNB2_srs4']'; - - - - SNR_eNB1_1stRx = 10*log10(((abs(h11_eNB1_comp).^2) + (abs(h21_eNB1_comp).^2))/N0_1stRx); - SNR_eNB1_2ndRx = 10*log10(((abs(h12_eNB1_comp).^2) + (abs(h22_eNB1_comp).^2))/N0_2ndRx); - %SNR_eNB1_2Rx = 10*log10((((abs(h11_eNB1_comp).^2) + (abs(h12_eNB1_comp).^2))/NO_1stRx) + (((abs(h21_eNB1_comp).^2) + (abs(h22_eNB1_comp).^2))/NO_2ndRx)); - - SNR_eNB2_1stRx = 10*log10(((abs(h11_eNB2_comp).^2) + (abs(h21_eNB2_comp).^2))/N0_1stRx); - SNR_eNB2_2ndRx = 10*log10(((abs(h12_eNB2_comp).^2) + (abs(h22_eNB2_comp).^2))/N0_2ndRx); - %SNR_eNB2_2Rx = 10*log10((((abs(h11_eNB2_comp).^2) + (abs(h12_eNB2_comp).^2))/NO_1stRx) + (((abs(h21_eNB2_comp).^2) + (abs(h22_eNB2_comp).^2))/NO_2ndRx)); - - SNR_eNB1_1stRx((SNR_eNB1_1stRx <= -20)) = -20; - SNR_eNB1_1stRx((SNR_eNB1_1stRx >= 40)) = 40; - - SNR_eNB2_1stRx((SNR_eNB2_1stRx <= -20)) = -20; - SNR_eNB2_1stRx((SNR_eNB2_1stRx >= 40)) = 40; - - SNR_eNB1_2ndRx((SNR_eNB1_2ndRx <= -20)) = -20; - SNR_eNB1_2ndRx((SNR_eNB1_2ndRx >= 40)) = 40; - - SNR_eNB2_2ndRx((SNR_eNB2_2ndRx <= -20)) = -20; - SNR_eNB2_2ndRx((SNR_eNB2_2ndRx >= 40)) = 40; - - chcap_alamouti_1 = []; - chcap_alamouti_2 = []; - chcap_alamouti_3 = []; - for i=1:1:7 - if (antenna_index1(i) == 0) - SNR_eNB1 = SNR_eNB1_1stRx(:,subband_indices(i):subband_indices(i+1)-1); - else - SNR_eNB1 = SNR_eNB1_2ndRx(:,subband_indices(i):subband_indices(i+1)-1); - end - - if (antenna_index2(i) == 0) - SNR_eNB2 = SNR_eNB2_1stRx(:,subband_indices(i):subband_indices(i+1)-1); - else - SNR_eNB2 = SNR_eNB2_2ndRx(:,subband_indices(i):subband_indices(i+1)-1); - end - if(sum(SNR_eNB2(:)) < sum(SNR_eNB1(:))) - chcap_alamouti_1 = [chcap_alamouti_1 (interp1(SNR,c_siso_4Qam,SNR_eNB1(:),'nearest','extrap'))']; - chcap_alamouti_2 = [chcap_alamouti_2 (interp1(SNR,c_siso_16Qam,SNR_eNB1(:),'nearest','extrap'))']; - chcap_alamouti_3 = [chcap_alamouti_3 (interp1(SNR,c_siso_64Qam,SNR_eNB1(:),'nearest','extrap'))']; - - else - chcap_alamouti_1 = [chcap_alamouti_1 (interp1(SNR,c_siso_4Qam,SNR_eNB2(:),'nearest','extrap'))']; - chcap_alamouti_2 = [chcap_alamouti_2 (interp1(SNR,c_siso_16Qam,SNR_eNB2(:),'nearest','extrap'))']; - chcap_alamouti_3 = [chcap_alamouti_3 (interp1(SNR,c_siso_64Qam,SNR_eNB2(:),'nearest','extrap'))']; - - end - end - - chcap_alamouti(1,:,est) = chcap_alamouti_1; - chcap_alamouti_16(1,:,est) = chcap_alamouti_2; - chcap_alamouti_64(1,:,est) = chcap_alamouti_3; -end \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m deleted file mode 100644 index 7a0b4486a3..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m +++ /dev/null @@ -1,122 +0,0 @@ -% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2 -% single antenna users using the scheduling algorithm of aligning -% interference in the opposite quadrant - - -% clear; -% clc; -% close all; -% warning off all -% format('long'); - -% LTE with scheduling in opposite quadrant or without scheduling -%sigmasq_x2_all = 0:0.1:1; -%for i = 1:length(sigmasq_x2_all) - -M1=4;% QAM on first antenna -M2=4;% QAM on second antenna -SNR = 0:9; -N_channel = 1000; % No of channel realizations -N_noise = 100; % No of noise realizations - -alpha_1 =zeros(length(SNR),N); -beta_1 =zeros(length(SNR),N); -alpha_2 =zeros(length(SNR),N); -beta_2 =zeros(length(SNR),N); -chcap_lte_sch1 = zeros(length(SNR),N); -chcap_lte_sch2 = zeros(length(SNR),N); -chcap_lte_sch = zeros(length(SNR),N); - -for v=1:length(SNR) - seed(1) = 13579; - seed(2) = 24680; - rand('state', seed(1)); - randn('state', seed(2)); - N0=10^(-SNR(v)/10); - sigmasq_x1 = 0.5; - sigmasq_x2 = 0.5; - [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648 - [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648 - for k=1:N %channel loop - fprintf('v=%d,k=%d\n',v,k); - [h1 h2]=channel; - H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2 - match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1 - lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)]; - lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)]; - lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)]; - [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]); - lte_precoder_norm1=[1;lte_std_precoder(pos)]; - [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]); - lte_precoder_norm2=[1;lte_std_precoder(pos)]; - lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2]; - %Scheduling to put interference in the opposite quadrant - lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder - lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder - alpha_1(v,k)=H(1,:)*lte_precoder_qtz1(:,1); - beta_2(v,k)=H(1,:)*lte_precoder_qtz1(:,2); - beta_1(v,k)=H(2,:)*lte_precoder_qtz2(:,1); - alpha_2(v,k)=H(2,:)*lte_precoder_qtz2(:,2); - - logsum_lte_sch1=0; - logsum_lte_sch2=0; - for l=1:10 %noise loop - z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); - for s1=1:M1 - x1=stream1(s1); - for s2=1:M2 - x2=stream2(s2); - y_lte1=alpha_1(v,k)*x1+beta_2(v,k)*x2+z; - y_lte2=beta_1(v,k)*x1+alpha_2(v,k)*x2+z; - den_lte_sch1=0; - den_lte_sch2=0; - %For first stream - for t=1:M2 - x2_d=stream2(t); - den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2); - end - % For second stream - for t=1:M1 - x1_d=stream1(t); - den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2); - end - neu_lte_sch1=0; - neu_lte_sch2=0; - for g=1:M1; - x1_dd=stream1(g); - for h=1:M2 - x2_dd=stream2(h); - neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2); - end - end - %For second stream - for g=1:M2; - x2_ddd=stream2(g); - for h=1:M1 - x1_ddd=stream1(h); - neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2); - end - end - logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1); - logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2); - end - end - end - - chcap_lte_sch1(v,k)=log2(M1)-logsum_lte_sch1/(M1*M2*N_noise); - chcap_lte_sch2(v,k)=log2(M2)-logsum_lte_sch2/(M1*M2*N_noise); - chcap_lte_sch(v,k)=log2(M1)-logsum_lte_sch1/(M1*M2*N_noise)+log2(M2)-logsum_lte_sch2/(M1*M2*N_noise); - - end - -end -%end - -%save QPSK_QPSK_lte_Mode5.mat; - - - - - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m deleted file mode 100644 index 7979a55a8a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m +++ /dev/null @@ -1,107 +0,0 @@ -% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2 -% single antenna users using the scheduling algorithm of aligning -% interference in the opposite quadrant - - -% clear; -% clc; -% close all; -% warning off all -% format('long'); - -%Input Data -% 7 LTE with scheduling in opposite quadrant or without scheduling -sigmasq_x2_all = 0:0.1:1; -for i = 1:length(sigmasq_x2_all) - M1=16;% QAM on first antenna - M2=16;% QAM on second antenna - SNR = [0:1:50]; - N = 100000; % No of channel realizations - -for v=1:length(SNR) - seed(1) = 13579; - seed(2) = 24680; - rand('state', seed(1)); - randn('state', seed(2)); - N0=10^(-SNR(v)/10); - sigmasq_x1 = 1; - sigmasq_x2 = sigmasq_x2_all(i); - [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648 - [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648 - logsum_lte_sch1=0; - logsum_lte_sch2=0; - for s1=1:M1 - x1=stream1(s1); - for s2=1:M2 - x2=stream2(s2); - for k=1:N - [h1 h2]=channel(N0); - z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); - H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2 - match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1 - lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)]; - lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)]; - lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)]; - [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]); - lte_precoder_norm1=[1;lte_std_precoder(pos)]; - [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]); - lte_precoder_norm2=[1;lte_std_precoder(pos)]; - lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2]; - %Scheduling to put interference in the opposite quadrant - lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder - lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder - alpha_1=H(1,:)*lte_precoder_qtz1(:,1); - beta_2=H(1,:)*lte_precoder_qtz1(:,2); - beta_1=H(2,:)*lte_precoder_qtz2(:,1); - alpha_2=H(2,:)*lte_precoder_qtz2(:,2); - y_lte1=alpha_1*x1+beta_2*x2+z; - y_lte2=beta_1*x1+alpha_2*x2+z; - den_lte_sch1=0; - den_lte_sch2=0; - %For first stream - for t=1:M2 - x2_d=stream2(t); - den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2); - end - % For second stream - for t=1:M1 - x1_d=stream1(t); - den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2); - end - neu_lte_sch1=0; - neu_lte_sch2=0; - for g=1:M1; - x1_dd=stream1(g); - for h=1:M2 - x2_dd=stream2(h); - neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2); - end - end - %For second stream - for g=1:M2; - x2_ddd=stream2(g); - for h=1:M1 - x1_ddd=stream1(h); - neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2); - end - end - logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1); - logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2); - end - end - end - - chcap_lte_sch1(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N); - chcap_lte_sch2(i, v)=log2(M2)-logsum_lte_sch2/(M1*M2*N); - chcap_lte_sch(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N)+log2(M2)-logsum_lte_sch2/(M1*M2*N); -end -end - -save QAM16_QAM16_lte_Mode5.mat; - - - - - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m deleted file mode 100644 index 56289d16e4..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m +++ /dev/null @@ -1,107 +0,0 @@ -% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2 -% single antenna users using the scheduling algorithm of aligning -% interference in the opposite quadrant - - -% clear; -% clc; -% close all; -% warning off all -% format('long'); - -%Input Data -% 7 LTE with scheduling in opposite quadrant or without scheduling -sigmasq_x2_all = 0:0.1:1; -for i = 1:length(sigmasq_x2_all) - M1=16;% QAM on first antenna - M2=4;% QAM on second antenna - SNR = [0:1:50]; - N = 100000; % No of channel realizations - -for v=1:length(SNR) - seed(1) = 13579; - seed(2) = 24680; - rand('state', seed(1)); - randn('state', seed(2)); - N0=10^(-SNR(v)/10); - sigmasq_x1 = 1; - sigmasq_x2 = sigmasq_x2_all(i); - [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648 - [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648 - logsum_lte_sch1=0; - logsum_lte_sch2=0; - for s1=1:M1 - x1=stream1(s1); - for s2=1:M2 - x2=stream2(s2); - for k=1:N - [h1 h2]=channel(N0); - z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); - H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2 - match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1 - lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)]; - lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)]; - lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)]; - [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]); - lte_precoder_norm1=[1;lte_std_precoder(pos)]; - [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]); - lte_precoder_norm2=[1;lte_std_precoder(pos)]; - lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2]; - %Scheduling to put interference in the opposite quadrant - lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder - lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder - alpha_1=H(1,:)*lte_precoder_qtz1(:,1); - beta_2=H(1,:)*lte_precoder_qtz1(:,2); - beta_1=H(2,:)*lte_precoder_qtz2(:,1); - alpha_2=H(2,:)*lte_precoder_qtz2(:,2); - y_lte1=alpha_1*x1+beta_2*x2+z; - y_lte2=beta_1*x1+alpha_2*x2+z; - den_lte_sch1=0; - den_lte_sch2=0; - %For first stream - for t=1:M2 - x2_d=stream2(t); - den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2); - end - % For second stream - for t=1:M1 - x1_d=stream1(t); - den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2); - end - neu_lte_sch1=0; - neu_lte_sch2=0; - for g=1:M1; - x1_dd=stream1(g); - for h=1:M2 - x2_dd=stream2(h); - neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2); - end - end - %For second stream - for g=1:M2; - x2_ddd=stream2(g); - for h=1:M1 - x1_ddd=stream1(h); - neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2); - end - end - logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1); - logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2); - end - end - end - - chcap_lte_sch1(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N); - chcap_lte_sch2(i, v)=log2(M2)-logsum_lte_sch2/(M1*M2*N); - chcap_lte_sch(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N)+log2(M2)-logsum_lte_sch2/(M1*M2*N); -end -end - -save QAM16_QPSK_lte_Mode5.mat; - - - - - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m deleted file mode 100644 index 31d3bdff0b..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m +++ /dev/null @@ -1,107 +0,0 @@ -% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2 -% single antenna users using the scheduling algorithm of aligning -% interference in the opposite quadrant - - -% clear; -% clc; -% close all; -% warning off all -% format('long'); - -%Input Data -% 7 LTE with scheduling in opposite quadrant or without scheduling -sigmasq_x2_all = 0:0.1:1; -for i = 1:length(sigmasq_x2_all) - M1=4;% QAM on first antenna - M2=16;% QAM on second antenna - SNR = [0:1:50]; - N = 100000; % No of channel realizations - -for v=1:length(SNR) - seed(1) = 13579; - seed(2) = 24680; - rand('state', seed(1)); - randn('state', seed(2)); - N0=10^(-SNR(v)/10); - sigmasq_x1 = 1; - sigmasq_x2 = sigmasq_x2_all(i); - [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648 - [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648 - logsum_lte_sch1=0; - logsum_lte_sch2=0; - for s1=1:M1 - x1=stream1(s1); - for s2=1:M2 - x2=stream2(s2); - for k=1:N - [h1 h2]=channel(N0); - z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); - H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2 - match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1 - lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)]; - lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)]; - lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)]; - [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]); - lte_precoder_norm1=[1;lte_std_precoder(pos)]; - [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]); - lte_precoder_norm2=[1;lte_std_precoder(pos)]; - lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2]; - %Scheduling to put interference in the opposite quadrant - lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder - lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder - alpha_1=H(1,:)*lte_precoder_qtz1(:,1); - beta_2=H(1,:)*lte_precoder_qtz1(:,2); - beta_1=H(2,:)*lte_precoder_qtz2(:,1); - alpha_2=H(2,:)*lte_precoder_qtz2(:,2); - y_lte1=alpha_1*x1+beta_2*x2+z; - y_lte2=beta_1*x1+alpha_2*x2+z; - den_lte_sch1=0; - den_lte_sch2=0; - %For first stream - for t=1:M2 - x2_d=stream2(t); - den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2); - end - % For second stream - for t=1:M1 - x1_d=stream1(t); - den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2); - end - neu_lte_sch1=0; - neu_lte_sch2=0; - for g=1:M1; - x1_dd=stream1(g); - for h=1:M2 - x2_dd=stream2(h); - neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2); - end - end - %For second stream - for g=1:M2; - x2_ddd=stream2(g); - for h=1:M1 - x1_ddd=stream1(h); - neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2); - end - end - logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1); - logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2); - end - end - end - - chcap_lte_sch1(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N); - chcap_lte_sch2(i, v)=log2(M2)-logsum_lte_sch2/(M1*M2*N); - chcap_lte_sch(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N)+log2(M2)-logsum_lte_sch2/(M1*M2*N); -end -end - -save QPSK_QAM16_lte_Mode5.mat; - - - - - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m deleted file mode 100644 index 8961a4e94f..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m +++ /dev/null @@ -1,30 +0,0 @@ -function chcap_siso_single_stream = capacity_siso_tab(SNR, M1) -%Channel Capacity of SISO system with QAM modulation - -%M1=4;% QAM on first antenna -N = 100000; % No of noise realizations -%seed(1) = 13579; -%seed(2) = 24680; -%rand('state', seed(1)); -%randn('state', seed(2)); -h = exp(2*pi*1j*rand(1)); -N0=10^(-SNR/10); -sigmasq_x1=1; -[stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648 -logsum_siso = 0; -for s1=1:M1 - x1=stream1(s1); - for k=1:N - z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); - alpha_siso=h; - y_siso=alpha_siso*x1+z; - den_siso=exp((-1/N0)*norm(y_siso-alpha_siso*x1)^2); - neu_siso=0; - for g=1:M1; - x1_dd=stream1(g); - neu_siso=neu_siso+exp((-1/N0)*norm(y_siso-alpha_siso*x1_dd)^2); - end - logsum_siso=logsum_siso+log2(neu_siso/den_siso); - end -end -chcap_siso_single_stream=log2(M1)-logsum_siso/(M1*N); % For SISO diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m deleted file mode 100644 index df6404395e..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m +++ /dev/null @@ -1,30 +0,0 @@ -function chcap_siso_single_stream = capacity_siso_tab_measurements(SNR, h, N0, M1) -%Channel Capacity of SISO system with QAM modulation - -%M1=4;% QAM on first antenna -N = 1000000; % No of noise realizations -%seed(1) = 13579; -%seed(2) = 24680; -%rand('state', seed(1)); -%randn('state', seed(2)); -%h = exp(2*pi*1j*rand(1)); -%N0=10^(-SNR/10); -sigmasq_x1=1; -[stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648 -logsum_siso = 0; -for s1=1:M1 - x1=stream1(s1); - for k=1:N - z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); - alpha_siso=h; - y_siso=alpha_siso*x1+z; - den_siso=exp((-1/N0)*norm(y_siso-alpha_siso*x1)^2); - neu_siso=0; - for g=1:M1; - x1_dd=stream1(g); - neu_siso=neu_siso+exp((-1/N0)*norm(y_siso-alpha_siso*x1_dd)^2); - end - logsum_siso=logsum_siso+log2(neu_siso/den_siso); - end -end -chcap_siso_single_stream=log2(M1)-logsum_siso/(M1*N); % For SISO diff --git a/openair1/EMOS/LTE/POST_PROCESSING/channel.m b/openair1/EMOS/LTE/POST_PROCESSING/channel.m deleted file mode 100644 index 1df73438ea..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/channel.m +++ /dev/null @@ -1,16 +0,0 @@ -function [h1 h2] = channel(N0); - -%z=sqrt(1/2).*(randn(2,1)+j*randn(2,1)); -%z=N0.*z; %incorporating SNR in the noise -h1=sqrt(1/2).*(randn(2,1)+sqrt(-1)*randn(2,1)); -h2=sqrt(1/2).*(randn(2,1)+sqrt(-1)*randn(2,1)); - - - - - - - - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat b/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat deleted file mode 100644 index 6a883aa1b4a8946632b09c9f8a7b2c24f7940127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i?A@$QE)CwO)N=GQOM7; zQV0jqUZpt-MurN8CRU~npOMh1ok3Zw!CMo(XU1_lOIMh1q8Id5)W(j#($HYE;Y|CPS~->Qt6SGVD?+Ny=RTSU71z2y(+)%Q|!4J$K`>#LEy)I z!Xfzf0w@GIm=)f}-;%g*!n@W#-1dHEFt)0K}zVqFAQPX!#dS7Gf-t!k^1PJ_j&q^>9 t-dtc5WME)nG59rI?6GWgizry9^q1(Dl?)Ba;Isw|C=*tOjjvf30RZmVDT@FA diff --git a/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat b/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat deleted file mode 100644 index 794d20865cb654eac6bc5ea4580e45f7104642b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i?A@$QE)CwO)N=GQOM7; zQV0jqUZpt-MurN8rdFl~Rz@ZYMh1ok3Zw!CMo(XU1_lOIMh1q8Id5)WVhH2RW27h7eqW|x_4;v zlJJXfgE)@;miAnyp!ARZutCoDxJxoi^vc&?+P*Dsx^c@TyXPA+vZa<6-=CHe6#O1& m3V-4K@87tgvBpqe0FDv7E=0).'; -mode1.throughput = (100-mode1.dlsch_fer_cat).*mode1.tbs_cat*6; -mode1.throughput(~mode1.UE_connected) = 0; -mode2.UE_connected = (mode2.UE_mode_cat==3); -%mode2.good = (mode2.dlsch_fer_cat<=100 & mode2.dlsch_fer_cat>=0).'; -mode2.throughput = (100-mode2.dlsch_fer_cat).*mode2.tbs_cat*6; -mode2.throughput(~mode2.UE_connected) = 0; -mode2_update.UE_connected = (mode2_update.UE_mode_cat==3); -%mode2_update.good = (mode2_update.dlsch_fer_cat<=100 & mode2_update.dlsch_fer_cat>=0).'; -mode2_update.throughput = (100-mode2_update.dlsch_fer_cat).*mode2_update.tbs_cat*6; -mode2_update.throughput(~mode2_update.UE_connected) = 0; -mode6.UE_connected = (mode6.UE_mode_cat==3); -%mode6.good = (mode6.dlsch_fer_cat<=100 & mode6.dlsch_fer_cat>=0).'; -mode6.throughput = (100-mode6.dlsch_fer_cat).*mode6.tbs_cat*6; -mode6.throughput(~mode6.UE_connected) = 0; - - -%% Zoom 1 -start_mode1 = 746; -length_mode1 = 300; -%start_mode2 = 330; -start_mode2 = 22873+330; -length_mode2 = 380; -start_mode6 = 16599; -end_mode6 = 16276; -%length_mode6 = - -h_fig = figure(3); -hold off -plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1), ... - mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1)) -hold on -plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2), ... - mode2.rx_rssi_dBm_cat(start_mode2:start_mode2+length_mode2,1),'r') -plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ... - mode6.rx_rssi_dBm_cat(end_mode6:start_mode6,1),'g') -legend('Mode1','Mode2','Mode6') -xlabel('Distance travelled [km]') -ylabel('RX RSSI [dBm]') -saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.eps'),'epsc2'); - - -%% -h_fig = figure(4); -plot_gps_coordinates(mm,mode1.gps_lon_cat(start_mode1:start_mode1+length_mode1), ... - mode1.gps_lat_cat(start_mode1:start_mode1+length_mode1),... - double(mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1))); -saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.jpg'),'jpg'); - -%% -h_fig = figure(5); -hold off -plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1),... - mode1.throughput(start_mode1:start_mode1+length_mode1)); -hold on -plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),... - mode2.throughput(start_mode2:start_mode2+length_mode2),'r'); -plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ... - mode6.throughput(end_mode6:start_mode6,1),'g') - - -legend('Mode1','Mode2','Mode6') -xlabel('Distance travelled [km]') -ylabel('Throughput [bps]') -saveas(h_fig,fullfile(pathname,'all_modes_comparison_troughput_distance_travelled.eps'),'epsc2'); - - - -%% Zoom2 -load cordes_zoom2.mat -select1 = find(select1); -select2 = find(select2); -select6 = find(select6); -select2b = false(size(parcours1)); -select2b(parcours1)=select2; -select2b = find(select2b); - -h_fig = figure(3); -hold off -plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)), ... - mode1.rx_rssi_dBm_cat(select1,1)) -hold on -plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)), ... - mode2.rx_rssi_dBm_cat(select2b,1),'r') -plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ... - mode6.rx_rssi_dBm_cat(select6,1),'g') -legend('Mode1','Mode2','Mode6') -xlabel('Distance travelled [km]') -ylabel('RX RSSI [dBm]') -%saveas(h_fig,fullfile(pathname,'all_modes_comparison2_rssi_dBm.eps'),'epsc2'); - - -%% -h_fig = figure(4); -plot_gps_coordinates(mm,mode1.gps_lon_cat(select1), ... - mode1.gps_lat_cat(select1),... - double(mode1.rx_rssi_dBm_cat(select1,1))); -%saveas(h_fig,fullfile(pathname,'all_modes_comparison2_rssi_dBm.jpg'),'jpg'); - -%% -h_fig = figure(5); -hold off -plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)),... - mode1.throughput(select1,1)); -hold on -plot(mode2.dist_travelled(select2)-mode2.dist_travelled(select2(1)),... - mode2.throughput(select2,1),'r'); -plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ... - mode6.throughput(select6,1),'g') - - -legend('Mode1','Mode2','Mode6') -xlabel('Distance travelled [km]') -ylabel('Throughput [bps]') -%saveas(h_fig,fullfile(pathname,'all_modes_comparison2_troughput_distance_travelled.eps'),'epsc2'); - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m b/openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m deleted file mode 100644 index cd04d63684..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m +++ /dev/null @@ -1,149 +0,0 @@ -% file: eval_nomadic_points.m -% author: florian.kaltenberger@eurecom.fr -% purpose: plots the nomadic results from the UE for several directories - -% in the following two lines set the root path and select the subfolders -% you want to plot -% root_path = '~/EMOS/data/'; -% d = dir(fullfile(root_path, '*mode1_parcours1')); -% dir_names = {d.name}; - -%% -% decimation = 100; -% -% results_UE = []; -% results_UE_nomadic = []; -% -% for i=1:length(dir_names) -% if exist(fullfile(root_path,dir_names{i},'results_UE_new.mat'),'file') -% nomadic = load(fullfile(root_path,dir_names{i},'results_UE_new.mat')); -% results_UE_nomadic = cat(2,results_UE_nomadic,nomadic.minestimates); -% end -% end - -%pathname='/emos/EMOS/Nomadic/20100611_NOMADIC_ALL_MODES/'; -%pathname='/emos/EMOS/Nomadic/20100527_nomadic_all_modes/'; -load(fullfile(pathname,'results_UE_new.mat')); -results_UE_nomadic=minestimates; -load(fullfile(pathname,'results_eNB_new.mat')); -results_eNB_nomadic=minestimates; - -%% -h_fig = figure(1); -hold off -%plot_gps_coordinates(mm,[results_UE.gps_lon_cat], [results_UE.gps_lat_cat], double([results_UE.UE_mode_cat])); -%hold on -for i=1:length(results_UE_nomadic) - if i==1 - mmi = mm; - else - mmi = ''; - end - plot_gps_coordinates(mmi,[results_UE_nomadic(i).gps_data.longitude], [results_UE_nomadic(i).gps_data.latitude], ... - double(results_UE_nomadic(i).UE_mode_cat),[0 3], sprintf('N%d',i),'black','Marker','.','Markersize',20); -end -saveas(h_fig,fullfile(pathname,'UE_mode_nomadic.jpg'),'jpg'); - -%% -h_fig = figure(2); -hold off -%rx_rssi_dBm_cat = cat(1,results_UE.rx_rssi_dBm_cat); -%plot_gps_coordinates(mm,[results_UE.gps_lon_cat], [results_UE.gps_lat_cat], double(rx_rssi_dBm_cat(:,1))); -%hold on -for i=1:length(results_UE_nomadic) - if i==1 - mmi = mm; - else - mmi = ''; - end - plot_gps_coordinates(mmi,[results_UE_nomadic(i).gps_data.longitude], [results_UE_nomadic(i).gps_data.latitude], ... - double(results_UE_nomadic(i).rx_rssi_dBm(:,1)),[-110 -30], sprintf('N%d',i),'black','Marker','.','Markersize',20); -end -saveas(h_fig,fullfile(pathname,'RX_RSSI_nomadic.jpg'),'jpg'); - -%% -fid = fopen(fullfile(pathname,'nomadic_results.csv'),'w'); -for i=1:length(results_UE_nomadic) - rx_rssi_dBm_mean(i) = mean(results_UE_nomadic(i).rx_rssi_dBm(:,1)); - - ul_rssi_all_sectors = zeros(size(results_eNB_nomadic(i).phy_measurements)); - for j=1:length(results_eNB_nomadic(i).phy_measurements) - ul_rssi_all_sectors(j,:) = double([results_eNB_nomadic(i).phy_measurements(j,:).rx_rssi_dBm]); - end - ul_rssi_dBm = zeros(length(results_eNB_nomadic(i).eNb_UE_stats),1); - sector = [results_eNB_nomadic(i).eNb_UE_stats.sector]; - for j=1:length(results_eNB_nomadic(i).eNb_UE_stats) - ul_rssi_dBm(j) = ul_rssi_all_sectors(j,sector(j)+1); - end - ul_rssi_dBm_mean(i) = mean(ul_rssi_dBm); - - - UE_synched = (results_UE_nomadic(i).UE_mode_cat>0); - UE_connected = (results_UE_nomadic(i).UE_mode_cat==3); - UE_mimo_mode = (results_UE_nomadic(i).mimo_mode); - - eNB_synched = ([results_eNB_nomadic(i).eNb_UE_stats.UE_mode]>0); - eNB_connected = ([results_eNB_nomadic(i).eNb_UE_stats.UE_mode]==3); - eNB_mimo_mode = (results_eNB_nomadic(i).mimo_mode); - - good = (results_UE_nomadic(i).dlsch_fer<=100 & results_UE_nomadic(i).dlsch_fer>=0).'; - dlsch_throughput = double(100-results_UE_nomadic(i).dlsch_fer) .* double(results_UE_nomadic(i).tbs_cat) .* 6; - - results_eNB_nomadic(i).ulsch_fer = [100 diff([results_eNB_nomadic(i).ulsch_errors])]; - ulsch_throughput = double([results_eNB_nomadic(i).tbs_cat]) .* double(100 - results_eNB_nomadic(i).ulsch_fer) .* 3; - - lat = [results_UE_nomadic(i).gps_data.latitude]; - lon = [results_UE_nomadic(i).gps_data.longitude]; - if (i==1) - fprintf(fid,'index; DL name; UL name; DL RSSI; UL RSSI; Mode1 TP; Mode2 TP; Mode6 TP; UL TP; Mode1 points; Mode2 points; Mode6 points; UL points; Lat; Lon\n'); - end - fprintf(fid,'%d; %s; %s; %f; %f; %f; %f; %f; %f; %d; %d; %d; %d; %f; %f\n',i, ... - results_UE_nomadic(i).filename, results_eNB_nomadic(i).filename, ... - rx_rssi_dBm_mean(i), ul_rssi_dBm_mean(i), ... - mean(dlsch_throughput(UE_connected & good & UE_mimo_mode==1)), ... - mean(dlsch_throughput(UE_connected & good & UE_mimo_mode==2)), ... - mean(dlsch_throughput(UE_connected & good & UE_mimo_mode==6)), ... - mean(ulsch_throughput(eNB_connected)), ... - sum(UE_connected & good & UE_mimo_mode==1), ... - sum(UE_connected & good & UE_mimo_mode==2), ... - sum(UE_connected & good & UE_mimo_mode==6), ... - sum(eNB_connected), ... - mean(lat(lat~=0)),mean(lon(lon~=0))); -end -fclose(fid); - - -%% -figure(3) -hold off -%plot([results_UE.gps_time_cat],[results_UE.UE_mode_cat],'x') -%hold on -gps_data_cat = [results_UE_nomadic.gps_data]; -plot([gps_data_cat.timestamp],[results_UE_nomadic.UE_mode_cat],'rx'); - -%% -figure(4) -hold off -%plot([results_UE.gps_time_cat],rx_rssi_dBm_cat(:,1),'x'); -%hold on -rx_rssi_dBm_cat_nomadic = cat(1,results_UE_nomadic.rx_rssi_dBm); -plot([gps_data_cat.timestamp],rx_rssi_dBm_cat_nomadic(:,1),'rx'); - -%% -figure(5) -hold off -% UE_connected = ([results_UE.UE_mode_cat]==3); -% dlsch_fer_cat = cat(1,results_UE.dlsch_fer_cat).'; -% tbs_cat = cat(1,results_UE.tbs_cat).'; -% good = (dlsch_fer_cat<=100 & dlsch_fer_cat>=0); -% timebase = [results_UE.gps_time_cat]; -% plot(timebase(UE_connected & good),(100-dlsch_fer_cat(UE_connected & good)).*tbs_cat(UE_connected & good)*7*4/3,'x'); -% hold on -UE_connected = ([results_UE_nomadic.UE_mode_cat]==3); -dlsch_fer_cat = cat(1,results_UE_nomadic.dlsch_fer).'; -tbs_cat = cat(1,results_UE_nomadic.tbs_cat).'; -good = (dlsch_fer_cat<=100 & dlsch_fer_cat>=0); -gps_data = [results_UE_nomadic.gps_data]; -timebase = [gps_data.timestamp]; -plot(timebase(UE_connected & good),(100-dlsch_fer_cat(UE_connected & good)).*tbs_cat(UE_connected & good)*6,'rx'); - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m b/openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m deleted file mode 100644 index 6090c973a0..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m +++ /dev/null @@ -1,68 +0,0 @@ -% eval_village_ambialet.m - -% The village of vallence d'albigeois is enclosed in the following -% coordinates -lat_min = 44.017015135704256; -lon_min = 2.3998260498046875; -lat_max = 44.02226141991229; -lon_max = 2.4095678329467773; -% next to the village is an open crossing that we use for comparison -lat_min2 = 44.01099676748375; -lon_min2 = 2.3856210708618164; -lat_max2 = lat_min; -lon_max2 = lon_min; - - -mode1_village = mode1.gps_lat_cat<=lat_max & mode1.gps_lat_cat >= lat_min & mode1.gps_lon_cat<=lon_max & mode1.gps_lon_cat>=lon_min; -mode2_village = mode2.gps_lat_cat<=lat_max & mode2.gps_lat_cat >= lat_min & mode2.gps_lon_cat<=lon_max & mode2.gps_lon_cat>=lon_min; -mode6_village = mode6.gps_lat_cat<=lat_max & mode6.gps_lat_cat >= lat_min & mode6.gps_lon_cat<=lon_max & mode6.gps_lon_cat>=lon_min; - -mode1_xing = mode1.gps_lat_cat<=lat_max2 & mode1.gps_lat_cat >= lat_min2 & mode1.gps_lon_cat<=lon_max2 & mode1.gps_lon_cat>=lon_min2; -mode2_xing = mode2.gps_lat_cat<=lat_max2 & mode2.gps_lat_cat >= lat_min2 & mode2.gps_lon_cat<=lon_max2 & mode2.gps_lon_cat>=lon_min2; -mode6_xing = mode6.gps_lat_cat<=lat_max2 & mode6.gps_lat_cat >= lat_min2 & mode6.gps_lon_cat<=lon_max2 & mode6.gps_lon_cat>=lon_min2; - -%% -h_fig = figure(1); -hold off -plot_gps_coordinates(mm,mode2.gps_lon_cat(mode2_village),mode2.gps_lat_cat(mode2_village),[],[],'Village','blue'); -hold on -plot_gps_coordinates('',mode2.gps_lon_cat(mode2_xing),mode2.gps_lat_cat(mode2_xing),[],[],'Xing','red'); -saveas(h_fig,fullfile(pathname,'results','village_comparison_map.jpg'),'jpg') - -%% -h_fig = figure(2); -hold off -colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'}; -legend_str = {}; -ni=1; -for n = strmatch('rateps',nn).' - si = strfind(nn{n},'supportedQam_eNB1_2Rx'); - if si - [f,x] = ecdf(scale_ideal_tp(mode2_ideal.(nn{n})(mode2_village))); - plot(x,f,colors{ni},'Linewidth',2); - hold on - [f,x] = ecdf(scale_ideal_tp(mode2_ideal.(nn{n})(mode2_xing))); - plot(x,f,colors{7+ni},'Linewidth',2); - ni=ni+1; - end -end -[f,x] = ecdf(mode2.throughput(mode2_village)); -plot(x,f,colors{ni},'Linewidth',2) -hold on -[f,x] = ecdf(mode2.throughput(mode2_xing)); -plot(x,f,colors{ni+7},'Linewidth',2) -ni=ni+1; - -legend_str = {'Tx mode 1 (extrap), Village','Tx mode 1 (extrap) Xing',... - 'Tx mode 2 (extrap), Village','Tx mode 2 (extrap) Xing',... - 'Tx mode 6 (extrap, feedback), Village','Tx mode 6 (extrap, feedback) Xing',... - 'Tx mode 6 (extrap, optim), Village','Tx mode 6 (extrap, optim) Xing',... - 'Tx mode 2 (real), Village','Tx mode 2 (real) Xing'}; - -title('DLSCH throughput CDF') -xlabel('Throughput [bps]') -ylabel('P(xtol_time) - ind(i) = true; - end -end - \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m b/openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m deleted file mode 100644 index 80eed4589a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m +++ /dev/null @@ -1,13 +0,0 @@ -function checkpoint2 = find_closest_points(mode2,checkpoint1) -% adds all gps point in checkpoint1 to the chunks in mode2 - -testpoints2 = [mode2.gps_lat_cat(mode2.ind_cnd).' mode2.gps_lon_cat(mode2.ind_cnd).']; -testpoints2_idx = find(mode2.ind_cnd); -checkpoint2 = zeros(1,length(checkpoint1)); - -for i=1:length(checkpoint1) - % find point in route y that is closest to checkpoint - out = ipdm(checkpoint1(i,:),testpoints2,'Subset', 'NearestNeighbor','Result','Structure'); - checkpoint2(i) = testpoints2_idx(out.columnindex); - %checkpoint2(i,:) = [testpoints2(out.columnindex,1) testpoints2(out.columnindex,2)]; -end diff --git a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m b/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m deleted file mode 100644 index 91c45c6bad..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m +++ /dev/null @@ -1,26 +0,0 @@ - -%For generating table for SISO - -SNR = -20:2:40; - -c_siso_4Qam = zeros(size(SNR)); -c_siso_16Qam = zeros(size(SNR)); -c_siso_64Qam = zeros(size(SNR)); - - -for q=1:3 % for following Constellations: QAM 4, QAM 16, QAM 64 - - for v=1:length(SNR) - - if q ==1 - c_siso_4Qam(v) = capacity_siso_tab(SNR(v), 4); - else if q ==2 - c_siso_16Qam(v) = capacity_siso_tab(SNR(v), 16); - else - c_siso_64Qam(v) = capacity_siso_tab(SNR(v), 64); - end - end - - end - -end \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m b/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m deleted file mode 100644 index 1537f8805a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m +++ /dev/null @@ -1,9 +0,0 @@ -SNR = 0:10:20; -%h=sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1)); -h = exp(2*pi*1j*rand(1)); -c_siso = zeros(size(SNR)); -for v=1:length(SNR) - N0=10^(-SNR(v)/10); - %P=10^(SNR(v)/10); - c_siso(v) = capacity_siso(h,N0) -end diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m b/openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m deleted file mode 100644 index 703ba4a742..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m +++ /dev/null @@ -1,34 +0,0 @@ -function mode1 = get_chunks(mode1) - -%% identify continious sets in modex_ind -tmp = diff([0 double(mode1.ind_cnd) 0]); -mode1.start_points = find(tmp==1); -mode1.end_points = find(tmp==-1)-1; - -%% identify last and first points of files -file_end_points = cumsum([0 mode1.NFrames/100]); -for i=1:length(file_end_points) - % if file_end_points is contained in one chunk split that chunk - split = find(file_end_points(i)mode1.start_points); - if ~isempty(split) - mode1.end_points = [mode1.end_points(1:(split-1)) file_end_points(i) mode1.end_points(split:end)]; - mode1.start_points = [mode1.start_points(1:split) file_end_points(i)+1 mode1.start_points((split+1):end)]; - end -end - -% %% make a list of structure with fields -% gps_data = struct('lon',0,'lat',0,'time',0); -% chunk_list(length(start_points)) = struct('start_gps', gps_data, ... -% 'end_gps', gps_data, ... -% 'indices', []); -% -% %% find the corresponding gps points -% for i=1:length(start_points) -% chunk_list(i).indices = start_points(i):end_points(i); -% chunk_list(i).start_gps.lon = mode1.gps_lon_cat(start_points(i)); -% chunk_list(i).start_gps.lat = mode1.gps_lat_cat(start_points(i)); -% chunk_list(i).start_gps.time = mode1.gps_time_cat(start_points(i)); -% chunk_list(i).end_gps.lon = mode1.gps_lon_cat(end_points(i)); -% chunk_list(i).end_gps.lat = mode1.gps_lat_cat(end_points(i)); -% chunk_list(i).end_gps.time = mode1.gps_time_cat(end_points(i)); -% end \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m b/openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m deleted file mode 100644 index dfc655ca14..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m +++ /dev/null @@ -1,34 +0,0 @@ -estimates_UE = load(fullfile(pathname,'results_UE.mat')); -estimates_UE_ideal = load(fullfile(pathname,'results_cat_UE.mat')); -estimates_eNB = load(fullfile(pathname,'results_eNB.mat')); - -%% -estimates_eNB.K_fac_cat = zeros(4,length(estimates_eNB.frame_tx_cat)); -for i=1:length(estimates_eNB.frame_tx_cat) - idx = find(estimates_UE.frame_tx_cat==estimates_eNB.frame_tx_cat(i)); - - if ~isempty(idx) - if length(idx)>1 - warning('More than one GPS coordinate matches'); - end - estimates_eNB.gps_lat_cat(i) = estimates_UE.gps_lat_cat(idx(1)); - estimates_eNB.gps_lon_cat(i) = estimates_UE.gps_lon_cat(idx(1)); - estimates_eNB.gps_time_cat(i) = estimates_UE.gps_time_cat(idx(1)); - estimates_eNB.K_fac_cat(:,i) = estimates_UE_ideal.K_fac_cat(:,idx(1)); - if isfield(estimates_UE,'gps_speed_cat') - estimates_eNB.gps_speed_cat(i) = estimates_UE.gps_speed_cat(idx(1)); - end - else - estimates_eNB.gps_lat_cat(i) = nan; - estimates_eNB.gps_lon_cat(i) = nan; - estimates_eNB.gps_time_cat(i) = nan; - estimates_eNB.K_fac_cat(:,i) = nan; - if isfield(estimates_UE,'gps_speed_cat') - estimates_eNB.gps_speed_cat(i) = nan; - end - end - -end - -%% -save(fullfile(pathname,'results_eNB.mat'), '-struct', 'estimates_eNB'); diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m b/openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m deleted file mode 100644 index f9a71faccb..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m +++ /dev/null @@ -1,52 +0,0 @@ -function mcs = get_mcs(dci_pdu, format) -% mcs = get_mcs(dci_pdu,format) -% dci_pdu is a vector of unit16 containing -% format is one of the following strings -% {format0, -% format1, -% format1A, -% format1B, -% format1C, -% format1D, -% format2, -% format2_2A_L10PRB, -% format2_2A_M10PRB, -% format2_4A_L10PRB, -% format2_4A_M10PRB, -% format2A_2A_L10PRB, -% format2A_2A_M10PRB, -% format2A_4A_L10PRB, -% format2A_4A_M10PRB, -% format3}; - -if nargin < 2 - format = 'format2A_2A_M10PRB'; -end - -switch format - case 'format2A_2A_M10PRB' - % this is for format type 2A, 5MHz, TDD, 2 antenna ports more than 10 PRB, - % 42 bits - % the mcs is in bits 24-28, so in bits 8-12 of the second word of the pdu - mask = uint16(0); - mask = bitset(mask,8); - mask = bitset(mask,9); - mask = bitset(mask,10); - mask = bitset(mask,11); - mask = bitset(mask,12); - mcs = bitand(mask,dci_pdu(2)); - mcs = bitshift(mcs,-8); - case 'format0' - % this is for format 0, 5MHz, TDD, 27 bits - % the mcs is in bits 11-15 - mask = uint16(0); - mask = bitset(mask,11); - mask = bitset(mask,12); - mask = bitset(mask,13); - mask = bitset(mask,14); - mask = bitset(mask,15); - mcs = bitand(mask,dci_pdu(1)); - mcs = bitshift(mcs,-11); - otherwise - error('format not yet implemented or wrong'); -end diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m b/openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m deleted file mode 100644 index 34deeb2751..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m +++ /dev/null @@ -1,58 +0,0 @@ -function tbs = get_tbs(mcs,n_rb) - -dlsch_tbs25 = [16,32,56,88,120,152,176,208,224,256,288,328,344,376,392,424,456,488,504,536,568,600,616,648,680;... - 24,56,88,144,176,208,224,256,328,344,376,424,456,488,520,568,600,632,680,712,744,776,808,872,904;... - 32,72,144,176,208,256,296,328,376,424,472,520,568,616,648,696,744,776,840,872,936,968,1000,1064,1096;... - 40,104,176,208,256,328,392,440,504,568,616,680,744,808,872,904,968,1032,1096,1160,1224,1256,1320,1384,1416;... - 56,120,208,256,328,408,488,552,632,696,776,840,904,1000,1064,1128,1192,1288,1352,1416,1480,1544,1608,1736,1800;... - 72,144,224,328,424,504,600,680,776,872,968,1032,1128,1224,1320,1384,1480,1544,1672,1736,1864,1928,2024,2088,2216;... - 328,176,256,392,504,600,712,808,936,1032,1128,1224,1352,1480,1544,1672,1736,1864,1992,2088,2216,2280,2408,2472,2600;... - 104,224,328,472,584,712,840,968,1096,1224,1320,1480,1608,1672,1800,1928,2088,2216,2344,2472,2536,2664,2792,2984,3112;... - 120,256,392,536,680,808,968,1096,1256,1384,1544,1672,1800,1928,2088,2216,2344,2536,2664,2792,2984,3112,3240,3368,3496;... - 136,296,456,616,776,936,1096,1256,1416,1544,1736,1864,2024,2216,2344,2536,2664,2856,2984,3112,3368,3496,3624,3752,4008;... - 144,328,504,680,872,1032,1224,1384,1544,1736,1928,2088,2280,2472,2664,2792,2984,3112,3368,3496,3752,3880,4008,4264,4392;... - 176,376,584,776,1000,1192,1384,1608,1800,2024,2216,2408,2600,2792,2984,3240,3496,3624,3880,4008,4264,4392,4584,4776,4968;... - 208,440,680,904,1128,1352,1608,1800,2024,2280,2472,2728,2984,3240,3368,3624,3880,4136,4392,4584,4776,4968,5352,5544,5736;... - 224,488,744,1000,1256,1544,1800,2024,2280,2536,2856,3112,3368,3624,3880,4136,4392,4584,4968,5160,5352,5736,5992,6200,6456;... - 256,552,840,1128,1416,1736,1992,2280,2600,2856,3112,3496,3752,4008,4264,4584,4968,5160,5544,5736,5992,6200,6456,6968,7224;... - 280,600,904,1224,1544,1800,2152,2472,2728,3112,3368,3624,4008,4264,4584,4968,5160,5544,5736,6200,6456,6712,6968,7224,7736;... - 328,632,968,1288,1608,1928,2280,2600,2984,3240,3624,3880,4264,4584,4968,5160,5544,5992,6200,6456,6712,7224,7480,7736,7992;... - 336,696,1064,1416,1800,2152,2536,2856,3240,3624,4008,4392,4776,5160,5352,5736,6200,6456,6712,7224,7480,7992,8248,8760,9144;... - 376,776,1160,1544,1992,2344,2792,3112,3624,4008,4392,4776,5160,5544,5992,6200,6712,7224,7480,7992,8248,8760,9144,9528,9912;... - 408,840,1288,1736,2152,2600,2984,3496,3880,4264,4776,5160,5544,5992,6456,6968,7224,7736,8248,8504,9144,9528,9912,10296,10680;... - 440,904,1384,1864,2344,2792,3240,3752,4136,4584,5160,5544,5992,6456,6968,7480,7992,8248,8760,9144,9912,10296,10680,11064,11448;... - 488,1000,1480,1992,2472,2984,3496,4008,4584,4968,5544,5992,6456,6968,7480,7992,8504,9144,9528,9912,10680,11064,11448,12216,12576;... - 520,1064,1608,2152,2664,3240,3752,4264,4776,5352,5992,6456,6968,7480,7992,8504,9144,9528,10296,10680,11448,11832,12576,12960,13536;... - 552,1128,1736,2280,2856,3496,4008,4584,5160,5736,6200,6968,7480,7992,8504,9144,9912,10296,11064,11448,12216,12576,12960,13536,14112;... - 584,1192,1800,2408,2984,3624,4264,4968,5544,5992,6712,7224,7992,8504,9144,9912,10296,11064,11448,12216,12960,13536,14112,14688,15264;... - 616,1256,1864,2536,3112,3752,4392,5160,5736,6200,6968,7480,8248,8760,9528,10296,10680,11448,12216,12576,13536,14112,14688,15264,15840;... - 712,1480,2216,2984,3752,4392,5160,5992,6712,7480,8248,8760,9528,10296,11064,11832,12576,13536,14112,14688,15264,16416,16992,17568,18336]; - -tbs = dlsch_tbs25(get_I_TBS(mcs)+1,n_rb); - -end - -function Qm = get_Qm(I_MCS) - if (I_MCS < 10) - Qm = 2; - elseif (I_MCS < 17) - Qm = 4; - else - Qm = 6; - end -end - -function Itbs = get_I_TBS(I_MCS) - if (I_MCS < 10) - Itbs = I_MCS; - elseif (I_MCS == 10) - Itbs = 9; - elseif (I_MCS < 17) - Itbs = I_MCS-1; - elseif (I_MCS == 17) - Itbs = 15; - else - Itbs = (I_MCS-2); - end -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m b/openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m deleted file mode 100644 index d505224f4a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m +++ /dev/null @@ -1,82 +0,0 @@ -%% -NFrames_cum = cumsum(mode2.NFrames); -parcours1 = false(1,length(mode2.timestamp_cat)); - -switch mm - case 'cordes' - idx(1) = 1; %start - idx(2) = strmatch('data_term3_idx30_20100511T164443.EMOS',char(mode2.filenames)); %end - idx(3) = strmatch('data_term3_idx22_20100518T145355.EMOS',char(mode2.filenames)); %start - idx(4) = strmatch('data_term3_idx11_20100520T153238.EMOS',char(mode2.filenames)); %end - - frame_idx = NFrames_cum(idx)/100; - parcours1(frame_idx(1):frame_idx(2)) = true; - parcours1(frame_idx(3):frame_idx(4)) = true; - case 'penne' - % double check this - do we neglect the coverage roads here? - idx = strmatch('data_term3_idx72_20100701T151158.EMOS',char(mode2.filenames)); - frame_idx = NFrames_cum(idx)/100; - parcours1(1:frame_idx) = true; - case 'ambialet' - idx(1) = strmatch('data_term3_idx34_20100719T191120.EMOS',char(mode2.filenames)); %last file before parcours 1 - idx(2) = strmatch('data_term3_idx07_20100721T180138.EMOS',char(mode2.filenames)); %last file of parcours 1 - - frame_idx = NFrames_cum(idx)/100; - parcours1(frame_idx(1)+1:frame_idx(2)) = true; -end - -%% -% mode1_ind = mode1.ind_common & ~mode1.ind_duplicate; -% mode2_ind = mode2.ind_common & ~mode2.ind_duplicate; -% mode6_ind = mode6.ind_common & ~mode6.ind_duplicate; -mode1_ind = true(1,length(mode1.timestamp_cat)); -mode2_ind = true(1,length(mode2.timestamp_cat)); -mode6_ind = true(1,length(mode6.timestamp_cat)); - - -%% -figure(1) -hold off -time1 = mode1.gps_time_cat(mode1_ind); -time2 = mode2.gps_time_cat(mode2_ind); -%time2_update = mode2_update.gps_time_cat; -time6 = mode6.gps_time_cat(mode6_ind); -select1 = zeros(size(time1)); -select2 = zeros(size(time2)); -%select2_update = zeros(size(time2_update)); -select6 = zeros(size(time6)); -plot(time1,select1,'x') -hold on -plot(time2,select2,'s') -%plot(time2_update,select2_update,'d') -plot(time6,select6,'o') -%legend('mode1','mode2','mode2_update','mode6') -legend('mode1','mode2','mode6') -linkdata on - -%% -figure(2) -hold off -[x1,y1] = plot_gps_coordinates(mm,mode1.gps_lon_cat(mode1_ind),mode1.gps_lat_cat(mode1_ind),[],[],'Mode1','blue','Marker','x','Line','none'); -hold on -[x2,y2] = plot_gps_coordinates('',mode2.gps_lon_cat(mode2_ind),mode2.gps_lat_cat(mode2_ind),[],[],'Mode2','blue','Marker','s','Line','none'); -%[x2_update,y2_update] = plot_gps_coordinates('',mode2_update.gps_lon_cat,mode2_update.gps_lat_cat); -[x6,y6] = plot_gps_coordinates('',mode6.gps_lon_cat(mode6_ind),mode6.gps_lat_cat(mode6_ind),[],[],'Mode6','blue','Marker','o','Line','none'); -linkdata on -set(findobj('XDataSource','x1'),'ZDataSource','select1'); -set(findobj('XDataSource','x2'),'ZDataSource','select2'); -%set(findobj('XDataSource','x2_update'),'ZDataSource','select2_update'); -set(findobj('XDataSource','x6'),'ZDataSource','select6'); -% you might have to set ZDataSource manually - - -% %% -% file_idx = zeros(size(select)); -% NFrames_idx = [1 cumsum(NFrames/100)]; -% for i=1:length(filenames) -% file_idx(NFrames_idx(i):NFrames_idx(i+1)) = i; -% end -% -% file_idxs = unique(file_idx(select==1)); -% {filenames{file_idxs}}.' - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m b/openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m deleted file mode 100644 index 3a0dde2b8a..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m +++ /dev/null @@ -1,93 +0,0 @@ -addpath('../IMPORT_FILTER') -addpath('maps') - -%% load file -[filename, pathname] = uigetfile('*.EMOS', 'Pick a file'); -[path,file,ext,ver] = fileparts(filename); - -cancel = 0; -if isequal(filename,0) || isequal(pathname,0) - disp('canceled') - %exit - cancel = 1; -end -if cancel == 0 -if filename(10)=='1' - is_eNb=1; -else - is_eNb=0; -end - -decimation = 100; -NFrames_max = 100*60*10; - -[H, H_fq, estimates, gps_data, NFrames] = load_estimates_lte(fullfile(pathname, filename),NFrames_max,decimation,is_eNb); - -%save('estimates.mat') - -%% -if is_eNb==0 - h_fig = figure(1); - plot([estimates.frame_tx],[estimates.frame_rx]) - title('Frame number') - ylabel('Received frame number'); - xlabel('Transmitted frame number'); - saveas(h_fig,'frame_tx.eps','epsc2') - - rx_rssi_dBm = zeros(1,NFrames/decimation); - for i=1:NFrames/decimation - rx_rssi_dBm(i) = estimates(i).phy_measurements(1).rx_rssi_dBm(1); - end - h_fig = figure(2); - plot([estimates.frame_tx],rx_rssi_dBm) - title('RX RSSI [dBm]') - xlabel('Frame number') - ylabel('RX RSSI [dBm]') - saveas(h_fig,'RX_rssi_dBm.eps','epsc2') - - h_fig = figure(3); - plot_gps_coordinates([],[gps_data.longitude], [gps_data.latitude],rx_rssi_dBm); - title('RX RSSI [dBm]') - saveas(h_fig,'RX_rssi_dBm_gps.jpg','jpg') - - pbch_fer = zeros(1,NFrames/decimation,1); - for i=1:NFrames/decimation - pbch_fer(i,:) = estimates(i).pbch_fer(1); - end - h_fig = figure(4); - plot([estimates.frame_tx], pbch_fer) - title('PBCH FER') - xlabel('Transmitted frame number'); - ylabel('PBCH FER') - saveas(h_fig,'pbch_fer.eps','epsc2') - - %h_fig = figure(4); - %mcs = zeros(1,NFrames/decimation,1); - %for i=1:NFrames/decimation - % mcs(i,:) = bin2dec(sprintf('%d',bitget(estimates(i).dci_alloc(1,6).dci_pdu(2),6:11))); - %end -else - rx_N0_dBm = zeros(1,NFrames/decimation); - rx_rssi_dBm = zeros(1,NFrames/decimation); - for i=1:NFrames/decimation - rx_N0_dBm(i) = estimates(i).phy_measurements_eNb(1).n0_power_tot_dBm(1); - rx_rssi_dBm(i) = estimates(i).phy_measurements_eNb(1).rx_rssi_dBm; - end - - h_fig = figure(2); - plot([estimates.frame_tx],rx_N0_dBm) - title('RX I0 [dBm]') - xlabel('Frame number') - ylabel('RX I0 [dBm]') - %saveas(h_fig,['RX_I0_dBm' file(5:end) '.eps'],'epsc2') - - h_fig = figure(3); - hold off - plot([estimates.frame_tx],rx_rssi_dBm); - title('RX RSSI [dBm]') - xlabel('Frame number') - ylabel('RX RSSI [dBm]') - %saveas(h_fig,['RX_I0_dBm_gps' file(5:end) '.jpg'],'jpg') - -end -end \ No newline at end of file diff --git a/openair1/EMOS/LTE/POST_PROCESSING/map_q.m b/openair1/EMOS/LTE/POST_PROCESSING/map_q.m deleted file mode 100644 index d5514304a0..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/map_q.m +++ /dev/null @@ -1,16 +0,0 @@ -function [qq] = map_q(qqq) - -if (qqq == -1) - qq = 3; - else - if(qqq == 1i) - qq = 2; - else - if(qqq == -1i) - qq = 1; - else - qq = 0; - end - end -end - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/mapping.m b/openair1/EMOS/LTE/POST_PROCESSING/mapping.m deleted file mode 100644 index 6c770fac2b..0000000000 --- a/openair1/EMOS/LTE/POST_PROCESSING/mapping.m +++ /dev/null @@ -1,36 +0,0 @@ -function [x1]=mapping(mod1) - -% mod1 = modulation on tx ant -% x1 = symbol stream by tx antenna - -%QAM 4 constellation -x_4=[-1 -1 1 1 ]; -y_4=[-1 1 -1 1 ]; -Qam4=x_4+y_4*j; -Qam4=Qam4/sqrt(sum(abs(Qam4).^2)/4); - -% QAM 16 constellation -x_16=[-1 -1 -1 -1 -3 -3 -3 -3 1 1 1 1 3 3 3 3 ]; -y_16=[-1 -3 1 3 -1 -3 1 3 -1 -3 1 3 -1 -3 1 3 ]; -Qam16=x_16+y_16*j; -Qam16=Qam16/sqrt(sum(abs(Qam16).^2)/16); - -% QAM 64 constellation -x_64=[-1 -1 -1 -1 -1 -1 -1 -1 -3 -3 -3 -3 -3 -3 -3 -3 -5 -5 -5 -5 -5 -5 -5 -5 -7 -7 -7 -7 -7 -7 -7 -7 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7]; -y_64=[-1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7]; -Qam64=x_64+y_64*sqrt(-1); -Qam64=Qam64/sqrt(sum(abs(Qam64).^2)/64); - -% Modulating on antenna 1 -if mod1==4 - x1=Qam4; -elseif mod1==16 - x1=Qam16; -elseif mod1==64 - x1=Qam64; -else - display('Modulation selected is not available in the library'); -end - - - diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG b/openair1/EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG deleted file mode 100644 index 5a29ff963c4d28a7abbd758501679e1aff107c99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1311548 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

PW^^34e`otXw_tu&1_C-V0QSufAJT?A=7sf0sHI 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

nzD~{O!={JeDaxR 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 x9&;8sI{>is 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�-!VW_UB_q{XcOm?T+<4-KZ z2{==skR5m(pi$Vt=GYPR%xpx1l+9E_NFMJ5&Xr~qu@$eO&KKuYrS2ltY zX|j+emzFEryYgykNta6S7e$D~B9B+xY<4kr!C#~Mah-2sVr>V?j01(tTHH4umD%mh zN=3iPHas5xo4!r8k9rHorz2brl{0sU2Yh`ageFv=^D0R`=p-;oQVh1e4|3I<)S%qhYz1hzX-t!cByb4g%Caq?}ocrIzH~&PW-s z>L=Es@UFUa{8Jp74tlE_H*fPN%m9oHrVAhm8X)`xzmktXzDZvRzBUggiXz$+6ANLI za}s3YoRYFfX(Bh1udzw7GDa4cTbessfxHd~h^T_bX6JwQ`WyG3B=eZlqrkzWxUeKS zH3c(>8;|eaN`BBRX{RenK_Zj)GZCC}&3*|T`AJ})a{x5I;fH#Ie@sHCf}|K`oxWQh*zETVASidSUj ziJkv$d~p_whWHC|<)B<6?HTBv3Qf{4i*Ci#R;|pWT#9dW8>H<+671xgG`)}qu{JW2 zpnzLUcdguG#ElWT1Z`a=srkjZwGH~icL#cy0!&Br9$f{3=RZQ)ITh?~+&W~8Ou>j1-W&B*btjLXN=tiAj_HLf*OBFS4a&?87p<$b zXPFl-T;ZK5$Y|SPnTW&`-&oXY)WTw=pwI>Pio$;kzo zimVdjSJT|R2=$C-?qK`X-y{0;>#<$cpx$oruCuNQp3~NVZ0JGCGlG06=IDw|%?Y&# zvH6E`1Q8PO%s%R^Y-wYzn%Ul=h(Y!RIOJPfhVh!; z+(?G`8>f$@SC!?ow0YJxTP>Er{tmnU6VD!%=w(j$BD#LoY21NXFMHi~-OTu%{G6vH zrC<8~k2FqSpU&(FMe-V&JmCeQ=-%I&-z86D=i{Wu3~1aYI8#oJ4johyUpT~r`s3GM zf0~`0nwwYG(b+APXXF;JEg&HoziDpA)WodGVC4nWuDpVL?!#-pdiC-B2mkX^pMLw5 zS5F;2T9#XYcc|Mw{P6C*Z++vN9*>7h!HsK`DB7gj;lSL9bJtPa;+DXrYisL6(C42J zwqtyaEr$bZkSyZZB<9Q8(9Dm4@XtEci#`HbfpgFwK4~s8uS`H3PHrsH&wCGir8k1R zxQ%fEH`!00dvxc2ef9H4Z(Po4t7S!5i0}HgW33itkf;j1gb3t;G0RZM-{vy@^Ep?TbHu@#Ry;#e%a-F1?Lzkz-;kyQ+MY2)9^_3627K zdTdg7OmID?X2z#y+WPyR7Zf&hbTLAh*KAfNCYB7Ch1E3zRcfV@@!bu!G#D!olWmj0kPr=3Xpk_nj#62RU9c-T^8UwdBY0uP3SnG3?_qC-oR6J>{x=~%6)Z13>G~VlK z%rz*o)%^`FW35Fs9^c>!cbL^U$jyN|Z*Lj`KKcuRY-Lfs1f9 zLT8!)$!_0!Y_vIFKXl|DzWmkq&YpXknRWQgnX0xHq{V`K6Pg(`X`}mFa~sQ1ob<

s7h7k3pJ)XFLLhMma#Q||!sL2oyPRao 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�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%0AIB63>j$jU_#*l1Z@)ul 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%0AfwyzTs+0|J!G!$G~&Z(*$ak}Oh7O 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

1F$mCFECR) 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

0eEt3X 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

Aqs%J440b7zfJjE;^jHS=<&2}uI95B#sr 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%0AZtiYM&{*) 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 z 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

NS3{`zNgc3o@LWiY0ej5bv8VZXEX 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 z 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%0Ake7Q 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

vXRfFLlyA40GsHR|`at;niBfBV)fZ6jVQXLsr= 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