xref: /openbsd/regress/usr.bin/pkg-config/Makefile (revision d3804626)
1#	$OpenBSD: Makefile,v 1.65 2023/07/03 17:55:51 anton 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-vers2-5 \
11		cmp-vers2-6 \
12		cmp-vers2-7 \
13		cmp-vers2-8 \
14		cmp-vers2-9 \
15		cmp-vers2-10 \
16		cmp-vers2-11 \
17		cmp-vers2-12 \
18		cmp-vers3 \
19		cmp-vers4-1 \
20		cmp-vers4-2 \
21		cmp-vers4-3 \
22		cmp-vers4-4 \
23		cmp-vers4-5 \
24		cmp-vers4-6 \
25		cmp-vers4-7 \
26		cmp-vers4-8 \
27		cmp-vers4-9 \
28		cmp-vers5-1 \
29		cmp-vers5-2 \
30		cmp-vers5-3 \
31		cmp-vers5-4 \
32		cmp-vers5-5 \
33		cmp-vers5-6 \
34		cmp-vers5-7 \
35		cmp-vers6-1 \
36		cmp-vers6-2 \
37		cmp-vers7-1 \
38		cmp-vers7-2 \
39		cmp-vers7-3 \
40		cmp-vers7-4 \
41		cmp-vers8-1 \
42		corrupt1 \
43		corrupt2 \
44		corrupt3 \
45		print-provides \
46		print-req \
47		print-req-priv \
48		logfile \
49		sysroot-cflags \
50		sysroot-libs \
51		static-cflags1 \
52		static-cflags2 \
53		static-libs1 \
54		static-libs2 \
55		static-libs3 \
56		static-libs4 \
57		static-order \
58		missing-req-1 \
59		missing-req-2 \
60		missing-req-3 \
61		missing-req-4 \
62		whitespace-cflags \
63		whitespace-libs \
64		whitespace-linebreak \
65		whitespace-requires-1 \
66		whitespace-requires-2 \
67		whitespace-name \
68		whitespace-property-1 \
69		whitespace-property-2 \
70		whitespace-property-3 \
71		quoting \
72		broken-require-1 \
73		broken-require-2 \
74		min-version-1 \
75		min-version-2 \
76		exact-version-1 \
77		exact-version-2 \
78		max-version-1 \
79		max-version-2 \
80		find-config-1 \
81		find-config-2 \
82		find-config-3 \
83		find-config-4 \
84		find-config-5 \
85		validate-1 \
86		validate-2 \
87		validate-3 \
88		variable-get-1 \
89		variable-set \
90		variables-1 \
91		variables-2 \
92		variables-3 \
93		variables-4 \
94		variables-5 \
95		variables-6 \
96		variables-7 \
97		filter-system-dirs-1 \
98		filter-system-dirs-2 \
99		filter-system-dirs-3 \
100		filter-system-dirs-4 \
101		filter-system-dirs-5 \
102		filter-system-dirs-6 \
103		cflags-system-path-1 \
104		cflags-system-path-2 \
105		lib-flags-1 \
106		lib-flags-2 \
107		lib-flags-3 \
108		lib-flags-4 \
109		private-cflags-1 \
110		private-libs-1 \
111		private-cflags-libs-1 \
112		private-static-libs-1
113
114PKG_CONFIG?=	/usr/bin/pkg-config
115PCONFIG =	PKG_CONFIG_PATH=${.CURDIR}/pcdir/ ${PKG_CONFIG}
116VPCONFIG =	${PCONFIG} --errors-to-stdout --print-errors > ${GOT}
117WANT=		${.OBJDIR}/$@.want
118GOT=		${.OBJDIR}/$@.got
119
120# Tests for corrupt pkg-config files.
121corrupt1:
122	# Test for missing variables/fields
123	@echo "Package '$@' has no Version: field" > ${WANT}
124	@! ${VPCONFIG} --exists $@
125	@diff -u ${WANT} ${GOT}
126
127corrupt2:
128	# Test for missing variables/fields
129	@echo "Package '$@' has no Name: field" > ${WANT}
130	@! ${VPCONFIG} --exists $@
131	@diff -u ${WANT} ${GOT}
132
133corrupt3:
134	# Test for empty file
135	@echo "Package file '${.CURDIR}/pcdir//$@.pc' appears to be empty" > ${WANT}
136	@echo "Package '$@' has no Name: field" >> ${WANT}
137	@! ${VPCONFIG} --libs $@
138	@diff -u ${WANT} ${GOT}
139
140# Tests for various printing features
141print-provides:
142	# Test --print-provides
143	@echo "print-provides = 0.0.0" > ${WANT}
144	@${PCONFIG} --print-provides $@ > ${GOT}
145	@diff -u ${WANT} ${GOT}
146
147print-req:
148	# Test --print-requires
149	@echo "print-req2>=0.0.1" > ${WANT}
150	@${PCONFIG} --print-requires $@ > ${GOT}
151	@diff -u ${WANT} ${GOT}
152
153print-req-priv:
154	# Test --print-requires-private
155	@echo "print-req-priv2>=0.0.0" > ${WANT}
156	@${PCONFIG} --print-requires-private $@ > ${GOT}
157	@diff -u ${WANT} ${GOT}
158
159# Tests for version comparison
160cmp-vers1-1:
161	# Test regular versions (a <= b)
162	@! ${PCONFIG} --exists "vers1 <= 0.0.2"
163
164cmp-vers1-2:
165	# Test regular versions (a <= b)
166	@${PCONFIG} --exists "vers1 <= 0.1.0"
167
168cmp-vers1-3:
169	# Test regular versions (a < b)
170	@${PCONFIG} --exists "vers1 < 0.2"
171
172cmp-vers2-1:
173	# Test regular versions (a >= b)
174	@${PCONFIG} --exists "vers2 >= 0.0.1"
175
176cmp-vers2-2:
177	# Test regular versions (a >= b)
178	@${PCONFIG} --exists "vers2 >= 0.0.0"
179
180cmp-vers2-3:
181	# Test regular versions (a >= b)
182	@${PCONFIG} --exists "vers2 >= 0.1.0"
183
184cmp-vers2-4:
185	# Test regular versions (a >= b)
186	@! ${PCONFIG} --exists "vers2 > 0.2.0.0"
187
188cmp-vers2-5:
189	# Test regular versions (a != b)
190	@${PCONFIG} --exists "vers2 != 0.1.0"
191
192cmp-vers2-6:
193	# Test regular versions (a != b)
194	@! ${PCONFIG} --exists "vers2 != 0.2.0"
195
196cmp-vers2-7:
197	# Test regular versions (a >= b a != c)
198	@${PCONFIG} --exists "vers2 >= 0.1.0 vers2 != 0.3.0"
199
200cmp-vers2-8:
201	# Test regular versions (a >= b a != c)
202	@${PCONFIG} --exists "vers2 >= 0.2.0 vers2 != 0.3.0"
203
204cmp-vers2-9:
205	# Test regular versions (a >= b a != c)
206	@! ${PCONFIG} --exists "vers2 >= 0.1.0 vers2 != 0.2.0"
207
208cmp-vers2-10:
209	# Test regular versions (a >= b a < c)
210	@! ${PCONFIG} --exists "vers2 >= 0.2.0 vers2 < 0.1.0"
211
212cmp-vers2-11:
213	# Test regular versions (a >= b a < c)
214	@! ${PCONFIG} --exists "vers2 >= 0.2.0 vers2 < 0.2.0"
215
216cmp-vers2-12:
217	# Test regular versions (a >= b a < c)
218	@${PCONFIG} --exists "vers2 >= 0.2.0 vers2 < 0.3.0"
219
220cmp-vers3:
221	# Test regular versions (a = b)
222	@${PCONFIG} --exists "vers2 = 0.2.0"
223
224cmp-vers4-1:
225	# Test suffixed versions (alpha >)
226	@touch ${WANT}
227	@${VPCONFIG} "alpha > 0.1.0"
228	@diff -u ${WANT} ${GOT}
229
230cmp-vers4-2:
231	# Test suffixed versions (alpha >)
232	@touch ${WANT}
233	@${VPCONFIG} "alpha > 0.1.0alpha1"
234	@diff -u ${WANT} ${GOT}
235
236cmp-vers4-3:
237	# Test suffixed versions (alpha >=)
238	@touch ${WANT}
239	@${VPCONFIG}  "alpha >= 0.1.0"
240	@diff -u ${WANT} ${GOT}
241
242cmp-vers4-4:
243	# Test suffixed versions (alpha >=)
244	@touch ${WANT}
245	@${VPCONFIG}  "alpha >= 0.1.0alpha2"
246	@diff -u ${WANT} ${GOT}
247
248cmp-vers4-5:
249	# Test suffixed versions (alpha <)
250	@touch ${WANT}
251	@${VPCONFIG} "alpha < 0.1.1"
252	@diff -u ${WANT} ${GOT}
253
254cmp-vers4-6:
255	# Test suffixed versions (alpha <)
256	@touch ${WANT}
257	@${VPCONFIG} "alpha < 0.1.0alpha3"
258	@diff -u ${WANT} ${GOT}
259
260cmp-vers4-7:
261	# Test suffixed versions (alpha <=)
262	@touch ${WANT}
263	@${VPCONFIG}  "alpha < 0.1.1"
264	@diff -u ${WANT} ${GOT}
265
266cmp-vers4-8:
267	# Test suffixed versions (alpha <=)
268	@touch ${WANT}
269	@${VPCONFIG} "alpha <= 0.1.0alpha2"
270	@diff -u ${WANT} ${GOT}
271
272cmp-vers4-9:
273	# Test suffixed versions (alpha =)
274	@touch ${WANT}
275	@${VPCONFIG} "alpha = 0.1.0alpha2"
276	@diff -u ${WANT} ${GOT}
277
278cmp-vers5-1:
279	# Test suffixed versions (beta > alpha)
280	@touch ${WANT}
281	@${VPCONFIG} "beta > 0.1.0alpha1"
282	@diff -u ${WANT} ${GOT}
283
284cmp-vers5-2:
285	# Test suffixed versions (beta >= alpha)
286	@touch ${WANT}
287	@${VPCONFIG} "beta >= 0.1.0beta1"
288	@diff -u ${WANT} ${GOT}
289
290cmp-vers5-3:
291	# Test suffixed versions (alpha < rc)
292	@touch ${WANT}
293	@${VPCONFIG}  "alpha < 0.1.0rc2"
294	@diff -u ${WANT} ${GOT}
295
296cmp-vers5-4:
297	# Test suffixed versions (beta < rc)
298	@touch ${WANT}
299	@${VPCONFIG} "beta < 0.1.0rc2"
300	@diff -u ${WANT} ${GOT}
301
302cmp-vers5-5:
303	# Test suffixed versions (alpha < beta)
304	@touch ${WANT}
305	@${VPCONFIG}  "alpha < 0.1.0beta2"
306	@diff -u ${WANT} ${GOT}
307
308cmp-vers5-6:
309	# Test suffixed versions (rc > alpha)
310	@touch ${WANT}
311	@${VPCONFIG} "rc > 0.1.0alpha2"
312	@diff -u ${WANT} ${GOT}
313
314cmp-vers5-7:
315	# Test suffixed versions (rc > beta)
316	@touch ${WANT}
317	@${VPCONFIG} "rc > 0.1.0beta2"
318	@diff -u ${WANT} ${GOT}
319
320cmp-vers5-8:
321	# Test suffixed versions (' ' > alpha)
322	@touch ${WANT}
323	@${VPCONFIG} "vers1 > 0.1.0alpha2"
324	@diff -u ${WANT} ${GOT}
325
326cmp-vers5-9:
327	# Test suffixed versions (' ' > beta)
328	@touch ${WANT}
329	@${VPCONFIG} "beta <= 0.1.0beta2"
330	@diff -u ${WANT} ${GOT}
331
332cmp-vers5-10:
333	# Test suffixed versions (' ' > rc)
334	@touch ${WANT}
335	@${VPCONFIG} "beta <= 0.1.0rc2"
336	@diff -u ${WANT} ${GOT}
337
338cmp-vers6-1:
339	# Test suffixed versions in Requires
340	@echo "-lalpha2" > ${WANT}
341	@${VPCONFIG} --libs requires-test2
342	@diff -u ${WANT} ${GOT}
343
344cmp-vers6-2:
345	# Test suffixed versions in Requires.private
346	@echo "Requested 'alpha >= 0.1.0alpha3' but version of alpha suffix test is 0.1.0alpha2" > ${WANT}
347	@! ${VPCONFIG} --libs --static requires-test2
348	@diff -u ${WANT} ${GOT}
349
350cmp-vers7-1:
351	# Test suffixed version (vers3 > 1.0.1g)
352	@touch ${WANT}
353	@${VPCONFIG} "vers3 > 1.0.1g"
354	@diff -u ${WANT} ${GOT}
355
356cmp-vers7-2:
357	# Test suffixed version (vers3 < 1.0.1i)
358	@touch ${WANT}
359	@${VPCONFIG} "vers3 < 1.0.1i"
360	@diff -u ${WANT} ${GOT}
361
362cmp-vers7-3:
363	# Test suffixed version (vers3 < 1.0.1i)
364	@touch ${WANT}
365	@${VPCONFIG} "vers3 < 1.0.1i"
366	@diff -u ${WANT} ${GOT}
367
368cmp-vers7-4:
369	# Test suffixed version (vers3 > 1.0.1)
370	@touch ${WANT}
371	@${VPCONFIG} "vers3 > 1.0.1"
372	@diff -u ${WANT} ${GOT}
373
374cmp-vers8-1:
375	# Test Version: x.y.z-stable w/compare()
376	@touch ${WANT}
377	@${VPCONFIG} --atleast-version=2.0.1 vers4
378	@diff -u ${WANT} ${GOT}
379
380# Tests for various environment variables
381builddir:
382	# Test PKG_CONFIG_TOP_BUILD_DIR
383
384logfile:
385	# Test PKG_CONFIG_LOG
386	@echo "[${PKG_CONFIG}] [--exists] [sysroot >= 0.0.0]" > ${WANT}
387	@rm -f ${GOT}
388	@PKG_CONFIG_LOG=${GOT} ${PCONFIG} --exists "sysroot >= 0.0.0"
389	@diff -u ${WANT} ${GOT}
390
391sysroot-cflags:
392	# Test PKG_CONFIG_SYSROOT_DIR (cflags)
393	@echo "-I/altroot/tmp/include -I/altroot/tmp/include/foo" > ${WANT}
394	@PKG_CONFIG_SYSROOT_DIR=/altroot ${PCONFIG} --cflags sysroot > ${GOT}
395	@diff -u ${WANT} ${GOT}
396
397sysroot-libs:
398	# Test PKG_CONFIG_SYSROOT_DIR (libs)
399	@echo "-L/altroot/tmp/lib -L/altroot/tmp/lib/foo -lc" > ${WANT}
400	@PKG_CONFIG_SYSROOT_DIR=/altroot ${PCONFIG} --libs sysroot > ${GOT}
401	@diff -u ${WANT} ${GOT}
402
403# Tests for static linking
404static-cflags1:
405	# Test grabbing Cflags (without Requires.private)
406	@echo "-I/usr/local/include/foo" > ${WANT}
407	@${VPCONFIG} --cflags --static static
408	@diff -u ${WANT} ${GOT}
409
410static-cflags2:
411	# Test grabbing Cflags (with Requires.private)
412	@echo "-I/usr/local/include -I/usr/local/include/foo" > ${WANT}
413	@${VPCONFIG} --cflags --static static2
414	@diff -u ${WANT} ${GOT}
415
416static-libs1:
417	# Test grabbing Libs.private from this package
418	@echo "-L/usr/local/lib -lc -lm -ll" > ${WANT}
419	@${VPCONFIG} --libs --static static
420	@diff -u ${WANT} ${GOT}
421
422static-libs2:
423	# Test grabbing Libs.private from Requires in order
424	@echo "-L/usr/local/lib -lutil -lz -lc -lm -ll" > ${WANT}
425	@${VPCONFIG} --libs --static static2
426	@diff -u ${WANT} ${GOT}
427
428static-libs3:
429	# Test grabbing Libs.private from Requires.private in order
430	@echo "-L/usr/local/lib -L/tmp/lib -L/tmp/lib/foo -lutil -lz -lc -lm -ll -lbaz\ quux" > ${WANT}
431	@${VPCONFIG} --libs --static static3
432	@diff -u ${WANT} ${GOT}
433
434static-libs4:
435	# Test Requires.private
436	@echo "-L/requires-test/lib -L/private-dep/lib -L/public-dep/lib -lrequires-test -lprivate-dep -lpublic-dep" > ${WANT}
437	@${VPCONFIG} --libs --static requires-test
438	@diff -u ${WANT} ${GOT}
439
440static-order:
441	# Test Requires.private order
442	@echo "-L/usr/X11R6/lib -lstatic-order1 -lstatic-order2 -lstatic-order3" > ${WANT}
443	@${VPCONFIG} --static --libs static-order1
444	@diff -u ${WANT} ${GOT}
445
446missing-req-1:
447	# Test for missing packages in Requires (libs)
448	@echo "Package nonexisting was not found in the pkg-config search path" > ${WANT}
449	@! ${VPCONFIG} --libs missing-req
450	@diff -u ${WANT} ${GOT}
451
452missing-req-2:
453	# Test for missing packages in Requires (cflags)
454	@echo "Package nonexisting2 was not found in the pkg-config search path" > ${WANT}
455	@echo "Package nonexisting was not found in the pkg-config search path" >> ${WANT}
456	@! ${VPCONFIG} --cflags missing-req
457	@diff -u ${WANT} ${GOT}
458
459missing-req-3:
460	# Test for missing packages in Requires (version)
461	@echo "0.0.0" > ${WANT}
462	@${VPCONFIG} --modversion missing-req
463	@diff -u ${WANT} ${GOT}
464
465missing-req-4:
466	# Test for missing Requires.private with --exists
467	@echo "Package nonexisting was not found in the pkg-config search path" > ${WANT}
468	@! ${VPCONFIG} --exists missing-req2
469	@diff -u ${WANT} ${GOT}
470
471whitespace-cflags:
472	# Test whitespace on various positions in Cflags
473	@echo "-I/tmp/include -I/tmp/include/include\ dir" > ${WANT}
474	@${VPCONFIG} --cflags whitespace
475	@diff -u ${WANT} ${GOT}
476
477whitespace-libs:
478	# Test whitespace on various positions in Libs
479	@echo "-L/tmp/lib -L/tmp/lib/foo -lbaz\ quux" > ${WANT}
480	@${VPCONFIG} --libs whitespace
481	@diff -u ${WANT} ${GOT}
482
483whitespace-linebreak:
484	# Test linebreak in Description field
485	@echo "-lc" > ${WANT}
486	@${VPCONFIG} --libs linebreak
487	@diff -u ${WANT} ${GOT}
488
489whitespace-requires-1:
490	# Test whitespace in version comparison
491	@${VPCONFIG} --exists $@
492
493whitespace-requires-2:
494	# Test whitespace in version comparison
495	@${VPCONFIG} --exists $@
496
497whitespace-name:
498	# Test whitespace in Name
499	@echo "Requested 'whitespace > 0.2.0' but version of Whitespace test is 0.0.0" > ${WANT}
500	@! ${VPCONFIG} "whitespace > 0.2.0"
501	@diff -u ${WANT} ${GOT}
502
503whitespace-property-1:
504	# Test lack of whitespace after property name
505	@echo "-I/usr/local/include" > ${WANT}
506	@${VPCONFIG} --cflags whitespace-prop-1
507	@diff -u ${WANT} ${GOT}
508
509whitespace-property-2:
510	# Test whitespace after property value
511	@echo "0.0.0" > ${WANT}
512	@${VPCONFIG} --modversion whitespace-prop-2
513	@diff -u ${WANT} ${GOT}
514
515whitespace-property-3:
516	# Test whitespace before property value
517	@echo "0.0.0" > ${WANT}
518	@${VPCONFIG} --modversion whitespace-prop-3
519	@diff -u ${WANT} ${GOT}
520
521quoting:
522	# Test for stripping out quotes from variables
523	@echo "-I/usr/X11R6/include/freetype2" > ${WANT}
524	@${VPCONFIG} --cflags quotes
525	@diff -u ${WANT} ${GOT}
526
527broken-require-1:
528	# Test expanded variables with special parsing requirements
529	@${PCONFIG} requires-test3
530
531broken-require-2:
532	# Test expanded variables with special parsing requirements
533	@${PCONFIG} requires-test4
534
535min-version-1:
536	# Test --atleast-version (matches)
537	@${PCONFIG} --atleast-version=0.0.9 vers1
538
539min-version-2:
540	# Test --atleast-version (doesn't match)
541	@! ${PCONFIG} --atleast-version=0.1.1 vers1
542
543exact-version-1:
544	# Test --exact-version (matches)
545	@${PCONFIG} --exact-version=0.1.0 vers1
546
547exact-version-2:
548	# Test --exact-version (doesn't match)
549	@! ${PCONFIG} --exact-version=0.1.1 vers1
550
551max-version-1:
552	# Test --max-version (matches)
553	@${PCONFIG} --max-version=0.1.0 vers1
554
555max-version-2:
556	# Test --max-version (doesn't match)
557	@! ${PCONFIG} --max-version=0.0.9 vers1
558
559find-config-1:
560	# Test a regular module name being resolved
561	@echo "1.0.0" > ${WANT}
562	@${VPCONFIG} --modversion public-dep
563	@diff -u ${WANT} ${GOT}
564
565# Need to use ${PKG_CONFIG} instead of ${VPCONFIG} as the latter sets PKG_CONFIG_PATH,
566# which is exactly what we don't want for this test.
567find-config-2:
568	# Test a full path to a .pc file
569	@echo "1.0.0" > ${WANT}
570	@${PKG_CONFIG} --errors-to-stdout --print-errors --modversion \
571		${.CURDIR}/pcdir/public-dep.pc > ${GOT}
572	@diff -u ${WANT} ${GOT}
573
574find-config-3:
575	# Simple existential test
576	@${VPCONFIG} --exists vers1
577
578find-config-4:
579	# Multiple existential tests combined (with comma)
580	@${VPCONFIG} --exists vers1,vers2
581
582find-config-5:
583	# Multiple existential tests combined (with space)
584	@${VPCONFIG} --exists vers1 vers2
585
586validate-1:
587	# Ensure it doesn't process dependencies
588	@${VPCONFIG} --validate missing-req
589
590validate-2:
591	# Test for empty files
592	@echo "Package file '${.CURDIR}/pcdir//corrupt3.pc' appears to be empty" > ${WANT}
593	@echo "Package 'corrupt3' has no Name: field" >> ${WANT}
594	@! ${VPCONFIG} --validate corrupt3
595	@diff -u ${WANT} ${GOT}
596
597validate-3:
598	# Test for missing fields
599	@echo "Package 'corrupt2' has no Name: field" > ${WANT}
600	@! ${VPCONFIG} --validate corrupt2
601	@diff -u ${WANT} ${GOT}
602
603variable-get-1:
604	# Test --variable
605	@echo "/tmp" > ${WANT}
606	@${VPCONFIG} --variable prefix sysroot
607	@diff -u ${WANT} ${GOT}
608
609variable-set:
610	# Test --define-variable
611	@echo "-I/usr/local2/include -I/usr/local2/include/foo" > ${WANT}
612	@${VPCONFIG} --define-variable=prefix=/usr/local2 \
613		--cflags sysroot
614	@diff -u ${WANT} ${GOT}
615
616variables-1:
617	# Test --variable without any options
618	@echo "/usr/local/lib/pkgconfig-plugins.0" > ${WANT}
619	@${VPCONFIG} --variable=plugindir variables
620	@diff -u ${WANT} ${GOT}
621
622variables-2:
623	# Test --variable + --define-variable
624	@echo "/chroot/lib/pkgconfig-plugins.0" > ${WANT}
625	@${VPCONFIG} --define-variable=libdir='/chroot/lib' --variable=plugindir variables
626	@diff -u ${WANT} ${GOT}
627
628variables-3:
629	# Test --variable + --define-variable
630	@echo '$${foodir}/pkgconfig-plugins.0' > ${WANT}
631	@${VPCONFIG} --define-variable=libdir='$${foodir}' --variable=plugindir variables
632	@diff -u ${WANT} ${GOT}
633
634variables-4:
635	# Test --variable + --define-variable
636	@echo '$${libdir}/pkgconfig-plugins.0' > ${WANT}
637	@${VPCONFIG} --define-variable=libdir='$${libdir}' --variable=plugindir variables
638	@diff -u ${WANT} ${GOT}
639
640variables-5:
641	# Test --variable
642	@echo '-lfoo-1' > ${WANT}
643	@${VPCONFIG} --libs variables
644	@diff -u ${WANT} ${GOT}
645
646variables-6:
647	# Test variable overriding from environment
648	@echo '-lfoo-2' > ${WANT}
649	@PKG_CONFIG_VARIABLES_FOO_API_VERSION=2 ${VPCONFIG} --libs variables
650	@diff -u ${WANT} ${GOT}
651
652variables-7:
653	# Ensure variable overriding only uses uppercase keys
654	@echo '-lfoo-1' > ${WANT}
655	@PKG_CONFIG_variables_foo_api_version=2 ${VPCONFIG} --libs variables
656	@diff -u ${WANT} ${GOT}
657
658filter-system-dirs-1:
659	# Test removing -I/usr/include as a system directory
660	@echo '-DFILTER' > ${WANT}
661	@${VPCONFIG} --cflags filter
662	@diff -u ${WANT} ${GOT}
663
664filter-system-dirs-2:
665	# Test removing -L/usr/lib as a system directory
666	@echo '-lfilter' > ${WANT}
667	@${VPCONFIG} --libs filter
668	@diff -u ${WANT} ${GOT}
669
670filter-system-dirs-3:
671	# Test removing -L/usr/lib as a system directory (static)
672	@echo '-lfilter -lprivate-filter' > ${WANT}
673	@${VPCONFIG} --static --libs filter
674	@diff -u ${WANT} ${GOT}
675
676filter-system-dirs-4:
677	# Test not removing -I/usr/include/filter as a system directory
678	@echo '-I/usr/include/filter -DFILTER' > ${WANT}
679	@${VPCONFIG} --cflags filter2
680	@diff -u ${WANT} ${GOT}
681
682filter-system-dirs-5:
683	# Test not removing -L/usr/lib/filter as a system directory
684	@echo '-L/usr/lib/filter -lfilter' > ${WANT}
685	@${VPCONFIG} --libs filter2
686	@diff -u ${WANT} ${GOT}
687
688filter-system-dirs-6:
689	# Test not removing -L/usr/lib/filter as a system directory (static)
690	@echo '-L/usr/lib/filter -lfilter -lprivate-filter' > ${WANT}
691	@${VPCONFIG} --static --libs filter2
692	@diff -u ${WANT} ${GOT}
693
694cflags-system-path-1:
695	# Test that the default /usr/include path is stripped
696	@echo "" > ${WANT}
697	@${VPCONFIG} --cflags cflags-1
698	@diff -u ${WANT} ${GOT}
699
700cflags-system-path-2:
701	# Test that the paths in PKG_CONFIG_SYSTEM_INCLUDE_PATH are stripped
702	@echo "-I/usr/local/include" > ${WANT}
703	@PKG_CONFIG_SYSTEM_INCLUDE_PATH=/usr/X11R6/include:/usr/private/include ${VPCONFIG} --cflags cflags-2
704	@diff -u ${WANT} ${GOT}
705
706lib-flags-1:
707	# Test --libs-only-other
708	@echo "-pthread" > ${WANT}
709	@${VPCONFIG} --libs-only-other lib-flags
710	@diff -u ${WANT} ${GOT}
711
712lib-flags-2:
713	# Test --libs
714	@echo "-L/usr/local/lib -pthread -lalpha2" > ${WANT}
715	@${VPCONFIG} --libs lib-flags
716	@diff -u ${WANT} ${GOT}
717
718lib-flags-3:
719	# Test --libs-only-L
720	@echo "-L/usr/local/lib" > ${WANT}
721	@${VPCONFIG} --libs-only-L lib-flags
722	@diff -u ${WANT} ${GOT}
723
724lib-flags-4:
725	# Test --libs-only-l
726	@echo "-lalpha2" > ${WANT}
727	@${VPCONFIG} --libs-only-l lib-flags
728	@diff -u ${WANT} ${GOT}
729
730private-cflags-1:
731	# Test --cflags printing Requires
732	@echo "-I/requires-test/include -I/private-dep/include -I/public-dep/include" > ${WANT}
733	@${VPCONFIG} --cflags requires-test
734	@diff -u ${WANT} ${GOT}
735
736private-libs-1:
737	# Test --libs printing Requires
738	@echo "-L/requires-test/lib -L/public-dep/lib -lrequires-test -lpublic-dep" > ${WANT}
739	@${VPCONFIG} --libs requires-test
740	@diff -u ${WANT} ${GOT}
741
742REGRESS_EXPECTED_FAILURES+=private-cflags-libs-1
743private-cflags-libs-1:
744	# Test --cflags --libs printing Requires and not also Requires.private libs
745	@echo "-I/requires-test/include -I/private-dep/include -I/public-dep/include -L/requires-test/lib -L/public-dep/lib -lrequires-test -lpublic-dep" > ${WANT}
746	@${VPCONFIG} --cflags --libs requires-test
747	@diff -u ${WANT} ${GOT}
748
749private-static-libs-1:
750	# Test --static --libs printing Requires.private
751	@echo "-L/requires-test/lib -L/private-dep/lib -L/public-dep/lib -lrequires-test -lprivate-dep -lpublic-dep" > ${WANT}
752	@${VPCONFIG} --static --libs requires-test
753	@diff -u ${WANT} ${GOT}
754
755clean:
756	rm -f *.want *.got
757
758.PHONY: ${REGRESS_TARGETS}
759
760.include <bsd.regress.mk>
761