| 1 | # This is an MPW makefile fragment. |
| 2 | |
| 3 | # Since there are a multiplicity of Mac compilers and two different |
| 4 | # processors, this file is primarily a library of options for each |
| 5 | # compiler. Somebody else (such as a configure or build script) will |
| 6 | # make the actual choice. |
| 7 | |
| 8 | # Compiler to use for compiling. |
| 9 | |
| 10 | CC_MPW_C = C -d MPW_C -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -mc68020 -model far -b -w |
| 11 | |
| 12 | CC_SC = SC -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -mc68020 -model far -b -i '' -i : |
| 13 | |
| 14 | CC_MWC68K = MWC68K -d MPW -enum int -mpw_chars -sym on -w off -mc68020 -model far |
| 15 | |
| 16 | CC_PPCC = PPCC -d powerc=1 -d pascal= -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -w |
| 17 | |
| 18 | CC_MRC = MrC -d powerc=1 -d pascal= -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -i '' -i : -jm |
| 19 | |
| 20 | CC_SMrC = SMrC -d MPW |
| 21 | |
| 22 | # "-mpw_chars" is necessary because GNU sources often mix signed and |
| 23 | # unsigned casually. |
| 24 | # "-w off" is not a great idea, but CW7 is complaining about enum |
| 25 | # assignments. |
| 26 | # "-opt global,peep,l4,speed" is sometimes good, and sometimes bad. |
| 27 | # We must use {CIncludes} so that MPW tools will work; {MWCIncludes} |
| 28 | # defines stdout, islower, etc, in ways that are incompatible with MPW's |
| 29 | # runtime. However, this cannot be done via -i "{CIncludes}", since |
| 30 | # that does not affect how <>-type includes happen; instead, the variable |
| 31 | # MWCIncludes must be set to point at {CIncludes}. |
| 32 | |
| 33 | CC_MWCPPC = MWCPPC -d MPW -enum int -mpw_chars -sym on -w off |
| 34 | |
| 35 | # Note that GCC does *not* wire in a definition of "pascal", so that |
| 36 | # it can be handled in another way if desired. |
| 37 | |
| 38 | CC_68K_GCC = gC -Dpascal= -DANSI_PROTOTYPES -DMPW |
| 39 | |
| 40 | CC_PPC_GCC = gC -Dpowerc=1 -Dpascal= -DANSI_PROTOTYPES -DMPW |
| 41 | |
| 42 | # Nothing for the default CFLAGS. |
| 43 | |
| 44 | CFLAGS = |
| 45 | |
| 46 | # Tool to use for making libraries/archives. |
| 47 | |
| 48 | AR_LIB = Lib |
| 49 | |
| 50 | AR_MWLINK68K = MWLink68K -xm library |
| 51 | |
| 52 | AR_PPCLINK = PPCLink -xm library |
| 53 | |
| 54 | AR_MWLINKPPC = MWLinkPPC -xm library |
| 55 | |
| 56 | AR_AR = ar |
| 57 | |
| 58 | AR_FLAGS = -o |
| 59 | |
| 60 | RANLIB_NULL = null-command |
| 61 | |
| 62 | RANLIB_RANLIB = ranlib |
| 63 | |
| 64 | # Compiler and/or linker to use for linking. |
| 65 | |
| 66 | CC_LD_LINK = Link -w -d -model far {CC_LD_TOOL_FLAGS} |
| 67 | |
| 68 | CC_LD_MWLINK68K = MWLink68K -w {CC_LD_TOOL_FLAGS} -sym on -model far |
| 69 | |
| 70 | CC_LD_PPCLINK = PPCLink -main __start -outputformat xcoff |
| 71 | |
| 72 | CC_LD_MWLINKPPC = MWLinkPPC -w {CC_LD_TOOL_FLAGS} -sym on |
| 73 | |
| 74 | CC_LD_GLD = gC |
| 75 | |
| 76 | # Extension for linker output. |
| 77 | |
| 78 | PROG_EXT_68K = |
| 79 | |
| 80 | PROG_EXT_XCOFF = .xcoff |
| 81 | |
| 82 | # Nothing for the default LDFLAGS. |
| 83 | |
| 84 | LDFLAGS = -w |
| 85 | |
| 86 | CC_LD_TOOL_FLAGS = -c 'MPS ' -t MPST |
| 87 | |
| 88 | # Libraries to link against. |
| 89 | |
| 90 | # It would appear that the math libraries are not |
| 91 | # needed except to provide a definition for scalb, |
| 92 | # which is called from ldexp, which is referenced |
| 93 | # in the m68k opcodes library. |
| 94 | |
| 95 | EXTRALIBS_C = \Option-d |
| 96 | "{CLibraries}"StdClib.o \Option-d |
| 97 | "{CLibraries}"Math.o \Option-d |
| 98 | "{CLibraries}"CSANELib.o \Option-d |
| 99 | "{Libraries}"Stubs.o \Option-d |
| 100 | "{Libraries}"Runtime.o \Option-d |
| 101 | "{Libraries}"Interface.o \Option-d |
| 102 | "{Libraries}"ToolLibs.o |
| 103 | |
| 104 | EXTRALIBS_MWC68K = \Option-d |
| 105 | "{CLibraries}"StdClib.o \Option-d |
| 106 | "{CLibraries}"Math.o \Option-d |
| 107 | "{CLibraries}"CSANELib.o \Option-d |
| 108 | "{Libraries}"Stubs.o \Option-d |
| 109 | "{Libraries}"Runtime.o \Option-d |
| 110 | "{Libraries}"Interface.o \Option-d |
| 111 | "{Libraries}"ToolLibs.o \Option-d |
| 112 | "{MW68KLibraries}MPW ANSI (4i) C.68K.Lib" |
| 113 | |
| 114 | EXTRALIBS_PPC_XCOFF = \Option-d |
| 115 | "{PPCLibraries}"StdCRuntime.o \Option-d |
| 116 | "{PPCLibraries}"InterfaceLib.xcoff \Option-d |
| 117 | "{PPCLibraries}"MathLib.xcoff \Option-d |
| 118 | "{PPCLibraries}"StdCLib.xcoff \Option-d |
| 119 | "{PPCLibraries}"PPCToolLibs.o \Option-d |
| 120 | "{PPCLibraries}"PPCCRuntime.o \Option-d |
| 121 | "{GCCPPCLibraries}"libgcc.xcoff |
| 122 | |
| 123 | EXTRALIBS_PPC = \Option-d |
| 124 | "{PPCLibraries}"StdCRuntime.o \Option-d |
| 125 | "{SharedLibraries}"InterfaceLib \Option-d |
| 126 | "{SharedLibraries}"MathLib \Option-d |
| 127 | "{SharedLibraries}"StdCLib \Option-d |
| 128 | "{PPCLibraries}"PPCToolLibs.o \Option-d |
| 129 | "{PPCLibraries}"PPCCRuntime.o \Option-d |
| 130 | "{GCCPPCLibraries}"libgcc.xcoff |
| 131 | |
| 132 | EXTRALIBS_MWCPPC = \Option-d |
| 133 | "{MWPPCLibraries}"MWStdCRuntime.Lib \Option-d |
| 134 | "{MWPPCLibraries}"InterfaceLib \Option-d |
| 135 | "{MWPPCLibraries}"StdCLib \Option-d |
| 136 | "{MWPPCLibraries}"MathLib \Option-d |
| 137 | "{MWPPCLibraries}"PPCToolLibs.o |
| 138 | |
| 139 | # Tool to make PEF with, if needed. |
| 140 | |
| 141 | MAKEPEF_NULL = null-command |
| 142 | |
| 143 | MAKEPEF_PPC = MakePEF |
| 144 | |
| 145 | MAKEPEF_FLAGS = \Option-d |
| 146 | -l InterfaceLib.xcoff=InterfaceLib \Option-d |
| 147 | -l MathLib.xcoff=MathLib \Option-d |
| 148 | -l StdCLib.xcoff=StdCLib |
| 149 | |
| 150 | MAKEPEF_TOOL_FLAGS = -ft MPST -fc 'MPS ' |
| 151 | |
| 152 | # Resource compiler to use. |
| 153 | |
| 154 | REZ_68K = Rez |
| 155 | |
| 156 | REZ_PPC = Rez -d WANT_CFRG |
| 157 | |