116 lines
3.4 KiB
Sed
116 lines
3.4 KiB
Sed
|
# Sed commands to finish translating the binutils Unix makefile into MPW syntax.
|
||
|
|
||
|
# Add a rule.
|
||
|
/^#### .*/a\
|
||
|
\
|
||
|
"{o}"underscore.c.o \\Option-f "{o}"underscore.c\
|
||
|
|
||
|
# Comment out any alias settings.
|
||
|
/^host_alias =/s/^/#/
|
||
|
/^target_alias =/s/^/#/
|
||
|
|
||
|
# Whack out unused host define bits.
|
||
|
/HDEFINES/s/@HDEFINES@//
|
||
|
|
||
|
# Don't build specialized tools.
|
||
|
/BUILD_NLMCONV/s/@BUILD_NLMCONV@//
|
||
|
/BUILD_SRCONV/s/@BUILD_SRCONV@//
|
||
|
/BUILD_DLLTOOL/s/@BUILD_DLLTOOL@//
|
||
|
|
||
|
/UNDERSCORE/s/@UNDERSCORE@/{UNDERSCORE}/
|
||
|
|
||
|
# Don't need this.
|
||
|
/@HLDFLAGS@/s/@HLDFLAGS@//
|
||
|
|
||
|
# Point at the libraries directly.
|
||
|
/@BFDLIB@/s/@BFDLIB@/::bfd:libbfd.o/
|
||
|
/@OPCODES@/s/@OPCODES@/::opcodes:libopcodes.o/
|
||
|
|
||
|
# Whack out target makefile fragment.
|
||
|
/target_makefile_fragment/s/target_makefile_fragment@//
|
||
|
|
||
|
# Fix and add to the include paths.
|
||
|
/^INCLUDES = .*$/s/$/ -i "{INCDIR}":mpw: -i ::extra-include:/
|
||
|
/BFDDIR/s/-i {BFDDIR} /-i "{BFDDIR}": /
|
||
|
/INCDIR/s/-i {INCDIR} /-i "{INCDIR}": /
|
||
|
|
||
|
# Use byacc instead of bison (for now anyway).
|
||
|
/BISON/s/^BISON =.*$/BISON = byacc/
|
||
|
#/BISONFLAGS/s/^BISONFLAGS =.*$/BISONFLAGS = /
|
||
|
|
||
|
# Embed the version in symbolic doublequotes that will expand to
|
||
|
# the right thing for each compiler.
|
||
|
/VERSION/s/'"{VERSION}"'/{dq}{VERSION}{dq}/
|
||
|
|
||
|
# '+' is a special char to MPW, don't use it ever.
|
||
|
/c++filt/s/c++filt/cplusfilt/
|
||
|
|
||
|
# All of the binutils use the same Rez file, change names to refer to it.
|
||
|
/^{[A-Z]*_PROG}/s/$/ "{s}"mac-binutils.r/
|
||
|
/{[A-Z]*_PROG}\.r/s/{[A-Z]*_PROG}\.r/mac-binutils.r/
|
||
|
|
||
|
# There are auto-generated references to BFD .h files that are not
|
||
|
# in the objdir (like bfd.h) but are in the source dir.
|
||
|
/::bfd:lib/s/::bfd:lib\([a-z]*\)\.h/{BFDDIR}:lib\1.h/g
|
||
|
|
||
|
# Fix the locations of generated files.
|
||
|
/config/s/"{s}"config\.h/"{o}"config.h/g
|
||
|
/config/s/^config\.h/"{o}"config\.h/
|
||
|
/underscore/s/"{s}"underscore\.c/"{o}"underscore.c/g
|
||
|
/underscore/s/^underscore\.c/"{o}"underscore\.c/
|
||
|
|
||
|
# Fix paths to generated source files.
|
||
|
/lex.yy.c/s/"{s}"lex\.yy\.c/"{o}"lex.yy.c/g
|
||
|
/lex.yy.c/s/^lex\.yy\.c/"{o}"lex.yy.c/
|
||
|
/arlex.c/s/"{s}"arlex\.c/"{o}"arlex.c/g
|
||
|
/arlex.c/s/^arlex\.c/"{o}"arlex.c/
|
||
|
/y.tab.c/s/"{s}"y\.tab\.c/"{o}"y.tab.c/g
|
||
|
/y.tab.c/s/^y\.tab\.c/"{o}"y.tab.c/
|
||
|
/arparse.c/s/"{s}"arparse\.c/"{o}"arparse.c/g
|
||
|
/arparse.c/s/^arparse\.c/"{o}"arparse.c/
|
||
|
/y.tab.h/s/"{s}"y\.tab\.h/"{o}"y.tab.h/g
|
||
|
/y.tab.h/s/^y\.tab\.h/"{o}"y.tab.h/
|
||
|
/arparse.h/s/"{s}"arparse\.h/"{o}"arparse.h/g
|
||
|
/arparse.h/s/^arparse\.h/"{o}"arparse.h/
|
||
|
|
||
|
/"{s}"{INCDIR}/s/"{s}"{INCDIR}/"{INCDIR}"/g
|
||
|
|
||
|
# The generated lexer may include an ifdef for older Mac compilers that
|
||
|
# needs to work with newer compilers also.
|
||
|
/lex.yy.c/s/Rename -y \([^ ]*\) \([^ ]*\)$/sed -e 's,ifdef macintosh,if defined(macintosh) || defined(__MWERKS__),' \1 > \2/
|
||
|
|
||
|
# Fix an over-eagerness.
|
||
|
/echo.*WARNING.*This file/s/'.*'/' '/
|
||
|
|
||
|
# Add a "stamps" target.
|
||
|
$a\
|
||
|
stamps \\Option-f stamp-under\
|
||
|
|
||
|
/^install \\Option-f /,/^$/c\
|
||
|
install \\Option-f all install-only\
|
||
|
\
|
||
|
install-only \\Option-f\
|
||
|
NewFolderRecursive "{bindir}"\
|
||
|
# Need to copy all the tools\
|
||
|
For prog in {PROGS}\
|
||
|
Set progname `echo {prog} | sed -e 's/.new//'`\
|
||
|
Duplicate -y :{prog} "{bindir}"{progname}\
|
||
|
End For\
|
||
|
|
||
|
|
||
|
/true/s/ ; @true$//
|
||
|
|
||
|
# dot files are trouble, remove them and their actions.
|
||
|
/^\.dep/,/^$/d
|
||
|
|
||
|
# Remove un-useful targets.
|
||
|
/^Makefile \\Option-f/,/^$/d
|
||
|
/^"{o}"config.h \\Option-f/,/^$/d
|
||
|
/^config.status \\Option-f/,/^$/d
|
||
|
|
||
|
# Don't try to make the demangler's man page, it's useless.
|
||
|
/^{DEMANGLER_PROG}\.1 \\Option-f/,/^$/d
|
||
|
# Don't depend on it either.
|
||
|
/{DEMANGLER_PROG}/s/ {DEMANGLER_PROG}\.1//
|
||
|
|