diff options
Diffstat (limited to 'src/scripts')
-rwxr-xr-x | src/scripts/Configure-Makefile | 47 | ||||
-rwxr-xr-x | src/scripts/Configure-config.h | 3 | ||||
-rwxr-xr-x | src/scripts/MakeLinks | 2 | ||||
-rwxr-xr-x | src/scripts/lookups-Makefile | 15 |
4 files changed, 62 insertions, 5 deletions
diff --git a/src/scripts/Configure-Makefile b/src/scripts/Configure-Makefile index 8a4362a74..24ba10823 100755 --- a/src/scripts/Configure-Makefile +++ b/src/scripts/Configure-Makefile @@ -111,6 +111,52 @@ do if test -r ../$f fi done >> $mft || exit 1 +# handle pkg-config +# beware portability of extended regexps with sed. + +egrep "^[$st]*(AUTH|LOOKUP)_[A-Z0-9_]*[$st]*=[$st]*" $mft | \ + sed "s/[$st]*=/='/" | \ + sed "s/\$/'/" > $mftt +if test -s $mftt +then + ( + echo "# pkg-config fixups" + . ./$mftt + for var in `cut -d = -f 1 < $mftt`; do + case $var in + *_PC) + eval "pc_value=\"\$$var\"" + base=`echo $var | sed 's/_PC$//'` + eval "basevalue=\"\$$base\"" + if [ ".$basevalue" = "." ]; then + # not pulling in this module, _PC defined as default? Ignore + true + elif [ $basevalue = 2 ]; then + # module; handled in scripts/lookups-Makefile + true + else + # main binary + cflags=`pkg-config --cflags $pc_value` + libs=`pkg-config --libs $pc_value` + if [ "$var" != "${var#LOOKUP_}" ]; then + echo "LOOKUP_INCLUDE += $cflags" + echo "LOOKUP_LIBS += $libs" + elif [ "$var" != "${var#AUTH_}" ]; then + echo "CFLAGS += $cflags" + echo "AUTH_LIBS += $libs" + else + echo >&2 "Don't know how to handle pkg-config for $var" + fi + fi + ;; + esac + done + echo "# End of pkg-config fixups" + echo + ) >> $mft +fi +rm -f $mftt + # make the lookups Makefile with the definitions ## prepend stuff here; eg: grep LOOKUP_ $mft > $look_mft @@ -184,4 +230,5 @@ else echo " " exit 1; fi +# vim: set ft=sh : # End of Configure-Makefile diff --git a/src/scripts/Configure-config.h b/src/scripts/Configure-config.h index c23523995..75d366fca 100755 --- a/src/scripts/Configure-config.h +++ b/src/scripts/Configure-config.h @@ -34,7 +34,7 @@ $MAKE buildconfig || exit 1 st=' ' (sed -n \ - "/\\\$/d;s/#.*\$//;s/^[$st]*\\([A-Z][^:$st]*\\)[$st]*=[$st]*\\([^$st]*\\)[$st]*\$/\\1=\\2 export \\1/p" \ + "/\\\$/d;s/#.*\$//;s/^[$st]*\\([A-Z][^:!+$st]*\\)[$st]*=[$st]*\\([^$st]*\\)[$st]*\$/\\1=\\2 export \\1/p" \ < Makefile ; echo "./buildconfig") | /bin/sh # If buildconfig ends with an error code, it will have output an error @@ -56,4 +56,5 @@ fi echo ">>> config.h built" echo "" +# vim: set ft=sh : # End of Configure-config.h diff --git a/src/scripts/MakeLinks b/src/scripts/MakeLinks index f7d00030c..166a25f88 100755 --- a/src/scripts/MakeLinks +++ b/src/scripts/MakeLinks @@ -127,6 +127,8 @@ ln -s ../../src/auths/gsasl_exim.c gsasl_exim.c ln -s ../../src/auths/gsasl_exim.h gsasl_exim.h ln -s ../../src/auths/get_data.c get_data.c ln -s ../../src/auths/get_no64_data.c get_no64_data.c +ln -s ../../src/auths/heimdal_gssapi.c heimdal_gssapi.c +ln -s ../../src/auths/heimdal_gssapi.h heimdal_gssapi.h ln -s ../../src/auths/md5.c md5.c ln -s ../../src/auths/xtextencode.c xtextencode.c ln -s ../../src/auths/xtextdecode.c xtextdecode.c diff --git a/src/scripts/lookups-Makefile b/src/scripts/lookups-Makefile index cd0a51b34..14c15259e 100755 --- a/src/scripts/lookups-Makefile +++ b/src/scripts/lookups-Makefile @@ -84,7 +84,7 @@ OBJ="" emit_module_rule() { local lookup_name="$1" - local mod_name + local mod_name pkgconf if [ "${lookup_name%:*}" = "$lookup_name" ] then mod_name=$(echo $lookup_name | tr A-Z a-z) @@ -100,9 +100,16 @@ emit_module_rule() { exit 1 fi MODS="${MODS} ${mod_name}.so" - grep "^LOOKUP_${lookup_name}_" "$defs_source" - echo "LOOKUP_${mod_name}_INCLUDE = \$(LOOKUP_${lookup_name}_INCLUDE)" - echo "LOOKUP_${mod_name}_LIBS = \$(LOOKUP_${lookup_name}_LIBS)" + pkgconf=$(grep "^LOOKUP_${lookup_name}_PC" "$defs_source") + if [ $? -eq 0 ]; then + pkgconf=$(echo $pkgconf | sed 's/^.*= *//') + echo "LOOKUP_${mod_name}_INCLUDE = $(pkg-config --cflags $pkgconf)" + echo "LOOKUP_${mod_name}_LIBS = $(pkg-config --libs $pkgconf)" + else + grep "^LOOKUP_${lookup_name}_" "$defs_source" + echo "LOOKUP_${mod_name}_INCLUDE = \$(LOOKUP_${lookup_name}_INCLUDE)" + echo "LOOKUP_${mod_name}_LIBS = \$(LOOKUP_${lookup_name}_LIBS)" + fi elif want_at_all "$lookup_name" then OBJ="${OBJ} ${mod_name}.o" |