1# $OpenBSD: Makefile,v 1.51 2021/09/02 07:14:15 jasper Exp $ 2 3REGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 t8 t9 \ 4 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 \ 5 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 \ 6 t30 t31 t32 t33 t34 t35 t36 t37 t38 t38j t39 \ 7 t40 t41 t42 t42bis t43 t44 t45 t46 t47 t48 8 9REGRESS_EXPECTED_FAILURES = t14 t17 t18 10 11t1: t1.out 12 env -i PATH=${PATH} ${MAKE} -e -r -f ${.CURDIR}/mk1 | diff - t1.out 13 14# This is a POSIX test. pmake does not pass variables to submakes until 15# after OpenBSD 2.7. 16t2: 17 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk2| diff - t2.out 18 19t3: 20 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk3 -f mk3a|diff - t3.out 21 cd ${.CURDIR} && cat mk3a |env -i PATH=${PATH} ${MAKE} -r -f mk3 -f -|diff - t3.out 22 cd ${.CURDIR} && cat mk3 |env -i PATH=${PATH} ${MAKE} -r -f - -f mk3a|diff - t3.out 23 cd ${.CURDIR} && cat mk3 mk3a|env -i PATH=${PATH} ${MAKE} -r -f - |diff - t3.out 24 25t4: 26 cd ${.CURDIR} && cat mk4 mk4a|env -i PATH=${PATH} ${MAKE} -r -f - |diff - t4.out 27 # Splitting files along conditionals should not work 28 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk4 -f mk4a 2>/dev/null || test $$? -ge 128 ; then false; fi 29 30# Another POSIX test, checking that MAKEFLAGS does work 31t5: 32 # first check that make does fail as expected 33 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mkfail 2>/dev/null || test $$? -ge 128; then false; fi 34 # first form of MAKEFLAGS 35 cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=-n ${MAKE} -r -f mkfail 36 # second form of MAKEFLAGS 37 cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=n ${MAKE} -r -f mkfail 38 39t6: 40 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} A=good -r -f mk6 | diff - t6.out 41 42# This test passes since the cond parser has been rewritten. 43t7: 44 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk7 2>/dev/null || test $$? -ge 128; then false; fi 45 46# check for existent/non existent files 47t8: 48 touch goodfile phony 49 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk8 | diff - t8.out 50 51t9: 52 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk9 2>&1 | diff - t9.out 53 54# verify that systemV extended variables work as expected 55t10: z.a 56 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk10 |diff - t10.out 57 58# check for substitution parser in some confusing situations 59t11: 60 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk11 |diff - t11.out 61 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk11 A=t|diff - t11.out2 62 63# Check for filename expansions. 64t12: 65 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk12 |diff - t12.out 66 67# Verify whitespace handling. 68t13: 69 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk13 |diff - t13.out 70 71# make currently incorrectly uses annotations for suffixes rules 72# for non-suffixes rules. 73# this is hard to fix without breaking something else 74t14: 75 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk14 2>/dev/null || test $$? -ge 128; then false; fi 76 77t15: 78 touch t15file 79 cd ${.CURDIR} && ulimit -t 2 && env -i PATH=${PATH} ${MAKE} -r -f mk15 2>/dev/null 80 81t16: 82 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk16 83 84# Bug in cond-parser, ends up having too many open conds. 85t17: 86 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk17 87 88# bug in cond-parser again: this one holds too many open conditionals, 89# and exactly enough closes... 90t18: 91 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk18 92 93t19: 94 cd ${.CURDIR} && env -i PATH=${PATH} SHELL=/bin/zsh ${MAKE} -r -f mk19 | diff - t19.out 95 96t20: 97 cd ${.CURDIR} && env -i PATH=${PATH} SHELL=/bin/sh ${MAKE} -r -f mk20 | diff - t20.out 98 99t21: 100 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk21 | diff - t21.out 101 102t22: 103 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk22 b | diff - t22.out 104 105t23: 106 cd ${.CURDIR} && ulimit -t 60 && env -i PATH=${PATH} ${MAKE} -r -f mk22 a 2>&1| diff - t23.out 107 108t24: 109 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk23 a 2>/dev/null || test $$? -ge 128; then false; fi 110 111t25: 112 touch ${.OBJDIR}/t25.1st 113 rm -f ${.OBJDIR}/t25.2nd 114 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 t25.2nd 2>/dev/null || test $$? -ge 128; then false; fi 115 116t26: 117 touch ${.OBJDIR}/f26.2nd 118 rm -f ${.OBJDIR}/f26 119 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 f26 2>/dev/null || test $$? -ge 128; then false; fi 120 121t27: 122 touch ${.OBJDIR}/t27.2nd 123 rm -f ${.OBJDIR}/t27.3rd 124 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 t27.3rd 2>/dev/null || test $$? -ge 128; then false; fi 125 126t28: 127 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk25 all >/dev/null 128 129t29: 130 rm -f t29dep t29.targ t29.targ2 libt29.a 131 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk26 all | diff - t29.out 132 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk26 all | diff - t29.out2 133 134t30: 135 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk27 all | diff - t30.out 136 137t31: 138 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk28 all 139 140t32: 141 cd ${.CURDIR} && env -i PATH=${PATH} B="A" ${MAKE} -r -f mk32 all | diff - t32.out 142 143t33: 144 cd ${.CURDIR} && env -i PATH=${PATH} B=0 ${MAKE} -r -f mk32 all | diff - t33.out 145 146t34: 147 cd ${.CURDIR} && env -i PATH=${PATH} B=1 ${MAKE} -r -f mk32 all | diff - t34.out 148 149t35: 150 cd ${.CURDIR} && env -i PATH=${PATH} B=2 ${MAKE} -r -f mk32 all | diff - t35.out 151 152t36: 153 if echo '$$$$(A:&)' | env -i PATH=${PATH} ${MAKE} -r -f - 2>/dev/null|| test $$? -ge 128; then false; fi 154 155z.a: 156 touch $@ 157 158t37: 159 if cd ${.CURDIR} && env -i PATH=${PATH} B=2 ${MAKE} -r -f mk33 all; then false; else true; fi 160 161t38: 162 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk34 | diff - t38.out 163 164t38j: 165 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk34 -j2 | diff - t38.out 166 167t39: 168 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk35 2>&1 | diff - t39.out 169 170t40: 171 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk36 2>/dev/null 172 173t41: 174 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk37 2>/dev/null || test $$? -ge 128; then false; fi 175 176t42: 177 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk38 2>/dev/null || test $$? -ge 128; then false; fi 178 179t42bis: 180 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk38bis 2>/dev/null || test $$? -ge 128; then false; fi 181 182t43: 183 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -j2 -f mk39 b 2>&1 | diff - t43.out 184 cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -j2 -f mk39 a 2>&1 | diff - t43.out 185 186t44: 187 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk40 2>/dev/null || test $$? -ge 128; then false; fi 188 189t45: 190 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk41 2>/dev/null || test $$? -ge 128; then false; fi 191 192# this file should fail, but NOT segfault 193t46: 194 if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk42 a 2>/dev/null; then \ 195 false; \ 196 else \ 197 if test $$? -ge 1 -a $$? -lt 128; then \ 198 true; else \ 199 false; fi; \ 200 fi 201 202t47: tok.o 203 test -f tok.o || exit 1 204 205t48: 206 cd ${.CURDIR} && make -r -f mk43 a 207 208t1.out: 209 echo MACHINE_ARCH=${MACHINE_ARCH} >$@ 210 211.PHONY: ${REGRESS_TARGETS} regress 212 213CLEANFILES+=t1.out z.a a.a a.b mk34.b goodfile phony t15file \ 214 t25.1st t25.2nd f26.2nd f26 t27.2nd t27.3rd \ 215 libt29.a t29dep t29.targ t29.targ2 t38.b tok tok.o tok.d 216 217.include <bsd.regress.mk> 218