This patch will create ./configure.h which will contain two new #define
strings.  CONFIGURE_DEFINES will contain all USE, ENABLED, DISABLED and
DEPRECATED defines from ./config.h.  CONFIGURE_CALL will contain the
complete ./configure line which was used when configuring the package
for building.

Signed-off-by: David Sommerseth <d...@users.sourceforge.net>
---
 Makefile.am       |    7 +++++++
 configure_h.awk   |   39 +++++++++++++++++++++++++++++++++++++++
 configure_log.awk |   36 ++++++++++++++++++++++++++++++++++++
 options.c         |    3 +++
 4 files changed, 85 insertions(+), 0 deletions(-)
 create mode 100644 configure_h.awk
 create mode 100644 configure_log.awk

diff --git a/Makefile.am b/Makefile.am
index e199b17..0b909f9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,6 +6,7 @@
 #             packet compression.
 #
 #  Copyright (C) 2002-2009 OpenVPN Technologies, Inc. <sa...@openvpn.net>
+#  Copyright (C) 2010      David Sommerseth <d...@users.sourceforge.net>
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License version 2
@@ -141,6 +142,12 @@ openvpn_SOURCES = \
        cryptoapi.h cryptoapi.c \
        deprecated.h deprecated.c

+configure.h: Makefile
+       awk -f configure_h.awk config.h > $@
+       awk -f configure_log.awk config.log >> $@
+
+clean-local:
+       -rm -f configure.h

 dist-hook:
        cd $(distdir) && for i in $(EXTRA_DIST) $(SUBDIRS) ; do find $$i -name 
.svn -type d -prune -exec rm -rf '{}' ';' ; rm -f `find $$i -type f | grep -E 
'(^|\/)\.?\#|\~$$|\.s?o$$'` ; done
diff --git a/configure_h.awk b/configure_h.awk
new file mode 100644
index 0000000..672e745
--- /dev/null
+++ b/configure_h.awk
@@ -0,0 +1,39 @@
+#
+#  OpenVPN -- An application to securely tunnel IP networks
+#             over a single UDP port, with support for SSL/TLS-based
+#             session authentication and key exchange,
+#             packet encryption, packet authentication, and
+#             packet compression.
+#
+#  Copyright (C) 2010  David Sommerseth <d...@users.sourceforge.net>
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License version 2
+#  as published by the Free Software Foundation.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program (see the file COPYING included with this
+#  distribution); if not, write to the Free Software Foundation, Inc.,
+#  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#
+#  This script will build up a line which can be included into a C program.
+#  The line will contain all interesting #define statements from f.ex. 
./config.h
+#
+
+BEGIN {
+       printf ("#define CONFIGURE_DEFINES \"")
+}
+
+/^#define (ENABLE|DISABLE|DEPRECATED|USE)_/ {
+       printf (" %s", $2)
+}
+
+END {
+       printf ("\"\n")
+}
diff --git a/configure_log.awk b/configure_log.awk
new file mode 100644
index 0000000..b305f71
--- /dev/null
+++ b/configure_log.awk
@@ -0,0 +1,36 @@
+#
+#  OpenVPN -- An application to securely tunnel IP networks
+#             over a single UDP port, with support for SSL/TLS-based
+#             session authentication and key exchange,
+#             packet encryption, packet authentication, and
+#             packet compression.
+#
+#  Copyright (C) 2010  David Sommerseth <d...@users.sourceforge.net>
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License version 2
+#  as published by the Free Software Foundation.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program (see the file COPYING included with this
+#  distribution); if not, write to the Free Software Foundation, Inc.,
+#  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#
+#  This script will build up a line which can be included into a C program.
+#  The line will only contain the first entry of the ./configure line from
+#  ./config.log.
+#
+
+BEGIN {
+       printf ("#define CONFIGURE_CALL \"")
+}
+/\$ .\/configure/ {
+       print $0,"\""
+       exit 0
+}
diff --git a/options.c b/options.c
index f2f6504..d0e76f7 100644
--- a/options.c
+++ b/options.c
@@ -48,6 +48,7 @@
 #include "pool.h"
 #include "helper.h"
 #include "manage.h"
+#include "configure.h"

 #include "memdbg.h"

@@ -2950,6 +2951,8 @@ usage_version (void)
   msg (M_INFO|M_NOPREFIX, "%s", title_string);
   msg (M_INFO|M_NOPREFIX, "Originally developed by James Yonan");
   msg (M_INFO|M_NOPREFIX, "Copyright (C) 2002-2009 OpenVPN Technologies, Inc. 
<sa...@openvpn.net>");
+  msg (M_INFO|M_NOPREFIX, "\n%s\n", CONFIGURE_CALL);
+  msg (M_INFO|M_NOPREFIX, "Compile time defines: %s", CONFIGURE_DEFINES);
   openvpn_exit (OPENVPN_EXIT_STATUS_USAGE); /* exit point */
 }

-- 
1.6.6.1


Reply via email to