mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 10:03:47 +08:00
Remove MPW support, no longer used.
* mpw-README, mpw-build.in, mpw-config.in, mpw-configure, mpw-install: Remove files. * src-release (DEVO_SUPPORT): Remove names of removed files. * MAINTAINERS: Likewise.
This commit is contained in:
parent
7a5ea0d4f1
commit
5e2b61fb51
@ -1,3 +1,11 @@
|
||||
2004-03-25 Stan Shebs <shebs@apple.com>
|
||||
|
||||
Remove MPW support, no longer used.
|
||||
* mpw-README, mpw-build.in, mpw-config.in, mpw-configure,
|
||||
mpw-install: Remove files.
|
||||
* src-release (DEVO_SUPPORT): Remove names of removed files.
|
||||
* MAINTAINERS: Likewise.
|
||||
|
||||
2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
|
||||
|
||||
* Makefile.tpl (top level bootstrap support): Remove now-unneeded
|
||||
|
@ -100,8 +100,7 @@ winsup/
|
||||
General discussion cygwin@sources.redhat.com.
|
||||
See also winsup/MAINTAINERS.
|
||||
|
||||
expect/; config-ml.in; mpw-README; mpw-build.in; mpw-config.in;
|
||||
mpw-configure; mpw-install; setup.com; missing; makefile.vms; utils/;
|
||||
expect/; config-ml.in; setup.com; missing; makefile.vms; utils/;
|
||||
config/; config.if; makefile.vms; missing; ylwrap; mkdep; etc/;
|
||||
install-sh; intl/
|
||||
Ask DJ Delorie <dj@redhat.com> after reading the libiberty entry.
|
||||
|
376
mpw-README
376
mpw-README
@ -1,376 +0,0 @@
|
||||
This is basic information about the Macintosh(tm) MPW(tm) port of the
|
||||
GNU tools. The information below applies to both native and cross
|
||||
compilers.
|
||||
|
||||
(Please note that there are two versions of this file; "mpw-README"
|
||||
is the source form, and "Read Me for MPW" is the distribution form.
|
||||
"Read Me for MPW" has 8-bit chars such as \Option-d embedded in it.)
|
||||
|
||||
INSTALLING GNU TOOLS
|
||||
|
||||
* System Requirements
|
||||
|
||||
To use these tools, you will need a Mac with a 68020 or better or else
|
||||
any PowerMac, System 7.1 or later, and MPW 3.3 or 3.4. You will *not*
|
||||
need any other MPW compiler unless you want to rebuild from sources,
|
||||
nor even any include files, unless you are building actual Mac
|
||||
applications. For PowerMac native you will need PPCLink, however;
|
||||
also the executables are PowerPC-only.
|
||||
|
||||
* Automated Installation
|
||||
|
||||
The simplest way to install GNU tools is to run the Install script.
|
||||
The script will copy things to where you want to keep them, will build
|
||||
a UserStartup file with settings corresponding to where things were
|
||||
copied, and offer to put that UserStartup file in your MPW folder.
|
||||
|
||||
The Install script does not alter anything in the System Folder, and
|
||||
it does not take any action without confirmation.
|
||||
|
||||
The Install script will be at the top level of the binary
|
||||
distribution, or at the top level of the object directory if
|
||||
rebuilding from source. (The sources include a file called
|
||||
"mpw-install" at the top level, but it is the source to the Install
|
||||
script and cannot be run directly.)
|
||||
|
||||
* Manual Installation
|
||||
|
||||
If you don't want to run the Install script, you can do installation
|
||||
manually; this section describes the steps involved.
|
||||
|
||||
The GNU tools can go in any directory that is in your {Commands} list.
|
||||
We generally put all the tools somewhere like {Boot}Cygnus:latest:bin,
|
||||
and then add to a UserStartup file:
|
||||
|
||||
set Commands "{Boot}Cygnus:latest:bin:,{Commands}"
|
||||
|
||||
However, the cpp and cc1 programs of GCC are not normally stored here.
|
||||
Instead, they will be in a "lib" directory that is alongside "bin",
|
||||
and organized by target and version underneath, with names like
|
||||
|
||||
:lib:gcc-lib:<target>:cygnus-<version>:
|
||||
|
||||
If you build and install everything yourself according to the build
|
||||
instructions below, then you will not have any problems. However, you
|
||||
may discover that GCC seems unable to find the right cpp and cc1;
|
||||
usually this will be because directory names have changed. (Even
|
||||
renaming your hard disk will make this happen.) In such cases, you
|
||||
have several choices. One is just to add this directory to
|
||||
{Commands}, but then you will not be able to get any other cpp or cc1,
|
||||
such as those used by a different target or version. Another way is
|
||||
to rename your disk and directories to match the prefix used when the
|
||||
tools were compiled. Finally, you can set the variable
|
||||
GCC_EXEC_PREFIX to point to the library directory:
|
||||
|
||||
set GCC_EXEC_PREFIX MyDisk:Stuff:lib:gcc-lib:
|
||||
export GCC_EXEC_PREFIX
|
||||
|
||||
You may also want to edit MPW's HEXA 128 resource. When GCC is built
|
||||
using a native GCC, it is compiled to use a special stack allocator
|
||||
function alloca(). While this is very efficient, it means that GCC
|
||||
will need considerable stack space to run, especially when compiling
|
||||
large programs with optimization turned on. You give MPW more stack
|
||||
by editing the HEXA 128 resource of the MPW Shell. A value of "0008
|
||||
0000" gives 512K of stack size, which is usually sufficient.
|
||||
|
||||
USING GNU TOOLS
|
||||
|
||||
* Using Native PowerMac GCC
|
||||
|
||||
Using a native PowerMac GCC to produce MPW tools or MacOS applications
|
||||
is more complicated than just "gC foo.c", although no more complicated
|
||||
than with other Mac compilers.
|
||||
|
||||
To build a native PowerMac MPW tool, use this sequence, where hello.c
|
||||
is the usual "hello world" program, and genericcfrg.r is the Rez file
|
||||
with the code fragment resource:
|
||||
|
||||
gC -I{CIncludes} -fno-builtin -Dpascal= -c -g hello.c
|
||||
PPCLink hello.o -o hello \Option-d
|
||||
"{PPCLibraries}"StdCRuntime.o \Option-d
|
||||
"{SharedLibraries}"InterfaceLib \Option-d
|
||||
"{SharedLibraries}"StdCLib \Option-d
|
||||
"{PPCLibraries}"PPCToolLibs.o \Option-d
|
||||
"{PPCLibraries}"PPCCRuntime.o \Option-d
|
||||
"{GCCPPCLibraries}"libgcc.xcoff
|
||||
rez -d APPNAME='"'hello'"' GenericCFRG.r -o hello
|
||||
setfile -t 'MPST' -c 'MPS ' hello
|
||||
|
||||
The same sequence works to build a MacOS application, but you set the file
|
||||
type to 'APPL' and don't link in PPCToolLibs.o. For further details on
|
||||
using MPW to build Mac applications, see the general MPW documentation.
|
||||
|
||||
Recent versions of PPCLink have an option to generate the code
|
||||
fragment resource and automatically set creator and file type;
|
||||
here is what GenericCFRG.r should look like if you have an older
|
||||
PPCLink or are using GNU ld:
|
||||
|
||||
#include "CodeFragmentTypes.r"
|
||||
|
||||
resource 'cfrg' (0) {
|
||||
{
|
||||
kPowerPC,
|
||||
kFullLib,
|
||||
kNoVersionNum,kNoVersionNum,
|
||||
0,0,
|
||||
kIsApp,kOnDiskFlat,kZeroOffset,kWholeFork,
|
||||
APPNAME // must be defined on Rez command line with -d option
|
||||
}
|
||||
};
|
||||
|
||||
In general this port of GCC supports the same option syntax and
|
||||
behavior as its Unix counterpart. It also has similar compilation
|
||||
rules, so it will run the assembler on .s files and so forth.
|
||||
|
||||
The GCC manual includes full information on the available options.
|
||||
One option that may be especially useful is "-v", which shows you what
|
||||
tools and options are being used; unlike most Mac C compilers, GCC
|
||||
directs assembly and linking in addition to compilation.
|
||||
|
||||
MPW GCC does feature two extensions to the option syntax; '-d macro=name'
|
||||
works just as '-Dmacro=name' does in Unix, and '-i directory' works the
|
||||
same as '-Idirectory'.
|
||||
|
||||
MPW GCC supports the usual Pascal-style strings and alignment pragmas.
|
||||
|
||||
To find standard include files you can set the variable GCCIncludes:
|
||||
|
||||
set GCCIncludes MyDisk:MyIncludes:
|
||||
export GCCIncludes
|
||||
|
||||
GCCIncludes is similar to MPW's CIncludes or CW's MWCIncludes. In
|
||||
order to use MPW's usual include files, just say:
|
||||
|
||||
set GCCIncludes "{CIncludes}"
|
||||
export GCCIncludes
|
||||
|
||||
* Using GCC as a Cross-Compiler
|
||||
|
||||
If you have a cross-compiler, and you have all of the correct
|
||||
target-side crt0 and libraries available, then to compile and link a
|
||||
file "foo.c", you can say just
|
||||
|
||||
gC foo.c
|
||||
|
||||
The output file will be an MPW binary file named "a.out"; the format
|
||||
of the contents will depend on which target is in use, so for instance
|
||||
a MIPS-targeting GCC will produce ECOFF or ELF executables.
|
||||
|
||||
Note that using MPW include files with a cross-compiler is somewhat
|
||||
dangerous.
|
||||
|
||||
* Using the Assembler and Friends
|
||||
|
||||
The assembler ("as") and linker ("ld") are faithful ports of their
|
||||
Unix counterparts. Similarly, the binutils "ar", "cplusfilt", "nm",
|
||||
"objcopy", "objdump", "ranlib", "size", "strings", and "strip" are all
|
||||
like they are under Unix. (Note that "cplusfilt" is usually called
|
||||
"c++filt" under Unix.)
|
||||
|
||||
* Using GDB
|
||||
|
||||
There are two flavors of GDB. "gdb" is an MPW tool that works very
|
||||
much like it does in Unix; put a command into the MPW worksheet and
|
||||
type the <enter> key to send it to GDB. While "gdb" is running, you
|
||||
cannot do anything else in MPW, although you can switch to other
|
||||
Mac applications and use them.
|
||||
|
||||
"SiowGDB" is also a Mac application, but it is GDB using the SIOW
|
||||
package to provide console emulation. Commands are exactly as for the
|
||||
MPW tool, but since this is its own application, you can switch
|
||||
between it and MPW.
|
||||
|
||||
BUILDING GNU TOOLS
|
||||
|
||||
This port of the GNU tools uses a configure script similar to
|
||||
that used for GNU tools under Unix, but rewritten for MPW. As with
|
||||
Unix configuration, there is an "object" directory that may be
|
||||
different from the "source" directory. In the example commands below,
|
||||
we will assume that we are currently in the object directory, and that
|
||||
the source directory is "{Boot}Cygnus:src:".
|
||||
|
||||
* Requirements for Building
|
||||
|
||||
In addition to the sources, you will need a set of tools that the
|
||||
configure and build scripts assume to be available. These tools
|
||||
(and their versions, if relevant) are as follows:
|
||||
|
||||
byacc tool
|
||||
flex (2.3.7) tool (and Flex.skel file)
|
||||
forward-include script
|
||||
MoveIfChange script
|
||||
mpw-touch script
|
||||
mpw-true script
|
||||
NewFolderRecursive script
|
||||
null-command script
|
||||
open-brace script
|
||||
sed (1.13) tool
|
||||
tr-7to8 script
|
||||
true script
|
||||
|
||||
The scripts are in the sources, under utils:mpw:. You must arrange to
|
||||
get the other tools yourself (they are readily available from the
|
||||
"usual" net sites, and are also on many CDROMS). In addition, there
|
||||
will usually be a set of these available at ftp.cygnus.com, in pub/mac.
|
||||
|
||||
You may put the build tools in your usual Tools or Scripts
|
||||
directories, or keep them in a separate directories. We prefer to
|
||||
make a directory called "buildtools" and we put this in one of our
|
||||
UserStartup files:
|
||||
|
||||
set Commands "{Boot}Cygnus:buildtools:,{Commands}"
|
||||
|
||||
Flex uses an environment variable FLEX_SKELETON to locate its skeleton
|
||||
file, so you need to do something like this, preferably in a UserStartup:
|
||||
|
||||
Set FLEX_SKELETON "{Boot}"Cygnus:buildtools:Flex.skel
|
||||
Export FLEX_SKELETON
|
||||
|
||||
* Configuring
|
||||
|
||||
Before you can build anything, you must configure. You do this by
|
||||
creating an directory where object files will be stored, setdirectory
|
||||
to that directory and do a configure command:
|
||||
|
||||
{Boot}Cygnus:src:mpw-configure --target <name> --cc <compiler> --srcdir {Boot}Cygnus:src: --prefix <whatever>
|
||||
|
||||
If the source directory is not in your {Commands} list, then you must
|
||||
supply a full pathname to mpw-configure, since mpw-configure invokes
|
||||
itself after switching into each subdirectory. Using a relative
|
||||
pathname, even something like ':mpw-configure', will therefore not work.
|
||||
|
||||
<name> must be a known target. Valid ones include "m68k-apple-macos",
|
||||
"powerpc-apple-macos", "i386-unknown-go32", "mips-idt-ecoff", and
|
||||
"sh-hitachi-hms". Not all target types are accepted for all of the
|
||||
tools yet.
|
||||
|
||||
<compiler> must be the name of the compiler to use. It defaults to "mpwc".
|
||||
|
||||
(m68k)
|
||||
mpwc MPW C
|
||||
sc68k Symantec C
|
||||
mwc68k Metrowerks C (Codewarrior)
|
||||
gcc68k GCC
|
||||
|
||||
(powerpc)
|
||||
ppcc PPCC
|
||||
mrc Macintosh on RisC (Mister C, aka(?) Frankenstein)
|
||||
scppc Symantec C
|
||||
mwcppc Metrowerks C (Codewarrior)
|
||||
gccppc GCC
|
||||
|
||||
Not all compilers will compile all tools equally well! For m68k Macs,
|
||||
MPW C has the best record so far (it has problems, but they can be
|
||||
worked around), while for PowerMacs, CodeWarrior is the only compiler
|
||||
that has successfully compiled everything into running code.
|
||||
|
||||
<prefix> is the path that "gcc" will prepend when looking for tools
|
||||
to execute. GCC_EXEC_PREFIX overrides this value, so you need not
|
||||
include it if you plan to use GCC_EXEC_PREFIX.
|
||||
|
||||
As an example, here is the configure line that you could use to build
|
||||
native PowerMac GCC:
|
||||
|
||||
"{Boot}"Cygnus:src:mpw-configure --cc mwcppc --target powerpc-apple-macos --srcdir "{Boot}"Cygnus:src: --prefix "{Boot}"GNUTools:
|
||||
|
||||
* Building
|
||||
|
||||
If you use CodeWarrior, you *must* first set MWCIncludes to
|
||||
{CIncludes}. This is because you will be building MPW tools, and
|
||||
their standard I/O works by making references to data that is part of
|
||||
the MPW Shell, which means that the code must be compiled and linked
|
||||
with macros that refer to that data, and those macros are in
|
||||
{CIncludes}, not the default {MWCIncludes}. Without this change, you
|
||||
will encounter problems compiling libiberty/mpw.c, but tweaking that
|
||||
file only masks the real problem, and does not fix it.
|
||||
|
||||
The command
|
||||
|
||||
mpw-build
|
||||
|
||||
will build everything. Building will take over an hour on a Quadra 800
|
||||
or PowerMac 8100/110, longer if the sources are on a shared volume.
|
||||
|
||||
You may see some warnings; these are mostly likely benign, typically
|
||||
disagreements about declarations of library and system functions.
|
||||
|
||||
* Installing
|
||||
|
||||
To install the just-built tools, use the command
|
||||
|
||||
mpw-build install
|
||||
|
||||
This part of the installation procedure just copies files to the
|
||||
location specified at configure time by <prefix>, and, in some cases,
|
||||
renames them from temporary internal names to their usual names. This
|
||||
install process is *not* the same as what the Install script does;
|
||||
Install can copy tools from the installation location chosen at
|
||||
configuration time to a user-chosen place, and sets up a UserStartup
|
||||
file. Note that while the Install script is optional, the install
|
||||
build action performs some tasks would be very hard to replicate
|
||||
manually, so you should always do it before using the tools.
|
||||
|
||||
* Known Problems With Using Various Compilers to Build
|
||||
|
||||
Most versions of MPW C have problems with compiling GNU software.
|
||||
|
||||
MPW C 3.2.x has preprocessing bugs that render it incapable of
|
||||
compiling the BFD library, so it can't be used at all for building BFD.
|
||||
|
||||
MPW C 3.3, 3.3.1, and 3.3.2 will spontaneously claim to have found
|
||||
errors in the source code, but in fact the code is perfectly fine. If
|
||||
this happens, just set the working directory back to the top-level
|
||||
objdir (where the configure command above was performed), and type
|
||||
"mpw-build all" again. If it goes on through the supposed error, then
|
||||
you got one of the spurious errors. A full build may require a number
|
||||
of these restarts.
|
||||
|
||||
MPW C 3.3.3 seems to work OK, at least with the aid of a number of
|
||||
workarounds that are in the sources (look for #ifdef MPW_C).
|
||||
|
||||
Versions of MPW Make earlier than 4.0d2 have exhibited bizarre behavior,
|
||||
failure to substitute variables and the like.
|
||||
|
||||
Metrowerks CW6 PPC linker (MWLinkPPC) seems to do bad things with memory
|
||||
if the "Modern Memory Manager" is turned on (in the Memory control panel),
|
||||
but works OK if it is turned off.
|
||||
|
||||
Metrowerks CW6 loses bigtime compiling opcodes:ppc-opc.c, which has
|
||||
some deeply nested macros. (CW7 is OK.) There is a way to patch the
|
||||
file, by substituting constant values. If you need to do this,
|
||||
contact shebs@cygnus.com for details.
|
||||
|
||||
<Gestalt.h> is missing from {CIncludes} in the MPW version that comes
|
||||
with CW7. You can just copy the one in CW7's {MWCIncludes}.
|
||||
|
||||
CW8 and later have changes to headers and such that will require changes
|
||||
to the source in order to be able to use them to rebuild.
|
||||
|
||||
KNOWN BUGS
|
||||
|
||||
The declarations for memcpy and memcmp in some versions of header files
|
||||
may conflict with GCC's builtin definition. Either use -fno-builtin
|
||||
or ignore the warnings.
|
||||
|
||||
This is not a bug, but - watch out for cr/nl translation! For instance,
|
||||
if config/mpw-mh-mpw is not properly translated because it has been
|
||||
copied or updated separately, then everything will almost build, but
|
||||
you will get puzzling error messages from make or the compiler.
|
||||
|
||||
'/' or ' ' embedded in any device, directory, or file name may or may
|
||||
not work.
|
||||
|
||||
objcopy -O srec foo.o makes random output filenames.
|
||||
|
||||
Mac-x-mips requires -mgas but Unix hosts don't.
|
||||
|
||||
GDB will frequently require a '/' on the front of a device name in order
|
||||
to recognize it as an absolute rather than a relative pathname.
|
||||
|
||||
GDB doesn't seem to use the printer port correctly, although it tries.
|
||||
|
||||
The cursor doesn't always spin as much as it should. To get elaborate
|
||||
statistics and warnings about spin rates, add this to UserStartup:
|
||||
|
||||
set MEASURE_SPIN all
|
||||
export MEASURE_SPIN
|
204
mpw-build.in
204
mpw-build.in
@ -1,204 +0,0 @@
|
||||
# Top-level script fragment to build everything for MPW.
|
||||
|
||||
Set savedir "`Directory`"
|
||||
|
||||
#Set Echo 1
|
||||
|
||||
Set ThisScript "{0}"
|
||||
|
||||
Set objdir ":"
|
||||
|
||||
Set verify 0
|
||||
|
||||
Set BuildTarget "none"
|
||||
|
||||
# Parse arguments.
|
||||
|
||||
Loop
|
||||
Break If {#} == 0
|
||||
If "{BuildTarget}" =~ /none/
|
||||
Set BuildTarget "{1}"
|
||||
Else
|
||||
Echo Only one build target allowed, ignoring "{1}"
|
||||
End If
|
||||
Shift 1
|
||||
End Loop
|
||||
|
||||
If "{BuildTarget}" =~ /none/
|
||||
Set BuildTarget "all"
|
||||
End If
|
||||
|
||||
If {verify} == 1
|
||||
Echo "#" Doing "{ThisScript}" "{BuildTarget}" in "`Directory`" ...
|
||||
End If
|
||||
|
||||
Set ranmake 0
|
||||
|
||||
If "`Exists Makefile`" != ""
|
||||
Echo "Set Echo 1" >{BuildTarget}.makeout
|
||||
Make -f Makefile {BuildTarget} >>{BuildTarget}.makeout
|
||||
{BuildTarget}.makeout
|
||||
Delete {BuildTarget}.makeout
|
||||
Set ranmake 1
|
||||
End If
|
||||
|
||||
If "`Exists Makefile.PPC`" != ""
|
||||
Echo "Set Echo 1" >{BuildTarget}.makeout.ppc
|
||||
Make -f Makefile.PPC {BuildTarget} >>{BuildTarget}.makeout.ppc
|
||||
{BuildTarget}.makeout.ppc
|
||||
Delete {BuildTarget}.makeout.ppc
|
||||
Set ranmake 1
|
||||
End If
|
||||
|
||||
If {ranmake} == 1
|
||||
Exit
|
||||
End If
|
||||
|
||||
# Dispatch on various pseudo-targets.
|
||||
|
||||
If "{BuildTarget}" =~ /all/
|
||||
Echo Started `Date`
|
||||
"{ThisScript}" all-gcc
|
||||
"{ThisScript}" all-gdb
|
||||
Echo Finished `Date`
|
||||
Else If "{BuildTarget}" =~ /all-libiberty/
|
||||
"{ThisScript}" do-libiberty
|
||||
Else If "{BuildTarget}" =~ /all-bfd/
|
||||
"{ThisScript}" do-bfd
|
||||
Else If "{BuildTarget}" =~ /all-opcodes/
|
||||
"{ThisScript}" do-opcodes
|
||||
Else If "{BuildTarget}" =~ /all-byacc/
|
||||
"{ThisScript}" do-byacc
|
||||
Else If "{BuildTarget}" =~ /all-flex/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" do-flex
|
||||
Else If "{BuildTarget}" =~ /all-binutils/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" all-bfd
|
||||
"{ThisScript}" all-opcodes
|
||||
"{ThisScript}" do-binutils
|
||||
Else If "{BuildTarget}" =~ /all-gas/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" all-bfd
|
||||
"{ThisScript}" all-opcodes
|
||||
"{ThisScript}" do-gas
|
||||
Else If "{BuildTarget}" =~ /all-gcc/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" all-gas
|
||||
"{ThisScript}" all-binutils
|
||||
"{ThisScript}" all-ld
|
||||
"{ThisScript}" do-gcc
|
||||
Else If "{BuildTarget}" =~ /all-gdb/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" all-bfd
|
||||
"{ThisScript}" all-opcodes
|
||||
"{ThisScript}" do-gdb
|
||||
Else If "{BuildTarget}" =~ /all-grez/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" all-bfd
|
||||
"{ThisScript}" do-grez
|
||||
Else If "{BuildTarget}" =~ /all-ld/
|
||||
"{ThisScript}" all-libiberty
|
||||
"{ThisScript}" all-bfd
|
||||
"{ThisScript}" all-opcodes
|
||||
"{ThisScript}" do-ld
|
||||
Else If "{BuildTarget}" =~ /do-byacc/
|
||||
SetDirectory :byacc:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-flex/
|
||||
SetDirectory :flex:
|
||||
::mpw-build _bootstrap
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-bfd/
|
||||
SetDirectory :bfd:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-libiberty/
|
||||
SetDirectory :libiberty:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-opcodes/
|
||||
SetDirectory :opcodes:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-binutils/
|
||||
SetDirectory :binutils:
|
||||
::mpw-build stamps
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-gas/
|
||||
SetDirectory :gas:
|
||||
::mpw-build stamps
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-gcc/
|
||||
SetDirectory :gcc:
|
||||
:mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-gdb/
|
||||
SetDirectory :gdb:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-grez/
|
||||
SetDirectory :grez:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-ld/
|
||||
SetDirectory :ld:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /do-newlib/
|
||||
SetDirectory :newlib:
|
||||
::mpw-build all
|
||||
Else If "{BuildTarget}" =~ /install/
|
||||
"{ThisScript}" install-only-top
|
||||
"{ThisScript}" install-binutils
|
||||
"{ThisScript}" install-gas
|
||||
"{ThisScript}" install-gcc
|
||||
"{ThisScript}" install-ld
|
||||
"{ThisScript}" install-gdb
|
||||
Else If "{BuildTarget}" =~ /install-binutils/
|
||||
SetDirectory :binutils:
|
||||
::mpw-build install
|
||||
Else If "{BuildTarget}" =~ /install-gas/
|
||||
SetDirectory :gas:
|
||||
::mpw-build install
|
||||
Else If "{BuildTarget}" =~ /install-gcc/
|
||||
SetDirectory :gcc:
|
||||
:mpw-build install
|
||||
Else If "{BuildTarget}" =~ /install-gdb/
|
||||
SetDirectory :gdb:
|
||||
::mpw-build install
|
||||
Else If "{BuildTarget}" =~ /install-grez/
|
||||
SetDirectory :grez:
|
||||
::mpw-build install
|
||||
Else If "{BuildTarget}" =~ /install-ld/
|
||||
SetDirectory :ld:
|
||||
::mpw-build install
|
||||
Else If "{BuildTarget}" =~ /install-only/
|
||||
"{ThisScript}" install-only-top
|
||||
"{ThisScript}" install-only-binutils
|
||||
"{ThisScript}" install-only-gas
|
||||
"{ThisScript}" install-only-gcc
|
||||
"{ThisScript}" install-only-gdb
|
||||
"{ThisScript}" install-only-ld
|
||||
Else If "{BuildTarget}" =~ /install-only-binutils/
|
||||
SetDirectory :binutils:
|
||||
::mpw-build install-only
|
||||
Else If "{BuildTarget}" =~ /install-only-gas/
|
||||
SetDirectory :gas:
|
||||
::mpw-build install-only
|
||||
Else If "{BuildTarget}" =~ /install-only-gcc/
|
||||
SetDirectory :gcc:
|
||||
:mpw-build install-only
|
||||
Else If "{BuildTarget}" =~ /install-only-gdb/
|
||||
SetDirectory :gdb:
|
||||
::mpw-build install-only
|
||||
Else If "{BuildTarget}" =~ /install-only-grez/
|
||||
SetDirectory :grez:
|
||||
::mpw-build install-only
|
||||
Else If "{BuildTarget}" =~ /install-only-ld/
|
||||
SetDirectory :ld:
|
||||
::mpw-build install-only
|
||||
Else If "{BuildTarget}" =~ /install-only-top/
|
||||
NewFolderRecursive "{prefix}"
|
||||
If "{prefix}" != "`Directory`"
|
||||
Duplicate -y 'Read Me for MPW' "{prefix}"'Read Me for MPW'
|
||||
Duplicate -y Install "{prefix}"Install
|
||||
End If
|
||||
Else
|
||||
Echo {BuildTarget} not understood, ignoring
|
||||
End If
|
||||
|
||||
SetDirectory "{savedir}"
|
113
mpw-config.in
113
mpw-config.in
@ -1,113 +0,0 @@
|
||||
# Configuration fragment for Cygnus source tree.
|
||||
|
||||
# Check that we can find all the special tools that we will need.
|
||||
# The test for sed is semi-pointless, because it's already been invoked
|
||||
# by the calculation of target_cpu in the main configure script, but
|
||||
# the test will also show which one is being used.
|
||||
|
||||
Set Exit 0
|
||||
Echo byacc is `Which byacc`
|
||||
Echo flex is `Which flex`
|
||||
Echo forward-include is `Which forward-include`
|
||||
Echo MoveIfChange is `Which MoveIfChange`
|
||||
Echo mpw-touch is `Which mpw-touch`
|
||||
Echo mpw-true is `Which mpw-true`
|
||||
Echo NewFolderRecursive is `Which NewFolderRecursive`
|
||||
Echo null-command is `Which null-command`
|
||||
Echo open-brace is `Which open-brace`
|
||||
Echo sed is `Which sed`
|
||||
Echo 'tr-7to8' is `Which tr-7to8`
|
||||
Echo true is `Which true`
|
||||
Set Exit 1
|
||||
|
||||
Set host_libs "mmalloc libiberty opcodes bfd readline gash tcl tk tclX"
|
||||
|
||||
Set host_tools "texinfo byacc flex bison binutils ld gas gcc gdb make patch \Option-d
|
||||
prms send-pr gprof gdbtest tgas etc expect dejagnu sim bash \Option-d
|
||||
m4 autoconf ispell grep diff rcs cvs fileutils shellutils time \Option-d
|
||||
textutils wdiff find emacs emacs19 uudecode hello tar gzip indent \Option-d
|
||||
recode release sed utils guile perl apache inet gawk"
|
||||
|
||||
Set target_libs "newlib"
|
||||
|
||||
Set target_tools "examples"
|
||||
|
||||
# Configure the resource compiler if targeting Macs.
|
||||
If {target_os} =~ /macos/ || {target_os} =~ /mpw/
|
||||
Set host_tools "{host_tools} grez"
|
||||
End If
|
||||
|
||||
Set configdirs "{host_libs} {host_tools} {target_libs} {target_tools}"
|
||||
Export configdirs
|
||||
|
||||
# Make up a special include directory that tools will share.
|
||||
|
||||
If "`Exists "{objdir}"extra-include`" == ""
|
||||
NewFolder "{objdir}"extra-include
|
||||
End If
|
||||
|
||||
Set edir "{objdir}extra-include:"
|
||||
|
||||
forward-include "{srcdir}"include:mpw:sys:file.h "{edir}"'sys/file.h'
|
||||
forward-include "{srcdir}"include:mpw:sys:ioctl.h "{edir}"'sys/ioctl.h'
|
||||
forward-include "{srcdir}"include:mpw:sys:param.h "{edir}"'sys/param.h'
|
||||
forward-include "{srcdir}"include:mpw:sys:resource.h "{edir}"'sys/resource.h'
|
||||
forward-include "{srcdir}"include:mpw:sys:stat.h "{edir}"'sys/stat.h'
|
||||
forward-include "{srcdir}"include:mpw:sys:time.h "{edir}"'sys/time.h'
|
||||
forward-include "{srcdir}"include:mpw:sys:types.h "{edir}"'sys/types.h'
|
||||
|
||||
forward-include "{srcroot}"include:aout:aout64.h "{edir}"'aout/aout64.h'
|
||||
forward-include "{srcroot}"include:aout:ar.h "{edir}"'aout/ar.h'
|
||||
forward-include "{srcroot}"include:aout:ranlib.h "{edir}"'aout/ranlib.h'
|
||||
forward-include "{srcroot}"include:aout:reloc.h "{edir}"'aout/reloc.h'
|
||||
forward-include "{srcroot}"include:aout:stab.def "{edir}"'aout/stab.def'
|
||||
forward-include "{srcroot}"include:aout:stab_gnu.h "{edir}"'aout/stab_gnu.h'
|
||||
|
||||
If "`Exists "{srcroot}"include:aout:"{target_cpu}".h`" != ""
|
||||
forward-include "{srcroot}"include:aout:"{target_cpu}".h "{edir}"'aout/'"{target_cpu}"'.h'
|
||||
End If
|
||||
|
||||
forward-include "{srcroot}"include:coff:ecoff.h "{edir}"'coff/ecoff.h'
|
||||
forward-include "{srcroot}"include:coff:internal.h "{edir}"'coff/internal.h'
|
||||
forward-include "{srcroot}"include:coff:sym.h "{edir}"'coff/sym.h'
|
||||
forward-include "{srcroot}"include:coff:symconst.h "{edir}"'coff/symconst.h'
|
||||
|
||||
If "`Exists "{srcroot}"include:coff:"{target_cpu}".h`" != ""
|
||||
forward-include "{srcroot}"include:coff:"{target_cpu}".h "{edir}"'coff/'"{target_cpu}"'.h'
|
||||
End If
|
||||
If "{target_cpu}" =~ /powerpc/
|
||||
forward-include "{srcroot}"include:coff:rs6000.h "{edir}"'coff/rs6000.h'
|
||||
End If
|
||||
|
||||
forward-include "{srcroot}"include:elf:common.h "{edir}"'elf/common.h'
|
||||
forward-include "{srcroot}"include:elf:dwarf.h "{edir}"'elf/dwarf.h'
|
||||
forward-include "{srcroot}"include:elf:dwarf2.h "{edir}"'elf/dwarf2.h'
|
||||
forward-include "{srcroot}"include:elf:external.h "{edir}"'elf/external.h'
|
||||
forward-include "{srcroot}"include:elf:internal.h "{edir}"'elf/internal.h'
|
||||
|
||||
# Believe it or not, GDB needs this for all targets.
|
||||
forward-include "{srcroot}"include:elf:mips.h "{edir}"'elf/mips.h'
|
||||
|
||||
If "`Exists "{srcroot}"include:elf:"{target_cpu}".h`" != ""
|
||||
forward-include "{srcroot}"include:elf:"{target_cpu}".h "{edir}"'elf/'"{target_cpu}"'.h'
|
||||
End If
|
||||
If "{target_cpu}" =~ /powerpc/
|
||||
forward-include "{srcroot}"include:elf:ppc.h "{edir}"'elf/ppc.h'
|
||||
End If
|
||||
|
||||
If "`Exists "{srcroot}"include:opcode:"{target_cpu}".h`" != ""
|
||||
forward-include "{srcroot}"include:opcode:"{target_cpu}".h "{edir}"'opcode/'"{target_cpu}"'.h'
|
||||
End If
|
||||
If "{target_cpu}" =~ /powerpc/
|
||||
forward-include "{srcroot}"include:opcode:ppc.h "{edir}"'opcode/ppc.h'
|
||||
End If
|
||||
|
||||
# Add some bfd includes that get mentioned outside the bfd dir.
|
||||
|
||||
forward-include "{srcroot}"bfd:libcoff.h "{edir}"'bfd/libcoff.h'
|
||||
forward-include "{srcroot}"bfd:libecoff.h "{edir}"'bfd/libecoff.h'
|
||||
|
||||
# Translate random files into MPW-only character set.
|
||||
|
||||
tr-7to8 "{srcdir}"mpw-README > "{objdir}Read Me for MPW"
|
||||
tr-7to8 "{srcdir}"mpw-install > "{objdir}"Install
|
448
mpw-configure
448
mpw-configure
@ -1,448 +0,0 @@
|
||||
# Configuration script
|
||||
# Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
### WARNING
|
||||
### This script must NOT use any 8-bit chars!
|
||||
### WARNING
|
||||
|
||||
# This is an MPW Shell script that sets everything up for compilation,
|
||||
# mainly creating directories, and editing copies of files.
|
||||
|
||||
Set savedir "`Directory`"
|
||||
|
||||
#Set Echo 1
|
||||
|
||||
Set ThisScript "{0}"
|
||||
|
||||
Set srcroot "--------"
|
||||
|
||||
Set srcdir ":"
|
||||
|
||||
Set objdir ":"
|
||||
|
||||
Set prefix "{MPW}":GNUTools:
|
||||
|
||||
Set exec_prefix ""
|
||||
|
||||
Set bindir ""
|
||||
|
||||
Set host_alias "m68k-apple-mpw"
|
||||
|
||||
Set target_alias {host_alias}
|
||||
|
||||
Set host_cc "mpwc"
|
||||
|
||||
Set with_gnu_ld 0
|
||||
|
||||
Set helpoutput 0
|
||||
|
||||
Set recurse 1
|
||||
|
||||
Set verify 0
|
||||
Set verifystr ""
|
||||
|
||||
Set enable_options ""
|
||||
Set disable_options ""
|
||||
|
||||
# Parse arguments.
|
||||
|
||||
Loop
|
||||
Break If {#} == 0
|
||||
If "{1}" =~ /--cc/
|
||||
Set host_cc "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--bindir/
|
||||
Set bindir "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--disable-?+/
|
||||
Set `Echo {1} | sed -e 's/--disable-/enable_/'` no
|
||||
Set disable_options "{disable_options} '{1}'"
|
||||
Else If "{1}" =~ /--enable-?+/
|
||||
Set `Echo {1} | sed -e 's/--enable-/enable_/'` yes
|
||||
Set enable_options "{enable_options} '{1}'"
|
||||
Else If "{1}" =~ /--exec-prefix/
|
||||
Set exec_prefix "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--help/
|
||||
Set helpoutput 1
|
||||
Else If "{1}" =~ /--host/
|
||||
Set host_alias "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--norecursion/
|
||||
Set recurse 0
|
||||
Else If "{1}" =~ /--prefix/
|
||||
Set prefix "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--srcdir/
|
||||
Set srcdir "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--srcroot/
|
||||
Set srcroot "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /--target/
|
||||
Set target_alias "{2}"
|
||||
Shift 1
|
||||
Else If "{1}" =~ /-v/
|
||||
Set verify 1
|
||||
Set verifystr "-v"
|
||||
Else If "{1}" =~ /--with-gnu-ld/
|
||||
Set with_gnu_ld 1
|
||||
Else
|
||||
Echo -n 'mpw-configure: Unrecognized option: "'
|
||||
Echo -n "{1}"
|
||||
Echo '"; use --help for usage.'
|
||||
Exit 1
|
||||
End If
|
||||
Shift 1
|
||||
End Loop
|
||||
|
||||
If {helpoutput} == 1
|
||||
Echo "Usage: mpw-configure [OPTIONS]"
|
||||
Echo ""
|
||||
Echo "Options: [defaults in brackets]"
|
||||
Echo "--bindir DIR directory for binaries []"
|
||||
Echo "--cc CC use C compiler CC [mpwc]"
|
||||
Echo "--disable-FOO do not include feature FOO"
|
||||
Echo "--enable-FOO include feature FOO"
|
||||
Echo "--exec-prefix DIR install host-dependent files into DIR []"
|
||||
Echo "--help print this message"
|
||||
Echo "--host HOST configure for HOST [m68k-apple-mpw]"
|
||||
Echo "--norecursion configure this directory only [recurse]"
|
||||
Echo "--prefix DIR install into DIR [{MPW}:GNUTools:]"
|
||||
Echo "--srcdir DIR find the sources in DIR [:]"
|
||||
Echo "--srcroot DIR find the toplevel sources in DIR [:]"
|
||||
Echo "--target TARGET configure for TARGET [TARGET=HOST]"
|
||||
Echo "-v verbose"
|
||||
Echo "--with-gnu-ld link using GNU ld [no]"
|
||||
Exit 0
|
||||
End If
|
||||
|
||||
Set Exit 0
|
||||
|
||||
# Default exec_prefix from prefix.
|
||||
|
||||
If "{exec_prefix}" == ""
|
||||
Set exec_prefix "{prefix}"
|
||||
End If
|
||||
|
||||
If "{bindir}" == ""
|
||||
Set bindir "{prefix}"bin:
|
||||
End If
|
||||
|
||||
# Point to the correct set of tools to use with the chosen compiler.
|
||||
|
||||
If "{host_cc}" =~ /mpwc/
|
||||
Set host_alias "m68k-apple-mpw"
|
||||
Set cc_name '{CC_MPW_C}'
|
||||
Set segment_flag '-s '
|
||||
Set ar_name '{AR_LIB}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_LINK}'
|
||||
Set prog_ext_name '{PROG_EXT_68K}'
|
||||
Set extralibs_name '{EXTRALIBS_C}'
|
||||
Set makepef_name '{MAKEPEF_NULL}'
|
||||
Set rez_name '{REZ_68K}'
|
||||
Else If "{host_cc}" =~ /sc68k/
|
||||
Set host_alias "m68k-apple-mpw"
|
||||
Set cc_name '{CC_SC}'
|
||||
Set segment_flag '-s '
|
||||
Set ar_name '{AR_LIB}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_LINK}'
|
||||
Set prog_ext_name '{PROG_EXT_68K}'
|
||||
Set extralibs_name '{EXTRALIBS_C}'
|
||||
Set makepef_name '{MAKEPEF_NULL}'
|
||||
Set rez_name '{REZ_68K}'
|
||||
Else If "{host_cc}" =~ /mwc68k/
|
||||
Set host_alias "m68k-apple-mpw"
|
||||
Set cc_name '{CC_MWC68K}'
|
||||
Set segment_flag '-s '
|
||||
Set ar_name '{AR_MWLINK68K}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_MWLINK68K}'
|
||||
Set prog_ext_name '{PROG_EXT_68K}'
|
||||
Set extralibs_name '{EXTRALIBS_MWC68K}'
|
||||
Set makepef_name '{MAKEPEF_NULL}'
|
||||
Set rez_name '{REZ_68K}'
|
||||
Else If "{host_cc}" =~ /gcc68k/
|
||||
Set host_alias "m68k-apple-mpw"
|
||||
Set cc_name '{CC_68K_GCC}'
|
||||
Set segment_flag '-s '
|
||||
Set ar_name '{AR_68K_AR}'
|
||||
Set ranlib_name '{RANLIB_RANLIB}'
|
||||
Set cc_ld_name '{CC_68K_GCC}'
|
||||
Set prog_ext_name '{PROG_EXT_68K}'
|
||||
Set extralibs_name '{EXTRALIBS_C}'
|
||||
Set makepef_name '{MAKEPEF_NULL}'
|
||||
Set rez_name '{REZ_68K}'
|
||||
Else If "{host_cc}" =~ /ppcc/
|
||||
Set host_alias "powerpc-apple-mpw"
|
||||
Set cc_name '{CC_PPCC}'
|
||||
Set segment_flag '-d ___s_e_g___='
|
||||
Set ar_name '{AR_PPCLINK}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_PPCLINK}'
|
||||
Set prog_ext_name '{PROG_EXT_XCOFF}'
|
||||
Set extralibs_name '{EXTRALIBS_PPC}'
|
||||
Set makepef_name '{MAKEPEF_PPC}'
|
||||
Set rez_name '{REZ_PPC}'
|
||||
Else If "{host_cc}" =~ /mrc/
|
||||
Set host_alias "powerpc-apple-mpw"
|
||||
Set cc_name '{CC_MRC}'
|
||||
Set segment_flag '-d ___s_e_g___='
|
||||
Set ar_name '{AR_PPCLINK}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_PPCLINK}'
|
||||
Set prog_ext_name '{PROG_EXT_XCOFF}'
|
||||
Set extralibs_name '{EXTRALIBS_PPC}'
|
||||
Set makepef_name '{MAKEPEF_PPC}'
|
||||
Set rez_name '{REZ_PPC}'
|
||||
Else If "{host_cc}" =~ /scppc/
|
||||
Set host_alias "powerpc-apple-mpw"
|
||||
Set cc_name '{CC_SC}'
|
||||
Set segment_flag '-d ___s_e_g___='
|
||||
Set ar_name '{AR_PPCLINK}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_PPCLINK}'
|
||||
Set prog_ext_name '{PROG_EXT_XCOFF}'
|
||||
Set extralibs_name '{EXTRALIBS_PPC}'
|
||||
Set makepef_name '{MAKEPEF_PPC}'
|
||||
Set rez_name '{REZ_PPC}'
|
||||
Else If "{host_cc}" =~ /mwcppc/
|
||||
Set host_alias "powerpc-apple-mpw"
|
||||
Set cc_name '{CC_MWCPPC}'
|
||||
Set segment_flag '-d ___s_e_g___='
|
||||
Set ar_name '{AR_MWLINKPPC}'
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_MWLINKPPC}'
|
||||
# Misleading, but we don't need a PEF step.
|
||||
Set prog_ext_name '{PROG_EXT_68K}'
|
||||
Set extralibs_name '{EXTRALIBS_MWCPPC}'
|
||||
Set makepef_name '{MAKEPEF_NULL}'
|
||||
Set rez_name '{REZ_PPC}'
|
||||
Else If "{host_cc}" =~ /gccppc/
|
||||
Set host_alias "powerpc-apple-mpw"
|
||||
Set cc_name '{CC_PPC_GCC}'
|
||||
Set segment_flag '-d ___s_e_g___='
|
||||
Set ar_name '{AR_PPCLINK}'
|
||||
If {with_gnu_ld} == 1
|
||||
Set ranlib_name '{RANLIB_RANLIB}'
|
||||
Set cc_ld_name '{CC_LD_GLD}'
|
||||
Else
|
||||
Set ranlib_name '{RANLIB_NULL}'
|
||||
Set cc_ld_name '{CC_LD_PPCLINK}'
|
||||
End If
|
||||
Set prog_ext_name '{PROG_EXT_XCOFF}'
|
||||
Set extralibs_name '{EXTRALIBS_PPC}'
|
||||
Set makepef_name '{MAKEPEF_PPC}'
|
||||
Set rez_name '{REZ_PPC}'
|
||||
Else
|
||||
Echo "{host_cc}" is not a known MPW compiler type
|
||||
End If
|
||||
|
||||
Set dash_c_flag ''
|
||||
If "{host_cc}" =~ /gcc68k/
|
||||
Set dash_c_flag '-c'
|
||||
Else If "{host_cc}" =~ /gccppc/
|
||||
Set dash_c_flag '-c'
|
||||
End If
|
||||
|
||||
# (should interpret aliases if not in canonical form)
|
||||
|
||||
Set host_canonical "{host_alias}"
|
||||
|
||||
Set target_canonical "{target_alias}"
|
||||
|
||||
Set configdirs ""
|
||||
|
||||
If "{srcroot}" =~ /--------/
|
||||
Set srcroot "{srcdir}"
|
||||
End If
|
||||
If "`Exists "{srcdir}"`" == ""
|
||||
Echo Source directory {srcdir} does not exist!
|
||||
Exit 1
|
||||
End If
|
||||
If "`Exists "{srcroot}"`" == ""
|
||||
Echo Top-level source directory {srcroot} does not exist!
|
||||
Exit 1
|
||||
End If
|
||||
|
||||
Set target_cpu "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`"
|
||||
Set target_vendor "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`"
|
||||
Set target_os "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`"
|
||||
|
||||
# Create a file that is guaranteed to be older than any other here.
|
||||
|
||||
If "`Exists "{objdir}"_oldest`" == ""
|
||||
mpw-touch _oldest
|
||||
End If
|
||||
|
||||
# Record this before creating any files, makefiles sometimes mention
|
||||
# dependencies on config.status.
|
||||
|
||||
Echo "# This directory was configured as follows:" >config.new
|
||||
Echo "{ThisScript} --host {host_alias} --target {target_alias} --srcdir {srcdir} --srcroot {srcroot} --prefix {prefix} --cc {host_cc} {verifystr} {enable_options} {disable_options} --norecursion" >>config.new
|
||||
MoveIfChange config.new config.status
|
||||
|
||||
If "`Exists "{srcdir}"mpw-config.in`" != ""
|
||||
tr-7to8 "{srcdir}"mpw-config.in >"{objdir}"mpw-config.in
|
||||
Execute "{objdir}"mpw-config.in
|
||||
End If
|
||||
|
||||
# Start Makefile construction by defining all the variables chosen by
|
||||
# configuration.
|
||||
|
||||
Echo "# This Makefile produced by mpw-configure. Changes may get lost!" > "{objdir}"Makefile.tem
|
||||
Echo "srcroot = " {srcroot} >> "{objdir}"Makefile.tem
|
||||
Echo "topsrcdir = " {srcroot} >> "{objdir}"Makefile.tem
|
||||
Echo "srcdir = " {srcdir} >> "{objdir}"Makefile.tem
|
||||
Echo "mpw_prefix = " {prefix} >> "{objdir}"Makefile.tem
|
||||
Echo "mpw_exec_prefix = " {exec_prefix} >> "{objdir}"Makefile.tem
|
||||
Echo "mpw_bindir = " {bindir} >> "{objdir}"Makefile.tem
|
||||
Echo "host_alias = " {host_alias} >> "{objdir}"Makefile.tem
|
||||
Echo "target_alias = " {target_alias} >> "{objdir}"Makefile.tem
|
||||
Echo "target_cpu = " {target_cpu} >> "{objdir}"Makefile.tem
|
||||
Echo "target_vendor = " {target_vendor} >> "{objdir}"Makefile.tem
|
||||
Echo "target_os = " {target_os} >> "{objdir}"Makefile.tem
|
||||
Echo "target_canonical = " {target_canonical} >> "{objdir}"Makefile.tem
|
||||
Echo "host_makefile_frag = " >> "{objdir}"Makefile.tem
|
||||
Echo "target_makefile_frag = " >> "{objdir}"Makefile.tem
|
||||
Echo "CC = " {cc_name} >> "{objdir}"Makefile.tem
|
||||
Echo "AR = " {ar_name} >> "{objdir}"Makefile.tem
|
||||
Echo "RANLIB = " {ranlib_name} >> "{objdir}"Makefile.tem
|
||||
Echo "CC_LD = " {cc_ld_name} >> "{objdir}"Makefile.tem
|
||||
Echo "PROG_EXT = " {prog_ext_name} >> "{objdir}"Makefile.tem
|
||||
Echo "EXTRALIBS = " {extralibs_name} >> "{objdir}"Makefile.tem
|
||||
Echo "MAKEPEF = " {makepef_name} >> "{objdir}"Makefile.tem
|
||||
Echo "REZ = " {rez_name} >> "{objdir}"Makefile.tem
|
||||
|
||||
If {host_cc} =~ /gccppc/
|
||||
Echo -n "dq =\Option-d\Option-d\Option-d" > "{objdir}"Makefile.tem0
|
||||
Echo '"' >> "{objdir}"Makefile.tem0
|
||||
tr-7to8 "{objdir}"Makefile.tem0 >>"{objdir}"Makefile.tem
|
||||
Else
|
||||
Echo -n "dq ='" >> "{objdir}"Makefile.tem
|
||||
Echo -n '"' >> "{objdir}"Makefile.tem
|
||||
Echo "'" >> "{objdir}"Makefile.tem
|
||||
End If
|
||||
|
||||
# Append the master set of definitions for the various compilers.
|
||||
|
||||
If "`Exists "{srcdir}"config:mpw-mh-mpw`" != ""
|
||||
tr-7to8 "{srcdir}"config:mpw-mh-mpw >>"{objdir}"Makefile.tem
|
||||
Else If "`Exists "{srcroot}"config:mpw-mh-mpw`" != ""
|
||||
tr-7to8 "{srcroot}"config:mpw-mh-mpw >>"{objdir}"Makefile.tem
|
||||
Else
|
||||
Echo "can't find a host config file!"
|
||||
Exit 0
|
||||
End If
|
||||
|
||||
# Append anything produced by the directory's mpw-config.in.
|
||||
|
||||
If "`Exists "{objdir}"mk.tmp`" != ""
|
||||
Catenate "{objdir}"mk.tmp >>"{objdir}"Makefile.tem
|
||||
# An mpw-config.in might change so as not to create this
|
||||
# anymore, so get rid of it now to be safe.
|
||||
Delete -i -y "{objdir}"mk.tmp
|
||||
End If
|
||||
|
||||
# If there are sed scripts to edit the Unix Makefile.in, use them; otherwise
|
||||
# use an mpw-make.in if present.
|
||||
|
||||
If "`Exists "{srcdir}"mpw-make.sed`" != ""
|
||||
If "`Exists "{objdir}"hacked_Makefile.in`" != ""
|
||||
Set MakefileIn "{objdir}"hacked_Makefile.in
|
||||
Else
|
||||
Set MakefileIn "{srcdir}"Makefile.in
|
||||
End If
|
||||
# Find the generic makefile editing script.
|
||||
If "`Exists "{srcroot}"config:mpw:g-mpw-make.sed`" != ""
|
||||
sed -f "{srcroot}"config:mpw:g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
|
||||
Else If "`Exists "{srcroot}"utils:mpw:g-mpw-make.sed`" != ""
|
||||
sed -f "{srcroot}"utils:mpw:g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
|
||||
Else If "`Exists "{srcdir}"g-mpw-make.sed`" != ""
|
||||
sed -f "{srcdir}"g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
|
||||
Else
|
||||
Echo Warning: g-mpw-make.sed not found, copying "{MakefileIn}" verbatim...
|
||||
Catenate "{MakefileIn}" >"{objdir}"Makefile.tem1
|
||||
End If
|
||||
sed -f "{srcdir}"mpw-make.sed "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
|
||||
sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' -e 's/^exec_prefix = .*$/exec_prefix = {mpw_exec_prefix}/g' -e 's/^bindir = @bindir@/bindir = {mpw_bindir}/g' "{objdir}"Makefile.tem2 >"{objdir}"Makefile.tem3
|
||||
sed -e "s/@DASH_C_FLAG@/{dash_c_flag}/" -e "s/@SEGMENT_FLAG(\([^)]*\))@/{segment_flag}\1/" "{objdir}"Makefile.tem3 >"{objdir}"mpw-make.in
|
||||
tr-7to8 "{objdir}"mpw-make.in >>"{objdir}"Makefile.tem
|
||||
If "`Exists "{objdir}"mk.sed`" != ""
|
||||
sed -f "{objdir}"mk.sed "{objdir}"Makefile.tem >"{objdir}"Makefile.tem2
|
||||
Rename -y "{objdir}"Makefile.tem2 "{objdir}"Makefile.tem
|
||||
End If
|
||||
MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
|
||||
Delete -i -y "{objdir}"Makefile.tem[12]
|
||||
If {verify} == 1
|
||||
Echo Created Makefile in "`Directory`"
|
||||
End If
|
||||
Else If "`Exists "{srcdir}"mpw-make.in`" != ""
|
||||
sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' "{srcdir}"mpw-make.in >"{objdir}"Makefile.tem1
|
||||
sed -e "s/@DASH_C_FLAG@/{dash_c_flag}/" -e "s/@SEGMENT_FLAG(\([^)]*\))@/{segment_flag}}\1/" "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
|
||||
tr-7to8 "{objdir}"Makefile.tem2 >>"{objdir}"Makefile.tem
|
||||
If "`Exists "{objdir}"mk.sed`" != ""
|
||||
sed -f "{objdir}"mk.sed "{objdir}"Makefile.tem >"{objdir}"Makefile.tem2
|
||||
Rename -y "{objdir}"Makefile.tem2 "{objdir}"Makefile.tem
|
||||
End If
|
||||
MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
|
||||
Delete -i -y "{objdir}"Makefile.tem[12]
|
||||
If {verify} == 1
|
||||
Echo Created Makefile in "`Directory`"
|
||||
End If
|
||||
End If
|
||||
|
||||
# Produce a build script if the source is defined.
|
||||
|
||||
If "`Exists "{srcdir}"mpw-build.in`" != ""
|
||||
Echo "Set srcroot " {srcroot} > "{objdir}"mpw-build.tem
|
||||
Echo "Set srcdir " {srcdir} >> "{objdir}"mpw-build.tem
|
||||
Echo "Set target_canonical " {target_canonical} >> "{objdir}"mpw-build.tem
|
||||
Echo "Set prefix " {prefix} >> "{objdir}"mpw-build.tem
|
||||
tr-7to8 "{srcdir}"mpw-build.in >>"{objdir}"mpw-build.tem
|
||||
MoveIfChange "{objdir}"mpw-build.tem "{objdir}"mpw-build
|
||||
If {verify} == 1
|
||||
Echo Created mpw-build in "`Directory`"
|
||||
End If
|
||||
End If
|
||||
|
||||
# Apply ourselves recursively to the list of subdirectories to configure.
|
||||
|
||||
If {recurse} == 1
|
||||
For subdir In {configdirs}
|
||||
Set savedir "`Directory`"
|
||||
If "`Exists "{srcdir}{subdir}:"`" == ""
|
||||
If {verify} == 1
|
||||
Echo No "{srcdir}{subdir}:" found, skipping
|
||||
End If
|
||||
Continue
|
||||
End If
|
||||
If {verify} == 1
|
||||
Echo Configuring {subdir}...
|
||||
End If
|
||||
If "`Exists "{objdir}{subdir}:"`" == ""
|
||||
NewFolder "{objdir}{subdir}"
|
||||
End If
|
||||
SetDirectory "{objdir}{subdir}:"
|
||||
"{ThisScript}" --target "{target_canonical}" --srcdir "{srcdir}{subdir}:" --srcroot "{srcroot}" --prefix "{prefix}" --cc "{host_cc}" {verifystr} {enable_options} {disable_options}
|
||||
SetDirectory "{savedir}"
|
||||
End For
|
||||
End If
|
||||
|
||||
SetDirectory "{savedir}"
|
122
mpw-install
122
mpw-install
@ -1,122 +0,0 @@
|
||||
# GNU Install script for MPW.
|
||||
|
||||
Set OldExit "{Exit}"
|
||||
Set Exit 0
|
||||
|
||||
Set TempUserStartup "{TempFolder}"__temp__UserStartup
|
||||
|
||||
Echo '# UserStartup generated by GNU Install script' > "{TempUserStartup}"
|
||||
Echo '' >> "{TempUserStartup}"
|
||||
|
||||
# (should) Check that disk space is sufficient for installation.
|
||||
|
||||
# Assume that the install script is where everything else is.
|
||||
|
||||
Set thisdir "`Directory`"
|
||||
|
||||
# Copy the binaries to the desired place.
|
||||
|
||||
Confirm -t "Copy the binaries to somewhere else?"
|
||||
Set TmpStatus {Status}
|
||||
If {TmpStatus} == 0
|
||||
Set bindest "`GetFileName -d -m "Where to install the binaries?"`"
|
||||
If {Status} == 0
|
||||
If "`Exists "{thisdir}bin"`" != ""
|
||||
For afile In "{thisdir}"bin:\Option-x
|
||||
Duplicate -y "{afile}" "{bindest}"
|
||||
End For
|
||||
Else
|
||||
Echo "bin directory not found, exiting"
|
||||
Exit 1
|
||||
End If
|
||||
Else
|
||||
Echo "No destination supplied, exiting"
|
||||
Exit 1
|
||||
End If
|
||||
Else If {TmpStatus} == 4
|
||||
# Use the existing directory.
|
||||
Set bindest "{thisdir}bin:"
|
||||
Else
|
||||
# Cancelled from confirmation, escape altogether.
|
||||
Exit 1
|
||||
End If
|
||||
|
||||
# Copy the libraries to the desired place.
|
||||
|
||||
Confirm -t "Copy the libraries to somewhere else?"
|
||||
Set TmpStatus {Status}
|
||||
If {TmpStatus} == 0
|
||||
Set libdest "`GetFileName -d -m "Where to install the libraries?"`"
|
||||
If {Status} == 0
|
||||
If "`Exists "{thisdir}lib:"`" != ""
|
||||
For afile In "{thisdir}"lib:\Option-x
|
||||
Duplicate -y "{afile}" "{libdest}"
|
||||
End For
|
||||
Else
|
||||
Echo "lib directory not found, exiting"
|
||||
Exit 1
|
||||
End If
|
||||
Else
|
||||
Echo "No destination supplied, exiting"
|
||||
Exit 1
|
||||
End If
|
||||
Else If {TmpStatus} == 4
|
||||
# Use the existing directory.
|
||||
Set libdest "{thisdir}lib:"
|
||||
Else
|
||||
# Cancelled from confirmation, escape altogether.
|
||||
Exit 1
|
||||
End If
|
||||
|
||||
|
||||
# Add the location of the binaries to the command path.
|
||||
|
||||
Echo -n 'Set Commands "' >> "{TempUserStartup}"
|
||||
Echo -n "{bindest}" >> "{TempUserStartup}"
|
||||
Echo ',{Commands}"' >> "{TempUserStartup}"
|
||||
Echo '' >> "{TempUserStartup}"
|
||||
|
||||
# Set up GCC exec prefix.
|
||||
|
||||
Set gcclibdir "{libdest}"gcc-lib:
|
||||
|
||||
Echo -n 'Set GCC_EXEC_PREFIX "' >> "{TempUserStartup}"
|
||||
Echo -n "{gcclibdir}" >> "{TempUserStartup}"
|
||||
Echo '"' >> "{TempUserStartup}"
|
||||
Echo "Export GCC_EXEC_PREFIX" >> "{TempUserStartup}"
|
||||
Echo '' >> "{TempUserStartup}"
|
||||
|
||||
# Set up path to libgcc.xcoff etc.
|
||||
|
||||
Echo -n 'Set GCCPPCLibraries "' >> "{TempUserStartup}"
|
||||
Echo -n "{libdest}" >> "{TempUserStartup}"
|
||||
Echo '"' >> "{TempUserStartup}"
|
||||
Echo "Export GCCPPCLibraries" >> "{TempUserStartup}"
|
||||
Echo '' >> "{TempUserStartup}"
|
||||
|
||||
# Display contents of UserStartup, confirm installation.
|
||||
|
||||
Set UserStartupName "UserStartup\Option-8GNU"
|
||||
|
||||
Echo "Contents of" {UserStartupName} "will be:"
|
||||
Catenate "{TempUserStartup}"
|
||||
|
||||
Confirm "Install {UserStartupName} into the MPW folder {MPW} ?"
|
||||
If {Status} == 0
|
||||
Duplicate "{TempUserStartup}" "{MPW}{UserStartupName}"
|
||||
Delete -y "{TempUserStartup}"
|
||||
Else
|
||||
Echo "{UserStartupName} file not installed"
|
||||
End If
|
||||
|
||||
# (should) Check HEXA resource, warn if low.
|
||||
|
||||
# (should) Check for spaces in pathnames, warn if found.
|
||||
|
||||
Echo "Installation was successful."
|
||||
Echo ""
|
||||
Echo "Be sure to review the usage notes in 'Read Me for MPW' before proceeding!"
|
||||
|
||||
# Restore previous settings.
|
||||
|
||||
Set Exit "{OldExit}"
|
@ -45,7 +45,6 @@ PWD = $${PWDCMD-pwd}
|
||||
# distribution (perhaps it would be better to include it anyway).
|
||||
DEVO_SUPPORT= README Makefile.in configure configure.in \
|
||||
config.guess config.if config.sub config move-if-change \
|
||||
mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install \
|
||||
COPYING COPYING.LIB install-sh config-ml.in symlink-tree \
|
||||
mkinstalldirs ltconfig ltmain.sh missing ylwrap \
|
||||
libtool.m4 gettext.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh \
|
||||
|
Loading…
Reference in New Issue
Block a user