1162485Sjulian# Generated automatically from Makefile.in by configure.
2162485Sjulian# Makefile for OS/2.  Generated from Makefile.in when CVS is
3# configured for a dist-build.  Configure never gets run on OS/2, so
4# we must include the generated Makefile in the distribution.  See the
5# `dist-dir' rule.
6
7project: cvs.exe
8# .SUFFIXES .c .o .exe
9
10# Directory in which to install executables.
11install_dir = s:/gnu/util
12
13# srcdir is usually "."
14srcdir     = .
15
16# top_srcdir is usually ".."
17top_srcdir = ..
18
19subdir     = emx
20
21lib_dir     = ${top_srcdir}/lib
22cvs_srcdir = ${top_srcdir}/src
23diff_srcdir = ${top_srcdir}/diff
24zlib_dir = ${top_srcdir}/zlib
25
26# Do we need these?
27# prefix = /usr/local
28# exec_prefix = ${prefix}
29
30# Used to say -lufc, but that would only be needed for crypt().
31LIB = -lsocket
32
33CINC =
34# This says we are building an object file, not a full executable.
35OBJ_CFLAGS = -c
36CFLAGS = -pedantic -Wall -fno-builtin ${CINC} \
37  -I${srcdir} -I${lib_dir} -I${cvs_srcdir} -I${zlib_dir} \
38  -DUNIX -DHAVE_CONFIG_H
39
40
41# headers specific to OS/2
42
43# We list OS2_HEADERS so we know what to include when we make dist-dir
44# here.
45OS2_HEADERS = \
46       ${srcdir}/config.h \
47       ${srcdir}/options.h \
48       ${srcdir}/rcmd.h
49
50# headers we use from the common src dir, ../src
51COMMON_HEADERS = \
52       ${cvs_srcdir}/client.h \
53       ${cvs_srcdir}/cvs.h \
54       ${cvs_srcdir}/rcs.h \
55       ${cvs_srcdir}/hash.h \
56       ${cvs_srcdir}/myndbm.h \
57       ${cvs_srcdir}/patchlevel.h \
58       ${cvs_srcdir}/update.h \
59       ${cvs_srcdir}/server.h \
60       ${cvs_srcdir}/error.h
61
62# headers in ../diff
63DIFF_HEADERS = \
64       ${diff_srcdir}/cmpbuf.h \
65	   ${diff_srcdir}/diff.h \
66	   ${diff_srcdir}/system.h 
67
68# sources specific to OS/2
69OS2_SOURCES = \
70       ${srcdir}/filesubr.c \
71       ${srcdir}/startserver.c \
72       ${srcdir}/stripslash.c \
73       ${srcdir}/savecwd.c \
74       ${srcdir}/system.c
75
76# sources we use from the common src dir, ../src
77# FIXME: Is this used anywhere?  I don't think it is.
78COMMON_SOURCES = \
79       ${cvs_srcdir}/add.c \
80       ${cvs_srcdir}/admin.c \
81       ${cvs_srcdir}/buffer.c \
82       ${cvs_srcdir}/checkin.c \
83       ${cvs_srcdir}/checkout.c \
84       ${cvs_srcdir}/classify.c \
85       ${cvs_srcdir}/client.c \
86       ${cvs_srcdir}/commit.c \
87       ${cvs_srcdir}/create_adm.c \
88       ${cvs_srcdir}/cvsrc.c \
89       ${cvs_srcdir}/diff.c \
90       ${cvs_srcdir}/edit.c \
91       ${cvs_srcdir}/entries.c \
92       ${cvs_srcdir}/error.c \
93       ${cvs_srcdir}/expand_path.c \
94       ${cvs_srcdir}/fileattr.c \
95       ${cvs_srcdir}/find_names.c \
96       ${cvs_srcdir}/hash.c \
97       ${cvs_srcdir}/history.c \
98       ${cvs_srcdir}/ignore.c \
99       ${cvs_srcdir}/import.c \
100       ${cvs_srcdir}/lock.c \
101       ${cvs_srcdir}/log.c \
102       ${cvs_srcdir}/login.c \
103       ${cvs_srcdir}/logmsg.c \
104       ${cvs_srcdir}/main.c \
105       ${cvs_srcdir}/mkmodules.c \
106       ${cvs_srcdir}/modules.c \
107       ${cvs_srcdir}/myndbm.c \
108       ${cvs_srcdir}/no_diff.c \
109       ${cvs_srcdir}/parseinfo.c \
110       ${cvs_srcdir}/patch.c \
111       ${cvs_srcdir}/rcs.c \
112       ${cvs_srcdir}/rcscmds.c \
113       ${cvs_srcdir}/recurse.c \
114       ${cvs_srcdir}/release.c \
115       ${cvs_srcdir}/remove.c \
116       ${cvs_srcdir}/repos.c \
117       ${cvs_srcdir}/root.c \
118       ${cvs_srcdir}/scramble.c \
119       ${cvs_srcdir}/server.c \
120       ${cvs_srcdir}/status.c \
121       ${cvs_srcdir}/subr.c \
122       ${cvs_srcdir}/run.c \
123       ${cvs_srcdir}/tag.c \
124       ${cvs_srcdir}/update.c \
125       ${cvs_srcdir}/watch.c \
126       ${cvs_srcdir}/wrapper.c \
127       ${cvs_srcdir}/vers_ts.c \
128       ${cvs_srcdir}/version.c \
129       ${cvs_srcdir}/zlib.c
130# end of $COMMON_SOURCES
131
132# sources in ../diff
133DIFF_SOURCES = \
134	   ${diff_srcdir}/analyze.c \
135	   ${diff_srcdir}/cmpbuf.c \
136	   ${diff_srcdir}/context.c \
137	   ${diff_srcdir}/diff.c \
138	   ${diff_srcdir}/diff3.c \
139	   ${diff_srcdir}/dir.c \
140	   ${diff_srcdir}/ed.c \
141	   ${diff_srcdir}/ifdef.c \
142	   ${diff_srcdir}/io.c \
143	   ${diff_srcdir}/normal.c \
144	   ${diff_srcdir}/side.c \
145	   ${diff_srcdir}/util.c \
146	   ${diff_srcdir}/version.c 
147
148# sources from ../lib
149# FIXME: Is this used anywhere?  I don't think it is.
150LIB_SOURCES = \
151       ${lib_dir}/argmatch.c \
152       ${lib_dir}/getline.c \
153       ${lib_dir}/getopt.c \
154       ${lib_dir}/getopt1.c \
155       ${lib_dir}/md5.c \
156       ${lib_dir}/regex.c \
157       ${lib_dir}/sighandle.c \
158       ${lib_dir}/valloc.c \
159       ${lib_dir}/yesno.c \
160       ${lib_dir}/getdate.c
161
162# object files from OS/2 sources
163# was       ${srcdir}/rcmd.o
164OS2_OBJECTS = \
165       ${srcdir}/filesubr.o \
166       ${srcdir}/startserver.o \
167       ${srcdir}/stripslash.o \
168       ${top_srcdir}/windows-NT/rcmd.o \
169       ${srcdir}/savecwd.o \
170       ${srcdir}/system.o
171
172# object files from ../src
173COMMON_OBJECTS = \
174       ${cvs_srcdir}/add.o \
175       ${cvs_srcdir}/admin.o \
176       ${cvs_srcdir}/buffer.o \
177       ${cvs_srcdir}/checkin.o \
178       ${cvs_srcdir}/checkout.o \
179       ${cvs_srcdir}/classify.o \
180       ${cvs_srcdir}/client.o \
181       ${cvs_srcdir}/commit.o \
182       ${cvs_srcdir}/create_adm.o \
183       ${cvs_srcdir}/cvsrc.o \
184       ${cvs_srcdir}/diff.o \
185       ${cvs_srcdir}/edit.o \
186       ${cvs_srcdir}/entries.o \
187       ${cvs_srcdir}/expand_path.o \
188       ${cvs_srcdir}/fileattr.o \
189       ${cvs_srcdir}/find_names.o \
190       ${cvs_srcdir}/hash.o \
191       ${cvs_srcdir}/history.o \
192       ${cvs_srcdir}/ignore.o \
193       ${cvs_srcdir}/import.o \
194       ${cvs_srcdir}/lock.o \
195       ${cvs_srcdir}/log.o \
196       ${cvs_srcdir}/login.o \
197       ${cvs_srcdir}/logmsg.o \
198       ${cvs_srcdir}/main.o \
199       ${cvs_srcdir}/mkmodules.o \
200       ${cvs_srcdir}/modules.o \
201       ${cvs_srcdir}/myndbm.o \
202       ${cvs_srcdir}/no_diff.o \
203       ${cvs_srcdir}/parseinfo.o \
204       ${cvs_srcdir}/patch.o \
205       ${cvs_srcdir}/rcs.o \
206       ${cvs_srcdir}/rcscmds.o \
207       ${cvs_srcdir}/recurse.o \
208       ${cvs_srcdir}/release.o \
209       ${cvs_srcdir}/remove.o \
210       ${cvs_srcdir}/repos.o \
211       ${cvs_srcdir}/root.o \
212       ${cvs_srcdir}/scramble.o \
213       ${cvs_srcdir}/server.o \
214       ${cvs_srcdir}/status.o \
215       ${cvs_srcdir}/tag.o \
216       ${cvs_srcdir}/update.o \
217       ${cvs_srcdir}/watch.o \
218       ${cvs_srcdir}/wrapper.o \
219       ${cvs_srcdir}/vers_ts.o \
220       ${cvs_srcdir}/subr.o \
221       ${cvs_srcdir}/run.o \
222       ${cvs_srcdir}/version.o \
223       ${cvs_srcdir}/error.o \
224       ${cvs_srcdir}/zlib.o
225# end of $COMMON_OBJECTS
226
227# object files in ../diff
228DIFF_OBJECTS = \
229       ${diff_srcdir}/analyze.o \
230	   ${diff_srcdir}/cmpbuf.o \
231	   ${diff_srcdir}/context.o \
232	   ${diff_srcdir}/diff.o \
233	   ${diff_srcdir}/diff3.o \
234	   ${diff_srcdir}/dir.o \
235	   ${diff_srcdir}/ed.o \
236	   ${diff_srcdir}/ifdef.o \
237	   ${diff_srcdir}/io.o \
238	   ${diff_srcdir}/normal.o \
239	   ${diff_srcdir}/side.o \
240	   ${diff_srcdir}/util.o \
241	   ${diff_srcdir}/version.o 
242
243# objects from ../lib
244LIB_OBJECTS = \
245       ${lib_dir}/argmatch.o \
246       ${lib_dir}/getline.o \
247       ${lib_dir}/getopt.o \
248       ${lib_dir}/getopt1.o \
249       ${lib_dir}/md5.o \
250       ${lib_dir}/regex.o \
251       ${lib_dir}/sighandle.o \
252       ${lib_dir}/valloc.o \
253       ${lib_dir}/yesno.o \
254       ${lib_dir}/getdate.o
255
256ZLIB_OBJECTS = ${zlib_dir}/adler32.o \
257       ${zlib_dir}/compress.o \
258       ${zlib_dir}/crc32.o \
259       ${zlib_dir}/gzio.o \
260       ${zlib_dir}/uncompr.o \
261       ${zlib_dir}/deflate.o \
262       ${zlib_dir}/trees.o \
263       ${zlib_dir}/zutil.o \
264       ${zlib_dir}/inflate.o \
265       ${zlib_dir}/infblock.o \
266       ${zlib_dir}/inftrees.o \
267       ${zlib_dir}/infcodes.o \
268       ${zlib_dir}/infutil.o \
269       ${zlib_dir}/inffast.o
270
271SOURCES = ${COMMON_SOURCES} ${LIB_SOURCES} ${OS2_SOURCES} ${DIFF_SOURCES}
272HEADERS = ${COMMON_HEADERS} ${OS2_HEADERS} ${DIFF_HEADERS}
273OBJECTS = ${COMMON_OBJECTS} ${LIB_OBJECTS} ${OS2_OBJECTS} ${DIFF_OBJECTS} \
274  ${ZLIB_OBJECTS}
275
276DISTFILES = ${OS2_HEADERS} ${OS2_SOURCES} \
277  ${srcdir}/README ${srcdir}/ChangeLog \
278  ${srcdir}/Makefile.in ${srcdir}/.cvsignore \
279  Makefile
280
281all:
282
283# Automake
284.PHONY: all install installcheck uninstall check info
285all install installcheck uninstall check info:
286
287installdirs:
288.PHONY: installdirs
289
290.PHONY: tags TAGS
291tags TAGS:
292
293.PHONY: clean distclean realclean mostlyclean
294clean distclean realclean maintainer-clean mostlyclean:
295
296.PHONY: lint
297lint:
298
299# distdir added for CVS.
300top_builddir = ..
301PACKAGE = cvs
302VERSION = 1.11.1p1
303distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
304# FIXME - sedding the directory off of the DISTFILES targets is really yucky.
305# The $(srcdir) prefixes should really be removed from all of the files in the
306# lists that make up DISTFILES above.  Unfortunately, I don't have an EMX box
307# to test on.
308distdir: $(DISTFILES)
309	@d=$(srcdir); \
310	for f in $(DISTFILES); do \
311	  file=`echo $$f |sed 's,.*/,,'`; \
312	  if test -d $(distdir)/`dirname $$file`; then \
313	    :; \
314	  else \
315	    mkdir $(distdir)/`dirname $$file`; \
316	  fi; \
317	  if test -d $$d/$$file; then \
318	    cp -pR $$d/$$file $(distdir) \
319	    || exit 1; \
320	  else \
321	    test -f $(distdir)/$$file \
322	    || cp -p $$d/$$file $(distdir)/$$file \
323	    || exit 1; \
324	  fi; \
325	done
326.PHONY: distdir
327
328# We don't have a real distclean or anything like that, but at least
329# we can get rid of the obj files and cvs.exe. 
330.PHONY: clean distclean realclean mostlyclean maintainer-clean
331clean distclean realclean maintainer-clean mostlyclean:
332	rm -f cvs.exe cvs.out
333	rm -f ${srcdir}/*.o
334	rm -f ${diff_srcdir}/*.o
335	rm -f ${lib_dir}/*.o ${lib_dir}/*.a
336	rm -f ${zlib_dir}/*.o ${zlib_dir}/*.a
337	rm -f ${cvs_srcdir}/*.o
338
339clean-cvs:
340	del cvs.exe cvs.out
341	del $(subst /,\,${srcdir}/*.o)
342	del $(subst /,\,${diff_srcdir}/*.o)
343	del $(subst /,\,${lib_dir}/*.o ${lib_dir}/*.a)
344	del $(subst /,\,${zlib_dir}/*.o ${zlib_dir}/*.a)
345	del $(subst /,\,${cvs_srcdir}/*.o)
346
347install-cvs: cvs.exe
348	copy $(subst /,\,${srcdir}/cvs.exe ${install_dir}/cvs.exe)
349
350%.o: %.c
351	gcc ${OBJ_CFLAGS} ${CFLAGS} -o $@ -c $*.c
352
353${cvs_srcdir}/rcscmds.o: ${cvs_srcdir}/rcscmds.c ${top_srcdir}/diff/diffrun.h
354	gcc ${OBJ_CFLAGS} ${CFLAGS} -I${top_srcdir}/diff -o $@ -c $*.c
355
356${lib_dir}/libcvs.a: $(LIB_OBJECTS)
357	$(AR) cr $@ $(LIB_OBJECTS)
358
359${zlib_dir}/libz.a: $(ZLIB_OBJECTS)
360	$(AR) cr $@ $(ZLIB_OBJECTS)
361
362# Eventually probably static linking (cvs-static.exe) will be the
363# default, but even so we'll want to preserve this rule so we can
364# create a dynamically linked executable when we want coredumps.
365cvs.exe: ${OBJECTS} ${lib_dir}/libcvs.a ${zlib_dir}/libz.a
366	gcc $(COMMON_OBJECTS) $(OS2_OBJECTS) ${DIFF_OBJECTS} ${lib_dir}/libcvs.a ${zlib_dir}/libz.a $(LIB) -o cvs.out
367	emxbind -w -o $@.exe cvs.out
368
369${lib_dir}/libcvs.lib: ${lib_dir}/libcvs.a
370	emxomf ${lib_dir}/libcvs.a
371
372${zlib_dir}/libz.lib: ${zlib_dir}/libz.a
373	emxomf ${zlib_dir}/libz.a
374
375# Where do -Zomf -Zsys go?  When we compile the .o's?
376# When I tried this rule, I had problems with (1) could not find
377# socket.lib.  Hmm.  I thought I converted it from socket.a
378# in the EMX distribution.  Probably my EMX installation at fault.
379# (2) could not find miscellaneous system routines like strerror.
380# This might be a matter of learning to live without them (EMX
381# doc is supposed to describe which are present and which are not).
382# (3) some linker errors like no stack and the like.  Maybe I am
383# missing some options?
384cvs-static.exe: ${OBJECTS} ${lib_dir}/libcvs.lib ${zlib_dir}/libz.lib
385	emxomf ${OBJECTS}
386	emxomfld -o $@ $(subst .o,.obj,${OBJECTS}) \
387	  ${lib_dir}/libcvs.lib ${zlib_dir}/libz.lib ${LIB}
388
389# cvs.o: ${OBJECTS} ${SOURCES} ${HEADERS}
390
391# Hmm.  This rule wants to exist on unix, so that "make dist" works.
392# And it doesn't want to exist on OS/2, because configure doesn't
393# run on OS/2 and so ../config.status won't exist.  For now we just
394# say, in emx/README, that people will need to comment it out.
395Makefile: ../config.status $(srcdir)/Makefile.in
396	cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
397
398