#!SHELL CALL
LOCAL CONFIG HAD_SOMETHING
LOCAL WANT_LIBS LIBS_TYPE WANT_CFLAGS CFLAGS_TYPE WANT_VERSION WANT_VARIABLE
LOCAL ATLEAST_VERSION EXACT_VERSION MAX_VERSION
LOCAL PRINT_ERRORS ERRORS_TO_STDOUT
LOCAL ALL_LIBS ALL_CFLAGS ALL_VERSIONS ALL_VARIABLES
LOCAL LIBS CFLAGS VARIABLE
LOCAL NAME NAME2 VERSION
LET ALL_LIBS=""
LET ALL_CFLAGS=""
LET ALL_VERSIONS=""
LET ALL_VARIABLES=""
LET WANT_LIBS=0
LET WANT_CFLAGS=0
LET WANT_VERSION=0
LET WANT_VARIABLE=""
LET ATLEAST_VERSION=""
LET EXACT_VERSION=""
LET MAX_VERSION=""
LET PRINT_ERRORS=0
LET ERRORS_TO_STDOUT=0
LET LIBS_TYPE="ALL"
LET CFLAGS_TYPE="ALL"
LET CONFIG=0
IF %1="--config" THEN LET CONFIG=1; SHIFT
5
IF %1="--libs" THEN LET WANT_LIBS=1; GO TO 10
IF %1="--version" AND CONFIG THEN LET WANT_VERSION=1; GO TO 10
IF %1="--modversion" THEN LET WANT_VERSION=1; GO TO 10
IF %1="--libs-only-other" THEN LET LIBS_TYPE="OTHER"; GO TO 10
IF %1="--only-l" THEN LET LIBS_TYPE="l"; GO TO 10
IF %1="--only-L" THEN LET LIBS_TYPE="L"; GO TO 10
IF %1="--libs-only-l" THEN LET WANT_LIBS=1; LET LIBS_TYPE="l"; GO TO 10
IF %1="--libs-only-L" THEN LET WANT_LIBS=1; LET LIBS_TYPE="L"; GO TO 10
IF %1="--cflags" THEN LET WANT_CFLAGS=1; GO TO 10
IF %1="--cflags-only-I" THEN LET CFLAGS_TYPE="I"; GO TO 10
IF %1="--cflags-only-other" THEN LET CFLAGS_TYPE="OTHER"; GO TO 10
IF %1="--variable" THEN LET WANT_VARIABLE=%2; SHIFT; GO TO 10
IF %1(1 TO 11)="--variable=" THEN LET WANT_VARIABLE=%1(12 TO ); GO TO 10
IF %1="--atleast-pkgconfig-version" THEN EXIT 0
IF %1(1 TO 28)="--atleast-pkgconfig-version=" THEN EXIT 0
IF %1="--atleast-version" THEN LET ATLEAST_VERSION=%2; SHIFT; GO TO 10
IF %1(1 TO 18)="--atleast-version=" THEN LET ATLEAST_VERSION=%1(19 TO ); GO TO 10
IF %1="--exact-version" THEN LET EXACT_VERSION=%2; SHIFT; GO TO 10
IF %1(1 TO 16)="--exact-version=" THEN LET EXACT_VERSION=%1(17 TO ); GO TO 10
IF %1="--max-version" THEN LET MAX_VERSION=%2; SHIFT; GO TO 10
IF %1(1 TO 14)="--max-version=" THEN LET MAX_VERSION=%1(15 TO ); GO TO 10
IF %1="--print-errors" THEN LET PRINT_ERRORS=1; GO TO 10
IF %1="--errors-to-stdout" THEN LET ERRORS_TO_STDOUT=1; GO TO 10
IF %1="--short-errors" THEN LET PRINT_ERRORS=1; GO TO 10
IF %1="--exists" THEN GO TO 10
IF %1="--uninstalled" THEN EXIT 1
IF %1(1)="-" THEN PRINT %1,": UNKNOWN OPTION"; EXIT 1

6
LET HAD_SOMETHING=0
LET NAME=RESUBST(%1, " .*", "")
SHIFT /CHARS %(LEN(NAME) + 1)
IF %1="" THEN SHIFT

IF REMATCH(NAME, "^[<>=!]+$") OR REMATCH(NAME, "^[0-9\.]+$") THEN GO TO 6

7
LET NAME2=NAME
IF LEN(NAME2)>3 AND NAME2(1 TO 3)=~"LIB" THEN LET NAME2=NAME2(4 TO)

LET CFLAGS=""
LET LIBS=""
LET VERSION=""
LET VARIABLE=""
IF EXISTR("LIB.:/"++NAME++".LIB") THEN CALL 'LIB.:/%NAME.LIB'; LET HAD_SOMETHING=1; GO TO 72
IF EXISTD("INCLUDE.:/"++NAME2) THEN LET CFLAGS="-IINCLUDE.:/"++NAME2; LET HAD_SOMETHING=1; GO TO 71
IF EXISTD("INCLUDE.:/"++NAME) THEN LET CFLAGS="-IINCLUDE.:/"++NAME; LET HAD_SOMETHING=1
71
IF EXISTR("LIB.:/LIB"++NAME2++".A") OR EXISTR("LIB.:/"++NAME2++".A") OR EXISTR("LIB.:/"++NAME2++".INT") THEN LET LIBS="-l"++NAME2; LET HAD_SOMETHING=1; GO TO 72
IF EXISTR("LIB.:/LIB"++NAME++".A") OR EXISTR("LIB.:/"++NAME++".A") OR EXISTR("LIB.:/"++NAME++".INT") THEN LET LIBS="-l"++NAME; LET HAD_SOMETHING=1
72
IF ALL_CFLAGS<>"" AND CFLAGS<>"" THEN LET ALL_CFLAGS=ALL_CFLAGS++" "
LET ALL_CFLAGS=ALL_CFLAGS++CFLAGS
IF ALL_LIBS<>"" AND LIBS<>"" THEN LET ALL_LIBS=ALL_LIBS++" "
LET ALL_LIBS=ALL_LIBS++LIBS
IF ALL_VERSIONS<>"" AND VERSION<>"" THEN LET ALL_VERSIONS=ALL_VERSIONS++CHR$ 10
LET ALL_VERSIONS=ALL_VERSIONS++VERSION
IF ALL_VARIABLES<>"" AND VARIABLE<>"" THEN LET ALL_VARIABLES=ALL_VARIABLES++" "
LET ALL_VARIABLES=ALL_VARIABLES++VARIABLE

IF HAD_SOMETHING THEN GO TO 20
IF NOT(PRINT_ERRORS) THEN GO TO 8
IF ERRORS_TO_STDOUT THEN ECHO 'No package '"'"'%NAME'"'"' found'
IF NOT(ERRORS_TO_STDOUT) THEN ECHO 'No package '"'"'%NAME'"'"' found' /MAP:STDOUT=STDERR:
8
EXIT 1

10
SHIFT
20
IF %@<>"" THEN GO TO 5

IF WANT_VERSION THEN PRINT ALL_VERSIONS
IF WANT_LIBS AND (LIBS_TYPE="ALL" OR LIBS_TYPE="l") THEN PRINT ALL_LIBS
IF WANT_CFLAGS AND (CFLAGS_TYPE="ALL" OR CFLAGS_TYPE="I") THEN PRINT ALL_CFLAGS
IF WANT_VARIABLE<>"" THEN PRINT ALL_VARIABLES
EXIT 0
