diff --git a/src/core.c b/src/core.c index 18eef79..9974da9 100644 --- a/src/core.c +++ b/src/core.c @@ -73,10 +73,16 @@ int fill_labels(Labels *data) int i, err = 0; const uint8_t selected_page = opts->selected_page; +#if HAS_LIBCPUID if(HAS_LIBCPUID) err += call_libcpuid_static (data); if(HAS_LIBCPUID && DAEMON_UP) err += call_libcpuid_msr_static(data); +#endif +#if HAS_DMIDECODE if(HAS_DMIDECODE && DAEMON_UP) err += call_dmidecode (data); +#endif +#if HAS_LIBPCI if(HAS_LIBPCI) err += find_devices (data); +#endif casprintf(&data->tab_cpu[VALUE][BUSSPEED], true, "%.2f MHz", data->bus_freq); err += system_static (data); @@ -101,15 +107,19 @@ int do_refresh(Labels *data) switch(opts->selected_page) { case NO_CPU: +#if HAS_LIBCPUID if(HAS_LIBCPUID) err += err_func(call_libcpuid_dynamic, data); if(HAS_LIBCPUID && DAEMON_UP) err += err_func(call_libcpuid_msr_dynamic, data); +#endif err += err_func(cpu_usage, data); err += fallback_mode_dynamic(data); err += err_func(cputab_fill_multipliers, data); break; +#if HAS_BANDWIDTH case NO_CACHES: if(HAS_BANDWIDTH) err += err_func(call_bandwidth, data); break; +#endif case NO_SYSTEM: if(HAS_LIBSYSTEM) err += err_func(system_dynamic, data); break; @@ -1339,11 +1349,13 @@ static int fallback_mode_static(Labels *data) { int err = 0; +#if HAS_LIBCPUID if(HAS_LIBCPUID && (string_is_empty(data->tab_cpu[VALUE][PACKAGE]) || strstr(data->tab_cpu[VALUE][PACKAGE], "CPU") != NULL || strstr(data->tab_cpu[VALUE][PACKAGE], "Microprocessor") != NULL)) err += cputab_package_fallback(data); +#endif if(data->cpu_min_mult <= 0.0 || data->cpu_max_mult <= 0.0) err += cputab_multipliers_fallback(data); diff --git a/src/core.h b/src/core.h index c461cf3..ab1a018 100644 --- a/src/core.h +++ b/src/core.h @@ -54,21 +54,27 @@ static int cputab_fill_multipliers(Labels *data); /* Required: none Both normal and fallback mode provide CPU multipliers, need to be call after */ +#if HAS_DMIDECODE /* Elements provided by dmidecode */ static int call_dmidecode(Labels *data); /* Required: HAS_DMIDECODE && DAEMON_UP */ +#endif +#if HAS_BANDWIDTH /* Compute CPU cache speed */ static int call_bandwidth(Labels *data); /* Required: HAS_BANDWIDTH */ +#endif /* Calculate total CPU usage */ static int cpu_usage(Labels *data); /* Required: none */ +#if HAS_LIBPCI /* Find some PCI devices, like chipset and GPU */ static int find_devices(Labels *data); /* Required: HAS_LIBPCI */ +#endif /* Retrieve GPU temperature */ static int gpu_temperature(Labels *data); diff --git a/src/daemon.c b/src/daemon.c index f4b77b8..ea9ef9b 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -225,10 +225,16 @@ static void *request_handler(void *p_data) switch(cmd) { +#if HAS_LIBCPUID case LIBCPUID_MSR_STATIC: if(HAS_LIBCPUID) __call_libcpuid_msr_static(&td->fd); break; case LIBCPUID_MSR_DYNAMIC: if(HAS_LIBCPUID) __call_libcpuid_msr_dynamic(&td->fd); break; +#endif +#if HAS_DMIDECODE case DMIDECODE: if(HAS_DMIDECODE) __call_dmidecode(&td->fd); break; +#endif +#if HAS_LIBPCI case ACCESS_DEV_PCI: if(HAS_LIBPCI) __find_devices(&td->fd); break; +#endif case ACCESS_SYS_DEBUG: __sys_debug_ok(&td->fd); break; case LOAD_MODULE: __load_module(&td->fd); break; } @@ -299,8 +305,10 @@ int main(void) /* Logs */ unlink(LOG_FILE); +#if HAS_LIBCPUID if(HAS_LIBCPUID && getenv("CPUX_DAEMON_DEBUG")) libcpuid_msr_serialize(); +#endif freopen(LOG_FILE, "a", stdout); setvbuf(stdout, NULL, _IONBF, 0); dup2(STDOUT_FILENO, STDERR_FILENO); diff --git a/src/main.c b/src/main.c index 1aba775..0ac605d 100644 --- a/src/main.c +++ b/src/main.c @@ -557,7 +557,7 @@ static void help(char *binary_name) MSG_STDOUT(_("\nInfluenceable environment variables:")); for(i = 0; cpux_env_vars[i].var_name != NULL; i++) { - if(!cpux_options[i].has_mod) + if(!cpux_env_vars[i].has_mod) continue; MSG_STDOUT(" %-20s %s", cpux_env_vars[i].var_name, _(cpux_env_vars[i].description)); }