First cut at Macintosh configuration support
authorJohn Gilmore <gnu@toad.com>
Fri, 17 Mar 1995 04:57:34 +0000 (04:57 +0000)
committerJohn Gilmore <gnu@toad.com>
Fri, 17 Mar 1995 04:57:34 +0000 (04:57 +0000)
* mac-config.cache:  New file, a hand-built autoconf `config.cache'
file with the right values for building under MPW.
* mac-config.README:  Documentation for mac-config.cache.
* mac-pre.in, mac-post.in:  Versions of pre.in and post.in for
configuring on MPW.
* mac-mf.sed:  A `sed' script which will turn carefully constructed
Unix Makefiles into carefully constructed Macintosh MPW Makefiles.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5139 dc483132-0cff-0310-8789-dd5450dbe970

src/config/ChangeLog
src/config/mac-config.README [new file with mode: 0644]
src/config/mac-config.cache [new file with mode: 0644]
src/config/mac-mf.sed [new file with mode: 0644]
src/config/mac-post.in [new file with mode: 0644]
src/config/mac-pre.in [new file with mode: 0644]

index 2f6aa026be0819f7a08c3de36bc1f3a278f8639a..92bac42cc6f87a2f6748bbaf9fd3c70cc1ee3b7b 100644 (file)
@@ -1,3 +1,15 @@
+Thu Mar 16 20:55:18 1995  John Gilmore  (gnu at toad.com)
+
+       First cut at Macintosh configuration support.
+
+       * mac-config.cache:  New file, a hand-built autoconf `config.cache'
+       file with the right values for building under MPW.
+       * mac-config.README:  Documentation for mac-config.cache.
+       * mac-pre.in, mac-post.in:  Versions of pre.in and post.in for 
+       configuring on MPW.
+       * mac-mf.sed:  A `sed' script which will turn carefully constructed
+       Unix Makefiles into carefully constructed Macintosh MPW Makefiles.
+
 Wed Mar 3 16:00:00 1995 Keith Vetter (keithv@fusion.com)
 
        * windows.in: changed included directories to reflect MAC changes
diff --git a/src/config/mac-config.README b/src/config/mac-config.README
new file mode 100644 (file)
index 0000000..6fb2cc0
--- /dev/null
@@ -0,0 +1,11 @@
+# mac-config.cache is a:
+#
+# CUSTOMIZED, HAND-BUILT CONFIGURE CACHE FOR BUILDING ON MACINTOSH UNDER MPW
+# Built by John Gilmore, Cygnus Support, 22 Feb 95.
+#
+# These comments are not in mac-config.cache itself because 
+# mac-config.cache needs to have no extraneous comments, so that `configure'
+# doesn't think that the file differs from the current settings of
+# all the cached autoconf state variables.  This allows `configure' to
+# know that the config.cache doesn't need updating after every time configure
+# is run.
diff --git a/src/config/mac-config.cache b/src/config/mac-config.cache
new file mode 100644 (file)
index 0000000..85183cd
--- /dev/null
@@ -0,0 +1,152 @@
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+: ${ac_cv_c_const='no'}
+: ${ac_cv_c_cross='no'}
+: ${ac_cv_func_cfsetispeed='no'}
+: ${ac_cv_func_cgetent='no'}
+: ${ac_cv_func_daemon='no'}
+: ${ac_cv_func_dbm_open='no'}
+: ${ac_cv_func_flock='no'}
+: ${ac_cv_func_ftime='no'}
+: ${ac_cv_func_getcwd='no'}
+: ${ac_cv_func_getdtablesize='no'}
+: ${ac_cv_func_getopt='yes'}
+: ${ac_cv_func_getpid='no'}
+: ${ac_cv_func_gettosbyname='no'}
+: ${ac_cv_func_getutent='no'}
+: ${ac_cv_func_grantpt='no'}
+: ${ac_cv_func_herror='no'}
+: ${ac_cv_func_initgroups='no'}
+: ${ac_cv_func_killpg='no'}
+: ${ac_cv_func_labs='no'}
+: ${ac_cv_func_line_push='no'}
+: ${ac_cv_func_memmove='yes'}
+: ${ac_cv_func_ptsname='no'}
+: ${ac_cv_func_setenv='no'}
+: ${ac_cv_func_setpriority='no'}
+: ${ac_cv_func_setresuid='no'}
+: ${ac_cv_func_setreuid='no'}
+: ${ac_cv_func_setsid='no'}
+: ${ac_cv_func_setupterm='no'}
+: ${ac_cv_func_setutent='no'}
+: ${ac_cv_func_setutxent='no'}
+: ${ac_cv_func_setvbuf='yes'}
+: ${ac_cv_func_sigprocmask='no'}
+: ${ac_cv_func_sigsetjmp='no'}
+: ${ac_cv_func_srand='yes'}
+: ${ac_cv_func_srand48='yes'}
+: ${ac_cv_func_srandom='yes'}
+: ${ac_cv_func_strcasecmp='no'}
+: ${ac_cv_func_strdup='no'}
+: ${ac_cv_func_strerror='no'}
+: ${ac_cv_func_strftime='yes'}
+: ${ac_cv_func_strsave='no'}
+: ${ac_cv_func_tcsetattr='no'}
+: ${ac_cv_func_timezone='no'}
+: ${ac_cv_func_updwtmp='no'}
+: ${ac_cv_func_updwtmpx='no'}
+: ${ac_cv_func_utimes='no'}
+: ${ac_cv_func_vfork='no'}
+: ${ac_cv_func_vfprintf='yes'}
+: ${ac_cv_func_vhangup='no'}
+: ${ac_cv_func_vsprintf='yes'}
+: ${ac_cv_func_vsyslog='no'}
+: ${ac_cv_func_waitpid='no'}
+: ${ac_cv_header_alloca_h='no'}
+: ${ac_cv_header_dirent_h='yes'}
+: ${ac_cv_header_flock_h='no'}
+: ${ac_cv_header_lastlog_h='yes'}
+: ${ac_cv_header_macsock_h='yes'}
+: ${ac_cv_header_netinet_in_h='yes'}
+: ${ac_cv_header_paths_h='no'}
+: ${ac_cv_header_stdarg_h='yes'}
+: ${ac_cv_header_stdc='no'}
+: ${ac_cv_header_stdlib_h='yes'}
+: ${ac_cv_header_string_h='yes'}
+: ${ac_cv_header_strings_h='yes'}
+: ${ac_cv_header_sys_file_h='no'}
+: ${ac_cv_header_sys_filio_h='no'}
+: ${ac_cv_header_sys_label_h='no'}
+: ${ac_cv_header_sys_param_h='no'}
+: ${ac_cv_header_sys_ptyvar_h='no'}
+: ${ac_cv_header_sys_select_h='no'}
+: ${ac_cv_header_sys_sockio_h='no'}
+: ${ac_cv_header_sys_stat_h='no'}
+: ${ac_cv_header_sys_stream_h='no'}
+: ${ac_cv_header_sys_time_h='no'}
+: ${ac_cv_header_sys_timeb_h='no'}
+: ${ac_cv_header_sys_tty_h='no'}
+: ${ac_cv_header_sys_types_h='no'}
+: ${ac_cv_header_termios_h='no'}
+: ${ac_cv_header_time='yes'}
+: ${ac_cv_header_ttyent_h='no'}
+: ${ac_cv_header_unistd_h='no'}
+: ${ac_cv_header_utmpx_h='no'}
+: ${ac_cv_header_vfork_h='no'}
+: ${ac_cv_lib_BSD='no'}
+: ${ac_cv_lib_dbm='no'}
+: ${ac_cv_lib_l='no'}
+: ${ac_cv_lib_ndbm='no'}
+: ${ac_cv_lib_nsl='no'}
+: ${ac_cv_lib_odm='no'}
+: ${ac_cv_lib_socket='no'}
+: ${ac_cv_lib_termcap='no'}
+: ${ac_cv_lib_util='no'}
+: ${ac_cv_path_UCB_RCP='/usr/ucb/rcp'}
+: ${ac_cv_path_UCB_RLOGIN='/usr/ucb/rlogin'}
+: ${ac_cv_path_UCB_RSH='/usr/ucb/rsh'}
+: ${ac_cv_path_install='/usr/bin/install -c'}
+: ${ac_cv_prog_ARADD='ar cruv'}
+: ${ac_cv_prog_ARCHIVE='ar qv'}
+: ${ac_cv_prog_AWK='gawk'}
+: ${ac_cv_prog_CPP='cc -E'}
+: ${ac_cv_prog_LEX='lex'}
+: ${ac_cv_prog_LN_S='ln -s'}
+: ${ac_cv_prog_RANLIB='ranlib'}
+: ${ac_cv_prog_YACC='bison -y'}
+: ${ac_cv_sizeof_int='4'}
+: ${ac_cv_sizeof_long='4'}
+: ${ac_cv_sizeof_short='2'}
+: ${ac_cv_type_mode_t='no'}
+: ${ac_cv_type_pid_t='no'}
+: ${ac_cv_type_signal='void'}
+: ${ac_cv_type_size_t='yes'}
+: ${ac_cv_type_uid_t='no'}
+: ${krb5_cv_decl_errlist='no'}
+: ${krb5_cv_decl_fcntl_ordonly='no'}
+: ${krb5_cv_decl_perror='no'}
+: ${krb5_cv_f_setown='no'}
+: ${krb5_cv_func_sigprocmask_use='no'}
+: ${krb5_cv_getpgrp_args='pid'}
+: ${krb5_cv_has_ansi_stdio='no'}
+: ${krb5_cv_has_ansi_volatile='no'}
+: ${krb5_cv_has_posix_signals='no'}
+: ${krb5_cv_has_prototypes='yes'}
+: ${krb5_cv_has_streams='no'}
+: ${krb5_cv_has_void_type='yes'}
+: ${krb5_cv_setenv='no'}
+: ${krb5_cv_setpgrp_args='two'}
+: ${krb5_cv_shadow_pwd='no'}
+: ${krb5_cv_struct_flock='no'}
+: ${krb5_cv_struct_prototypes='no'}
+: ${krb5_cv_struct_sigjmp_buf='no'}
+: ${krb5_cv_struct_ut_exit='no'}
+: ${krb5_cv_struct_ut_host='no'}
+: ${krb5_cv_struct_ut_pid='no'}
+: ${krb5_cv_struct_ut_type='no'}
+: ${krb5_cv_struct_wait='no'}
+: ${krb5_cv_sys_setpgrp_two='no'}
+: ${krb5_cv_type_sigset_t='no'}
+: ${krb5_cv_type_yylineno='no'}
diff --git a/src/config/mac-mf.sed b/src/config/mac-mf.sed
new file mode 100644 (file)
index 0000000..8b0a957
--- /dev/null
@@ -0,0 +1,158 @@
+# Rewrite default rules from .c.o:  to  .c.o: .c
+/^\./s/^\(\.[a-z]*\)\(\.[a-z]*\)\( *: *\)$/\1\2\3 \1/
+
+# Change dependency char.
+/::/s/::/ \\Option-f\\Option-f /g
+/:/s/:/ \\Option-f /g
+/^[CSU]=/s/ \\Option-f /:/g
+
+# Change syntax of Makefile vars.
+/\$/s/\${\([a-zA-Z0-9_]*\)}/{\1}/g
+/\$/s/\$(\([a-zA-Z0-9_]*\))/{\1}/g
+
+# Change $@ to {targ}
+/\$@/s/\$@/{targ}/g
+
+# Change pathname syntax.
+#
+# If line ends with ..  then assume it sets a variable that will
+# be used to prefix something else -- eliminate one colon, assuming
+# that a slash after the ${name} will turn into the missing colon.
+# Mac pathname conventions are IRREGULAR and UGLY!
+/\./s,\.\./\.\.$,::,
+/\./s,\.\.$,:,
+# Same if it ends with  .  (a single dot); turn it into nothing.
+/\./s,\.$,,g
+# Rules for .. and . elsewhere in the line
+# Convert ../: to ::, recur to get whole paths.
+/\./s,\.\./:,::,g
+/\./s,\.\./:,::,g
+/\./s,\.\./:,::,g
+/\./s,\.\./:,::,g
+# Convert ../../ to ::: 
+/\./s,\.\./\.\./,:::,g
+/\./s,\.\./,::,g
+/\./s,\.\.;,::;,g
+/\.\//s,\./,:,g
+/\//s,/,:,g
+
+/=/s/ = \.$/ = :/
+
+# Comment out any explicit srcdir setting.
+# /srcdir/s/^srcdir/# srcdir/
+
+/version/s/^version=/# version=/
+
+/BASEDIR/s/^BASEDIR =.*$/BASEDIR = "{srcroot}"/
+/{BASEDIR}:/s/{BASEDIR}:/{BASEDIR}/g
+# The original lines screw up -I$(srcdir)/../des  by eliminating a colon.
+# Proposed fix:  Eliminate srcdir prefixes totally.
+#/{srcdir}:/s/{srcdir}:/"{srcdir}"/g
+/{srcdir}:/s/{srcdir}://g
+#/"{srcdir}":/s/"{srcdir}":/"{srcdir}"/g
+
+# Comment out settings of anything set by mpw host config.
+##/CC/s/^CC *=/#CC =/
+##/CFLAGS/s/^CFLAGS *=/#CFLAGS =/
+##/LDFLAGS/s/^LDFLAGS *=/#LDFLAGS =/
+
+# Change -I usage.
+/-I/s/-I\./-i :/g
+/-I/s/-I::bfd/-i ::bfd:/g
+/-I/s/-I::include/-i ::include:/g
+/-I/s/-I/-i /g
+
+# Change -D usage.
+/-D/s/\([ =]\)-D\([^ ]*\)/\1-d \2/g
+
+# Change continuation char.
+/\\$/s/\\$/\\Option-d/
+
+# Change wildcard char.
+/^[^#]/s/\*/\\Option-x/g
+
+# Change path of various types of source files.
+#/\.[chly]/s/\([       ><=]\)\([-a-zA-Z0-9_$:"]*\)\.\([chly]\)/\1"{s}"\2.\3/g
+#/\.[chly]/s/^\([-a-zA-Z0-9_${}:"]*\)\.\([chly]\)/"{s}"\1.\2/g
+# Skip the {s} and {o} business for now...
+# Fix some overenthusiasms.
+#/{s}/s/"{s}""{srcdir}"/"{srcdir}"/g
+#/{s}/s/"{s}"{\([a-zA-Z0-9_]*\)dir}/"{\1dir}"/g
+#/{s}/s/"{s}"{\([a-zA-Z0-9_]*\)DIR}/"{\1DIR}"/g
+#/{s}/s/"{s}""{\([a-zA-Z0-9_]*\)dir}"/"{\1dir}"/g
+#/{s}/s/"{s}""{\([a-zA-Z0-9_]*\)DIR}"/"{\1DIR}"/g
+#/{s}/s/"{s}":/:/g
+#/{s}/s/^"{s}"//g
+#/^\./s/"{s}"\././g
+
+# Change extension and path of objects, except in the OBJEXT line.
+#/^OBJEXT/!s/\([       =]\)\([-a-zA-Z0-9_${}:"]*\)\.o/\1"{o}"\2.c.o/g
+#/\.o/s/^\([-a-zA-Z0-9_${}:"]*\)\.o/"{o}"\1.c.o/g
+# Skip the {o} stuff for now...
+/^OBJEXT/!s/\([        =]\)\([-a-zA-Z0-9_${}:"]*\)\.o/\1\2.c.o/g
+/\.o/s/^\([-a-zA-Z0-9_${}:"]*\)\.o/\1.c.o/g
+# Clean up.
+#/\.o/s/"{o}""{o}"/"{o}"/g
+#/{o}/s/^"{o}"\([a-zA-Z0-9_]*\)=/\1=/g
+
+# Change extension of libs.
+# /\.a/s/lib\([a-z]*\)\.a/lib\1.o/g
+
+# Remove non-echo option.
+/^     -/s/^   -/      /
+
+# Change cp to duplicate.
+# /cp/s/^\([   ]*\)cp /\1Duplicate -d -y /
+# Change mv to rename.
+# /mv/s/^\([   ]*\)mv /\1Rename -y /
+# /Rename/s/^\([       ]*\)Rename -y -f/\1Rename -y/
+# Change rm to delete.
+/^RM=/s/rm -f/Delete -i -y/
+# /rm/s/^\([   ]*\)rm /\1Delete -y /
+# /Delete/s/^\([       ]*\)Delete -y -f/\1Delete -y/
+# Comment out symlinking.
+# /ln/s/^\([   ]*\)ln /\1# ln /
+
+# Remove -c from explicit compiler calls.
+# /-c/s/{CC}\(.*\) -c \(.*\)\([-a-z]*\)\.c/{CC}\1 \2\3.c -o "{o}"\3.c.o/g
+# Don't ask... prev subst seems to omit the second filename.
+# /-o/s/\([-a-z]*\)\.c -o "{o}".c.o/\1\.c -o "{o}"\1.c.o/
+
+# Change linking cc to link.
+/LDFLAGS/    s/{CC} \(.*\){CFLAGS}\(.*\){LDFLAGS}/Link \1 \2 {LDFLAGS}/
+/CFLAGS_LINK/s/{CC} \(.*\){CFLAGS_LINK}\(.*\){LDFLAGS}/Link \1 \2 {LDFLAGS}/
+
+# Comment out .PHONY rules.
+/\.PHONY/s/^\.PHONY/# \.PHONY/
+# Comment out .SUFFIXES rules.
+/\.SUFFIXES/s/^\.SUFFIXES/# \.SUFFIXES/
+# Comment out .PRECIOUS rules.
+/\.PRECIOUS/s/^\.PRECIOUS/# \.PRECIOUS/
+## Comment out default rules.
+##/^\./s/^\(\.[a-z]*\.[a-z]* \)/# \1/
+
+#
+#  End of original hack-mf.sed
+#
+#  Begin original hack-mf2.sed
+#
+# Transform expressions.
+
+# Set the install program appropriate.
+# /INSTALL/s/^INSTALL *= *`.*`:install.sh -c/INSTALL = Duplicate -y/
+
+# Include from the extra-include dir.
+# /^INCLUDES = /s/^INCLUDES = /INCLUDES = -i "{srcroot}"extra-include /
+
+# Yuck - remove unconverted autoconf things.
+# /@/s/@[^     ]*@//g
+
+# Hackery, pure and simple
+# To speed up compiles, remove duplicated -i options.
+/-i/s/\(-i [^ ]*\) \1 /\1 /g
+
+# Note!  There are 8-bit characters in the three lines below:
+#      0xc4, 0xb6, 0xc5.
+/Option/s/\\Option-f/Ä/g
+/Option/s/\\Option-d/¶/g
+/Option/s/\\Option-x/Å/g
diff --git a/src/config/mac-post.in b/src/config/mac-post.in
new file mode 100644 (file)
index 0000000..f06af3c
--- /dev/null
@@ -0,0 +1,16 @@
+# config/post.in
+# put all:: first just in case no other rules occur here
+#
+all::
+
+check::
+
+clean:: clean-$(WHAT)
+       $(RM) config.log pre.out post.out Makefile.out
+
+clean-unix::
+       if test -n "$(OBJS)" ; then $(RM) $(OBJS); else :; fi
+
+clean-windows::
+       $(RM) *.$(OBJEXT)
+       $(RM) msvc.pdb *.err
diff --git a/src/config/mac-pre.in b/src/config/mac-pre.in
new file mode 100644 (file)
index 0000000..2e8e7ec
--- /dev/null
@@ -0,0 +1,162 @@
+## config/mac-pre.in
+## common Macintosh prefix for all Makefile.in in the Kerberos V5 tree.
+
+#
+# MPW-style lines for the MakeFile.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+#
+# This first part is long enough that NFS/Share doesn't notice the non-ASCII
+# characters in the rest of the file, so it claims that the file is type
+# TEXT, which is what we want.  The non-ASCII chars are necessary for MPW 
+# Make.
+
+#
+# End of MPW-style lines for MakeFile.
+#
+
+WHAT = mac
+
+# Directory syntax:
+R=
+C=:
+S=:
+U=:
+
+BUILDTOP = @BUILDTOP@
+srcdir = $(C)
+VPATH = @srcdir@
+
+# FIXME:  This doesn't translate to MPW yet, srcdir must be same as objdir.
+# File in object dir can come from either the current dir or srcdir.
+# 
+# . : . "{srcdir}"
+
+# Default rule that puts each file into separate segment.
+
+.c.o: .c
+       {CC}  {DepDir}{Default}.c {CFLAGS} -s {Default} -o {TargDir}{Default}.c.o
+
+CPPFLAGS = @CPPFLAGS@ -i {CIncludes}
+DEFS = @DEFS@ $(CPPFLAGS)
+CC = c
+LD = link
+# The funny quoting in the LDFLAGS is to avoid xxx.o being mangled by
+# mac-mf.sed into xxx.c.o.
+LDFLAGS=-t MPST -c "MPS " -sym on {Libraries}"Runtime."o {CLibraries}"StdClib."o {Libraries}"ToolLibs."o {Libraries}"Interface."o
+CCOPTS = @CCOPTS@
+LIBS = @LIBS@
+KRB5ROOT= @KRB5ROOT@
+KRB4=@KRB4@
+INSTALL=Duplicate -y
+INSTALL_PROGRAM=Duplicate -y
+INSTALL_DATA=Duplicate -y
+INSTALL_SETUID=Duplicate -y
+
+KRB5MANROOT = $(KRB5ROOT)$(S)man
+ADMIN_BINDIR = $(KRB5ROOT)$(S)admin
+SERVER_BINDIR = $(KRB5ROOT)$(S)sbin
+CLIENT_BINDIR = $(KRB5ROOT)$(S)bin
+ADMIN_MANDIR = $(KRB5MANROOT)$(S)man8
+SERVER_MANDIR = $(KRB5MANROOT)$(S)man8
+CLIENT_MANDIR = $(KRB5MANROOT)$(S)man1
+FILE_MANDIR = $(KRB5MANROOT)$(S)man5
+KRB5_LIBDIR = $(KRB5ROOT)$(S)lib
+KRB5_INCDIR = $(KRB5ROOT)$(S)include
+KRB5_INCSUBDIRS = \
+       $(KRB5_INCDIR)$(S)krb5 \
+       $(KRB5_INCDIR)$(S)asn.1 \
+       $(KRB5_INCDIR)$(S)kerberosIV
+
+
+RM = Delete -y -i
+CP = Duplicate -y
+MV = mv -f
+CHMOD=chmod
+RANLIB = @RANLIB@
+ARCHIVE = @ARCHIVE@
+ARADD = @ARADD@
+LN = Duplicate -y
+AWK = @AWK@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+YACC = @YACC@
+MAKE = BuildProgram
+
+# FIXME:  This won't work for srcdir != objdir.  But on the Mac, there
+# is no easy way to build a relative or absolute path, because : means
+# both the path separator, and the "go up a directory" indicator.
+#SRCTOP = $(srcdir)$(S)$(BUILDTOP)
+SRCTOP = $(BUILDTOP)
+SUBDIRS = @subdirs@
+
+TOPLIBD = $(BUILDTOP)$(S)lib
+
+OBJEXT = c.o
+LIBEXT = a
+EXEEXT =
+
+all::