include "$(SRCROOT)/../Scripts/Kerberos5BuildSystem.jam" ; ErrorTableRegexp = "/^\\s*#define\\s+\\w+\(\\s+\\(-?\\d+L\\)\)|\(initialize_\\w+_error_table\\(\\)\)\\s*$/" ; ExtractErrorCodes = "perl -e 'while () { if ($(ErrorTableRegexp)) { print; } }'" ; Intermediates = "$(BUILT_PRODUCTS_DIR)/Kerberos5.intermediates" ; IntermediateErrorTables = "$(Intermediates)/ErrorTables" ; IntermediateIncludes = "$(Intermediates)/include" ; IntermediateV5Includes = "$(IntermediateIncludes)/krb5" ; IntermediateV4Includes = "$(IntermediateIncludes)/kerberosIV" ; IntermediateGSSIncludes = "$(IntermediateIncludes)/gssapi" ; IntermediateFrameworkHeaders = "$(Intermediates)/Kerberos" ; IntermediateBuild = "$(Intermediates)/build" ; MakeIncludeStamp = "$(IntermediateBuild)/makeInclude.stamp" ; AutoconfH = "$(IntermediateV5Includes)/autoconf.h" ; OsconfH = "$(IntermediateV5Includes)/osconf.h" ; # CatHeader
: rule CatHeader { NOTFILE "$(2[1])" ; DEPENDS "$(1)" : "$(2[3-])" "$(AutoconfH)" ; Clean.Remove clean : "$(1)" ; } actions CatHeader { mkdir -p "$(1:D)" echo "/*" > "$(1)" echo " * This file is auto generated." >> "$(1)" echo " * Please do not edit it." >> "$(1)" echo " */" >> "$(1)" echo "" >> "$(1)" echo "#ifndef $(2[1])" >> "$(1)" echo "#define $(2[1])" >> "$(1)" echo "" >> "$(1)" echo "/* Environment dependent macros */" >> "$(1)" if [ -n "$(2[2])" ]; then $(SED) -e 's:SIZEOF:$(2[2])SIZEOF:' "$(AutoconfH)" | grep SIZEOF >> "$(1)" echo "" >> "$(1)" fi for header in "$(2[4-])" ; do base=`basename "${header}"` echo "" >> "$(1)" echo "/* Error tables from ${base} */" >> "$(1)" cat "${header}" | $(ExtractErrorCodes) >> "$(1)" done echo "" >> "$(1)" cat "$(2[3])" >> "$(1)" echo "#endif /* $(2[1]) */" >> "$(1)" } rule MakeFrameworkHeader { DEPENDS "$(1)" : "$(2)" ; Clean.Remove clean : "$(1)" ; } actions MakeFrameworkHeader { mkdir -p "$(1:D)" $(SED) -e 's:::' \ -e 's:::' \ -e 's:::' \ -e 's:::' \ -e 's:::' \ -e 's:::' \ -e 's:::' \ -e 's:::' \ -e 's:::' \ "$(2)" > "$(1)" } rule CopyHeader { DEPENDS "$(1)" : "$(2)" ; Clean.Remove clean : "$(1)" ; } actions CopyHeader { mkdir -p "$(1:D)" cp -fRP "$(2)" "$(1)" } MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/com_err.h" : "$(SRCROOT)/../../KerberosErrors/Headers/Kerberos/com_err.h" ; CopyHeader "$(IntermediateIncludes)/com_err.h" : "$(SRCROOT)/../../KerberosErrors/Headers/Kerberos/com_err.h" ; CopyHeader "$(IntermediateV4Includes)/des.h" : "$(SRCROOT)/../../Kerberos5/Sources/include/kerberosIV/des.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/des.h" : "$(IntermediateV4Includes)/des.h" ; CopyHeader "$(IntermediateV4Includes)/krb.h" : "$(SRCROOT)/../../Kerberos5/Sources/include/kerberosIV/krb.h" ; CopyHeader "$(IntermediateV4Includes)/krb_err.h" : "$(IntermediateErrorTables)/krb_err.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/krb.h" : "$(IntermediateV4Includes)/krb.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/krb_err.h" : "$(IntermediateV4Includes)/krb_err.h" ; CatHeader "$(IntermediateIncludes)/profile.h" : "__KERBEROSPROFILE__" "" "$(SRCROOT)/../../Kerberos5/Sources/util/profile/profile.hin" "$(IntermediateErrorTables)/prof_err.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/profile.h" : "$(IntermediateIncludes)/profile.h" ; CatHeader "$(IntermediateIncludes)/krb5.h" : "__KERBEROS5__" "" "$(SRCROOT)/../../Kerberos5/Sources/include/krb5.hin" "$(IntermediateErrorTables)/asn1_err.h" "$(IntermediateErrorTables)/kdb5_err.h" "$(IntermediateErrorTables)/krb5_err.h" "$(IntermediateErrorTables)/krb524_err.h" "$(IntermediateErrorTables)/kv5m_err.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/krb5.h" : "$(IntermediateIncludes)/krb5.h" ; CatHeader "$(IntermediateGSSIncludes)/gssapi.h" : "__GSSAPI__" "GSS_" "$(SRCROOT)/../../Kerberos5/Sources/lib/gssapi/generic/gssapi.hin" "$(IntermediateErrorTables)/gssapi_err_generic.h" "$(IntermediateErrorTables)/gssapi_err_krb5.h" ; CopyHeader "$(IntermediateGSSIncludes)/gssapi_generic.h" : "$(SRCROOT)/../../Kerberos5/Sources/lib/gssapi/generic/gssapi_generic.h" ; CopyHeader "$(IntermediateGSSIncludes)/gssapi_krb5.h" : "$(IntermediateBuild)/lib/gssapi/krb5/gssapi_krb5.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/gssapi.h" : "$(IntermediateGSSIncludes)/gssapi.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/gssapi_generic.h" : "$(IntermediateGSSIncludes)/gssapi_generic.h" ; MakeFrameworkHeader "$(IntermediateFrameworkHeaders)/gssapi_krb5.h" : "$(IntermediateGSSIncludes)/gssapi_krb5.h" ; CopyHeader "$(AutoconfH)" : "$(IntermediateBuild)/include/krb5/autoconf.h" ; CopyHeader "$(OsconfH)" : "$(IntermediateBuild)/include/krb5/osconf.h" ; DEPENDS "$(IntermediateBuild)/include/krb5/autoconf.h" "$(IntermediateBuild)/include/krb5/osconf.h" "$(IntermediateBuild)/lib/gssapi/krb5/gssapi_krb5.h" : "$(MakeIncludeStamp)" ; MakeInclude "$(MakeIncludeStamp)" ; DEPENDS all : "$(IntermediateIncludes)/com_err.h" "$(IntermediateFrameworkHeaders)/com_err.h" "$(IntermediateV4Includes)/des.h" "$(IntermediateFrameworkHeaders)/des.h" "$(IntermediateV4Includes)/krb.h" "$(IntermediateV4Includes)/krb_err.h" "$(IntermediateFrameworkHeaders)/krb.h" "$(IntermediateFrameworkHeaders)/krb_err.h" "$(IntermediateIncludes)/profile.h" "$(IntermediateFrameworkHeaders)/profile.h" "$(IntermediateIncludes)/krb5.h" "$(IntermediateFrameworkHeaders)/krb5.h" "$(IntermediateGSSIncludes)/gssapi.h" "$(IntermediateGSSIncludes)/gssapi_generic.h" "$(IntermediateGSSIncludes)/gssapi_krb5.h" "$(IntermediateFrameworkHeaders)/gssapi.h" "$(IntermediateFrameworkHeaders)/gssapi_generic.h" "$(IntermediateFrameworkHeaders)/gssapi_krb5.h" "$(AutoconfH)" "$(OsconfH)" ; DEPENDS install : all ; DEPENDS installhdrs : all ;