1*f45a9042Sjasper# $OpenBSD: Makefile,v 1.51 2021/09/02 07:14:15 jasper Exp $ 2d30492b3Sespie 331380ac0SbluhmREGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 t8 t9 \ 431380ac0Sbluhm t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 \ 531380ac0Sbluhm t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 \ 631380ac0Sbluhm t30 t31 t32 t33 t34 t35 t36 t37 t38 t38j t39 \ 7747d3b41Sespie t40 t41 t42 t42bis t43 t44 t45 t46 t47 t48 831380ac0Sbluhm 9ce008665SespieREGRESS_EXPECTED_FAILURES = t14 t17 t18 10d30492b3Sespie 11d30492b3Sespiet1: t1.out 12*f45a9042Sjasper env -i PATH=${PATH} ${MAKE} -e -r -f ${.CURDIR}/mk1 | diff - t1.out 13d30492b3Sespie 14d30492b3Sespie# This is a POSIX test. pmake does not pass variables to submakes until 15d30492b3Sespie# after OpenBSD 2.7. 16d30492b3Sespiet2: 17*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk2| diff - t2.out 18d30492b3Sespie 19d30492b3Sespiet3: 20*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk3 -f mk3a|diff - t3.out 21*f45a9042Sjasper cd ${.CURDIR} && cat mk3a |env -i PATH=${PATH} ${MAKE} -r -f mk3 -f -|diff - t3.out 22*f45a9042Sjasper cd ${.CURDIR} && cat mk3 |env -i PATH=${PATH} ${MAKE} -r -f - -f mk3a|diff - t3.out 23*f45a9042Sjasper cd ${.CURDIR} && cat mk3 mk3a|env -i PATH=${PATH} ${MAKE} -r -f - |diff - t3.out 24d30492b3Sespie 25d30492b3Sespiet4: 26*f45a9042Sjasper cd ${.CURDIR} && cat mk4 mk4a|env -i PATH=${PATH} ${MAKE} -r -f - |diff - t4.out 27d30492b3Sespie # Splitting files along conditionals should not work 28*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk4 -f mk4a 2>/dev/null || test $$? -ge 128 ; then false; fi 29d30492b3Sespie 30d30492b3Sespie# Another POSIX test, checking that MAKEFLAGS does work 31d30492b3Sespiet5: 32d30492b3Sespie # first check that make does fail as expected 33*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mkfail 2>/dev/null || test $$? -ge 128; then false; fi 34d30492b3Sespie # first form of MAKEFLAGS 35*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=-n ${MAKE} -r -f mkfail 36d30492b3Sespie # second form of MAKEFLAGS 37*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=n ${MAKE} -r -f mkfail 38d30492b3Sespie 39d30492b3Sespiet6: 40*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} A=good -r -f mk6 | diff - t6.out 41d30492b3Sespie 4231380ac0Sbluhm# This test passes since the cond parser has been rewritten. 431a5be1c1Sespiet7: 44*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk7 2>/dev/null || test $$? -ge 128; then false; fi 451a5be1c1Sespie 469e90d608Sespie# check for existent/non existent files 479e90d608Sespiet8: 489e90d608Sespie touch goodfile phony 49*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk8 | diff - t8.out 509e90d608Sespie 513a482e43Sespiet9: 52*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk9 2>&1 | diff - t9.out 533a482e43Sespie 54a3ee128fSespie# verify that systemV extended variables work as expected 55a3ee128fSespiet10: z.a 56*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk10 |diff - t10.out 57a3ee128fSespie 58da5327dbSespie# check for substitution parser in some confusing situations 59da5327dbSespiet11: 60*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk11 |diff - t11.out 61*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk11 A=t|diff - t11.out2 62da5327dbSespie 6300a5c933Sespie# Check for filename expansions. 6400a5c933Sespiet12: 65*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk12 |diff - t12.out 6600a5c933Sespie 6731380ac0Sbluhm# Verify whitespace handling. 68ea40f178Sespiet13: 69*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk13 |diff - t13.out 70ea40f178Sespie 7196b9c5acSespie# make currently incorrectly uses annotations for suffixes rules 7296b9c5acSespie# for non-suffixes rules. 7396b9c5acSespie# this is hard to fix without breaking something else 74fcb573ceSespiet14: 75*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk14 2>/dev/null || test $$? -ge 128; then false; fi 76fcb573ceSespie 77ad977213Sespiet15: 78ad977213Sespie touch t15file 79*f45a9042Sjasper cd ${.CURDIR} && ulimit -t 2 && env -i PATH=${PATH} ${MAKE} -r -f mk15 2>/dev/null 80ad977213Sespie 816e31152dSespiet16: 82*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk16 836e31152dSespie 8496b9c5acSespie# Bug in cond-parser, ends up having too many open conds. 859280f092Sespiet17: 86*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk17 879280f092Sespie 8896b9c5acSespie# bug in cond-parser again: this one holds too many open conditionals, 8996b9c5acSespie# and exactly enough closes... 90b2734408Sespiet18: 91*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk18 92b2734408Sespie 9382eabe46Sespiet19: 94*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} SHELL=/bin/zsh ${MAKE} -r -f mk19 | diff - t19.out 9582eabe46Sespie 9682eabe46Sespiet20: 97*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} SHELL=/bin/sh ${MAKE} -r -f mk20 | diff - t20.out 9882eabe46Sespie 999fdcdc49Sespiet21: 100*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk21 | diff - t21.out 1019fdcdc49Sespie 102a00f81f1Sespiet22: 103*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk22 b | diff - t22.out 104a00f81f1Sespie 105a00f81f1Sespiet23: 106*f45a9042Sjasper cd ${.CURDIR} && ulimit -t 60 && env -i PATH=${PATH} ${MAKE} -r -f mk22 a 2>&1| diff - t23.out 107a00f81f1Sespie 108d8547688Sespiet24: 109*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk23 a 2>/dev/null || test $$? -ge 128; then false; fi 1103846517aSespie 1113846517aSespiet25: 1123846517aSespie touch ${.OBJDIR}/t25.1st 1133846517aSespie rm -f ${.OBJDIR}/t25.2nd 114*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 t25.2nd 2>/dev/null || test $$? -ge 128; then false; fi 1153846517aSespie 1163846517aSespiet26: 1173846517aSespie touch ${.OBJDIR}/f26.2nd 1183846517aSespie rm -f ${.OBJDIR}/f26 119*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 f26 2>/dev/null || test $$? -ge 128; then false; fi 1203846517aSespie 1213846517aSespiet27: 1223846517aSespie touch ${.OBJDIR}/t27.2nd 1233846517aSespie rm -f ${.OBJDIR}/t27.3rd 124*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 t27.3rd 2>/dev/null || test $$? -ge 128; then false; fi 125d8547688Sespie 1267ad4da04Sespiet28: 127*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk25 all >/dev/null 1287ad4da04Sespie 1293cd197acSespiet29: 1303cd197acSespie rm -f t29dep t29.targ t29.targ2 libt29.a 131*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk26 all | diff - t29.out 132*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk26 all | diff - t29.out2 1333cd197acSespie 1347b923527Sespiet30: 135*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk27 all | diff - t30.out 1367b923527Sespie 137c235aa79Sespiet31: 138*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk28 all 139c235aa79Sespie 140016739e4Sfgscht32: 141*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} B="A" ${MAKE} -r -f mk32 all | diff - t32.out 142016739e4Sfgsch 143016739e4Sfgscht33: 144*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} B=0 ${MAKE} -r -f mk32 all | diff - t33.out 145016739e4Sfgsch 146016739e4Sfgscht34: 147*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} B=1 ${MAKE} -r -f mk32 all | diff - t34.out 148016739e4Sfgsch 149016739e4Sfgscht35: 150*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} B=2 ${MAKE} -r -f mk32 all | diff - t35.out 151016739e4Sfgsch 15278e70fa1Sespiet36: 153*f45a9042Sjasper if echo '$$$$(A:&)' | env -i PATH=${PATH} ${MAKE} -r -f - 2>/dev/null|| test $$? -ge 128; then false; fi 15478e70fa1Sespie 155a3ee128fSespiez.a: 156a3ee128fSespie touch $@ 157a3ee128fSespie 15850cd2f97Sespiet37: 159*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} B=2 ${MAKE} -r -f mk33 all; then false; else true; fi 16050cd2f97Sespie 16132a92205Sespiet38: 162*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk34 | diff - t38.out 16332a92205Sespie 16432a92205Sespiet38j: 165*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk34 -j2 | diff - t38.out 1664cc8d355Sespie 1674cc8d355Sespiet39: 168*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk35 2>&1 | diff - t39.out 1694cc8d355Sespie 170dacceb69Sjsgt40: 171*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk36 2>/dev/null 172dacceb69Sjsg 1739a59c451Sjsgt41: 174*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk37 2>/dev/null || test $$? -ge 128; then false; fi 1759a59c451Sjsg 1769a59c451Sjsgt42: 177*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk38 2>/dev/null || test $$? -ge 128; then false; fi 1789a59c451Sjsg 1794301cb8bSespiet42bis: 180*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk38bis 2>/dev/null || test $$? -ge 128; then false; fi 1814301cb8bSespie 18261bf719dSespiet43: 183*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -j2 -f mk39 b 2>&1 | diff - t43.out 184*f45a9042Sjasper cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -j2 -f mk39 a 2>&1 | diff - t43.out 18561bf719dSespie 1863516c9d9Sespiet44: 187*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk40 2>/dev/null || test $$? -ge 128; then false; fi 1883516c9d9Sespie 1893516c9d9Sespiet45: 190*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk41 2>/dev/null || test $$? -ge 128; then false; fi 1913516c9d9Sespie 19202e33fd6Sespie# this file should fail, but NOT segfault 19302e33fd6Sespiet46: 194*f45a9042Sjasper if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk42 a 2>/dev/null; then \ 19502e33fd6Sespie false; \ 19602e33fd6Sespie else \ 19702e33fd6Sespie if test $$? -ge 1 -a $$? -lt 128; then \ 19802e33fd6Sespie true; else \ 19902e33fd6Sespie false; fi; \ 20002e33fd6Sespie fi 20161bf719dSespie 20209c75a74Sespiet47: tok.o 20309c75a74Sespie test -f tok.o || exit 1 20409c75a74Sespie 205747d3b41Sespiet48: 206747d3b41Sespie cd ${.CURDIR} && make -r -f mk43 a 207747d3b41Sespie 208d30492b3Sespiet1.out: 209d30492b3Sespie echo MACHINE_ARCH=${MACHINE_ARCH} >$@ 210d30492b3Sespie 2113846517aSespie.PHONY: ${REGRESS_TARGETS} regress 212d30492b3Sespie 21332a92205SespieCLEANFILES+=t1.out z.a a.a a.b mk34.b goodfile phony t15file \ 2143cd197acSespie t25.1st t25.2nd f26.2nd f26 t27.2nd t27.3rd \ 21531380ac0Sbluhm libt29.a t29dep t29.targ t29.targ2 t38.b tok tok.o tok.d 216d30492b3Sespie 2178267faadSart.include <bsd.regress.mk> 218