diff options
Diffstat (limited to 'contrib/gcc/cp/mpw-make.sed')
-rw-r--r-- | contrib/gcc/cp/mpw-make.sed | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/contrib/gcc/cp/mpw-make.sed b/contrib/gcc/cp/mpw-make.sed new file mode 100644 index 0000000..120b5a1 --- /dev/null +++ b/contrib/gcc/cp/mpw-make.sed @@ -0,0 +1,112 @@ +# Sed commands to finish translating the G++ Unix makefile into MPW syntax. + +# Remove control-Ls, they upset MPW make. +s///g + +# Remove references to always-empty variables used to mark things. +/CYGNUS-LOCAL-/s/{CYGNUS-LOCAL-[a-z0-9]*}//g + +# Add a bunch of definitions, mostly empty. +/^# Variables that exist for you to override.$/a\ +\ +xmake_file = \ +tmake_file = \ +build_xm_file = \ +MALLOC = \ +MD_DEPS = \ +REAL_H = \ +HOST_CC_LD = {CC_LD}\ +ALL_CCLDFLAGS = \ +HOST_CCLDFLAGS = \ +CONFIG_H = \ +LIBDEPS = \ + +# The "target" variable is special to MPW make, avoid it. +/{target}/s/{target}/{target_canonical}/g + +# Suppress the suppression of smart makes. +/^\.y\.c/d + +# Whack out "..." assignments. +/\.\.\./s/^\([a-z_]*= \.\.\.\)/#\1/ + +# Previous edits go a little overboard, undo. +/^objext = /s/"{o}"// + +# Always link in low-level MPW functions. +/^LIBDEPS=/s/$/ ::strerror.c.o ::mpwlib.c.o/ +/{CLIB}/s/{CLIB}/ ::strerror.c.o ::mpwlib.c.o {CLIB}/ + +# Don't get tricky about finding various .o file, point at dir above. +/^SUBDIR_OBSTACK/s/`.*`/::obstack.c.o/ +/^SUBDIR_USE_ALLOCA/s/`.*`/::alloca.c.o/ +/^SUBDIR_MALLOC/s/`.*`// + +# Point includes at parent directly correctly. +/^INCLUDES = /s/:\./::/g +/^INCLUDES = /s/"{srcdir}"\.\./"{topsrcdir}"gcc:/g +/^INCLUDES = /s,"{srcdir}"/\.\.,"{topsrcdir}"gcc:,g +/^INCLUDES = /s,"{srcdir}":config,"{topsrcdir}"gcc:config:,g + +# Add the special MPW include dirs. +/^INCLUDES = /s/$/ -i "{topsrcdir}"include:mpw: -i :::extra-include:/ + +# A nasty hack to reduce confusion. +/true/s/ ; @true$// + +# (should be in common translation?) +/{CC_LD} /s/$/ {EXTRALIBS}/ + +# Don't use general compiler flags (which may include definitions +# and other compiler-only bits) with linking commands. +/{CC_LD} /s/ALL_CFLAGS/ALL_CCLDFLAGS/ + +# Whack out build rules that are not useful. +/^Makefile \\Option-f /,/^$/d +/^config.status \\Option-f /,/^$/d +# (Note that MPW make is not case sensitive, and so this name +# is considered the same as "md_file".) +/^{MD_FILE} \\Option-f/,/^$/d + +# Depending on config.status is not useful for us. +/config.status/s/ config.status// + +# Repeat of stuff from generic edit. +/{s}/s/"{s}""{s}"/"{s}"/g +/{s}/s/"{s}""{srcdir}"/"{s}"/g +/{s}/s/"{srcdir}""{s}"/"{s}"/g + +# Fix references to C frontend files in main dir. +/::c-/s/"{o}"::c-/"{o}":c-/g + +# Fix pathnames to generated files in the objdir. +/parse/s/"{s}"parse\.\([chy]\)/"{o}"parse.\1/g +/parse/s/^parse\.\([chy]\)/"{o}"parse.\1/ +/y.tab.c/s/"{s}"y\.tab\.c/"{o}"y.tab.c/g +/y.tab.c/s/^y\.tab\.c/"{o}"y.tab.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/ + +# Put in the definition of YYEMPTY directly. +/grep/s/grep .* >>/Echo '#define YYEMPTY -1' >>/ + +# If the dates are wrong, then this tries to run gperf, which we don't +# really want. +/^"{srcdir}"hash.h/,/hash.h$/d + +# Sed the object file list instead of using cat (meow). +/cat/s/`cat /`sed -e 's,:,::,g' -e 's,{objext},.o,g' / + +# Simplify dependencies of generated parser files. +/^{PARSE_C}/s/^/#/ +/^stamp-parse/s/^stamp-parse/{PARSE_C}/ + +# Fix the compile line for the generated parser. +/{CC} -c/,/echo {PARSE_C}/c\ + {CC} @DASH_C_FLAG@ {ALL_CFLAGS} {ALL_CPPFLAGS} {INCLUDES} {BIG_SWITCHFLAG} "{o}"parse.c -o "{o}"parse.c.o\ + +# Change all Rez commands to use mac-gcc.r. +/{REZ}/s/"{s}"[-a-zA-Z{}]*\.r/"{topsrcdir}"gcc:mac-gcc.r/ + +# Remove pathname junk from the container name. +/{REZ}/s/'"'::cc1plus'"'/'"'cc1plus'"'/ |