1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
# 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
/^[SU]=/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
# Convert ../../ to :::
/\./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
s/ $//
|