[PATCH] VMS build update

"Craig A. Berry" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
The attached patch gets the development build going again on VMS.   
There were a few files we weren't building, a few nits with the way we  
were handling include files, and some special help needed for  
stripping the file extension in src/dblib/unittests/common.c.

After this, all tests that we currently build pass for me when  
building with

$ cc/vers
HP C V7.2-022 on OpenVMS IA64 V8.3

and running against a MS SQL Express 2005 database.  There are  
probably some newer tests we aren't running, so I'll look into adding  
those later.

________________________________________
Craig A. Berry
mailto:[email protected]

"... getting out of a sonnet is much more
  difficult than getting in."
                  Brad Leithauser

_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
vmsbuild_20090326.patch (application/octet-stream, 4 KB)
--- vms/config_h.vms;-0	2008-07-17 06:52:35 -0500
+++ vms/config_h.vms	2009-03-26 11:28:20 -0500
@@ -279,8 +279,6 @@
 
 /* Additions below not originally from config.h.in */
 
-#define _FREETDS_LIBRARY_SOURCE
-
 /* This really just needs to be the current working directory for the tests */
 #define FREETDS_SRCDIR "."
 
--- vms/descrip_mms.template;-0	2008-05-21 22:53:18 -0500
+++ vms/descrip_mms.template	2009-03-26 12:32:14 -0500
@@ -71,17 +71,17 @@ CC = CC/DECC
 .SUFFIXES : $(E) $(OLB) $(OBJ) .C .H
 
 .IFDEF ODBC
-CDEFINE = "$(TDSVER)","HAVE_CONFIG_H"=1,"UNIXODBC"
+CDEFINE = "$(TDSVER)","HAVE_CONFIG_H"=1,_FREETDS_LIBRARY_SOURCE=1,"UNIXODBC"
 CODBCFLAGS = /NAMES=(AS_IS,SHORTENED)
 .ELSE
-CDEFINE = $(TDSVER),HAVE_CONFIG_H=1
+CDEFINE = $(TDSVER),HAVE_CONFIG_H=1,_FREETDS_LIBRARY_SOURCE=1
 CODBCFLAGS = /NAMES=SHORTENED
 .ENDIF
 CPREFIX = ALL
-CINCLUDE = "./","./include","./src/tds"$(ODBC_INC)
+CINCLUDE = "./","./include"$(ODBC_INC)
 
 .IFDEF __DEBUG__
-CDBGFLAGS = /DEBUG/NOOPTIMIZE/LIST=$(MMS$TARGET_NAME)/SHOW=ALL
+CDBGFLAGS = /DEBUG/NOOPTIMIZE/LIST=$(MMS$TARGET_NAME)/SHOW=(EXPANSION,INCLUDE)
 LDBGFLAGS = /DEBUG/MAP
 .ELSE
 CDBGFLAGS =
@@ -106,10 +106,10 @@ STRTOK_ROBJ = @STRTOK_ROBJ@
 LIBICONVOBJ = @LIBICONVOBJ@
 SNPRINTFOBJ = @SNPRINTFOBJ@
 
-TDSOBJS = [.src.tds]challenge$(OBJ), [.src.tds]config$(OBJ), [.src.tds]convert$(OBJ), \
-	[.src.tds]data$(OBJ), [.src.tds]des$(OBJ), [.src.tds]getmac$(OBJ), \
-	[.src.tds]iconv$(OBJ), [.src.tds]locale$(OBJ), [.src.tds]login$(OBJ), \
-	[.src.tds]md4$(OBJ), [.src.tds]mem$(OBJ), [.src.tds]numeric$(OBJ), \
+TDSOBJS = [.src.tds]bulk$(OBJ), [.src.tds]challenge$(OBJ), [.src.tds]config$(OBJ), \
+	[.src.tds]convert$(OBJ), [.src.tds]data$(OBJ), [.src.tds]des$(OBJ), [.src.tds]getmac$(OBJ), \
+	[.src.tds]gssapi$(OBJ), [.src.tds]hmac_md5$(OBJ), [.src.tds]iconv$(OBJ), [.src.tds]locale$(OBJ), \
+	[.src.tds]login$(OBJ), [.src.tds]md4$(OBJ), [.src.tds]mem$(OBJ), [.src.tds]numeric$(OBJ), \
 	[.src.tds]query$(OBJ), [.src.tds]read$(OBJ), [.src.tds]tdsstring$(OBJ), \
 	[.src.tds]threadsafe$(OBJ), [.src.tds]token$(OBJ), [.src.tds]util$(OBJ), \
 	[.src.tds]vstrbuild$(OBJ), [.src.tds]write$(OBJ), [.src.tds]md5$(OBJ), \
@@ -573,7 +573,7 @@ odbctests : [.src.odbc.unittests]t0001$(
 	link$(LINKFLAGS)/exe=$(MMS$TARGET) $(MMS$SOURCE_LIST),[]libtds$(OLB)/library
 
 [.src.tds.unittests]convert$(OBJ) : [.src.tds.unittests]convert.c
-	$(CC) $(CFLAGS)/NOWARN/INCLUDE=([.src.tds.unittests],$(CINCLUDE)) $(CDBGFLAGS) $(MMS$SOURCE)
+	$(CC) $(CFLAGS)/NOWARN/INCLUDE=([.src.tds.unittests],$(CINCLUDE),[.src.tds]) $(CDBGFLAGS) $(MMS$SOURCE)
 
 [.src.tds.unittests]dataread$(E) : [.src.tds.unittests]dataread$(OBJ) [.src.tds.unittests]common$(OBJ)
 	link$(LINKFLAGS)/exe=$(MMS$TARGET) $(MMS$SOURCE_LIST),[]libtds$(OLB)/library
--- src/dblib/unittests/common.c;-0	2009-03-19 10:09:56 -0500
+++ src/dblib/unittests/common.c	2009-03-26 11:52:43 -0500
@@ -110,12 +110,25 @@ read_login_info(int argc, char **argv)
 	static const char *PWD = "../../../PWD";
 	struct { char *username, *password, *servername, *database; char fverbose; } options;
 	
-	BASENAME = tds_basename((char *)argv[0]);
-#ifdef WIN32
+#ifdef __VMS
+	{
+		/* basename expects unix format */
+		strncpy(filename, argv[0],  PATH_MAX);
+		s1 = strrchr(filename, ';'); /* trim version; extension trimmed later */
+		if (s1) *s1 = 0;
+		const char *unixspec = decc$translate_vms(filename);
+		strncpy(filename, unixspec,  PATH_MAX);
+	}
+#else
+	strncpy(filename, argv[0],  PATH_MAX);
+#endif
+	
+	BASENAME = tds_basename(filename);
+#if defined(WIN32) || defined(__VMS)
 	s1 = strrchr(BASENAME, '.');
 	if (s1) *s1 = 0;
 #endif
-	DIRNAME = dirname((char *)argv[0]);
+	DIRNAME = dirname(filename);
 	
 	memset(&options, 0, sizeof(options));
 	
--- include/fakepoll.h;-0	2009-01-06 20:58:32 -0600
+++ include/fakepoll.h	2009-03-17 23:03:52 -0500
@@ -19,6 +19,10 @@
 #include <winsock2.h>
 #endif
 
+#if defined(__VMS)
+#include <time.h> /* FD_SETSIZE is in here */
+#endif
+
 #if !defined(FD_SETSIZE)
 # if !defined(OPEN_MAX)
 # error cannot establish FD_SETSIZE
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.