• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Rewrite default rules from .c.o:  to  .c.o: .c
2/^\./s/^\(\.[a-z]*\)\(\.[a-z]*\)\( *: *\)$/\1\2\3 \1/
3
4# Change dependency char.
5/::/s/::/ \\Option-f\\Option-f /g
6/:/s/:/ \\Option-f /g
7/^[SU]=/s/ \\Option-f /:/g
8
9# Change syntax of Makefile vars.
10/\$/s/\${\([a-zA-Z0-9_]*\)}/{\1}/g
11/\$/s/\$(\([a-zA-Z0-9_]*\))/{\1}/g
12
13# Change $@ to {targ}
14/\$@/s/\$@/{targ}/g
15
16# Change pathname syntax.
17#
18# If line ends with ..  then assume it sets a variable that will
19# be used to prefix something else -- eliminate one colon, assuming
20# that a slash after the ${name} will turn into the missing colon.
21# Mac pathname conventions are IRREGULAR and UGLY!
22/\./s,\.\./\.\.$,::,
23/\./s,\.\.$,:,
24# Same if it ends with  .  (a single dot); turn it into nothing.
25/\./s,\.$,,g
26# Rules for .. and . elsewhere in the line
27# Convert ../: to ::, recur to get whole paths.
28/\./s,\.\./:,::,g
29# Convert ../../ to :::
30/\./s,\.\./\.\./,:::,g
31/\./s,\.\./,::,g
32/\.\//s,\./,:,g
33/\//s,/,:,g
34
35/=/s/ = \.$/ = :/
36
37# Comment out any explicit srcdir setting.
38# /srcdir/s/^srcdir/# srcdir/
39
40/version/s/^version=/# version=/
41
42/BASEDIR/s/^BASEDIR =.*$/BASEDIR = "{srcroot}"/
43/{BASEDIR}:/s/{BASEDIR}:/{BASEDIR}/g
44# The original lines screw up -I$(srcdir)/../des  by eliminating a colon.
45# Proposed fix:  Eliminate srcdir prefixes totally.
46#/{srcdir}:/s/{srcdir}:/"{srcdir}"/g
47/{srcdir}:/s/{srcdir}://g
48#/"{srcdir}":/s/"{srcdir}":/"{srcdir}"/g
49
50# Comment out settings of anything set by mpw host config.
51##/CC/s/^CC *=/#CC =/
52##/CFLAGS/s/^CFLAGS *=/#CFLAGS =/
53##/LDFLAGS/s/^LDFLAGS *=/#LDFLAGS =/
54
55# Change -I usage.
56/-I/s/-I\./-i :/g
57/-I/s/-I::bfd/-i ::bfd:/g
58/-I/s/-I::include/-i ::include:/g
59/-I/s/-I/-i /g
60
61# Change -D usage.
62/-D/s/\([ =]\)-D\([^ ]*\)/\1-d \2/g
63
64# Change continuation char.
65/\\$/s/\\$/\\Option-d/
66
67# Change wildcard char.
68/^[^#]/s/\*/\\Option-x/g
69
70# Change path of various types of source files.
71#/\.[chly]/s/\([ 	><=]\)\([-a-zA-Z0-9_$:"]*\)\.\([chly]\)/\1"{s}"\2.\3/g
72#/\.[chly]/s/^\([-a-zA-Z0-9_${}:"]*\)\.\([chly]\)/"{s}"\1.\2/g
73# Skip the {s} and {o} business for now...
74# Fix some overenthusiasms.
75#/{s}/s/"{s}""{srcdir}"/"{srcdir}"/g
76#/{s}/s/"{s}"{\([a-zA-Z0-9_]*\)dir}/"{\1dir}"/g
77#/{s}/s/"{s}"{\([a-zA-Z0-9_]*\)DIR}/"{\1DIR}"/g
78#/{s}/s/"{s}""{\([a-zA-Z0-9_]*\)dir}"/"{\1dir}"/g
79#/{s}/s/"{s}""{\([a-zA-Z0-9_]*\)DIR}"/"{\1DIR}"/g
80#/{s}/s/"{s}":/:/g
81#/{s}/s/^"{s}"//g
82#/^\./s/"{s}"\././g
83
84# Change extension and path of objects, except in the OBJEXT line.
85#/^OBJEXT/!s/\([ 	=]\)\([-a-zA-Z0-9_${}:"]*\)\.o/\1"{o}"\2.c.o/g
86#/\.o/s/^\([-a-zA-Z0-9_${}:"]*\)\.o/"{o}"\1.c.o/g
87# Skip the {o} stuff for now...
88/^OBJEXT/!s/\([ 	=]\)\([-a-zA-Z0-9_${}:"]*\)\.o/\1\2.c.o/g
89/\.o/s/^\([-a-zA-Z0-9_${}:"]*\)\.o/\1.c.o/g
90# Clean up.
91#/\.o/s/"{o}""{o}"/"{o}"/g
92#/{o}/s/^"{o}"\([a-zA-Z0-9_]*\)=/\1=/g
93
94# Change extension of libs.
95# /\.a/s/lib\([a-z]*\)\.a/lib\1.o/g
96
97# Remove non-echo option.
98/^	-/s/^	-/	/
99
100# Change cp to duplicate.
101# /cp/s/^\([ 	]*\)cp /\1Duplicate -d -y /
102# Change mv to rename.
103# /mv/s/^\([ 	]*\)mv /\1Rename -y /
104# /Rename/s/^\([ 	]*\)Rename -y -f/\1Rename -y/
105# Change rm to delete.
106/^RM=/s/rm -f/Delete -i -y/
107# /rm/s/^\([ 	]*\)rm /\1Delete -y /
108# /Delete/s/^\([ 	]*\)Delete -y -f/\1Delete -y/
109# Comment out symlinking.
110# /ln/s/^\([ 	]*\)ln /\1# ln /
111
112# Remove -c from explicit compiler calls.
113# /-c/s/{CC}\(.*\) -c \(.*\)\([-a-z]*\)\.c/{CC}\1 \2\3.c -o "{o}"\3.c.o/g
114# Don't ask... prev subst seems to omit the second filename.
115# /-o/s/\([-a-z]*\)\.c -o "{o}".c.o/\1\.c -o "{o}"\1.c.o/
116
117# Change linking cc to link.
118/LDFLAGS/    s/{CC} \(.*\){CFLAGS}\(.*\){LDFLAGS}/Link \1 \2 {LDFLAGS}/
119/CFLAGS_LINK/s/{CC} \(.*\){CFLAGS_LINK}\(.*\){LDFLAGS}/Link \1 \2 {LDFLAGS}/
120
121# Comment out .PHONY rules.
122/\.PHONY/s/^\.PHONY/# \.PHONY/
123# Comment out .SUFFIXES rules.
124/\.SUFFIXES/s/^\.SUFFIXES/# \.SUFFIXES/
125# Comment out .PRECIOUS rules.
126/\.PRECIOUS/s/^\.PRECIOUS/# \.PRECIOUS/
127## Comment out default rules.
128##/^\./s/^\(\.[a-z]*\.[a-z]* \)/# \1/
129
130#
131#  End of original hack-mf.sed
132#
133#  Begin original hack-mf2.sed
134#
135# Transform expressions.
136
137# Set the install program appropriate.
138# /INSTALL/s/^INSTALL *= *`.*`:install.sh -c/INSTALL = Duplicate -y/
139
140# Include from the extra-include dir.
141# /^INCLUDES = /s/^INCLUDES = /INCLUDES = -i "{srcroot}"extra-include /
142
143# Yuck - remove unconverted autoconf things.
144# /@/s/@[^ 	]*@//g
145
146# Hackery, pure and simple
147# To speed up compiles, remove duplicated -i options.
148/-i/s/\(-i [^ ]*\) \1 /\1 /g
149
150# Note!  There are 8-bit characters in the three lines below:
151#   	0xc4, 0xb6, 0xc5.
152/Option/s/\\Option-f/�/g
153/Option/s/\\Option-d/�/g
154/Option/s/\\Option-x/�/g
155