summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2003-05-05 09:03:39 +0000
committerBruno Haible <bruno@clisp.org>2003-05-05 09:03:39 +0000
commitc82b70119a81f6412809d459f9a9b55d81d3354e (patch)
tree78d13e368631c54dea96b25c99a6199deabcd03b
parent31f7c8a49ebd4e8ccd4b4d01c7aca9922ff407f0 (diff)
downloadgperf-c82b70119a81f6412809d459f9a9b55d81d3354e.tar.gz
Support for VMS.
-rw-r--r--ChangeLog7
-rw-r--r--Makefile.devel5
-rw-r--r--Makefile.vms176
-rw-r--r--README.vms9
4 files changed, 196 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index febaf98..fc815e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-04-12 Bruno Haible <bruno@clisp.org>
+
+ * README.vms: New file.
+ * Makefile.vms: New file.
+ * Makefile.devel (src/config.h_vms): New rule.
+ (all): Depend on it.
+
2003-03-19 Bruno Haible <bruno@clisp.org>
* src/input.cc (Input::read_input): Ignore comments at the beginning
diff --git a/Makefile.devel b/Makefile.devel
index d958ab1..a25c39f 100644
--- a/Makefile.devel
+++ b/Makefile.devel
@@ -4,7 +4,7 @@
SHELL = /bin/sh
MAKE = make
-all : configures src/config.h.in src/config.h.msvc doc/gperf.1
+all : configures src/config.h.in src/config.h.msvc src/config.h_vms doc/gperf.1
CONFIGURES = configure lib/configure src/configure tests/configure doc/configure
@@ -34,6 +34,9 @@ src/config.h.in : src/configure.in aclocal.m4
src/config.h.msvc : src/config.h.in
cp src/config.h.in src/config.h.msvc
+src/config.h_vms : src/config.h.in
+ cp src/config.h.in src/config.h_vms
+
doc/gperf.1 : force
prog=`PATH=build/src:src:$$PATH which gperf`; if test -n "$$prog"; then doc/help2man --name='generate a perfect hash function from a key set' --section=1 $$prog > doc/gperf.1; fi
diff --git a/Makefile.vms b/Makefile.vms
new file mode 100644
index 0000000..37ec9ec
--- /dev/null
+++ b/Makefile.vms
@@ -0,0 +1,176 @@
+# -*- Makefile -*- for gperf on VMS using the MMS utility
+
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Written by Bruno Haible <bruno@clisp.org>.
+#
+# This file is part of GNU GPERF.
+#
+# GNU GPERF 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 2, or (at your option)
+# any later version.
+#
+# GNU GPERF 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; see the file COPYING.
+# If not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#### Start of system configuration section. ####
+
+# Directories used by "make install":
+prefix = SYS$DATA:[
+exec_prefix = $(prefix)
+bindir = $(exec_prefix).bin
+mandir = $(prefix).man
+man1dir = $(mandir).man1
+docdir = $(prefix).doc.gperf
+
+# Programs used by "make":
+
+CC = cl
+CXX = cxx
+
+# These flags affect binary compatibility. GNU gperf does not need them,
+# but other packages do.
+ABIFLAGS = /name=(as_is,short) /float=ieee
+
+WARN_CFLAGS = /warning
+
+OPTIMFLAGS = /optimize
+
+CFLAGS = $(ABIFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS)
+CXXFLAGS = $(ABIFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS)
+DEFS = "VMS=1","HAVE_CONFIG_H=1"
+
+INCLUDES = /include=([],[.lib],[.src])
+
+LN = copy
+RM = delete
+
+# Programs used by "make install":
+INSTALL = copy
+INSTALL_PROGRAM = copy
+INSTALL_DATA = copy
+
+#### End of system configuration section. ####
+
+LIB_OBJECTS = [.lib]getopt.obj,[.lib]getopt1.obj,[.lib]getline.obj,[.lib]hash.obj
+SRC_OBJECTS = [.src]version.obj,[.src]positions.obj,[.src]options.obj,[.src]keyword.obj,[.src]keyword-list.obj,[.src]input.obj,[.src]bool-array.obj,[.src]hash-table.obj,[.src]search.obj,[.src]output.obj,[.src]main.obj
+OBJECTS = $(LIB_OBJECTS),$(SRC_OBJECTS)
+
+all : gperf.exe
+ write sys$output "Nothing else to be done for 'all'."
+
+[.src]config.h : [.src]config.h_vms
+ $(LN) [.src]config.h_vms [.src]config.h
+
+[.lib]getopt.obj : [.lib]getopt.c
+ $(CC) $(INCLUDES) $(CFLAGS) /define=($(DEFS)) [.lib]getopt.c /obj=[.lib]getopt.obj
+
+[.lib]getopt1.obj : [.lib]getopt1.c
+ $(CC) $(INCLUDES) $(CFLAGS) /define=($(DEFS)) [.lib]getopt1.c /obj=[.lib]getopt1.obj
+
+[.lib]getline.obj : [.lib]getline.cc
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.lib]getline.cc /obj=[.lib]getline.obj
+
+[.lib]hash.obj : [.lib]hash.cc
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.lib]hash.cc /obj=[.lib]hash.obj
+
+# Dependencies.
+CONFIG_H = [.src]config.h
+VERSION_H = [.src]version.h
+POSITIONS_H = [.src]positions.h,[.src]positions.icc
+OPTIONS_H = [.src]options.h,[.src]options.icc,$(POSITIONS_H)
+KEYWORD_H = [.src]keyword.h,[.src]keyword.icc
+KEYWORD_LIST_H = [.src]keyword-list.h,[.src]keyword-list.icc,$(KEYWORD_H)
+INPUT_H = [.src]input.h,$(KEYWORD_LIST_H)
+BOOL_ARRAY_H = [.src]bool-array.h,[.src]bool-array.icc,$(OPTIONS_H)
+HASH_TABLE_H = [.src]hash-table.h,$(KEYWORD_H)
+SEARCH_H = [.src]search.h,$(KEYWORD_LIST_H),$(POSITIONS_H),$(BOOL_ARRAY_H)
+OUTPUT_H = [.src]output.h,$(KEYWORD_LIST_H),$(POSITIONS_H)
+
+[.src]version.obj : [.src]version.cc,$(VERSION_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]version.cc /obj=[.src]version.obj
+
+[.src]positions.obj : [.src]positions.cc,$(POSITIONS_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]positions.cc /obj=[.src]positions.obj
+
+[.src]options.obj : [.src]options.cc,$(OPTIONS_H),$(VERSION_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]options.cc /obj=[.src]options.obj
+
+[.src]keyword.obj : [.src]keyword.cc,$(KEYWORD_H),$(POSITIONS_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]keyword.cc /obj=[.src]keyword.obj
+
+[.src]keyword-list.obj : [.src]keyword-list.cc,$(KEYWORD_LIST_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]keyword-list.cc /obj=[.src]keyword-list.obj
+
+[.src]input.obj : [.src]input.cc,$(INPUT_H),$(OPTIONS_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]input.cc /obj=[.src]input.obj
+
+[.src]bool-array.obj : [.src]bool-array.cc,$(BOOL_ARRAY_H),$(OPTIONS_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]bool-array.cc /obj=[.src]bool-array.obj
+
+[.src]hash-table.obj : [.src]hash-table.cc,$(HASH_TABLE_H),$(OPTIONS_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]hash-table.cc /obj=[.src]hash-table.obj
+
+[.src]search.obj : [.src]search.cc,$(SEARCH_H),$(OPTIONS_H),$(HASH_TABLE_H),$(CONFIG_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]search.cc /obj=[.src]search.obj
+
+[.src]output.obj : [.src]output.cc,$(OUTPUT_H),$(OPTIONS_H),$(VERSION_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]output.cc /obj=[.src]output.obj
+
+[.src]main.obj : [.src]main.cc,$(OPTIONS_H),$(INPUT_H),$(SEARCH_H),$(OUTPUT_H)
+ $(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]main.cc /obj=[.src]main.obj
+
+gperf.exe : $(OBJECTS)
+ link /executable=gperf.exe $(OBJECTS)
+
+install : all force
+ create /directory $(prefix)]
+ create /directory $(exec_prefix)]
+ create /directory $(bindir)]
+ $(INSTALL_PROGRAM) gperf.exe $(bindir)]gperf.exe
+ create /directory $(mandir)]
+ create /directory $(man1dir)]
+ $(INSTALL_DATA) [.doc]gperf.1 $(man1dir)]gperf.1
+ create /directory $(prefix).doc]
+ create /directory $(docdir)]
+ $(INSTALL_DATA) [.doc]gperf.html $(docdir)]gperf.html
+
+installdirs : force
+ create /directory $(prefix)]
+ create /directory $(exec_prefix)]
+ create /directory $(bindir)]
+ create /directory $(mandir)]
+ create /directory $(man1dir)]
+ create /directory $(prefix).doc]
+ create /directory $(docdir)]
+
+uninstall : force
+ $(RM) $(bindir)]gperf.exe;
+ $(RM) $(man1dir)]gperf.1;
+ $(RM) $(docdir)]gperf.html;
+
+check : all
+ write sys$output "Nothing else to be done for 'check'."
+
+mostlyclean : clean
+ write sys$output "Nothing else to be done for 'mostlyclean'."
+
+clean :
+ $(RM) [.lib]*.obj;*
+ $(RM) [.src]*.obj;*
+ $(RM) gperf.exe;*
+ $(RM) [.src]config.h;*
+
+distclean : clean
+ write sys$output "Nothing else to be done for 'distclean'."
+
+maintainer-clean : distclean
+ write sys$output "Nothing else to be done for 'maintainer-clean'."
+
diff --git a/README.vms b/README.vms
new file mode 100644
index 0000000..6408f46
--- /dev/null
+++ b/README.vms
@@ -0,0 +1,9 @@
+Installation on VMS:
+
+- Build instructions:
+
+ $ mms /description=Makefile.vms
+
+- Installation:
+
+ $ mms /description=Makefile.vms install