1 /* $Id: kbuild_version.c 2851 2016-08-31 17:30:52Z bird $ */
2 /** @file
3  * kbuild_version(), helper function.
4  */
5 
6 /*
7  * Copyright (c) 2007-2013 knut st. osmundsen <bird-kBuild-spamx@anduin.net>
8  *
9  * Permission is hereby granted, free of charge, to any person obtaining a
10  * copy of this software and associated documentation files (the "Software"),
11  * to deal in the Software without restriction, including without limitation
12  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13  * and/or sell copies of the Software, and to permit persons to whom the
14  * Software is furnished to do so, subject to the following conditions:
15  *
16  * The above copyright notice and this permission notice shall be included
17  * in all copies or substantial portions of the Software.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
25  * IN THE SOFTWARE.
26  *
27  * Alternatively, the content of this file may be used under the terms of the
28  * GPL version 2 or later, or LGPL version 2.1 or later.
29  */
30 
31 /*******************************************************************************
32 *   Header Files                                                               *
33 *******************************************************************************/
34 #include "kbuild_version.h"
35 #include <string.h>
36 #include <stdio.h>
37 
38 
39 /**
40  * Prints the kBuild version message and returns 0.
41  *
42  * @returns 0
43  * @param   argv0       The argv0.
44  */
kbuild_version(const char * argv0)45 int kbuild_version(const char *argv0)
46 {
47     const char *tmp;
48 
49     /* skip the path */
50     for (tmp = strpbrk(argv0, "\\/:"); tmp; tmp = strpbrk(argv0, "\\/:"))
51         argv0 = tmp + 1;
52 
53     /* find the end, ignoring extenions */
54     tmp = strrchr(argv0, '.');
55     if (!tmp)
56         tmp = strchr(argv0, '\0');
57 
58     printf("%.*s - kBuild version %d.%d.%d (r%u)\n",
59            (int)(tmp - argv0), argv0,
60            KBUILD_VERSION_MAJOR, KBUILD_VERSION_MINOR, KBUILD_VERSION_PATCH,
61            KBUILD_SVN_REV);
62     return 0;
63 }
64 
65