1# $OpenBSD: Makefile,v 1.36 2012/12/10 10:23:27 jasper Exp $ 2 3REGRESS_TARGETS=cmp-vers1-1 \ 4 cmp-vers1-2 \ 5 cmp-vers1-3 \ 6 cmp-vers2-1 \ 7 cmp-vers2-2 \ 8 cmp-vers2-3 \ 9 cmp-vers2-4 \ 10 cmp-vers3 \ 11 cmp-vers4-1 \ 12 cmp-vers4-2 \ 13 cmp-vers4-3 \ 14 cmp-vers4-4 \ 15 cmp-vers4-5 \ 16 cmp-vers4-6 \ 17 cmp-vers4-7 \ 18 cmp-vers4-8 \ 19 cmp-vers4-9 \ 20 cmp-vers5-1 \ 21 cmp-vers5-2 \ 22 cmp-vers5-3 \ 23 cmp-vers5-4 \ 24 cmp-vers5-5 \ 25 cmp-vers5-6 \ 26 cmp-vers5-7 \ 27 cmp-vers6-1 \ 28 cmp-vers6-2 \ 29 corrupt1 \ 30 corrupt2 \ 31 corrupt3 \ 32 print-provides \ 33 print-req \ 34 print-req-priv \ 35 logfile \ 36 sysroot-cflags \ 37 sysroot-libs \ 38 static-cflags1 \ 39 static-cflags2 \ 40 static-libs1 \ 41 static-libs2 \ 42 static-libs3 \ 43 static-libs4 \ 44 static-order \ 45 variable-get-1 \ 46 variable-set \ 47 missing-req-1 \ 48 missing-req-2 \ 49 missing-req-3 \ 50 missing-req-4 \ 51 whitespace-cflags \ 52 whitespace-libs \ 53 whitespace-linebreak \ 54 whitespace-name \ 55 broken-require-1 \ 56 broken-require-2 \ 57 min-version-1 \ 58 min-version-2 \ 59 exact-version-1 \ 60 exact-version-2 \ 61 max-version-1 \ 62 max-version-2 63 64PKG_CONFIG?= pkg-config 65PCONFIG = PKG_CONFIG_PATH=${.CURDIR}/pcdir/ ${PKG_CONFIG} 66VPCONFIG = ${PCONFIG} --errors-to-stdout --print-errors > ${GOT} 67WANT= ${.OBJDIR}/$@.want 68GOT= ${.OBJDIR}/$@.got 69 70# Tests for corrupt pkg-config files. 71corrupt1: 72 # Test for missing variables/fields 73 @echo "Package '$@' has no Version: field" > ${WANT} 74 @if ${VPCONFIG} --exists $@; then false; fi 75 @diff -u ${WANT} ${GOT} 76 77corrupt2: 78 # Test for missing variables/fields 79 @echo "Package '$@' has no Name: field" > ${WANT} 80 @if ${VPCONFIG} --exists $@; then false; fi 81 @diff -u ${WANT} ${GOT} 82 83corrupt3: 84 # Test for empty file 85 @echo "Package file '$@.pc' appears to be empty" > ${WANT} 86 @echo "Package '$@' has no Name: field" >> ${WANT} 87 @if ${VPCONFIG} --libs $@; then false; fi 88 @diff -u ${WANT} ${GOT} 89 90# Tests for various printing features 91print-provides: 92 # Test --print-provides 93 @echo "print-provides = 0.0.0" > ${WANT} 94 @${PCONFIG} --print-provides $@ > ${GOT} 95 @diff -u ${WANT} ${GOT} 96 97print-req: 98 # Test --print-requires 99 @echo "print-req2>=0.0.1" > ${WANT} 100 @${PCONFIG} --print-requires $@ > ${GOT} 101 @diff -u ${WANT} ${GOT} 102 103print-req-priv: 104 # Test --print-requires-private 105 @echo "print-req-priv2>=0.0.0" > ${WANT} 106 @${PCONFIG} --print-requires-private $@ > ${GOT} 107 @diff -u ${WANT} ${GOT} 108 109# Tests for version comparison 110cmp-vers1-1: 111 # Test regular versions (a <= b) 112 @if ${PCONFIG} --exists "vers1 <= 0.0.2"; then false; fi 113 114cmp-vers1-2: 115 # Test regular versions (a <= b) 116 @${PCONFIG} --exists "vers1 <= 0.1.0" 117 118cmp-vers1-3: 119 # Test regular versions (a < b) 120 @${PCONFIG} --exists "vers1 < 0.2" 121 122cmp-vers2-1: 123 # Test regular versions (a >= b) 124 @${PCONFIG} --exists "vers2 >= 0.0.1" 125 126cmp-vers2-2: 127 # Test regular versions (a >= b) 128 @${PCONFIG} --exists "vers2 >= 0.0.0" 129 130cmp-vers2-3: 131 # Test regular versions (a >= b) 132 @${PCONFIG} --exists "vers2 >= 0.1.0" 133 134cmp-vers2-4: 135 # Test regular versions (a >= b) 136 @if ${PCONFIG} --exists "vers2 > 0.2.0.0"; then false; fi 137 138cmp-vers3: 139 # Test regular versions (a = b) 140 @${PCONFIG} --exists "vers2 = 0.2.0" 141 142cmp-vers4-1: 143 # Test suffixed versions (alpha >) 144 @touch ${WANT} 145 @${VPCONFIG} "alpha > 0.1.0" 146 @diff -u ${WANT} ${GOT} 147 148cmp-vers4-2: 149 # Test suffixed versions (alpha >) 150 @touch ${WANT} 151 @${VPCONFIG} "alpha > 0.1.0alpha1" 152 @diff -u ${WANT} ${GOT} 153 154cmp-vers4-3: 155 # Test suffixed versions (alpha >=) 156 @touch ${WANT} 157 @${VPCONFIG} "alpha >= 0.1.0" 158 @diff -u ${WANT} ${GOT} 159 160cmp-vers4-4: 161 # Test suffixed versions (alpha >=) 162 @touch ${WANT} 163 @${VPCONFIG} "alpha >= 0.1.0alpha2" 164 @diff -u ${WANT} ${GOT} 165 166cmp-vers4-5: 167 # Test suffixed versions (alpha <) 168 @touch ${WANT} 169 @${VPCONFIG} "alpha < 0.1.1" 170 @diff -u ${WANT} ${GOT} 171 172cmp-vers4-6: 173 # Test suffixed versions (alpha <) 174 @touch ${WANT} 175 @${VPCONFIG} "alpha < 0.1.0alpha3" 176 @diff -u ${WANT} ${GOT} 177 178cmp-vers4-7: 179 # Test suffixed versions (alpha <=) 180 @touch ${WANT} 181 @${VPCONFIG} "alpha < 0.1.1" 182 @diff -u ${WANT} ${GOT} 183 184cmp-vers4-8: 185 # Test suffixed versions (alpha <=) 186 @touch ${WANT} 187 @${VPCONFIG} "alpha <= 0.1.0alpha2" 188 @diff -u ${WANT} ${GOT} 189 190cmp-vers4-9: 191 # Test suffixed versions (alpha =) 192 @touch ${WANT} 193 @${VPCONFIG} "alpha = 0.1.0alpha2" 194 @diff -u ${WANT} ${GOT} 195 196 197cmp-vers5-1: 198 # Test suffixed versions (beta > alpha) 199 @touch ${WANT} 200 @${VPCONFIG} "beta > 0.1.0alpha1" 201 @diff -u ${WANT} ${GOT} 202 203cmp-vers5-2: 204 # Test suffixed versions (beta >= alpha) 205 @touch ${WANT} 206 @${VPCONFIG} "beta >= 0.1.0beta1" 207 @diff -u ${WANT} ${GOT} 208 209cmp-vers5-3: 210 # Test suffixed versions (alpha < rc) 211 @touch ${WANT} 212 @${VPCONFIG} "alpha < 0.1.0rc2" 213 @diff -u ${WANT} ${GOT} 214 215cmp-vers5-4: 216 # Test suffixed versions (beta < rc) 217 @touch ${WANT} 218 @${VPCONFIG} "beta < 0.1.0rc2" 219 @diff -u ${WANT} ${GOT} 220 221cmp-vers5-5: 222 # Test suffixed versions (alpha < beta) 223 @touch ${WANT} 224 @${VPCONFIG} "alpha < 0.1.0beta2" 225 @diff -u ${WANT} ${GOT} 226 227cmp-vers5-6: 228 # Test suffixed versions (rc > alpha) 229 @touch ${WANT} 230 @${VPCONFIG} "rc > 0.1.0alpha2" 231 @diff -u ${WANT} ${GOT} 232 233cmp-vers5-7: 234 # Test suffixed versions (rc > beta) 235 @touch ${WANT} 236 @${VPCONFIG} "rc > 0.1.0beta2" 237 @diff -u ${WANT} ${GOT} 238 239# These tests also fail with fd.o pkg-config, so keep them for later 240# to decide how our pkg-config should behave. 241cmp-vers5-8: 242 # Test suffixed versions (' ' > alpha) 243 @touch ${WANT} 244 @${VPCONFIG} "vers1 > 0.1.0alpha2" 245 @diff -u ${WANT} ${GOT} 246 247cmp-vers5-9: 248 # Test suffixed versions (' ' > beta) 249 @touch ${WANT} 250 @${VPCONFIG} "beta <= 0.1.0beta2" 251 @diff -u ${WANT} ${GOT} 252 253cmp-vers5-10: 254 # Test suffixed versions (' ' > rc) 255 @touch ${WANT} 256 @${VPCONFIG} "beta <= 0.1.0rc2" 257 @diff -u ${WANT} ${GOT} 258 259cmp-vers6-1: 260 # Test suffixed versions in Requires 261 @echo " -lalpha2" > ${WANT} 262 @${VPCONFIG} --libs requires-test2 263 @diff -u ${WANT} ${GOT} 264 265cmp-vers6-2: 266 # Test suffixed versions in Requires.private 267 @echo "Requested 'alpha >= 0.1.0alpha3' but version of alpha suffix test is 0.1.0alpha2" > ${WANT} 268 @if ${VPCONFIG} --libs --static requires-test2; then false; fi 269 @diff -u ${WANT} ${GOT} 270 271# Tests for various environment variables 272builddir: 273 # Test PKG_CONFIG_TOP_BUILD_DIR 274 275logfile: 276 # Test PKG_CONFIG_LOG 277 @echo "[/usr/bin/pkg-config] [--exists] [sysroot >= 0.0.0]" > ${WANT} 278 @rm -f ${GOT} 279 @PKG_CONFIG_LOG=${GOT} ${PCONFIG} --exists "sysroot >= 0.0.0" 280 @diff -u ${WANT} ${GOT} 281 282sysroot-cflags: 283 # Test PKG_CONFIG_SYSROOT_DIR (cflags) 284 @echo "-I/altroot/tmp/include -I/altroot/tmp/include/foo" > ${WANT} 285 @PKG_CONFIG_SYSROOT_DIR=/altroot ${PCONFIG} --cflags sysroot > ${GOT} 286 @diff -u ${WANT} ${GOT} 287 288sysroot-libs: 289 # Test PKG_CONFIG_SYSROOT_DIR (libs) 290 @echo "-L/altroot/tmp/lib -L/altroot/tmp/lib/foo -lc" > ${WANT} 291 @PKG_CONFIG_SYSROOT_DIR=/altroot ${PCONFIG} --libs sysroot > ${GOT} 292 @diff -u ${WANT} ${GOT} 293 294# Tests for static linking 295static-cflags1: 296 # Test grabbing Cflags (without Requires.private) 297 @echo "-I/usr/local/include/foo" > ${WANT} 298 @${VPCONFIG} --cflags --static static 299 @diff -u ${WANT} ${GOT} 300 301static-cflags2: 302 # Test grabbing Cflags (with Requires.private) 303 @echo "-I/usr/local/include/foo -I/usr/local/include" > ${WANT} 304 @${VPCONFIG} --cflags --static static2 305 @diff -u ${WANT} ${GOT} 306 307static-libs1: 308 # Test grabbing Libs.private from this package 309 @echo "-L/usr/local/lib -lc -lm -ll" > ${WANT} 310 @${VPCONFIG} --libs --static static 311 @diff -u ${WANT} ${GOT} 312 313static-libs2: 314 # Test grabbing Libs.private from Requires in order 315 @echo "-L/usr/local/lib -lc -lm -ll -lutil -lz" > ${WANT} 316 @${VPCONFIG} --libs --static static2 317 @diff -u ${WANT} ${GOT} 318 319static-libs3: 320 # Test grabbing Libs.private from Requires.private in order 321 @echo "-L/tmp/lib -L/tmp/lib/foo -L/usr/local/lib -lbaz\ quux -lc -lm -ll -lutil -lz" > ${WANT} 322 @${VPCONFIG} --libs --static static3 323 @diff -u ${WANT} ${GOT} 324 325static-libs4: 326 # Test Requires.private 327 @echo "-L/public-dep/lib -L/private-dep/lib -L/requires-test/lib -lpublic-dep -lprivate-dep -lrequires-test" > ${WANT} 328 @${VPCONFIG} --libs --static requires-test 329 @diff -u ${WANT} ${GOT} 330 331static-order: 332 # Test Requires.private order 333 @echo "-L/usr/X11R6/lib -lstatic-order1 -lstatic-order2 -lstatic-order3" > ${WANT} 334 @${VPCONFIG} --static --libs static-order1 335 @diff -u ${WANT} ${GOT} 336 337# Misc. tests 338variable-get-1: 339 # Test --variable 340 @echo "/tmp" > ${WANT} 341 @${VPCONFIG} --variable prefix sysroot 342 @diff -u ${WANT} ${GOT} 343 344variable-set: 345 # Test --define-variable 346 @echo "-I/usr/local2/include -I/usr/local2/include/foo" > ${WANT} 347 @${VPCONFIG} --define-variable=prefix=/usr/local2 \ 348 --cflags sysroot 349 @diff -u ${WANT} ${GOT} 350 351# This fails as we read and check Requires as well as Requires.private where 352# only Requires needs to be checked here as we ask for Libs and not Cflags. 353missing-req-1: 354 # Test for missing packages in Requires (libs) 355 @echo "Package nonexisting was not found in the pkg-config search path" > ${WANT} 356 @if ${VPCONFIG} --libs missing-req ; then false; fi 357 @diff -u ${WANT} ${GOT} 358 359missing-req-2: 360 # Test for missing packages in Requires (cflags) 361 @echo "Package nonexisting was not found in the pkg-config search path" > ${WANT} 362 @if ${VPCONFIG} --cflags missing-req; then false; fi 363 @diff -u ${WANT} ${GOT} 364 365missing-req-3: 366 # Test for missing packages in Requires (version) 367 @echo "0.0.0" > ${WANT} 368 @${VPCONFIG} --modversion missing-req 369 @diff -u ${WANT} ${GOT} 370 371missing-req-4: 372 # Test for missing Requires.private with --exists 373 @echo "Package nonexisting was not found in the pkg-config search path" > ${WANT} 374 @if ${VPCONFIG} --exists missing-req2 ; then false; fi 375 @diff -u ${WANT} ${GOT} 376 377whitespace-cflags: 378 # Test whitespace on various positions in Cflags 379 @echo "-I/tmp/include -I/tmp/include/include\ dir" > ${WANT} 380 @${VPCONFIG} --cflags whitespace 381 @diff -u ${WANT} ${GOT} 382 383whitespace-libs: 384 # Test whitespace on various positions in Libs 385 @echo "-L/tmp/lib -L/tmp/lib/foo -lbaz\ quux" > ${WANT} 386 @${VPCONFIG} --libs whitespace 387 @diff -u ${WANT} ${GOT} 388 389whitespace-linebreak: 390 # Test linebreak in Description field 391 @echo " -lc" > ${WANT} 392 @${VPCONFIG} --libs linebreak 393 @diff -u ${WANT} ${GOT} 394 395whitespace-name: 396 # Test whitespace in Name 397 @echo "Requested 'whitespace > 0.2.0' but version of Whitespace test is 0.0.0" > ${WANT} 398 @if ${VPCONFIG} "whitespace > 0.2.0"; then false; fi 399 @diff -u ${WANT} ${GOT} 400 401broken-require-1: 402 # Test expanded variables with special parsing requirements 403 @${PCONFIG} requires-test3 404 405broken-require-2: 406 # Test expanded variables with special parsing requirements 407 @${PCONFIG} requires-test4 408 409min-version-1: 410 # Test --atleast-version (matches) 411 @${PCONFIG} --atleast-version=0.0.9 vers1 412 413min-version-2: 414 # Test --atleast-version (doesn't match) 415 @if ${PCONFIG} --atleast-version=0.1.1 vers1 ; then false; fi 416 417exact-version-1: 418 # Test --exact-version (matches) 419 @${PCONFIG} --exact-version=0.1.0 vers1 420 421exact-version-2: 422 # Test --exact-version (doesn't match) 423 @if ${PCONFIG} --exact-version=0.1.1 vers1 ; then false; fi 424 425max-version-1: 426 # Test --max-version (matches) 427 @${PCONFIG} --max-version=0.1.0 vers1 428 429max-version-2: 430 # Test --max-version (doesn't match) 431 @if ${PCONFIG} --max-version=0.0.9 vers1 ; then false; fi 432 433clean: 434 rm -f *.want *.got 435 436.PHONY: ${REGRESS_TARGETS} 437 438.include <bsd.regress.mk> 439