Browse code

build: add libtool + windows resources for executables

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Acked-by: David Sommerseth <davids@redhat.com>
Acked-by: Samuli Seppänen <samuli@openvpn.net>
Signed-off-by: David Sommerseth <davids@redhat.com>

Alon Bar-Lev authored on 2012/03/01 05:12:00
Showing 10 changed files
... ...
@@ -26,6 +26,12 @@ depcomp
26 26
 stamp-h1
27 27
 install-sh
28 28
 missing
29
+ltmain.sh
30
+m4/libtool.m4
31
+m4/ltoptions.m4
32
+m4/ltsugar.m4
33
+m4/ltversion.m4
34
+m4/lt~obsolete.m4
29 35
 
30 36
 doc/openvpn.8.html
31 37
 distro/rpm/openvpn.spec
... ...
@@ -34,6 +34,9 @@ MAINTAINERCLEANFILES = \
34 34
 	$(srcdir)/Makefile.in \
35 35
 	$(srcdir)/config.h.in $(srcdir)/config.h.in~ $(srcdir)/configure \
36 36
 	$(srcdir)/install-sh $(srcdir)/ltmain.sh $(srcdir)/missing \
37
+	$(srcdir)/m4/libtool.m4 $(srcdir)/m4/lt~obsolete.m4 \
38
+	$(srcdir)/m4/ltoptions.m4 $(srcdir)/m4/ltsugar.m4 \
39
+	$(srcdir)/m4/ltversion.m4 \
37 40
 	$(srcdir)/depcomp $(srcdir)/aclocal.m4 \
38 41
 	$(srcdir)/config.guess $(srcdir)/config.sub
39 42
 
... ...
@@ -41,7 +44,7 @@ EXTRA_DIST = \
41 41
 	contrib \
42 42
 	debug
43 43
 
44
-SUBDIRS = distro include src sample doc tests
44
+SUBDIRS = build distro include src sample doc tests
45 45
 
46 46
 dist_doc_DATA = \
47 47
 	COPYRIGHT.GPL \
48 48
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+#
1
+#  OpenVPN -- An application to securely tunnel IP networks
2
+#             over a single UDP port, with support for SSL/TLS-based
3
+#             session authentication and key exchange,
4
+#             packet encryption, packet authentication, and
5
+#             packet compression.
6
+#
7
+#  Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
8
+#
9
+
10
+MAINTAINERCLEANFILES = \
11
+	$(srcdir)/Makefile.in
12
+
13
+EXTRA_DIST = \
14
+	ltrc.inc
0 15
new file mode 100644
... ...
@@ -0,0 +1,23 @@
0
+#
1
+#  OpenVPN -- An application to securely tunnel IP networks
2
+#             over a single UDP port, with support for SSL/TLS-based
3
+#             session authentication and key exchange,
4
+#             packet encryption, packet authentication, and
5
+#             packet compression.
6
+#
7
+#  Copyright (C) 2008-2012 Alon Bar-Lev <alon.barlev@gmail.com>
8
+#
9
+# Required to build Windows resource file
10
+
11
+RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
12
+	$(AM_CPPFLAGS) $(CPPFLAGS)
13
+LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
14
+
15
+.rc.lo:
16
+	$(LTRCCOMPILE) -i "$<" -o "$@"
17
+
18
+.rc.o:
19
+	$(RCCOMPILE) -i "$<" -o "$@"
20
+
21
+.mc.rc:
22
+	$(WINDMC) "$<"
... ...
@@ -29,6 +29,8 @@ AC_PREREQ(2.59)
29 29
 m4_include(version.m4)
30 30
 AC_INIT([PRODUCT_NAME], [PRODUCT_VERSION], [PRODUCT_BUGREPORT], [PRODUCT_TARNAME])
31 31
 m4_include(compat.m4)
32
+AC_DEFINE([OPENVPN_VERSION_RESOURCE], [PRODUCT_VERSION_RESOURCE], [Version in windows resource format])
33
+
32 34
 AC_CONFIG_AUX_DIR([.])
33 35
 AM_CONFIG_HEADER([config.h])
34 36
 AC_CONFIG_SRCDIR([src/openvpn/syshead.h])
... ...
@@ -352,7 +354,6 @@ case "$host" in
352 352
 		AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["W"], [Target prefix])
353 353
 		CPPFLAGS="${CPPFLAGS} -DWIN32_LEAN_AND_MEAN -DWINVER=0x0501"
354 354
 		WIN32=yes
355
-		LIBS="${LIBS} -lgdi32 -lws2_32 -lwininet -lcrypt32 -liphlpapi -lwinmm -lshell32"
356 355
 		;;
357 356
 	*-*-dragonfly*)
358 357
 		AC_DEFINE([TARGET_DRAGONFLY], [1], [Are we running on DragonFlyBSD?])
... ...
@@ -369,6 +370,22 @@ AC_PROG_INSTALL
369 369
 AC_PROG_LN_S
370 370
 AC_PROG_MAKE_SET
371 371
 
372
+#
373
+# Libtool
374
+#
375
+ifdef(
376
+	[LT_INIT],
377
+	[
378
+		LT_INIT([win32-dll])
379
+		LT_LANG([Windows Resource])
380
+	],
381
+	[
382
+		AC_LIBTOOL_WIN32_DLL
383
+		AC_LIBTOOL_RC
384
+		AC_PROG_LIBTOOL
385
+	]
386
+)
387
+
372 388
 if test "${WIN32}" = "yes"; then
373 389
 	AC_ARG_VAR([MAN2HTML], [man2html utility])
374 390
 	AC_CHECK_PROGS([MAN2HTML], [man2html])
... ...
@@ -930,6 +947,7 @@ AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
930 930
 
931 931
 AC_CONFIG_FILES([
932 932
 	Makefile
933
+	build/Makefile
933 934
 	distro/Makefile
934 935
 	distro/rpm/Makefile
935 936
 	distro/rpm/openvpn.spec
... ...
@@ -9,6 +9,8 @@
9 9
 #  Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
10 10
 #
11 11
 
12
+include $(top_srcdir)/build/ltrc.inc
13
+
12 14
 MAINTAINERCLEANFILES = \
13 15
 	$(srcdir)/Makefile.in
14 16
 
... ...
@@ -93,3 +95,7 @@ openvpn_SOURCES = \
93 93
 	tun.c tun.h \
94 94
 	win32.h win32.c \
95 95
 	cryptoapi.h cryptoapi.c
96
+if WIN32
97
+openvpn_SOURCES += openvpn_win32_resources.rc
98
+openvpn_LDADD = -lgdi32 -lws2_32 -lwininet -lcrypt32 -liphlpapi -lwinmm -lshell32
99
+endif
96 100
new file mode 100644
... ...
@@ -0,0 +1,41 @@
0
+#ifdef HAVE_CONFIG_H
1
+#include <config.h>
2
+#else
3
+#include <config-msc-version.h>
4
+#endif
5
+#include <winresrc.h>
6
+
7
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
8
+
9
+VS_VERSION_INFO VERSIONINFO
10
+ FILEVERSION OPENVPN_VERSION_RESOURCE
11
+ PRODUCTVERSION OPENVPN_VERSION_RESOURCE
12
+ FILEFLAGSMASK 0x3fL
13
+#ifdef _DEBUG
14
+ FILEFLAGS 0x1L
15
+#else
16
+ FILEFLAGS 0x0L
17
+#endif
18
+ FILEOS 0x40004L
19
+ FILETYPE 0x2L
20
+ FILESUBTYPE 0x0L
21
+BEGIN
22
+    BLOCK "StringFileInfo"
23
+    BEGIN
24
+        BLOCK "040904b0"
25
+        BEGIN
26
+            VALUE "CompanyName", "OpenVPN.net"
27
+            VALUE "FileDescription", "OpenVPN"
28
+            VALUE "FileVersion", PACKAGE_VERSION ".0"
29
+            VALUE "InternalName", "OpenVPN"
30
+            VALUE "LegalCopyright", "Copyright ? OpenVPN Project" 
31
+            VALUE "OriginalFilename", "openvpn.exe"
32
+            VALUE "ProductName", "OpenVPN"
33
+            VALUE "ProductVersion", PACKAGE_VERSION ".0"
34
+        END
35
+    END
36
+    BLOCK "VarFileInfo"
37
+    BEGIN
38
+        VALUE "Translation", 0x409, 1200
39
+    END
40
+END
... ...
@@ -9,6 +9,8 @@
9 9
 #  Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
10 10
 #
11 11
 
12
+include $(top_srcdir)/build/ltrc.inc
13
+
12 14
 MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
13 15
 
14 16
 if WIN32
... ...
@@ -17,4 +19,5 @@ endif
17 17
 
18 18
 openvpnserv_SOURCES = \
19 19
 	openvpnserv.c \
20
-	service.h service.c
20
+	service.h service.c \
21
+	openvpnserv_resources.rc
21 22
new file mode 100644
... ...
@@ -0,0 +1,41 @@
0
+#ifdef HAVE_CONFIG_H
1
+#include <config.h>
2
+#else
3
+#include <config-msc-version.h>
4
+#endif
5
+#include <winresrc.h>
6
+
7
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
8
+
9
+VS_VERSION_INFO VERSIONINFO
10
+ FILEVERSION OPENVPN_VERSION_RESOURCE
11
+ PRODUCTVERSION OPENVPN_VERSION_RESOURCE
12
+ FILEFLAGSMASK 0x3fL
13
+#ifdef _DEBUG
14
+ FILEFLAGS 0x1L
15
+#else
16
+ FILEFLAGS 0x0L
17
+#endif
18
+ FILEOS 0x40004L
19
+ FILETYPE 0x2L
20
+ FILESUBTYPE 0x0L
21
+BEGIN
22
+    BLOCK "StringFileInfo"
23
+    BEGIN
24
+        BLOCK "040904b0"
25
+        BEGIN
26
+            VALUE "CompanyName", "OpenVPN.net"
27
+            VALUE "FileDescription", "OpenVPN Service"
28
+            VALUE "FileVersion", PACKAGE_VERSION ".0"
29
+            VALUE "InternalName", "OpenVPN"
30
+            VALUE "LegalCopyright", "Copyright ? OpenVPN Project" 
31
+            VALUE "OriginalFilename", "openvpnserv.exe"
32
+            VALUE "ProductName", "OpenVPN"
33
+            VALUE "ProductVersion", PACKAGE_VERSION ".0"
34
+        END
35
+    END
36
+    BLOCK "VarFileInfo"
37
+    BEGIN
38
+        VALUE "Translation", 0x409, 1200
39
+    END
40
+END
... ...
@@ -3,6 +3,7 @@ define([PRODUCT_NAME], [OpenVPN])
3 3
 define([PRODUCT_TARNAME], [openvpn])
4 4
 define([PRODUCT_VERSION], [2.3_alpha1])
5 5
 define([PRODUCT_BUGREPORT], [openvpn-users@lists.sourceforge.net])
6
+define([PRODUCT_VERSION_RESOURCE], [2,3,0,0])
6 7
 dnl define the TAP version
7 8
 define([PRODUCT_TAP_WIN_COMPONENT_ID], [tap0901])
8 9
 define([PRODUCT_TAP_WIN_MIN_MAJOR], [9])