doc update
This commit is contained in:
parent
9ad024eb56
commit
7e5417927c
3 changed files with 516 additions and 127 deletions
339
docs/grub.texi
339
docs/grub.texi
|
@ -979,7 +979,11 @@ where to find Stage 2, and the Stage 2 has to know where to find its
|
||||||
configuration file (if Stage 2 doesn't have a configuration file, it
|
configuration file (if Stage 2 doesn't have a configuration file, it
|
||||||
drops into the command-line interface and waits for a user command).
|
drops into the command-line interface and waits for a user command).
|
||||||
|
|
||||||
Here is the memory map of the various components:
|
Here is the memory map of the various components
|
||||||
|
@footnote{Currently GRUB does not use the extended memory for itself,
|
||||||
|
since it is used to load an operating system. But we are planning to use
|
||||||
|
it for GRUB itself in the future by @dfn{lazy loading}. Ask okuji for
|
||||||
|
more information.}:
|
||||||
|
|
||||||
@table @asis
|
@table @asis
|
||||||
@item 0 to 4K-1
|
@item 0 to 4K-1
|
||||||
|
@ -1141,19 +1145,346 @@ which address range should be treated by operating systems.
|
||||||
@node Query System Address Map
|
@node Query System Address Map
|
||||||
@subsection INT 15H, AX=E820h interrupt call
|
@subsection INT 15H, AX=E820h interrupt call
|
||||||
|
|
||||||
mem64mb.html
|
Real mode only.
|
||||||
|
|
||||||
|
This call returns a memory map of all the installed @sc{ram}, and of
|
||||||
|
physical memory ranges reserved by the BIOS. The address map is returned
|
||||||
|
by making successive calls to this API, each returning one "run" of
|
||||||
|
physical address information. Each run has a type which dictates how
|
||||||
|
this run of physical address range should be treated by the operating
|
||||||
|
system.
|
||||||
|
|
||||||
|
If the information returned from INT 15h, AX=E820h in some way differs
|
||||||
|
from INT 15h, AX=E801h (@pxref{Get Large Memory Size}) or INT 15h AH=88h
|
||||||
|
(@pxref{Get Extended Memory Size}), then the information returned from
|
||||||
|
E820h supersedes what is returned from these older interfaces. This
|
||||||
|
allows the BIOS to return whatever information it wishes to for
|
||||||
|
compatibility reasons.
|
||||||
|
|
||||||
|
Input:
|
||||||
|
|
||||||
|
@multitable @columnfractions .15 .25 .6
|
||||||
|
@item @code{EAX} @tab Function Code @tab E820h
|
||||||
|
|
||||||
|
@item @code{EBX} @tab Continuation @tab Contains the @dfn{continuation
|
||||||
|
value} to get the next run of physical memory. This is the value
|
||||||
|
returned by a previous call to this routine. If this is the first call,
|
||||||
|
@code{EBX} must contain zero.
|
||||||
|
|
||||||
|
@item @code{ES:DI} @tab Buffer Pointer @tab Pointer to an Address Range
|
||||||
|
Descriptor structure which the BIOS is to fill in.
|
||||||
|
|
||||||
|
@item @code{ECX} @tab Buffer Size @tab The length in bytes of the
|
||||||
|
structure passed to the BIOS. The BIOS will fill in at most @code{ECX}
|
||||||
|
bytes of the structure or however much of the structure the BIOS
|
||||||
|
implements. The minimum size which must be supported by both the BIOS
|
||||||
|
and the caller is 20 bytes. Future implementations may extend this
|
||||||
|
structure.
|
||||||
|
|
||||||
|
@item @code{EDX} @tab Signature @tab @samp{SMAP} - Used by the BIOS to
|
||||||
|
verify the caller is requesting the system map information to be
|
||||||
|
returned in @code{ES:DI}.
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.15 0.25 0.6
|
||||||
|
@item @code{CF} @tab Carry Flag @tab Non-Carry - indicates no error
|
||||||
|
|
||||||
|
@item @code{EAX} @tab Signature @tab @samp{SMAP} - Signature to verify
|
||||||
|
correct BIOS revision.
|
||||||
|
|
||||||
|
@item @code{ES:DI} @tab Buffer Pointer @tab Returned Address Range
|
||||||
|
Descriptor pointer. Same value as on input.
|
||||||
|
|
||||||
|
@item @code{ECX} @tab Buffer Size @tab Number of bytes returned by the
|
||||||
|
BIOS in the address range descriptor. The minimum size structure
|
||||||
|
returned by the BIOS is 20 bytes.
|
||||||
|
|
||||||
|
@item @code{EBX} @tab Continuation @tab Contains the continuation value
|
||||||
|
to get the next address descriptor. The actual significance of the
|
||||||
|
continuation value is up to the discretion of the BIOS. The caller must
|
||||||
|
pass the continuation value unchanged as input to the next iteration of
|
||||||
|
the E820h call in order to get the next Address Range Descriptor. A
|
||||||
|
return value of zero means that this is the last descriptor. Note that
|
||||||
|
the BIOS indicate that the last valid descriptor has been returned by
|
||||||
|
either returning a zero as the continuaition value, or by returning
|
||||||
|
carry.
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
The Address Range Descriptor Structure is:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.25 0.3 0.45
|
||||||
|
@item Offset in Bytes @tab Name @tab Description
|
||||||
|
|
||||||
|
@item 0 @tab @dfn{BaseAddrLow} @tab Low 32 Bits of Base Address
|
||||||
|
|
||||||
|
@item 4 @tab @dfn{BaseAddrHigh} @tab High 32 Bits of Base Address
|
||||||
|
|
||||||
|
@item 8 @tab @dfn{LengthLow} @tab Low 32 Bits of Length in Bytes
|
||||||
|
|
||||||
|
@item 12 @tab @dfn{LengthHigh} @tab High 32 Bits of Length in Bytes
|
||||||
|
|
||||||
|
@item 16 @tab @dfn{Type} @tab Address type of this range
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
The @dfn{BaseAddrLow} and @dfn{BaseAddrHigh} together are the 64 bit
|
||||||
|
@dfn{BaseAddress} of this range. The @dfn{BaseAddress} is the physical
|
||||||
|
address of the start of the range being specified.
|
||||||
|
|
||||||
|
The @dfn{LengthLow} and @dfn{LengthHigh} together are the 64 bit
|
||||||
|
@dfn{Length} of this range. The @dfn{Length} is the physical contiguous
|
||||||
|
length in bytes of a range being specified.
|
||||||
|
|
||||||
|
The @dfn{Type} field describes the usage of the described address range
|
||||||
|
as defined in the table below:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.1 0.35 0.55
|
||||||
|
@item Value @tab Pneumonic @tab Description
|
||||||
|
|
||||||
|
@item 1 @tab @dfn{AddressRangeMemory} @tab This run is available
|
||||||
|
@sc{ram} usable by the operating system.
|
||||||
|
|
||||||
|
@item 2 @tab @dfn{AddressRangeReserved} @tab This run of addresses is in
|
||||||
|
use or reserved by the system, and must not be used by the operating
|
||||||
|
system.
|
||||||
|
|
||||||
|
@item Other @tab @dfn{Undefined} @tab Undefined - Reserved for future
|
||||||
|
use. Any range of this type must be treated by the OS as if the type
|
||||||
|
returned was @dfn{AddressRangeReserved}.
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
The BIOS can use the @dfn{AddressRangeReserved} address range type to
|
||||||
|
block out various addresses as @emph{not suitable} for use by a
|
||||||
|
programmable device.
|
||||||
|
|
||||||
|
Some of the reasons a BIOS would do this are:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item
|
||||||
|
The address range contains system @sc{rom}.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The address range contains @sc{ram} in use by the @sc{rom}.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The address range is in use by a memory mapped system device.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The address range is for whatever reason are unsuitable for a
|
||||||
|
standard device to use as a device memory space.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
Here is the list of assumptions and limitations:
|
||||||
|
|
||||||
|
@enumerate
|
||||||
|
@item
|
||||||
|
The BIOS will return address ranges describing base board memory and ISA
|
||||||
|
or PCI memory that is contiguous with that base board memory.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The BIOS @emph{will not} return a range description for the memory
|
||||||
|
mapping of PCI devices. ISA Option @sc{rom}'s, and ISA plug & play
|
||||||
|
cards. This is because the OS has mechanisms available to detect them.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The BIOS will return chipset defined address holes that are not being
|
||||||
|
used by devices as reserved.
|
||||||
|
|
||||||
|
@item
|
||||||
|
Address ranges defined for base board memory mapped I/O devices (for
|
||||||
|
example APICs) will be returned as reserved.
|
||||||
|
|
||||||
|
@item
|
||||||
|
All occurrences of the system BIOS will be mapped as reserved. This
|
||||||
|
includes the area below 1 MB, at 16 MB (if present) and at end of the
|
||||||
|
address space (4 GB).
|
||||||
|
|
||||||
|
@item
|
||||||
|
Standard PC address ranges will not be reported. Example video memory at
|
||||||
|
A0000 to BFFFF physical will not be described by this function. THe
|
||||||
|
range from E0000 to EFFFF is base board specific and will be reported as
|
||||||
|
suits the bas board.
|
||||||
|
|
||||||
|
@item
|
||||||
|
All of lower memory is reported as normal memory. It is OS's
|
||||||
|
responsibility to handle standard @sc{ram} locations reserved for
|
||||||
|
specific uses, for example: the interrupt vector table (0:0) and the
|
||||||
|
BIOS data area (40:0).
|
||||||
|
@end enumerate
|
||||||
|
|
||||||
|
Here we explain an example address map. This sample address map
|
||||||
|
describes a machine which has 128 MB @sc{ram}, 640K of base memory and
|
||||||
|
127 MB extended. The base memory has 639K available for the user and 1K
|
||||||
|
for an extended BIOS data area. There is a 4 MB Linear Frame Buffer
|
||||||
|
(LFB) based at 12 MB. The memory hole created by the chipset is from 8
|
||||||
|
M to 16 M. There are memory mapped APIC devices in the system. The IO
|
||||||
|
Unit is at FEC00000 and the Local Unit is at FEE00000. The system BIOS
|
||||||
|
is remapped to 4G - 64K.
|
||||||
|
|
||||||
|
Note that the 639K endpoint of the first memory range is also the base
|
||||||
|
memory size reported in the BIOS data segment at 40:13.
|
||||||
|
|
||||||
|
Key to types: @dfn{ARM} is AddressRangeMemory, @dfn{ARR} is
|
||||||
|
AddressRangeReserved.
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.15 0.1 0.1 0.65
|
||||||
|
@item Base (Hex) @tab Length @tab Type @tab Description
|
||||||
|
|
||||||
|
@item 0000 0000 @tab 639K @tab ARM @tab Available Base memory -
|
||||||
|
typically the same value as is returned via the INT 12 function.
|
||||||
|
|
||||||
|
@item 0009 FC00 @tab 1K @tab ARR @tab Memory reserved for use by the
|
||||||
|
BIOS(s). This area typically includes the Extended BIOS data area.
|
||||||
|
|
||||||
|
@item 000F 0000 @tab 64K @tab ARR @tab System BIOS.
|
||||||
|
|
||||||
|
@item 0010 0000 @tab 7M @tab ARM @tab Extended memory, this is not
|
||||||
|
limited to the 64MB address range.
|
||||||
|
|
||||||
|
@item 0080 0000 @tab 8M @tab ARR @tab Chipset memory hole required to
|
||||||
|
support the LFB mapping at 12 MB.
|
||||||
|
|
||||||
|
@item 0100 0000 @tab 120M @tab ARM @tab Base board @sc{ram} relocated
|
||||||
|
above a chipset memory hole.
|
||||||
|
|
||||||
|
@item FE00 0000 @tab 4K @tab ARR @tab IO APIC memory mapped I/O at
|
||||||
|
FEC00000. Note the range of addresses required for an APIC device may
|
||||||
|
vary from base OEM to OEM.
|
||||||
|
|
||||||
|
@item FEE0 0000 @tab 4K @tab ARR @tab Local APIC memory mapped I/O at
|
||||||
|
FEE00000.
|
||||||
|
|
||||||
|
@item FFFF 0000 @tab 64K @tab ARR @tab Remapped System BIOS at end of
|
||||||
|
address space.
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
The following code segment is intended to describe the algorithm needed
|
||||||
|
when calling the Query System Address Map function. It is an
|
||||||
|
implementation example and uses non standard mechanisms.
|
||||||
|
|
||||||
|
@example
|
||||||
|
E820Present = FALSE;
|
||||||
|
Regs.ebx = 0;
|
||||||
|
do
|
||||||
|
@{
|
||||||
|
Regs.eax = 0xE820;
|
||||||
|
Regs.es = SEGMENT (&Descriptor);
|
||||||
|
Regs.di = OFFSET (&Descriptor);
|
||||||
|
Regs.ecx = sizeof (Descriptor);
|
||||||
|
Regs.edx = 'SMAP';
|
||||||
|
|
||||||
|
_int (0x15, Regs);
|
||||||
|
|
||||||
|
if ((Regs.eflags & EFLAGS_CARRY) || Regs.eax != 'SMAP')
|
||||||
|
@{
|
||||||
|
break;
|
||||||
|
@}
|
||||||
|
|
||||||
|
if (Regs.ecx < 20 || Regs.ecx > sizeof (Descriptor))
|
||||||
|
@{
|
||||||
|
/* bug in bios - all returned descriptors must be at
|
||||||
|
least 20 bytes long, and can not be larger than
|
||||||
|
the input buffer. */
|
||||||
|
break;
|
||||||
|
@}
|
||||||
|
|
||||||
|
E820Present = TRUE;
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
Add address range Descriptor.BaseAddress through
|
||||||
|
Descriptor.BaseAddress + Descriptor.Length
|
||||||
|
as type Descriptor.Type
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
@}
|
||||||
|
while (Regs.ebx != 0);
|
||||||
|
|
||||||
|
if (! E820Present)
|
||||||
|
@{
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
call INT 15H, AX E801h and/or INT 15H, AH=88h to obtain old style
|
||||||
|
memory information
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
@}
|
||||||
|
@end example
|
||||||
|
|
||||||
|
|
||||||
@node Get Large Memory Size
|
@node Get Large Memory Size
|
||||||
@subsection INT 15H, AX=E801h interrupt call
|
@subsection INT 15H, AX=E801h interrupt call
|
||||||
|
|
||||||
mem64mb.html
|
Real mode only.
|
||||||
|
|
||||||
|
Originally defined for EISA servers, this interface is capable of
|
||||||
|
reporting up to 4 GB of @sc{ram}. While not nearly as flexible as
|
||||||
|
E820h, it is present in many more systems.
|
||||||
|
|
||||||
|
Input:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.15 0.25 0.6
|
||||||
|
@item @code{AX} @tab Function Code @tab E801h
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.15 0.25 0.6
|
||||||
|
@item @code{CF} @tab Carry Flag @tab Non-Carry - indicates no error.
|
||||||
|
|
||||||
|
@item @code{AX} @tab Extended 1 @tab Number of contiguous KB between 1
|
||||||
|
and 16 MB, maximum 0x3C00 = 15 MB.
|
||||||
|
|
||||||
|
@item @code{BX} @tab Extended 2 @tab Number of contiguous 64KB blocks
|
||||||
|
between 16 MB and 4GB.
|
||||||
|
|
||||||
|
@item @code{CX} @tab Configured 1 @tab Number of contiguous KB between 1
|
||||||
|
and 16 MB, maximum 0x3c00 = 15 MB.
|
||||||
|
|
||||||
|
@item @code{DX} @tab Configured 2 @tab Number of contiguous 64KB blocks
|
||||||
|
between 16 MB and 4 GB.
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
Not sure what this difference between the @dfn{Extended} and
|
||||||
|
@dfn{Configured} numbers are, but they appear to be identical, as
|
||||||
|
reported from the BIOS.
|
||||||
|
|
||||||
|
It is possible for a machine using this interface to report a memory
|
||||||
|
hole just under 16 MB (Count 1 is less than 15 MB, but Count 2 is
|
||||||
|
non-zero).
|
||||||
|
|
||||||
|
|
||||||
@node Get Extended Memory Size
|
@node Get Extended Memory Size
|
||||||
@subsection INT 15H, AX=88h interrupt call
|
@subsection INT 15H, AX=88h interrupt call
|
||||||
|
|
||||||
mem64mb.html
|
Real mode only.
|
||||||
|
|
||||||
|
This interface is quite primitive. It returns a single value for
|
||||||
|
contiguous memory above 1 MB. The biggest limitation is that the value
|
||||||
|
returned is a 16-bit value, in KB, so it has a maximum saturation of
|
||||||
|
just under 64 MB even presuming it returns as much as it can. On some
|
||||||
|
systems, it won't return anything above the 16 MB boundary.
|
||||||
|
|
||||||
|
The one useful point is that it works on every PC available.
|
||||||
|
|
||||||
|
Input:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.15 0.25 0.6
|
||||||
|
@item @code{AH} @tab Function Code @tab 88h
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.15 0.25 0.6
|
||||||
|
@item @code{CF} @tab Carry Flag @tab Non-Carry - indicates no error.
|
||||||
|
|
||||||
|
@item @code{AX} @tab Memory Count @tab Number of contiguous KB above 1
|
||||||
|
MB.
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
|
||||||
@node Low-level disk I/O
|
@node Low-level disk I/O
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Makefile.in generated automatically by automake 1.3 from Makefile.am
|
# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
@ -10,8 +10,7 @@
|
||||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
SHELL = @SHELL@
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
|
@ -32,7 +31,7 @@ mandir = @mandir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
oldincludedir = /usr/include
|
oldincludedir = /usr/include
|
||||||
|
|
||||||
DISTDIR =
|
DESTDIR =
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
|
||||||
|
@ -47,6 +46,7 @@ INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_FLAG =
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
|
|
||||||
NORMAL_INSTALL = :
|
NORMAL_INSTALL = :
|
||||||
|
@ -70,6 +70,7 @@ host_vendor = @host_vendor@
|
||||||
sbingrub = @sbingrub@
|
sbingrub = @sbingrub@
|
||||||
stage2debug = @stage2debug@
|
stage2debug = @stage2debug@
|
||||||
|
|
||||||
|
|
||||||
pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
|
pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
|
||||||
pkgdata_DATA = stage2
|
pkgdata_DATA = stage2
|
||||||
CLEANFILES = $(pkgdata_DATA)
|
CLEANFILES = $(pkgdata_DATA)
|
||||||
|
@ -83,6 +84,7 @@ INCLUDES = -I$(top_srcdir)/shared_src
|
||||||
stage2_exec_LDADD = asm.o boot.o common.o char_io.o cmdline.o disk_io.o \
|
stage2_exec_LDADD = asm.o boot.o common.o char_io.o cmdline.o disk_io.o \
|
||||||
gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
|
gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
|
||||||
|
|
||||||
|
|
||||||
noinst_PROGRAMS = stage2.exec
|
noinst_PROGRAMS = stage2.exec
|
||||||
|
|
||||||
# FIXME: Automake hackery.
|
# FIXME: Automake hackery.
|
||||||
|
@ -103,21 +105,21 @@ stage2_exec_DEPENDENCIES = asm.o boot.o common.o char_io.o cmdline.o \
|
||||||
disk_io.o gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
|
disk_io.o gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
|
||||||
stage2_exec_LDFLAGS =
|
stage2_exec_LDFLAGS =
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
CCLD = $(CC)
|
||||||
|
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
DATA = $(pkgdata_DATA)
|
DATA = $(pkgdata_DATA)
|
||||||
|
|
||||||
DIST_COMMON = Makefile.am Makefile.in
|
DIST_COMMON = $(pkgdata_DATA) Makefile.am Makefile.in
|
||||||
|
|
||||||
|
|
||||||
GZIP = --best
|
GZIP_ENV = --best
|
||||||
SOURCES = $(stage2_exec_SOURCES)
|
SOURCES = $(stage2_exec_SOURCES)
|
||||||
OBJECTS = $(stage2_exec_OBJECTS)
|
OBJECTS = $(stage2_exec_OBJECTS)
|
||||||
|
|
||||||
all: Makefile $(PROGRAMS) $(DATA)
|
all: all-redirect
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .S .c .o .s
|
.SUFFIXES: .S .c .o .s
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu stage2/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu stage2/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
|
@ -154,26 +156,29 @@ install-pkgdataDATA: $(pkgdata_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
||||||
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
||||||
if test -f $(srcdir)/$$p; then \
|
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
||||||
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
|
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \
|
||||||
else if test -f $$p; then \
|
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \
|
||||||
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
|
|
||||||
$(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
|
|
||||||
fi; fi; \
|
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-pkgdataDATA:
|
uninstall-pkgdataDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
list='$(pkgdata_DATA)'; for p in $$list; do \
|
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
||||||
rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
|
echo " rm -f $(DESTDIR)$(pkgdatadir)/$$f"; \
|
||||||
|
rm -f $(DESTDIR)$(pkgdatadir)/$$f; \
|
||||||
done
|
done
|
||||||
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS)'; \
|
||||||
|
unique=`for i in $$list; do echo $$i; done | \
|
||||||
|
awk ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
here=`pwd` && cd $(srcdir) \
|
here=`pwd` && cd $(srcdir) \
|
||||||
&& mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
|
&& mkid -f$$here/ID $$unique $(LISP)
|
||||||
|
|
||||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
|
@ -206,9 +211,13 @@ distdir: $(DISTFILES)
|
||||||
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu stage2/Makefile
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu stage2/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
test -f $(distdir)/$$file \
|
if test -d $$d/$$file; then \
|
||||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||||
|| cp -p $$d/$$file $(distdir)/$$file; \
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||||
|
fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
|
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
|
||||||
|
@ -220,40 +229,53 @@ mostlyclean-depend:
|
||||||
clean-depend:
|
clean-depend:
|
||||||
|
|
||||||
distclean-depend:
|
distclean-depend:
|
||||||
|
-rm -rf .deps
|
||||||
|
|
||||||
maintainer-clean-depend:
|
maintainer-clean-depend:
|
||||||
-rm -rf .deps
|
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
@echo '$(COMPILE) -c $<'; \
|
@echo '$(COMPILE) -c $<'; \
|
||||||
$(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
|
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
|
||||||
|
@-cp .deps/$(*F).pp .deps/$(*F).P; \
|
||||||
|
tr ' ' '\012' < .deps/$(*F).pp \
|
||||||
|
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
||||||
|
>> .deps/$(*F).P; \
|
||||||
|
rm .deps/$(*F).pp
|
||||||
|
|
||||||
%.lo: %.c
|
%.lo: %.c
|
||||||
@echo '$(LTCOMPILE) -c $<'; \
|
@echo '$(LTCOMPILE) -c $<'; \
|
||||||
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
|
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
|
||||||
@-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
|
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
|
||||||
< .deps/$(*F).p > .deps/$(*F).P
|
< .deps/$(*F).pp > .deps/$(*F).P; \
|
||||||
@-rm -f .deps/$(*F).p
|
tr ' ' '\012' < .deps/$(*F).pp \
|
||||||
info:
|
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
||||||
dvi:
|
>> .deps/$(*F).P; \
|
||||||
check: all
|
rm -f .deps/$(*F).pp
|
||||||
$(MAKE)
|
info-am:
|
||||||
installcheck:
|
info: info-am
|
||||||
install-exec:
|
dvi-am:
|
||||||
@$(NORMAL_INSTALL)
|
dvi: dvi-am
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
installcheck-am:
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-exec-am:
|
||||||
|
install-exec: install-exec-am
|
||||||
|
|
||||||
install-data: install-pkgdataDATA
|
install-data-am: install-pkgdataDATA
|
||||||
@$(NORMAL_INSTALL)
|
install-data: install-data-am
|
||||||
|
|
||||||
install: install-exec install-data all
|
|
||||||
@:
|
|
||||||
|
|
||||||
uninstall: uninstall-pkgdataDATA
|
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
install: install-am
|
||||||
|
uninstall-am: uninstall-pkgdataDATA
|
||||||
|
uninstall: uninstall-am
|
||||||
|
all-am: Makefile $(PROGRAMS) $(DATA)
|
||||||
|
all-redirect: all-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
||||||
installdirs:
|
installdirs:
|
||||||
$(mkinstalldirs) $(DATADIR)$(pkgdatadir)
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
||||||
|
|
||||||
|
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
@ -263,40 +285,46 @@ clean-generic:
|
||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f Makefile $(DISTCLEANFILES)
|
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \
|
||||||
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
|
||||||
mostlyclean: mostlyclean-noinstPROGRAMS mostlyclean-compile \
|
|
||||||
mostlyclean-tags mostlyclean-depend mostlyclean-generic
|
mostlyclean-tags mostlyclean-depend mostlyclean-generic
|
||||||
|
|
||||||
clean: clean-noinstPROGRAMS clean-compile clean-tags clean-depend \
|
mostlyclean: mostlyclean-am
|
||||||
clean-generic mostlyclean
|
|
||||||
|
|
||||||
distclean: distclean-noinstPROGRAMS distclean-compile distclean-tags \
|
clean-am: clean-noinstPROGRAMS clean-compile clean-tags clean-depend \
|
||||||
distclean-depend distclean-generic clean
|
clean-generic mostlyclean-am
|
||||||
-rm -f config.status
|
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-noinstPROGRAMS \
|
clean: clean-am
|
||||||
|
|
||||||
|
distclean-am: distclean-noinstPROGRAMS distclean-compile distclean-tags \
|
||||||
|
distclean-depend distclean-generic clean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
|
||||||
|
maintainer-clean-am: maintainer-clean-noinstPROGRAMS \
|
||||||
maintainer-clean-compile maintainer-clean-tags \
|
maintainer-clean-compile maintainer-clean-tags \
|
||||||
maintainer-clean-depend maintainer-clean-generic \
|
maintainer-clean-depend maintainer-clean-generic \
|
||||||
distclean
|
distclean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
|
||||||
.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
|
.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
|
||||||
clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
|
clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
|
||||||
mostlyclean-compile distclean-compile clean-compile \
|
mostlyclean-compile distclean-compile clean-compile \
|
||||||
maintainer-clean-compile uninstall-pkgdataDATA install-pkgdataDATA tags \
|
maintainer-clean-compile uninstall-pkgdataDATA install-pkgdataDATA tags \
|
||||||
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
||||||
distdir mostlyclean-depend distclean-depend clean-depend \
|
distdir mostlyclean-depend distclean-depend clean-depend \
|
||||||
maintainer-clean-depend info dvi installcheck install-exec install-data \
|
maintainer-clean-depend info-am info dvi-am dvi check check-am \
|
||||||
install uninstall all installdirs mostlyclean-generic distclean-generic \
|
installcheck-am installcheck install-exec-am install-exec \
|
||||||
clean-generic maintainer-clean-generic clean mostlyclean distclean \
|
install-data-am install-data install-am install uninstall-am uninstall \
|
||||||
maintainer-clean
|
all-redirect all-am all install-strip installdirs mostlyclean-generic \
|
||||||
|
distclean-generic clean-generic maintainer-clean-generic clean \
|
||||||
|
mostlyclean distclean maintainer-clean
|
||||||
|
|
||||||
|
|
||||||
stage2.exec: $(stage2_exec_LDADD)
|
stage2.exec: $(stage2_exec_LDADD)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Makefile.in generated automatically by automake 1.3 from Makefile.am
|
# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
@ -10,8 +10,7 @@
|
||||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
SHELL = @SHELL@
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
|
@ -32,7 +31,7 @@ mandir = @mandir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
oldincludedir = /usr/include
|
oldincludedir = /usr/include
|
||||||
|
|
||||||
DISTDIR =
|
DESTDIR =
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
|
||||||
|
@ -47,6 +46,7 @@ INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_FLAG =
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
|
|
||||||
NORMAL_INSTALL = :
|
NORMAL_INSTALL = :
|
||||||
|
@ -70,6 +70,7 @@ host_vendor = @host_vendor@
|
||||||
sbingrub = @sbingrub@
|
sbingrub = @sbingrub@
|
||||||
stage2debug = @stage2debug@
|
stage2debug = @stage2debug@
|
||||||
|
|
||||||
|
|
||||||
pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
|
pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
|
||||||
pkgdata_DATA = $(stage2debug)
|
pkgdata_DATA = $(stage2debug)
|
||||||
EXTRA_DATA = stage2_debug
|
EXTRA_DATA = stage2_debug
|
||||||
|
@ -79,12 +80,14 @@ MOSTLYCLEANFILES = stage2_debug.exec
|
||||||
# We can't use builtins or standard includes.
|
# We can't use builtins or standard includes.
|
||||||
COMPILE = $(CC) -fno-builtin -nostdinc -DDEBUG=1 $(DEFS) $(INCLUDES) \
|
COMPILE = $(CC) -fno-builtin -nostdinc -DDEBUG=1 $(DEFS) $(INCLUDES) \
|
||||||
$(CPPFLAGS) $(CFLAGS)
|
$(CPPFLAGS) $(CFLAGS)
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/shared_src
|
INCLUDES = -I$(top_srcdir)/shared_src
|
||||||
|
|
||||||
# asm.o absolutely needs to come first!
|
# asm.o absolutely needs to come first!
|
||||||
stage2_debug_exec_LDADD = asm.o boot.o common.o char_io.o cmdline.o disk_io.o \
|
stage2_debug_exec_LDADD = asm.o boot.o common.o char_io.o cmdline.o disk_io.o \
|
||||||
gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
|
gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
|
||||||
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS = stage2_debug.exec
|
EXTRA_PROGRAMS = stage2_debug.exec
|
||||||
|
|
||||||
# FIXME: Automake hackery.
|
# FIXME: Automake hackery.
|
||||||
|
@ -104,21 +107,21 @@ cmdline.o disk_io.o gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o \
|
||||||
stage2.o bios.o
|
stage2.o bios.o
|
||||||
stage2_debug_exec_LDFLAGS =
|
stage2_debug_exec_LDFLAGS =
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
CCLD = $(CC)
|
||||||
|
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
DATA = $(pkgdata_DATA)
|
DATA = $(pkgdata_DATA)
|
||||||
|
|
||||||
DIST_COMMON = Makefile.am Makefile.in
|
DIST_COMMON = $(EXTRA_DATA) $(pkgdata_DATA) Makefile.am Makefile.in
|
||||||
|
|
||||||
|
|
||||||
GZIP = --best
|
GZIP_ENV = --best
|
||||||
SOURCES = $(stage2_debug_exec_SOURCES)
|
SOURCES = $(stage2_debug_exec_SOURCES)
|
||||||
OBJECTS = $(stage2_debug_exec_OBJECTS)
|
OBJECTS = $(stage2_debug_exec_OBJECTS)
|
||||||
|
|
||||||
all: Makefile $(DATA)
|
all: all-redirect
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .S .c .o .s
|
.SUFFIXES: .S .c .o .s
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu stage2_debug/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu stage2_debug/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
|
@ -146,26 +149,29 @@ install-pkgdataDATA: $(pkgdata_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
||||||
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
||||||
if test -f $(srcdir)/$$p; then \
|
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
||||||
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
|
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \
|
||||||
else if test -f $$p; then \
|
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \
|
||||||
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
|
|
||||||
$(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
|
|
||||||
fi; fi; \
|
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-pkgdataDATA:
|
uninstall-pkgdataDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
list='$(pkgdata_DATA)'; for p in $$list; do \
|
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
||||||
rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
|
echo " rm -f $(DESTDIR)$(pkgdatadir)/$$f"; \
|
||||||
|
rm -f $(DESTDIR)$(pkgdatadir)/$$f; \
|
||||||
done
|
done
|
||||||
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS)'; \
|
||||||
|
unique=`for i in $$list; do echo $$i; done | \
|
||||||
|
awk ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
here=`pwd` && cd $(srcdir) \
|
here=`pwd` && cd $(srcdir) \
|
||||||
&& mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
|
&& mkid -f$$here/ID $$unique $(LISP)
|
||||||
|
|
||||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
|
@ -198,9 +204,13 @@ distdir: $(DISTFILES)
|
||||||
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu stage2_debug/Makefile
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu stage2_debug/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
test -f $(distdir)/$$file \
|
if test -d $$d/$$file; then \
|
||||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||||
|| cp -p $$d/$$file $(distdir)/$$file; \
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||||
|
fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
|
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
|
||||||
|
@ -212,40 +222,53 @@ mostlyclean-depend:
|
||||||
clean-depend:
|
clean-depend:
|
||||||
|
|
||||||
distclean-depend:
|
distclean-depend:
|
||||||
|
-rm -rf .deps
|
||||||
|
|
||||||
maintainer-clean-depend:
|
maintainer-clean-depend:
|
||||||
-rm -rf .deps
|
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
@echo '$(COMPILE) -c $<'; \
|
@echo '$(COMPILE) -c $<'; \
|
||||||
$(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
|
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
|
||||||
|
@-cp .deps/$(*F).pp .deps/$(*F).P; \
|
||||||
|
tr ' ' '\012' < .deps/$(*F).pp \
|
||||||
|
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
||||||
|
>> .deps/$(*F).P; \
|
||||||
|
rm .deps/$(*F).pp
|
||||||
|
|
||||||
%.lo: %.c
|
%.lo: %.c
|
||||||
@echo '$(LTCOMPILE) -c $<'; \
|
@echo '$(LTCOMPILE) -c $<'; \
|
||||||
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
|
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
|
||||||
@-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
|
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
|
||||||
< .deps/$(*F).p > .deps/$(*F).P
|
< .deps/$(*F).pp > .deps/$(*F).P; \
|
||||||
@-rm -f .deps/$(*F).p
|
tr ' ' '\012' < .deps/$(*F).pp \
|
||||||
info:
|
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
||||||
dvi:
|
>> .deps/$(*F).P; \
|
||||||
check: all
|
rm -f .deps/$(*F).pp
|
||||||
$(MAKE)
|
info-am:
|
||||||
installcheck:
|
info: info-am
|
||||||
install-exec:
|
dvi-am:
|
||||||
@$(NORMAL_INSTALL)
|
dvi: dvi-am
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
installcheck-am:
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-exec-am:
|
||||||
|
install-exec: install-exec-am
|
||||||
|
|
||||||
install-data: install-pkgdataDATA
|
install-data-am: install-pkgdataDATA
|
||||||
@$(NORMAL_INSTALL)
|
install-data: install-data-am
|
||||||
|
|
||||||
install: install-exec install-data all
|
|
||||||
@:
|
|
||||||
|
|
||||||
uninstall: uninstall-pkgdataDATA
|
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
install: install-am
|
||||||
|
uninstall-am: uninstall-pkgdataDATA
|
||||||
|
uninstall: uninstall-am
|
||||||
|
all-am: Makefile $(DATA)
|
||||||
|
all-redirect: all-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
||||||
installdirs:
|
installdirs:
|
||||||
$(mkinstalldirs) $(DATADIR)$(pkgdatadir)
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
||||||
|
|
||||||
|
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
@ -255,36 +278,43 @@ clean-generic:
|
||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f Makefile $(DISTCLEANFILES)
|
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
mostlyclean-am: mostlyclean-compile mostlyclean-tags mostlyclean-depend \
|
||||||
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
|
||||||
mostlyclean: mostlyclean-compile mostlyclean-tags mostlyclean-depend \
|
|
||||||
mostlyclean-generic
|
mostlyclean-generic
|
||||||
|
|
||||||
clean: clean-compile clean-tags clean-depend clean-generic mostlyclean
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
distclean: distclean-compile distclean-tags distclean-depend \
|
clean-am: clean-compile clean-tags clean-depend clean-generic \
|
||||||
distclean-generic clean
|
mostlyclean-am
|
||||||
-rm -f config.status
|
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-compile maintainer-clean-tags \
|
clean: clean-am
|
||||||
|
|
||||||
|
distclean-am: distclean-compile distclean-tags distclean-depend \
|
||||||
|
distclean-generic clean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
|
||||||
|
maintainer-clean-am: maintainer-clean-compile maintainer-clean-tags \
|
||||||
maintainer-clean-depend maintainer-clean-generic \
|
maintainer-clean-depend maintainer-clean-generic \
|
||||||
distclean
|
distclean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
|
||||||
.PHONY: mostlyclean-compile distclean-compile clean-compile \
|
.PHONY: mostlyclean-compile distclean-compile clean-compile \
|
||||||
maintainer-clean-compile uninstall-pkgdataDATA install-pkgdataDATA tags \
|
maintainer-clean-compile uninstall-pkgdataDATA install-pkgdataDATA tags \
|
||||||
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
||||||
distdir mostlyclean-depend distclean-depend clean-depend \
|
distdir mostlyclean-depend distclean-depend clean-depend \
|
||||||
maintainer-clean-depend info dvi installcheck install-exec install-data \
|
maintainer-clean-depend info-am info dvi-am dvi check check-am \
|
||||||
install uninstall all installdirs mostlyclean-generic distclean-generic \
|
installcheck-am installcheck install-exec-am install-exec \
|
||||||
clean-generic maintainer-clean-generic clean mostlyclean distclean \
|
install-data-am install-data install-am install uninstall-am uninstall \
|
||||||
maintainer-clean
|
all-redirect all-am all install-strip installdirs mostlyclean-generic \
|
||||||
|
distclean-generic clean-generic maintainer-clean-generic clean \
|
||||||
|
mostlyclean distclean maintainer-clean
|
||||||
|
|
||||||
|
|
||||||
stage2_debug.exec: $(stage2_debug_exec_LDADD)
|
stage2_debug.exec: $(stage2_debug_exec_LDADD)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue