+++ /dev/null
-#!/usr/local/bin/perl -w
-
-use strict; # Turn on careful syntax checking
-use 5.002; # Require Perl 5.002 or later
-
-# Pre-declare globals, as required by "use strict"
-use vars qw(%RESERVEDWORDS $file $prototype);
-
-# C words which aren't a type or a parameter name
-# [digit] is special cased later on...
-%RESERVEDWORDS = (
- const => "const",
- "*" => "*",
- "[]" => "[]",
- struct => "struct",
- enum => "enum",
- union => "union",
- unsigned => "unsigned",
- register => "register"
- );
-
-# Read the entire file into $file
-{
- local $/;
- undef $/; # Ignore end-of-line delimiters in the file
- $file .= <STDIN>;
-}
-
-# Remove the C and C++ comments from the file.
-# If this regexp scares you, don't worry, it scares us too.
-$file =~ s@/ # Both kinds of comment begin with a /
- # First, process /* ... */
- ((\*[^*]*\*+ # 1: Identify /**, /***, /* foo *, etc.
- ([^/*][^*]*\*+)* # 2: Match nothing, x*, x/*, x/y*, x*y* etc.
- /) # 3: Look for the trailing /. If not present, back up
- # through the matches from step 2 (x*y* becomes x*)
- #### if we get here, we have /* ... */
- | # Or, it's // and we just need to match to the end of the line
- (/.*?\n)) # 4. Slash, shortest possible run of characters ending in newline (\n)
- @\n@xg; # => Replace match with a newline.
- ### "x" modifier allows whitespace and comments in patterns
- ### "g" modifier means "do this globally"
-
-$file =~ tr! \t\n! !s; # Convert newlines, tabs, and runs of spaces into single spaces
-
-foreach $prototype (split /;/, $file) # Break string apart at semicolons, pass each piece to our Convert routine
-{
- Convert($prototype);
-}
-
-exit (0);
-
-# ========================================
-# Subroutines follow
-# ========================================
-
-sub Convert()
-{
- # Take our special C-style function prototypes and print out the
- # appropriate glue code.
-
- my $prototype = shift;
- my ($returnType, $functionName, $paramString);
- my (@parameters, @types);
-
- return if ($prototype =~ /^\s*$/); # Ignore blank lines
- # Use custom function to remove leading & trailing spaces &
- # collapse runs of spaces.
- $prototype = StripSpaces($prototype);
-
- # ====================
- # STAGE 1.1: Get the function name and return type.
- # Do general syntax checking.
- # ====================
-
- # See if we have a legal prototype and begin parsing. A legal prototype has
- # a return type (optional), function name, and parameter list.
- unless ($prototype =~ /((\w+\*? )*(\w+\*?)) (\w+)\s*\((.*)\)$/)
- {
- die "Prototype \"$prototype;\" does not appear to be a legal prototype.\n";
- }
-
- # That unless had a nice side effect -- the parentheses in the regular expression
- # stuffed the matching parts of the expression into variables $1, $2, and $3.
-
- ($returnType, $functionName) = ($1, $4);
- # Kill 2 birds at a time -- get rid of leading & trailing spaces *and* get an
- # empty string back if there are no parameters
- $paramString = StripSpaces($5);
-
- # Insist on having an argument list in the prototype
- unless ($paramString)
- {
- die("Prototype: \"$prototype;\" has no arguments.\n" .
- "This is ambiguous between C and C++ (please specify " .
- "either (int) or (void)).\n");
- }
-
- # Check for variable arguments by looking for
- # "va_list <something>" or "..."
- if(($paramString =~ /va_list\s+\S+/) or # va_list + spaces + not-a-spaces
- ($paramString =~ /\Q.../)) # \Q = "quote metacharacters" => \.\.\.
- {
- die("Prototype: \"$prototype;\" takes a variable " .
- "number of arguments. Variable arguments are not " .
- "supported by CFM Glue.\n");
- }
-
- # ====================
- # STAGE 1.2: Digest the parameter list.
- # ====================
-
- if ($paramString eq "void")
- {
- $parameters[0] = "void";
- $types[0] = "void";
- }
- else
- {
- # The function has nonvoid arguments
-
- # Add spaces around * and turn [#] into [#] with spaces around it
- # for ease of parsing
- $paramString =~ s/\s*\*\s*/ \* /g;
- $paramString =~ s/\s*\[(\d*)\]\s*/ [$1] /g;
-
- # Extract the list elements
- my @arguments = split /,\s*/, $paramString;
-
- # Make sure we don't have more than 13 arguments
- if ($#arguments >= 13)
- {
- die "Prototype \"$prototype;\" has more than 13 arguments,\n".
- "which the CFM68K glue will not support.";
- }
-
- # We need to look at each argument and come out with two lists: a list
- # of parameter names and a corresponding list of parameter types. For example:
- # ( const int x, short y[], int )
- # needs to become two lists:
- # @parameters = ("x", "y", "__param0")
- # @elements = ("const int", "short *", int)
- my $i = 0; # parameter counter
- foreach my $argument (@arguments)
- {
- my @elements = split(' ', $argument);
-
- # A legal argument will have a name and/or a parameter type.
- # It might _also_ have some C keywords
- # We'll syntax check the argument by counting the number of things
- # which are names and/or variable types
- my $identifierCount = grep { !$RESERVEDWORDS{$_} && !/\[\d*\]/ } @elements;
-
- if ($identifierCount == 1) {
- # We have a type without a name, so generate an arbitrary unique name
- push @parameters, "__param" . $i;
- }
- elsif ($identifierCount == 2) {
- # We have a type and a name. We'll assume the name is the last thing seen,
- my $paramName = pop @elements;
- # ...but have to make certain it's not a qualified array reference
- if ($paramName =~ /\[\d*\]/)
- {
- # Whoops...the argument ended in a [], so extract the name and put back
- # the array notation
- my $temp = $paramName;
- $paramName = pop @elements;
- push @elements, $temp;
- }
- push @parameters, $paramName;
- }
- else # $identifierCount == 0 or $identifierCount > 2
- {
- die("Prototype: \"$prototype;\" has an " .
- "invalid number ($identifierCount)" .
- " of non-reserved words in argument '$argument'.\n");
- }
-
- # Replace all "[]" with "*" to turn array references into pointers.
- # "map" sets $_ to each array element in turn; modifying $_ modifies
- # the corresponding value in the array. (s -- substutition -- works
- # on $_ by default.)
- map { s/\[\d*\]/*/ } @elements;
-
- push @types, join(' ', @elements); # Construct a type definition
-
- # Increment the argument counter:
- $i++;
- }
- }
-
- # ====================
- # STAGE 2: Print out the glue.
- # ====================
-
- # Generate the ProcInfo Macro:
- # ----------------------------
- my $result = ""; # Will be inserted into the final macro
- if ($returnType ne "void") {
- $result = "\n | RESULT_SIZE(SIZE_CODE(sizeof($returnType)))";
- }
-
- # Convert a list of parameter types into entries for the macro.
- # All non-void parameters need to have a line in the final macro.
- my @parameterMacros;
- my $paramCount = -1;
- @parameterMacros = map { $paramCount++; $_ eq "void" ? "" :
- " | STACK_ROUTINE_PARAMETER(" . ($paramCount + 1) . ", SIZE_CODE(sizeof($_)))" } @types;
- my $macroString = join "\n", @parameterMacros;
-
- print <<HEADER; # Print everything from here to the word HEADER below, returns and all
-/**** $functionName ****/
-/* $prototype; */
-
-enum {
- ${functionName}_ProcInfo = kThinkCStackBased $result
-$macroString
-};
-
-
-HEADER
-
-
- # Generate the ProcPtr Typedef
- # --------------------------------
- my $typeList = join ", ", @types;
- print "typedef $returnType (*${functionName}_ProcPtrType)($typeList);\n";
-
-
- # Generate the Static 68K Function Declaration:
- # -------------------------------------------------
- # Most of the complexity in this code comes from
- # pretty-printing the declaration
-
- my $functionDec = "$returnType $functionName (";
- my $fnArguments;
- if($types[0] eq "void")
- {
- $fnArguments = "void";
- }
- else
- {
- my @joinedList;
- # Merge the parameter and type lists together
- foreach my $i (0..$#types)
- {
- push @joinedList, ($types[$i] . ' ' . $parameters[$i]);
- }
-
- # Build a list of parameters where each parameter is aligned vertically
- # beneath the one above.
- # "' ' x 5" is a Perl technique to get a string of 5 spaces
- $fnArguments = join (",\n".(' ' x length($functionDec)), @joinedList);
- }
-
- # Create a list of parameters to pass to the 68K function
- my $fnParams = "";
- if($types[0] ne "void") {
- $fnParams = join ", ", @parameters;
- }
-
- # Do we have an explicit return statement? This depends on the return type
- my $returnAction = " ";
- $returnAction = "return " if ($returnType ne "void");
-
- # The following code introduces a new Perl trick -- ${a} is the same as $a in a string
- # (interpolate the value of variable $a); the brackets are used to seperate the variable
- # name from the text immediately following the variable name so the Perl interpreter
- # doesn't go looking for the wrong variable.
- print <<FUNCTION;
-${functionDec}$fnArguments)
-{
- static ${functionName}_ProcPtrType ${functionName}_ProcPtr = kUnresolvedCFragSymbolAddress;
-
- // if this symbol has not been setup yet...
- if((Ptr) ${functionName}_ProcPtr == (Ptr) kUnresolvedCFragSymbolAddress)
- FindLibrarySymbol((Ptr *) &${functionName}_ProcPtr, "\\p$functionName", ${functionName}_ProcInfo);
- if((Ptr) ${functionName}_ProcPtr != (Ptr) kUnresolvedCFragSymbolAddress)
- $returnAction ${functionName}_ProcPtr($fnParams);
-}
-
-
-FUNCTION
-
- # That's all!
-}
-
-sub StripSpaces()
-{
- # Remove duplicate, leading, and trailing spaces from a string
- my $string = shift;
- return "" unless ($string); # If it's undefined, return an empty string
-
- $string =~ tr! ! !s; # remove duplicate spaces
- $string =~ s/\s*(\w.+)?\s*$/$1/; # Strip leading and trailing spaces
- return $string;
-}
-
+++ /dev/null
-#include <CodeFragments.h>
-#include <Gestalt.h>
-#include <Errors.h>
-
-// Private function prototypes
-
-static OSErr Find_Symbol(
- Ptr* pSymAddr,
- Str255 pSymName,
- ProcInfoType pProcInfo);
-
-static pascal Boolean HaveCFM(void);
-
-static pascal OSErr GetSystemArchitecture(OSType *archType);
-
-/* This code is directly from Technote 1077 */
-
-/* changed Library name to be hardcoded at the top of the file
- instead in the middle of the code */
-
-// Private functions
-
-static pascal OSErr GetSystemArchitecture(OSType *archType)
-{
- static long sSysArchitecture = 0; // static so we only Gestalt once.
- OSErr tOSErr = noErr;
-
- *archType = kAnyCFragArch; // assume wild architecture
-
- // If we don't know the system architecture yet...
- if (sSysArchitecture == 0)
- // ...Ask Gestalt what kind of machine we are running on.
- tOSErr = Gestalt(gestaltSysArchitecture, &sSysArchitecture);
-
- if (tOSErr == noErr) // if no errors
- {
- if (sSysArchitecture == gestalt68k) // 68k?
- *archType = kMotorola68KCFragArch;
- else if (sSysArchitecture == gestaltPowerPC) // PPC?
- *archType = kPowerPCCFragArch;
- else
- tOSErr = gestaltUnknownErr; // who knows what might be next?
- }
- return tOSErr;
-}
-
-static pascal Boolean HaveCFM(void)
-{
- long response;
- return ( (Gestalt (gestaltCFMAttr, &response) == noErr) &&
- (((response >> gestaltCFMPresent) & 1) != 0));
-}
-
-static OSErr Find_Symbol(
- Ptr* pSymAddr,
- Str255 pSymName,
- ProcInfoType pProcInfo)
-{
- static CFragConnectionID sCID = 0;
- static OSType sArchType = kAnyCFragArch;
- static OSErr sOSErr = noErr;
-
- Str255 errMessage;
- Ptr mainAddr;
- CFragSymbolClass symClass;
- ISAType tISAType;
-
- if (sArchType == kAnyCFragArch) // if architecture is undefined...
- {
- sCID = 0; // ...force (re)connect to library
- sOSErr = GetSystemArchitecture(&sArchType); // determine architecture
- if (sOSErr != noErr)
- return sOSErr; // OOPS!
- }
-
- if (!HaveCFM()) {
- // If we don't have CFM68K, return a reasonable-looking error.
- sOSErr = cfragLibConnErr;
- return sOSErr;
- }
-
- if (sArchType == kMotorola68KCFragArch) // ...for CFM68K
- tISAType = kM68kISA | kCFM68kRTA;
- else if (sArchType == kPowerPCCFragArch) // ...for PPC CFM
- tISAType = kPowerPCISA | kPowerPCRTA;
- else
- sOSErr = gestaltUnknownErr; // who knows what might be next?
-
- if (sCID == 0) // If we haven't connected to the library yet...
- {
- // NOTE: The library name is hard coded here.
- // I try to isolate the glue code, one file per library.
- // I have had developers pass in the Library name to allow
- // plug-in type support. Additional code has to be added to
- // each entry points glue routine to support multiple or
- // switching connection IDs.
- sOSErr = GetSharedLibrary(kLibraryName, sArchType, kLoadCFrag,
- &sCID, &mainAddr, errMessage);
- if (sOSErr != noErr)
- return sOSErr; // OOPS!
- }
-
- // If we haven't looked up this symbol yet...
- if ((Ptr) *pSymAddr == (Ptr) kUnresolvedCFragSymbolAddress)
- {
- // ...look it up now
- sOSErr = FindSymbol(sCID,pSymName,pSymAddr,&symClass);
- if (sOSErr != noErr) // in case of error...
- // ...clear the procedure pointer
- *(Ptr*) &pSymAddr = (Ptr) kUnresolvedCFragSymbolAddress;
-# if !GENERATINGCFM // if this is classic 68k code...
- *pSymAddr = (Ptr)NewRoutineDescriptorTrap((ProcPtr) *pSymAddr,
- pProcInfo, tISAType); // ...create a routine descriptor...
-# endif
- }
- return sOSErr;
-}
-
-/* --------------------------------- */
-/* Autogenerated section starts here */
-/* --------------------------------- */
+Fri Feb 21 16:30:00 2003 Alexandra Ellwood <lxs@mit.edu>
+ * Removed Mac OS 9 files.
+
Fri Oct 21 18:00:00 1998 Miro Jurisic <meeroh@mit.edu>
* ReadMe: updated instructions to say we require CW Pro4
* version.r: upped to 1.1a4
+++ /dev/null
-ComErrLib implements the UNIX com_err API. See the com_err man page on a UNIX
-machine for details about the API.
-
-Note that you need both ComErrLib:Headers: and Kerberos5Lib:Headers in your
-include path to use com_err.h
\ No newline at end of file
+++ /dev/null
-#ifndef _COMERR_CFMGLUE_H_
-#define _COMERR_CFMGLUE_H_
-
-Boolean ComErrLibraryIsPresent ();
-
-#endif /* _KERBEROSPROFILE_CFMGLUE_H_ */
\ No newline at end of file
+++ /dev/null
-#include <ComErrLib.glue.h>
-
-Boolean ComErrLibraryIsPresent ()
-{
- Ptr symAddr;
- return (Find_Symbol (&symAddr, "\perror_message", error_message_ProcInfo)) == noErr;
-}
\ No newline at end of file
+++ /dev/null
-/* Include prototypes for glue functions */
-#include <com_err.h>
-
-/* Hardcode library fragment name here */
-#define kLibraryName "\pMIT Kerberos¥ComErrLib"
+++ /dev/null
-const char* error_message(errcode_t);
-errcode_t add_error_table (const struct error_table *);
-errcode_t remove_error_table(const struct error_table *);
+++ /dev/null
-# StreamEdit script to find a GSSLibrary fragment in a derez output and
-# create an alias to it
-
-# If a line matches "/* [number] */", it's the first line of a cfrg array element.
-# copy the next 11 lines, and if the last one matches "GSSLibrary", print them out with
-# a different fragment name
-
-¥
- Print "#include ¶"CodeFragments.r¶""
-
-/¶/¶* ¶[[0-9]*¶] ¶*¶//
- Set FragEntry ""
-
-/¶"MIT_¥GSSLib¶"/
- Print "¶t¶t¶"GSSLibrary¶",¶t¶t"
- Print FragEntry
-
-/¶"MIT_¥Kerberos5Lib¶"/
- Print "¶t¶t¶"K5Library¶",¶t¶t"
- Print FragEntry
-
-/Å/
- Set -a FragEntry .
- Set -a FragEntry "¶n"
+++ /dev/null
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-#include <CodeFragments.h>
-
-#include "gss_libinit.h"
-
-OSErr __initializeGSS(CFragInitBlockPtr ibp);
-void __terminateGSS(void);
-
-OSErr __initializeGSS(CFragInitBlockPtr ibp)
-{
- OSErr err = noErr;
-
- /* Do normal init of the shared library */
- err = __initialize();
-
- /* Initialize the error tables */
- if (err == noErr) {
- err = gssint_initialize_library ();
- }
-
- return err;
-}
-
-void __terminateGSS(void)
-{
- gssint_cleanup_library ();
-
- __terminate();
-}
+++ /dev/null
-/* Include prototypes for glue functions */
-#include <gssapi.h>
-
-/* Hardcode library fragment name here */
-#define kLibraryName "\pGSSLibrary"
+++ /dev/null
-OM_uint32 gss_acquire_cred(OM_uint32 *, gss_name_t, OM_uint32, gss_OID_set, gss_cred_usage_t, gss_cred_id_t *, gss_OID_set *, OM_uint32 * );
-OM_uint32 gss_release_cred(OM_uint32 *, gss_cred_id_t * );
-OM_uint32 gss_init_sec_context(OM_uint32 *, gss_cred_id_t, gss_ctx_id_t *, gss_name_t, gss_OID, OM_uint32, OM_uint32, gss_channel_bindings_t, gss_buffer_t, gss_OID *, gss_buffer_t, OM_uint32 *, OM_uint32 * );
-OM_uint32 gss_accept_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_cred_id_t, gss_buffer_t, gss_channel_bindings_t, gss_name_t *, gss_OID *, gss_buffer_t, OM_uint32 *, OM_uint32 *, gss_cred_id_t * );
-OM_uint32 gss_process_context_token(OM_uint32 *, gss_ctx_id_t, gss_buffer_t );
-OM_uint32 gss_delete_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_buffer_t );
-OM_uint32 gss_context_time(OM_uint32 *, gss_ctx_id_t, OM_uint32 * );
-OM_uint32 gss_get_mic(OM_uint32 *, gss_ctx_id_t, gss_qop_t, gss_buffer_t, gss_buffer_t );
-OM_uint32 gss_verify_mic(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, gss_qop_t * );
-OM_uint32 gss_wrap(OM_uint32 *, gss_ctx_id_t, int, gss_qop_t, gss_buffer_t, int *, gss_buffer_t );
-OM_uint32 gss_unwrap(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int *, gss_qop_t * );
-OM_uint32 gss_display_status(OM_uint32 *, OM_uint32, int, gss_OID, OM_uint32 *, gss_buffer_t );
-OM_uint32 gss_indicate_mechs(OM_uint32 *, gss_OID_set * );
-OM_uint32 gss_compare_name(OM_uint32 *, gss_name_t, gss_name_t, int * );
-OM_uint32 gss_display_name(OM_uint32 *, gss_name_t, gss_buffer_t, gss_OID * );
-OM_uint32 gss_import_name(OM_uint32 *, gss_buffer_t, gss_OID, gss_name_t * );
-OM_uint32 gss_release_name(OM_uint32 *, gss_name_t * );
-OM_uint32 gss_release_buffer(OM_uint32 *, gss_buffer_t );
-OM_uint32 gss_release_oid_set(OM_uint32 *, gss_OID_set * );
-OM_uint32 gss_inquire_cred(OM_uint32 *, gss_cred_id_t, gss_name_t *, OM_uint32 *, gss_cred_usage_t *, gss_OID_set * );
-OM_uint32 gss_inquire_context(OM_uint32 *, gss_ctx_id_t, gss_name_t *, gss_name_t *, OM_uint32 *, gss_OID *, OM_uint32 *, int *, int * );
-OM_uint32 gss_wrap_size_limit(OM_uint32 *, gss_ctx_id_t, int, gss_qop_t, OM_uint32, OM_uint32 * );
-OM_uint32 gss_import_name_object(OM_uint32 *, void *, gss_OID, gss_name_t * );
-OM_uint32 gss_export_name_object(OM_uint32 *, gss_name_t, gss_OID, void * * );
-OM_uint32 gss_add_cred(OM_uint32 *, gss_cred_id_t, gss_name_t, gss_OID, gss_cred_usage_t, OM_uint32, OM_uint32, gss_cred_id_t *, gss_OID_set *, OM_uint32 *, OM_uint32 * );
-OM_uint32 gss_inquire_cred_by_mech(OM_uint32 *, gss_cred_id_t, gss_OID, gss_name_t *, OM_uint32 *, OM_uint32 *, gss_cred_usage_t * );
-OM_uint32 gss_export_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_buffer_t );
-OM_uint32 gss_import_sec_context(OM_uint32 *, gss_buffer_t, gss_ctx_id_t * );
-OM_uint32 gss_release_oid(OM_uint32 *, gss_OID * );
-OM_uint32 gss_create_empty_oid_set(OM_uint32 *, gss_OID_set * );
-OM_uint32 gss_add_oid_set_member(OM_uint32 *, gss_OID, gss_OID_set * );
-OM_uint32 gss_test_oid_set_member(OM_uint32 *, gss_OID, gss_OID_set, int * );
-OM_uint32 gss_str_to_oid(OM_uint32 *, gss_buffer_t, gss_OID * );
-OM_uint32 gss_oid_to_str(OM_uint32 *, gss_OID, gss_buffer_t );
-OM_uint32 gss_inquire_names_for_mech(OM_uint32 *, gss_OID, gss_OID_set * );
-OM_uint32 gss_sign(OM_uint32 *, gss_ctx_id_t, int, gss_buffer_t, gss_buffer_t );
-OM_uint32 gss_verify(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int * );
-OM_uint32 gss_seal(OM_uint32 *, gss_ctx_id_t, int, int, gss_buffer_t, int *, gss_buffer_t );
-OM_uint32 gss_unseal(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int *, int * );
-OM_uint32 gss_export_name(OM_uint32 *, const gss_name_t, gss_buffer_t );
-OM_uint32 gss_duplicate_name(OM_uint32 *, const gss_name_t, gss_name_t * );
-OM_uint32 gss_canonicalize_name(OM_uint32 *, const gss_name_t, const gss_OID, gss_name_t * );
-OM_uint32 gss_krb5_ccache_name(OM_uint32 *minor_status, const char *name, const char **out_name);
+++ /dev/null
-#include <GSSLib.glue.h>
-
-Boolean GSSAPILibraryIsPresent ()
-{
- Ptr symAddr;
- return (Find_Symbol (&symAddr, "\pgss_init_sec_context", gss_init_sec_context_ProcInfo)) == noErr;
-}
-
-Boolean GSSAPILibrarySupportsCCacheName ()
-{
- Ptr symAddr;
- return (Find_Symbol (&symAddr, "\pgss_krb5_ccache_name", gss_krb5_ccache_name_ProcInfo)) == noErr;
-}
+++ /dev/null
-GSSLib implements the Generic Security Services API. The APi is documented in
-RFC 2078, which you can find at <ftp://ftp.isi.edu/in-notes/rfc2078.txt>.
-
-The mechanism used by this implementation is Kerberos v5.
+++ /dev/null
-#ifndef _GSS_CFMGLUE_H_
-#define _GSS_CFMGLUE_H_
-
-Boolean GSSAPILibraryIsPresent ();
-Boolean GSSAPILibrarySupportsCCacheName ();
-
-#endif /* _GSS_CFMGLUE_H_ */
\ No newline at end of file
+++ /dev/null
-#----------------------------------------------------
-# GSSAPI.EXP - GSSAPI.DLL module definition file
-#----------------------------------------------------
-
- gss_acquire_cred
- gss_release_cred
- gss_init_sec_context
- gss_accept_sec_context
- gss_process_context_token
- gss_delete_sec_context
- gss_context_time
- gss_sign
- gss_verify
- gss_seal
- gss_unseal
- gss_display_status
- gss_indicate_mechs
- gss_compare_name
- gss_display_name
- gss_import_name
- gss_release_name
- gss_release_buffer
- gss_release_oid_set
- gss_inquire_cred
-#
-# GSS-API v2 additional credential calls
-#
- gss_add_cred
- gss_inquire_cred_by_mech
-#
-# GSS-API v2 additional context-level calls
-#
- gss_inquire_context
- gss_wrap_size_limit
- gss_export_sec_context
- gss_import_sec_context
-#
-# GSS-API v2 additional calls for OID and OID_set operations
-#
- gss_release_oid
- gss_create_empty_oid_set
- gss_add_oid_set_member
- gss_test_oid_set_member
- gss_oid_to_str
- gss_str_to_oid
-#
-# GSS-API v2 renamed message protection calls
-#
- gss_wrap
- gss_unwrap
- gss_get_mic
- gss_verify_mic
-#
-# GSS-API v2 future extensions
-#
- gss_inquire_names_for_mech
-# gss_inquire_mechs_for_name
- gss_canonicalize_name
- gss_export_name
- gss_duplicate_name
-#
-# krb5-specific CCache name stuff
-#
- gss_krb5_ccache_name
-
-
-
-
+++ /dev/null
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-#include <CodeFragments.h>
-
-#include "krb5_libinit.h"
-#include "crypto_libinit.h"
-
-
-OSErr __initializeK5(CFragInitBlockPtr ibp);
-void __terminateGSSK5glue(void);
-
-OSErr __initializeK5(CFragInitBlockPtr ibp)
-{
- OSErr err = noErr;
-
- err = __initialize();
-
- if (err == noErr) {
- err = krb5int_initialize_library ();
- }
-
- if (err == noErr) {
- err = cryptoint_initialize_library ();
- }
-
- return err;
-}
-
-void __terminateK5(void)
-{
-
- cryptoint_cleanup_library ();
- krb5int_cleanup_library ();
-
- __terminate();
-}
+++ /dev/null
-/* Include prototypes for glue functions */
-#include <krb5.h>
-
-/* Hardcode library fragment name here */
-#define kLibraryName "\pMIT Kerberos¥Kerberos5Lib"
+++ /dev/null
-krb5_error_code krb5_c_encrypt (krb5_context context, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*ivec, const krb5_data*input, krb5_enc_data*output);
-krb5_error_code krb5_c_decrypt (krb5_context context, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*ivec, const krb5_enc_data*input, krb5_data*output);
-krb5_error_code krb5_c_encrypt_length (krb5_context context, krb5_enctype enctype, size_t inputlen, size_t*length);
-krb5_error_code krb5_c_block_size (krb5_context context, krb5_enctype enctype, size_t*blocksize);
-krb5_error_code krb5_c_make_random_key (krb5_context context, krb5_enctype enctype, krb5_keyblock*random_key);
-krb5_error_code krb5_c_random_make_octets (krb5_context context, krb5_data*data);
-krb5_error_code krb5_c_random_seed (krb5_context context, krb5_data*data);
-krb5_error_code krb5_c_string_to_key (krb5_context context, krb5_enctype enctype, const krb5_data*string, const krb5_data*salt, krb5_keyblock*key);
-krb5_error_code krb5_c_enctype_compare (krb5_context context, krb5_enctype e1, krb5_enctype e2, krb5_boolean*similar);
-krb5_error_code krb5_c_make_checksum (krb5_context context, krb5_cksumtype cksumtype, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*input, krb5_checksum*cksum);
-krb5_error_code krb5_c_verify_checksum (krb5_context context, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*data, const krb5_checksum*cksum, krb5_boolean*valid);
-krb5_error_code krb5_c_checksum_length (krb5_context context, krb5_cksumtype cksumtype, size_t*length);
-krb5_error_code krb5_c_keyed_checksum_types (krb5_context context, krb5_enctype enctype, unsigned int*count, krb5_cksumtype**cksumtypes);
-krb5_boolean valid_enctype (const krb5_enctype ktype);
-krb5_boolean valid_cksumtype (const krb5_cksumtype ctype);
-krb5_boolean is_coll_proof_cksum (const krb5_cksumtype ctype);
-krb5_boolean is_keyed_cksum (const krb5_cksumtype ctype);
-krb5_error_code krb5_encrypt (krb5_context context, const krb5_pointer inptr, krb5_pointer outptr, const size_t size, krb5_encrypt_block* eblock, krb5_pointer ivec);
-krb5_error_code krb5_decrypt (krb5_context context, const krb5_pointer inptr, krb5_pointer outptr, const size_t size, krb5_encrypt_block* eblock, krb5_pointer ivec);
-krb5_error_code krb5_process_key (krb5_context context, krb5_encrypt_block* eblock, const krb5_keyblock* key);
-krb5_error_code krb5_finish_key (krb5_context context, krb5_encrypt_block* eblock);
-krb5_error_code krb5_string_to_key (krb5_context context, const krb5_encrypt_block* eblock, krb5_keyblock* keyblock, const krb5_data* data, const krb5_data* salt);
-krb5_error_code krb5_init_random_key (krb5_context context, const krb5_encrypt_block* eblock, const krb5_keyblock* keyblock, krb5_pointer* ptr);
-krb5_error_code krb5_finish_random_key (krb5_context context, const krb5_encrypt_block* eblock, krb5_pointer* ptr);
-krb5_error_code krb5_random_key (krb5_context context, const krb5_encrypt_block* eblock, krb5_pointer ptr, krb5_keyblock** keyblock);
-krb5_enctype krb5_eblock_enctype (krb5_context context, const krb5_encrypt_block* eblock);
-krb5_error_code krb5_use_enctype (krb5_context context, krb5_encrypt_block* eblock, const krb5_enctype enctype);
-size_t krb5_encrypt_size (const size_t length, krb5_enctype crypto);
-size_t krb5_checksum_size (krb5_context context, const krb5_cksumtype ctype);
-krb5_error_code krb5_calculate_checksum (krb5_context context, const krb5_cksumtype ctype, const krb5_pointer in, const size_t in_length, const krb5_pointer seed, const size_t seed_length, krb5_checksum* outcksum);
-krb5_error_code krb5_verify_checksum (krb5_context context, const krb5_cksumtype ctype, const krb5_checksum* cksum, const krb5_pointer in, const size_t in_length, const krb5_pointer seed, const size_t seed_length);
-krb5_error_code krb5_random_confounder (size_t, krb5_pointer);
-krb5_error_code krb5_encrypt_data (krb5_context context, krb5_keyblock*key, krb5_pointer ivec, krb5_data*data, krb5_enc_data*enc_data);
-krb5_error_code krb5_decrypt_data (krb5_context context, krb5_keyblock*key, krb5_pointer ivec, krb5_enc_data*data, krb5_data*enc_data);
-krb5_error_code krb5_rc_default (krb5_context, krb5_rcache*);
-krb5_error_code krb5_rc_register_type (krb5_context, krb5_rc_ops*);
-krb5_error_code krb5_rc_resolve_type (krb5_context, krb5_rcache*,char*);
-krb5_error_code krb5_rc_resolve_full (krb5_context, krb5_rcache*,char*);
-char* krb5_rc_get_type (krb5_context, krb5_rcache);
-char* krb5_rc_default_type (krb5_context);
-char* krb5_rc_default_name (krb5_context);
-krb5_error_code krb5_auth_to_rep (krb5_context, krb5_tkt_authent*, krb5_donot_replay*);
-krb5_error_code krb5_init_context (krb5_context*);
-void krb5_free_context (krb5_context);
-krb5_error_code krb5_set_default_in_tkt_ktypes (krb5_context, const krb5_enctype*);
-krb5_error_code krb5_get_default_in_tkt_ktypes (krb5_context, krb5_enctype**);
-krb5_error_code krb5_set_default_tgs_ktypes (krb5_context, const krb5_enctype*);
-krb5_error_code krb5_get_tgs_ktypes (krb5_context, krb5_const_principal, krb5_enctype**);
-krb5_error_code krb5_get_permitted_enctypes (krb5_context, krb5_enctype**);
-krb5_boolean krb5_is_permitted_enctype (krb5_context, krb5_enctype);
-krb5_error_code krb5_kdc_rep_decrypt_proc (krb5_context, const krb5_keyblock*, krb5_const_pointer, krb5_kdc_rep* );
-krb5_error_code krb5_decrypt_tkt_part (krb5_context, const krb5_keyblock*, krb5_ticket* );
-krb5_error_code krb5_get_cred_from_kdc (krb5_context, krb5_ccache, krb5_creds*, krb5_creds**, krb5_creds*** );
-krb5_error_code krb5_get_cred_from_kdc_validate (krb5_context, krb5_ccache, krb5_creds*, krb5_creds**, krb5_creds***);
-krb5_error_code krb5_get_cred_from_kdc_renew (krb5_context, krb5_ccache, krb5_creds*, krb5_creds**, krb5_creds***);
-void krb5_free_tgt_creds (krb5_context, krb5_creds**);
-krb5_error_code krb5_get_credentials (krb5_context, const krb5_flags, krb5_ccache, krb5_creds*, krb5_creds**);
-krb5_error_code krb5_get_credentials_validate (krb5_context, const krb5_flags, krb5_ccache, krb5_creds*, krb5_creds**);
-krb5_error_code krb5_get_credentials_renew (krb5_context, const krb5_flags, krb5_ccache, krb5_creds*, krb5_creds**);
-krb5_error_code krb5_get_cred_via_tkt (krb5_context, krb5_creds*, const krb5_flags, krb5_address* const*, krb5_creds*, krb5_creds**);
-krb5_error_code krb5_mk_req (krb5_context, krb5_auth_context*, const krb5_flags, char*, char*, krb5_data*, krb5_ccache, krb5_data*);
-krb5_error_code krb5_mk_req_extended (krb5_context, krb5_auth_context*, const krb5_flags, krb5_data*, krb5_creds*, krb5_data*);
-krb5_error_code krb5_mk_rep (krb5_context, krb5_auth_context, krb5_data*);
-krb5_error_code krb5_rd_rep (krb5_context, krb5_auth_context, const krb5_data*, krb5_ap_rep_enc_part**);
-krb5_error_code krb5_mk_error (krb5_context, const krb5_error*, krb5_data*);
-krb5_error_code krb5_rd_error (krb5_context, const krb5_data*, krb5_error**);
-krb5_error_code krb5_rd_safe (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
-krb5_error_code krb5_rd_priv (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
-krb5_error_code krb5_parse_name (krb5_context, const char*, krb5_principal*);
-krb5_error_code krb5_unparse_name (krb5_context, krb5_const_principal, char**);
-krb5_error_code krb5_unparse_name_ext (krb5_context, krb5_const_principal, char**, int*);
-krb5_error_code krb5_set_principal_realm (krb5_context, krb5_principal, const char*);
-krb5_boolean krb5_address_search (krb5_context, const krb5_address*, krb5_address* const*);
-krb5_boolean krb5_address_compare (krb5_context, const krb5_address*, const krb5_address*);
-int krb5_address_order (krb5_context, const krb5_address*, const krb5_address*);
-krb5_boolean krb5_realm_compare (krb5_context, krb5_const_principal, krb5_const_principal);
-krb5_boolean krb5_principal_compare (krb5_context, krb5_const_principal, krb5_const_principal);
-krb5_error_code krb5_copy_keyblock (krb5_context, const krb5_keyblock*, krb5_keyblock**);
-krb5_error_code krb5_copy_keyblock_contents (krb5_context, const krb5_keyblock*, krb5_keyblock*);
-krb5_error_code krb5_copy_creds (krb5_context, const krb5_creds*, krb5_creds**);
-krb5_error_code krb5_copy_data (krb5_context, const krb5_data*, krb5_data**);
-krb5_error_code krb5_copy_principal (krb5_context, krb5_const_principal, krb5_principal*);
-krb5_error_code krb5_copy_addr (krb5_context, const krb5_address*, krb5_address**);
-krb5_error_code krb5_copy_addresses (krb5_context, krb5_address* const*, krb5_address***);
-krb5_error_code krb5_copy_ticket (krb5_context, const krb5_ticket*, krb5_ticket**);
-krb5_error_code krb5_copy_authdata (krb5_context, krb5_authdata* const*, krb5_authdata***);
-krb5_error_code krb5_copy_authenticator (krb5_context, const krb5_authenticator*, krb5_authenticator**);
-krb5_error_code krb5_copy_checksum (krb5_context, const krb5_checksum*, krb5_checksum**);
-void krb5_init_ets (krb5_context);
-void krb5_free_ets (krb5_context);
-krb5_error_code krb5_generate_subkey (krb5_context, const krb5_keyblock*, krb5_keyblock**);
-krb5_error_code krb5_generate_seq_number (krb5_context, const krb5_keyblock*, krb5_int32*);
-krb5_error_code krb5_get_server_rcache (krb5_context, const krb5_data*, krb5_rcache*);
-krb5_error_code krb5_build_principal_va (krb5_context, krb5_principal, int, const char*, va_list);
-krb5_error_code krb5_425_conv_principal (krb5_context, const char*name, const char*instance, const char*realm, krb5_principal*princ);
-krb5_error_code krb5_524_conv_principal (krb5_context context, const krb5_principal princ, char*name, char*inst, char*realm);
-krb5_error_code krb5_mk_chpw_req (krb5_context context, krb5_auth_context auth_context, krb5_data*ap_req, char*passwd, krb5_data*packet);
-krb5_error_code krb5_rd_chpw_rep (krb5_context context, krb5_auth_context auth_context, krb5_data*packet, int*result_code, krb5_data*result_data);
-krb5_error_code krb5_chpw_result_code_string (krb5_context context, int result_code, char**result_codestr);
-krb5_error_code krb5_kt_register (krb5_context, krb5_kt_ops*);
-krb5_error_code krb5_kt_resolve (krb5_context, const char*, krb5_keytab*);
-krb5_error_code krb5_kt_default_name (krb5_context, char*, int);
-krb5_error_code krb5_kt_default (krb5_context, krb5_keytab*);
-krb5_error_code krb5_kt_free_entry (krb5_context, krb5_keytab_entry*);
-krb5_error_code krb5_kt_remove_entry (krb5_context, krb5_keytab, krb5_keytab_entry*);
-krb5_error_code krb5_kt_add_entry (krb5_context, krb5_keytab, krb5_keytab_entry*);
-krb5_error_code krb5_principal2salt (krb5_context, krb5_const_principal, krb5_data*);
-krb5_error_code krb5_principal2salt_norealm (krb5_context, krb5_const_principal, krb5_data*);
-krb5_error_code krb5_cc_resolve (krb5_context, const char*, krb5_ccache*);
-const char* krb5_cc_default_name (krb5_context);
-krb5_error_code krb5_cc_set_default_name (krb5_context, const char*);
-krb5_error_code krb5_cc_default (krb5_context, krb5_ccache*);
-unsigned int krb5_get_notification_message (void);
-krb5_error_code krb5_cc_copy_creds (krb5_context context, krb5_ccache incc, krb5_ccache outcc);
-krb5_error_code krb5_check_transited_list (krb5_context, krb5_data*trans, krb5_data*realm1, krb5_data*realm2);
-void krb5_free_realm_tree (krb5_context, krb5_principal*);
-void krb5_free_principal (krb5_context, krb5_principal);
-void krb5_free_authenticator (krb5_context, krb5_authenticator*);
-void krb5_free_authenticator_contents (krb5_context, krb5_authenticator*);
-void krb5_free_addresses (krb5_context, krb5_address**);
-void krb5_free_address (krb5_context, krb5_address*);
-void krb5_free_authdata (krb5_context, krb5_authdata**);
-void krb5_free_enc_tkt_part (krb5_context, krb5_enc_tkt_part*);
-void krb5_free_ticket (krb5_context, krb5_ticket*);
-void krb5_free_tickets (krb5_context, krb5_ticket**);
-void krb5_free_kdc_req (krb5_context, krb5_kdc_req*);
-void krb5_free_kdc_rep (krb5_context, krb5_kdc_rep*);
-void krb5_free_last_req (krb5_context, krb5_last_req_entry**);
-void krb5_free_enc_kdc_rep_part (krb5_context, krb5_enc_kdc_rep_part*);
-void krb5_free_error (krb5_context, krb5_error*);
-void krb5_free_ap_req (krb5_context, krb5_ap_req*);
-void krb5_free_ap_rep (krb5_context, krb5_ap_rep*);
-void krb5_free_safe (krb5_context, krb5_safe*);
-void krb5_free_priv (krb5_context, krb5_priv*);
-void krb5_free_priv_enc_part (krb5_context, krb5_priv_enc_part*);
-void krb5_free_cred (krb5_context, krb5_cred*);
-void krb5_free_creds (krb5_context, krb5_creds*);
-void krb5_free_cred_contents (krb5_context, krb5_creds*);
-void krb5_free_cred_enc_part (krb5_context, krb5_cred_enc_part*);
-void krb5_free_checksum (krb5_context, krb5_checksum*);
-void krb5_free_checksum_contents (krb5_context, krb5_checksum*);
-void krb5_free_keyblock (krb5_context, krb5_keyblock*);
-void krb5_free_keyblock_contents (krb5_context, krb5_keyblock*);
-void krb5_free_pa_data (krb5_context, krb5_pa_data**);
-void krb5_free_ap_rep_enc_part (krb5_context, krb5_ap_rep_enc_part*);
-void krb5_free_tkt_authent (krb5_context, krb5_tkt_authent*);
-void krb5_free_pwd_data (krb5_context, krb5_pwd_data*);
-void krb5_free_pwd_sequences (krb5_context, passwd_phrase_element**);
-void krb5_free_data (krb5_context, krb5_data*);
-void krb5_free_data_contents (krb5_context, krb5_data*);
-void krb5_free_unparsed_name (krb5_context, char*);
-void krb5_free_cksumtypes (krb5_context, krb5_cksumtype*);
-krb5_error_code krb5_us_timeofday (krb5_context, krb5_int32*, krb5_int32*);
-krb5_error_code krb5_timeofday (krb5_context, krb5_int32*);
-krb5_error_code krb5_os_localaddr (krb5_context, krb5_address***);
-krb5_error_code krb5_get_default_realm (krb5_context, char**);
-krb5_error_code krb5_set_default_realm (krb5_context, const char*);
-krb5_error_code krb5_sname_to_principal (krb5_context, const char*, const char*, krb5_int32, krb5_principal*);
-krb5_error_code krb5_change_password (krb5_context context, krb5_creds*creds, char*newpw, int*result_code, krb5_data*result_code_string, krb5_data*result_string);
-krb5_error_code krb5_get_profile (krb5_context, profile_t*);
-krb5_error_code krb5_secure_config_files (krb5_context);
-krb5_error_code krb5_send_tgs (krb5_context, const krb5_flags, const krb5_ticket_times*, const krb5_enctype*, krb5_const_principal, krb5_address* const*, krb5_authdata* const*, krb5_pa_data* const*, const krb5_data*, krb5_creds*, krb5_response*);
-krb5_error_code krb5_get_in_tkt_with_password (krb5_context, const krb5_flags, krb5_address* const*, krb5_enctype*, krb5_preauthtype*, const char*, krb5_ccache, krb5_creds*, krb5_kdc_rep**);
-krb5_error_code krb5_get_in_tkt_with_skey (krb5_context, const krb5_flags, krb5_address* const*, krb5_enctype*, krb5_preauthtype*, const krb5_keyblock*, krb5_ccache, krb5_creds*, krb5_kdc_rep**);
-krb5_error_code krb5_get_in_tkt_with_keytab (krb5_context, const krb5_flags, krb5_address* const*, krb5_enctype*, krb5_preauthtype*, const krb5_keytab, krb5_ccache, krb5_creds*, krb5_kdc_rep**);
-krb5_error_code krb5_decode_kdc_rep (krb5_context, krb5_data*, const krb5_keyblock*, krb5_kdc_rep**);
-krb5_error_code krb5_rd_req (krb5_context, krb5_auth_context*, const krb5_data*, krb5_const_principal, krb5_keytab, krb5_flags*, krb5_ticket**);
-krb5_error_code krb5_rd_req_decoded (krb5_context, krb5_auth_context*, const krb5_ap_req*, krb5_const_principal, krb5_keytab, krb5_flags*, krb5_ticket**);
-krb5_error_code krb5_rd_req_decoded_anyflag (krb5_context, krb5_auth_context*, const krb5_ap_req*, krb5_const_principal, krb5_keytab, krb5_flags*, krb5_ticket**);
-krb5_error_code krb5_kt_read_service_key (krb5_context, krb5_pointer, krb5_principal, krb5_kvno, krb5_enctype, krb5_keyblock**);
-krb5_error_code krb5_mk_safe (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
-krb5_error_code krb5_mk_priv (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
-krb5_error_code krb5_cc_register (krb5_context, krb5_cc_ops*, krb5_boolean);
-krb5_error_code krb5_sendauth (krb5_context, krb5_auth_context*, krb5_pointer, char*, krb5_principal, krb5_principal, krb5_flags, krb5_data*, krb5_creds*, krb5_ccache, krb5_error**, krb5_ap_rep_enc_part**, krb5_creds**);
-krb5_error_code krb5_recvauth (krb5_context, krb5_auth_context*, krb5_pointer, char*, krb5_principal, krb5_int32, krb5_keytab, krb5_ticket**);
-krb5_error_code krb5_walk_realm_tree (krb5_context, const krb5_data*, const krb5_data*, krb5_principal**, int);
-krb5_error_code krb5_mk_ncred (krb5_context, krb5_auth_context, krb5_creds**, krb5_data**, krb5_replay_data*);
-krb5_error_code krb5_mk_1cred (krb5_context, krb5_auth_context, krb5_creds*, krb5_data**, krb5_replay_data*);
-krb5_error_code krb5_rd_cred (krb5_context, krb5_auth_context, krb5_data*, krb5_creds***, krb5_replay_data*);
-krb5_error_code krb5_fwd_tgt_creds (krb5_context, krb5_auth_context, char*, krb5_principal, krb5_principal, krb5_ccache, int forwardable, krb5_data*);
-krb5_error_code krb5_auth_con_init (krb5_context, krb5_auth_context*);
-krb5_error_code krb5_auth_con_free (krb5_context, krb5_auth_context);
-krb5_error_code krb5_auth_con_setflags (krb5_context, krb5_auth_context, krb5_int32);
-krb5_error_code krb5_auth_con_getflags (krb5_context, krb5_auth_context, krb5_int32*);
-krb5_error_code krb5_auth_con_setaddrs (krb5_context, krb5_auth_context, krb5_address*, krb5_address*);
-krb5_error_code krb5_auth_con_getaddrs (krb5_context, krb5_auth_context, krb5_address**, krb5_address**);
-krb5_error_code krb5_auth_con_setports (krb5_context, krb5_auth_context, krb5_address*, krb5_address*);
-krb5_error_code krb5_auth_con_setuseruserkey (krb5_context, krb5_auth_context, krb5_keyblock*);
-krb5_error_code krb5_auth_con_getkey (krb5_context, krb5_auth_context, krb5_keyblock**);
-krb5_error_code krb5_auth_con_getlocalsubkey (krb5_context, krb5_auth_context, krb5_keyblock**);
-krb5_error_code krb5_auth_con_set_req_cksumtype (krb5_context, krb5_auth_context, krb5_cksumtype);
-krb5_error_code krb5_auth_con_set_safe_cksumtype (krb5_context, krb5_auth_context, krb5_cksumtype);
-krb5_error_code krb5_auth_con_getcksumtype (krb5_context, krb5_auth_context, krb5_cksumtype*);
-krb5_error_code krb5_auth_con_getlocalseqnumber (krb5_context, krb5_auth_context, krb5_int32*);
-krb5_error_code krb5_auth_con_getremoteseqnumber (krb5_context, krb5_auth_context, krb5_int32*);
-krb5_error_code krb5_auth_con_initivector (krb5_context, krb5_auth_context);
-krb5_error_code krb5_auth_con_setivector (krb5_context, krb5_auth_context, krb5_pointer);
-krb5_error_code krb5_auth_con_getivector (krb5_context, krb5_auth_context, krb5_pointer*);
-krb5_error_code krb5_auth_con_setrcache (krb5_context, krb5_auth_context, krb5_rcache);
-krb5_error_code krb5_auth_con_getrcache (krb5_context, krb5_auth_context, krb5_rcache*);
-krb5_error_code krb5_auth_con_getauthenticator (krb5_context, krb5_auth_context, krb5_authenticator**);
-krb5_error_code krb5_auth_con_getremotesubkey (krb5_context, krb5_auth_context, krb5_keyblock**);
-krb5_error_code krb5_read_password (krb5_context, const char*, const char*, char*, int*);
-krb5_error_code krb5_aname_to_localname (krb5_context, krb5_const_principal, const int, char*);
-krb5_error_code krb5_get_host_realm (krb5_context, const char*, char***);
-krb5_error_code krb5_free_host_realm (krb5_context, char* const*);
-krb5_error_code krb5_get_realm_domain (krb5_context, const char*, char**);
-krb5_boolean krb5_kuserok (krb5_context, krb5_principal, const char*);
-krb5_error_code krb5_auth_con_genaddrs (krb5_context, krb5_auth_context, int, int);
-krb5_error_code krb5_gen_portaddr (krb5_context, const krb5_address*, krb5_const_pointer, krb5_address**);
-krb5_error_code krb5_make_fulladdr (krb5_context, krb5_address*, krb5_address*, krb5_address*);
-krb5_error_code krb5_os_hostaddr (krb5_context, const char*, krb5_address***);
-krb5_error_code krb5_set_real_time (krb5_context, krb5_int32, krb5_int32);
-krb5_error_code krb5_set_debugging_time (krb5_context, krb5_int32, krb5_int32);
-krb5_error_code krb5_use_natural_time (krb5_context);
-krb5_error_code krb5_get_time_offsets (krb5_context, krb5_int32*, krb5_int32*);
-krb5_error_code krb5_set_time_offsets (krb5_context, krb5_int32, krb5_int32);
-krb5_error_code krb5_string_to_enctype (char*, krb5_enctype*);
-krb5_error_code krb5_string_to_salttype (char*, krb5_int32*);
-krb5_error_code krb5_string_to_cksumtype (char*, krb5_cksumtype*);
-krb5_error_code krb5_string_to_timestamp (char*, krb5_timestamp*);
-krb5_error_code krb5_string_to_deltat (char*, krb5_deltat*);
-krb5_error_code krb5_enctype_to_string (krb5_enctype, char*, size_t);
-krb5_error_code krb5_salttype_to_string (krb5_int32, char*, size_t);
-krb5_error_code krb5_cksumtype_to_string (krb5_cksumtype, char*, size_t);
-krb5_error_code krb5_timestamp_to_string (krb5_timestamp, char*, size_t);
-krb5_error_code krb5_timestamp_to_sfstring (krb5_timestamp, char*, size_t, char*);
-krb5_error_code krb5_deltat_to_string (krb5_deltat, char*, size_t);
-krb5_error_code krb5_prompter_posix (krb5_context context, void*data, const char*name, const char*banner, int num_prompts, krb5_prompt prompts[]);
-void krb5_get_init_creds_opt_init (krb5_get_init_creds_opt*opt);
-void krb5_get_init_creds_opt_set_tkt_life (krb5_get_init_creds_opt*opt, krb5_deltat tkt_life);
-void krb5_get_init_creds_opt_set_renew_life (krb5_get_init_creds_opt*opt, krb5_deltat renew_life);
-void krb5_get_init_creds_opt_set_forwardable (krb5_get_init_creds_opt*opt, int forwardable);
-void krb5_get_init_creds_opt_set_proxiable (krb5_get_init_creds_opt*opt, int proxiable);
-void krb5_get_init_creds_opt_set_etype_list (krb5_get_init_creds_opt*opt, krb5_enctype*etype_list, int etype_list_length);
-void krb5_get_init_creds_opt_set_address_list (krb5_get_init_creds_opt*opt, krb5_address**addresses);
-void krb5_get_init_creds_opt_set_preauth_list (krb5_get_init_creds_opt*opt, krb5_preauthtype*preauth_list, int preauth_list_length);
-void krb5_get_init_creds_opt_set_salt (krb5_get_init_creds_opt*opt, krb5_data*salt);
-krb5_error_code krb5_get_init_creds_password (krb5_context context, krb5_creds*creds, krb5_principal client, char*password, krb5_prompter_fct prompter, void*data, krb5_deltat start_time, char*in_tkt_service, krb5_get_init_creds_opt*options);
-krb5_error_code krb5_get_init_creds_keytab (krb5_context context, krb5_creds*creds, krb5_principal client, krb5_keytab arg_keytab, krb5_deltat start_time, char*in_tkt_service, krb5_get_init_creds_opt*options);
-void krb5_verify_init_creds_opt_init (krb5_verify_init_creds_opt*options);
-void krb5_verify_init_creds_opt_set_ap_req_nofail (krb5_verify_init_creds_opt*options, int ap_req_nofail);
-krb5_error_code krb5_verify_init_creds (krb5_context context, krb5_creds*creds, krb5_principal ap_req_server, krb5_keytab ap_req_keytab, krb5_ccache*ccache, krb5_verify_init_creds_opt*options);
-krb5_error_code krb5_get_validated_creds (krb5_context context, krb5_creds*creds, krb5_principal client, krb5_ccache ccache, char*in_tkt_service);
-krb5_error_code krb5_get_renewed_creds (krb5_context context, krb5_creds*creds, krb5_principal client, krb5_ccache ccache, char*in_tkt_service);
-krb5_error_code krb5_realm_iterator_create (krb5_context context, void**iter_p);
-krb5_error_code krb5_realm_iterator (krb5_context context, void**iter_p, char**ret_realm);
-void krb5_realm_iterator_free (krb5_context context, void**iter_p);
-void krb5_free_realm_string (krb5_context context, char*str);
+++ /dev/null
-#include <Kerberos5Lib.glue.h>
-
-Boolean KerberosV5LibraryIsPresent ()
-{
- Ptr symAddr;
- return (Find_Symbol (&symAddr, "\pkrb5_get_credentials", krb5_get_credentials_ProcInfo)) == noErr;
-}
\ No newline at end of file
+++ /dev/null
-#----------------------------------------------------
-# KRB5.DEF - KRB5.DLL module definition file
-#----------------------------------------------------
-
-# Kerberos 5
- krb5_build_principal
- krb5_build_principal_ext
- krb5_copy_addr
- krb5_copy_addresses
- krb5_copy_authdata
- krb5_copy_authenticator
- krb5_copy_checksum
- krb5_copy_creds
- krb5_copy_data
- krb5_copy_keyblock
- krb5_copy_keyblock_contents
- krb5_copy_principal
- krb5_copy_ticket
- krb5_decrypt_tkt_part
- krb5_free_address
- krb5_free_addresses
- krb5_free_ap_rep
- krb5_free_ap_rep_enc_part
- krb5_free_ap_req
- krb5_free_authdata
- krb5_free_authenticator
- krb5_free_authenticator_contents
- krb5_free_checksum
- krb5_free_context
- krb5_free_cred
- krb5_free_cred_contents
- krb5_free_cred_enc_part
- krb5_free_creds
- krb5_free_data
- krb5_free_data_contents
- krb5_free_default_realm
- krb5_free_enc_kdc_rep_part
- krb5_free_enc_tkt_part
- krb5_free_error
- krb5_free_host_realm
- krb5_free_kdc_rep
- krb5_free_kdc_req
- krb5_free_keyblock
- krb5_free_keyblock_contents
- krb5_free_last_req
- krb5_free_pa_data
- krb5_free_principal
- krb5_free_priv
- krb5_free_priv_enc_part
- krb5_free_pwd_data
- krb5_free_pwd_sequences
- krb5_free_safe
- krb5_free_tgt_creds
- krb5_free_ticket
- krb5_free_tickets
- krb5_free_tkt_authent
- krb5_free_checksum_contents
- krb5_free_cksumtypes
- krb5_fwd_tgt_creds
- krb5_get_credentials
- krb5_get_credentials_renew
- krb5_get_credentials_validate
- krb5_get_default_realm
- krb5_get_host_realm
- krb5_get_in_tkt
- krb5_get_in_tkt_with_keytab
- krb5_get_in_tkt_with_password
- krb5_get_in_tkt_with_skey
- krb5_get_init_creds_opt_init
- krb5_get_init_creds_opt_set_tkt_life
- krb5_get_init_creds_opt_set_renew_life
- krb5_get_init_creds_opt_set_forwardable
- krb5_get_init_creds_opt_set_proxiable
- krb5_get_init_creds_opt_set_etype_list
- krb5_get_init_creds_opt_set_address_list
- krb5_get_init_creds_opt_set_preauth_list
- krb5_get_init_creds_opt_set_salt
- krb5_get_init_creds_password
- krb5_get_init_creds_keytab
- krb5_get_init_creds_opt_init
- krb5_get_validated_creds
- krb5_get_renewed_creds
- krb5_get_notification_message
- krb5_init_context
- krb5_mk_error
- krb5_mk_priv
- krb5_mk_rep
- krb5_mk_req
- krb5_mk_req_extended
- krb5_mk_safe
- krb5_os_localaddr
- krb5_parse_name
- krb5_principal_compare
- krb5_get_prompt_types
- krb5_rd_cred
- krb5_rd_error
- krb5_rd_priv
- krb5_rd_rep
- krb5_rd_req
- krb5_rd_safe
- krb5_read_password
- krb5_recvauth
- krb5_sendauth
- krb5_sname_to_principal
- krb5_timeofday
- krb5_unparse_name
- krb5_unparse_name_ext
- krb5_free_unparsed_name
- krb5_us_timeofday
- krb5_get_server_rcache
-#
- krb5_use_enctype
- krb5_checksum_size
- krb5_encrypt_size
- krb5_calculate_checksum
- krb5_verify_checksum
- krb5_eblock_enctype
-#
- krb5_decrypt
- krb5_encrypt
- krb5_string_to_key
- krb5_process_key
- krb5_finish_key
- krb5_init_random_key
- krb5_finish_random_key
- krb5_random_key
-#
- krb5_425_conv_principal
- krb5_524_conv_principal
-#
- krb5_cksumtype_to_string
- krb5_deltat_to_string
- krb5_enctype_to_string
- krb5_salttype_to_string
- krb5_string_to_cksumtype
- krb5_string_to_deltat
- krb5_string_to_enctype
- krb5_string_to_salttype
- krb5_string_to_timestamp
- krb5_timestamp_to_sfstring
- krb5_timestamp_to_string
-#
- krb5_auth_con_init
- krb5_auth_con_free
- krb5_auth_con_setflags
- krb5_auth_con_getflags
- krb5_auth_con_setaddrs
- krb5_auth_con_getaddrs
- krb5_auth_con_setports
- krb5_auth_con_setuseruserkey
- krb5_auth_con_getkey
- krb5_auth_con_getlocalsubkey
- krb5_auth_con_set_req_cksumtype
- krb5_auth_con_set_safe_cksumtype
-# krb5_auth_con_getcksumtype Why is this missing from sources?
- krb5_auth_con_getlocalseqnumber
- krb5_auth_con_getremoteseqnumber
- krb5_auth_con_initivector
- krb5_auth_con_getivector
- krb5_auth_con_setivector
- krb5_auth_con_setrcache
- krb5_auth_con_getrcache
- krb5_auth_con_getremotesubkey
- krb5_auth_con_getauthenticator
- krb5_auth_con_genaddrs
-#
- krb5_cc_default
- krb5_cc_default_name
- krb5_cc_register
- krb5_cc_resolve
-#
- krb5_kt_default
- krb5_kt_register
- krb5_kt_resolve
- krb5_kt_add_entry
- krb5_kt_free_entry
- krb5_kt_read_service_key
- krb5_kt_remove_entry
-
-#
- krb5_change_password
-#
- krb5_realm_iterator_create
- krb5_realm_iterator
- krb5_realm_iterator_free
- krb5_free_realm_string
-#
- krb5_cc_set_default_name
-#
- krb5_get_profile
-#
-# Added for 1.2:
- krb5_decode_ticket
-
-#Temporary exports (DO NOT USE)
- krb5_get_time_offsets # WrappersLib
- krb5int_cc_default # GSSAPI
- krb5_size_opaque # GSSAPI
- krb5_internalize_opaque # GSSAPI
- krb5_externalize_opaque # GSSAPI
- krb5_ser_pack_int32 # GSSAPI
- krb5_ser_unpack_int32 # GSSAPI
- krb5_ser_pack_bytes # GSSAPI
- krb5_ser_unpack_bytes # GSSAPI
- krb5_ser_auth_context_init # GSSAPI
- krb5_ser_context_init # GSSAPI
- krb5_ser_ccache_init # GSSAPI
- krb5_ser_keytab_init # GSSAPI
- krb5_ser_rcache_init # GSSAPI
- decode_krb5_ap_req # GSSAPI
- krb5_mcc_ops # GSSAPI
- krb5_c_keyed_checksum_types # GSSAPI
- krb5_c_random_make_octets # GSSAPI
- krb5_c_encrypt # GSSAPI
- krb5_c_make_checksum # GSSAPI
- krb5_c_decrypt # GSSAPI
- krb5_c_verify_checksum # GSSAPI
- krb5_c_block_size # GSSAPI
- krb5_c_checksum_length # GSSAPI
- krb5_c_encrypt_length # GSSAPI
\ No newline at end of file
+++ /dev/null
-#ifndef _K5_CFMGLUE_H_
-#define _K5_CFMGLUE_H_
-
-Boolean KerberosV5LibraryIsPresent ();
-
-#endif /* _K5_CFMGLUE_H_ */
\ No newline at end of file
+++ /dev/null
-KerberosProfileLib implements the Kerberos 5 profile API, used for reading and writing
-Kerberos configuration files. See profile.h for API documentation.
-
-Note that you should rarely, if ever, use profile_init or profile_init_path. You
-probably mean to use krb5_get_profile, to avoid making your code depend on the
-location of a specific Kerberos 5 preferences file. This is especially important
-as the name and possibly the location of Kerberos configuration file is going to
-change in the future.
-
-Also note that you need both Kerberos5Lib:Headers: and KerberosProfileLib:Headers:
-in your include path to use profile.h
\ No newline at end of file
+++ /dev/null
-#ifndef _KERBEROSPROFILE_CFMGLUE_H_
-#define _KERBEROSPROFILE_CFMGLUE_H_
-
-Boolean KerberosProfileLibraryIsPresent ();
-
-#endif /* _KERBEROSPROFILE_CFMGLUE_H_ */
\ No newline at end of file
+++ /dev/null
-#include <KrbProfileLib.glue.h>
-
-Boolean KerberosProfileLibraryIsPresent ()
-{
- Ptr symAddr;
- return (Find_Symbol (&symAddr, "\pprofile_init", profile_init_ProcInfo)) == noErr;
-}
\ No newline at end of file
+++ /dev/null
-/* Include prototypes for glue functions */
-#include <profile.h>
-
-/* Hardcode library fragment name here */
-#define kLibraryName "\pMIT Kerberos¥KerberosProfileLib"
+++ /dev/null
-long profile_init (profile_filespec_t *files, profile_t *ret_profile);
-long profile_init_path (profile_filespec_list_t filelist, profile_t *ret_profile);
-long profile_flush (profile_t profile);
-void profile_abandon (profile_t profile);
-void profile_release (profile_t profile);
-long profile_get_values (profile_t profile, const char **names, char ***ret_values);
-void profile_free_list (char **list);
-long profile_get_string (profile_t profile, const char *name, const char *subname, const char *subsubname, const char *def_val, char **ret_string); long profile_get_integer (profile_t profile, const char *name, const char *subname, const char *subsubname, int def_val, int *ret_default);
-long profile_get_relation_names (profile_t profile, const char **names, char ***ret_names);
-long profile_get_subsection_names (profile_t profile, const char **names, char ***ret_names);
-long profile_iterator_create (profile_t profile, const char **names, int flags, void **ret_iter);
-void profile_iterator_free (void **iter_p);
-long profile_iterator (void **iter_p, char **ret_name, char **ret_value);
-void profile_release_string (char *str);
-long profile_update_relation (profile_t profile, const char **names, const char *old_value, const char *new_value);
-long profile_clear_relation (profile_t profile, const char **names);
-long profile_rename_section (profile_t profile, const char **names, const char *new_name);
-long profile_add_relation (profile_t profile, const char **names, const char *new_value);
+++ /dev/null
-##############################################################################################################
-### Important global constants
-##############################################################################################################
-
-root-folder = ::
-mitsupportlib-root-folder = {root-folder}:::MITSupportLib:
-mitkerberoslib-root-folder = {root-folder}:
-makefile-name = {root-folder}mac:Makefile
-
-library-output-folder = {root-folder}bin:
-
-library-platform-PPC = .PPC
-
-library-kind-debug = .debug
-library-kind-final =
-
-##############################################################################################################
-### Top-level targets -- abstract targets for convenient grouping
-##############################################################################################################
-
-# Everything
-all Ä unset-echo all-debug all-final
-
-# Debugging versions
-all-debug Ä unset-echo ppc-debug
-
-# Final versions
-all-final Ä unset-echo ppc-final
-
-# Clasic 68K glue
-glue Ä unset-echo glue-gss glue-krb5
-
-unset-echo Ä
- If ({MacdevScriptDebug})
- Set Echo 1
- Else
- Unset Echo
- End
-
-##############################################################################################################
-### More global constants
-##############################################################################################################
-
-gss-library-output-folder = {root-folder}:GSSLib:Binaries:
-krb5-library-output-folder = {root-folder}:Kerberos5Lib:Binaries:
-profile-library-output-folder = {root-folder}:KerberosProfileLib:Binaries:
-comerr-library-output-folder = {root-folder}:ComErrLib:Binaries:
-
-gss-library-name = GSSLib
-krb5-library-name = Kerberos5Lib
-profile-library-name = KrbProfileLib
-comerr-library-name = ComErrLib
-
-gss-library-export = {root-folder}mac:GSSLibrary.exp
-krb5-library-export = {root-folder}mac:K5Library.exp
-profile-library-export = {root-folder}util:profile:profile.exp
-comerr-library-export = {root-folder}util:et:et.exp
-
-gss-library-fragment-name = "GSSLibrary"
-krb5-library-fragment-name = "MIT Kerberos¥Kerberos5Lib"
-profile-library-fragment-name = "MIT Kerberos¥KerberosProfileLib"
-comerr-library-fragment-name = "MIT Kerberos¥ComErrLib"
-
-gss-library-main = ¶"¶"
-krb5-library-main = ¶"¶"
-profile-library-main = ¶"¶"
-comerr-library-main = ¶"¶"
-
-gss-library-init = __initializeGSS
-krb5-library-init = __initializeK5
-profile-library-init = InitializeProfileLib
-comerr-library-init = __initialize
-
-gss-library-term = __terminateGSS
-krb5-library-term = __terminateK5
-profile-library-term = TerminateProfileLib
-comerr-library-term = __terminate
-
-gss-library-current-version = 1
-gss-library-definition-version = 0
-gss-library-implementation-version = 1
-
-krb5-library-current-version = 4
-krb5-library-definition-version = 4
-krb5-library-implementation-version = 4
-
-profile-library-current-version = 0
-profile-library-definition-version = 0
-profile-library-implementation-version = 0
-
-comerr-library-current-version = 0
-comerr-library-definition-version = 0
-comerr-library-implementation-version = 0
-
-##############################################################################################################
-### Generation of file lists
-##############################################################################################################
-
-list-generation-script-working-folder = "{root-folder}mac:"
-list-generation-script-folder = "{root-folder}mac:"
-list-generation-script = "{list-generation-script-folder}macfile_gen.pl"
-list-generation-script-root = ".."
-
-all-files-list = {root-folder}"All files.list"
-all-sources-list = {root-folder}"All sources.list"
-all-folders-list = {root-folder}"All folders.list"
-include-folders-list = {root-folder}"Include folders.list"
-
-gss-sources-list = {root-folder}"GSS sources.list"
-krb5-sources-list = {root-folder}"Krb5 sources.list"
-profile-sources-list = {root-folder}"Profile sources.list"
-
-gss-objects-ppc-debug-list = {root-folder}"GSS objects PPC debug.list"
-gss-objects-ppc-final-list = {root-folder}"GSS objects PPC final.list"
-
-krb5-objects-ppc-debug-list = {root-folder}"Krb5 objects PPC debug.list"
-krb5-objects-ppc-final-list = {root-folder}"Krb5 objects PPC final.list"
-
-profile-objects-ppc-debug-list = {root-folder}"Profile objects PPC debug.list"
-profile-objects-ppc-final-list = {root-folder}"Profile objects PPC final.list"
-
-comerr-objects-ppc-debug-list = {root-folder}"ComErr objects PPC debug.list"
-comerr-objects-ppc-final-list = {root-folder}"ComErr objects PPC final.list"
-
-all-lists = ¶
- {all-files-list} ¶
- {all-sources-list} ¶
- {all-folders-list} ¶
- {include-folders-list} ¶
- {gss-sources-list} ¶
- {krb5-sources-list} ¶
- {gss-objects-ppc-debug-list} ¶
- {gss-objects-ppc-final-list} ¶
- {krb5-objects-ppc-debug-list} ¶
- {krb5-objects-ppc-final-list} ¶
- {profile-objects-ppc-debug-list} ¶
- {profile-objects-ppc-final-list} ¶
- {comerr-objects-ppc-debug-list} ¶
- {comerr-objects-ppc-final-list}
-
-file-lists Ä {all-lists}
-
-# Note that even though the list generation script tries to have a mechanism allowing you to run it
-# in different directories, it actually doesn't work too well because it wants a UNIX-style relative
-# path to root Makefile.in. This is why we run it with -x to specify the root.
-
-{all-files-list} Ä {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} all-files {list-generation-script-root} ¶
- > {Targ}
-
-{all-sources-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} all-sources {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{all-folders-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} all-folders {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{include-folders-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} include-folders {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{gss-sources-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-sources {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{krb5-sources-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-sources {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{gss-objects-ppc-debug-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-objects-ppc-debug {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{gss-objects-ppc-final-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-objects-ppc-final {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{krb5-objects-ppc-debug-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-objects-ppc-debug {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{krb5-objects-ppc-final-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-objects-ppc-final {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{profile-objects-ppc-debug-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} profile-objects-ppc-debug {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{profile-objects-ppc-final-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} profile-objects-ppc-final {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{comerr-objects-ppc-debug-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} comerr-objects-ppc-debug {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-{comerr-objects-ppc-final-list} Ä {all-files-list} {list-generation-script} {makefile-name}
- perl -x"{list-generation-script-working-folder}" {list-generation-script} comerr-objects-ppc-final {list-generation-script-root} ¶
- < {all-files-list} > {Targ}
-
-##############################################################################################################
-### Autogenerated files
-##############################################################################################################
-
-autogeneration-h-script = {root-folder}util:et:et_h.perl
-autogeneration-c-script = {root-folder}util:et:et_c.perl
-
-autogenerated-files = ¶
- {root-folder}include:asn1_err.h ¶
- {root-folder}include:kdb5_err.h ¶
- {root-folder}include:krb5_err.h ¶
- {root-folder}include:kv5m_err.h ¶
- {root-folder}include:adm_err.h ¶
- {root-folder}lib:gssapi:generic:gssapi_err_generic.h ¶
- {root-folder}lib:gssapi:krb5:gssapi_err_krb5.h ¶
- {root-folder}util:profile:prof_err.c ¶
- {root-folder}lib:krb5:error_tables:asn1_err.c ¶
- {root-folder}lib:krb5:error_tables:kdb5_err.c ¶
- {root-folder}lib:krb5:error_tables:krb5_err.c ¶
- {root-folder}lib:krb5:error_tables:kv5m_err.c ¶
- {root-folder}lib:krb5:error_tables:adm_err.c ¶
- {root-folder}lib:gssapi:generic:gssapi_err_generic.c ¶
- {root-folder}lib:gssapi:krb5:gssapi_err_krb5.c ¶
- {root-folder}util:profile:prof_err.h ¶
- {root-folder}include:krb5.h ¶
- {root-folder}util:profile:profile.h ¶
- {root-folder}include:profile.h ¶
- {root-folder}include:krb5:osconf.h ¶
- {root-folder}lib:gssapi:generic:gssapi.h ¶
- {root-folder}include:autoconf.h
-
-### error table headers
-
-{root-folder}include:asn1_err.h Ä {root-folder}lib:krb5:error_tables:asn1_err.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}include:asn1_err.h" < "{root-folder}lib:krb5:error_tables:asn1_err.et"
-
-{root-folder}include:kdb5_err.h Ä {root-folder}lib:krb5:error_tables:kdb5_err.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}include:kdb5_err.h" < "{root-folder}lib:krb5:error_tables:kdb5_err.et"
-
-{root-folder}include:krb5_err.h Ä {root-folder}lib:krb5:error_tables:krb5_err.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}include:krb5_err.h" < "{root-folder}lib:krb5:error_tables:krb5_err.et"
-
-{root-folder}include:kv5m_err.h Ä {root-folder}lib:krb5:error_tables:kv5m_err.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}include:kv5m_err.h" < "{root-folder}lib:krb5:error_tables:kv5m_err.et"
-
-{root-folder}include:adm_err.h Ä {root-folder}lib:krb5:error_tables:adm_err.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}include:adm_err.h" < "{root-folder}lib:krb5:error_tables:adm_err.et"
-
-{root-folder}lib:gssapi:generic:gssapi_err_generic.h Ä {root-folder}lib:gssapi:generic:gssapi_err_generic.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}lib:gssapi:generic:gssapi_err_generic.h" < "{root-folder}lib:gssapi:generic:gssapi_err_generic.et"
-
-{root-folder}lib:gssapi:krb5:gssapi_err_krb5.h Ä {root-folder}lib:gssapi:krb5:gssapi_err_krb5.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}lib:gssapi:krb5:gssapi_err_krb5.h" < "{root-folder}lib:gssapi:krb5:gssapi_err_krb5.et"
-
-{root-folder}util:profile:prof_err.h Ä {root-folder}util:profile:prof_err.et {makefile-name} {autogeneration-h-script}
- perl {autogeneration-h-script} outfile="{root-folder}util:profile:prof_err.h" < "{root-folder}util:profile:prof_err.et"
-
-### error table sources
-
-{root-folder}lib:krb5:error_tables:asn1_err.c Ä {root-folder}lib:krb5:error_tables:asn1_err.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:krb5:error_tables:asn1_err.c" < "{root-folder}lib:krb5:error_tables:asn1_err.et"
-
-{root-folder}lib:krb5:error_tables:kdb5_err.c Ä {root-folder}lib:krb5:error_tables:kdb5_err.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:krb5:error_tables:kdb5_err.c" < "{root-folder}lib:krb5:error_tables:kdb5_err.et"
-
-{root-folder}lib:krb5:error_tables:krb5_err.c Ä {root-folder}lib:krb5:error_tables:krb5_err.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:krb5:error_tables:krb5_err.c" < "{root-folder}lib:krb5:error_tables:krb5_err.et"
-
-{root-folder}lib:krb5:error_tables:kv5m_err.c Ä {root-folder}lib:krb5:error_tables:kv5m_err.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:krb5:error_tables:kv5m_err.c" < "{root-folder}lib:krb5:error_tables:kv5m_err.et"
-
-{root-folder}lib:krb5:error_tables:adm_err.c Ä {root-folder}lib:krb5:error_tables:adm_err.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:krb5:error_tables:adm_err.c" < "{root-folder}lib:krb5:error_tables:adm_err.et"
-
-{root-folder}lib:gssapi:generic:gssapi_err_generic.c Ä {root-folder}lib:gssapi:generic:gssapi_err_generic.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:gssapi:generic:gssapi_err_generic.c" < "{root-folder}lib:gssapi:generic:gssapi_err_generic.et"
-
-{root-folder}lib:gssapi:krb5:gssapi_err_krb5.c Ä {root-folder}lib:gssapi:krb5:gssapi_err_krb5.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}lib:gssapi:krb5:gssapi_err_krb5.c" < "{root-folder}lib:gssapi:krb5:gssapi_err_krb5.et"
-
-{root-folder}util:profile:prof_err.c Ä {root-folder}util:profile:prof_err.et {makefile-name} {autogeneration-c-script}
- perl {autogeneration-c-script} outfile="{root-folder}util:profile:prof_err.c" < "{root-folder}util:profile:prof_err.et"
-
-### other autogenerated files
-
-{root-folder}include:krb5.h Ä {root-folder}include:krb5.hin {root-folder}include:krb5_err.h ¶
- {root-folder}include:kdb5_err.h {root-folder}include:kv5m_err.h {root-folder}include:asn1_err.h
- Catenate {root-folder}include:krb5.hin {root-folder}include:krb5_err.h {root-folder}include:kdb5_err.h ¶
- {root-folder}include:kv5m_err.h {root-folder}include:asn1_err.h > {root-folder}include:krb5.h
-
-{root-folder}util:profile:profile.h Ä {root-folder}util:profile:profile.hin {root-folder}util:profile:prof_err.h
- Catenate {root-folder}util:profile:profile.hin {root-folder}util:profile:prof_err.h > {root-folder}util:profile:profile.h
-
-{root-folder}include:profile.h Ä {root-folder}util:profile:profile.h
- Catenate {root-folder}util:profile:profile.h > {root-folder}include:profile.h
- SetFile -a l "{Targ}"
-
-{root-folder}include:krb5:osconf.h Ä {root-folder}include:krb5:stock:osconf.h
- Catenate {root-folder}include:krb5:stock:osconf.h > {root-folder}include:krb5:osconf.h
- SetFile -a l "{Targ}"
-
-{root-folder}lib:gssapi:generic:gssapi.h Ä {root-folder}lib:gssapi:generic:gssapi.hin
- Catenate {root-folder}lib:gssapi:generic:gssapi.hin > {root-folder}lib:gssapi:generic:gssapi.h
- SetFile -a l "{Targ}"
-
-{root-folder}include:autoconf.h Ä {root-folder}mac:libraries:autoconf.h
- Catenate {root-folder}mac:libraries:autoconf.h > {root-folder}include:autoconf.h
- SetFile -a l "{Targ}"
-
-##############################################################################################################
-### High-level abstract targets -- this is where we decide on options
-##############################################################################################################
-### We need to generate the following Make variables to pass to the Makefile:
-### For GSS library
-### gss-library-output-folder -- destination of GSS library output
-### gss-library-name -- name of the GSS library
-### gss-library-export -- name of gss GSS library export file
-### gss-library-libraries -- list of libraries GSS library links against
-### gss-library-objects -- list of object files GSS library links
-### gss-library-fragment-name -- name of GSS library fragment
-### gss-library-main -- name of GSS library main entry point
-### gss-library-init -- name of GSS library initialization routine
-### gss-library-term -- name of GSS library termination routine
-### gss-library-linker-options -- all other GSS library linker options
-### For Krb5 library
-### krb5-library-output-folder -- destination of Krb5 library output
-### krb5-library-name -- name of the Krb5 library
-### krb5-library-export -- name of gss Krb5 library export file
-### krb5-library-libraries -- list of libraries Krb5 library links against
-### krb5-library-objects -- list of object files Krb5 library links
-### krb5-library-fragment-name -- name of Krb5 library fragment
-### krb5-library-main -- name of Krb5 library main entry point
-### krb5-library-init -- name of Krb5 library initialization routine
-### krb5-library-term -- name of Krb5 library termination routine
-### krb5-library-linker-options -- all other Krb5 library linker options
-### For profile library
-### profile-library-output-folder -- destination of profile library output
-### profile-library-name -- name of the profile library
-### profile-library-export -- name of gss profile library export file
-### profile-library-libraries -- list of libraries profile library links against
-### profile-library-objects -- list of object files profile library links
-### profile-library-fragment-name -- name of profile library fragment
-### profile-library-main -- name of profile library main entry point
-### profile-library-init -- name of profile library initialization routine
-### profile-library-term -- name of profile library termination routine
-### profile-library-linker-options -- all other profile library linker options
-### For comerr library
-### comerr-library-output-folder -- destination of comerr library output
-### comerr-library-name -- name of the comerr library
-### comerr-library-export -- name of gss comerr library export file
-### comerr-library-libraries -- list of libraries comerr library links against
-### comerr-library-objects -- list of object files comerr library links
-### comerr-library-fragment-name -- name of comerr library fragment
-### comerr-library-main -- name of comerr library main entry point
-### comerr-library-init -- name of comerr library initialization routine
-### comerr-library-term -- name of comerr library termination routine
-### comerr-library-linker-options -- all other comerr library linker options
-### General
-### library-linker -- linker to use
-### autogenerated-files -- list of autogenerated files
-### library-platform -- platform name (68K or PPC)
-### library-kind -- library kind (".debug" or "")
-### object-suffix -- object file suffix (.ppcf.o, .ppcd.o, .68kf.o, .68kd.o)
-### object-suffix-data -- object file suffix fdor data libraries (.ppc.o, .68k.o)
-
-
-### The following variables are platform- or kind-specific, but constant
-
-clib-ppc-debug = {mitsupportlib-root-folder}CLib:Binaries:CLib.PPC.debug
-clib-ppc-final = {mitsupportlib-root-folder}CLib:Binaries:CLib.PPC
-
-runtimelib-ppc-debug = {mitsupportlib-root-folder}RuntimeLib:Binaries:RuntimeLib.PPC.debug
-runtimelib-ppc-final = {mitsupportlib-root-folder}RuntimeLib:Binaries:RuntimeLib.PPC
-
-runtimelib-static-ppc-debug = {mitsupportlib-root-folder}"RuntimeLib:Binaries:ShlibRuntime.Lib.PPC.debug"
-runtimelib-static-ppc-final = {mitsupportlib-root-folder}"RuntimeLib:Binaries:ShlibRuntime.Lib.PPC"
-
-standard-libraries-ppc-debug = ¶
- "{clib-ppc-debug}" ¶
- "{runtimelib-ppc-debug}" ¶
- "{runtimelib-static-ppc-debug}" ¶
- ¶"{SharedLibraries}InterfaceLib¶" ¶
- ¶"{SharedLibraries}MathLib¶"
-standard-libraries-ppc-final = ¶
- "{clib-ppc-final}" ¶
- "{runtimelib-ppc-final}" ¶
- "{runtimelib-static-ppc-final}" ¶
- ¶"{SharedLibraries}InterfaceLib¶" ¶
- ¶"{SharedLibraries}MathLib¶"
-
-ccachelib-ppc-debug = {mitkerberoslib-root-folder}CCacheLib:Binaries:CCacheLib.PPC.debug
-ccachelib-ppc-final = {mitkerberoslib-root-folder}CCacheLib:Binaries:CCacheLib.PPC
-
-loginlib-ppc-debug = {mitkerberoslib-root-folder}LoginLib:Binaries:KrbLoginLib.stub.PPC.debug
-loginlib-ppc-final = {mitkerberoslib-root-folder}LoginLib:Binaries:KrbLoginLib.stub.PPC
-
-socketslib-ppc-debug = {mitsupportlib-root-folder}SocketsLib:Binaries:SocketsLib.PPC.debug
-socketslib-ppc-final = {mitsupportlib-root-folder}SocketsLib:Binaries:SocketsLib.PPC
-
-errorlib-ppc-debug = {mitsupportlib-root-folder}ErrorLib:Binaries:ErrorLib.PPC.debug
-errorlib-ppc-final = {mitsupportlib-root-folder}ErrorLib:Binaries:ErrorLib.PPC
-
-utilitieslib-ppc-debug = {mitsupportlib-root-folder}UtilitiesLib:Binaries:UtilitiesLib.PPC.debug
-utilitieslib-ppc-final = {mitsupportlib-root-folder}UtilitiesLib:Binaries:UtilitiesLib.PPC
-
-object-suffix-ppc-debug = .ppcd.o
-object-suffix-ppc-final = .ppcf.o
-object-suffix-ppc-data = .ppc.o
-
-gss-library-libraries-ppc-debug = ¶
- {standard-libraries-ppc-debug} ¶
- {krb5-library-output-folder}{krb5-library-name}{library-platform-ppc}{library-kind-debug} ¶
- {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-debug} ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-debug}
-gss-library-libraries-ppc-final = ¶
- {standard-libraries-ppc-final} ¶
- {krb5-library-output-folder}{krb5-library-name}{library-platform-ppc}{library-kind-final} ¶
- {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-final} ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-final}
-
-krb5-library-libraries-ppc-debug = ¶
- {standard-libraries-ppc-debug} ¶
- {ccachelib-ppc-debug} ¶
- {loginlib-ppc-debug} ¶
- {socketslib-ppc-debug} ¶
- {errorlib-ppc-debug} ¶
- {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-debug} ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-debug} ¶
- ¶"{PPCLibraries}PPCMath64Lib.o¶" ¶
- ¶"{SharedLibraries}DriverServicesLib¶"
-krb5-library-libraries-ppc-final = ¶
- {standard-libraries-ppc-final} ¶
- {ccachelib-ppc-final} ¶
- {loginlib-ppc-final} ¶
- {socketslib-ppc-final} ¶
- {errorlib-ppc-final} ¶
- {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-final} ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-final} ¶
- ¶"{PPCLibraries}PPCMath64Lib.o¶" ¶
- ¶"{SharedLibraries}DriverServicesLib¶"
-
-profile-library-libraries-ppc-debug = ¶
- {standard-libraries-ppc-debug} ¶
- {utilitieslib-ppc-debug} ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-debug}
-profile-library-libraries-ppc-final = ¶
- {standard-libraries-ppc-final} ¶
- {utilitieslib-ppc-final} ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-final}
-
-comerr-library-libraries-ppc-debug = ¶
- {standard-libraries-ppc-debug} {errorlib-ppc-debug}
-comerr-library-libraries-ppc-final = ¶
- {standard-libraries-ppc-final} {errorlib-ppc-final}
-
-### Construct linker options.
-
-common-linker-options = -sharedlibrary
-common-linker-options-debug = {common-linker-options} -sym on
-common-linker-options-final = {common-linker-options} -sym off
-
-gss-library-common-linker-options = ¶
- -cv {gss-library-current-version} ¶
- -dv {gss-library-definition-version} ¶
- -uv {gss-library-implementation-version}
-
-gss-library-linker-options-ppc-debug = {common-linker-options-debug} {gss-library-common-linker-options}
-gss-library-linker-options-ppc-final = {common-linker-options-final} {gss-library-common-linker-options}
-
-krb5-library-common-linker-options = ¶
- -cv {krb5-library-current-version} ¶
- -dv {krb5-library-definition-version} ¶
- -uv {krb5-library-implementation-version}
-
-krb5-library-linker-options-ppc-debug = {common-linker-options-debug} {krb5-library-common-linker-options} -weaklib "DriverServicesLib"
-krb5-library-linker-options-ppc-final = {common-linker-options-final} {krb5-library-common-linker-options} -weaklib "DriverServicesLib"
-
-profile-library-common-linker-options = ¶
- -cv {profile-library-current-version} ¶
- -dv {profile-library-definition-version} ¶
- -uv {profile-library-implementation-version}
-
-profile-library-linker-options-ppc-debug = {common-linker-options-debug} {profile-library-common-linker-options}
-profile-library-linker-options-ppc-final = {common-linker-options-final} {profile-library-common-linker-options}
-
-comerr-library-common-linker-options = ¶
- -cv {comerr-library-current-version} ¶
- -dv {comerr-library-definition-version} ¶
- -uv {comerr-library-implementation-version}
-
-comerr-library-linker-options-ppc-debug = {common-linker-options-debug} {comerr-library-common-linker-options}
-comerr-library-linker-options-ppc-final = {common-linker-options-final} {comerr-library-common-linker-options}
-
-gss-library-objects-ppc-debug = `catenate {gss-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"` ¶
- {root-folder}mac:GSS.CFM{object-suffix-ppc-debug}
-gss-library-objects-ppc-final = `catenate {gss-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"` ¶
- {root-folder}mac:GSS.CFM{object-suffix-ppc-final}
-
-krb5-library-objects-ppc-debug = `catenate {krb5-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"` ¶
- {root-folder}mac:K5.CFM{object-suffix-ppc-debug}
-krb5-library-objects-ppc-final = `catenate {krb5-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"` ¶
- {root-folder}mac:K5.CFM{object-suffix-ppc-final}
-
-profile-library-objects-ppc-debug = `catenate {profile-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"` ¶
- {root-folder}mac:ProfileLib.CFM{object-suffix-ppc-debug}
-profile-library-objects-ppc-final = `catenate {profile-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"` ¶
- {root-folder}mac:ProfileLib.CFM{object-suffix-ppc-final}
-
-comerr-library-objects-ppc-debug = `catenate {comerr-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"`
-comerr-library-objects-ppc-final = `catenate {comerr-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/¥:(Å)¨2/ Print prefix¨2"`
-
-library-linker-ppc = MWLinkPPC
-
-### Construct compiler options.
-
-common-compiler-options = ¶
- -enum int -opt all -strings pool -mapcr ¶
- -mpw_pointers -warnings off -fatext -nosyspath -maxerrors 1000 ¶
- -align mac68k -opt off -toc_data on -fp_contract on ¶
- -model farData
-
-# Don't put the prefix file in these options because they are used to precompile the prefix file
-ppc-compiler-options = -tb on
-debug-compiler-options = -sym on
-final-compiler-options = -sym off
-
-mitsupportlib-include-paths = ¶
- -i {mitsupportlib-root-folder}SocketsLib:Headers: ¶
- -i {mitsupportlib-root-folder}ErrorLib:Headers: ¶
- -i {mitsupportlib-root-folder}UtilitiesLib:Headers:
-
-include-paths = `catenate {include-folders-list} | StreamEdit -d -set prefix="{root-folder}mac:" -e "/-i (Å)¨1/ Print '-i 'prefix¨1"` ¶
- -i {mitkerberoslib-root-folder}CCacheLib:Headers: ¶
- -i {mitkerberoslib-root-folder}LoginLib:Headers: ¶
- {mitsupportlib-include-paths}
-
-compiler-options-ppc-debug = {include-paths} {common-compiler-options} {ppc-compiler-options} ¶
- {debug-compiler-options} -prefix {precompiled-headers-ppc}
-compiler-options-ppc-final = {include-paths} {common-compiler-options} {ppc-compiler-options} ¶
- {final-compiler-options} -prefix {precompiled-headers-ppc}
-
-compiler-ppc = MWCPPC
-
-### Precompiled headers
-
-precompiled-headers-folder = {root-folder}mac:libraries:
-
-precompiled-headers-ppc = {precompiled-headers-folder}KerberosHeaders.PPC
-
-precompiled-headers-source = {precompiled-headers-folder}KerberosHeaders.pch
-
-{precompiled-headers-ppc} Ä {precompiled-headers-source} {precompiled-headers-folder}KerberosHeaders.h
- {compiler-ppc} {precompiled-headers-source} {common-compiler-options} {ppc-compiler-options} ¶
- -precompile {Targ} -i {precompiled-headers-folder} {mitsupportlib-include-paths}
-
-make-options-common = ¶
- -f {makefile-name} ¶
- -d root-folder="{root-folder}" ¶
- -d autogenerated-files="{autogenerated-files}" ¶
- -d gss-library-output-folder="{gss-library-output-folder}" ¶
- -d gss-library-name="{gss-library-name}" ¶
- -d gss-library-export="{gss-library-export}" ¶
- -d gss-library-fragment-name={gss-library-fragment-name} ¶
- -d gss-library-main="{gss-library-main}" ¶
- -d gss-library-init="{gss-library-init}" ¶
- -d gss-library-term="{gss-library-term}" ¶
- -d krb5-library-output-folder="{krb5-library-output-folder}" ¶
- -d krb5-library-name="{krb5-library-name}" ¶
- -d krb5-library-export="{krb5-library-export}" ¶
- -d krb5-library-fragment-name={krb5-library-fragment-name} ¶
- -d krb5-library-main="{krb5-library-main}" ¶
- -d krb5-library-init="{krb5-library-init}" ¶
- -d krb5-library-term="{krb5-library-term}" ¶
- -d profile-library-output-folder="{profile-library-output-folder}" ¶
- -d profile-library-name="{profile-library-name}" ¶
- -d profile-library-export="{profile-library-export}" ¶
- -d profile-library-fragment-name={profile-library-fragment-name} ¶
- -d profile-library-main="{profile-library-main}" ¶
- -d profile-library-init="{profile-library-init}" ¶
- -d profile-library-term="{profile-library-term}" ¶
- -d comerr-library-output-folder="{comerr-library-output-folder}" ¶
- -d comerr-library-name="{comerr-library-name}" ¶
- -d comerr-library-export="{comerr-library-export}" ¶
- -d comerr-library-fragment-name={comerr-library-fragment-name} ¶
- -d comerr-library-main="{comerr-library-main}" ¶
- -d comerr-library-init="{comerr-library-init}" ¶
- -d comerr-library-term="{comerr-library-term}"
-
-make-options-ppc-debug = ¶
- -d library-linker="{library-linker-ppc}" ¶
- -d library-platform="{library-platform-ppc}" ¶
- -d library-kind="{library-kind-debug}" ¶
- -d gss-library-libraries="{gss-library-libraries-ppc-debug}" ¶
- -d gss-library-objects="{gss-library-objects-ppc-debug}" ¶
- -d gss-library-linker-options="{gss-library-linker-options-ppc-debug}" ¶
- -d krb5-library-libraries="{krb5-library-libraries-ppc-debug}" ¶
- -d krb5-library-objects="{krb5-library-objects-ppc-debug}" ¶
- -d krb5-library-linker-options="{krb5-library-linker-options-ppc-debug}" ¶
- -d profile-library-libraries="{profile-library-libraries-ppc-debug}" ¶
- -d profile-library-objects="{profile-library-objects-ppc-debug}" ¶
- -d profile-library-linker-options="{profile-library-linker-options-ppc-debug}" ¶
- -d comerr-library-libraries="{comerr-library-libraries-ppc-debug}" ¶
- -d comerr-library-objects="{comerr-library-objects-ppc-debug}" ¶
- -d comerr-library-linker-options="{comerr-library-linker-options-ppc-debug}" ¶
- -d object-suffix="{object-suffix-ppc-debug}" ¶
- -d object-suffix-data="{object-suffix-ppc-data}" ¶
- -d compiler-options="{compiler-options-ppc-debug}" ¶
- -d compiler="{compiler-ppc}" ¶
- -d precompiled-headers="{precompiled-headers-ppc}"
-
-make-options-ppc-final = ¶
- -d library-linker="{library-linker-ppc}" ¶
- -d library-platform="{library-platform-ppc}" ¶
- -d library-kind="{library-kind-final}" ¶
- -d gss-library-libraries="{gss-library-libraries-ppc-final}" ¶
- -d gss-library-objects="{gss-library-objects-ppc-final}" ¶
- -d gss-library-linker-options="{gss-library-linker-options-ppc-final}" ¶
- -d krb5-library-libraries="{krb5-library-libraries-ppc-final}" ¶
- -d krb5-library-objects="{krb5-library-objects-ppc-final}" ¶
- -d krb5-library-linker-options="{krb5-library-linker-options-ppc-final}" ¶
- -d profile-library-libraries="{profile-library-libraries-ppc-final}" ¶
- -d profile-library-objects="{profile-library-objects-ppc-final}" ¶
- -d profile-library-linker-options="{profile-library-linker-options-ppc-final}" ¶
- -d comerr-library-libraries="{comerr-library-libraries-ppc-final}" ¶
- -d comerr-library-objects="{comerr-library-objects-ppc-final}" ¶
- -d comerr-library-linker-options="{comerr-library-linker-options-ppc-final}" ¶
- -d object-suffix="{object-suffix-ppc-final}" ¶
- -d object-suffix-data="{object-suffix-ppc-data}" ¶
- -d compiler-options="{compiler-options-ppc-final}" ¶
- -d compiler="{compiler-ppc}" ¶
- -d precompiled-headers="{precompiled-headers-ppc}"
-
-make-output = "{TempFolder}GSS/Kerberos Makefile script"
-submakefile-target = gss-library
-
-ppc-debug Ä glue headers documentation {makefile-name} {gss-objects-ppc-debug-list} {krb5-objects-ppc-debug-list} ¶
- {profile-objects-ppc-debug-list} {comerr-objects-ppc-debug-list} {include-folders-list}
- Make {make-options-common} {make-options-ppc-debug} {submakefile-target} > {make-output}
- {make-output}
-
-ppc-final Ä glue headers documentation {makefile-name} {gss-objects-ppc-final-list} {krb5-objects-ppc-final-list} ¶
- {profile-objects-ppc-final-list} {comerr-objects-ppc-final-list} {include-folders-list}
- Make {make-options-common} {make-options-ppc-final} {submakefile-target} > {make-output}
- {make-output}
-
-##############################################################################################################
-### Variable targets -- these depend on which target we select in the above make invocations
-##############################################################################################################
-### We want the following to be defined in order for these targets to work:
-### For GSS library
-### gss-library-output-folder -- destination of GSS library output
-### gss-library-name -- name of the GSS library
-### gss-library-export -- name of gss GSS library export file
-### gss-library-libraries -- list of libraries GSS library links against
-### gss-library-objects -- list of object files GSS library links
-### gss-library-fragment-name -- name of GSS library fragment
-### gss-library-main -- name of GSS library main entry point
-### gss-library-init -- name of GSS library initialization routine
-### gss-library-term -- name of GSS library termination routine
-### gss-library-linker-options -- all other GSS library linker options
-### For Krb5 library
-### krb5-library-output-folder -- destination of Krb5 library output
-### krb5-library-name -- name of the Krb5 library
-### krb5-library-export -- name of Krb5 library export file
-### krb5-library-libraries -- list of libraries Krb5 library links against
-### krb5-library-objects -- list of object files Krb5 library links
-### krb5-library-fragment-name -- name of Krb5 library fragment
-### krb5-library-main -- name of Krb5 library main entry point
-### krb5-library-init -- name of Krb5 library initialization routine
-### krb5-library-term -- name of Krb5 library termination routine
-### krb5-library-linker-options -- all other Krb5 library linker options
-### For profile library
-### profile-library-output-folder -- destination of profile library output
-### profile-library-name -- name of the profile library
-### profile-library-export -- name of profile library export file
-### profile-library-libraries -- list of libraries profile library links against
-### profile-library-objects -- list of object files profile library links
-### profile-library-fragment-name -- name of profile library fragment
-### profile-library-main -- name of profile library main entry point
-### profile-library-init -- name of profile library initialization routine
-### profile-library-term -- name of profile library termination routine
-### profile-library-linker-options -- all other profile library linker options
-### For comerr library
-### comerr-library-output-folder -- destination of comerr library output
-### comerr-library-name -- name of the comerr library
-### comerr-library-export -- name of comerr library export file
-### comerr-library-libraries -- list of libraries comerr library links against
-### comerr-library-objects -- list of object files comerr library links
-### comerr-library-fragment-name -- name of comerr library fragment
-### comerr-library-main -- name of comerr library main entry point
-### comerr-library-init -- name of comerr library initialization routine
-### comerr-library-term -- name of comerr library termination routine
-### comerr-library-linker-options -- all other comerr library linker options
-### General
-### library-linker -- linker to use
-### autogenerated-files -- list of autogenerated files
-### library-platform -- platform name (68K or PPC)
-### library-kind -- library kind (".debug" or "")
-
-
-### script to create a folder if it does not exist
-create-folder = {root-folder}mac:create-folder.mpw
-
-
-### defaults, will be set to something better by the make commands above
-library-linker =
-library-platform =
-library-kind =
-gss-library-libraries =
-gss-library-objects =
-gss-library-linker-options =
-krb5-library-libraries =
-krb5-library-objects =
-krb5-library-linker-options =
-precompiled-headers =
-object-suffix = .ignore.me
-object-suffix-data = .ignore.me.too
-profile-library-libraries =
-profile-library-objects =
-profile-library-linker-options =
-comerr-library-libraries =
-comerr-library-objects =
-comerr-library-linker-options =
-
-### Generate various major components of build commands from the above variables
-gss-library-output-files = ¶
- {gss-library-output-folder}{gss-library-name}{library-platform}{library-kind}
-gss-library-dependencies = ¶
- {autogenerated-files} {gss-library-export} {gss-library-libraries} {gss-library-objects}
-gss-library-build-command = ¶
- {library-linker} ¶
- -name "{gss-library-fragment-name}{library-kind}" ¶
- -main {gss-library-main} ¶
- -init {gss-library-init} ¶
- -term {gss-library-term} ¶
- -@export {gss-library-export} ¶
- -map {gss-library-output-folder}{gss-library-name}{library-platform}{library-kind}.MAP ¶
- -o {gss-library-output-folder}{gss-library-name}{library-platform}{library-kind} ¶
- {gss-library-linker-options} ¶
- {gss-library-objects} {gss-library-libraries}
-
-krb5-library-output-files = ¶
- {krb5-library-output-folder}{krb5-library-name}{library-platform}{library-kind}
-krb5-library-dependencies = ¶
- {autogenerated-files} {krb5-library-export} {krb5-library-libraries} {krb5-library-objects}
-krb5-library-build-command = ¶
- {library-linker} ¶
- -name "{krb5-library-fragment-name}{library-kind}" ¶
- -main {krb5-library-main} ¶
- -init {krb5-library-init} ¶
- -term {krb5-library-term} ¶
- -@export {krb5-library-export} ¶
- -map {krb5-library-output-folder}{krb5-library-name}{library-platform}{library-kind}.MAP ¶
- -o {krb5-library-output-folder}{krb5-library-name}{library-platform}{library-kind} ¶
- {krb5-library-linker-options} ¶
- {krb5-library-objects} {krb5-library-libraries}
-
-profile-library-output-files = ¶
- {profile-library-output-folder}{profile-library-name}{library-platform}{library-kind}
-profile-library-dependencies = ¶
- {autogenerated-files} {profile-library-export} {profile-library-libraries} {profile-library-objects}
-profile-library-build-command = ¶
- {library-linker} ¶
- -name "{profile-library-fragment-name}{library-kind}" ¶
- -main {profile-library-main} ¶
- -init {profile-library-init} ¶
- -term {profile-library-term} ¶
- -@export {profile-library-export} ¶
- -map {profile-library-output-folder}{profile-library-name}{library-platform}{library-kind}.MAP ¶
- -o {profile-library-output-folder}{profile-library-name}{library-platform}{library-kind} ¶
- {profile-library-linker-options} ¶
- {profile-library-objects} {profile-library-libraries}
-
-comerr-library-output-files = ¶
- {comerr-library-output-folder}{comerr-library-name}{library-platform}{library-kind}
-comerr-library-dependencies = ¶
- {autogenerated-files} {comerr-library-export} {comerr-library-libraries} {comerr-library-objects}
-comerr-library-build-command = ¶
- {library-linker} ¶
- -name "{comerr-library-fragment-name}{library-kind}" ¶
- -main {comerr-library-main} ¶
- -init {comerr-library-init} ¶
- -term {comerr-library-term} ¶
- -@export {comerr-library-export} ¶
- -map {comerr-library-output-folder}{comerr-library-name}{library-platform}{library-kind}.MAP ¶
- -o {comerr-library-output-folder}{comerr-library-name}{library-platform}{library-kind} ¶
- {comerr-library-linker-options} ¶
- {comerr-library-objects} {comerr-library-libraries}
-
-### Build commands
-
-gss-library Ä {gss-library-output-files}
-krb5-library Ä {krb5-library-output-files}
-profile-library Ä {profile-library-output-files}
-comerr-library Ä {comerr-library-output-files}
-
-{gss-library-output-files} ÄÄ {gss-library-dependencies} {makefile-name}
- {create-folder} {gss-library-output-folder}
- {gss-library-build-command}
-
-{krb5-library-output-files} ÄÄ {krb5-library-dependencies} {makefile-name}
- {create-folder} {krb5-library-output-folder}
- {krb5-library-build-command}
-
-{profile-library-output-files} ÄÄ {profile-library-dependencies} {makefile-name}
- {create-folder} {profile-library-output-folder}
- {profile-library-build-command}
-
-{comerr-library-output-files} ÄÄ {comerr-library-dependencies} {makefile-name}
- {create-folder} {comerr-library-output-folder}
- {comerr-library-build-command}
-
-##############################################################################################################
-### Default compilation rules
-##############################################################################################################
-
-{object-suffix} Ä .c {autogenerated-files} {makefile-name} {precompiled-headers}
- echo {DepDir}{Default}{object-suffix}
- {compiler} {DepDir}{Default}.c -o {DepDir}{Default}{object-suffix} {compiler-options}
-
-{object-suffix-data} Ä .c {autogenerated-files} {makefile-name} {precompiled-headers}
- echo {DepDir}{Default}{object-suffix-data}
- {compiler} {DepDir}{Default}.c -o {DepDir}{Default}{object-suffix-data} {compiler-options}
-
-##############################################################################################################
-### Autogenerating classic 68K glue files
-##############################################################################################################
-
-classic-glue-generation-script = {root-folder}mac:CFMGlue.pl
-gss-library-glue-output-folder = {root-folder}:GSSLib:ClassicGlue:
-krb5-library-glue-output-folder = {root-folder}:Kerberos5Lib:ClassicGlue:
-profile-library-glue-output-folder = {root-folder}:KerberosProfileLib:ClassicGlue:
-comerr-library-glue-output-folder = {root-folder}:ComErrLib:ClassicGlue:
-
-gss-library-glue-output = {gss-library-glue-output-folder}GSSLib.glue.c
-krb5-library-glue-output = {krb5-library-glue-output-folder}Kerberos5Lib.glue.c
-profile-library-glue-output = {profile-library-glue-output-folder}KrbProfileLib.glue.c
-comerr-library-glue-output = {comerr-library-glue-output-folder}ComErrLib.glue.c
-
-classic-glue-output = ¶
- {gss-library-glue-output} ¶
- {krb5-library-glue-output} ¶
- {profile-library-glue-output} ¶
- {comerr-library-glue-output}
-
-glue Ä {classic-glue-output}
-
-glue-gss Ä {gss-library-glue-output}
-glue-krb5 Ä {krb5-library-glue-output}
-glue-profile Ä {profile-library-glue-output}
-glue-comerr Ä {comerr-library-glue-output}
-
-{krb5-library-glue-output} Ä {root-folder}mac:K5.CFMglue.cin {root-folder}mac:K5.CFMglue.proto.h ¶
- {root-folder}mac:CFMglue.c {root-folder}mac:K5.moreCFMglue.cin {classic-glue-generation-script}
- {create-folder} {krb5-library-glue-output-folder}
- perl {classic-glue-generation-script} < {root-folder}mac:K5.CFMglue.proto.h > {root-folder}mac:K5.CFMglue.c
- Catenate {root-folder}mac:K5.CFMglue.cin {root-folder}mac:CFMglue.c {root-folder}mac:K5.CFMglue.c ¶
- {root-folder}mac:K5.moreCFMglue.cin | Catenate > {krb5-library-glue-output}
-
-{gss-library-glue-output} Ä {root-folder}mac:GSS.CFMglue.cin {root-folder}mac:GSS.CFMglue.proto.h ¶
- {root-folder}mac:CFMglue.c {root-folder}mac:GSS.moreCFMglue.cin {classic-glue-generation-script}
- {create-folder} {gss-library-glue-output-folder}
- perl {classic-glue-generation-script} < {root-folder}mac:GSS.CFMglue.proto.h > {root-folder}mac:GSS.CFMglue.c
- Catenate {root-folder}mac:GSS.CFMglue.cin {root-folder}mac:CFMglue.c {root-folder}mac:GSS.CFMglue.c ¶
- {root-folder}mac:GSS.moreCFMglue.cin | Catenate > {gss-library-glue-output}
-
-{profile-library-glue-output} Ä {root-folder}mac:KrbProfileLib.glue.pre.cin {root-folder}mac:KrbProfileLib.glue.proto.h ¶
- {root-folder}mac:CFMglue.c {root-folder}mac:KrbProfileLib.glue.post.cin {classic-glue-generation-script}
- {create-folder} {profile-library-glue-output-folder}
- perl {classic-glue-generation-script} < {root-folder}mac:KrbProfileLib.glue.proto.h > {root-folder}mac:KrbProfileLib.CFMglue.c
- Catenate {root-folder}mac:KrbProfileLib.glue.pre.cin {root-folder}mac:CFMglue.c {root-folder}mac:KrbProfileLib.CFMglue.c ¶
- {root-folder}mac:KrbProfileLib.glue.post.cin | Catenate > {profile-library-glue-output}
-
-{comerr-library-glue-output} Ä {root-folder}mac:ComErrLib.glue.pre.cin {root-folder}mac:ComErrLib.glue.proto.h ¶
- {root-folder}mac:CFMglue.c {root-folder}mac:ComErrLib.glue.post.cin {classic-glue-generation-script}
- {create-folder} {comerr-library-glue-output-folder}
- perl {classic-glue-generation-script} < {root-folder}mac:ComErrLib.glue.proto.h > {root-folder}mac:ComErrLib.CFMglue.c
- Catenate {root-folder}mac:ComErrLib.glue.pre.cin {root-folder}mac:CFMglue.c {root-folder}mac:ComErrLib.CFMglue.c ¶
- {root-folder}mac:ComErrLib.glue.post.cin | Catenate > {comerr-library-glue-output}
-
-##############################################################################################################
-### Clean target deletes all generated files
-##############################################################################################################
-
-clean Ä
- # Need a dummy invalid name at the end to cover the case when nothing is found
- Delete -i `files -r -s -o -f "{root-folder}" | StreamEdit -d -e "/Å{object-suffix-ppc-debug}/ Print"` supercalifragilisticexpialidoucious
- Delete -i `files -r -s -o -f "{root-folder}" | StreamEdit -d -e "/Å{object-suffix-ppc-final}/ Print"` supercalifragilisticexpialidoucious
- Delete -i `files -r -s -o -f "{root-folder}" | StreamEdit -d -e "/Å{object-suffix-ppc-data}/ Print"` supercalifragilisticexpialidoucious
- Delete -i {all-lists}
-
-##############################################################################################################
-### Copying headers around
-##############################################################################################################
-
-gss-headers-output-folder = {root-folder}:GSSLib:Headers:
-krb5-headers-output-folder = {root-folder}:Kerberos5Lib:Headers:
-comerr-headers-output-folder = {root-folder}:ComErrLib:Headers:
-profile-headers-output-folder = {root-folder}:KerberosProfileLib:Headers:
-
-gss-headers-output = ¶
- "{gss-headers-output-folder}gssapi.h" ¶
- "{gss-headers-output-folder}gssapi_krb5.h"
-
-krb5-headers-output = ¶
- "{krb5-headers-output-folder}krb5.h" ¶
- "{krb5-headers-output-folder}win-mac.h"
-
-comerr-headers-output = ¶
- "{comerr-headers-output-folder}com_err.h"
-
-profile-headers-output = ¶
- "{profile-headers-output-folder}profile.h"
-
-headers-output = {gss-headers-output} {krb5-headers-output} ¶
- {comerr-headers-output} {profile-headers-output}
-
-headers Ä unset-echo {headers-output}
-
-"{gss-headers-output-folder}gssapi.h" Ä "{root-folder}lib:gssapi:generic:gssapi.h" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l "{Targ}"
- End
- Catenate "{root-folder}lib:gssapi:generic:gssapi.h" > "{Targ}"
- SetFile -a l "{Targ}"
-
-"{gss-headers-output-folder}gssapi_krb5.h" Ä "{root-folder}lib:gssapi:krb5:gssapi_krb5.h" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l "{Targ}"
- End
- Catenate "{root-folder}lib:gssapi:krb5:gssapi_krb5.h" > "{Targ}"
- SetFile -a l "{Targ}"
-
-"{krb5-headers-output-folder}krb5.h" Ä "{root-folder}include:krb5.h" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l "{Targ}"
- End
- Catenate "{root-folder}include:krb5.h" > "{Targ}"
- SetFile -a l "{Targ}"
-
-"{krb5-headers-output-folder}win-mac.h" Ä "{root-folder}include:win-mac.h" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l "{Targ}"
- End
- Catenate "{root-folder}include:win-mac.h" > "{Targ}"
- SetFile -a l "{Targ}"
-
-"{comerr-headers-output-folder}com_err.h" Ä "{root-folder}util:et:com_err.h" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l "{Targ}"
- End
- Catenate "{root-folder}util:et:com_err.h" > "{Targ}"
- SetFile -a l "{Targ}"
-
-"{profile-headers-output-folder}profile.h" Ä "{root-folder}util:profile:profile.h" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l "{Targ}"
- End
- Catenate "{root-folder}util:profile:profile.h" > "{Targ}"
- SetFile -a l "{Targ}"
-
-##############################################################################################################
-### Copying documentation around
-##############################################################################################################
-
-gss-documentation-output-folder = {root-folder}:GSSLib:Documentation:
-krb5-documentation-output-folder = {root-folder}:Kerberos5Lib:Documentation:
-comerr-documentation-output-folder = {root-folder}:ComErrLib:Documentation:
-profile-documentation-output-folder = {root-folder}:KerberosProfileLib:Documentation:
-
-gss-documentation-output = ¶
- {gss-documentation-output-folder}"GSSLib ReadMe"
-
-krb5-documentation-output = ¶
- {krb5-documentation-output-folder}"krb5api.pdf"
-
-comerr-documentation-output = ¶
- {comerr-documentation-output-folder}"ComErrLib ReadMe"
-
-profile-documentation-output = ¶
- {profile-documentation-output-folder}"KerberosProfileLib ReadMe"
-
-documentation-output = {gss-documentation-output} {krb5-documentation-output} ¶
- {profile-documentation-output} {comerr-documentation-output}
-
-documentation Ä unset-echo {documentation-output}
-
-{gss-documentation-output-folder}"GSSLib ReadMe" Ä {root-folder}"mac:GSSLib ReadMe" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l {Targ}
- End
- Catenate {root-folder}"mac:GSSLib ReadMe" > {Targ}
- SetFile -a l {Targ}
-
-{krb5-documentation-output-folder}"krb5api.pdf" Ä {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l {Targ}
- End
- If (`Exists {root-folder}":::Documentation:pdf:krb5api.pdf"`)
- Catenate {root-folder}":::Documentation:pdf:krb5api.pdf" > {Targ}
- SetFile -a l -t 'PDF ' -c 'CARO' {Targ}
- End
-
-{comerr-documentation-output-folder}"ComErrLib ReadMe" Ä {root-folder}"mac:ComErrLib ReadMe" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l {Targ}
- End
- Catenate {root-folder}"mac:ComErrLib ReadMe" > {Targ}
- SetFile -a l {Targ}
-
-{profile-documentation-output-folder}"KerberosProfileLib ReadMe" Ä {root-folder}"mac:KerberosProfileLib ReadMe" {makefile-name}
- "{create-folder}" "{TargDir}"
- If (`Exists "{Targ}" | Count -l`)
- SetFile -a l {Targ}
- End
- Catenate {root-folder}"mac:KerberosProfileLib ReadMe" > {Targ}
- SetFile -a l {Targ}
+++ /dev/null
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-#include <CodeFragments.h>
-
-#include "profile.h"
-
-
-OSErr InitializeProfileLib (
- CFragInitBlockPtr ibp);
-void TerminateProfileLib (void);
-
-OSErr InitializeProfileLib(
- CFragInitBlockPtr ibp)
-{
- OSErr err = noErr;
-
- /* Do normal init of the shared library */
- err = __initialize(ibp);
-
- /* Initialize the error tables */
- if (err == noErr) {
- add_error_table(&et_prof_error_table);
- }
-
- return err;
-}
-
-void TerminateProfileLib(void)
-{
- remove_error_table(&et_prof_error_table);
- __terminate();
-}
+++ /dev/null
-### usage: create-folder path
-###
-### path must be path to a folder (can be relative path)
-### creates the folder and its parents if necessary
-
-### Create path components of path one at a time
-set left-part ""
-set right-part "{1}"
-
-loop
- if "{right-part}" == ""
- break
- end
-
- (evaluate "{right-part}" =~ /([Â:]*:)¨1Å/) > Dev:Null
- set car "{¨1}"
- (evaluate "{right-part}" =~ /[Â:]*:(Å)¨1/) > Dev:Null
- set cdr "{¨1}"
-
- set left-part "{left-part}{car}"
- set right-part "{cdr}"
-
- if not (`Exists "{left-part}"`)
- NewFolder "{left-part}"
- end
-end
-
\ No newline at end of file
+++ /dev/null
-[domain_realm]
- .mit.edu = ATHENA.MIT.EDU
- mit.edu = ATHENA.MIT.EDU
- .cortex.net = ATHENA.MIT.EDU
- .vwrsp.com = ATHENA.MIT.EDU
- .officedepot.com = ATHENA.MIT.EDU
- boc.hosting.ibm.com = ATHENA.MIT.EDU
- .media.mit.edu = MEDIA-LAB.MIT.EDU
- media.mit.edu = MEDIA-LAB.MIT.EDU
- .cygnus.com = CYGNUS.COM
- cygnus.com = CYGNUS.COM
-
-[libdefaults]
- default_realm = ATHENA.MIT.EDU
- ticket_lifetime = 600
- default_tkt_enctypes = des-cbc-crc
- default_tgs_enctypes = des-cbc-crc
-
-[realms]
- ATHENA.MIT.EDU = {
- kdc = kerberos.mit.edu:88
- kdc = kerberos-1.mit.edu:88
- kdc = kerberos-2.mit.edu:88
- kdc = kerberos-3.mit.edu:88
- admin_server = kerberos.mit.edu
- default_domain = mit.edu
- }
- MEDIA-LAB.MIT.EDU = {
- kdc = kerberos.media.mit.edu
- admin_server = kerberos.media.mit.edu
- }
- ZONE.MIT.EDU = {
- kdc = casio.mit.edu
- kdc = seiko.mit.edu
- admin_server = casio.mit.edu
- }
- CYGNUS.COM = {
- kdc = KERBEROS-1.CYGNUS.COM
- kdc = KERBEROS.CYGNUS.COM
- admin_server = KERBEROS.CYGNUS.COM
- }
- GREY17.ORG = {
- kdc = kerberos.grey17.org
- admin_server = kerberos.grey17.org
- }
+++ /dev/null
-#!/usr/athena/bin/perl -w
-
-# Usage:
-# macfile_gen.pl list-type start-path prefix
-# list-type is one of:
-# all-files -- complete list of mac sources, relative to root
-# all-folders -- complete list of mac directories, relative to root
-# gss-sources -- complete list of mac GSS sources, relative to root
-# krb5-sources -- complete list of mac Krb5 sources, relative to root
-# profile-sources -- complete list of mac profile sources, relative to root
-# comerr-sources -- complete list of mac com_err sources, relative to root
-# gss-objects-ppc-debug -- complete list of mac GSS PPC debug objects, relative to root
-# gss-objects-68k-debug -- complete list of mac GSS 68K debug objects, relative to root
-# gss-objects-ppc-final -- complete list of mac GSS PPC final objects, relative to root
-# gss-objects-68k-final -- complete list of mac GSS 68K final objects, relative to root
-# krb5-objects-ppc-debug -- complete list of mac Kerberos v5 PPC debug objects, relative to root
-# krb5-objects-68k-debug -- complete list of mac Kerberos v5 68K debug objects, relative to root
-# krb5-objects-ppc-final -- complete list of mac Kerberos v5 PPC final objects, relative to root
-# krb5-objects-68k-final -- complete list of mac Kerberos v5 68K final objects, relative to root
-# profile-objects-ppc-debug -- complete list of mac profile PPC debug objects, relative to root
-# profile-objects-68k-debug -- complete list of mac profile v5 68K debug objects, relative to root
-# profile-objects-ppc-final -- complete list of mac profile v5 PPC final objects, relative to root
-# profile-objects-68k-final -- complete list of mac profile v5 68K final objects, relative to root
-# comerr-objects-ppc-debug -- complete list of mac com_err PPC debug objects, relative to root
-# comerr-objects-68k-debug -- complete list of mac com_err v5 68K debug objects, relative to root
-# comerr-objects-ppc-final -- complete list of mac com_err v5 PPC final objects, relative to root
-# comerr-objects-68k-final -- complete list of mac com_err v5 68K final objects, relative to root
-# include-folders -- complete list of include paths, relative to root
-#
-# input on stdin
-# output on stdout
-
-# Check number of arguments
-if (scalar @ARGV != 2) {
- print (STDERR "Got " . scalar @ARGV . " arguments, expected 2");
- &usage;
- exit;
-}
-
-# Parse arguments
-$action = $ARGV [0];
-$ROOT = $ARGV [1];
-#$prefix = $ARGV [2];
-
-# Read source list
-if ($action ne "all-files") {
-
- @sourceList = <STDIN>;
- grep (s/\n$//, @sourceList);
-
-} else {
-
- @sourceList = &make_macfile_maclist (&make_macfile_list ());
-# foreach (@sourceList) {
-# $_ =~ s/^:/$prefix/;
-# }
-# @sourceList = map { $prefix . $_;} @sourceList;
-
-}
-
-
-if ($action eq "all-folders") {
-
- print (STDERR "# Building folder listÉ ");
- @outputList = grep (s/(.*:)[^:]*\.c$/$1/, @sourceList);
- @outputList = &uniq (sort (@outputList));
-
- print (STDERR "Done.\n");
-
-} elsif ($action eq "all-files") {
-
- print (STDERR "# Building file listÉ ");
- @outputList = @sourceList;
- print (STDERR "Done.\n");
-
-} elsif ($action eq "all-sources") {
-
- print (STDERR "# Building source listÉ ");
- @outputList = grep (/.c$/, @sourceList);
- print (STDERR "Done.\n");
-
-} elsif ($action eq "gss-sources") {
-
- print (STDERR "# Building GSS source listÉ ");
- @outputList = grep (/:gssapi:/, @sourceList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "krb5-sources") {
-
- print (STDERR "# Building Kerberos v5 source listÉ ");
- @outputList = grep (!/:gssapi:|:profile:|:et:/, @sourceList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "profile-sources") {
-
- print (STDERR "# Building profile source listÉ ");
- @outputList = grep (/:profile:/, @sourceList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "comerr-sources") {
-
- print (STDERR "# Building profile source listÉ ");
- @outputList = grep (/:et:/, @sourceList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "gss-objects-ppc-debug") {
-
- print (STDERR "# Building GSS PPC debug object listÉ ");
- @outputList = grep (s/\.c$/\.ppcd.o/, @sourceList);
- @outputList = grep (/:gssapi:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "gss-objects-68k-debug") {
-
- print (STDERR "# Building GSS 68K debug object listÉ ");
- @outputList = grep (s/\.c$/\.68kd.o/, @sourceList);
- @outputList = grep (/:gssapi:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "gss-objects-ppc-final") {
-
- print (STDERR "# Building GSS PPC final object listÉ ");
- @outputList = grep (s/\.c$/\.ppcf.o/, @sourceList);
- @outputList = grep (/:gssapi:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "gss-objects-68k-final") {
-
- print (STDERR "# Building GSS 68K final object listÉ ");
- @outputList = grep (s/\.c$/\.68kf.o/, @sourceList);
- @outputList = grep (/:gssapi:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "krb5-objects-ppc-debug") {
-
- print (STDERR "# Building Kerberos v5 PPC debug object listÉ ");
- @outputList = grep (s/\.c$/\.ppcd.o/, @sourceList);
- @outputList = grep (!/:gssapi:|:profile:|:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "krb5-objects-68k-debug") {
-
- print (STDERR "# Building Kerberos v5 68K debug object listÉ ");
- @outputList = grep (s/\.c$/\.68kd.o/, @sourceList);
- @outputList = grep (!/:gssapi:|:profile:|:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "krb5-objects-ppc-final") {
-
- print (STDERR "# Building Kerberos v5 PPC final object listÉ ");
- @outputList = grep (s/\.c$/\.ppcf.o/, @sourceList);
- @outputList = grep (!/:gssapi:|:profile:|:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "krb5-objects-68k-final") {
-
- print (STDERR "# Building Kerberos v5 68K final object listÉ ");
- @outputList = grep (s/\.c$/\.68kf.o/, @sourceList);
- @outputList = grep (!/:gssapi:|:profile:|:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "profile-objects-ppc-debug") {
-
- print (STDERR "# Building profile PPC debug object listÉ ");
- @outputList = grep (s/\.c$/\.ppcd.o/, @sourceList);
- @outputList = grep (/:profile:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "profile-objects-68k-debug") {
-
- print (STDERR "# Building profile 68K debug object listÉ ");
- @outputList = grep (s/\.c$/\.68kd.o/, @sourceList);
- @outputList = grep (/:profile:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "profile-objects-ppc-final") {
-
- print (STDERR "# Building profile PPC final object listÉ ");
- @outputList = grep (s/\.c$/\.ppcf.o/, @sourceList);
- @outputList = grep (/:profile:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "profile-objects-68k-final") {
-
- print (STDERR "# Building profile 68K final object listÉ ");
- @outputList = grep (s/\.c$/\.68kf.o/, @sourceList);
- @outputList = grep (/:profile:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "comerr-objects-ppc-debug") {
-
- print (STDERR "# Building com_err PPC debug object listÉ ");
- @outputList = grep (s/\.c$/\.ppcd.o/, @sourceList);
- @outputList = grep (/:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "comerr-objects-68k-debug") {
-
- print (STDERR "# Building com_err 68K debug object listÉ ");
- @outputList = grep (s/\.c$/\.68kd.o/, @sourceList);
- @outputList = grep (/:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "comerr-objects-ppc-final") {
-
- print (STDERR "# Building com_err PPC final object listÉ ");
- @outputList = grep (s/\.c$/\.ppcf.o/, @sourceList);
- @outputList = grep (/:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "comerr-objects-68k-final") {
-
- print (STDERR "# Building com_err 68K final object listÉ ");
- @outputList = grep (s/\.c$/\.68kf.o/, @sourceList);
- @outputList = grep (/:et:/, @outputList);
- print (STDERR "Done. \n");
-
-} elsif ($action eq "include-folders") {
-
- print (STDERR "# Building include listÉ ");
- @outputList = grep (s/(.*:)[^:]*\.h$/-i $1/, @sourceList);
- @outputList = &uniq (sort (@outputList));
- print (STDERR "Done. \n");
-
-} else {
-
- &usage;
- exit;
-
-}
-
-print (join ("\n", @outputList), "\n");
-
-exit;
-
-#
-# Brad wrote rest of this stuff. Bug him, not me :-)
-#
-
-
-# Assuming the arguments are sorted, returns a copy with all duppliactes
-# removed.
-# @SPARSE_LIST = &uniq(@DUP_LIST);
-sub uniq
-{
- if (@_==0) { return (); }
- if (@_==1) { return @_; }
- local($N);
- for ($N=0; $N<$#_; $N++)
- {
- $_[$N]=undef if $_[$N] eq $_[$N+1];
- }
- return(grep(defined($_), @_));
-}
-
-# Makes a makefile line-list from a list of sources.
-# @MACFILE_MACLIST = &make_macfile_maclist(@SOURCE_FILES);
-sub make_macfile_maclist
-{
- local(@LINES)=@_;
- local($I);
- for $I (0..$#LINES)
- {
- $LINES[$I]=~s|/|:|g;
- $LINES[$I]=~s|^|:|g;
- if ($LINES[$I]=~/:.:/) { $LINES[$I]=undef; }
- elsif ($LINES[$I]=~/:mac:/) { $LINES[$I]=undef; }
- }
- grep(defined($_), @LINES);
-}
-
-# Returns a list of files needed in the mac build.
-# @FILES = &make_macfile_list ();
-sub make_macfile_list
-{
- local(@MAKEFILE)=&merge_continue_lines(&read_file("Makefile.in"));
- local($MACDIRS)=&extract_variable("MAC_SUBDIRS", @MAKEFILE);
- local(@RETVAL)=&macfiles_sh(split(/\s+/, $MACDIRS));
-
- local(@MACFILES)=split(/\s+/, &extract_variable("MACFILES", @MAKEFILE));
- local(@FOUND)=();
- local($MACFILE);
- for $MACFILE (@MACFILES)
- {
- push(@FOUND, &find_and_glob($MACFILE));
- }
-
- push(@RETVAL, &sed_exclude("config/winexclude.sed", @FOUND));
- @RETVAL;
-}
-
-# Applies SEDFILE to STREAM. Only deletions are valid.
-# This could be expanded if neccessary.
-# @OUT = &sed_exclude($SEDFILE, @STREAM);
-sub sed_exclude
-{
- if ($#_<1)
- {
- print STDERR "Invalid call to sed_exclude.\n";
- exit(1);
- # I have this error because it always indicates
- # that something is wrong, not because a one argument
- # call doesn't make sense.
- }
- local ($SEDFILE, @STREAM)=($_[0], @_[1..$#_]);
- local (@SEDLINES)=&read_file($SEDFILE);
- local (@DELLINES)=grep(s#^/(.*)/d$#$1#, @SEDLINES);
- if (@SEDLINES!=@DELLINES)
- {
- print STDERR "sed script $SEDFILE confused me.\n";
- exit(1);
- }
- local ($LINE, @RETVALS);
- @RETVALS=();
- for $LINE (@STREAM)
- {
- local($RET)=(1);
- for $DEL (@DELLINES)
- {
- if ($LINE=~/$DEL/)
- {
- $RET=0;
- }
- }
- $RET && push(@RETVALS, $LINE);
- }
- @RETVALS;
-}
-
-# Returns a list of files that match a glob. You can only glob in the
-# filename part...no directories allowed. Only real files (no dirs,
-# block specials, etc.) are returned. An example argument is
-# "./vers?filesfoo*.c". ?'s and *'s are valid globbing characters. You
-# can push your luck with []'s, but it is untested. Files must be visible.
-# @FILES = &find_and_glob("$BASEDIR/$FILEGLOB");
-sub find_and_glob
-{
- local($PATTERN)=($_[0]);
- local($DIR, $FILE)=($PATTERN=~m|^(.*)/([^/]*)$|)[0,1];
- if (!defined($FILE) || !defined($DIR) || length($DIR)<1 || length($FILE)<1)
- {
- print STDERR "Invalid call to find_and_glob.\n";
- exit(1);
- }
- $FILE=~s/\./\\\./g;
- $FILE=~s/\*/\.\*/g;
- $FILE=~s/\?/./g;
- local (@FILES)=&list_in_dir($DIR, $FILE);
- local (@RETVAL)=();
- for (@FILES)
- {
- push(@RETVAL, "$DIR/$_");
- }
- @RETVAL;
-}
-
-# Recurses over @DIRS and returns a list of files needed for the mac krb5
-# build. It is similar to the macfiles.sh script.
-# @MACFILES = &macfiles_sh(@DIRS);
-sub macfiles_sh
-{
- local (@RETVAL)=();
- local ($DIR);
- for $DIR (@_)
- {
- local (@MAKEFILE);
- @MAKEFILE=&merge_continue_lines(&read_file("$DIR/Makefile.in"));
- for $SDIR (split(/\s+/, &extract_variable("MAC_SUBDIRS", @MAKEFILE)))
- {
- local(@MAKEFILE)=&merge_continue_lines(
- &read_file("$DIR/$SDIR/Makefile.in"));
- local(@SRCS)=(split(/\s+/, (&extract_variable('MACSRCS', @MAKEFILE) .
- &extract_variable('MACSRC', @MAKEFILE) .
- &extract_variable('SRCS', @MAKEFILE) .
- &extract_variable('SRC', @MAKEFILE))));
- @SRCS=grep(/.*\.c/, @SRCS);
- local ($SRC);
- for $SRC (@SRCS)
- {
- $SRC=~s|.*/([^/]+)|$1|;
- push(@RETVAL, "$DIR/$SDIR/$SRC");
- }
- local(@HEADS)=&list_in_dir("$DIR/$SDIR", '.*\.h$');
- local($HEAD);
- for $HEAD (@HEADS)
- {
- push(@RETVAL, "$DIR/$SDIR/$HEAD");
- }
- push(@RETVAL, &macfiles_sh("$DIR/$SDIR"));
- }
- }
- @RETVAL;
-}
-exit;
-
-# Given a the contents of a makefile in @_[1,$#_], one line to an element,
-# returns the Makefile format variable specified in $_[0]. If the
-# $FILE_NAME variable is defined, it is used in error messages.
-# @MAKEFILE_CONTENTS should have already been filtered through
-# merge_continue_lines().
-# $VARIABLE_VALUE = &extract_variable($VARAIBLE_NAME, @MAKEFILE_CONTENTS);
-sub extract_variable
-{
- local ($FN, $VARNAME, @LINES, @MATCHES);
- $FN=defined($FILE_NAME)?$FILE_NAME:"<unknown>";
-
- if ($#_<2)
- {
- print(STDERR "Invalid call to extract_variable.\n");
- exit(1);
- }
- $VARNAME=$_[0];
- @LINES=@_[1..$#_];
- @MATCHES=grep(/^$VARNAME\s*=.+/, @LINES);
- if (@MATCHES>1)
- {
- print STDERR "Too many matches for variable $VARNAME in $FN.\n";
- exit(1);
- }
- if (@MATCHES==0)
- {
- return "";
- }
- return ($MATCHES[0]=~/^$VARNAME\s*=\s*(.*)$/)[0];
-}
-
-# Print the arguments separated by newlines.
-# &print_lines(@LINES);
-sub print_lines
-{
- print(join("\n", @_), "\n");
-}
-
-# Given an array of lines, returns the same array transformed to have
-# all lines ending in backslashes merged with the following lines.
-# @LINES = &merge_continue_lines(@RAWLINES);
-sub merge_continue_lines
-{
- local ($LONG)=join("\n", @_);
- $LONG=~s/\\\n/ /g;
- return split('\n', $LONG);
-}
-
-# Returns the contents of the file named $_[0] in an array, one line
-# in each element. Newlines are stripped.
-# @FILE_CONTENTS = &read_file($FILENAME);
-sub read_file
-{
- die("Bad call to read_file") unless defined $_[0];
- local($FN) = (&chew_on_filename($_[0]));
- local (@LINES, @NLFREE_LINES);
-
- if (!open(FILE, $FN))
- {
- print(STDERR "Can't open $FN.\n");
- exit(1);
- }
-
- @LINES=<FILE>;
- @NLFREE_LINES=grep(s/\n$//, @LINES);
-
- if (!close(FILE))
- {
- print(STDERR "Can't close $FN.\n");
- exit(1);
- }
-
- @NLFREE_LINES;
-}
-
-# lists files that match $PATTERN in $DIR.
-# Returned files must be real, visible files.
-# @FILES = &list_in_dir($DIR, $PATTERN);
-sub list_in_dir
-{
- local ($DIR, $PATTERN) = @_[0,1];
- local ($MACDIR)=&chew_on_filename($DIR);
- opendir(DIRH, $MACDIR) || die("Can't open $DIR");
- local(@FILES)=readdir(DIRH);
- closedir(DIRH);
- local (@RET)=();
- for (@FILES)
- {
- local($FILE)=$_;
- if ($FILE=~/^$PATTERN$/ && &is_a_file("$DIR/$_") && $FILE=~/^[^.]/)
- {
- push(@RET, $FILE);
- }
- }
- @RET;
-}
-
-# Returns whether the argument exists and is a real file.
-# $BOOL = &is_a_file($FILENAME);
-sub is_a_file
-{
- die("Invalid call to is_a_file()") unless defined($_[0]);
- local($FILE)=$_[0];
- return -f &chew_on_filename($FILE);
-}
-
-# Returns the argument, interpretted as a filename, munged
-# for the local "Operating System", as defined by $^O.
-# As of now, fails on full pathnames.
-# $LOCALFN = &chew_on_filename($UNIXFN);
-sub chew_on_filename
-{
- if (@_!=1)
- {
- print(STDERR "Bad call to chew_on_filename.\n");
- exit(1);
- }
- $_=$_[0];
-
- $_="$ROOT/$_";
-
- if ($^O eq 'MacOS')
- {
- s%/\.\./%:/%g;
- s%^\.\./%/%;
- s%^\./%%;
- s%/\./%/%g;
- s%/\.$%%g;
- s%/%:%g;
- s%^%:%g;
- s%^:\.$%:%;
- }
-
- return $_;
-}
-
-# Deletes a file
-# &delete_file($FILE);
-sub delete_file
-{
- die("Illegal call to delete_file()") unless defined $_[0];
- unlink(&chew_on_filename($_[0]));
-}
-
-# Returns a one-level deep copy of an array.
-# @B = ©_array(@A);
-sub copy_array
-{
- local (@A)=();
- for (@_)
- {
- push(@A, $_);
- }
- @A;
-}
-