libtasn1-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU libtasn1 branch, master, updated. libtasn1_4_9-24-g1bce4ce


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU libtasn1 branch, master, updated. libtasn1_4_9-24-g1bce4ce
Date: Mon, 5 Dec 2016 07:21:50 +0000 (UTC)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU libtasn1".

http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=1bce4ce6dffa81532e065e60a6df5b91d037f68e

The branch, master has been updated
       via  1bce4ce6dffa81532e065e60a6df5b91d037f68e (commit)
      from  d8e5dd9454d89347efc1895f833bf459fa68a311 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1bce4ce6dffa81532e065e60a6df5b91d037f68e
Author: Vasiliy Olekhov <address@hidden>
Date:   Fri Dec 2 12:11:39 2016 +0300

    MSVS 2013 and 2015 native builds

-----------------------------------------------------------------------

Summary of changes:
 msvc/build_debug.bat                   |   11 +++
 msvc/build_release.bat                 |    9 +++
 msvc/libtasn1.mak                      |   42 ++++++++++
 msvc/msvc_exe.mk                       |   49 ++++++++++++
 msvc/msvc_lib.mk                       |   46 +++++++++++
 msvc/snprintf.h                        |   33 ++++++++
 tests/decoding => msvc/test_parser.mak |   30 +++----
 msvc/vcvars.mk                         |  138 ++++++++++++++++++++++++++++++++
 8 files changed, 343 insertions(+), 15 deletions(-)
 create mode 100644 msvc/build_debug.bat
 create mode 100644 msvc/build_release.bat
 create mode 100644 msvc/libtasn1.mak
 create mode 100644 msvc/msvc_exe.mk
 create mode 100644 msvc/msvc_lib.mk
 create mode 100644 msvc/snprintf.h
 copy tests/decoding => msvc/test_parser.mak (60%)
 mode change 100755 => 100644
 create mode 100644 msvc/vcvars.mk

diff --git a/msvc/build_debug.bat b/msvc/build_debug.bat
new file mode 100644
index 0000000..c1576ab
--- /dev/null
+++ b/msvc/build_debug.bat
@@ -0,0 +1,11 @@
address@hidden off
+
+echo build 32 bit DEBUG
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Debug ARCH=32 clean >nul
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Debug ARCH=32 
+gmake -f test_parser.mak VSTOOLSET=VS140 CONFIG=Debug ARCH=32 
+echo build 64 bit DEBUG
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Debug ARCH=64 clean >nul
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Debug ARCH=64 
+gmake -f test_parser.mak VSTOOLSET=VS140 CONFIG=Debug ARCH=64
+
diff --git a/msvc/build_release.bat b/msvc/build_release.bat
new file mode 100644
index 0000000..7bcae24
--- /dev/null
+++ b/msvc/build_release.bat
@@ -0,0 +1,9 @@
address@hidden off
+
+echo build 32 bit RELEASE
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Release ARCH=32 clean 
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Release ARCH=32 
+echo build 64 bit RELEASE
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Release ARCH=64 clean 
+gmake -f libtasn1.mak VSTOOLSET=VS140 CONFIG=Release ARCH=64 
+
diff --git a/msvc/libtasn1.mak b/msvc/libtasn1.mak
new file mode 100644
index 0000000..ddc3209
--- /dev/null
+++ b/msvc/libtasn1.mak
@@ -0,0 +1,42 @@
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.  If not, see <http://www.gnu.org/licenses/>.
+
+# Makefile to build libtasn1 as static library (libtasn1.lib)
+
+# Written by Vasiliy Olekhov November 2016.
+
+VPATH=../gl:../lib:../lib/gllib
+
+SRC= ASN1.c coding.c decoding.c element.c errors.c gstr.c 
+SRC+= parser_aux.c structure.c version.c
+SRC+= strverscmp.c hash-pjw-bare.c
+
+TARGET=libtasn1.lib
+
+ifeq ($(ARCH), 64)
+ULSIZE=8
+else
+ULSIZE=4
+endif
+
+CFLAGS+=/D inline=__inline /D ASN1_STATIC /D _CRT_SECURE_NO_WARNINGS /D 
ASN1_API=
+CFLAGS+=/D SIZEOF_UNSIGNED_INT=4 /D SIZEOF_UNSIGNED_LONG_INT=$(ULSIZE)
+CFLAGS+=/D HAVE_CONFIG_H
+CFLAGS+=-I ../lib/gllib -I ../lib -I ../gl /I . -I ..
+
+# GLib stuff
+CFLAGS+=/D _GL_ATTRIBUTE_PURE=
+# snprintf workaround
+CFLAGS+=/FI ./snprintf.h
+
+include msvc_lib.mk
diff --git a/msvc/msvc_exe.mk b/msvc/msvc_exe.mk
new file mode 100644
index 0000000..0c42f24
--- /dev/null
+++ b/msvc/msvc_exe.mk
@@ -0,0 +1,49 @@
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.  If not, see <http://www.gnu.org/licenses/>.
+
+# Makefile to build something to console executable (.exe)
+# requires gnu make 4.0, some posix tools (mkdir, rm)
+
+# set C sources to SRC var, extra libs to EXTRA_LIBS
+# set TARGET to executable (e.g. runtest.exe)
+
+# Written by Vasiliy Olekhov November 2016.
+
+
+include vcvars.mk
+
+#$(info Building $(ARCH) bits $(CONFIG))
+
+MKDIR_P=C:/gow/bin/mkdir.exe -p
+
+BUILD_PATH=build/$(ARCH)/$(CONFIG)
+BUILD_DIRS+=$(BUILD_PATH) 
+
+LDFLAGS+=/libpath:'build/$(ARCH)/$(CONFIG)'
+
+OBJS=$(addprefix $(BUILD_PATH)/,$(SRC:.c=.obj))
+
+all: $(BUILD_DIRS) $(BUILD_PATH)/$(TARGET) 
+
+$(BUILD_PATH)/$(TARGET): $(BUILD_DIRS) $(OBJS)
+       $(LD) $(LDFLAGS) $(OBJS) $(EXTRA_LIBS) /OUT:$@ 
+
+$(BUILD_PATH)/%.obj: %.c $(EXTRA_DEPS)
+       $(CC) $(CFLAGS) $(CDEBUG) $< /Fo$@
+
+$(BUILD_DIRS): 
+       $(MKDIR_P) $@
+
+clean:
+       rm -f $(OBJS) $(BUILD_PATH)/$(TARGET)
+
diff --git a/msvc/msvc_lib.mk b/msvc/msvc_lib.mk
new file mode 100644
index 0000000..0289969
--- /dev/null
+++ b/msvc/msvc_lib.mk
@@ -0,0 +1,46 @@
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.  If not, see <http://www.gnu.org/licenses/>.
+
+# Makefile to build something to static library (.lib)
+# requires gnu make 4.0, some posix tools (mkdir, rm)
+
+# set C sources to SRC var, extra libs to EXTRA_LIBS
+# set TARGET to library name (e.g. mylibrary.lib)
+
+# Written by Vasiliy Olekhov November 2016.
+
+
+include vcvars.mk
+
+#$(info Building $(ARCH) bits $(CONFIG))
+
+MKDIR_P=C:/gow/bin/mkdir.exe -p
+
+BUILD_PATH=build/$(ARCH)/$(CONFIG)
+BUILD_DIRS+=$(BUILD_PATH) 
+
+OBJS=$(addprefix $(BUILD_PATH)/,$(SRC:.c=.obj))
+
+all: $(BUILD_DIRS) $(BUILD_PATH)/$(TARGET) 
+
+$(BUILD_PATH)/$(TARGET): $(BUILD_DIRS) $(OBJS)
+       $(LIB) $(LIBFLAGS) $(OBJS) /OUT:$@ 
+
+$(BUILD_PATH)/%.obj: %.c $(EXTRA_DEPS)
+       $(CC) $(CFLAGS) $(CDEBUG) $< /Fo$@
+
+$(BUILD_DIRS): 
+       $(MKDIR_P) $@
+
+clean:
+       rm -f $(OBJS) $(BUILD_PATH)/$(TARGET)
diff --git a/msvc/snprintf.h b/msvc/snprintf.h
new file mode 100644
index 0000000..a26247f
--- /dev/null
+++ b/msvc/snprintf.h
@@ -0,0 +1,33 @@
+#if defined(_MSC_VER) && _MSC_VER <= 1900
+#include <stdarg.h>
+#include <stdio.h>
+
+
+#define snprintf c99_snprintf
+#define vsnprintf c99_vsnprintf
+
+__inline int c99_vsnprintf(char *outBuf, size_t size, const char *format, 
va_list ap)
+{
+    int count = -1;
+
+    if (size != 0)
+        count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap);
+    if (count == -1)
+        count = _vscprintf(format, ap);
+
+    return count;
+}
+
+__inline int c99_snprintf(char *outBuf, size_t size, const char *format, ...)
+{
+    int count;
+    va_list ap;
+
+    va_start(ap, format);
+    count = c99_vsnprintf(outBuf, size, format, ap);
+    va_end(ap);
+
+    return count;
+}
+
+#endif
\ No newline at end of file
diff --git a/tests/decoding b/msvc/test_parser.mak
old mode 100755
new mode 100644
similarity index 60%
copy from tests/decoding
copy to msvc/test_parser.mak
index dd2c685..3999d98
--- a/tests/decoding
+++ b/msvc/test_parser.mak
@@ -1,7 +1,3 @@
-#!/bin/sh
-
-# Copyright (C) 2015 Free Software Foundation, Inc.
-#
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
@@ -15,17 +11,21 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if ! test -z "${VALGRIND}";then
-VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=7 
--leak-check=no"
-fi
+# Makefile to build test_parser.exe
+
+# Written by Vasiliy Olekhov November 2016.
+
+VPATH=../tests
+
+SRC= Test_parser.c
+
+TARGET=Test_parser.exe
 
-ASN1DECODING="${ASN1DECODING:-../src/asn1Decoding$EXEEXT}"
-ASN1PKIX="${ASN1PKIX:-pkix.asn}"
+CFLAGS+=/D ASN1_STATIC 
+CFLAGS+=/D _CRT_SECURE_NO_WARNINGS 
+CFLAGS+=/D ASN1_API=
+CFLAGS+=-I ../lib 
 
-$VALGRIND $ASN1DECODING $ASN1PKIX TestCertOctetOverflow.der PKIX1.Certificate
-if test $? != 1;then
-       echo "Decoding failed"
-       exit 1
-fi
+EXTRA_LIBS=libtasn1.lib
 
-exit 0
+include msvc_exe.mk
diff --git a/msvc/vcvars.mk b/msvc/vcvars.mk
new file mode 100644
index 0000000..32a6b70
--- /dev/null
+++ b/msvc/vcvars.mk
@@ -0,0 +1,138 @@
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.  If not, see <http://www.gnu.org/licenses/>.
+
+# This is a vcvarsall.bat replacement, makefile style
+# Needs gmake 4.0
+# You may encounter Windows builds of gnu make v.3.81. These are full of bugs.
+# You should get gnu make at least of version 4.0. 
+# Better compile it yourself. Get sources from 
<https://www.gnu.org/software/make/>
+
+# This script tries to guess paths to compiler and SDK.
+
+# You need some posix tools in path: grep cut 
+
+# Written by Vasiliy Olekhov November 2016.
+
+IS4MAKE=$(findstring z4, z$(MAKE_VERSION))
+
+ifneq ($(IS4MAKE),z4)
+$(error Need GNU MAKE 4.0 or higher)
+endif
+
+# Visual Studio Toolset. This is toolchain: compiler, linker, etc
+# VS120 = VisualStudio 2013
+# VS140 = VisualStudio 2015
+# Check your environment variable $(VS??COMNTOOLS).
+# See also <https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History>
+# You may have different VS installed.
+VSTOOLSET?=VS120
+# Target platform: 32 or 64
+ARCH?=32
+# Target configuration: Debug or Release
+CONFIG?=Release
+
+# SDK Version. This is library set: standard C library etc.
+# You can compile with different Visual Studios and different SDKs
+# More info: <https://en.wikipedia.org/wiki/Microsoft_Windows_SDK>
+# You may have different SDKs installed. Set here what you need.
+
+#
+SDKVER=v8.1 
+SDKSUBVER=winv6.3
+# Tested with VS2015 (VSTOOLSET=VS140) and VS2013 (VSTOOLSET=VS120):
+# SDKVER=v8.1 SDKSUBVER=winv6.3
+# SDKVER=v10.0 SDKSUBVER=10.0.14393.0
+
+# VS110  (VisualStudio 2012) and earlier do not support C99 
+# (e.g. array initialization by index), don't bother
+
+# VSTOOLSET is commonly set in environment. 
+# No matter whether you're running make from VS command prompt or not.
+TOOLS=$($(VSTOOLSET)COMNTOOLS)
+ifeq ($(TOOLS), )
+$(error Toolset not found. Check "$(VSTOOLSET)COMNTOOLS" environment variable)
+else
+#$(info Using toolset $(TOOLS))
+endif
+
+# Guess paths to SDKs
+SDKKEY=SOFTWARE\Microsoft\Microsoft SDKs\Windows
+SDK64KEY=SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows
+
+SDK!=reg query "HKLM\$(SDKKEY)\$(SDKVER)" 2>nul | grep InstallationFolder | 
cut -c 37-
+ifeq ($(SDK), )
+#$(info not found in HKLM 32bit)
+SDK!=reg query "HKLM\$(SDK64KEY)\$(SDKVER)" 2>nul | grep InstallationFolder | 
cut -c 37- 
+endif
+ifeq ($(SDK), )
+#$(info not found in HKLM 64bit)
+SDK!=reg query "HKCU\$(SDKKEY)\$(SDKVER)" 2>nul | grep InstallationFolder | 
cut -c 37- 
+endif
+ifeq ($(SDK), )
+#$(info not found in HKCU 32bit)
+SDK!=reg query "HKCU\$(SDK64KEY)\$(SDKVER)"2>nul | grep InstallationFolder | 
cut -c 37- 
+endif
+ifeq ($(SDK), )
+$(error Can not find SDK installation.)
+endif
+#$(info SDK= [$(SDK)])
+
+SDK := $(subst \,/,$(SDK))
+
+VCROOT=$(subst \,/,$(TOOLS))../../vc
+VCINC=$(VCROOT)/Include
+#$(info VCROOT=$(VCROOT))
+
+ifeq ($(ARCH), 64)
+BIN=$(VCROOT)/bin/amd64
+VCLIB=$(VCROOT)/LIB/amd64
+SDKLIB=$(SDK)/lib/$(SDKSUBVER)/um/x64
+UCRTLIB=$(SDK)/lib/$(SDKSUBVER)/ucrt/x64
+else
+BIN=$(VCROOT)/bin
+VCLIB=$(VCROOT)/lib
+SDKLIB=$(SDK)/lib/$(SDKSUBVER)/um/x86
+UCRTLIB=$(SDK)/lib/$(SDKSUBVER)/ucrt/x86
+endif
+
+$(info Building $(ARCH) bits $(CONFIG))
+
+CC='$(BIN)/cl.exe'
+CFLAGS+=/nologo -c 
+CFLAGS+=/EHsc
+CFLAGS+=/I '$(VCINC)' /I '$(SDK)Include/um'
+
+LD='$(BIN)/link.exe'
+LDFLAGS+=/nologo /libpath:'$(VCLIB)' /libpath:'$(SDKLIB)' /libpath:'$(UCRTLIB)'
+
+LIB='$(BIN)/lib.exe'
+LIBFLAGS+=/nologo
+
+# Please, check debug flags to meet your needs
+
+# MSVC runtime is compiled-in (static build)
+# Otherwise you need spare MSVCR???(D).dll lying 
+# somewhere around at runtime.
+
+# Please note that it is strongly advised to match
+# runtime versions of library and user code.
+
+# If you need that dynamically linked, change /MTd to /MDd (debug) 
+# and /MT to /MD (release)
+ifeq ($(CONFIG), Debug)
+CDEBUG=/DEBUG /Zi /W3 /WX- /sdl /Od /Oy- /D _DEBUG /RTC1 /MTd /GS /Gd /TC 
/analyze- 
+LDEBUG=/DEBUG /MTd
+else
+CDEBUG=/MT
+LDEBUG=/MT
+endif


hooks/post-receive
-- 
GNU libtasn1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]