15
15
# $1 = filename
16
16
# $2 = osc component names
17
17
#
18
- AC_DEFUN([mca_ompi_osc_monitoring_generate_templates],[
19
- m4_ifval([$1 ], [
20
- AC_CONFIG_COMMANDS([$1 ],
21
- [filename= " $1 "
22
- components= ` echo " $2 " | sed -e ' s/,/ /g' -e ' s/monitoring//' `
23
- cat << EOF > $filename
18
+ AC_DEFUN(
19
+ [MCA_OMPI_OSC_MONITORING_GENERATE_TEMPLATES],
20
+ [m4_ifval(
21
+ [$1 ],
22
+ [AC_CONFIG_COMMANDS(
23
+ [$1 ],
24
+ [filename= " $1 "
25
+ components= ` echo " $2 " | sed -e ' s/,/ /g' -e ' s/monitoring//' `
26
+ cat << EOF > $filename
24
27
/* $filename
25
28
*
26
29
* This file was generated from ompi/mca/osc/monitoring/configure.m4
@@ -40,56 +43,56 @@ AC_DEFUN([mca_ompi_osc_monitoring_generate_templates],[
40
43
# ifndef MCA_OSC_MONITORING_GEN_TEMPLATE_H
41
44
# define MCA_OSC_MONITORING_GEN_TEMPLATE_H
42
45
43
- # include <string.h>
44
46
# include <ompi_config.h>
45
47
# include <ompi/mca/osc/osc.h>
46
48
# include <ompi/mca/osc/monitoring/osc_monitoring_template.h>
47
49
48
- /*************************************** /
49
- /* Include template generating macros * /
50
+ /************************************************************ /
51
+ /* Include template generating macros and inlined functions * /
50
52
51
53
EOF
52
- # Generate each case in order to register the proper template functions
53
- for comp in $components
54
- do
55
- echo " OSC_MONITORING_MODULE_TEMPLATE_GENERATE(${comp} )" >> $filename
56
- done
57
- cat << EOF >> $filename
54
+ # Generate each case in order to register the proper template functions
55
+ for comp in $components
56
+ do
57
+ echo " OSC_MONITORING_MODULE_TEMPLATE_GENERATE(${comp} )" >> $filename
58
+ done
59
+ cat << EOF >> $filename
58
60
59
- /*************************************** /
61
+ /************************************************************ /
60
62
61
- static inline int
62
- ompi_mca_osc_monitoring_set_template(ompi_osc_base_component_t * best_component,
63
- ompi_osc_base_module_t * module)
64
- {
65
- /* Sorry for the lack on indentation, but the portability won over the cleanliness * /
63
+ typedef struct {
64
+ const char * name;
65
+ ompi_osc_base_module_t * (* fct) (ompi_osc_base_module_t * );
66
+ } osc_monitoring_components_list_t;
67
+
68
+ static const osc_monitoring_components_list_t osc_monitoring_components_list[[]] = {
66
69
EOF
67
- for comp in $components
68
- do
69
- echo " if ( 0 == strcmp(\" ${comp} \" , best_component->osc_version.mca_component_name) ) {" >> $filename
70
- echo " OSC_MONITORING_SET_TEMPLATE_FCT_NAME(${comp} ) (module);" >> $filename
71
- echo " } else " >> $filename
72
- done
73
- cat << EOF >>$filename
74
- return OMPI_ERR_NOT_SUPPORTED;
75
- return OMPI_SUCCESS;
76
- }
70
+ for comp in $components
71
+ do
72
+ echo " { .name = \" ${comp} \" , .fct = OSC_MONITORING_SET_TEMPLATE_FCT_NAME(${comp} ) }," >> $filename
73
+ done
74
+ cat << EOF >>$filename
75
+ { .name = NULL, .fct = NULL }
76
+ };
77
77
78
78
#endif /* MCA_OSC_MONITORING_GEN_TEMPLATE_H */
79
79
EOF
80
- unset filename components])
80
+ unset filename components
81
+ ])
81
82
])dnl
82
- ])dnl
83
+ ])dnl
83
84
84
85
# MCA_ompi_osc_monitoring_CONFIG()
85
86
# ------------------------------------------------
86
- AC_DEFUN([MCA_ompi_osc_monitoring_CONFIG],[
87
- AC_CONFIG_FILES([ompi/mca/osc/monitoring/Makefile])
87
+ AC_DEFUN(
88
+ [MCA_ompi_osc_monitoring_CONFIG],
89
+ [AC_CONFIG_FILES([ompi/mca/osc/monitoring/Makefile])
88
90
89
- AS_IF([test " $MCA_BUILD_ompi_common_monitoring_DSO_TRUE " = ' ' ],
90
- [$1 ],
91
- [$2 ])
91
+ AS_IF([test " $MCA_BUILD_ompi_common_monitoring_DSO_TRUE " = ' ' ],
92
+ [$1 ],
93
+ [$2 ])
92
94
93
- mca_ompi_osc_monitoring_generate_templates([ompi/mca/osc/monitoring/osc_monitoring_template_gen.h],
94
- [mca_ompi_osc_m4_config_component_list, mca_ompi_osc_no_config_component_list])dnl
95
- ])dnl
95
+ MCA_OMPI_OSC_MONITORING_GENERATE_TEMPLATES(
96
+ [ompi/mca/osc/monitoring/osc_monitoring_template_gen.h],
97
+ [mca_ompi_osc_m4_config_component_list, mca_ompi_osc_no_config_component_list])dnl
98
+ ])dnl
0 commit comments