revert most files from origtgz deleted in MirBSD base to origtgz
[alioth/cvs.git] / os2 / Makefile.in
1 # Makefile for OS/2.  Generated from Makefile.in when CVS is
2 # configured for a dist-build.  Configure never gets run on OS/2, so
3 # we must include the generated Makefile in the distribution.  See the
4 # `dist-dir' rule.
5
6 project: cvs.exe
7 # .SUFFIXES .c .obj .exe
8
9 # path slash.  This was introduced so that it can be set to \
10 # instead of / for linking, but now that the cvs.exe rule uses
11 # subst to produce \, it should be possible to nuke SL.
12 # FIXME - nuke SL
13 SL = /
14
15 # Directory in which to install executables.
16 install_dir = s:${SL}gnu${SL}util
17
18 # srcdir is usually "."
19 srcdir     = @srcdir@
20
21 # top_srcdir is usually ".."
22 top_srcdir = @top_srcdir@
23
24 VPATH      = @srcdir@
25 subdir     = os2
26
27 lib_dir     = @top_srcdir@${SL}lib
28 cvs_srcdir = @top_srcdir@${SL}src
29
30 zlib_dir = ${top_srcdir}/zlib
31
32 # Do we need these?
33 # prefix = /usr/local
34 # exec_prefix = ${prefix}
35
36 # taken straight from the example project
37 LIB = s:${SL}ibmcpp${SL}lib;s:${SL}toolkt21${SL}os2lib;
38 CINC = -Is:${SL}ibmcpp${SL}include -Is:${SL}toolkt21${SL}c${SL}os2h
39 # This says we are building an object file, not a full executable.
40 OBJ_CFLAGS = -C+
41 CFLAGS = -W3 -Wrea+tru+ -Ti+ -Ss+ -Gd- -Gm+ -G4 -Q+ -Sm ${CINC} \
42   -I${srcdir} -I${lib_dir} -I${cvs_srcdir} -I${zlib_dir} \
43   -DIBM_CPP -DHAVE_CONFIG_H \
44   -DTCPIP_IBM -Is:${SL}ibmtcpip${SL}include
45
46 # needed to make command-line wildcard expansion work right.  That's
47 # right, DOS-descendants handle this from the program, not the shell.
48 ARGVLIB = s:${SL}ibmcpp${SL}lib${SL}setargv.obj
49
50 # TCP/IP stuff
51 TCPIPLIB = s:${SL}ibmtcpip${SL}lib${SL}tcp32dll.lib     s:${SL}ibmtcpip${SL}lib${SL}so32dll.lib
52
53
54 # headers specific to OS/2
55
56 # We list OS2_HEADERS so we know what to include when we make dist-dir
57 # here.
58 OS2_HEADERS = \
59        tcpip.h \
60        config.h \
61        pwd.h \
62        dirent.h \
63        rcmd.h \
64        popen.h
65
66 # headers we use from the common src dir, ..${SL}src
67 COMMON_HEADERS = \
68        ${cvs_srcdir}${SL}client.h \
69        ${cvs_srcdir}${SL}cvs.h \
70        ${cvs_srcdir}${SL}rcs.h \
71        ${cvs_srcdir}${SL}hash.h \
72        ${cvs_srcdir}${SL}myndbm.h \
73        ${cvs_srcdir}${SL}patchlevel.h \
74        ${cvs_srcdir}${SL}update.h \
75        ${cvs_srcdir}${SL}server.h \
76        ${cvs_srcdir}${SL}error.h
77
78 # sources specific to OS/2
79 OS2_SOURCES = \
80        mkdir.c \
81        pwd.c \
82        filesubr.c \
83        dirent.c \
84        run.c \
85        rcmd.c \
86        waitpid.c \
87        popen.c \
88        porttcp.c \
89        getpass.c
90
91 # sources we use from the common src dir, ..${SL}src
92 # FIXME: Is this used anywhere?  I don't think it is.
93 COMMON_SOURCES = \
94        ${cvs_srcdir}${SL}add.c \
95        ${cvs_srcdir}${SL}admin.c \
96        ${cvs_srcdir}${SL}buffer.c \
97        ${cvs_srcdir}${SL}checkin.c \
98        ${cvs_srcdir}${SL}checkout.c \
99        ${cvs_srcdir}${SL}classify.c \
100        ${cvs_srcdir}${SL}client.c \
101        ${cvs_srcdir}${SL}commit.c \
102        ${cvs_srcdir}${SL}create_adm.c \
103        ${cvs_srcdir}${SL}cvsrc.c \
104        ${cvs_srcdir}${SL}diff.c \
105        ${cvs_srcdir}${SL}edit.c \
106        ${cvs_srcdir}${SL}entries.c \
107        ${cvs_srcdir}${SL}error.c \
108        ${cvs_srcdir}${SL}expand_path.c \
109        ${cvs_srcdir}${SL}fileattr.c \
110        ${cvs_srcdir}${SL}find_names.c \
111        ${cvs_srcdir}${SL}hash.c \
112        ${cvs_srcdir}${SL}history.c \
113        ${cvs_srcdir}${SL}ignore.c \
114        ${cvs_srcdir}${SL}import.c \
115        ${cvs_srcdir}${SL}lock.c \
116        ${cvs_srcdir}${SL}log.c \
117        ${cvs_srcdir}${SL}login.c \
118        ${cvs_srcdir}${SL}logmsg.c \
119        ${cvs_srcdir}${SL}main.c \
120        ${cvs_srcdir}${SL}mkmodules.c \
121        ${cvs_srcdir}${SL}modules.c \
122        ${cvs_srcdir}${SL}myndbm.c \
123        ${cvs_srcdir}${SL}no_diff.c \
124        ${cvs_srcdir}${SL}parseinfo.c \
125        ${cvs_srcdir}${SL}patch.c \
126        ${cvs_srcdir}${SL}rcs.c \
127        ${cvs_srcdir}${SL}rcscmds.c \
128        ${cvs_srcdir}${SL}recurse.c \
129        ${cvs_srcdir}${SL}release.c \
130        ${cvs_srcdir}${SL}remove.c \
131        ${cvs_srcdir}${SL}repos.c \
132        ${cvs_srcdir}${SL}root.c \
133        ${cvs_srcdir}${SL}scramble.c \
134        ${cvs_srcdir}${SL}server.c \
135        ${cvs_srcdir}${SL}status.c \
136        ${cvs_srcdir}${SL}subr.c \
137        ${cvs_srcdir}${SL}tag.c \
138        ${cvs_srcdir}${SL}update.c \
139        ${cvs_srcdir}${SL}watch.c \
140        ${cvs_srcdir}${SL}wrapper.c \
141        ${cvs_srcdir}${SL}vers_ts.c \
142        ${cvs_srcdir}${SL}version.c
143 # end of $COMMON_SOURCES
144
145 # sources from ..${SL}lib
146 # FIXME: Is this used anywhere?  I don't think it is.
147 LIB_SOURCES = \
148        ${lib_dir}${SL}getdate.c \
149        ${lib_dir}${SL}getopt.c \
150        ${lib_dir}${SL}getopt1.c \
151        ${lib_dir}${SL}getline.c \
152        ${lib_dir}${SL}getwd.c \
153        ${lib_dir}${SL}savecwd.c \
154        ${lib_dir}${SL}sighandle.c \
155        ${lib_dir}${SL}yesno.c \
156        ${lib_dir}${SL}vasprintf.c \
157        ${lib_dir}${SL}xgetwd.c \
158        ${lib_dir}${SL}md5.c \
159        ${lib_dir}${SL}fnmatch.c \
160        ${lib_dir}${SL}regex.c
161
162 # object files from OS/2 sources
163 OS2_OBJECTS = \
164        ${srcdir}${SL}mkdir.obj \
165        ${srcdir}${SL}pwd.obj \
166        ${srcdir}${SL}filesubr.obj \
167        ${srcdir}${SL}dirent.obj \
168        ${srcdir}${SL}run.obj \
169        ${srcdir}${SL}rcmd.obj \
170        ${srcdir}${SL}waitpid.obj \
171        ${srcdir}${SL}popen.obj \
172        ${srcdir}${SL}porttcp.obj \
173        ${srcdir}${SL}getpass.obj
174
175 # object files from ..${SL}src
176 COMMON_OBJECTS = \
177        ${cvs_srcdir}${SL}add.obj \
178        ${cvs_srcdir}${SL}admin.obj \
179        ${cvs_srcdir}${SL}buffer.obj \
180        ${cvs_srcdir}${SL}checkin.obj \
181        ${cvs_srcdir}${SL}checkout.obj \
182        ${cvs_srcdir}${SL}classify.obj \
183        ${cvs_srcdir}${SL}client.obj \
184        ${cvs_srcdir}${SL}commit.obj \
185        ${cvs_srcdir}${SL}create_adm.obj \
186        ${cvs_srcdir}${SL}cvsrc.obj \
187        ${cvs_srcdir}${SL}diff.obj \
188        ${cvs_srcdir}${SL}edit.obj \
189        ${cvs_srcdir}${SL}entries.obj \
190        ${cvs_srcdir}${SL}error.obj \
191        ${cvs_srcdir}${SL}expand_path.obj \
192        ${cvs_srcdir}${SL}fileattr.obj \
193        ${cvs_srcdir}${SL}find_names.obj \
194        ${cvs_srcdir}${SL}hash.obj \
195        ${cvs_srcdir}${SL}history.obj \
196        ${cvs_srcdir}${SL}ignore.obj \
197        ${cvs_srcdir}${SL}import.obj \
198        ${cvs_srcdir}${SL}lock.obj \
199        ${cvs_srcdir}${SL}log.obj \
200        ${cvs_srcdir}${SL}login.obj \
201        ${cvs_srcdir}${SL}logmsg.obj \
202        ${cvs_srcdir}${SL}main.obj \
203        ${cvs_srcdir}${SL}mkmodules.obj \
204        ${cvs_srcdir}${SL}modules.obj \
205        ${cvs_srcdir}${SL}myndbm.obj \
206        ${cvs_srcdir}${SL}no_diff.obj \
207        ${cvs_srcdir}${SL}parseinfo.obj \
208        ${cvs_srcdir}${SL}patch.obj \
209        ${cvs_srcdir}${SL}rcs.obj \
210        ${cvs_srcdir}${SL}rcscmds.obj \
211        ${cvs_srcdir}${SL}recurse.obj \
212        ${cvs_srcdir}${SL}release.obj \
213        ${cvs_srcdir}${SL}remove.obj \
214        ${cvs_srcdir}${SL}repos.obj \
215        ${cvs_srcdir}${SL}root.obj \
216        ${cvs_srcdir}${SL}scramble.obj \
217        ${cvs_srcdir}${SL}server.obj \
218        ${cvs_srcdir}${SL}status.obj \
219        ${cvs_srcdir}${SL}subr.obj \
220        ${cvs_srcdir}${SL}tag.obj \
221        ${cvs_srcdir}${SL}update.obj \
222        ${cvs_srcdir}${SL}watch.obj \
223        ${cvs_srcdir}${SL}wrapper.obj \
224        ${cvs_srcdir}${SL}vers_ts.obj \
225        ${cvs_srcdir}${SL}version.obj \
226        ${cvs_srcdir}/zlib.obj
227 # end of $COMMON_OBJECTS
228
229 # objects from ..${SL}lib
230 LIB_OBJECTS = \
231        ${lib_dir}${SL}getdate.obj \
232        ${lib_dir}${SL}getopt.obj \
233        ${lib_dir}${SL}getopt1.obj \
234        ${lib_dir}${SL}getline.obj \
235        ${lib_dir}${SL}getwd.obj \
236        ${lib_dir}${SL}savecwd.obj \
237        ${lib_dir}${SL}sighandle.obj \
238        ${lib_dir}${SL}yesno.obj \
239        ${lib_dir}${SL}vasprintf.obj \
240        ${lib_dir}${SL}xgetwd.obj \
241        ${lib_dir}${SL}md5.obj \
242        ${lib_dir}${SL}fnmatch.obj \
243        ${lib_dir}${SL}regex.obj \
244        ${lib_dir}/valloc.obj
245
246 ZLIB_OBJECTS = ${zlib_dir}/adler32.obj \
247        ${zlib_dir}/compress.obj \
248        ${zlib_dir}/crc32.obj \
249        ${zlib_dir}/uncompr.obj \
250        ${zlib_dir}/deflate.obj \
251        ${zlib_dir}/trees.obj \
252        ${zlib_dir}/zutil.obj \
253        ${zlib_dir}/inflate.obj \
254        ${zlib_dir}/infblock.obj \
255        ${zlib_dir}/inftrees.obj \
256        ${zlib_dir}/infcodes.obj \
257        ${zlib_dir}/infutil.obj \
258        ${zlib_dir}/inffast.obj
259
260 SOURCES = ${COMMON_SOURCES} ${LIB_SOURCES} ${OS2_SOURCES}
261 HEADERS = ${COMMON_HEADERS} ${OS2_HEADERS}
262 OBJECTS = ${COMMON_OBJECTS} ${LIB_OBJECTS} ${OS2_OBJECTS} ${ZLIB_OBJECTS}
263
264 DISTFILES = ${OS2_HEADERS} ${OS2_SOURCES} \
265   README ChangeLog \
266   Makefile.in .cvsignore \
267   test-makefile Makefile os2inc.h \
268   watcom.mak
269
270 all:
271
272 .PHONY: all install uninstall
273 all install uninstall:
274
275 # Remove targets for Automake
276 dvi info pdf ps:
277 .PHONY: dvi info pdf ps
278 check installcheck:
279 .PHONY: check installcheck
280 installdirs:
281 lint:
282 tags TAGS:
283 .PHONY: installdirs lint tags TAGS
284
285 # distdir added for compatibility with CVS automake.
286 top_distdir = ..
287 PACKAGE = @PACKAGE@
288 VERSION = @VERSION@
289 distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
290
291 distdir: $(DISTFILES)
292         @list='$(DISTFILES)'; for file in $$list; do \
293           if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
294           dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
295           if test "$$dir" != "$$file" && test "$$dir" != "."; then \
296             dir="/$$dir"; \
297             $(mkinstalldirs) "$(distdir)$$dir"; \
298           else \
299             dir=''; \
300           fi; \
301           if test -d $$d/$$file; then \
302             if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
303               cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
304             fi; \
305             cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
306           else \
307             test -f $(distdir)/$$file \
308             || cp -p $$d/$$file $(distdir)/$$file \
309             || exit 1; \
310           fi; \
311         done
312 .PHONY: distdir
313
314 # We don't have a real distclean or anything like that, but at least
315 # we can get rid of the obj files and cvs.exe. 
316 .PHONY: clean distclean realclean mostlyclean maintainer-clean
317 clean distclean realclean maintainer-clean mostlyclean:
318         rm -f cvs.exe
319         rm -f ${srcdir}${SL}*.obj 
320         rm -f ${lib_dir}${SL}*.obj 
321         rm -f ${cvs_srcdir}${SL}*.obj 
322
323 install-cvs: cvs.exe
324         cp ${srcdir}${SL}cvs.exe ${install_dir}${SL}cvs.exe
325
326 %.obj: %.c
327         icc ${OBJ_CFLAGS} ${CFLAGS} /Fo$@ $*.c
328
329 # There seems to be no ICC option for specifying library locations, so
330 # we must `set' the path in the compilation environment.  Urgkle. 
331 #
332 #         I'm having some weird problem with "\" vs. "/".  If I build
333 # with "\" as the path separator in the makefile, the compiler dumps
334 # core.  Go figure.  If I build with "/" as the path separator, the
335 # object files compile fine but the linker thinks the "/" is indicating
336 # options and gets all confused (though at least it doesn't dump core).
337 # So, use subst to compile with "/" and link with "\".
338 cvs.exe: ${OBJECTS}
339         echo Creating icc.in...
340         echo -Q+ -Ti+ -Fe$@ -B"/batch" -B"/NOE" > icc.in
341         echo $(subst /,\,$(OS2_OBJECTS))       >> icc.in
342         echo $(subst /,\,$(LIB_OBJECTS))       >> icc.in
343         echo $(subst /,\,$(COMMON_OBJECTS))    >> icc.in
344         echo $(subst /,\,$(ZLIB_OBJECTS))      >> icc.in
345         echo $(subst /,\,$(TCPIPLIB))          >> icc.in
346         echo $(subst /,\,$(ARGVLIB))           >> icc.in
347         echo Creating icc.in... done.
348         set LIB=$(subst /,\,$(LIB)) & icc @icc.in
349
350 # cvs.obj: ${OBJECTS} ${SOURCES} ${HEADERS}
351
352 # Hmm.  This rule wants to exist on unix, so that "make dist" works.
353 # And it doesn't want to exist on OS/2, because configure doesn't
354 # run on OS/2 and so ../config.status won't exist.  For now we just
355 # say, in emx/README, that people will need to comment it out.
356 Makefile: ../config.status $(srcdir)/Makefile.in
357         cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status