diff options
Diffstat (limited to 'src/mac/ErrorTables.jam')
-rw-r--r-- | src/mac/ErrorTables.jam | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/mac/ErrorTables.jam b/src/mac/ErrorTables.jam new file mode 100644 index 0000000..595056c --- /dev/null +++ b/src/mac/ErrorTables.jam @@ -0,0 +1,120 @@ +#include "$(JAMBASE_DIR)/Jambase" ; +include "/Developer/Makefiles/pbx_jamfiles/Jambase" ; + +SED = /usr/bin/sed ; +AWK = /usr/bin/awk ; + +GSSKRB5_TEMP_DIR = "$(SYMROOT)/GSSKerberos5.intermediates" ; +COMPILE_ET_SCRIPT = "$(GSSKRB5_TEMP_DIR)/compile_et" ; + +COMERR_DIR = "$(SRCROOT)/../util/et" ; +COMPILE_ET_SH = "$(COMERR_DIR)/compile_et.sh" ; +CONFIG_SCRIPT = "$(COMERR_DIR)/config_script" ; + +COMPILE_ET_SH_EXEC = "$(GSSKRB5_TEMP_DIR)/compile_et.sh" ; +CONFIG_SCRIPT_EXEC = "$(GSSKRB5_TEMP_DIR)/config_script" ; + +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" ; + +# We need these error tables to install and to build the public headers (ie: krb5.h) +DEPENDS install : all ; +DEPENDS installhdrs : all ; + +# The list of error tables we need to generate to build: +DEPENDS all : "$(GSSKRB5_TEMP_DIR)" + "$(GSSKRB5_TEMP_DIR)/prof_err.c" + "$(GSSKRB5_TEMP_DIR)/prof_err.h" + "$(GSSKRB5_TEMP_DIR)/adm_err.c" + "$(GSSKRB5_TEMP_DIR)/adm_err.h" + "$(GSSKRB5_TEMP_DIR)/asn1_err.c" + "$(GSSKRB5_TEMP_DIR)/asn1_err.h" + "$(GSSKRB5_TEMP_DIR)/kdb5_err.c" + "$(GSSKRB5_TEMP_DIR)/kdb5_err.h" + "$(GSSKRB5_TEMP_DIR)/krb5_err.c" + "$(GSSKRB5_TEMP_DIR)/krb5_err.h" + "$(GSSKRB5_TEMP_DIR)/kv5m_err.c" + "$(GSSKRB5_TEMP_DIR)/kv5m_err.h" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_generic.c" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_generic.h" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_krb5.c" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_krb5.h" ; + +# The header files and scripts we need to remove +Clean.Remove clean : "$(GSSKRB5_TEMP_DIR)/prof_err.c" + "$(GSSKRB5_TEMP_DIR)/prof_err.h" + "$(GSSKRB5_TEMP_DIR)/adm_err.c" + "$(GSSKRB5_TEMP_DIR)/adm_err.h" + "$(GSSKRB5_TEMP_DIR)/asn1_err.c" + "$(GSSKRB5_TEMP_DIR)/asn1_err.h" + "$(GSSKRB5_TEMP_DIR)/kdb5_err.c" + "$(GSSKRB5_TEMP_DIR)/kdb5_err.h" + "$(GSSKRB5_TEMP_DIR)/krb5_err.c" + "$(GSSKRB5_TEMP_DIR)/krb5_err.h" + "$(GSSKRB5_TEMP_DIR)/kv5m_err.c" + "$(GSSKRB5_TEMP_DIR)/kv5m_err.h" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_generic.c" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_generic.h" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_krb5.c" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_krb5.h" + "$(COMPILE_ET_SCRIPT)" ; + +# JAM Rules: + +rule CompileEt +{ + DEPENDS "$(1)" : "$(2)" ; + DEPENDS "$(1)" : "$(COMPILE_ET_SCRIPT)" ; +} + +actions CompileEt +{ + ( cd "$(1[1]:D)" && "$(COMPILE_ET_SCRIPT)" "$(2)" ) ; +} + +rule GenerateCompileEt +{ + DEPENDS "$(1)" : "$(2[1]:D)/et_c.awk" "$(2[1]:D)/et_h.awk" ; + Cp "$(2[1]:D)/et_c.awk" : "$(COMERR_DIR)/et_c.awk" ; + Cp "$(2[1]:D)/et_h.awk" : "$(COMERR_DIR)/et_h.awk" ; + DEPENDS "$(1)" : "$(2)" ; +} + +actions GenerateCompileEt +{ + chmod 755 "$(2)" ; + "$(2)" "$(AWK)" "$(SED)" > "$(1)"; + chmod 755 "$(1)" ; +} + +# Rule to make the temporary directory +Mkdir "$(GSSKRB5_TEMP_DIR)" ; + +# Copy the scripts to temp space so we can make them +x +Cp "$(CONFIG_SCRIPT_EXEC)" : "$(CONFIG_SCRIPT)" ; +Cp "$(COMPILE_ET_SH_EXEC)" : "$(COMPILE_ET_SH)" ; + +# Rule to generate compile_et, which builds the scripts +GenerateCompileEt "$(COMPILE_ET_SCRIPT)" : "$(CONFIG_SCRIPT_EXEC)" "$(COMPILE_ET_SH_EXEC)" ; + +# Rules to generate the error tables +CompileEt "$(GSSKRB5_TEMP_DIR)/prof_err.c" + "$(GSSKRB5_TEMP_DIR)/prof_err.h" : "$(PROFILE_DIR)/prof_err.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/adm_err.c" + "$(GSSKRB5_TEMP_DIR)/adm_err.h" : "$(ERROR_TABLES_DIR)/adm_err.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/asn1_err.c" + "$(GSSKRB5_TEMP_DIR)/asn1_err.h" : "$(ERROR_TABLES_DIR)/asn1_err.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/kdb5_err.c" + "$(GSSKRB5_TEMP_DIR)/kdb5_err.h" : "$(ERROR_TABLES_DIR)/kdb5_err.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/krb5_err.c" + "$(GSSKRB5_TEMP_DIR)/krb5_err.h" : "$(ERROR_TABLES_DIR)/krb5_err.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/kv5m_err.c" + "$(GSSKRB5_TEMP_DIR)/kv5m_err.h" : "$(ERROR_TABLES_DIR)/kv5m_err.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/gssapi_err_generic.c" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_generic.h" : "$(GSS_GENERIC_DIR)/gssapi_err_generic.et" ; +CompileEt "$(GSSKRB5_TEMP_DIR)/gssapi_err_krb5.c" + "$(GSSKRB5_TEMP_DIR)/gssapi_err_krb5.h" : "$(GSS_KRB5_DIR)/gssapi_err_krb5.et" ; + + |