tools: move useful tools from test dir to tools dir
[openafs.git] / src / tests / Makefile.in
1 srcdir          = @srcdir@
2 include @TOP_OBJDIR@/src/config/Makefile.config
3 include @TOP_OBJDIR@/src/config/Makefile.lwp
4
5 SHELL           = /bin/sh
6
7 all: run-tests OpenAFS/Dirpath.pm $(TEST_PROGRAMS) OpenAFS/Dirpath.sh
8         @chmod +x run-tests
9
10 SYS_LIBS        = ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/librx.a ${TOP_LIBDIR}/liblwp.a ${TOP_LIBDIR}/util.a
11
12 AUTH_LIBS       = ${TOP_LIBDIR}/libauth.a ${SYS_LIBS}
13
14 INT_LIBS        = ${TOP_LIBDIR}/libafsint.a ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/librxkad.a ${TOP_LIBDIR}/librx.a ${TOP_LIBDIR}/liblwp.a ${TOP_LIBDIR}/libafscom_err.a ${TOP_LIBDIR}/util.a
15
16 TEST_PROGRAMS = write-ro-file hello-world read-vs-mmap read-vs-mmap2     \
17                 mmap-and-read large-dir large-dir2 large-dir3 mountpoint \
18                 test-setgroups test-setpag hardlink1 hardlink2 mkdir2    \
19                 create-files create-symlinks create-dirs dup2-and-unlog  \
20                 readdir-vs-lstat read-write create-remove mkdir3         \
21                 symlink echo-n test-parallel1 test-parallel2 create-stat \
22                 kill-softly kill-softer rm-rf exit-wo-close              \
23                 mmap-vs-read mmap-vs-read2 strange-characters-c pine     \
24                 append-over-page write-ucc utime-dir mmap-shared-write   \
25                 rename5 rename-under-feet write-closed write-closed2     \
26                 truncate fchmod make-page utime-file rename6             \
27                 write3 still-there-p write-large afscp hardlink4         \
28                 intr-read asu truncate-files mmap-cat blocks-new-file    \
29                 fsx write-rand
30
31 TEST_OBJS     = write-ro-file.o read-vs-mmap.o read-vs-mmap2.o             \
32                 mmap-and-read.o large-dir.o large-dir2.o large-dir3.o      \
33                 test-setgroups.o test-setpag.o hardlink1.o hardlink2.o     \
34                 mkdir2.o create-files.o create-symlinks.o create-dirs.o    \
35                 dup2-and-unlog.o readdir-vs-lstat.o read-write.o           \
36                 create-remove.o symlink.o echo-n.o test-parallel1.o        \
37                 test-parallel1.o mkdir3.o rename6.o                        \
38                 create-stat.o kill-softly.o kill-softer.o rm-rf.o          \
39                 exit-wo-close.o mmap-vs-read.o mmap-vs-read2.o             \
40                 strange-characters-c.o pine.o append-over-page.o           \
41                 write-ucc.o utime-dir.o mmap-shared-write.o rename5.o      \
42                 rename-under-feet.o write-closed.o write-closed2.o         \
43                 truncate.o fchmod.o make-page.o utime-file.o               \
44                 write3.o still-there-p.o write-large.o hardlink4.o         \
45                 intr-read.o asu.o truncate-files.o mmap-cat.o              \
46                 blocks-new-file.o fsx.o afscp.o afscp_callback.o           \
47                 write-rand.o
48
49 TEST_SRCS     = write-ro-file.c read-vs-mmap.c read-vs-mmap2.c             \
50                 mmap-and-read.c large-dir.c large-dir2.c large-dir3.c      \
51                 test-setgroups.c test-setpag.c hardlink1.c hardlink2.c     \
52                 mkdir2.c create-files.c create-symlinks.c create-dirs.c    \
53                 dup2-and-unlog.c readdir-vs-lstat.c read-write.c           \
54                 create-remove.c symlink.c echo-n.c test-parallel1.c        \
55                 test-parallel2.c mkdir3.c rename6.c                        \
56                 create-stat.c kill-softly.c kill-softer.c rm-rf.c          \
57                 exit-wo-close.c mmap-vs-read.c mmap-vs-read2.c             \
58                 strange-characters-c.c pine.c append-over-page.c           \
59                 write-ucc.c utime-dir.c mmap-shared-write.c rename5.c      \
60                 rename-under-feet.c write-closed.c write-closed2.c         \
61                 truncate.c fchmod.c make-page.c utime-file.c               \
62                 write3.c still-there-p.c write-large.c hardlink4.c         \
63                 intr-read.c asu.c truncate-files.c mmap-cat.c              \
64                 blocks-new-file.c fsx.c afscp.c afscp_callback.c           \
65                 write-rand.c
66
67 EXTRA_OBJS = err.o errx.o warn.o warnx.o vwarn.o vwarnx.o verr.o verrx.o warnerr.o snprintf.o 
68
69 fsx: fsx.o $(EXTRA_OBJS)
70         $(AFS_LDRULE) fsx.o $(EXTRA_OBJS) $(LIBS)
71
72 write-rand: write-rand.o $(EXTRA_OBJS)
73         $(AFS_LDRULE) write-rand.o $(EXTRA_OBJS) $(LIBS)
74
75 write-ro-file: write-ro-file.o $(EXTRA_OBJS)
76         $(AFS_LDRULE) write-ro-file.o $(EXTRA_OBJS) $(LIBS)
77
78 write-large: write-large.o $(EXTRA_OBJS)
79         $(AFS_LDRULE) write-large.o $(EXTRA_OBJS) $(LIBS)
80
81 read-vs-mmap: read-vs-mmap.o $(EXTRA_OBJS)
82         $(AFS_LDRULE) read-vs-mmap.o $(EXTRA_OBJS) $(LIBS)
83
84 read-vs-mmap2: read-vs-mmap2.o $(EXTRA_OBJS)
85         $(AFS_LDRULE) read-vs-mmap2.o $(EXTRA_OBJS) $(LIBS)
86
87 mmap-vs-read: mmap-vs-read.o $(EXTRA_OBJS)
88         $(AFS_LDRULE) mmap-vs-read.o $(EXTRA_OBJS) $(LIBS)
89
90 mmap-vs-read2: mmap-vs-read2.o $(EXTRA_OBJS)
91         $(AFS_LDRULE) mmap-vs-read2.o $(EXTRA_OBJS) $(LIBS)
92
93 read-write: read-write.o $(EXTRA_OBJS)
94         $(AFS_LDRULE) read-write.o $(EXTRA_OBJS) $(LIBS)
95
96 mmap-and-read: mmap-and-read.o $(EXTRA_OBJS)
97         $(AFS_LDRULE) mmap-and-read.o $(EXTRA_OBJS) $(LIBS)
98
99 large-dir: large-dir.o $(EXTRA_OBJS)
100         $(AFS_LDRULE) large-dir.o $(EXTRA_OBJS) $(LIBS)
101
102 large-dir2: large-dir2.o $(EXTRA_OBJS)
103         $(AFS_LDRULE) large-dir2.o $(EXTRA_OBJS) $(LIBS)
104
105 large-dir3: large-dir3.o $(EXTRA_OBJS)
106         $(AFS_LDRULE) large-dir3.o $(EXTRA_OBJS) $(LIBS)
107
108 fchmod: fchmod.o $(EXTRA_OBJS)
109         $(AFS_LDRULE) fchmod.o $(EXTRA_OBJS) $(LIBS)
110
111 truncate: truncate.o $(EXTRA_OBJS)
112         $(AFS_LDRULE) truncate.o $(EXTRA_OBJS) $(LIBS)
113
114 make-page: make-page.o $(EXTRA_OBJS)
115         $(AFS_LDRULE) make-page.o $(EXTRA_OBJS) $(LIBS)
116
117 still-there-p: still-there-p.o $(EXTRA_OBJS)
118         $(AFS_LDRULE) still-there-p.o $(EXTRA_OBJS) $(LIBS)
119
120 intr-read: intr-read.o $(EXTRA_OBJS)
121         $(AFS_LDRULE) intr-read.o $(EXTRA_OBJS) $(LIBS)
122
123 blocks-new-file: blocks-new-file.o $(EXTRA_OBJS)
124         $(AFS_LDRULE) blocks-new-file.o $(EXTRA_OBJS) $(LIBS)
125
126 asu: asu.o $(EXTRA_OBJS)
127         $(AFS_LDRULE) asu.o $(EXTRA_OBJS) $(LIBS)
128
129 test-setgroups: test-setgroups.o $(EXTRA_OBJS)
130         $(AFS_LDRULE) test-setgroups.o $(EXTRA_OBJS) $(SYS_LIBS) $(LIBS)
131
132 test-setpag: test-setpag.o $(EXTRA_OBJS)
133         $(AFS_LDRULE) test-setpag.o $(EXTRA_OBJS) $(SYS_LIBS) $(LIBS)
134
135 hardlink1: hardlink1.o $(EXTRA_OBJS)
136         $(AFS_LDRULE) hardlink1.o $(EXTRA_OBJS) $(LIBS)
137
138 hardlink2: hardlink2.o $(EXTRA_OBJS)
139         $(AFS_LDRULE) hardlink2.o $(EXTRA_OBJS) $(LIBS)
140
141 hardlink4: hardlink4.o $(EXTRA_OBJS)
142         $(AFS_LDRULE) hardlink4.o $(EXTRA_OBJS) $(LIBS)
143
144 mkdir2: mkdir2.o $(EXTRA_OBJS)
145         $(AFS_LDRULE) mkdir2.o $(EXTRA_OBJS) $(LIBS)
146
147 mkdir3: mkdir3.o $(EXTRA_OBJS)
148         $(AFS_LDRULE) mkdir3.o $(EXTRA_OBJS) $(LIBS)
149
150 create-files: create-files.o $(EXTRA_OBJS)
151         $(AFS_LDRULE) create-files.o $(EXTRA_OBJS) $(LIBS)
152
153 create-symlinks: create-symlinks.o $(EXTRA_OBJS)
154         $(AFS_LDRULE) create-symlinks.o $(EXTRA_OBJS) $(LIBS)
155
156 create-dirs: create-dirs.o $(EXTRA_OBJS)
157         $(AFS_LDRULE) create-dirs.o $(EXTRA_OBJS) $(LIBS)
158
159 create-remove: create-remove.o $(EXTRA_OBJS)
160         $(AFS_LDRULE) create-remove.o $(EXTRA_OBJS) $(LIBS)
161
162 dup2-and-unlog: dup2-and-unlog.o $(EXTRA_OBJS)
163         $(AFS_LDRULE) dup2-and-unlog.o  $(EXTRA_OBJS) $(AUTH_LIBS) $(LIBS)
164
165 readdir-vs-lstat: readdir-vs-lstat.o $(EXTRA_OBJS)
166         $(AFS_LDRULE) readdir-vs-lstat.o $(EXTRA_OBJS) $(LIBS)
167
168 symlink: symlink.o $(EXTRA_OBJS)
169         $(AFS_LDRULE) symlink.o $(EXTRA_OBJS) $(LIBS)
170
171 echo-n: echo-n.o $(EXTRA_OBJS)
172         $(AFS_LDRULE) echo-n.o $(EXTRA_OBJS)
173
174 test-parallel1: test-parallel1.o $(EXTRA_OBJS)
175         $(AFS_LDRULE) test-parallel1.o $(EXTRA_OBJS) $(LIBS)
176
177 test-parallel2: test-parallel2.o $(EXTRA_OBJS)
178         $(AFS_LDRULE) test-parallel2.o $(EXTRA_OBJS) $(LIBS)
179
180 create-stat: create-stat.o fs_lib.o $(EXTRA_OBJS)
181         $(AFS_LDRULE) create-stat.o fs_lib.o $(EXTRA_OBJS) $(SYS_LIBS) $(LIBS)
182
183 kill-softly: kill-softly.o $(EXTRA_OBJS)
184         $(AFS_LDRULE) kill-softly.o $(EXTRA_OBJS) $(LIBS)
185
186 kill-softer: kill-softer.o $(EXTRA_OBJS)
187         $(AFS_LDRULE) kill-softer.o $(EXTRA_OBJS) $(LIBS)
188
189 rm-rf: rm-rf.o fs_lib.o $(EXTRA_OBJS)
190         $(AFS_LDRULE) rm-rf.o fs_lib.o $(EXTRA_OBJS) $(SYS_LIBS) $(LIBS)
191
192 exit-wo-close: exit-wo-close.o $(EXTRA_OBJS)
193         $(AFS_LDRULE) exit-wo-close.o $(EXTRA_OBJS) $(LIBS)
194
195 strange-characters-c: strange-characters-c.o $(EXTRA_OBJS)
196         $(AFS_LDRULE) strange-characters-c.o $(EXTRA_OBJS) $(LIBS)
197
198 pine: pine.o $(EXTRA_OBJS)
199         $(AFS_LDRULE) pine.o $(EXTRA_OBJS) $(LIBS)
200
201 append-over-page: append-over-page.o $(EXTRA_OBJS)
202         $(AFS_LDRULE) append-over-page.o $(EXTRA_OBJS) $(LIBS)
203
204 write-ucc: write-ucc.o $(EXTRA_OBJS)
205         $(AFS_LDRULE) write-ucc.o $(EXTRA_OBJS) $(LIBS)
206
207 utime-dir: utime-dir.o $(EXTRA_OBJS)
208         $(AFS_LDRULE) utime-dir.o $(EXTRA_OBJS) $(LIBS)
209
210 utime-file: utime-file.o $(EXTRA_OBJS)
211         $(AFS_LDRULE) utime-file.o $(EXTRA_OBJS) $(LIBS)
212
213 mmap-shared-write: mmap-shared-write.o $(EXTRA_OBJS)
214         $(AFS_LDRULE) mmap-shared-write.o $(EXTRA_OBJS) $(LIBS)
215
216 rename5: rename5.o $(EXTRA_OBJS)
217         $(AFS_LDRULE) rename5.o $(EXTRA_OBJS) $(LIBS)
218
219 rename6: rename6.o $(EXTRA_OBJS)
220         $(AFS_LDRULE) rename6.o $(EXTRA_OBJS) $(LIBS)
221
222 write3: write3.o $(EXTRA_OBJS)
223         $(AFS_LDRULE) write3.o $(EXTRA_OBJS) $(LIBS)
224
225 rename-under-feet: rename-under-feet.o $(EXTRA_OBJS)
226         $(AFS_LDRULE) rename-under-feet.o $(EXTRA_OBJS) $(LIBS)
227
228 write-closed: write-closed.o $(EXTRA_OBJS)
229         $(AFS_LDRULE) write-closed.o $(EXTRA_OBJS) $(LIBS)
230
231 write-closed2: write-closed2.o $(EXTRA_OBJS)
232         $(AFS_LDRULE) write-closed2.o $(EXTRA_OBJS) $(SYS_LIBS) $(LIBS)
233
234 truncate-files: truncate-files.o $(EXTRA_OBJS)
235         $(AFS_LDRULE) truncate-files.o $(EXTRA_OBJS) $(LIBS)
236
237 mmap-cat: mmap-cat.o $(EXTRA_OBJS)
238         $(AFS_LDRULE) mmap-cat.o $(EXTRA_OBJS) $(LIBS)
239
240 run-tests: run-tests.in
241         (cd ../..; CONFIG_FILES=src/tests/run-tests CONFIG_HEADERS= $(SHELL) @TOP_OBJDIR@/config.status)
242         @chmod +x run-tests
243
244 afscp: afscp.o afscp_callback.o $(EXTRA_OBJS)
245         $(AFS_LDRULE) afscp.o afscp_callback.o $(EXTRA_OBJS) $(INT_LIBS) ${XLIBS}
246
247 hello-world:   hello-world.in
248         sed -e "s!%CC%!$(CC)!" $(srcdir)/hello-world.in > $@
249         chmod +x hello-world
250
251 mountpoint:   mountpoint.in
252         sed -e "s!%bindir%!$(bindir)!" $(srcdir)/mountpoint.in > $@
253         chmod +x mountpoint
254
255 dest:
256
257 install:
258
259 uninstall:
260
261 clean:
262         -rm -f *.o  run-tests $(TEST_PROGRAMS) OpenAFS/Dirpath.pm \
263         OpenAFS/Dirpath.sh
264
265 include ../config/Makefile.version
266
267 TAGS:   $(TEST_SRCS)
268         etags $(TEST_SRCS)
269
270 check: run-tests $(TEST_PROGRAMS)
271         ./run-tests -all
272
273 check-fast: run-tests $(TEST_PROGRAMS)
274         ./run-tests -all -fast
275
276 # Note: The autoconf variables are not fully expanded
277 #       until make is run so we resort to creating the
278 #       configuration at make time.
279 OpenAFS/Dirpath.pm: Makefile
280         @echo "Creating OpenAFS/Dirpath.pm"
281         @echo "# This is -*- perl -*-"                          >$@
282         @echo "# auto-generated by src/tests/Makefile"          >>$@
283         @echo "# DO NOT EDIT"                                   >>$@
284         @echo "package OpenAFS::Dirpath;"                       >>$@
285         @echo "use strict;"                                     >>$@
286         @echo "use vars qw( @ISA @EXPORT \$$openafsdirpath);"   >>$@
287         @echo "@ISA = qw(Exporter);"                            >>$@
288         @echo "require Exporter;"                               >>$@
289         @echo "@EXPORT = qw(\$$openafsdirpath);"                >>$@
290         @echo ""                                                >>$@
291         @echo "\$$openafsdirpath = {"                           >>$@
292         @echo "  'afsconfdir'       => '@afsconfdir@',"         >>$@
293         @echo "  'viceetcdir'       => '@viceetcdir@',"         >>$@
294         @echo "  'afssrvbindir'     => '@afssrvbindir@',"       >>$@
295         @echo "  'afssrvsbindir'    => '@afssrvsbindir@',"      >>$@
296         @echo "  'afssrvlibexecdir' => '@afssrvlibexecdir@',"   >>$@
297         @echo "  'afsdbdir'         => '@afsdbdir@',"           >>$@
298         @echo "  'afslogsdir'       => '@afslogsdir@',"         >>$@
299         @echo "  'afslocaldir'      => '@afslocaldir@',"        >>$@
300         @echo "  'afsbackupdir'     => '@afsbackupdir@',"       >>$@
301         @echo "  'afsbosconfigdir'  => '@afsbosconfigdir@',"    >>$@
302         @echo "  'ostype'           => '@MKAFS_OSTYPE@',"       >>$@
303         @if test "@afsconfdir@" = "/usr/afs/etc" ; then \
304                 echo "  # transarc paths" ;\
305                 echo "  'cachedir'     => '/usr/vice/cache'," ;\
306                 echo "  'afsddir'      => '/usr/vice/etc'," ;\
307                 echo "  'initdir'      => '/usr/vice/etc',"  ;\
308                 echo "  'afskerneldir' => '/usr/vice/etc/modload'," ;\
309                 echo "  'afswsbindir'  => '/usr/afsws/bin'," ;\
310         else \
311                 echo "  # modern paths" ;\
312                 echo "  'cachedir'     => '@localstatedir@/openafs/cache'," ;\
313                 echo "  'afsddir'      => '@afssrvsbindir@'," ;\
314                 echo "  'initdir'      => '@sysconfdir@',"  ;\
315                 echo "  'afskerneldir' => '@afskerneldir@'," ;\
316                 echo "  'afswsbindir'  => '@afssrvbindir@'," ;\
317         fi >>$@
318         @echo "};"                                              >>$@
319         @echo ""                                                >>$@
320         @echo "1;"                                              >>$@
321
322 OpenAFS/Dirpath.sh: Makefile
323         @echo "Creating OpenAFS/Dirpath.sh"                                     
324         @echo "# auto-generated by src/tests/Makefile"            >$@
325         @echo "# source or '.' in this file in shell"              >>$@
326         @echo "# DO NOT EDIT"                                                      >>$@
327         @echo "  AFSCONFDIR=@afsconfdir@"         >>$@
328         @echo "  VICEETCDIR=@viceetcdir@"         >>$@
329         @echo "  AFSSRVBINDIR=@afssrvbindir@"       >>$@
330         @echo "  AFSSRVSBINDIR=@afssrvsbindir@"      >>$@
331         @echo "  AFSSRVLIBEXECDIR=@afssrvlibexecdir@"   >>$@
332         @echo "  AFSDBDIR=@afsdbdir@"           >>$@
333         @echo "  AFSLOGSDIR=@afslogsdir@"         >>$@
334         @echo "  AFSLOCALDIR=@afslocaldir@"        >>$@
335         @echo "  AFSBACKUPDIR=@afsbackupdir@"       >>$@
336         @echo "  AFSBOSCONFIGDIR=@afsbosconfigdir@"    >>$@
337         @echo "  OSTYPE=@MKAFS_OSTYPE@"       >>$@
338         @if test "@afsconfdir@" = "/usr/afs/etc" ;  then \
339                 echo "# transarc paths" ;\
340                 echo "  CACHEDIR=/usr/vice/cache" ;\
341                 echo "  AFSDDIR=/usr/vice/etc" ;\
342                 echo "  INITDIR=/usr/vice/etc" ; \
343                 echo "  AFSKERNELDIR=/usr/vice/etc/modload" ;\
344                 echo "  AFSWSBINDIR=/usr/afsws/bin" ;\
345         else \
346                 echo "# modern paths" ;\
347             echo "  CACHEDIR=@localstatedir@/openafs/cache" ;\
348             echo "  AFSDDIR=@afssrvsbindir@" ;\
349             echo "  INITDIR=@sysconfdir@"  ;\
350             echo "  AFSKERNELDIR=@afskerneldir@" ;\
351             echo "  AFSWSBINDIR=@afssrvbindir@" ;\
352         fi >>$@
353         @echo "export AFSCONFDIR VICEETCDIR AFSSRVBINDIR AFSSRVSBINDIR" >>$@
354         @echo "export AFSSRVLIBEXECDIR AFSDBDIR AFSLOGSDIR AFSLOCALDIR" >>$@
355         @echo "export AFSBACKUPDIR AFSBOSCONFIGDIR OSTYPE CACHEDIR AFSDDIR" >>$@
356         @echo "export INITDIR AFSKERNELDIR AFSWSBINDIR" >>$@
357
358 .PHONY:         all install clean realclean distclean mostlyclean install uninstall check