aboutsummaryrefslogtreecommitdiff
path: root/src/mac/ErrorTables.jam
blob: 595056ca7140ce3f938e8203b4e46fa018fce7be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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" ;