s4:torture: Adapt KDC canon test to Heimdal upstream changes
[samba.git] / source4 / heimdal / lib / roken / NTMakefile
1 ########################################################################
2 #
3 # Copyright (c) 2009 - 2017, Secure Endpoints Inc.
4 # All rights reserved.
5
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9
10 # - Redistributions of source code must retain the above copyright
11 #   notice, this list of conditions and the following disclaimer.
12
13 # - Redistributions in binary form must reproduce the above copyright
14 #   notice, this list of conditions and the following disclaimer in
15 #   the documentation and/or other materials provided with the
16 #   distribution.
17
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 # POSSIBILITY OF SUCH DAMAGE.
30
31
32 RELDIR=lib\roken
33
34 !include ../../windows/NTMakefile.w32
35
36 libroken_la_OBJS =                      \
37         $(OBJ)\base32.obj               \
38         $(OBJ)\base64.obj               \
39         $(OBJ)\bswap.obj                \
40         $(OBJ)\concat.obj               \
41         $(OBJ)\cloexec.obj              \
42         $(OBJ)\clz.obj                  \
43         $(OBJ)\ct.obj                   \
44         $(OBJ)\detach.obj               \
45         $(OBJ)\dirent.obj               \
46         $(OBJ)\dlfcn_w32.obj            \
47         $(OBJ)\dumpdata.obj             \
48         $(OBJ)\ecalloc.obj              \
49         $(OBJ)\emalloc.obj              \
50         $(OBJ)\environment.obj          \
51         $(OBJ)\eread.obj                \
52         $(OBJ)\erealloc.obj             \
53         $(OBJ)\err.obj                  \
54         $(OBJ)\errx.obj                 \
55         $(OBJ)\esetenv.obj              \
56         $(OBJ)\estrdup.obj              \
57         $(OBJ)\ewrite.obj               \
58         $(OBJ)\flock.obj                \
59         $(OBJ)\fnmatch.obj              \
60         $(OBJ)\fseeko.obj               \
61         $(OBJ)\ftello.obj               \
62         $(OBJ)\getauxval.obj            \
63         $(OBJ)\getaddrinfo_hostspec.obj \
64         $(OBJ)\get_window_size.obj      \
65         $(OBJ)\getarg.obj               \
66         $(OBJ)\getifaddrs_w32.obj       \
67         $(OBJ)\getnameinfo_verified.obj \
68         $(OBJ)\getopt.obj               \
69         $(OBJ)\getprogname.obj          \
70         $(OBJ)\gettimeofday.obj         \
71         $(OBJ)\getuserinfo.obj          \
72         $(OBJ)\hex.obj                  \
73         $(OBJ)\hostent_find_fqdn.obj    \
74         $(OBJ)\inet_aton.obj            \
75         $(OBJ)\issuid.obj               \
76         $(OBJ)\localtime_r.obj          \
77         $(OBJ)\lstat.obj                \
78         $(OBJ)\memmem.obj               \
79         $(OBJ)\memset_s.obj             \
80         $(OBJ)\mergesort_r.obj          \
81         $(OBJ)\mkdir.obj                \
82         $(OBJ)\mini_inetd.obj           \
83         $(OBJ)\mkdtemp.obj              \
84         $(OBJ)\mkstemp.obj              \
85         $(OBJ)\mkostemp.obj             \
86         $(OBJ)\net_read.obj             \
87         $(OBJ)\net_write.obj            \
88         $(OBJ)\parse_bytes.obj          \
89         $(OBJ)\parse_time.obj           \
90         $(OBJ)\parse_units.obj          \
91         $(OBJ)\realloc.obj              \
92         $(OBJ)\rename.obj               \
93         $(OBJ)\resolve.obj              \
94         $(OBJ)\rand.obj                 \
95         $(OBJ)\roken_gethostby.obj      \
96         $(OBJ)\rtbl.obj                 \
97         $(OBJ)\secure_getenv.obj        \
98         $(OBJ)\sendmsg.obj              \
99         $(OBJ)\setenv.obj               \
100         $(OBJ)\setprogname.obj          \
101         $(OBJ)\simple_exec_w32.obj      \
102         $(OBJ)\sleep.obj                \
103         $(OBJ)\snprintf.obj             \
104         $(OBJ)\socket.obj               \
105         $(OBJ)\sockstartup_w32.obj      \
106         $(OBJ)\strcollect.obj           \
107         $(OBJ)\strerror_r.obj           \
108         $(OBJ)\strftime.obj             \
109         $(OBJ)\strlcat.obj              \
110         $(OBJ)\strlcpy.obj              \
111         $(OBJ)\strndup.obj              \
112         $(OBJ)\strpool.obj              \
113         $(OBJ)\strptime.obj             \
114         $(OBJ)\strsep.obj               \
115         $(OBJ)\strsep_copy.obj          \
116         $(OBJ)\strtok_r.obj             \
117         $(OBJ)\strtoll.obj              \
118         $(OBJ)\strtoull.obj             \
119         $(OBJ)\syslogc.obj              \
120         $(OBJ)\timegm.obj               \
121         $(OBJ)\timeval.obj              \
122         $(OBJ)\tm2time.obj              \
123         $(OBJ)\tsearch.obj              \
124         $(OBJ)\unvis.obj                \
125         $(OBJ)\verr.obj                 \
126         $(OBJ)\verrx.obj                \
127         $(OBJ)\vis.obj                  \
128         $(OBJ)\vwarn.obj                \
129         $(OBJ)\vwarnx.obj               \
130         $(OBJ)\warn.obj                 \
131         $(OBJ)\warnerr.obj              \
132         $(OBJ)\warnx.obj                \
133         $(OBJ)\win32_alloc.obj          \
134         $(OBJ)\win32_version.obj        \
135         $(OBJ)\writev.obj               \
136         $(OBJ)\xfree.obj
137
138 !if $(NMAKE_WINVER) < 0x0600
139 libroken_la_OBJS=$(libroken_la_OBJS) \
140         $(OBJ)\inet_ntop.obj            \
141         $(OBJ)\inet_pton.obj
142 !endif
143
144 {}.c{$(OBJ)}.obj::
145         $(C2OBJ_P) -DBUILD_ROKEN_LIB
146
147 $(LIBROKEN): $(libroken_la_OBJS)
148         $(LIBCON_C) -out:$@ @<<
149 $(**: =
150 )
151 <<
152
153 $(OBJ)\make-roken.exe: $(OBJ)\make-roken.obj
154         $(EXECONLINK)
155
156 $(OBJ)\make-roken.c: roken.h.in roken.awk $(INCDIR)\config.h
157         $(AWK) -f roken.awk roken.h.in > $(OBJ)\make-roken.c || $(RM) $(OBJ)\make-roken.c
158
159 $(INCDIR)\roken.h: $(OBJ)\make-roken.exe
160         $(OBJ)\make-roken.exe > $@ || $(RM) $@
161
162 INCFILES =                      \
163         $(INCDIR)\base32.h      \
164         $(INCDIR)\base64.h      \
165         $(INCDIR)\dirent.h      \
166         $(INCDIR)\dlfcn.h       \
167         $(INCDIR)\err.h         \
168         $(INCDIR)\fnmatch.h     \
169         $(INCDIR)\getarg.h      \
170         $(INCDIR)\hex.h         \
171         $(INCDIR)\ifaddrs.h     \
172         $(INCDIR)\parse_bytes.h \
173         $(INCDIR)\parse_time.h  \
174         $(INCDIR)\parse_units.h \
175         $(INCDIR)\resolve.h     \
176         $(INCDIR)\roken.h       \
177         $(INCDIR)\roken-common.h        \
178         $(INCDIR)\rtbl.h        \
179         $(INCDIR)\search.h      \
180         $(INCDIR)\stdbool.h     \
181         $(INCDIR)\syslog.h      \
182         $(INCDIR)\vis.h         \
183         $(INCDIR)\vis-extras.h  \
184 !ifndef HAVE_STDINT_H
185         $(INCDIR)\stdint.h      \
186 !endif
187         $(INCDIR)\versionsupport.h      \
188         $(INCDIR)\xdbm.h
189
190 clean::
191         -$(RM) $(XHEADERS)
192
193 all:: $(INCFILES) $(LIBROKEN)
194
195 clean::
196         -$(RM) $(LIBROKEN)
197
198 TMP_PROGS = $(OBJ)\snprintf-test.exe $(OBJ)\resolve-test.exe $(OBJ)\test-getuserinfo.exe
199
200 # Tests
201
202 TEST_PROGS =                        \
203         $(OBJ)\base32-test.exe      \
204         $(OBJ)\base64-test.exe      \
205         $(OBJ)\getaddrinfo-test.exe \
206         $(OBJ)\getifaddrs-test.exe  \
207         $(OBJ)\hex-test.exe         \
208         $(OBJ)\test-detach.exe      \
209         $(OBJ)\test-getuserinfo.exe \
210         $(OBJ)\test-readenv.exe     \
211         $(OBJ)\parse_bytes-test.exe \
212         $(OBJ)\parse_reply-test.exe \
213         $(OBJ)\parse_time-test.exe  \
214         $(OBJ)\snprintf-test.exe    \
215         $(OBJ)\strpftime-test.exe   \
216         $(OBJ)\dirent-test.exe      \
217         $(OBJ)\test-mini_inetd.exe
218
219 $(OBJ)\strftime_test.obj: strftime.c
220         $(C2OBJ) -DTEST_SNPRINTF -DTEST_STRPFTIME -DBUILD_ROKEN_LIB
221
222 $(OBJ)\strptime_test.obj: strptime.c
223         $(C2OBJ) -DTEST_SNPRINTF -DTEST_STRPFTIME -DBUILD_ROKEN_LIB
224
225 $(OBJ)\snprintf_test.obj: snprintf.c
226         $(C2OBJ) -DTEST_SNPRINTF -DTEST_STRPFTIME -DBUILD_ROKEN_LIB
227
228 $(OBJ)\libtest.lib: $(OBJ)\strftime_test.obj $(OBJ)\strptime_test.obj $(OBJ)\snprintf_test.obj
229         $(LIBCON)
230
231 $(OBJ)\parse_reply-test.obj: parse_reply-test.c
232         $(C2OBJ) -DTEST_RESOLVE -DBUILD_ROKEN_LIB
233
234 $(OBJ)\resolve_test.obj: resolve.c
235         $(C2OBJ) -DTEST_RESOLVE -DBUILD_ROKEN_LIB
236
237 $(OBJ)\parse_reply-test.exe: $(OBJ)\parse_reply-test.obj $(OBJ)\resolve_test.obj $(LIBROKEN)
238         $(EXECONLINK) DnsAPI.lib
239
240 $(OBJ)\test-readenv.exe: $(OBJ)\test-readenv.obj $(OBJ)\test-mem.obj $(LIBROKEN)
241         $(EXECONLINK)
242
243 $(OBJ)\parse_time-test.exe: $(OBJ)\parse_time-test.obj $(OBJ)\test-mem.obj $(LIBROKEN)
244         $(EXECONLINK)
245
246 $(OBJ)\strpftime-test.obj: strpftime-test.c
247         $(C2OBJ) -DTEST_STRPFTIME -DBUILD_ROKEN_LIB
248
249 $(OBJ)\strpftime-test.exe: $(OBJ)\strpftime-test.obj $(OBJ)\libtest.lib $(LIBROKEN)
250         $(EXECONLINK)
251
252 $(OBJ)\snprintf-test.obj: snprintf-test.c
253         $(C2OBJ) -DTEST_SNPRINTF -DBUILD_ROKEN_LIB
254
255 $(OBJ)\snprintf-test.exe: $(OBJ)\snprintf-test.obj $(OBJ)\libtest.lib $(LIBROKEN)
256         $(EXECONLINK)
257
258 $(OBJ)\resolve-test.exe: $(OBJ)\resolve-test.obj $(LIBROKEN)
259         $(EXECONLINK) DnsAPI.lib
260
261 $(OBJ)\base32-test.exe: $(OBJ)\base32-test.obj $(OBJ)\base32.obj $(LIBROKEN)
262         $(EXECONLINK)
263
264 $(OBJ)\base64-test.exe: $(OBJ)\base64-test.obj $(OBJ)\base64.obj $(LIBROKEN)
265         $(EXECONLINK)
266
267 $(OBJ)\getaddrinfo-test.exe: $(OBJ)\getaddrinfo-test.obj $(LIBROKEN)
268         $(EXECONLINK)
269
270 $(OBJ)\hex-test.exe: $(OBJ)\hex-test.obj $(LIBROKEN)
271         $(EXECONLINK)
272
273 $(OBJ)\parse_bytes-test.exe: $(OBJ)\parse_bytes-test.obj $(LIBROKEN)
274         $(EXECONLINK)
275
276 $(OBJ)\test-detach.exe: $(OBJ)\test-detach.obj $(OBJ)\detach.obj $(LIBROKEN)
277         $(EXECONLINK)
278
279 $(OBJ)\test-getuserinfo.exe: $(OBJ)\test-getuserinfo.obj $(OBJ)\getuserinfo.obj $(LIBROKEN)
280         $(EXECONLINK) Secur32.lib Shell32.lib
281
282 $(OBJ)\dirent-test.exe: $(OBJ)\dirent-test.obj $(LIBROKEN)
283         $(EXECONLINK)
284
285 $(OBJ)\getifaddrs-test.exe: $(OBJ)\getifaddrs-test.obj $(LIBROKEN)
286         $(EXECONLINK)
287
288 $(OBJ)\test-mini_inetd.exe: $(OBJ)\test-mini_inetd.obj $(LIBROKEN)
289         $(EXECONLINK)
290
291 test-binaries: $(TEST_PROGS) $(TMP_PROGS)
292
293 test-run:
294         cd $(OBJ)
295         -test-mini_inetd.exe
296         -dirent-test.exe
297         -base32-test.exe
298         -base64-test.exe
299         -getaddrinfo-test.exe www.h5l.org http
300         -getifaddrs-test.exe
301         -hex-test.exe
302         -test-readenv.exe
303         -parse_bytes-test.exe
304 # Need to rewrite this test:
305 #       -parse_reply-test.exe
306         -parse_time-test.exe
307         -snprintf-test.exe
308         -strpftime-test.exe
309         cd $(SRCDIR)
310
311 test:: test-binaries test-run
312