1######################################################################## 2# 3# Copyright (c) 2009, 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 32RELDIR=lib\roken 33 34!include ../../windows/NTMakefile.w32 35 36libroken_la_OBJS = \ 37 $(OBJ)\base64.obj \ 38 $(OBJ)\bswap.obj \ 39 $(OBJ)\concat.obj \ 40 $(OBJ)\cloexec.obj \ 41 $(OBJ)\ct.obj \ 42 $(OBJ)\dirent.obj \ 43 $(OBJ)\dlfcn_w32.obj \ 44 $(OBJ)\dumpdata.obj \ 45 $(OBJ)\ecalloc.obj \ 46 $(OBJ)\emalloc.obj \ 47 $(OBJ)\environment.obj \ 48 $(OBJ)\eread.obj \ 49 $(OBJ)\erealloc.obj \ 50 $(OBJ)\err.obj \ 51 $(OBJ)\errx.obj \ 52 $(OBJ)\esetenv.obj \ 53 $(OBJ)\estrdup.obj \ 54 $(OBJ)\ewrite.obj \ 55 $(OBJ)\flock.obj \ 56 $(OBJ)\fnmatch.obj \ 57 $(OBJ)\getaddrinfo_hostspec.obj \ 58 $(OBJ)\get_default_username.obj \ 59 $(OBJ)\get_window_size.obj \ 60 $(OBJ)\getarg.obj \ 61 $(OBJ)\getifaddrs_w32.obj \ 62 $(OBJ)\getnameinfo_verified.obj \ 63 $(OBJ)\getopt.obj \ 64 $(OBJ)\getprogname.obj \ 65 $(OBJ)\gettimeofday.obj \ 66 $(OBJ)\hex.obj \ 67 $(OBJ)\hostent_find_fqdn.obj \ 68 $(OBJ)\inet_aton.obj \ 69 $(OBJ)\issuid.obj \ 70 $(OBJ)\localtime_r.obj \ 71 $(OBJ)\lstat.obj \ 72 $(OBJ)\mini_inetd.obj \ 73 $(OBJ)\mkstemp.obj \ 74 $(OBJ)\net_read.obj \ 75 $(OBJ)\net_write.obj \ 76 $(OBJ)\parse_bytes.obj \ 77 $(OBJ)\parse_time.obj \ 78 $(OBJ)\parse_units.obj \ 79 $(OBJ)\realloc.obj \ 80 $(OBJ)\rename.obj \ 81 $(OBJ)\resolve.obj \ 82 $(OBJ)\rand.obj \ 83 $(OBJ)\roken_gethostby.obj \ 84 $(OBJ)\rtbl.obj \ 85 $(OBJ)\sendmsg.obj \ 86 $(OBJ)\setenv.obj \ 87 $(OBJ)\setprogname.obj \ 88 $(OBJ)\simple_exec_w32.obj \ 89 $(OBJ)\sleep.obj \ 90 $(OBJ)\snprintf.obj \ 91 $(OBJ)\socket.obj \ 92 $(OBJ)\sockstartup_w32.obj \ 93 $(OBJ)\strcollect.obj \ 94 $(OBJ)\strerror_r.obj \ 95 $(OBJ)\strlcat.obj \ 96 $(OBJ)\strlcpy.obj \ 97 $(OBJ)\strpool.obj \ 98 $(OBJ)\strptime.obj \ 99 $(OBJ)\strsep.obj \ 100 $(OBJ)\strsep_copy.obj \ 101 $(OBJ)\strtok_r.obj \ 102 $(OBJ)\syslogc.obj \ 103 $(OBJ)\timegm.obj \ 104 $(OBJ)\timeval.obj \ 105 $(OBJ)\tm2time.obj \ 106 $(OBJ)\tsearch.obj \ 107 $(OBJ)\unvis.obj \ 108 $(OBJ)\verr.obj \ 109 $(OBJ)\verrx.obj \ 110 $(OBJ)\vis.obj \ 111 $(OBJ)\vwarn.obj \ 112 $(OBJ)\vwarnx.obj \ 113 $(OBJ)\warn.obj \ 114 $(OBJ)\warnerr.obj \ 115 $(OBJ)\warnx.obj \ 116 $(OBJ)\xfree.obj 117 118!if $(NMAKE_WINVER) < 0x0600 119libroken_la_OBJS=$(libroken_la_OBJS) \ 120 $(OBJ)\inet_ntop.obj \ 121 $(OBJ)\inet_pton.obj 122!endif 123 124{}.c{$(OBJ)}.obj:: 125 $(C2OBJ_P) -DBUILD_ROKEN_LIB 126 127$(LIBROKEN): $(libroken_la_OBJS) 128 $(LIBCON_C) -out:$@ @<< 129$(**: = 130) 131<< 132 133$(OBJ)\make-roken.exe: $(OBJ)\make-roken.obj 134 $(EXECONLINK) 135 136$(OBJ)\make-roken.c: roken.h.in roken.awk $(INCDIR)\config.h 137 $(AWK) -f roken.awk roken.h.in > $(OBJ)\make-roken.c || $(RM) $(OBJ)\make-roken.c 138 139$(INCDIR)\roken.h: $(OBJ)\make-roken.exe 140 $(OBJ)\make-roken.exe > $@ || $(RM) $@ 141 142INCFILES = \ 143 $(INCDIR)\base64.h \ 144 $(INCDIR)\dirent.h \ 145 $(INCDIR)\dlfcn.h \ 146 $(INCDIR)\err.h \ 147 $(INCDIR)\fnmatch.h \ 148 $(INCDIR)\getarg.h \ 149 $(INCDIR)\glob.h \ 150 $(INCDIR)\hex.h \ 151 $(INCDIR)\ifaddrs.h \ 152 $(INCDIR)\parse_bytes.h \ 153 $(INCDIR)\parse_time.h \ 154 $(INCDIR)\parse_units.h \ 155 $(INCDIR)\resolve.h \ 156 $(INCDIR)\roken.h \ 157 $(INCDIR)\roken-common.h \ 158 $(INCDIR)\rtbl.h \ 159 $(INCDIR)\search.h \ 160 $(INCDIR)\stdbool.h \ 161 $(INCDIR)\syslog.h \ 162 $(INCDIR)\vis.h \ 163 $(INCDIR)\xdbm.h 164 165clean:: 166 -$(RM) $(XHEADERS) 167 168all:: $(INCFILES) $(LIBROKEN) 169 170clean:: 171 -$(RM) $(LIBROKEN) 172 173TMP_PROGS = $(OBJ)\snprintf-test.exe $(OBJ)\resolve-test.exe 174 175# Tests 176 177TEST_PROGS = \ 178 $(OBJ)\base64-test.exe \ 179 $(OBJ)\getaddrinfo-test.exe \ 180 $(OBJ)\getifaddrs-test.exe \ 181 $(OBJ)\hex-test.exe \ 182 $(OBJ)\test-readenv.exe \ 183 $(OBJ)\parse_bytes-test.exe \ 184 $(OBJ)\parse_reply-test.exe \ 185 $(OBJ)\parse_time-test.exe \ 186 $(OBJ)\snprintf-test.exe \ 187 $(OBJ)\strpftime-test.exe \ 188 $(OBJ)\dirent-test.exe \ 189 $(OBJ)\test-mini_inetd.exe 190 191$(OBJ)\strftime_test.obj: strftime.c 192 $(C2OBJ) -DTEST_SNPRINTF -DTEST_STRPFTIME -DBUILD_ROKEN_LIB 193 194$(OBJ)\strptime_test.obj: strptime.c 195 $(C2OBJ) -DTEST_SNPRINTF -DTEST_STRPFTIME -DBUILD_ROKEN_LIB 196 197$(OBJ)\snprintf_test.obj: snprintf.c 198 $(C2OBJ) -DTEST_SNPRINTF -DTEST_STRPFTIME -DBUILD_ROKEN_LIB 199 200$(OBJ)\libtest.lib: $(OBJ)\strftime_test.obj $(OBJ)\strptime_test.obj $(OBJ)\snprintf_test.obj 201 $(LIBCON) 202 203$(OBJ)\parse_reply-test.obj: parse_reply-test.c 204 $(C2OBJ) -DTEST_RESOLVE -DBUILD_ROKEN_LIB 205 206$(OBJ)\resolve_test.obj: resolve.c 207 $(C2OBJ) -DTEST_RESOLVE -DBUILD_ROKEN_LIB 208 209$(OBJ)\parse_reply-test.exe: $(OBJ)\parse_reply-test.obj $(OBJ)\resolve_test.obj $(LIBROKEN) 210 $(EXECONLINK) DnsAPI.lib 211 212$(OBJ)\test-readenv.exe: $(OBJ)\test-readenv.obj $(OBJ)\test-mem.obj $(LIBROKEN) 213 $(EXECONLINK) 214 215$(OBJ)\parse_time-test.exe: $(OBJ)\parse_time-test.obj $(OBJ)\test-mem.obj $(LIBROKEN) 216 $(EXECONLINK) 217 218$(OBJ)\strpftime-test.obj: strpftime-test.c 219 $(C2OBJ) -DTEST_STRPFTIME -DBUILD_ROKEN_LIB 220 221$(OBJ)\strpftime-test.exe: $(OBJ)\strpftime-test.obj $(OBJ)\libtest.lib $(LIBROKEN) 222 $(EXECONLINK) 223 224$(OBJ)\snprintf-test.obj: snprintf-test.c 225 $(C2OBJ) -DTEST_SNPRINTF -DBUILD_ROKEN_LIB 226 227$(OBJ)\snprintf-test.exe: $(OBJ)\snprintf-test.obj $(OBJ)\libtest.lib $(LIBROKEN) 228 $(EXECONLINK) 229 230$(OBJ)\resolve-test.exe: $(OBJ)\resolve-test.obj $(LIBROKEN) 231 $(EXECONLINK) DnsAPI.lib 232 233$(OBJ)\base64-test.exe: $(OBJ)\base64-test.obj $(OBJ)\base64.obj 234 $(EXECONLINK) 235 236$(OBJ)\getaddrinfo-test.exe: $(OBJ)\getaddrinfo-test.obj $(LIBROKEN) 237 $(EXECONLINK) 238 239$(OBJ)\hex-test.exe: $(OBJ)\hex-test.obj $(LIBROKEN) 240 $(EXECONLINK) 241 242$(OBJ)\parse_bytes-test.exe: $(OBJ)\parse_bytes-test.obj $(LIBROKEN) 243 $(EXECONLINK) 244 245$(OBJ)\dirent-test.exe: $(OBJ)\dirent-test.obj $(LIBROKEN) 246 $(EXECONLINK) 247 248$(OBJ)\getifaddrs-test.exe: $(OBJ)\getifaddrs-test.obj $(LIBROKEN) 249 $(EXECONLINK) 250 251$(OBJ)\test-mini_inetd.exe: $(OBJ)\test-mini_inetd.obj $(LIBROKEN) 252 $(EXECONLINK) 253 254test-binaries: $(TEST_PROGS) $(TMP_PROGS) 255 256test-run: 257 cd $(OBJ) 258 test-mini_inetd.exe 259 dirent-test.exe 260 base64-test.exe 261 getaddrinfo-test.exe 262 getifaddrs-test.exe 263 hex-test.exe 264 test-readenv.exe 265 parse_bytes-test.exe 266# Need to rewrite this test: 267# parse_reply-test.exe 268 parse_time-test.exe 269 snprintf-test.exe 270 strpftime-test.exe 271 cd $(SRCDIR) 272 273test:: test-binaries test-run 274 275