diff options
Diffstat (limited to 'libsensors_iio/tools')
-rw-r--r-- | libsensors_iio/tools/cfgdefine.c | 222 | ||||
-rw-r--r-- | libsensors_iio/tools/cfgdefine.h | 50 | ||||
-rw-r--r-- | libsensors_iio/tools/kconfig-language.txt | 395 | ||||
-rwxr-xr-x | libsensors_iio/tools/kconfig-mconf | bin | 482182 -> 0 bytes | |||
-rwxr-xr-x | libsensors_iio/tools/mkconfig | bin | 14294 -> 0 bytes | |||
-rw-r--r-- | libsensors_iio/tools/mkconfig.c | 90 |
6 files changed, 0 insertions, 757 deletions
diff --git a/libsensors_iio/tools/cfgdefine.c b/libsensors_iio/tools/cfgdefine.c deleted file mode 100644 index 5fe5b14..0000000 --- a/libsensors_iio/tools/cfgdefine.c +++ /dev/null @@ -1,222 +0,0 @@ -/**************************************************************************** - * tools/cfgdefine.c - * - * Copyright (C) 2007-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Modified by Denis Ciocca <denis.ciocca@st.com> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -#include <stdio.h> -#include <string.h> -#include <sys/cdefs.h> -#include <sys/types.h> -#include <sys/stat.h> -#include "cfgdefine.h" -#include <stdbool.h> - -#define CUTOM_MACRO_LIST 6 - -char line[LINESIZE + 1]; - -static struct custom_macro { - char name[45]; -} custom_macro[] = { - { .name = "CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_ACCEL" }, - { .name = "CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_MAGN" }, - { .name = "CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_GYRO" }, - { .name = "CONFIG_ST_HAL_ACCEL_ROT_MATRIX" }, - { .name = "CONFIG_ST_HAL_MAGN_ROT_MATRIX" }, - { .name = "CONFIG_ST_HAL_GYRO_ROT_MATRIX" }, -}; - -/* Skip over any spaces */ -static char *skip_space(char *ptr) -{ - while (*ptr && isspace((int)*ptr)) ptr++; - - return ptr; -} - -/* Find the end of a variable string */ -static char *find_name_end(char *ptr) -{ - while (*ptr && (isalnum((int)*ptr) || *ptr == '_')) ptr++; - - return ptr; -} - -/* Find the end of a value string */ -static char *find_value_end(char *ptr) -{ - while (*ptr && !isspace((int)*ptr)) { - if (*ptr == '"') { - do ptr++; while (*ptr && *ptr != '"'); - if (*ptr) ptr++; - } else - do ptr++; while (*ptr && !isspace((int)*ptr) && *ptr != '"'); - - } - - return ptr; -} - -/* Read the next line from the configuration file */ -static char *read_line(FILE *stream) -{ - char *ptr; - - for (;;) { - line[LINESIZE] = '\0'; - - if (!fgets(line, LINESIZE, stream)) - return NULL; - else { - ptr = skip_space(line); - if (*ptr && *ptr != '#' && *ptr != '\n') - return ptr; - else if ((*ptr == '#') && (*(ptr+1) == '\n')) - printf("\n"); - } - } - - return NULL; -} - -static void dequote_custom_values(char *var, char *value) -{ - int i, n, ret; - char *t1; - - if (!var) - return; - - for (i = 0; i < CUTOM_MACRO_LIST; i++) { - ret = strncmp(custom_macro[i].name, var, strlen(custom_macro[i].name)); - if (ret == 0) { - for (n = 1; n < strlen(value) - 1; n++) - value[n - 1] = value[n]; - - value[n - 1] = '\0'; - return; - } - } - - return; -} - -/* Parse the line from the configuration file into a variable name - * string and a value string. - */ -static void parse_line(char *ptr, char **varname, char **varval) -{ - /* Skip over any leading spaces */ - ptr = skip_space(ptr); - - /* The first no-space is the beginning of the variable name */ - *varname = skip_space(ptr); - *varval = NULL; - - /* Parse to the end of the variable name */ - ptr = find_name_end(ptr); - - /* An equal sign is expected next, perhaps after some white space */ - if (*ptr && *ptr != '=') { - /* Some else follows the variable name. Terminate the variable - * name and skip over any spaces. - */ - - *ptr = '\0'; - ptr = skip_space(ptr + 1); - } - - /* Verify that the equal sign is present */ - if (*ptr == '=') { - /* Make sure that the variable name is terminated (this was already - * done if the name was followed by white space. - */ - - *ptr = '\0'; - - /* The variable value should follow =, perhaps separated by some - * white space. - */ - - ptr = skip_space(ptr + 1); - if (*ptr) { - /* Yes.. a variable follows. Save the pointer to the start - * of the variable string. - */ - - *varval = ptr; - - /* Find the end of the variable string and make sure that it - * is terminated. - */ - - ptr = find_value_end(ptr); - *ptr = '\0'; - } - } -} - -void generate_definitions(FILE *stream) -{ - char *varname; - char *varval; - char *ptr; - - /* Loop until the entire file has been parsed. */ - do { - /* Read the next line from the file */ - ptr = read_line(stream); - if (ptr) { - /* Parse the line into a variable and a value field */ - parse_line(ptr, &varname, &varval); - - dequote_custom_values(varname, varval); - - /* Was a variable name found? */ - if (varname) { - /* If no value was provided or if the special value 'n' was provided, - * then undefine the configuration variable. - */ - - if (!varval || strcmp(varval, "n") == 0) - printf("#undef %s\n", varname); - else if (strcmp(varval, "y") == 0) - printf("#define %s 1\n", varname); - else - printf("#define %s %s\n", varname, varval); - } - } - } while (ptr); -} diff --git a/libsensors_iio/tools/cfgdefine.h b/libsensors_iio/tools/cfgdefine.h deleted file mode 100644 index fd7d9a2..0000000 --- a/libsensors_iio/tools/cfgdefine.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** - * tools/cfgdefine.h - * - * Copyright (C) 2007-2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Modified by Denis Ciocca <denis.ciocca@st.com> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -#ifndef __TOOLS_CFGDEFINE_H -#define __TOOLS_CFGDEFINE_H - -#include <stdio.h> -#include <limits.h> - -#define LINESIZE ( PATH_MAX > 256 ? PATH_MAX : 256 ) - -extern char line[LINESIZE+1]; - -void generate_definitions(FILE *stream); - -#endif /* __TOOLS_CFGDEFINE_H */ diff --git a/libsensors_iio/tools/kconfig-language.txt b/libsensors_iio/tools/kconfig-language.txt deleted file mode 100644 index 350f733..0000000 --- a/libsensors_iio/tools/kconfig-language.txt +++ /dev/null @@ -1,395 +0,0 @@ -Introduction ------------- - -The configuration database is a collection of configuration options -organized in a tree structure: - - +- Code maturity level options - | +- Prompt for development and/or incomplete code/drivers - +- General setup - | +- Networking support - | +- System V IPC - | +- BSD Process Accounting - | +- Sysctl support - +- Loadable module support - | +- Enable loadable module support - | +- Set version information on all module symbols - | +- Kernel module loader - +- ... - -Every entry has its own dependencies. These dependencies are used -to determine the visibility of an entry. Any child entry is only -visible if its parent entry is also visible. - -Menu entries ------------- - -Most entries define a config option; all other entries help to organize -them. A single configuration option is defined like this: - -config MODVERSIONS - bool "Set version information on all module symbols" - depends on MODULES - help - Usually, modules have to be recompiled whenever you switch to a new - kernel. ... - -Every line starts with a key word and can be followed by multiple -arguments. "config" starts a new config entry. The following lines -define attributes for this config option. Attributes can be the type of -the config option, input prompt, dependencies, help text and default -values. A config option can be defined multiple times with the same -name, but every definition can have only a single input prompt and the -type must not conflict. - -Menu attributes ---------------- - -A menu entry can have a number of attributes. Not all of them are -applicable everywhere (see syntax). - -- type definition: "bool"/"tristate"/"string"/"hex"/"int" - Every config option must have a type. There are only two basic types: - tristate and string; the other types are based on these two. The type - definition optionally accepts an input prompt, so these two examples - are equivalent: - - bool "Networking support" - and - bool - prompt "Networking support" - -- input prompt: "prompt" <prompt> ["if" <expr>] - Every menu entry can have at most one prompt, which is used to display - to the user. Optionally dependencies only for this prompt can be added - with "if". - -- default value: "default" <expr> ["if" <expr>] - A config option can have any number of default values. If multiple - default values are visible, only the first defined one is active. - Default values are not limited to the menu entry where they are - defined. This means the default can be defined somewhere else or be - overridden by an earlier definition. - The default value is only assigned to the config symbol if no other - value was set by the user (via the input prompt above). If an input - prompt is visible the default value is presented to the user and can - be overridden by him. - Optionally, dependencies only for this default value can be added with - "if". - -- type definition + default value: - "def_bool"/"def_tristate" <expr> ["if" <expr>] - This is a shorthand notation for a type definition plus a value. - Optionally dependencies for this default value can be added with "if". - -- dependencies: "depends on" <expr> - This defines a dependency for this menu entry. If multiple - dependencies are defined, they are connected with '&&'. Dependencies - are applied to all other options within this menu entry (which also - accept an "if" expression), so these two examples are equivalent: - - bool "foo" if BAR - default y if BAR - and - depends on BAR - bool "foo" - default y - -- reverse dependencies: "select" <symbol> ["if" <expr>] - While normal dependencies reduce the upper limit of a symbol (see - below), reverse dependencies can be used to force a lower limit of - another symbol. The value of the current menu symbol is used as the - minimal value <symbol> can be set to. If <symbol> is selected multiple - times, the limit is set to the largest selection. - Reverse dependencies can only be used with boolean or tristate - symbols. - Note: - select should be used with care. select will force - a symbol to a value without visiting the dependencies. - By abusing select you are able to select a symbol FOO even - if FOO depends on BAR that is not set. - In general use select only for non-visible symbols - (no prompts anywhere) and for symbols with no dependencies. - That will limit the usefulness but on the other hand avoid - the illegal configurations all over. - -- limiting menu display: "visible if" <expr> - This attribute is only applicable to menu blocks, if the condition is - false, the menu block is not displayed to the user (the symbols - contained there can still be selected by other symbols, though). It is - similar to a conditional "prompt" attribute for individual menu - entries. Default value of "visible" is true. - -- numerical ranges: "range" <symbol> <symbol> ["if" <expr>] - This allows to limit the range of possible input values for int - and hex symbols. The user can only input a value which is larger than - or equal to the first symbol and smaller than or equal to the second - symbol. - -- help text: "help" or "---help---" - This defines a help text. The end of the help text is determined by - the indentation level, this means it ends at the first line which has - a smaller indentation than the first line of the help text. - "---help---" and "help" do not differ in behaviour, "---help---" is - used to help visually separate configuration logic from help within - the file as an aid to developers. - -- misc options: "option" <symbol>[=<value>] - Various less common options can be defined via this option syntax, - which can modify the behaviour of the menu entry and its config - symbol. These options are currently possible: - - - "defconfig_list" - This declares a list of default entries which can be used when - looking for the default configuration (which is used when the main - .config doesn't exists yet.) - - - "modules" - This declares the symbol to be used as the MODULES symbol, which - enables the third modular state for all config symbols. - At most one symbol may have the "modules" option set. - - - "env"=<value> - This imports the environment variable into Kconfig. It behaves like - a default, except that the value comes from the environment, this - also means that the behaviour when mixing it with normal defaults is - undefined at this point. The symbol is currently not exported back - to the build environment (if this is desired, it can be done via - another symbol). - - - "allnoconfig_y" - This declares the symbol as one that should have the value y when - using "allnoconfig". Used for symbols that hide other symbols. - -Menu dependencies ------------------ - -Dependencies define the visibility of a menu entry and can also reduce -the input range of tristate symbols. The tristate logic used in the -expressions uses one more state than normal boolean logic to express the -module state. Dependency expressions have the following syntax: - -<expr> ::= <symbol> (1) - <symbol> '=' <symbol> (2) - <symbol> '!=' <symbol> (3) - '(' <expr> ')' (4) - '!' <expr> (5) - <expr> '&&' <expr> (6) - <expr> '||' <expr> (7) - -Expressions are listed in decreasing order of precedence. - -(1) Convert the symbol into an expression. Boolean and tristate symbols - are simply converted into the respective expression values. All - other symbol types result in 'n'. -(2) If the values of both symbols are equal, it returns 'y', - otherwise 'n'. -(3) If the values of both symbols are equal, it returns 'n', - otherwise 'y'. -(4) Returns the value of the expression. Used to override precedence. -(5) Returns the result of (2-/expr/). -(6) Returns the result of min(/expr/, /expr/). -(7) Returns the result of max(/expr/, /expr/). - -An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2 -respectively for calculations). A menu entry becomes visible when its -expression evaluates to 'm' or 'y'. - -There are two types of symbols: constant and non-constant symbols. -Non-constant symbols are the most common ones and are defined with the -'config' statement. Non-constant symbols consist entirely of alphanumeric -characters or underscores. -Constant symbols are only part of expressions. Constant symbols are -always surrounded by single or double quotes. Within the quote, any -other character is allowed and the quotes can be escaped using '\'. - -Menu structure --------------- - -The position of a menu entry in the tree is determined in two ways. First -it can be specified explicitly: - -menu "Network device support" - depends on NET - -config NETDEVICES - ... - -endmenu - -All entries within the "menu" ... "endmenu" block become a submenu of -"Network device support". All subentries inherit the dependencies from -the menu entry, e.g. this means the dependency "NET" is added to the -dependency list of the config option NETDEVICES. - -The other way to generate the menu structure is done by analyzing the -dependencies. If a menu entry somehow depends on the previous entry, it -can be made a submenu of it. First, the previous (parent) symbol must -be part of the dependency list and then one of these two conditions -must be true: -- the child entry must become invisible, if the parent is set to 'n' -- the child entry must only be visible, if the parent is visible - -config MODULES - bool "Enable loadable module support" - -config MODVERSIONS - bool "Set version information on all module symbols" - depends on MODULES - -comment "module support disabled" - depends on !MODULES - -MODVERSIONS directly depends on MODULES, this means it's only visible if -MODULES is different from 'n'. The comment on the other hand is always -visible when MODULES is visible (the (empty) dependency of MODULES is -also part of the comment dependencies). - - -Kconfig syntax --------------- - -The configuration file describes a series of menu entries, where every -line starts with a keyword (except help texts). The following keywords -end a menu entry: -- config -- menuconfig -- choice/endchoice -- comment -- menu/endmenu -- if/endif -- source -The first five also start the definition of a menu entry. - -config: - - "config" <symbol> - <config options> - -This defines a config symbol <symbol> and accepts any of above -attributes as options. - -menuconfig: - "menuconfig" <symbol> - <config options> - -This is similar to the simple config entry above, but it also gives a -hint to front ends, that all suboptions should be displayed as a -separate list of options. - -choices: - - "choice" [symbol] - <choice options> - <choice block> - "endchoice" - -This defines a choice group and accepts any of the above attributes as -options. A choice can only be of type bool or tristate, while a boolean -choice only allows a single config entry to be selected, a tristate -choice also allows any number of config entries to be set to 'm'. This -can be used if multiple drivers for a single hardware exists and only a -single driver can be compiled/loaded into the kernel, but all drivers -can be compiled as modules. -A choice accepts another option "optional", which allows to set the -choice to 'n' and no entry needs to be selected. -If no [symbol] is associated with a choice, then you can not have multiple -definitions of that choice. If a [symbol] is associated to the choice, -then you may define the same choice (ie. with the same entries) in another -place. - -comment: - - "comment" <prompt> - <comment options> - -This defines a comment which is displayed to the user during the -configuration process and is also echoed to the output files. The only -possible options are dependencies. - -menu: - - "menu" <prompt> - <menu options> - <menu block> - "endmenu" - -This defines a menu block, see "Menu structure" above for more -information. The only possible options are dependencies and "visible" -attributes. - -if: - - "if" <expr> - <if block> - "endif" - -This defines an if block. The dependency expression <expr> is appended -to all enclosed menu entries. - -source: - - "source" <prompt> - -This reads the specified configuration file. This file is always parsed. - -mainmenu: - - "mainmenu" <prompt> - -This sets the config program's title bar if the config program chooses -to use it. It should be placed at the top of the configuration, before any -other statement. - - -Kconfig hints -------------- -This is a collection of Kconfig tips, most of which aren't obvious at -first glance and most of which have become idioms in several Kconfig -files. - -Adding common features and make the usage configurable -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -It is a common idiom to implement a feature/functionality that are -relevant for some architectures but not all. -The recommended way to do so is to use a config variable named HAVE_* -that is defined in a common Kconfig file and selected by the relevant -architectures. -An example is the generic IOMAP functionality. - -We would in lib/Kconfig see: - -# Generic IOMAP is used to ... -config HAVE_GENERIC_IOMAP - -config GENERIC_IOMAP - depends on HAVE_GENERIC_IOMAP && FOO - -And in lib/Makefile we would see: -obj-$(CONFIG_GENERIC_IOMAP) += iomap.o - -For each architecture using the generic IOMAP functionality we would see: - -config X86 - select ... - select HAVE_GENERIC_IOMAP - select ... - -Note: we use the existing config option and avoid creating a new -config variable to select HAVE_GENERIC_IOMAP. - -Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is -introduced to overcome the limitation of select which will force a -config option to 'y' no matter the dependencies. -The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the -situation where select forces a symbol equals to 'y'. - -Build as module only -~~~~~~~~~~~~~~~~~~~~ -To restrict a component build to module-only, qualify its config symbol -with "depends on m". E.g.: - -config FOO - depends on BAR && m - -limits FOO to module (=m) or disabled (=n). diff --git a/libsensors_iio/tools/kconfig-mconf b/libsensors_iio/tools/kconfig-mconf Binary files differdeleted file mode 100755 index 3f84ffb..0000000 --- a/libsensors_iio/tools/kconfig-mconf +++ /dev/null diff --git a/libsensors_iio/tools/mkconfig b/libsensors_iio/tools/mkconfig Binary files differdeleted file mode 100755 index c2b1af1..0000000 --- a/libsensors_iio/tools/mkconfig +++ /dev/null diff --git a/libsensors_iio/tools/mkconfig.c b/libsensors_iio/tools/mkconfig.c deleted file mode 100644 index 8655711..0000000 --- a/libsensors_iio/tools/mkconfig.c +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** - * tools/mkconfig.c - * - * Copyright (C) 2007-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Modified by Denis Ciocca <denis.ciocca@st.com> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -#include <string.h> -#include <stdlib.h> -#include <errno.h> - -#include "cfgdefine.h" - -#define DEFCONFIG ".config" - - static inline char *getfilepath(const char *name) -{ - snprintf(line, PATH_MAX, "%s/" DEFCONFIG, name); - line[PATH_MAX] = '\0'; - return strdup(line); -} - -static void show_usage(const char *progname) -{ - fprintf(stderr, "USAGE: %s <abs path to .config>\n", progname); - exit(1); -} - -int main(int argc, char **argv, char **envp) -{ - char *filepath; - FILE *stream; - - if (argc != 2) { - fprintf(stderr, "Unexpected number of arguments\n"); - show_usage(argv[0]); - } - - filepath = getfilepath(argv[1]); - if (!filepath) { - fprintf(stderr, "getfilepath failed\n"); - exit(2); - } - - stream = fopen(filepath, "r"); - if (!stream) { - fprintf(stderr, "open %s failed: %s\n", filepath, strerror(errno)); - exit(3); - } - - printf("/* configuration.h -- Autogenerated file! Do not edit. */\n\n"); - printf("#ifndef __ST_SENSOR_HAL_CONFIG_H\n"); - printf("#define __ST_SENSOR_HAL_CONFIG_H\n\n"); - generate_definitions(stream); - printf("\n"); - printf("#endif /* __ST_SENSOR_HAL_CONFIG_H */\n"); - fclose(stream); - - return 0; -} |