#include "$(JAMBASE_DIR)/Jambase" ;
include "/Developer/Makefiles/pbx_jamfiles/Jambase" ;

SED = /usr/bin/sed ;
AWK = /usr/bin/awk ;

COMERR_DIR = "$(SRCROOT)/../util/et" ;
COMPILE_ET_SH = "$(COMERR_DIR)/compile_et.sh" ;
COMPILE_ET_SCRIPT = "$(COMERR_DIR)/compile_et" ;

PROFILE_DIR = "$(SRCROOT)/../util/profile" ;
ERROR_TABLES_DIR = "$(SRCROOT)/../lib/krb5/error_tables" ;
GSS_GENERIC_DIR = "$(SRCROOT)/../lib/gssapi/generic" ;
GSS_KRB5_DIR = "$(SRCROOT)/../lib/gssapi/krb5" ;

DEPENDS all : 
    "$(PROFILE_DIR)/prof_err.c"
    "$(PROFILE_DIR)/prof_err.h"
    "$(ERROR_TABLES_DIR)/adm_err.c"
    "$(ERROR_TABLES_DIR)/adm_err.h"
    "$(ERROR_TABLES_DIR)/asn1_err.c"
    "$(ERROR_TABLES_DIR)/asn1_err.h"
    "$(ERROR_TABLES_DIR)/kdb5_err.c"
    "$(ERROR_TABLES_DIR)/kdb5_err.h"
    "$(ERROR_TABLES_DIR)/krb5_err.c"
    "$(ERROR_TABLES_DIR)/krb5_err.h"
    "$(ERROR_TABLES_DIR)/kv5m_err.c"
    "$(ERROR_TABLES_DIR)/kv5m_err.h"
    "$(GSS_GENERIC_DIR)/gssapi_err_generic.c"
    "$(GSS_GENERIC_DIR)/gssapi_err_generic.h"
    "$(GSS_KRB5_DIR)/gssapi_err_krb5.c"
    "$(GSS_KRB5_DIR)/gssapi_err_krb5.h"
;

DEPENDS install : all ;

Clean.Remove clean : 
    "$(PROFILE_DIR)/prof_err.c"
    "$(PROFILE_DIR)/prof_err.h"
    "$(ERROR_TABLES_DIR)/adm_err.c"
    "$(ERROR_TABLES_DIR)/adm_err.h"
    "$(ERROR_TABLES_DIR)/asn1_err.c"
    "$(ERROR_TABLES_DIR)/asn1_err.h"
    "$(ERROR_TABLES_DIR)/kdb5_err.c"
    "$(ERROR_TABLES_DIR)/kdb5_err.h"
    "$(ERROR_TABLES_DIR)/krb5_err.c"
    "$(ERROR_TABLES_DIR)/krb5_err.h"
    "$(ERROR_TABLES_DIR)/kv5m_err.c"
    "$(ERROR_TABLES_DIR)/kv5m_err.h"
    "$(GSS_GENERIC_DIR)/gssapi_err_generic.c"
    "$(GSS_GENERIC_DIR)/gssapi_err_generic.h"
    "$(GSS_KRB5_DIR)/gssapi_err_krb5.c"
    "$(GSS_KRB5_DIR)/gssapi_err_krb5.h"
    "$(COMPILE_ET_SCRIPT)"
;

rule CompileEt
{
    DEPENDS "$(1)" : "$(2)" ;
    DEPENDS "$(1)" : "$(COMPILE_ET_SCRIPT)" ;
}

actions CompileEt
{
    (cd "$(2:D)" && "$(COMPILE_ET_SCRIPT)" "$(2)" ) ;
    mv "$(2:S=.c)" "$(1[1])" ;
    mv "$(2:S=.h)" "$(1[2])" ;
}

CompileEt "$(PROFILE_DIR)/prof_err.c" "$(PROFILE_DIR)/prof_err.h" : "$(PROFILE_DIR)/prof_err.et" ;
CompileEt "$(ERROR_TABLES_DIR)/adm_err.c" "$(ERROR_TABLES_DIR)/adm_err.h" : "$(ERROR_TABLES_DIR)/adm_err.et" ;
CompileEt "$(ERROR_TABLES_DIR)/asn1_err.c" "$(ERROR_TABLES_DIR)/asn1_err.h" : "$(ERROR_TABLES_DIR)/asn1_err.et" ;
CompileEt "$(ERROR_TABLES_DIR)/kdb5_err.c" "$(ERROR_TABLES_DIR)/kdb5_err.h" : "$(ERROR_TABLES_DIR)/kdb5_err.et" ;
CompileEt "$(ERROR_TABLES_DIR)/krb5_err.c" "$(ERROR_TABLES_DIR)/krb5_err.h" : "$(ERROR_TABLES_DIR)/krb5_err.et" ;
CompileEt "$(ERROR_TABLES_DIR)/kv5m_err.c" "$(ERROR_TABLES_DIR)/kv5m_err.h" : "$(ERROR_TABLES_DIR)/kv5m_err.et" ;
CompileEt "$(GSS_GENERIC_DIR)/gssapi_err_generic.c" "$(GSS_GENERIC_DIR)/gssapi_err_generic.h" : "$(GSS_GENERIC_DIR)/gssapi_err_generic.et" ;
CompileEt "$(GSS_KRB5_DIR)/gssapi_err_krb5.c" "$(GSS_KRB5_DIR)/gssapi_err_krb5.h" : "$(GSS_KRB5_DIR)/gssapi_err_krb5.et" ;

rule GenerateCompileEt
{
    DEPENDS "$(1)" : "$(2)" ;
}

actions GenerateCompileEt
{
    "$(2)" "$(AWK)" "$(SED)" > "$(1)";
    chmod 755 "$(1)" ;
}

GenerateCompileEt "$(COMPILE_ET_SCRIPT)" : "$(COMERR_DIR)/config_script" "$(COMPILE_ET_SH)" ;

