1# -*- Makefile -*- for gperf on VMS using the MMS utility
2
3# Copyright (C) 2003 Free Software Foundation, Inc.
4# Written by Bruno Haible <bruno@clisp.org>.
5#
6# This file is part of GNU GPERF.
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21#### Start of system configuration section. ####
22
23# Directories used by "make install":
24prefix = SYS$DATA:[
25exec_prefix = $(prefix)
26datadir = $(prefix).share
27bindir = $(exec_prefix).bin
28mandir = $(datadir).man
29man1dir = $(mandir).man1
30docdir = $(datadir).doc.gperf
31
32# Programs used by "make":
33
34CC = cc
35CXX = cxx
36
37# These flags affect binary compatibility. GNU gperf does not need them,
38# but other packages do.
39ABIFLAGS = /name=(as_is,short) /float=ieee
40
41WARN_CFLAGS = /warning
42
43OPTIMFLAGS = /optimize
44
45CFLAGS = $(ABIFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS)
46CXXFLAGS = $(ABIFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS)
47DEFS = "VMS=1","HAVE_CONFIG_H=1"
48
49INCLUDES = /include=([],[.lib],[.src])
50
51LN = copy
52RM = delete
53
54# Programs used by "make install":
55INSTALL = copy
56INSTALL_PROGRAM = copy
57INSTALL_DATA = copy
58
59#### End of system configuration section. ####
60
61LIB_OBJECTS = [.lib]getopt.obj,[.lib]getopt1.obj,[.lib]getline.obj,[.lib]hash.obj
62SRC_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
63OBJECTS = $(LIB_OBJECTS),$(SRC_OBJECTS)
64
65all : gperf.exe
66	write sys$output "Nothing else to be done for 'all'."
67
68[.src]config.h : [.src]config.h_vms
69	$(LN) [.src]config.h_vms [.src]config.h
70
71[.lib]getopt.obj : [.lib]getopt.c
72	$(CC) $(INCLUDES) $(CFLAGS) /define=("VMS=1") [.lib]getopt.c /obj=[.lib]getopt.obj
73
74[.lib]getopt1.obj : [.lib]getopt1.c
75	$(CC) $(INCLUDES) $(CFLAGS) /define=("VMS=1") [.lib]getopt1.c /obj=[.lib]getopt1.obj
76
77[.lib]getline.obj : [.lib]getline.cc
78	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=("VMS=1") [.lib]getline.cc /obj=[.lib]getline.obj
79
80[.lib]hash.obj : [.lib]hash.cc
81	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=("VMS=1") [.lib]hash.cc /obj=[.lib]hash.obj
82
83# Dependencies.
84CONFIG_H = [.src]config.h
85VERSION_H = [.src]version.h
86POSITIONS_H = [.src]positions.h,[.src]positions.icc
87OPTIONS_H = [.src]options.h,[.src]options.icc,$(POSITIONS_H)
88KEYWORD_H = [.src]keyword.h,[.src]keyword.icc
89KEYWORD_LIST_H = [.src]keyword-list.h,[.src]keyword-list.icc,$(KEYWORD_H)
90INPUT_H = [.src]input.h,$(KEYWORD_LIST_H)
91BOOL_ARRAY_H = [.src]bool-array.h,[.src]bool-array.icc,$(OPTIONS_H)
92HASH_TABLE_H = [.src]hash-table.h,$(KEYWORD_H)
93SEARCH_H = [.src]search.h,$(KEYWORD_LIST_H),$(POSITIONS_H),$(BOOL_ARRAY_H)
94OUTPUT_H = [.src]output.h,$(KEYWORD_LIST_H),$(POSITIONS_H)
95
96[.src]version.obj : [.src]version.cc,$(VERSION_H)
97	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]version.cc /obj=[.src]version.obj
98
99[.src]positions.obj : [.src]positions.cc,$(POSITIONS_H)
100	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]positions.cc /obj=[.src]positions.obj
101
102[.src]options.obj : [.src]options.cc,$(OPTIONS_H),$(VERSION_H)
103	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]options.cc /obj=[.src]options.obj
104
105[.src]keyword.obj : [.src]keyword.cc,$(KEYWORD_H),$(POSITIONS_H)
106	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]keyword.cc /obj=[.src]keyword.obj
107
108[.src]keyword-list.obj : [.src]keyword-list.cc,$(KEYWORD_LIST_H)
109	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]keyword-list.cc /obj=[.src]keyword-list.obj
110
111[.src]input.obj : [.src]input.cc,$(INPUT_H),$(OPTIONS_H)
112	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]input.cc /obj=[.src]input.obj
113
114[.src]bool-array.obj : [.src]bool-array.cc,$(BOOL_ARRAY_H),$(OPTIONS_H)
115	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]bool-array.cc /obj=[.src]bool-array.obj
116
117[.src]hash-table.obj : [.src]hash-table.cc,$(HASH_TABLE_H),$(OPTIONS_H)
118	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]hash-table.cc /obj=[.src]hash-table.obj
119
120[.src]search.obj : [.src]search.cc,$(SEARCH_H),$(OPTIONS_H),$(HASH_TABLE_H),$(CONFIG_H)
121	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]search.cc /obj=[.src]search.obj
122
123[.src]output.obj : [.src]output.cc,$(OUTPUT_H),$(OPTIONS_H),$(VERSION_H)
124	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]output.cc /obj=[.src]output.obj
125
126[.src]main.obj : [.src]main.cc,$(OPTIONS_H),$(INPUT_H),$(SEARCH_H),$(OUTPUT_H)
127	$(CXX) $(INCLUDES) $(CXXFLAGS) /define=($(DEFS)) [.src]main.cc /obj=[.src]main.obj
128
129gperf.exe : $(OBJECTS)
130	link /executable=gperf.exe $(OBJECTS)
131
132install : all force
133	create /directory $(prefix)]
134	create /directory $(exec_prefix)]
135	create /directory $(bindir)]
136	$(INSTALL_PROGRAM) gperf.exe $(bindir)]gperf.exe
137	create /directory $(datadir)]
138	create /directory $(mandir)]
139	create /directory $(man1dir)]
140	$(INSTALL_DATA) [.doc]gperf.1 $(man1dir)]gperf.1
141	create /directory $(datadir).doc]
142	create /directory $(docdir)]
143	$(INSTALL_DATA) [.doc]gperf.html $(docdir)]gperf.html
144
145installdirs : force
146	create /directory $(prefix)]
147	create /directory $(exec_prefix)]
148	create /directory $(bindir)]
149	create /directory $(datadir)]
150	create /directory $(mandir)]
151	create /directory $(man1dir)]
152	create /directory $(datadir).doc]
153	create /directory $(docdir)]
154
155uninstall : force
156	$(RM) $(bindir)]gperf.exe;
157	$(RM) $(man1dir)]gperf.1;
158	$(RM) $(docdir)]gperf.html;
159
160check : all
161	write sys$output "Nothing else to be done for 'check'."
162
163mostlyclean : clean
164	write sys$output "Nothing else to be done for 'mostlyclean'."
165
166clean :
167	$(RM) [.lib]*.obj;*
168	$(RM) [.src]*.obj;*
169	$(RM) gperf.exe;*
170	$(RM) [.src]config.h;*
171
172distclean : clean
173	write sys$output "Nothing else to be done for 'distclean'."
174
175maintainer-clean : distclean
176	write sys$output "Nothing else to be done for 'maintainer-clean'."
177
178