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