VMS support, contributed by Craig Berry.

This commit is contained in:
Fred L. Drake, Jr. 2002-06-05 04:13:10 +00:00
parent 5e17fb9437
commit c457dfb346
7 changed files with 175 additions and 0 deletions

View file

@ -42,6 +42,9 @@ tests/chardata.c
tests/chardata.h
tests/runtests.c
tests/xmltest.sh
vms/descrip.mms
vms/expat_config.h
vms/README.vms
xmlwf/codepage.c
xmlwf/codepage.h
xmlwf/ct.c

View file

@ -5,6 +5,15 @@
#ifndef XmlParse_INCLUDED
#define XmlParse_INCLUDED 1
#ifdef __VMS
/* 0 1 2 3 0 1 2 3
1234567890123456789012345678901 1234567890123456789012345678901 */
#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler
#define XML_SetUnparsedEntityDeclHandler XML_SetUnparsedEntDeclHandler
#define XML_SetStartNamespaceDeclHandler XML_SetStartNamespcDeclHandler
#define XML_SetExternalEntityRefHandlerArg XML_SetExternalEntRefHandlerArg
#endif
#include <stdlib.h>
#ifndef XMLPARSEAPI

View file

@ -2,6 +2,10 @@
See the file COPYING for copying permission.
*/
#ifdef __VMS
#include <string.h> /* memset(), memcpy() */
#endif
#ifdef COMPILED_FROM_DSP
#include "winconfig.h"

View file

@ -6,6 +6,12 @@ See the file COPYING for copying permission.
#ifndef XmlRole_INCLUDED
#define XmlRole_INCLUDED 1
#ifdef __VMS
/* 0 1 2 3 0 1 2 3
1234567890123456789012345678901 1234567890123456789012345678901 */
#define XmlPrologStateInitExternalEntity XmlPrologStateInitExternalEnt
#endif
#include "xmltok.h"
#ifdef __cplusplus

23
expat/vms/README.vms Normal file
View file

@ -0,0 +1,23 @@
4-jun-2002 Craig A. Berry
Added rudimentary build procedures for
OpenVMS based on work by Martin Vorlaender.
You'll need MMS or its freeware equivalent MMK. Just go to the
top-level directory and type
$ MMS/DESCRIPTION=[.vms]
or
$ MMK/DESCRIPTION=[.vms]
You'll end up with the object library expat.olb. For now, installation
consists merely of copying the object library, include files, and
documentation to a suitable location.
To-do list:
-- create a shareable image
-- build and run the tests and build the xmlwf utility
-- create an install target

69
expat/vms/descrip.mms Normal file
View file

@ -0,0 +1,69 @@
# Bare bones description file (Makefile) for OpenVMS
PACKAGE = expat
VERSION = 1.95.3
EXPAT_MAJOR_VERSION=1
EXPAT_MINOR_VERSION=95
EXPAT_EDIT=3
O = .obj
OLB = .olb
LIBRARY = expat$(OLB)
LIBDIR = [.lib]
SOURCES = $(LIBDIR)xmlparse.c $(LIBDIR)xmltok.c $(LIBDIR)xmlrole.c
OBJECTS = xmlparse$(O) xmltok$(O) xmlrole$(O)
TEMPLATES = xmltok_impl.c xmltok_ns.c
APIHEADER = $(LIBDIR)expat.h
HEADERS = $(LIBDIR)ascii.h $(LIBDIR)iasciitab.h $(LIBDIR)utf8tab.h $(LIBDIR)xmltok.h \
$(LIBDIR)asciitab.h $(LIBDIR)latin1tab.h \
$(LIBDIR)nametab.h $(LIBDIR)xmldef.h $(LIBDIR)xmlrole.h $(LIBDIR)xmltok_impl.h
CONFIG_HEADER = expat_config.h
INCLUDES = /INCLUDE=([],[.lib])
DEFS = /DEFINE=(PACKAGE="""$(PACKAGE)""",VERSION="""$(PACKAGE)_$(VERSION)""")
LIBREVISION = 0
LIBCURRENT = 1
LIBAGE = 0
#
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
#
# DISTFILES = $(DIST_COMMON) $(SOURCES) $(TEMPLATES) $(APIHEADER) $(HEADERS)
#
# TAR = gtar
# GZIP_ENV = --best
#
.FIRST :
IF F$SEARCH("$(LIBRARY)") .EQS. "" THEN $(LIBR) /CREATE /OBJECT $(LIBRARY)
all : $(LIBRARY)
.SUFFIXES :
.SUFFIXES : $(OLB) $(O) .C .H
.c$(O) :
$(COMPILE) $(MMS$SOURCE)
$(O)$(OLB) :
@ IF F$SEARCH("$(MMS$TARGET)") .EQS. "" -
THEN LIBRARY/CREATE/LOG $(MMS$TARGET)
@ LIBRARY /REPLACE /LOG $(MMS$TARGET) $(MMS$SOURCE)
clean :
DELETE $(LIBRARY);*,*$(O);*
$(LIBRARY) : $(LIBRARY)( $(OBJECTS) )
$(LIBR) /COMPRESS $(MMS$TARGET)
$(CONFIG_HEADER) : [.vms]expat_config.h
COPY/LOG $(MMS$SOURCE) $(MMS$TARGET)
xmlparse$(O) : $(LIBDIR)xmlparse.c $(LIBDIR)expat.h $(LIBDIR)xmlrole.h $(LIBDIR)xmltok.h $(CONFIG_HEADER)
xmlrole$(O) : $(LIBDIR)xmlrole.c $(LIBDIR)ascii.h $(LIBDIR)xmlrole.h $(CONFIG_HEADER)
xmltok$(O) : $(LIBDIR)xmltok.c $(LIBDIR)xmltok_impl.c $(LIBDIR)xmltok_ns.c \
$(LIBDIR)ascii.h $(LIBDIR)asciitab.h $(LIBDIR)iasciitab.h $(LIBDIR)latin1tab.h \
$(LIBDIR)nametab.h $(LIBDIR)utf8tab.h $(LIBDIR)xmltok.h $(LIBDIR)xmltok_impl.h $(CONFIG_HEADER)

61
expat/vms/expat_config.h Normal file
View file

@ -0,0 +1,61 @@
/* Copyright 2000, Clark Cooper
All rights reserved.
This is free software. You are permitted to copy, distribute, or modify
it under the terms of the MIT/X license (contained in the COPYING file
with this distribution.)
*/
/* Define to empty if the keyword does not work. */
#undef const
/* Define if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t
/* Define to `unsigned' if <sys/types.h> doesn't define. */
#undef size_t
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define if your processor stores words with the most significant
byte first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
/* Define if you have the bcopy function. */
#undef HAVE_BCOPY
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
/* Define if you have the memmove function. */
#define HAVE_MEMMOVE 1
/* Define if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
#define XML_NS
#define XML_DTD
#ifdef WORDS_BIGENDIAN
#define XML_BYTE_ORDER 21
#else
#define XML_BYTE_ORDER 12
#endif
#define XML_CONTEXT_BYTES 1024
#ifndef HAVE_MEMMOVE
#ifdef HAVE_BCOPY
#define memmove(d,s,l) bcopy((s),(d),(l))
#else
#define memmove(d,s,l) ;punting on memmove;
#endif
#endif