changeset 3020:2b0d2eaaf671 octave-forge

Add compilation instructions for NetCDF and PCRE libraries
author goffioul
date Thu, 01 Feb 2007 14:26:29 +0000
parents 05815d69dcd7
children 03a4089c0e6a
files admin/Windows/msvc/libs/netcdf.txt admin/Windows/msvc/libs/pcre-7.0.diff admin/Windows/msvc/libs/pcre-7.0.txt
diffstat 3 files changed, 301 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/admin/Windows/msvc/libs/netcdf.txt	Thu Feb 01 14:26:29 2007 +0000
@@ -0,0 +1,21 @@
+Package: NetCDF
+Version: 3.6.1
+Home page: http://www.unidata.ucar.edu/software/netcdf/
+Download: ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf.tar.gz
+License: Free (BSD-like)
+
+Compilation: from Visual Studio environment
+
+Requirement: none
+
+1) Open src\win32\NET\netcdf.sln in Visual Studio
+
+2) Edit netcdf project properties and set the runtime library
+   to "Multi-threaded DLL" (which use the /MD compilation flag)
+
+3) Build netcdf project
+
+4) Install (copy manually):
+	. netcdf.dll into bin directory
+	. netcdf.lib into lib directory
+	. src\libsrc\netcdf.h into include directory
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/admin/Windows/msvc/libs/pcre-7.0.diff	Thu Feb 01 14:26:29 2007 +0000
@@ -0,0 +1,262 @@
+diff -urN pcre-7.0/Makefile.vc pcre-7.0-mod/Makefile.vc
+--- pcre-7.0/Makefile.vc	1970-01-01 01:00:00.000000000 +0100
++++ pcre-7.0-mod/Makefile.vc	2007-02-01 15:22:18.354698800 +0100
+@@ -0,0 +1,76 @@
++TARGET = pcre70.dll
++IMPLIB = pcre.lib
++
++CFLAGS = -O2 -MD -D_WIN32 -DDLL_EXPORT -DSUPPORT_UTF8 -DSUPPORT_UCP
++
++CP = copy /y
++RM = del /q
++
++SOURCES = \
++  pcre_chartables.c \
++  pcre_compile.c \
++  pcre_config.c \
++  pcre_dfa_exec.c \
++  pcre_exec.c \
++  pcre_fullinfo.c \
++  pcre_get.c \
++  pcre_globals.c \
++  pcre_info.c \
++  pcre_maketables.c \
++  pcre_newline.c \
++  pcre_ord2utf8.c \
++  pcre_refcount.c \
++  pcre_study.c \
++  pcre_tables.c \
++  pcre_try_flipped.c \
++  pcre_ucp_searchfuncs.c \
++  pcre_valid_utf8.c \
++  pcre_version.c \
++  pcre_xclass.c \
++  pcreposix.c
++
++OBJECTS = $(SOURCES:.c=.obj) pcre.res
++
++all: config.h $(TARGET)
++
++config.h: config.h.vc
++	-$(RM) $@
++	$(CP) config.h.vc $@
++
++$(TARGET): $(OBJECTS)
++	link -DLL -OUT:$@ -IMPLIB:$(IMPLIB) $(OBJECTS)
++	mt -outputresource:$@ -manifest $@.manifest
++
++pcre.res: pcre.rc
++	rc -fo $@ pcre.rc
++
++pcre_chartables.c: dftables.exe
++	dftables.exe $@
++
++dftables.exe: config.h dftables.c
++	cl -DSUPPORT_UTF8 -DSUPPORT_UCP dftables.c
++
++pcretest.exe: pcretest.c $(TARGET)
++	cl -O2 -F0x1000000 -MD /Fe$@ pcretest.c pcre.lib
++	mt -outputresource:$@ -manifest $@.manifest
++
++test: pcretest.exe
++	RunTest.bat
++	-fc testdata\testoutput1 testout\testoutput1
++	-fc testdata\testoutput2 testout\testoutput2
++	-fc testdata\testoutput3 testout\testoutput3
++	-fc testdata\testoutput4 testout\testoutput4
++	-fc testdata\testoutput5 testout\testoutput5
++	-fc testdata\testoutput6 testout\testoutput6
++	-fc testdata\testoutput7 testout\testoutput7
++	-fc testdata\testoutput8 testout\testoutput8
++	-fc testdata\testoutput9 testout\testoutput9
++
++clean:
++	-$(RM) *.obj pcre.res
++	-$(RM) $(TARGET)* $(IMPLIB)
++	-$(RM) *.pdb *.exp
++	-$(RM) dftables.exe
++	-$(RM) pcre_chartables.c config.h
++	-rmdir /S /Q testout
++	-$(RM) pcretest.exe*
+diff -urN pcre-7.0/config.h.vc pcre-7.0-mod/config.h.vc
+--- pcre-7.0/config.h.vc	1970-01-01 01:00:00.000000000 +0100
++++ pcre-7.0-mod/config.h.vc	2007-02-01 14:02:01.211979200 +0100
+@@ -0,0 +1,143 @@
++
++/* On Unix-like systems config.in is converted by "configure" into config.h.
++Some other environments also support the use of "configure". PCRE is written in
++Standard C, but there are a few non-standard things it can cope with, allowing
++it to run on SunOS4 and other "close to standard" systems.
++
++On a non-Unix-like system you should just copy this file into config.h, and set
++up the macros the way you need them. You should normally change the definitions
++of HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way
++autoconf works, these cannot be made the defaults. If your system has bcopy()
++and not memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE.
++If your system has neither bcopy() nor memmove(), leave them both as 0; an
++emulation function will be used. */
++
++/* If you are compiling for a system that uses EBCDIC instead of ASCII
++character codes, define this macro as 1. On systems that can use "configure",
++this can be done via --enable-ebcdic. */
++
++#ifndef EBCDIC
++#define EBCDIC 0
++#endif
++
++/* If you are compiling for a system other than a Unix-like system or Win32,
++and it needs some magic to be inserted before the definition of a function that
++is exported by the library, define this macro to contain the relevant magic. If
++you do not define this macro, it defaults to "extern" for a C compiler and
++"extern C" for a C++ compiler on non-Win32 systems. This macro apears at the
++start of every exported function that is part of the external API. It does not
++appear on functions that are "external" in the C sense, but which are internal
++to the library. */
++
++/* #define PCRE_DATA_SCOPE */
++
++/* Define the following macro to empty if the "const" keyword does not work. */
++
++#undef const
++
++/* Define the following macro to "unsigned" if <stddef.h> does not define
++size_t. */
++
++#undef size_t
++
++/* The following two definitions are mainly for the benefit of SunOS4, which
++does not have the strerror() or memmove() functions that should be present in
++all Standard C libraries. The macros HAVE_STRERROR and HAVE_MEMMOVE should
++normally be defined with the value 1 for other systems, but unfortunately we
++cannot make this the default because "configure" files generated by autoconf
++will only change 0 to 1; they won't change 1 to 0 if the functions are not
++found. */
++
++#define HAVE_STRERROR 1
++#define HAVE_MEMMOVE  1
++
++/* There are some non-Unix-like systems that don't even have bcopy(). If this
++macro is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of
++HAVE_BCOPY is not relevant. */
++
++#define HAVE_BCOPY    0
++
++/* The value of NEWLINE determines the newline character. The default is to
++leave it up to the compiler, but some sites want to force a particular value.
++On Unix-like systems, "configure" can be used to override this default. */
++
++#ifndef NEWLINE
++#define NEWLINE '\n'
++#endif
++
++/* The value of LINK_SIZE determines the number of bytes used to store links as
++offsets within the compiled regex. The default is 2, which allows for compiled
++patterns up to 64K long. This covers the vast majority of cases. However, PCRE
++can also be compiled to use 3 or 4 bytes instead. This allows for longer
++patterns in extreme cases. On systems that support it, "configure" can be used
++to override this default. */
++
++#ifndef LINK_SIZE
++#define LINK_SIZE   2
++#endif
++
++/* When calling PCRE via the POSIX interface, additional working storage is
++required for holding the pointers to capturing substrings because PCRE requires
++three integers per substring, whereas the POSIX interface provides only two. If
++the number of expected substrings is small, the wrapper function uses space on
++the stack, because this is faster than using malloc() for each call. The
++threshold above which the stack is no longer used is defined by POSIX_MALLOC_
++THRESHOLD. On systems that support it, "configure" can be used to override this
++default. */
++
++#ifndef POSIX_MALLOC_THRESHOLD
++#define POSIX_MALLOC_THRESHOLD 10
++#endif
++
++/* PCRE uses recursive function calls to handle backtracking while matching.
++This can sometimes be a problem on systems that have stacks of limited size.
++Define NO_RECURSE to get a version that doesn't use recursion in the match()
++function; instead it creates its own stack by steam using pcre_recurse_malloc()
++to obtain memory from the heap. For more detail, see the comments and other
++stuff just above the match() function. On systems that support it, "configure"
++can be used to set this in the Makefile (use --disable-stack-for-recursion). */
++
++/* #define NO_RECURSE */
++
++/* The value of MATCH_LIMIT determines the default number of times the internal
++match() function can be called during a single execution of pcre_exec(). There
++is a runtime interface for setting a different limit. The limit exists in order
++to catch runaway regular expressions that take for ever to determine that they
++do not match. The default is set very large so that it does not accidentally
++catch legitimate cases. On systems that support it, "configure" can be used to
++override this default default. */
++
++#ifndef MATCH_LIMIT
++#define MATCH_LIMIT 10000000
++#endif
++
++/* The above limit applies to all calls of match(), whether or not they
++increase the recursion depth. In some environments it is desirable to limit the
++depth of recursive calls of match() more strictly, in order to restrict the
++maximum amount of stack (or heap, if NO_RECURSE is defined) that is used. The
++value of MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
++have any useful effect, it must be less than the value of MATCH_LIMIT. There is
++a runtime method for setting a different limit. On systems that support it,
++"configure" can be used to override this default default. */
++
++#ifndef MATCH_LIMIT_RECURSION
++#define MATCH_LIMIT_RECURSION MATCH_LIMIT
++#endif
++
++/* These three limits are parameterized just in case anybody ever wants to
++change them. Care must be taken if they are increased, because they guard
++against integer overflow caused by enormously large patterns. */
++
++#ifndef MAX_NAME_SIZE
++#define MAX_NAME_SIZE 32
++#endif
++
++#ifndef MAX_NAME_COUNT
++#define MAX_NAME_COUNT 10000
++#endif
++
++#ifndef MAX_DUPLENGTH
++#define MAX_DUPLENGTH 30000
++#endif
++
++/* End */
+diff -urN pcre-7.0/pcre.rc pcre-7.0-mod/pcre.rc
+--- pcre-7.0/pcre.rc	1970-01-01 01:00:00.000000000 +0100
++++ pcre-7.0-mod/pcre.rc	2007-02-01 14:06:51.780058000 +0100
+@@ -0,0 +1,31 @@
++#define WINDOWS_LEAN_AND_MEAN
++#include <windows.h>
++
++VS_VERSION_INFO VERSIONINFO
++FILEVERSION	7, 0, 0, 0
++PRODUCTVERSION	7, 0, 0, 0
++FILEFLAGSMASK	0x3fL
++FILEFLAGS 0
++FILEOS VOS_NT_WINDOWS32
++FILETYPE VFT_APP
++FILESUBTYPE VFT2_UNKNOWN
++BEGIN
++	BLOCK	"VarFileInfo"
++	BEGIN
++		VALUE	"Translation",	0x409,	1200
++	END
++	BLOCK	"StringFileInfo"
++	BEGIN
++		BLOCK "040904b0"
++		BEGIN
++			VALUE	"CompanyName",	"Philip Hazel <ph10@cam.ac.uk>\0"
++			VALUE	"FileDescription",	"Perl Compatible Regular Expression Library\0"
++			VALUE	"FileVersion",	"7.0\0"
++			VALUE	"InternalName",	"Pcre\0"
++			VALUE	"LegalCopyright",	"Copyright 1997-2006 University of Cambridge\0"
++			VALUE	"OriginalFilename",	"pcre70.dll\0"
++			VALUE	"ProductName",	"Pcre\0"
++			VALUE	"ProductVersion",	"7.0\0"
++		END
++	END
++END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/admin/Windows/msvc/libs/pcre-7.0.txt	Thu Feb 01 14:26:29 2007 +0000
@@ -0,0 +1,18 @@
+Package: PCRE
+Version: 7.0
+Home page: http://www.pcre.org/
+Download: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.0.tar.gz
+License: BSD
+
+Compilation: from Windows command shell with VS environment
+
+Requirement: none
+
+1) Apply the patch
+
+2) nmake -f Makefile.vc
+
+3) Install (copy manually):
+	. pcre70.dll into bin directory
+	. pcre.lib into lib directory
+	. pcre.h and pcreposix.h into include directory