Integrate Red Bear boot and packaging updates
This commit is contained in:
@@ -102,7 +102,7 @@ include mk/redbear.mk
|
||||
|
||||
# Ensure Red Bear OS integration runs before repo cook and disk image creation
|
||||
$(BUILD)/harddrive.img: $(REDBEAR_TAG)
|
||||
$(BUILD)/redbear-live.iso: $(REDBEAR_TAG)
|
||||
$(LIVE_ISO): $(REDBEAR_TAG)
|
||||
$(REPO_TAG): $(REDBEAR_TAG)
|
||||
|
||||
env: prefix FORCE $(CONTAINER_TAG)
|
||||
|
||||
@@ -78,7 +78,7 @@ Red Bear OS now treats AMD and Intel machines as equal-priority hardware targets
|
||||
language in historical integration notes should be read as earlier sequencing context, not as the
|
||||
current platform policy.
|
||||
|
||||
The tracked desktop-capable target surface is now `redbear-full` / `redbear-live-full`, and
|
||||
The tracked desktop-capable target surface is now `redbear-full` / `redbear-live`, and
|
||||
runtime support claims remain evidence-qualified until compositor/session proof is stronger.
|
||||
|
||||
## Historical Phase Snapshot
|
||||
@@ -178,7 +178,7 @@ Requires a Linux x86_64 host with Rust nightly, QEMU, and standard build tools.
|
||||
make all CONFIG_NAME=redbear-full # Tracked desktop-capable target
|
||||
make all CONFIG_NAME=redbear-mini # Tracked minimal non-desktop target
|
||||
make all CONFIG_NAME=redbear-full-grub # Broader integration slice with GRUB boot manager
|
||||
make live CONFIG_NAME=redbear-live-full # Live install ISO for real bare metal (redbear-live.iso)
|
||||
make live CONFIG_NAME=redbear-live # Full live ISO for real bare metal
|
||||
make live CONFIG_NAME=redbear-live-mini # Tiny bare-metal live ISO for minimal/recovery use (~256 MiB image)
|
||||
make qemu CONFIG_NAME=redbear-full # Boot the tracked desktop-capable target in QEMU
|
||||
```
|
||||
|
||||
@@ -36,7 +36,7 @@ echo " Defaults to the basename of FILESYSTEM_CONFIG, or 'redbear-
|
||||
echo " config/ARCH/CONFIG.toml"
|
||||
echo " If you specify both CONFIG and FILESYSTEM_CONFIG, it is not"
|
||||
echo " necessary that they match, but it is recommended."
|
||||
echo " Examples: ./build.sh -c demo live - make build/x86_64/demo/redbear-live.iso"
|
||||
echo " Examples: ./build.sh -c demo live - make build/x86_64/demo.iso"
|
||||
echo " ./build.sh -6 qemu - make build/i686/redbear-kde/harddrive.img and"
|
||||
echo " and run it in qemu"
|
||||
echo " NOTE: If you do not change ARCH or CONFIG very often, edit mk/config.mk"
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Red Bear OS GRUB Live Mini Configuration
|
||||
# Canonical GRUB-backed live ISO for the stripped console/recovery target.
|
||||
#
|
||||
# Build: make live CONFIG_NAME=redbear-grub-live-mini
|
||||
|
||||
include = ["redbear-live-mini.toml", "redbear-grub.toml"]
|
||||
|
||||
[general]
|
||||
efi_partition_size = 16
|
||||
@@ -1,14 +1,7 @@
|
||||
# Red Bear OS Live Full Configuration
|
||||
# Live ISO variant for the primary full desktop/session target on real bare metal.
|
||||
# Legacy compatibility alias for the canonical full live target.
|
||||
#
|
||||
# Build: make live CONFIG_NAME=redbear-live-full
|
||||
# This ISO is for real bare-metal boot/install/recovery, not VM/QEMU use.
|
||||
# Preferred build: make live CONFIG_NAME=redbear-live
|
||||
# Legacy build: make live CONFIG_NAME=redbear-live-full
|
||||
|
||||
include = ["redbear-full.toml"]
|
||||
|
||||
[general]
|
||||
filesystem_size = 4096
|
||||
|
||||
[packages]
|
||||
cub = {}
|
||||
redbear-meta = {}
|
||||
include = ["redbear-live.toml"]
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Red Bear OS Live Mini Configuration with GRUB Boot Manager
|
||||
# Live ISO for stripped console/recovery target with installer-native GRUB chainload.
|
||||
# Legacy compatibility alias for the canonical GRUB mini live target.
|
||||
#
|
||||
# Build: make live CONFIG_NAME=redbear-live-mini-grub
|
||||
# Preferred build: make live CONFIG_NAME=redbear-grub-live-mini
|
||||
# Legacy build: make live CONFIG_NAME=redbear-live-mini-grub
|
||||
|
||||
include = ["redbear-live-mini.toml", "redbear-grub.toml"]
|
||||
include = ["redbear-grub-live-mini.toml"]
|
||||
|
||||
+100
-53
@@ -4,70 +4,117 @@
|
||||
# Build: make live CONFIG_NAME=redbear-live-mini
|
||||
#
|
||||
# Target contract:
|
||||
# - keep full non-graphics system surface from redbear-full
|
||||
# - strip graphics/desktop session stack
|
||||
# - strip network firmware payload
|
||||
# - keep a text-login live/recovery surface only
|
||||
# - avoid the shared firmware/input/device-service stack from redbear-minimal
|
||||
# - ship no graphics packages/services and no linux-firmware payload
|
||||
|
||||
include = ["redbear-full.toml"]
|
||||
include = ["minimal.toml", "redbear-legacy-base.toml", "redbear-netctl.toml"]
|
||||
|
||||
[general]
|
||||
filesystem_size = 3072
|
||||
filesystem_size = 768
|
||||
|
||||
[packages]
|
||||
# Strip firmware payload from mini live image.
|
||||
redbear-firmware = "ignore"
|
||||
firmware-loader = "ignore"
|
||||
# Red Bear OS branding and host utilities.
|
||||
redbear-release = {}
|
||||
redbear-hwutils = {}
|
||||
|
||||
# Strip graphics/session surface.
|
||||
installer-gui = "ignore"
|
||||
redbear-authd = "ignore"
|
||||
redbear-session-launch = "ignore"
|
||||
redbear-greeter = "ignore"
|
||||
libwayland = "ignore"
|
||||
wayland-protocols = "ignore"
|
||||
libxkbcommon = "ignore"
|
||||
xkeyboard-config = "ignore"
|
||||
libevdev = "ignore"
|
||||
libinput = "ignore"
|
||||
seatd = "ignore"
|
||||
qtbase = "ignore"
|
||||
qtdeclarative = "ignore"
|
||||
qtsvg = "ignore"
|
||||
qtwayland = "ignore"
|
||||
qt6-wayland-smoke = "ignore"
|
||||
kf6-extra-cmake-modules = "ignore"
|
||||
kf6-kcoreaddons = "ignore"
|
||||
kf6-kconfig = "ignore"
|
||||
kf6-ki18n = "ignore"
|
||||
kf6-kcolorscheme = "ignore"
|
||||
kf6-kauth = "ignore"
|
||||
kf6-kwindowsystem = "ignore"
|
||||
kf6-knotifications = "ignore"
|
||||
kf6-kconfigwidgets = "ignore"
|
||||
kf6-kcrash = "ignore"
|
||||
kf6-kdbusaddons = "ignore"
|
||||
kf6-kglobalaccel = "ignore"
|
||||
kf6-kservice = "ignore"
|
||||
kf6-kpackage = "ignore"
|
||||
kf6-kiconthemes = "ignore"
|
||||
kirigami = "ignore"
|
||||
kf6-kio = "ignore"
|
||||
kf6-kdeclarative = "ignore"
|
||||
kf6-kcmutils = "ignore"
|
||||
kf6-kwayland = "ignore"
|
||||
kdecoration = "ignore"
|
||||
kwin = "ignore"
|
||||
redox-drm = "ignore"
|
||||
mesa = "ignore"
|
||||
libdrm = "ignore"
|
||||
# Redox-native netctl tooling.
|
||||
redbear-netctl = {}
|
||||
redbear-netctl-console = {}
|
||||
redbear-netstat = {}
|
||||
redbear-traceroute = {}
|
||||
redbear-mtr = {}
|
||||
redbear-nmap = {}
|
||||
|
||||
# Diagnostics and shell-side utilities.
|
||||
mc = {}
|
||||
redbear-info = {}
|
||||
|
||||
# Keep package builder utility in live environment.
|
||||
cub = {}
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/20_display.service"
|
||||
path = "/etc/netctl/active"
|
||||
data = "wired-dhcp\n"
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_console"
|
||||
data = ""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/20_greeter.service"
|
||||
data = ""
|
||||
path = "/usr/lib/init.d/29_activate_console.service"
|
||||
data = """
|
||||
[unit]
|
||||
description = "Activate console (text-only no-op)"
|
||||
requires_weak = [
|
||||
"00_base.target",
|
||||
]
|
||||
|
||||
[service]
|
||||
cmd = "true"
|
||||
type = "oneshot"
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_console.service"
|
||||
data = """
|
||||
[unit]
|
||||
description = "Console terminals"
|
||||
requires_weak = [
|
||||
"29_activate_console.service",
|
||||
]
|
||||
|
||||
[service]
|
||||
cmd = "getty"
|
||||
args = ["/scheme/tty"]
|
||||
type = "oneshot_async"
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/31_debug_console.service"
|
||||
data = """
|
||||
[unit]
|
||||
description = "Debug console"
|
||||
requires_weak = [
|
||||
"00_base.target",
|
||||
]
|
||||
|
||||
[service]
|
||||
cmd = "getty"
|
||||
args = ["/scheme/debug/no-preserve", "-J"]
|
||||
type = "oneshot_async"
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/motd"
|
||||
data = """
|
||||
########## Red Bear OS ##########
|
||||
# Login with the following: #
|
||||
# `user` #
|
||||
# `root`:`password` #
|
||||
##################################
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pcid.d/ihdgd.toml"
|
||||
data = """
|
||||
# redbear-live-mini: text-only image, disable Intel HD graphics auto-spawn
|
||||
[[drivers]]
|
||||
name = "disabled ihdgd sentinel"
|
||||
class = 0xFF
|
||||
vendor = 0xFFFF
|
||||
device = 0xFFFF
|
||||
command = ["ihdgd"]
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pcid.d/virtio-gpud.toml"
|
||||
data = """
|
||||
# redbear-live-mini: text-only image, disable virtio GPU auto-spawn
|
||||
[[drivers]]
|
||||
name = "disabled virtio-gpud sentinel"
|
||||
class = 0xFF
|
||||
vendor = 0xFFFF
|
||||
device = 0xFFFF
|
||||
command = ["virtio-gpud"]
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Red Bear OS Live Configuration
|
||||
# Canonical full live ISO target for the desktop/session surface on real bare metal.
|
||||
#
|
||||
# Build: make live CONFIG_NAME=redbear-live
|
||||
# This ISO is for real bare-metal boot/install/recovery, not VM/QEMU use.
|
||||
|
||||
include = ["redbear-full.toml"]
|
||||
|
||||
[general]
|
||||
filesystem_size = 3072
|
||||
efi_partition_size = 1
|
||||
|
||||
[packages]
|
||||
cub = {}
|
||||
redbear-meta = {}
|
||||
@@ -129,6 +129,15 @@ The success criterion is therefore:
|
||||
> We can pull renewed upstream sources every day, reapply Red Bear’s local overlays, and still
|
||||
> build the project successfully.
|
||||
|
||||
### Local recipe priority vs upstream WIP
|
||||
|
||||
When Red Bear maintains a local recipe and upstream contains a package with the same name under
|
||||
`recipes/wip/*`, Red Bear must prefer the local recipe unconditionally.
|
||||
|
||||
- Use the local overlay symlink in `recipes/*/<name> -> ../../local/recipes/...`
|
||||
- Do not switch back to upstream WIP for active Red Bear builds
|
||||
- Re-evaluate only when upstream package exits WIP and becomes a normal maintained package
|
||||
|
||||
```bash
|
||||
# Automated sync (preferred):
|
||||
./local/scripts/sync-upstream.sh # Fetch + rebase + check patches
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
diff --git a/src/main.rs b/src/main.rs
|
||||
index b2e2736..a6a9474 100644
|
||||
--- a/src/main.rs
|
||||
+++ b/src/main.rs
|
||||
@@ -500,33 +500,62 @@ pub extern "C" fn main() -> ! {
|
||||
|
||||
print!("live: 0/{} MiB", size / MIBI as u64);
|
||||
|
||||
- let ptr = os.alloc_zeroed_page_aligned(size as usize);
|
||||
- if ptr.is_null() {
|
||||
- panic!("Failed to allocate memory for live");
|
||||
- }
|
||||
-
|
||||
- let live = unsafe { slice::from_raw_parts_mut(ptr, size as usize) };
|
||||
-
|
||||
- let mut i = 0;
|
||||
- for chunk in live.chunks_mut(MIBI) {
|
||||
- print!("\rlive: {}/{} MiB", i / MIBI as u64, size / MIBI as u64);
|
||||
- i += unsafe {
|
||||
- fs.disk
|
||||
- .read_at(fs.block + i / redoxfs::BLOCK_SIZE, chunk)
|
||||
- .expect("Failed to read live disk") as u64
|
||||
- };
|
||||
- }
|
||||
- println!("\rlive: {}/{} MiB", i / MIBI as u64, size / MIBI as u64);
|
||||
-
|
||||
- println!("Switching to live disk");
|
||||
- unsafe {
|
||||
- LIVE_OPT = Some((fs.block, slice::from_raw_parts_mut(ptr, size as usize)));
|
||||
- }
|
||||
+ let live_size = match usize::try_from(size) {
|
||||
+ Ok(live_size) => live_size,
|
||||
+ Err(_) => {
|
||||
+ println!("\rlive: disabled (image too large for bootloader address space)");
|
||||
+ live = false;
|
||||
+ 0
|
||||
+ }
|
||||
+ };
|
||||
|
||||
- area_add(OsMemoryEntry {
|
||||
- base: live.as_ptr() as u64,
|
||||
- size: live.len() as u64,
|
||||
- kind: OsMemoryKind::Reserved,
|
||||
- });
|
||||
+ let ptr = if live {
|
||||
+ os.alloc_zeroed_page_aligned(live_size)
|
||||
+ } else {
|
||||
+ ptr::null_mut()
|
||||
+ };
|
||||
+
|
||||
+ if live && ptr.is_null() {
|
||||
+ println!(
|
||||
+ "\rlive: disabled (unable to allocate {} MiB upfront)",
|
||||
+ size / MIBI as u64
|
||||
+ );
|
||||
+ live = false;
|
||||
+ }
|
||||
+
|
||||
+ let live = if live {
|
||||
+ Some(unsafe { slice::from_raw_parts_mut(ptr, live_size) })
|
||||
+ } else {
|
||||
+ println!("Continuing without live preload");
|
||||
+ None
|
||||
+ };
|
||||
+
|
||||
+ if let Some(live) = live {
|
||||
+ let mut i = 0;
|
||||
+ for chunk in live.chunks_mut(MIBI) {
|
||||
+ print!("\rlive: {}/{} MiB", i / MIBI as u64, size / MIBI as u64);
|
||||
+ i += unsafe {
|
||||
+ fs.disk
|
||||
+ .read_at(fs.block + i / redoxfs::BLOCK_SIZE, chunk)
|
||||
+ .expect("Failed to read live disk") as u64
|
||||
+ };
|
||||
+ }
|
||||
+ println!("\rlive: {}/{} MiB", i / MIBI as u64, size / MIBI as u64);
|
||||
+
|
||||
+ println!("Switching to live disk");
|
||||
+ unsafe {
|
||||
+ LIVE_OPT = Some((fs.block, slice::from_raw_parts_mut(ptr, live_size)));
|
||||
+ }
|
||||
+
|
||||
+ area_add(OsMemoryEntry {
|
||||
+ base: live.as_ptr() as u64,
|
||||
+ size: live.len() as u64,
|
||||
+ kind: OsMemoryKind::Reserved,
|
||||
+ });
|
||||
+
|
||||
+ Some(live)
|
||||
+ } else {
|
||||
+ None
|
||||
+ }
|
||||
-
|
||||
- Some(live)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
@@ -0,0 +1,60 @@
|
||||
diff --git a/src/os/uefi/device.rs b/src/os/uefi/device.rs
|
||||
index 4b0bf31..90a97b8 100644
|
||||
--- a/src/os/uefi/device.rs
|
||||
+++ b/src/os/uefi/device.rs
|
||||
@@ -46,6 +46,8 @@ fn device_path_relation(a_path: &DevicePath, b_path: &DevicePath) -> DevicePath
|
||||
}
|
||||
|
||||
fn esp_live_image(esp_handle: Handle, esp_device_path: &DevicePath) -> Option<Vec<u8>> {
|
||||
+ const MAX_LIVE_IMAGE_PRELOAD: usize = 128 * 1024 * 1024;
|
||||
+
|
||||
let mut esp_fs = match FileSystem::handle_protocol(esp_handle) {
|
||||
Ok(esp_fs) => esp_fs,
|
||||
Err(err) => {
|
||||
@@ -87,9 +89,37 @@ fn esp_live_image(esp_handle: Handle, esp_device_path: &DevicePath) -> Option<V
|
||||
};
|
||||
|
||||
let mut buffer = Vec::new();
|
||||
+ let mut chunk = [0_u8; 64 * 1024];
|
||||
+
|
||||
+ loop {
|
||||
+ let read = match live_image.read(&mut chunk) {
|
||||
+ Ok(read) => read,
|
||||
+ Err(err) => {
|
||||
+ log::warn!(
|
||||
+ "Failed while reading {}\\redox-live.iso: {:?}",
|
||||
+ device_path_to_string(esp_device_path),
|
||||
+ err
|
||||
+ );
|
||||
+ return None;
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ if read == 0 {
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
- live_image.read_to_end(&mut buffer).unwrap();
|
||||
+ if buffer.len().saturating_add(read) > MAX_LIVE_IMAGE_PRELOAD {
|
||||
+ log::warn!(
|
||||
+ "Skipping {}\\redox-live.iso preload: file exceeds {} MiB safety limit",
|
||||
+ device_path_to_string(esp_device_path),
|
||||
+ MAX_LIVE_IMAGE_PRELOAD / 1024 / 1024
|
||||
+ );
|
||||
+ return None;
|
||||
+ }
|
||||
+
|
||||
+ buffer.extend_from_slice(&chunk[..read]);
|
||||
+ }
|
||||
|
||||
Some(buffer)
|
||||
}
|
||||
@@ -130,7 +160,7 @@ pub fn disk_device_priority() -> Vec<DiskDevice> {
|
||||
return vec![DiskDevice {
|
||||
handle: esp_handle,
|
||||
// Support both a copy of livedisk.iso and a standalone redoxfs partition
|
||||
- partition_offset: if &buffer[512..520] == b"EFI PART" {
|
||||
+ partition_offset: if buffer.len() >= 520 && &buffer[512..520] == b"EFI PART" {
|
||||
//TODO: get block from partition table
|
||||
2 * crate::MIBI as u64
|
||||
} else {
|
||||
@@ -5,7 +5,7 @@
|
||||
# The resulting grub.efi chainloads the Redox bootloader.
|
||||
#
|
||||
# Output: /usr/lib/boot/grub.efi, /usr/lib/boot/grub.cfg
|
||||
# Required local module: local/recipes/core/grub/modules/redoxfs.mod
|
||||
# Required local source: ../grub-redoxfs/src/{redoxfs.c,redoxfs.h,seahash.c}
|
||||
#
|
||||
# Build: make r.grub
|
||||
# Install into image (Phase 1): ./local/scripts/install-grub.sh build/x86_64/harddrive.img
|
||||
@@ -37,6 +37,15 @@ for tool in gcc make bison flex; do
|
||||
fi
|
||||
done
|
||||
|
||||
# We patch Makefile.core.def for local RedoxFS support. Regenerate autotools
|
||||
# files once to avoid version-skew failures in incremental rebuild rules.
|
||||
for tool in autoreconf automake aclocal autoconf; do
|
||||
if ! command -v "${tool}" &>/dev/null; then
|
||||
echo "ERROR: Required host autotools component '${tool}' not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Out-of-tree build (GRUB requires this for some configurations)
|
||||
mkdir -p "${COOKBOOK_BUILD}/grub-build" || exit 1
|
||||
cd "${COOKBOOK_BUILD}/grub-build" || exit 1
|
||||
@@ -44,6 +53,44 @@ cd "${COOKBOOK_BUILD}/grub-build" || exit 1
|
||||
# GRUB release tarballs miss extra_deps.lst (normally generated by autogen.sh)
|
||||
touch "${COOKBOOK_SOURCE}/grub-core/extra_deps.lst" || exit 1
|
||||
|
||||
# Inject local RedoxFS GRUB module source from sibling tree: ../grub-redoxfs
|
||||
RBOS_ROOT="$(cd "${COOKBOOK_RECIPE}/../../../.." && pwd)"
|
||||
GRUB_REDOXFS_ROOT="${RBOS_ROOT}/../grub-redoxfs"
|
||||
GRUB_REDOXFS_SRC="${GRUB_REDOXFS_ROOT}/src"
|
||||
|
||||
for f in redoxfs.c redoxfs.h seahash.c; do
|
||||
if [ ! -f "${GRUB_REDOXFS_SRC}/${f}" ]; then
|
||||
echo "ERROR: missing ${GRUB_REDOXFS_SRC}/${f}" >&2
|
||||
echo "grub-redoxfs source tree must exist at: ${GRUB_REDOXFS_ROOT}" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
cp "${GRUB_REDOXFS_SRC}/redoxfs.c" "${COOKBOOK_SOURCE}/grub-core/fs/redoxfs.c"
|
||||
cp "${GRUB_REDOXFS_SRC}/seahash.c" "${COOKBOOK_SOURCE}/grub-core/fs/seahash.c"
|
||||
cp "${GRUB_REDOXFS_SRC}/redoxfs.h" "${COOKBOOK_SOURCE}/grub-core/fs/redoxfs.h"
|
||||
mkdir -p "${COOKBOOK_SOURCE}/include/grub"
|
||||
cp "${GRUB_REDOXFS_SRC}/redoxfs.h" "${COOKBOOK_SOURCE}/include/grub/redoxfs.h"
|
||||
echo "Injected GRUB RedoxFS sources from ${GRUB_REDOXFS_SRC}"
|
||||
|
||||
MAKEFILE_CORE_DEF="${COOKBOOK_SOURCE}/grub-core/Makefile.core.def"
|
||||
if ! grep -q "name = redoxfs;" "${MAKEFILE_CORE_DEF}"; then
|
||||
cat >> "${MAKEFILE_CORE_DEF}" <<'EOF'
|
||||
|
||||
module = {
|
||||
name = redoxfs;
|
||||
common = fs/redoxfs.c;
|
||||
cflags = '-DGRUB_BUILD';
|
||||
};
|
||||
EOF
|
||||
echo "Registered redoxfs module in Makefile.core.def"
|
||||
fi
|
||||
|
||||
(
|
||||
cd "${COOKBOOK_SOURCE}"
|
||||
autoreconf -fiv
|
||||
)
|
||||
|
||||
# Configure for host, targeting x86_64 EFI platform output.
|
||||
# --target=x86_64 means "produce boot images for x86_64"
|
||||
# --with-platform=efi means "EFI platform output"
|
||||
@@ -118,34 +165,12 @@ for m in \
|
||||
add_mod "${m}"
|
||||
done
|
||||
|
||||
# RedoxFS module is mandatory for Red Bear GRUB first-class support.
|
||||
# Prefer local tree artifact, then fall back to staged sysroot copy.
|
||||
REDOXFS_MOD_CANDIDATES=(
|
||||
"${COOKBOOK_RECIPE}/modules/redoxfs.mod"
|
||||
"${COOKBOOK_SYSROOT}/usr/lib/grub/x86_64-efi/redoxfs.mod"
|
||||
)
|
||||
|
||||
REDOXFS_MOD=""
|
||||
for cand in "${REDOXFS_MOD_CANDIDATES[@]}"; do
|
||||
if [ -f "${cand}" ]; then
|
||||
REDOXFS_MOD="${cand}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "${REDOXFS_MOD}" ]; then
|
||||
echo "ERROR: redoxfs.mod not found." >&2
|
||||
echo "Expected one of:" >&2
|
||||
for cand in "${REDOXFS_MOD_CANDIDATES[@]}"; do
|
||||
echo " - ${cand}" >&2
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "${REDOXFS_MOD}" "${MOD_DIR}/redoxfs.mod"
|
||||
echo "Using mandatory RedoxFS GRUB module: ${REDOXFS_MOD}"
|
||||
if ! printf '%s\n' "${SELECTED_MODULES[@]}" | grep -qx "redoxfs"; then
|
||||
if has_mod "redoxfs"; then
|
||||
SELECTED_MODULES+=("redoxfs")
|
||||
else
|
||||
echo "ERROR: redoxfs.mod was not produced by GRUB build" >&2
|
||||
echo "Expected at: ${MOD_DIR}/redoxfs.mod" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${#SELECTED_MODULES[@]}" -eq 0 ]; then
|
||||
|
||||
@@ -1,355 +1,380 @@
|
||||
-*- Text -*-
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
This is the GRUB. Welcome.
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
This file contains instructions for compiling and installing the GRUB.
|
||||
The following shell commands:
|
||||
|
||||
Where this document refers to packages names, they are named according to the
|
||||
Debian 11 package repositories. These packages can be found by searching
|
||||
https://packages.debian.org/.
|
||||
test -f configure || ./bootstrap
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
The Requirements
|
||||
================
|
||||
should configure, build, and install this package. The first line,
|
||||
which bootstraps, is intended for developers; when building from
|
||||
distribution tarballs it does nothing and can be skipped. A package
|
||||
might name the bootstrapping script differently; if the name is
|
||||
‘autogen.sh’, for example, the first line should say ‘./autogen.sh’
|
||||
instead of ‘./bootstrap’.
|
||||
|
||||
GRUB depends on some software packages installed into your system. If
|
||||
you don't have any of them, please obtain and install them before
|
||||
configuring the GRUB.
|
||||
The following more-detailed instructions are generic; see the
|
||||
‘README’ file for instructions specific to this package. Some packages
|
||||
provide this ‘INSTALL’ file but do not implement all of the features
|
||||
documented below. The lack of an optional feature in a given package is
|
||||
not necessarily a bug. More recommendations for GNU packages can be
|
||||
found in the GNU Coding Standards.
|
||||
|
||||
* GCC 5.1.0 or later
|
||||
Experimental support for clang 8.0.0 or later (results in much bigger binaries)
|
||||
for i386, x86_64, arm (including thumb), arm64, mips(el), powerpc, sparc64
|
||||
* GNU Make
|
||||
* GNU Bison 2.3 or later
|
||||
* GNU gettext
|
||||
* GNU binutils 2.9.1.0.23 or later
|
||||
* Flex 2.5.35 or later
|
||||
* pkg-config
|
||||
* GNU patch
|
||||
* Other standard GNU/Unix tools
|
||||
* a libc with large file support (e.g. glibc 2.1 or later)
|
||||
Many packages have scripts meant for developers instead of ordinary
|
||||
builders, as they may use developer tools that are less commonly
|
||||
installed, or they may access the network, which has privacy
|
||||
implications. These scripts attempt to bootstrap by building the
|
||||
‘configure’ script and related files, possibly using developer tools or
|
||||
the network. Because the output of bootstrapping is system-independent,
|
||||
it is normally run by a package developer so that its output can be put
|
||||
into the distribution tarball and ordinary builders and users need not
|
||||
bootstrap. Some packages have commands like ‘./autopull.sh’ and
|
||||
‘./autogen.sh’ that you can run instead of ‘./bootstrap’, for more
|
||||
fine-grained control over bootstrapping.
|
||||
|
||||
On GNU/Linux, you also need:
|
||||
The ‘configure’ script attempts to guess correct values for various
|
||||
system-dependent variables used during compilation. It uses those
|
||||
values to create a ‘Makefile’ in each directory of the package. It may
|
||||
also create one or more ‘.h’ files containing system-dependent
|
||||
definitions. Finally, it creates a script ‘config.status’ that you can
|
||||
run in the future to recreate the current configuration, and a file
|
||||
‘config.log’ containing output useful for debugging ‘configure’.
|
||||
|
||||
* libdevmapper 1.02.34 or later (recommended)
|
||||
It can also use an optional file (typically called ‘config.cache’ and
|
||||
enabled with ‘--cache-file=config.cache’ or simply ‘-C’) that saves the
|
||||
results of its tests to speed up reconfiguring. Caching is disabled by
|
||||
default to prevent problems with accidental use of stale cache files.
|
||||
|
||||
For optional grub-emu features, you need:
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how ‘configure’ could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the ‘README’ so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point ‘config.cache’ contains results you don’t want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
* SDL (recommended)
|
||||
* libpciaccess (optional)
|
||||
The ‘autoconf’ program generates ‘configure’ from the file
|
||||
‘configure.ac’. Normally you should edit ‘configure.ac’ instead of
|
||||
editing ‘configure’ directly.
|
||||
|
||||
To build GRUB's graphical terminal (gfxterm), you need:
|
||||
The simplest way to compile this package is:
|
||||
|
||||
* FreeType 2.1.5 or later
|
||||
* GNU Unifont
|
||||
1. ‘cd’ to the directory containing the package’s source code.
|
||||
|
||||
To build grub-mkfont the unicode fonts are required (xfonts-unifont package
|
||||
on Debian).
|
||||
2. If this is a developer checkout and file ‘configure’ does not yet
|
||||
exist, run the bootstrapping script (typically ‘./bootstrap’ or
|
||||
‘./autogen.sh’) to bootstrap and create the file. You may need
|
||||
special developer tools and network access to bootstrap, and the
|
||||
network access may have privacy implications.
|
||||
|
||||
If you use a development snapshot or want to hack on GRUB you may
|
||||
need the following.
|
||||
3. Type ‘./configure’ to configure the package for your system. This
|
||||
might take a while. While running, ‘configure’ prints messages
|
||||
telling which features it is checking for.
|
||||
|
||||
* Python 3 (NOTE: python 2.6 should still work, but it's not tested)
|
||||
* Autoconf 2.64 or later
|
||||
* Automake 1.14 or later
|
||||
4. Type ‘make’ to compile the package.
|
||||
|
||||
Your distro may package cross-compiling toolchains such as the following
|
||||
incomplete list on Debian: gcc-aarch64-linux-gnu, gcc-arm-linux-gnueabihf,
|
||||
gcc-mips-linux-gnu, gcc-mipsel-linux-gnu, gcc-powerpc64-linux-gnu,
|
||||
gcc-riscv64-linux-gnu, gcc-sparc64-linux-gnu, mingw-w64 and mingw-w64-tools.
|
||||
5. Optionally, type ‘make check’ to run any self-tests that come with
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
More cross compiling toolchains can be found at the following trusted sites:
|
||||
6. Type ‘make install’ to install the programs and any data files and
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the ‘make install’ phase executed with root
|
||||
privileges.
|
||||
|
||||
* https://mirrors.kernel.org/pub/tools/crosstool/
|
||||
* https://toolchains.bootlin.com/
|
||||
7. Optionally, type ‘make installcheck’ to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior ‘make install’ required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
Prerequisites for make-check:
|
||||
8. You can remove the program binaries and object files from the
|
||||
source code directory by typing ‘make clean’. To also remove the
|
||||
files that ‘configure’ created (so you can compile the package for
|
||||
a different kind of computer), type ‘make distclean’. There is
|
||||
also a ‘make maintainer-clean’ target, but that is intended mainly
|
||||
for the package’s developers. If you use it, you may have to
|
||||
bootstrap again.
|
||||
|
||||
* qemu, specifically the binary "qemu-system-ARCH" where ARCH is the
|
||||
architecture GRUB has been built for; the "qemu-system" package on Debian
|
||||
will install all needed qemu architectures
|
||||
* OVMF, for EFI platforms (packages ovmf, ovmf-ia32, qemu-efi-arm, and
|
||||
qemu-efi-aarch64)
|
||||
* OpenBIOS, for ieee1275 platforms (packages openbios-ppc and openbios-sparc)
|
||||
* xorriso 1.2.9 or later, for grub-mkrescue and grub-shell
|
||||
* wamerican, for grub-fs-tester
|
||||
* mtools, FAT tools for EFI platforms
|
||||
* xfonts-unifont, for the functional tests
|
||||
9. If the package follows the GNU Coding Standards, you can type ‘make
|
||||
uninstall’ to remove the installed files.
|
||||
|
||||
* If running a Linux kernel the following modules must be loaded:
|
||||
- fuse, loop
|
||||
- btrfs, ext4, f2fs, fat, hfs, hfsplus, jfs, mac-roman, minix, nilfs2,
|
||||
reiserfs, udf, xfs
|
||||
- On newer kernels, the exfat kernel modules may be used instead of the
|
||||
exfat FUSE filesystem
|
||||
* The following are Debian named packages required mostly for the full
|
||||
suite of filesystem testing (but some are needed by other tests as well):
|
||||
- btrfs-progs, dosfstools, e2fsprogs, exfat-utils, f2fs-tools, genromfs,
|
||||
hfsprogs, jfsutils, nilfs-tools, ntfs-3g, reiserfsprogs, squashfs-tools,
|
||||
reiserfsprogs, udftools, xfsprogs, zfs-fuse
|
||||
- exfat-fuse, if not using the exfat kernel module
|
||||
- gzip, lzop, xz-utils
|
||||
- attr, cpio, g++, gawk, parted, recode, tar, util-linux
|
||||
Installation Prerequisites
|
||||
==========================
|
||||
|
||||
Note that `make check' will run and many tests may complete successfully
|
||||
with only a subset of these prerequisites. However, some tests may be
|
||||
skipped or fail due to missing prerequisites.
|
||||
Installation requires a POSIX-like environment with a shell and at
|
||||
least the following standard utilities:
|
||||
|
||||
To build the documentation you'll need:
|
||||
* texinfo, for the info and html documentation
|
||||
* texlive, for building the dvi and pdf documentation (optional)
|
||||
awk cat cp diff echo expr false ls mkdir mv printf pwd rm rmdir sed
|
||||
sort test tr
|
||||
|
||||
To use the gdb_grub GDB script you'll need:
|
||||
* readelf (binutils package)
|
||||
* objdump (binutils package)
|
||||
* GNU Debugger > 7, built with python support (gdb package)
|
||||
* Python >= 3.5 (python3 package)
|
||||
This package’s installation may need other standard utilities such as
|
||||
‘grep’, ‘make’, ‘sleep’ and ‘touch’, along with compilers like ‘gcc’.
|
||||
|
||||
Configuring the GRUB
|
||||
====================
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a
|
||||
file `config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the ‘configure’ script does not know about. Run ‘./configure --help’
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
If you need to do unusual things to compile the package, please try to
|
||||
figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
You can give ‘configure’ initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here is
|
||||
an example:
|
||||
|
||||
The file `configure.ac' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
./configure CC=gcc CFLAGS=-g LIBS=-lposix
|
||||
|
||||
|
||||
Building the GRUB
|
||||
=================
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code.
|
||||
|
||||
2. Skip this and following step if you use release tarball and proceed to
|
||||
step 4. If you want translations type `./linguas.sh'.
|
||||
|
||||
3. Type `./bootstrap'.
|
||||
|
||||
The autogen.sh (called by bootstrap) uses python. By default autodetect
|
||||
it, but it can be overridden by setting the PYTHON variable.
|
||||
|
||||
4. Type `./configure' to configure the package for your system.
|
||||
If you're using `csh' on an old version of System V, you might
|
||||
need to type `sh ./configure' instead to prevent `csh' from trying
|
||||
to execute `configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
6. Type `make' to compile the package.
|
||||
|
||||
7. Optionally, type `make check' to run any self-tests that come with
|
||||
the package. Note that many of the tests require root privileges in
|
||||
order to run.
|
||||
|
||||
8. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
9. Type `make html' or `make pdf' to generate the html or pdf
|
||||
documentation. Note, these are not built by default.
|
||||
|
||||
10. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Cross-compiling the GRUB
|
||||
========================
|
||||
|
||||
GRUB defines 3 platforms:
|
||||
|
||||
- "Build" is the one which build systems runs on.
|
||||
- "Host" is where you execute GRUB utils.
|
||||
- "Target" is where GRUB itself runs.
|
||||
|
||||
For grub-emu host and target must be the same but may differ from build.
|
||||
|
||||
If build and host are different make check isn't available.
|
||||
|
||||
If build and host are different man pages are not generated.
|
||||
|
||||
As an example imagine you have a build system running on FreeBSD on sparc
|
||||
which prepares packages for developers running amd64 GNU/Linux laptop and
|
||||
they need to make images for ARM board running U-boot. In this case:
|
||||
|
||||
build=sparc64-freebsd
|
||||
host=amd64-linux-gnu
|
||||
target=arm-uboot
|
||||
|
||||
For this example the configure line might look like (more details below)
|
||||
(some options are optional and included here for completeness but some rarely
|
||||
used options are omitted):
|
||||
|
||||
./configure --build=sparc64-freebsd --host=x86_64-linux-gnu \
|
||||
--target=arm-linux-gnueabihf --with-platform=efi \
|
||||
BUILD_CC=gcc BUILD_PKG_CONFIG=pkg-config \
|
||||
HOST_CC=x86_64-linux-gnu-gcc HOST_CFLAGS='-g -O2' \
|
||||
PKG_CONFIG=x86_64-linux-gnu-pkg-config TARGET_CC=arm-linux-gnueabihf-gcc \
|
||||
TARGET_CFLAGS='-Os -march=armv8.3-a' TARGET_CCASFLAGS='-march=armv8.3-a' \
|
||||
TARGET_OBJCOPY=arm-linux-gnueabihf-objcopy \
|
||||
TARGET_STRIP=arm-linux-gnueabihf-strip TARGET_NM=arm-linux-gnueabihf-nm \
|
||||
TARGET_RANLIB=arm-linux-gnueabihf-ranlib LEX=flex
|
||||
|
||||
Note, that the autoconf 2.65 manual states that when using the --host argument
|
||||
to configure, the --build argument should be specified as well. Not sending
|
||||
--build, enters a compatibility mode that will be removed in the future.
|
||||
|
||||
Normally, for building a GRUB on amd64 with tools to run on amd64 to
|
||||
generate images to run on ARM, using your Linux distribution's
|
||||
packaged cross compiler, the following would suffice:
|
||||
|
||||
./configure --target=arm-linux-gnueabihf --with-platform=efi
|
||||
|
||||
You need to use following options to specify tools and platforms. For minimum
|
||||
version look at prerequisites. All tools not mentioned in this section under
|
||||
corresponding platform are not needed for the platform in question.
|
||||
|
||||
- For build
|
||||
1. --build= to autoconf name of build.
|
||||
2. BUILD_CC= to gcc able to compile for build. This is used, for
|
||||
example, to compile build-gentrigtables which is then run to
|
||||
generate sin and cos tables.
|
||||
3. BUILD_CFLAGS= for C options for build.
|
||||
4. BUILD_CPPFLAGS= for C preprocessor options for build.
|
||||
5. BUILD_LDFLAGS= for linker options for build.
|
||||
6. BUILD_PKG_CONFIG= for pkg-config for build (optional).
|
||||
|
||||
- For host
|
||||
1. --host= to autoconf name of host.
|
||||
2. CC= for gcc able to compile for host.
|
||||
3. CFLAGS= for C options for host.
|
||||
4. HOST_CC= for gcc able to compile for host.
|
||||
5. HOST_CFLAGS= for C options for host.
|
||||
6. HOST_CPPFLAGS= for C preprocessor options for host.
|
||||
7. HOST_LDFLAGS= for linker options for host.
|
||||
8. PKG_CONFIG= for pkg-config for host (optional).
|
||||
9. Libdevmapper if any must be in standard linker folders (-ldevmapper) (optional).
|
||||
10. Libfuse if any must be in standard linker folders (-lfuse) (optional).
|
||||
11. Libzfs if any must be in standard linker folders (-lzfs) (optional).
|
||||
12. Liblzma if any must be in standard linker folders (-llzma) (optional).
|
||||
Note: The HOST_* variables override not prefixed variables.
|
||||
|
||||
- For target
|
||||
1. --target= to autoconf cpu name of target.
|
||||
2. --with-platform to choose firmware.
|
||||
3. TARGET_CC= for gcc able to compile for target.
|
||||
4. TARGET_CFLAGS= for C options for target.
|
||||
5. TARGET_CPPFLAGS= for C preprocessor options for target.
|
||||
6. TARGET_CCASFLAGS= for assembler options for target.
|
||||
7. TARGET_LDFLAGS= for linker options for target.
|
||||
8. TARGET_OBJCOPY= for objcopy for target.
|
||||
9. TARGET_STRIP= for strip for target.
|
||||
10. TARGET_NM= for nm for target.
|
||||
11. TARGET_RANLIB= for ranlib for target.
|
||||
Note: If the TARGET_* variables are not specified then they will default
|
||||
to be the same as the host variables. If host variables are not
|
||||
specified then the TARGET_* variables will default to be the same
|
||||
as not prefixed variables.
|
||||
|
||||
- Additionally for emu, for host and target.
|
||||
1. SDL is looked for in standard linker directories (-lSDL) (optional)
|
||||
2. libpciaccess is looked for in standard linker directories (-lpciaccess) (optional)
|
||||
|
||||
- Platform-agnostic tools and data.
|
||||
1. make is the tool you execute after ./configure.
|
||||
2. Bison is specified in YACC= variable
|
||||
3. Flex is specified in LEX= variable
|
||||
4. GNU unifont and Djvu sans are looked for in standard directories.
|
||||
See “Defining Variables” for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. `cd' to the directory where you want the object files
|
||||
and executables to go and run the `configure' script. `configure'
|
||||
automatically checks for the source code in the directory that
|
||||
`configure' is in and in `..'.
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each system in their own
|
||||
directory. To do this, you can use GNU ‘make’. ‘cd’ to the directory
|
||||
where you want the object files and executables to go and run the
|
||||
‘configure’ script. ‘configure’ automatically checks for the source
|
||||
code in the directory that ‘configure’ is in and in ‘..’. This is known
|
||||
as a “VPATH” build.
|
||||
|
||||
With a non-GNU ‘make’, it is safer to compile the package for one
|
||||
system at a time in the source code directory. After you have installed
|
||||
the package for one system, use ‘make distclean’ before reconfiguring
|
||||
for another system.
|
||||
|
||||
Some platforms, notably macOS, support “fat” or “universal” binaries,
|
||||
where a single binary can execute on different architectures. On these
|
||||
platforms you can configure and compile just once, with options specific
|
||||
to that platform.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix by giving `configure' the option `--prefix=PATH'.
|
||||
By default, ‘make install’ installs the package’s commands under
|
||||
‘/usr/local/bin’, include files under ‘/usr/local/include’, etc. You
|
||||
can specify an installation prefix other than ‘/usr/local’ by giving
|
||||
‘configure’ the option ‘--prefix=PREFIX’, where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If
|
||||
you give `configure' the option `--exec-prefix=PATH', the package will
|
||||
use PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option ‘--exec-prefix=PREFIX’ to ‘configure’, the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for
|
||||
particular kinds of files. Run `configure --help' for a list of the
|
||||
directories you can set and what kinds of files go in them.
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like ‘--bindir=DIR’ to specify different values for particular
|
||||
kinds of files. Run ‘configure --help’ for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the default
|
||||
for these options is expressed in terms of ‘${prefix}’, so that
|
||||
specifying just ‘--prefix’ will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure'
|
||||
the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to ‘configure’; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
‘make install’ command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
Please note, however, that the GRUB knows where it is located in the
|
||||
filesystem. If you have installed it in an unusual location, the
|
||||
system might not work properly, or at all. The chief utility of these
|
||||
options for the GRUB is to allow you to "install" in some alternate
|
||||
location, and then copy these to the actual root filesystem later.
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, ‘make install
|
||||
prefix=/alternate/directory’ will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
‘${prefix}’. Any directories that were specified during ‘configure’,
|
||||
but not in terms of ‘${prefix}’, must each be overridden at install time
|
||||
for the entire installation to be relocated. The approach of makefile
|
||||
variable overrides for each directory variable is required by the GNU
|
||||
Coding Standards, and ideally causes no recompilation. However, some
|
||||
platforms have known limitations with the semantics of shared libraries
|
||||
that end up requiring recompilation when using this method, particularly
|
||||
noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the ‘DESTDIR’ variable. For
|
||||
example, ‘make install DESTDIR=/alternate/directory’ will prepend
|
||||
‘/alternate/directory’ before all installation names. The approach of
|
||||
‘DESTDIR’ overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of ‘${prefix}’
|
||||
at ‘configure’ time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving ‘configure’ the
|
||||
option ‘--program-prefix=PREFIX’ or ‘--program-suffix=SUFFIX’.
|
||||
|
||||
Some packages pay attention to ‘--enable-FEATURE’ and
|
||||
‘--disable-FEATURE’ options to ‘configure’, where FEATURE indicates an
|
||||
optional part of the package. They may also pay attention to
|
||||
‘--with-PACKAGE’ and ‘--without-PACKAGE’ options, where PACKAGE is
|
||||
something like ‘gnu-ld’. ‘./configure --help’ should mention the
|
||||
‘--enable-...’ and ‘--with-...’ options that the package recognizes.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of ‘make’ will be. For these packages, running ‘./configure
|
||||
--enable-silent-rules’ sets the default to minimal output, which can be
|
||||
overridden with ‘make V=1’; while running ‘./configure
|
||||
--disable-silent-rules’ sets the default to verbose, which can be
|
||||
overridden with ‘make V=0’.
|
||||
|
||||
Specifying a System Type
|
||||
========================
|
||||
|
||||
By default ‘configure’ builds for the current system. To create
|
||||
binaries that can run on a different system type, specify a
|
||||
‘--host=TYPE’ option along with compiler variables that specify how to
|
||||
generate object code for TYPE. For example, to create binaries intended
|
||||
to run on a 64-bit ARM processor:
|
||||
|
||||
./configure --host=aarch64-linux-gnu \
|
||||
CC=aarch64-linux-gnu-gcc \
|
||||
CXX=aarch64-linux-gnu-g++
|
||||
|
||||
If done on a machine that can execute these binaries (e.g., via
|
||||
‘qemu-aarch64’, ‘$QEMU_LD_PREFIX’, and Linux’s ‘binfmt_misc’
|
||||
capability), the build behaves like a native build. Otherwise it is a
|
||||
cross-build: ‘configure’ will make cross-compilation guesses instead of
|
||||
running test programs, and ‘make check’ will not work.
|
||||
|
||||
A system type can either be a short name like ‘mingw64’, or a
|
||||
canonical name like ‘x86_64-pc-linux-gnu’. Canonical names have the
|
||||
form CPU-COMPANY-SYSTEM where SYSTEM is either OS or KERNEL-OS. To
|
||||
canonicalize and validate a system type, you can run the command
|
||||
‘config.sub’, which is often squirreled away in a subdirectory like
|
||||
‘build-aux’. For example:
|
||||
|
||||
$ build-aux/config.sub arm64-linux
|
||||
aarch64-unknown-linux-gnu
|
||||
$ build-aux/config.sub riscv-lnx
|
||||
Invalid configuration 'riscv-lnx': OS 'lnx' not recognized
|
||||
|
||||
You can look at the ‘config.sub’ file to see which types are recognized.
|
||||
If the file is absent, this package does not need the system type.
|
||||
|
||||
If ‘configure’ fails with the diagnostic “cannot guess build type”.
|
||||
‘config.sub’ did not recognize your system’s type. In this case, first
|
||||
fetch the newest versions of these files from the GNU config package
|
||||
(https://savannah.gnu.org/projects/config). If that fixes things,
|
||||
please report it to the maintainers of the package containing
|
||||
‘configure’. Otherwise, you can try the configure option ‘--build=TYPE’
|
||||
where TYPE comes close to your system type; also, please report the
|
||||
problem to <config-patches@gnu.org>.
|
||||
|
||||
For more details about configuring system types, see the Autoconf
|
||||
documentation.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
If you want to set default values for ‘configure’ scripts to share,
|
||||
you can create a site shell script called ‘config.site’ that gives
|
||||
default values for variables like ‘CC’, ‘cache_file’, and ‘prefix’.
|
||||
‘configure’ looks for ‘PREFIX/share/config.site’ if it exists, then
|
||||
‘PREFIX/etc/config.site’ if it exists. Or, you can set the
|
||||
‘CONFIG_SITE’ environment variable to the location of the site script.
|
||||
A warning: not all ‘configure’ scripts look for a site script.
|
||||
|
||||
|
||||
Operation Controls
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to ‘configure’. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the ‘configure’ command line, using ‘VAR=value’. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified ‘gcc’ to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for ‘CONFIG_SHELL’ due to an
|
||||
Autoconf limitation. Until the limitation is lifted, you can use this
|
||||
workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
‘configure’ Invocation
|
||||
======================
|
||||
|
||||
‘configure’ recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
‘--help’
|
||||
‘-h’
|
||||
Print a summary of all of the options to ‘configure’, and exit.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
‘--help=short’
|
||||
‘--help=recursive’
|
||||
Print a summary of the options unique to this package’s
|
||||
‘configure’, and exit. The ‘short’ variant lists options used only
|
||||
in the top level, while the ‘recursive’ variant lists options also
|
||||
present in any nested packages.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made.
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
‘--version’
|
||||
‘-V’
|
||||
Print the version of Autoconf used to generate the ‘configure’
|
||||
script, and exit.
|
||||
|
||||
‘--cache-file=FILE’
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally ‘config.cache’. FILE defaults to ‘/dev/null’ to
|
||||
disable caching.
|
||||
|
||||
‘--config-cache’
|
||||
‘-C’
|
||||
Alias for ‘--cache-file=config.cache’.
|
||||
|
||||
‘--srcdir=DIR’
|
||||
Look for the package’s source code in directory DIR. Usually
|
||||
‘configure’ can determine that directory automatically.
|
||||
|
||||
‘--prefix=DIR’
|
||||
Use DIR as the installation prefix. See “Installation Names” for
|
||||
more details, including other options available for fine-tuning the
|
||||
installation locations.
|
||||
|
||||
‘--host=TYPE’
|
||||
Build binaries for system TYPE. See “Specifying a System Type”.
|
||||
|
||||
‘--enable-FEATURE’
|
||||
‘--disable-FEATURE’
|
||||
Enable or disable the optional FEATURE. See “Optional Features”.
|
||||
|
||||
‘--with-PACKAGE’
|
||||
‘--without-PACKAGE’
|
||||
Use or omit PACKAGE when building. See “Optional Features”.
|
||||
|
||||
‘--quiet’
|
||||
‘--silent’
|
||||
‘-q’
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to ‘/dev/null’ (any error
|
||||
messages will still be shown).
|
||||
|
||||
‘--no-create’
|
||||
‘-n’
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
‘configure’ also recognizes several environment variables, and accepts
|
||||
some other, less widely useful, options. Run ‘configure --help’ for
|
||||
more details.
|
||||
|
||||
Copyright notice
|
||||
================
|
||||
|
||||
Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2025 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+706
-334
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,961 @@
|
||||
# This file was generated by Autom4te 2.72.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'GTK_DOC_CHECK' => 1,
|
||||
'IT_PROG_INTLTOOL' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'include' => 1,
|
||||
'm4_include' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'sinclude' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal-1.18/internal/ac-config-macro-dirs.m4',
|
||||
'/usr/share/aclocal/lt~obsolete.m4',
|
||||
'/usr/share/aclocal/pkg.m4',
|
||||
'/usr/share/aclocal-1.18/amversion.m4',
|
||||
'/usr/share/aclocal-1.18/as.m4',
|
||||
'/usr/share/aclocal-1.18/auxdir.m4',
|
||||
'/usr/share/aclocal-1.18/cond-if.m4',
|
||||
'/usr/share/aclocal-1.18/cond.m4',
|
||||
'/usr/share/aclocal-1.18/depend.m4',
|
||||
'/usr/share/aclocal-1.18/depout.m4',
|
||||
'/usr/share/aclocal-1.18/init.m4',
|
||||
'/usr/share/aclocal-1.18/install-sh.m4',
|
||||
'/usr/share/aclocal-1.18/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.18/make.m4',
|
||||
'/usr/share/aclocal-1.18/missing.m4',
|
||||
'/usr/share/aclocal-1.18/options.m4',
|
||||
'/usr/share/aclocal-1.18/prog-cc-c-o.m4',
|
||||
'/usr/share/aclocal-1.18/python.m4',
|
||||
'/usr/share/aclocal-1.18/rmf.m4',
|
||||
'/usr/share/aclocal-1.18/runlog.m4',
|
||||
'/usr/share/aclocal-1.18/sanity.m4',
|
||||
'/usr/share/aclocal-1.18/silent.m4',
|
||||
'/usr/share/aclocal-1.18/strip.m4',
|
||||
'/usr/share/aclocal-1.18/substnot.m4',
|
||||
'/usr/share/aclocal-1.18/tar.m4',
|
||||
'/usr/share/aclocal-1.18/xargsn.m4',
|
||||
'm4/00gnulib.m4',
|
||||
'm4/__inline.m4',
|
||||
'm4/absolute-header.m4',
|
||||
'm4/alloca.m4',
|
||||
'm4/argp.m4',
|
||||
'm4/base64.m4',
|
||||
'm4/btowc.m4',
|
||||
'm4/builtin-expect.m4',
|
||||
'm4/calloc.m4',
|
||||
'm4/chdir-long.m4',
|
||||
'm4/close.m4',
|
||||
'm4/codeset.m4',
|
||||
'm4/ctype_h.m4',
|
||||
'm4/dirent_h.m4',
|
||||
'm4/dirfd.m4',
|
||||
'm4/double-slash-root.m4',
|
||||
'm4/dup2.m4',
|
||||
'm4/eealloc.m4',
|
||||
'm4/errno_h.m4',
|
||||
'm4/error.m4',
|
||||
'm4/exponentd.m4',
|
||||
'm4/extensions.m4',
|
||||
'm4/extern-inline.m4',
|
||||
'm4/fchdir.m4',
|
||||
'm4/fcntl-o.m4',
|
||||
'm4/fcntl.m4',
|
||||
'm4/fcntl_h.m4',
|
||||
'm4/filenamecat.m4',
|
||||
'm4/flexmember.m4',
|
||||
'm4/float_h.m4',
|
||||
'm4/fnmatch.m4',
|
||||
'm4/fnmatch_h.m4',
|
||||
'm4/free.m4',
|
||||
'm4/fstat.m4',
|
||||
'm4/getcwd.m4',
|
||||
'm4/getdelim.m4',
|
||||
'm4/getdtablesize.m4',
|
||||
'm4/getline.m4',
|
||||
'm4/getopt.m4',
|
||||
'm4/getprogname.m4',
|
||||
'm4/gettext.m4',
|
||||
'm4/glibc2.m4',
|
||||
'm4/glibc21.m4',
|
||||
'm4/gnulib-common.m4',
|
||||
'm4/gnulib-comp.m4',
|
||||
'm4/iconv.m4',
|
||||
'm4/include_next.m4',
|
||||
'm4/intdiv0.m4',
|
||||
'm4/intl.m4',
|
||||
'm4/intlmacosx.m4',
|
||||
'm4/intmax.m4',
|
||||
'm4/intmax_t.m4',
|
||||
'm4/inttypes-pri.m4',
|
||||
'm4/inttypes.m4',
|
||||
'm4/inttypes_h.m4',
|
||||
'm4/isblank.m4',
|
||||
'm4/langinfo_h.m4',
|
||||
'm4/largefile.m4',
|
||||
'm4/lcmessage.m4',
|
||||
'm4/lib-ld.m4',
|
||||
'm4/lib-link.m4',
|
||||
'm4/lib-prefix.m4',
|
||||
'm4/libunistring-base.m4',
|
||||
'm4/limits-h.m4',
|
||||
'm4/localcharset.m4',
|
||||
'm4/locale-fr.m4',
|
||||
'm4/locale-ja.m4',
|
||||
'm4/locale-zh.m4',
|
||||
'm4/locale_h.m4',
|
||||
'm4/localeconv.m4',
|
||||
'm4/lock.m4',
|
||||
'm4/longlong.m4',
|
||||
'm4/lstat.m4',
|
||||
'm4/malloc.m4',
|
||||
'm4/malloca.m4',
|
||||
'm4/math_h.m4',
|
||||
'm4/mbrtowc.m4',
|
||||
'm4/mbsinit.m4',
|
||||
'm4/mbsrtowcs.m4',
|
||||
'm4/mbstate_t.m4',
|
||||
'm4/mbswidth.m4',
|
||||
'm4/mbtowc.m4',
|
||||
'm4/memchr.m4',
|
||||
'm4/mempcpy.m4',
|
||||
'm4/memrchr.m4',
|
||||
'm4/mmap-anon.m4',
|
||||
'm4/mode_t.m4',
|
||||
'm4/msvc-inval.m4',
|
||||
'm4/msvc-nothrow.m4',
|
||||
'm4/multiarch.m4',
|
||||
'm4/nl_langinfo.m4',
|
||||
'm4/nls.m4',
|
||||
'm4/nocrash.m4',
|
||||
'm4/off_t.m4',
|
||||
'm4/open-cloexec.m4',
|
||||
'm4/open-slash.m4',
|
||||
'm4/open.m4',
|
||||
'm4/openat.m4',
|
||||
'm4/pathmax.m4',
|
||||
'm4/pid_t.m4',
|
||||
'm4/pipe.m4',
|
||||
'm4/po.m4',
|
||||
'm4/printf-posix.m4',
|
||||
'm4/printf.m4',
|
||||
'm4/progtest.m4',
|
||||
'm4/pthread_rwlock_rdlock.m4',
|
||||
'm4/rawmemchr.m4',
|
||||
'm4/realloc.m4',
|
||||
'm4/reallocarray.m4',
|
||||
'm4/regex.m4',
|
||||
'm4/save-cwd.m4',
|
||||
'm4/setlocale_null.m4',
|
||||
'm4/size_max.m4',
|
||||
'm4/sleep.m4',
|
||||
'm4/ssize_t.m4',
|
||||
'm4/stat-time.m4',
|
||||
'm4/stat.m4',
|
||||
'm4/std-gnu11.m4',
|
||||
'm4/stdalign.m4',
|
||||
'm4/stdbool.m4',
|
||||
'm4/stddef_h.m4',
|
||||
'm4/stdint.m4',
|
||||
'm4/stdint_h.m4',
|
||||
'm4/stdio_h.m4',
|
||||
'm4/stdlib_h.m4',
|
||||
'm4/strcase.m4',
|
||||
'm4/strchrnul.m4',
|
||||
'm4/strdup.m4',
|
||||
'm4/strerror.m4',
|
||||
'm4/string_h.m4',
|
||||
'm4/strings_h.m4',
|
||||
'm4/strndup.m4',
|
||||
'm4/strnlen.m4',
|
||||
'm4/sys_socket_h.m4',
|
||||
'm4/sys_stat_h.m4',
|
||||
'm4/sys_types_h.m4',
|
||||
'm4/sysexits.m4',
|
||||
'm4/threadlib.m4',
|
||||
'm4/time_h.m4',
|
||||
'm4/uintmax_t.m4',
|
||||
'm4/unistd-safer.m4',
|
||||
'm4/unistd_h.m4',
|
||||
'm4/vararrays.m4',
|
||||
'm4/vasnprintf.m4',
|
||||
'm4/visibility.m4',
|
||||
'm4/vsnprintf.m4',
|
||||
'm4/warn-on-use.m4',
|
||||
'm4/wchar_h.m4',
|
||||
'm4/wchar_t.m4',
|
||||
'm4/wcrtomb.m4',
|
||||
'm4/wctype_h.m4',
|
||||
'm4/wcwidth.m4',
|
||||
'm4/wint_t.m4',
|
||||
'm4/wmemchr.m4',
|
||||
'm4/wmempcpy.m4',
|
||||
'm4/xsize.m4',
|
||||
'm4/year2038.m4',
|
||||
'm4/zzgnulib.m4',
|
||||
'acinclude.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AC_' => 1,
|
||||
'AC_CHECK_HEADER_STDBOOL' => 1,
|
||||
'AC_CHECK_INCLUDES_DEFAULT' => 1,
|
||||
'AC_CONFIG_MACRO_DIR' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AC_C_FLEXIBLE_ARRAY_MEMBER' => 1,
|
||||
'AC_C_PROTOTYPES' => 1,
|
||||
'AC_C_RESTRICT' => 1,
|
||||
'AC_C_VARARRAYS' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'AC_FUNC_MBRTOWC' => 1,
|
||||
'AC_HEADER_MAJOR' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
|
||||
'AC_LIB_APPENDTOVAR' => 1,
|
||||
'AC_LIB_ARG_WITH' => 1,
|
||||
'AC_LIB_FROMPACKAGE' => 1,
|
||||
'AC_LIB_HAVE_LINKFLAGS' => 1,
|
||||
'AC_LIB_LINKFLAGS' => 1,
|
||||
'AC_LIB_LINKFLAGS_BODY' => 1,
|
||||
'AC_LIB_LINKFLAGS_FROM_LIBS' => 1,
|
||||
'AC_LIB_PREFIX' => 1,
|
||||
'AC_LIB_PREPARE_MULTILIB' => 1,
|
||||
'AC_LIB_PREPARE_PREFIX' => 1,
|
||||
'AC_LIB_PROG_LD' => 1,
|
||||
'AC_LIB_PROG_LD_GNU' => 1,
|
||||
'AC_LIB_RPATH' => 1,
|
||||
'AC_LIB_WITH_FINAL_PREFIX' => 1,
|
||||
'AC_LTDL_ENABLE_INSTALL' => 1,
|
||||
'AC_LTDL_OBJDIR' => 1,
|
||||
'AC_LTDL_PREOPEN' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'AC_PROG_CC' => 1,
|
||||
'AC_PROG_CC_C89' => 1,
|
||||
'AC_PROG_CC_C99' => 1,
|
||||
'AC_PROG_CC_STDC' => 1,
|
||||
'AC_PROG_CXX' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_SYS_LARGEFILE' => 1,
|
||||
'AC_TYPE_LONG_LONG_INT' => 1,
|
||||
'AC_TYPE_MBSTATE_T' => 1,
|
||||
'AC_TYPE_PID_T' => 1,
|
||||
'AC_TYPE_UNSIGNED_LONG_LONG_INT' => 1,
|
||||
'AC_USE_SYSTEM_EXTENSIONS' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AM_COND_IF' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AM_GNU_GETTEXT_NEED' => 1,
|
||||
'AM_GNU_GETTEXT_VERSION' => 1,
|
||||
'AM_ICONV' => 1,
|
||||
'AM_ICONV_LINK' => 1,
|
||||
'AM_ICONV_LINKFLAGS_BODY' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_INTL_SUBDIR' => 1,
|
||||
'AM_LANGINFO_CODESET' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AM_PATH_PROG_WITH_TEST' => 1,
|
||||
'AM_PATH_PYTHON' => 1,
|
||||
'AM_POSTPROCESS_PO_MAKEFILE' => 1,
|
||||
'AM_PO_SUBDIRS' => 1,
|
||||
'AM_PROG_AS' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'AM_PYTHON_CHECK_VERSION' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AM_XGETTEXT_OPTION_INIT' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'GL_MDA_DEFINES' => 1,
|
||||
'GL_NOCRASH' => 1,
|
||||
'LTOBSOLETE_VERSION' => 1,
|
||||
'LT_AC_PROG_EGREP' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'PKG_CHECK_EXISTS' => 1,
|
||||
'PKG_CHECK_MODULES' => 1,
|
||||
'PKG_CHECK_MODULES_STATIC' => 1,
|
||||
'PKG_CHECK_VAR' => 1,
|
||||
'PKG_HAVE_DEFINE_WITH_MODULES' => 1,
|
||||
'PKG_HAVE_WITH_MODULES' => 1,
|
||||
'PKG_INSTALLDIR' => 1,
|
||||
'PKG_NOARCH_INSTALLDIR' => 1,
|
||||
'PKG_PROG_PKG_CONFIG' => 1,
|
||||
'PKG_WITH_MODULES' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'_AC_CXX_CXX11_TEST_BODY' => 1,
|
||||
'_AC_CXX_CXX11_TEST_HEADER' => 1,
|
||||
'_AC_CXX_CXX98_TEST_BODY' => 1,
|
||||
'_AC_CXX_CXX98_TEST_HEADER' => 1,
|
||||
'_AC_CXX_STD_TRY' => 1,
|
||||
'_AC_C_C99_TEST_BODY' => 1,
|
||||
'_AC_C_C99_TEST_HEADER' => 1,
|
||||
'_AC_C_STD_TRY' => 1,
|
||||
'_AC_FUNC_CALLOC_IF' => 1,
|
||||
'_AC_FUNC_MALLOC_IF' => 1,
|
||||
'_AC_FUNC_REALLOC_IF' => 1,
|
||||
'_AC_PROG_CC_C11' => 1,
|
||||
'_AC_PROG_CC_C99' => 1,
|
||||
'_AC_PROG_CXX_CXX11' => 1,
|
||||
'_AC_PROG_CXX_CXX98' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'_AC_TYPE_LONG_LONG_SNIPPET' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'_AM_CONFIG_MACRO_DIRS' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'_AM_FILESYSTEM_TIMESTAMP_RESOLUTION' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'_AM_PROG_CC_C_O' => 1,
|
||||
'_AM_PROG_RM_F' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'_AM_PROG_XARGS_N' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'_AM_SILENT_RULES' => 1,
|
||||
'_AM_SLEEP_FRACTIONAL_SECONDS' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'_GL_MDA_DEFINES' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
|
||||
'_LT_PROG_CXX' => 1,
|
||||
'_LT_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LT_PROG_F77' => 1,
|
||||
'_LT_PROG_FC' => 1,
|
||||
'_LT_PROG_LTMAIN' => 1,
|
||||
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
|
||||
'_PKG_SHORT_ERRORS_SUPPORTED' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'gl_00GNULIB' => 1,
|
||||
'gl_ABSOLUTE_HEADER' => 1,
|
||||
'gl_ABSOLUTE_HEADER_ONE' => 1,
|
||||
'gl_AC_HEADER_INTTYPES_H' => 1,
|
||||
'gl_AC_HEADER_STDINT_H' => 1,
|
||||
'gl_AC_TYPE_INTMAX_T' => 1,
|
||||
'gl_AC_TYPE_UINTMAX_T' => 1,
|
||||
'gl_ANYTHREADLIB_EARLY' => 1,
|
||||
'gl_ARGP' => 1,
|
||||
'gl_ASSERT_NO_GNULIB_POSIXCHECK' => 1,
|
||||
'gl_ASSERT_NO_GNULIB_TESTS' => 1,
|
||||
'gl_AVOID_WINPTHREAD' => 1,
|
||||
'gl_BIGENDIAN' => 1,
|
||||
'gl_CACHE_VAL_SILENT' => 1,
|
||||
'gl_CC_ALLOW_WARNINGS' => 1,
|
||||
'gl_CC_GNULIB_WARNINGS' => 1,
|
||||
'gl_CHECK_MALLOC_POSIX' => 1,
|
||||
'gl_CHECK_MALLOC_PTRDIFF' => 1,
|
||||
'gl_CHECK_NEXT_HEADERS' => 1,
|
||||
'gl_CHECK_TYPES_SIGNED' => 1,
|
||||
'gl_CHECK_TYPE_STRUCT_TIMESPEC' => 1,
|
||||
'gl_COMMON' => 1,
|
||||
'gl_COMMON_BODY' => 1,
|
||||
'gl_COMPILER_CLANG' => 1,
|
||||
'gl_COMPILER_PREPARE_CHECK_DECL' => 1,
|
||||
'gl_CONDITIONAL' => 1,
|
||||
'gl_CONDITIONAL_HEADER' => 1,
|
||||
'gl_CTYPE_H' => 1,
|
||||
'gl_CTYPE_H_DEFAULTS' => 1,
|
||||
'gl_CTYPE_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_CTYPE_MODULE_INDICATOR' => 1,
|
||||
'gl_CXX_ALLOW_WARNINGS' => 1,
|
||||
'gl_DIRENT_H' => 1,
|
||||
'gl_DIRENT_H_DEFAULTS' => 1,
|
||||
'gl_DIRENT_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_DIRENT_MODULE_INDICATOR' => 1,
|
||||
'gl_DISABLE_THREADS' => 1,
|
||||
'gl_DOUBLE_EXPONENT_LOCATION' => 1,
|
||||
'gl_DOUBLE_SLASH_ROOT' => 1,
|
||||
'gl_EARLY' => 1,
|
||||
'gl_EEALLOC' => 1,
|
||||
'gl_EEMALLOC' => 1,
|
||||
'gl_EEREALLOC' => 1,
|
||||
'gl_ERROR' => 1,
|
||||
'gl_EXTERN_INLINE' => 1,
|
||||
'gl_FCNTL_H' => 1,
|
||||
'gl_FCNTL_H_DEFAULTS' => 1,
|
||||
'gl_FCNTL_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_FCNTL_MODULE_INDICATOR' => 1,
|
||||
'gl_FCNTL_O_FLAGS' => 1,
|
||||
'gl_FEATURES_H' => 1,
|
||||
'gl_FILE_LIST' => 1,
|
||||
'gl_FILE_NAME_CONCAT' => 1,
|
||||
'gl_FILE_NAME_CONCAT_LGPL' => 1,
|
||||
'gl_FLOAT_H' => 1,
|
||||
'gl_FNMATCH_H' => 1,
|
||||
'gl_FNMATCH_H_DEFAULTS' => 1,
|
||||
'gl_FNMATCH_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_FNMATCH_MODULE_INDICATOR' => 1,
|
||||
'gl_FUNC_ALLOCA' => 1,
|
||||
'gl_FUNC_BASE64' => 1,
|
||||
'gl_FUNC_BTOWC' => 1,
|
||||
'gl_FUNC_CALLOC_GNU' => 1,
|
||||
'gl_FUNC_CALLOC_POSIX' => 1,
|
||||
'gl_FUNC_CHDIR_LONG' => 1,
|
||||
'gl_FUNC_CLOSE' => 1,
|
||||
'gl_FUNC_DIRFD' => 1,
|
||||
'gl_FUNC_DUP2' => 1,
|
||||
'gl_FUNC_FCHDIR' => 1,
|
||||
'gl_FUNC_FCNTL' => 1,
|
||||
'gl_FUNC_FNMATCH_GNU' => 1,
|
||||
'gl_FUNC_FNMATCH_POSIX' => 1,
|
||||
'gl_FUNC_FREE' => 1,
|
||||
'gl_FUNC_FSTAT' => 1,
|
||||
'gl_FUNC_GETCWD' => 1,
|
||||
'gl_FUNC_GETCWD_LGPL' => 1,
|
||||
'gl_FUNC_GETCWD_NULL' => 1,
|
||||
'gl_FUNC_GETCWD_SIGNATURE' => 1,
|
||||
'gl_FUNC_GETDELIM' => 1,
|
||||
'gl_FUNC_GETDTABLESIZE' => 1,
|
||||
'gl_FUNC_GETLINE' => 1,
|
||||
'gl_FUNC_GETOPT_GNU' => 1,
|
||||
'gl_FUNC_GETOPT_POSIX' => 1,
|
||||
'gl_FUNC_GETPROGNAME' => 1,
|
||||
'gl_FUNC_ISBLANK' => 1,
|
||||
'gl_FUNC_LOCALECONV' => 1,
|
||||
'gl_FUNC_LSTAT' => 1,
|
||||
'gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
|
||||
'gl_FUNC_MALLOC_GNU' => 1,
|
||||
'gl_FUNC_MALLOC_POSIX' => 1,
|
||||
'gl_FUNC_MALLOC_PTRDIFF' => 1,
|
||||
'gl_FUNC_MBRTOWC' => 1,
|
||||
'gl_FUNC_MBSINIT' => 1,
|
||||
'gl_FUNC_MBSRTOWCS' => 1,
|
||||
'gl_FUNC_MBTOWC' => 1,
|
||||
'gl_FUNC_MEMCHR' => 1,
|
||||
'gl_FUNC_MEMPCPY' => 1,
|
||||
'gl_FUNC_MEMRCHR' => 1,
|
||||
'gl_FUNC_MMAP_ANON' => 1,
|
||||
'gl_FUNC_NL_LANGINFO' => 1,
|
||||
'gl_FUNC_OPEN' => 1,
|
||||
'gl_FUNC_OPENAT' => 1,
|
||||
'gl_FUNC_PIPE' => 1,
|
||||
'gl_FUNC_RAWMEMCHR' => 1,
|
||||
'gl_FUNC_REALLOCARRAY' => 1,
|
||||
'gl_FUNC_REALLOC_GNU' => 1,
|
||||
'gl_FUNC_REALLOC_POSIX' => 1,
|
||||
'gl_FUNC_SETLOCALE_NULL' => 1,
|
||||
'gl_FUNC_SLEEP' => 1,
|
||||
'gl_FUNC_STAT' => 1,
|
||||
'gl_FUNC_STRCASECMP' => 1,
|
||||
'gl_FUNC_STRCHRNUL' => 1,
|
||||
'gl_FUNC_STRDUP' => 1,
|
||||
'gl_FUNC_STRDUP_POSIX' => 1,
|
||||
'gl_FUNC_STRERROR' => 1,
|
||||
'gl_FUNC_STRERROR_0' => 1,
|
||||
'gl_FUNC_STRNCASECMP' => 1,
|
||||
'gl_FUNC_STRNDUP' => 1,
|
||||
'gl_FUNC_STRNLEN' => 1,
|
||||
'gl_FUNC_VASNPRINTF' => 1,
|
||||
'gl_FUNC_VSNPRINTF' => 1,
|
||||
'gl_FUNC_WCRTOMB' => 1,
|
||||
'gl_FUNC_WCWIDTH' => 1,
|
||||
'gl_FUNC_WMEMCHR' => 1,
|
||||
'gl_FUNC_WMEMPCPY' => 1,
|
||||
'gl_GETOPT_CHECK_HEADERS' => 1,
|
||||
'gl_GETOPT_SUBSTITUTE_HEADER' => 1,
|
||||
'gl_GLIBC21' => 1,
|
||||
'gl_HEADER_ERRNO_H' => 1,
|
||||
'gl_INCLUDE_NEXT' => 1,
|
||||
'gl_INIT' => 1,
|
||||
'gl_INTEGER_TYPE_SUFFIX' => 1,
|
||||
'gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION' => 1,
|
||||
'gl_INTTYPES_H' => 1,
|
||||
'gl_INTTYPES_H_DEFAULTS' => 1,
|
||||
'gl_INTTYPES_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_INTTYPES_INCOMPLETE' => 1,
|
||||
'gl_INTTYPES_MODULE_INDICATOR' => 1,
|
||||
'gl_INTTYPES_PRI_SCN' => 1,
|
||||
'gl_LANGINFO_H' => 1,
|
||||
'gl_LANGINFO_H_DEFAULTS' => 1,
|
||||
'gl_LANGINFO_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_LANGINFO_MODULE_INDICATOR' => 1,
|
||||
'gl_LARGEFILE' => 1,
|
||||
'gl_LIBOBJ' => 1,
|
||||
'gl_LIBSOURCES' => 1,
|
||||
'gl_LIBUNISTRING_LIBHEADER' => 1,
|
||||
'gl_LIBUNISTRING_LIB_PREPARE' => 1,
|
||||
'gl_LIBUNISTRING_MODULE' => 1,
|
||||
'gl_LIBUNISTRING_VERSION_CMP' => 1,
|
||||
'gl_LIMITS_H' => 1,
|
||||
'gl_LOCALCHARSET' => 1,
|
||||
'gl_LOCALE_H' => 1,
|
||||
'gl_LOCALE_H_DEFAULTS' => 1,
|
||||
'gl_LOCALE_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_LOCALE_MODULE_INDICATOR' => 1,
|
||||
'gl_LOCALE_T' => 1,
|
||||
'gl_LOCK' => 1,
|
||||
'gl_LONG_DOUBLE_VS_DOUBLE' => 1,
|
||||
'gl_MALLOCA' => 1,
|
||||
'gl_MATH_H' => 1,
|
||||
'gl_MATH_H_DEFAULTS' => 1,
|
||||
'gl_MATH_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_MATH_MODULE_INDICATOR' => 1,
|
||||
'gl_MBRTOWC_C_LOCALE' => 1,
|
||||
'gl_MBRTOWC_EMPTY_INPUT' => 1,
|
||||
'gl_MBRTOWC_INCOMPLETE_STATE' => 1,
|
||||
'gl_MBRTOWC_NULL_ARG1' => 1,
|
||||
'gl_MBRTOWC_NULL_ARG2' => 1,
|
||||
'gl_MBRTOWC_NUL_RETVAL' => 1,
|
||||
'gl_MBRTOWC_RETVAL' => 1,
|
||||
'gl_MBRTOWC_SANITYCHECK' => 1,
|
||||
'gl_MBRTOWC_STORES_INCOMPLETE' => 1,
|
||||
'gl_MBSRTOWCS_WORKS' => 1,
|
||||
'gl_MBSTATE_T_BROKEN' => 1,
|
||||
'gl_MBSWIDTH' => 1,
|
||||
'gl_MODULE_INDICATOR' => 1,
|
||||
'gl_MODULE_INDICATOR_FOR_TESTS' => 1,
|
||||
'gl_MODULE_INDICATOR_INIT_VARIABLE' => 1,
|
||||
'gl_MODULE_INDICATOR_SET_VARIABLE' => 1,
|
||||
'gl_MODULE_INDICATOR_SET_VARIABLE_AUX' => 1,
|
||||
'gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR' => 1,
|
||||
'gl_MSVC_INVAL' => 1,
|
||||
'gl_MSVC_NOTHROW' => 1,
|
||||
'gl_MULTIARCH' => 1,
|
||||
'gl_NEXT_HEADERS' => 1,
|
||||
'gl_NEXT_HEADERS_INTERNAL' => 1,
|
||||
'gl_OPEN_TRAILING_SLASH_BUG' => 1,
|
||||
'gl_PATHMAX' => 1,
|
||||
'gl_PATHMAX_SNIPPET' => 1,
|
||||
'gl_PATHMAX_SNIPPET_PREREQ' => 1,
|
||||
'gl_PREPROC_O_CLOEXEC' => 1,
|
||||
'gl_PREREQ_ALLOCA' => 1,
|
||||
'gl_PREREQ_ASNPRINTF' => 1,
|
||||
'gl_PREREQ_BASE64' => 1,
|
||||
'gl_PREREQ_BTOWC' => 1,
|
||||
'gl_PREREQ_CHDIR_LONG' => 1,
|
||||
'gl_PREREQ_DIRFD' => 1,
|
||||
'gl_PREREQ_DUP2' => 1,
|
||||
'gl_PREREQ_ERROR' => 1,
|
||||
'gl_PREREQ_FCHDIR' => 1,
|
||||
'gl_PREREQ_FNMATCH' => 1,
|
||||
'gl_PREREQ_FREE' => 1,
|
||||
'gl_PREREQ_FSTAT' => 1,
|
||||
'gl_PREREQ_GETCWD' => 1,
|
||||
'gl_PREREQ_GETDELIM' => 1,
|
||||
'gl_PREREQ_GETDTABLESIZE' => 1,
|
||||
'gl_PREREQ_GETLINE' => 1,
|
||||
'gl_PREREQ_LOCALECONV' => 1,
|
||||
'gl_PREREQ_LOCK' => 1,
|
||||
'gl_PREREQ_LSTAT' => 1,
|
||||
'gl_PREREQ_MBRTOWC' => 1,
|
||||
'gl_PREREQ_MBSINIT' => 1,
|
||||
'gl_PREREQ_MBSRTOWCS' => 1,
|
||||
'gl_PREREQ_MBTOWC' => 1,
|
||||
'gl_PREREQ_MBTOWC_LOCK' => 1,
|
||||
'gl_PREREQ_MEMCHR' => 1,
|
||||
'gl_PREREQ_MEMPCPY' => 1,
|
||||
'gl_PREREQ_MEMRCHR' => 1,
|
||||
'gl_PREREQ_NL_LANGINFO_LOCK' => 1,
|
||||
'gl_PREREQ_OPEN' => 1,
|
||||
'gl_PREREQ_OPENAT' => 1,
|
||||
'gl_PREREQ_PRINTF_ARGS' => 1,
|
||||
'gl_PREREQ_PRINTF_PARSE' => 1,
|
||||
'gl_PREREQ_RAWMEMCHR' => 1,
|
||||
'gl_PREREQ_REALLOCARRAY' => 1,
|
||||
'gl_PREREQ_REGEX' => 1,
|
||||
'gl_PREREQ_SETLOCALE_LOCK' => 1,
|
||||
'gl_PREREQ_STAT' => 1,
|
||||
'gl_PREREQ_STAT_W32' => 1,
|
||||
'gl_PREREQ_STRCASECMP' => 1,
|
||||
'gl_PREREQ_STRCHRNUL' => 1,
|
||||
'gl_PREREQ_STRDUP' => 1,
|
||||
'gl_PREREQ_STRNCASECMP' => 1,
|
||||
'gl_PREREQ_STRNLEN' => 1,
|
||||
'gl_PREREQ_SYS_H_SOCKET' => 1,
|
||||
'gl_PREREQ_SYS_H_WINSOCK2' => 1,
|
||||
'gl_PREREQ_SYS_H_WS2TCPIP' => 1,
|
||||
'gl_PREREQ_VASNPRINTF' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_DIRECTIVE_A' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_DIRECTIVE_F' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_DIRECTIVE_LS' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_ENOMEM' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_FLAG_GROUPING' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_FLAG_ZERO' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_LONG_DOUBLE' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_PRECISION' => 1,
|
||||
'gl_PREREQ_VASNPRINTF_WITH_EXTRAS' => 1,
|
||||
'gl_PREREQ_VSNPRINTF' => 1,
|
||||
'gl_PREREQ_WCRTOMB' => 1,
|
||||
'gl_PREREQ_WCWIDTH' => 1,
|
||||
'gl_PRINTF_DIRECTIVE_A' => 1,
|
||||
'gl_PRINTF_DIRECTIVE_F' => 1,
|
||||
'gl_PRINTF_DIRECTIVE_LS' => 1,
|
||||
'gl_PRINTF_DIRECTIVE_N' => 1,
|
||||
'gl_PRINTF_ENOMEM' => 1,
|
||||
'gl_PRINTF_FLAG_GROUPING' => 1,
|
||||
'gl_PRINTF_FLAG_LEFTADJUST' => 1,
|
||||
'gl_PRINTF_FLAG_ZERO' => 1,
|
||||
'gl_PRINTF_INFINITE' => 1,
|
||||
'gl_PRINTF_INFINITE_LONG_DOUBLE' => 1,
|
||||
'gl_PRINTF_LONG_DOUBLE' => 1,
|
||||
'gl_PRINTF_POSITIONS' => 1,
|
||||
'gl_PRINTF_PRECISION' => 1,
|
||||
'gl_PRINTF_SIZES_C99' => 1,
|
||||
'gl_PROG_AR_RANLIB' => 1,
|
||||
'gl_PROG_CC_C99' => 1,
|
||||
'gl_PROMOTED_TYPE_MODE_T' => 1,
|
||||
'gl_PTHREADLIB' => 1,
|
||||
'gl_PTHREADLIB_BODY' => 1,
|
||||
'gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER' => 1,
|
||||
'gl_REGEX' => 1,
|
||||
'gl_REPLACE_ERRNO_VALUE' => 1,
|
||||
'gl_REPLACE_FCNTL' => 1,
|
||||
'gl_REPLACE_FNMATCH_H' => 1,
|
||||
'gl_REPLACE_FUNCS' => 1,
|
||||
'gl_REPLACE_GETOPT_ALWAYS' => 1,
|
||||
'gl_REPLACE_LIMITS_H' => 1,
|
||||
'gl_REPLACE_VASNPRINTF' => 1,
|
||||
'gl_REPLACE_VSNPRINTF' => 1,
|
||||
'gl_SAVE_CWD' => 1,
|
||||
'gl_SET_LARGEFILE_SOURCE' => 1,
|
||||
'gl_SILENT' => 1,
|
||||
'gl_SIZE_MAX' => 1,
|
||||
'gl_SNPRINTF_DIRECTIVE_N' => 1,
|
||||
'gl_SNPRINTF_PRESENCE' => 1,
|
||||
'gl_SNPRINTF_RETVAL_C99' => 1,
|
||||
'gl_SNPRINTF_SIZE1' => 1,
|
||||
'gl_SNPRINTF_TRUNCATION_C99' => 1,
|
||||
'gl_STAT_BIRTHTIME' => 1,
|
||||
'gl_STAT_TIME' => 1,
|
||||
'gl_STDALIGN_H' => 1,
|
||||
'gl_STDBOOL_H' => 1,
|
||||
'gl_STDDEF_H' => 1,
|
||||
'gl_STDDEF_H_DEFAULTS' => 1,
|
||||
'gl_STDDEF_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_STDDEF_MODULE_INDICATOR' => 1,
|
||||
'gl_STDINT_BITSIZEOF' => 1,
|
||||
'gl_STDINT_H' => 1,
|
||||
'gl_STDINT_INCLUDES' => 1,
|
||||
'gl_STDINT_TYPE_PROPERTIES' => 1,
|
||||
'gl_STDIO_H' => 1,
|
||||
'gl_STDIO_H_DEFAULTS' => 1,
|
||||
'gl_STDIO_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_STDIO_MODULE_INDICATOR' => 1,
|
||||
'gl_STDLIB_H' => 1,
|
||||
'gl_STDLIB_H_DEFAULTS' => 1,
|
||||
'gl_STDLIB_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_STDLIB_MODULE_INDICATOR' => 1,
|
||||
'gl_STDTHREADLIB' => 1,
|
||||
'gl_STDTHREADLIB_BODY' => 1,
|
||||
'gl_STRCASE' => 1,
|
||||
'gl_STRINGS_H' => 1,
|
||||
'gl_STRINGS_H_DEFAULTS' => 1,
|
||||
'gl_STRINGS_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_STRINGS_MODULE_INDICATOR' => 1,
|
||||
'gl_STRING_H' => 1,
|
||||
'gl_STRING_H_DEFAULTS' => 1,
|
||||
'gl_STRING_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_STRING_MODULE_INDICATOR' => 1,
|
||||
'gl_SYSEXITS' => 1,
|
||||
'gl_SYS_SOCKET_H' => 1,
|
||||
'gl_SYS_SOCKET_H_DEFAULTS' => 1,
|
||||
'gl_SYS_SOCKET_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_SYS_SOCKET_MODULE_INDICATOR' => 1,
|
||||
'gl_SYS_STAT_H' => 1,
|
||||
'gl_SYS_STAT_H_DEFAULTS' => 1,
|
||||
'gl_SYS_STAT_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_SYS_STAT_MODULE_INDICATOR' => 1,
|
||||
'gl_SYS_TYPES_H' => 1,
|
||||
'gl_SYS_TYPES_H_DEFAULTS' => 1,
|
||||
'gl_SYS_TYPES_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_TEST_FCHDIR' => 1,
|
||||
'gl_THREADLIB' => 1,
|
||||
'gl_THREADLIB_BODY' => 1,
|
||||
'gl_THREADLIB_EARLY' => 1,
|
||||
'gl_THREADLIB_EARLY_BODY' => 1,
|
||||
'gl_TIME_H' => 1,
|
||||
'gl_TIME_H_DEFAULTS' => 1,
|
||||
'gl_TIME_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_TIME_MODULE_INDICATOR' => 1,
|
||||
'gl_TYPE_OFF_T' => 1,
|
||||
'gl_TYPE_WINT_T_PREREQ' => 1,
|
||||
'gl_UNISTD_H' => 1,
|
||||
'gl_UNISTD_H_DEFAULTS' => 1,
|
||||
'gl_UNISTD_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_UNISTD_MODULE_INDICATOR' => 1,
|
||||
'gl_UNISTD_SAFER' => 1,
|
||||
'gl_USE_SYSTEM_EXTENSIONS' => 1,
|
||||
'gl_VISIBILITY' => 1,
|
||||
'gl_VSNPRINTF_ZEROSIZE_C99' => 1,
|
||||
'gl_W' => 1,
|
||||
'gl_WARN_ON_USE_PREPARE' => 1,
|
||||
'gl_WCHAR_H' => 1,
|
||||
'gl_WCHAR_H_DEFAULTS' => 1,
|
||||
'gl_WCHAR_H_INLINE_OK' => 1,
|
||||
'gl_WCHAR_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_WCHAR_MODULE_INDICATOR' => 1,
|
||||
'gl_WCTYPE_H' => 1,
|
||||
'gl_WCTYPE_H_DEFAULTS' => 1,
|
||||
'gl_WCTYPE_H_REQUIRE_DEFAULTS' => 1,
|
||||
'gl_WCTYPE_MODULE_INDICATOR' => 1,
|
||||
'gl_WEAK_SYMBOLS' => 1,
|
||||
'gl_XSIZE' => 1,
|
||||
'gl_YEAR2038' => 1,
|
||||
'gl_YEAR2038_BODY' => 1,
|
||||
'gl_YEAR2038_EARLY' => 1,
|
||||
'gl_YEAR2038_TEST_INCLUDES' => 1,
|
||||
'gl_ZZGNULIB' => 1,
|
||||
'gl___BUILTIN_EXPECT' => 1,
|
||||
'gl___INLINE' => 1,
|
||||
'gltests_LIBOBJ' => 1,
|
||||
'gltests_LIBSOURCES' => 1,
|
||||
'gltests_REPLACE_FUNCS' => 1,
|
||||
'grub_ASM_USCORE' => 1,
|
||||
'grub_CHECK_BSS_START_SYMBOL' => 1,
|
||||
'grub_CHECK_END_SYMBOL' => 1,
|
||||
'grub_CHECK_LINK_DIR' => 1,
|
||||
'grub_CHECK_LINK_PIE' => 1,
|
||||
'grub_CHECK_NO_PIE' => 1,
|
||||
'grub_CHECK_NO_PIE_ONEWORD' => 1,
|
||||
'grub_CHECK_PIC' => 1,
|
||||
'grub_CHECK_PIE' => 1,
|
||||
'grub_CHECK_STACK_ARG_PROBE' => 1,
|
||||
'grub_CHECK_STACK_PROTECTOR' => 1,
|
||||
'grub_PROG_LD_BUILD_ID_NONE' => 1,
|
||||
'grub_PROG_NM_DEFINED_ONLY' => 1,
|
||||
'grub_PROG_NM_MINUS_P' => 1,
|
||||
'grub_PROG_NM_WORKS' => 1,
|
||||
'grub_PROG_OBJCOPY_ABSOLUTE' => 1,
|
||||
'grub_PROG_TARGET_CC' => 1,
|
||||
'grub_TRANSFORM' => 1,
|
||||
'gt_AC_TYPE_INTMAX_T' => 1,
|
||||
'gt_GLIBC2' => 1,
|
||||
'gt_INTDIV0' => 1,
|
||||
'gt_INTL_MACOSX' => 1,
|
||||
'gt_INTL_SUBDIR_CORE' => 1,
|
||||
'gt_INTTYPES_PRI' => 1,
|
||||
'gt_LC_MESSAGES' => 1,
|
||||
'gt_LOCALE_FR' => 1,
|
||||
'gt_LOCALE_FR_UTF8' => 1,
|
||||
'gt_LOCALE_JA' => 1,
|
||||
'gt_LOCALE_ZH_CN' => 1,
|
||||
'gt_PRINTF_POSIX' => 1,
|
||||
'gt_TYPE_INTMAX_T' => 1,
|
||||
'gt_TYPE_SSIZE_T' => 1,
|
||||
'gt_TYPE_WCHAR_T' => 1,
|
||||
'gt_TYPE_WINT_T' => 1,
|
||||
'include' => 1,
|
||||
'm4_include' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'm4_pattern_forbid' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'2',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'/usr/share/autoconf/autoconf/trailer.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'GTK_DOC_CHECK' => 1,
|
||||
'IT_PROG_INTLTOOL' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'include' => 1,
|
||||
'm4_include' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'sinclude' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+364
@@ -0,0 +1,364 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2025-06-18.21; # UTC
|
||||
|
||||
# Copyright (C) 1999-2025 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# 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, 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, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file unneeded_conversions
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no
|
||||
# conversion will take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then
|
||||
# MSYS2 environment.
|
||||
file_conv=cygwin
|
||||
else
|
||||
# Original MinGW environment.
|
||||
file_conv=mingw
|
||||
fi
|
||||
;;
|
||||
MSYS*)
|
||||
# Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell.
|
||||
file_conv=cygwin
|
||||
;;
|
||||
CYGWIN*)
|
||||
# Cygwin environment.
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
# This is the optimization mentioned above:
|
||||
# If UNNEEDED_CONVERSIONS contains $file_conv, don't convert.
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/*)
|
||||
file=`cygpath -w "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/lib$lib.a"; then
|
||||
found=yes
|
||||
lib=$dir/lib$lib.a
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.lo | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
GNU Automake home page: <https://www.gnu.org/software/automake/>.
|
||||
General help using GNU software: <https://www.gnu.org/gethelp/>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile (GNU Automake) $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||
clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
|
||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%Y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
+86
-25
@@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright 1992-2022 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2024 Free Software Foundation, Inc.
|
||||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2022-01-09'
|
||||
timestamp='2024-07-27'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'`
|
||||
usage="\
|
||||
Usage: $0 [OPTION]
|
||||
|
||||
Output the configuration name of the system \`$me' is run on.
|
||||
Output the configuration name of the system '$me' is run on.
|
||||
|
||||
Options:
|
||||
-h, --help print this help, then exit
|
||||
@@ -60,13 +60,13 @@ version="\
|
||||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright 1992-2022 Free Software Foundation, Inc.
|
||||
Copyright 1992-2024 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
||||
help="
|
||||
Try \`$me --help' for more information."
|
||||
Try '$me --help' for more information."
|
||||
|
||||
# Parse command line
|
||||
while test $# -gt 0 ; do
|
||||
@@ -102,8 +102,8 @@ GUESS=
|
||||
# temporary files to be created and, as you can see below, it is a
|
||||
# headache to deal with in a portable fashion.
|
||||
|
||||
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
|
||||
# use `HOST_CC' if defined, but it is deprecated.
|
||||
# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
|
||||
# use 'HOST_CC' if defined, but it is deprecated.
|
||||
|
||||
# Portable tmp directory creation inspired by the Autoconf team.
|
||||
|
||||
@@ -123,7 +123,7 @@ set_cc_for_build() {
|
||||
dummy=$tmp/dummy
|
||||
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
|
||||
,,) echo "int x;" > "$dummy.c"
|
||||
for driver in cc gcc c89 c99 ; do
|
||||
for driver in cc gcc c17 c99 c89 ; do
|
||||
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
|
||||
CC_FOR_BUILD=$driver
|
||||
break
|
||||
@@ -155,6 +155,9 @@ Linux|GNU|GNU/*)
|
||||
|
||||
set_cc_for_build
|
||||
cat <<-EOF > "$dummy.c"
|
||||
#if defined(__ANDROID__)
|
||||
LIBC=android
|
||||
#else
|
||||
#include <features.h>
|
||||
#if defined(__UCLIBC__)
|
||||
LIBC=uclibc
|
||||
@@ -162,6 +165,8 @@ Linux|GNU|GNU/*)
|
||||
LIBC=dietlibc
|
||||
#elif defined(__GLIBC__)
|
||||
LIBC=gnu
|
||||
#elif defined(__LLVM_LIBC__)
|
||||
LIBC=llvm
|
||||
#else
|
||||
#include <stdarg.h>
|
||||
/* First heuristic to detect musl libc. */
|
||||
@@ -169,6 +174,7 @@ Linux|GNU|GNU/*)
|
||||
LIBC=musl
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
|
||||
eval "$cc_set_libc"
|
||||
@@ -459,7 +465,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
|
||||
UNAME_RELEASE=`uname -v`
|
||||
;;
|
||||
esac
|
||||
# Japanese Language versions have a version number like `4.1.3-JL'.
|
||||
# Japanese Language versions have a version number like '4.1.3-JL'.
|
||||
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
|
||||
GUESS=sparc-sun-sunos$SUN_REL
|
||||
;;
|
||||
@@ -628,7 +634,8 @@ EOF
|
||||
sed 's/^ //' << EOF > "$dummy.c"
|
||||
#include <sys/systemcfg.h>
|
||||
|
||||
main()
|
||||
int
|
||||
main ()
|
||||
{
|
||||
if (!__power_pc())
|
||||
exit(1);
|
||||
@@ -712,7 +719,8 @@ EOF
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main ()
|
||||
int
|
||||
main ()
|
||||
{
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
long bits = sysconf(_SC_KERNEL_BITS);
|
||||
@@ -904,7 +912,7 @@ EOF
|
||||
fi
|
||||
;;
|
||||
*:FreeBSD:*:*)
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
UNAME_PROCESSOR=`uname -p`
|
||||
case $UNAME_PROCESSOR in
|
||||
amd64)
|
||||
UNAME_PROCESSOR=x86_64 ;;
|
||||
@@ -966,11 +974,37 @@ EOF
|
||||
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||
GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
|
||||
;;
|
||||
x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
|
||||
GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
|
||||
;;
|
||||
*:[Mm]anagarm:*:*)
|
||||
GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
|
||||
;;
|
||||
*:Minix:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-minix
|
||||
;;
|
||||
aarch64:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
set_cc_for_build
|
||||
CPU=$UNAME_MACHINE
|
||||
LIBCABI=$LIBC
|
||||
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||
ABI=64
|
||||
sed 's/^ //' << EOF > "$dummy.c"
|
||||
#ifdef __ARM_EABI__
|
||||
#ifdef __ARM_PCS_VFP
|
||||
ABI=eabihf
|
||||
#else
|
||||
ABI=eabi
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
|
||||
eval "$cc_set_abi"
|
||||
case $ABI in
|
||||
eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
|
||||
esac
|
||||
fi
|
||||
GUESS=$CPU-unknown-linux-$LIBCABI
|
||||
;;
|
||||
aarch64_be:Linux:*:*)
|
||||
UNAME_MACHINE=aarch64_be
|
||||
@@ -1036,7 +1070,16 @@ EOF
|
||||
k1om:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
;;
|
||||
loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
|
||||
kvx:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
;;
|
||||
kvx:cos:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-cos
|
||||
;;
|
||||
kvx:mbr:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-mbr
|
||||
;;
|
||||
loongarch32:Linux:*:* | loongarch64:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
;;
|
||||
m32r*:Linux:*:*)
|
||||
@@ -1151,16 +1194,27 @@ EOF
|
||||
;;
|
||||
x86_64:Linux:*:*)
|
||||
set_cc_for_build
|
||||
CPU=$UNAME_MACHINE
|
||||
LIBCABI=$LIBC
|
||||
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_X32 >/dev/null
|
||||
then
|
||||
LIBCABI=${LIBC}x32
|
||||
fi
|
||||
ABI=64
|
||||
sed 's/^ //' << EOF > "$dummy.c"
|
||||
#ifdef __i386__
|
||||
ABI=x86
|
||||
#else
|
||||
#ifdef __ILP32__
|
||||
ABI=x32
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
|
||||
eval "$cc_set_abi"
|
||||
case $ABI in
|
||||
x86) CPU=i686 ;;
|
||||
x32) LIBCABI=${LIBC}x32 ;;
|
||||
esac
|
||||
fi
|
||||
GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
|
||||
GUESS=$CPU-pc-linux-$LIBCABI
|
||||
;;
|
||||
xtensa*:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
@@ -1180,7 +1234,7 @@ EOF
|
||||
GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
|
||||
;;
|
||||
i*86:OS/2:*:*)
|
||||
# If we were able to find `uname', then EMX Unix compatibility
|
||||
# If we were able to find 'uname', then EMX Unix compatibility
|
||||
# is probably installed.
|
||||
GUESS=$UNAME_MACHINE-pc-os2-emx
|
||||
;;
|
||||
@@ -1321,7 +1375,7 @@ EOF
|
||||
GUESS=ns32k-sni-sysv
|
||||
fi
|
||||
;;
|
||||
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||
PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
GUESS=i586-unisys-sysv4
|
||||
;;
|
||||
@@ -1367,8 +1421,11 @@ EOF
|
||||
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
||||
GUESS=i586-pc-haiku
|
||||
;;
|
||||
x86_64:Haiku:*:*)
|
||||
GUESS=x86_64-unknown-haiku
|
||||
ppc:Haiku:*:*) # Haiku running on Apple PowerPC
|
||||
GUESS=powerpc-apple-haiku
|
||||
;;
|
||||
*:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
|
||||
GUESS=$UNAME_MACHINE-unknown-haiku
|
||||
;;
|
||||
SX-4:SUPER-UX:*:*)
|
||||
GUESS=sx4-nec-superux$UNAME_RELEASE
|
||||
@@ -1540,6 +1597,9 @@ EOF
|
||||
*:Unleashed:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
|
||||
;;
|
||||
*:Ironclad:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-ironclad
|
||||
;;
|
||||
esac
|
||||
|
||||
# Do we have a guess based on uname results?
|
||||
@@ -1563,6 +1623,7 @@ cat > "$dummy.c" <<EOF
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
int
|
||||
main ()
|
||||
{
|
||||
#if defined (sony)
|
||||
|
||||
+703
-239
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
scriptversion=2025-06-18.21; # UTC
|
||||
|
||||
# Copyright (C) 1999-2022 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2025 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
|
||||
@@ -47,11 +47,13 @@ Environment variables:
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
GNU Automake home page: <https://www.gnu.org/software/automake/>.
|
||||
General help using GNU software: <https://www.gnu.org/gethelp/>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
echo "depcomp (GNU Automake) $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
@@ -127,7 +129,7 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Avoid interferences from the environment.
|
||||
# Avoid interference from the environment.
|
||||
gccflag= dashmflag=
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
@@ -197,8 +199,8 @@ gcc3)
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||
## Note that this doesn't just cater to obsolete pre-3.x GCC compilers.
|
||||
## but also to in-use compilers like IBM xlc/xlC and the HP C compiler.
|
||||
## (see the conditional assignment to $gccflag above).
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
@@ -782,9 +784,9 @@ exit 0
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-format: "%Y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2020-11-14.01; # UTC
|
||||
scriptversion=2025-06-18.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@@ -124,9 +124,9 @@ it's up to you to specify -f if you want it.
|
||||
|
||||
If -S is not specified, no backups are attempted.
|
||||
|
||||
Email bug reports to bug-automake@gnu.org.
|
||||
Automake home page: https://www.gnu.org/software/automake/
|
||||
"
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
GNU Automake home page: <https://www.gnu.org/software/automake/>.
|
||||
General help using GNU software: <https://www.gnu.org/gethelp/>."
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
@@ -170,7 +170,7 @@ while test $# -ne 0; do
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
--version) echo "$0 (GNU Automake) $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
@@ -345,7 +345,7 @@ do
|
||||
' 0
|
||||
|
||||
# Because "mkdir -p" follows existing symlinks and we likely work
|
||||
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
||||
# directly in world-writable /tmp, make sure that the '$tmpdir'
|
||||
# directory is successfully created first before we actually test
|
||||
# 'mkdir -p'.
|
||||
if (umask $mkdir_umask &&
|
||||
@@ -353,7 +353,7 @@ do
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# Check for POSIX incompatibility with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
@@ -533,9 +533,9 @@ do
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-format: "%Y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
#!/bin/sh
|
||||
# Get modification time of a file or directory and pretty-print it.
|
||||
# Get modification time of a file or directory, or value of
|
||||
# $SOURCE_DATE_EPOCH, and pretty-print it, formatted like 1 January 2000.
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
scriptversion=2025-06-25.21; # UTC
|
||||
|
||||
# Copyright (C) 1995-2022 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1995-2025 Free Software Foundation, Inc.
|
||||
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@@ -50,21 +51,46 @@ Pretty-print the modification day of FILE, in the format:
|
||||
1 January 1970
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
GNU Automake home page: <https://www.gnu.org/software/automake/>.
|
||||
General help using GNU software: <https://www.gnu.org/gethelp/>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "mdate-sh $scriptversion"
|
||||
echo "mdate-sh (GNU Automake) $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
# Warn if more than one file given.
|
||||
if test $# -ne 1; then
|
||||
echo "$0: warning: multiple files given, using first: $*" >&2
|
||||
fi
|
||||
|
||||
error ()
|
||||
{
|
||||
echo "$0: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# set $month ("January") and $nummonth (1) given arg MON ("Jan").
|
||||
mon_to_month ()
|
||||
{
|
||||
case $1 in
|
||||
Jan) month=January; nummonth=1;;
|
||||
Feb) month=February; nummonth=2;;
|
||||
Mar) month=March; nummonth=3;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Prevent date giving response in another language.
|
||||
LANG=C
|
||||
@@ -78,6 +104,7 @@ export LC_TIME
|
||||
TZ=UTC0
|
||||
export TZ
|
||||
|
||||
#
|
||||
# GNU ls changes its time format in response to the TIME_STYLE
|
||||
# variable. Since we cannot assume 'unset' works, revert this
|
||||
# variable to its documented default.
|
||||
@@ -123,20 +150,7 @@ do
|
||||
shift
|
||||
# Add another shift to the command.
|
||||
command="$command shift;"
|
||||
case $1 in
|
||||
Jan) month=January; nummonth=1;;
|
||||
Feb) month=February; nummonth=2;;
|
||||
Mar) month=March; nummonth=3;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
mon_to_month $1
|
||||
done
|
||||
|
||||
test -n "$month" || error "failed parsing '$ls_command /' output"
|
||||
@@ -150,7 +164,6 @@ eval $command
|
||||
# Because of the dummy argument above, month is in $2.
|
||||
#
|
||||
# On a POSIX system, we should have
|
||||
#
|
||||
# $# = 5
|
||||
# $1 = file size
|
||||
# $2 = month
|
||||
@@ -159,7 +172,6 @@ eval $command
|
||||
# $5 = filename
|
||||
#
|
||||
# On Darwin 7.7.0 and 7.6.0, we have
|
||||
#
|
||||
# $# = 4
|
||||
# $1 = day
|
||||
# $2 = month
|
||||
@@ -167,20 +179,7 @@ eval $command
|
||||
# $4 = filename
|
||||
|
||||
# Get the month.
|
||||
case $2 in
|
||||
Jan) month=January; nummonth=1;;
|
||||
Feb) month=February; nummonth=2;;
|
||||
Mar) month=March; nummonth=3;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
mon_to_month $2
|
||||
|
||||
case $3 in
|
||||
???*) day=$1;;
|
||||
@@ -205,9 +204,9 @@ case $3 in
|
||||
Nov) nummonthtod=11;;
|
||||
Dec) nummonthtod=12;;
|
||||
esac
|
||||
# For the first six month of the year the time notation can also
|
||||
# For the first six months of the year the time notation can also
|
||||
# be used for files modified in the last year.
|
||||
if (expr $nummonth \> $nummonthtod) > /dev/null;
|
||||
if (expr $nummonth \> $nummonthtod) >/dev/null;
|
||||
then
|
||||
year=`expr $year - 1`
|
||||
fi;;
|
||||
@@ -220,9 +219,9 @@ echo $day $month $year
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-format: "%Y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#! /bin/sh
|
||||
# Common wrapper for a few potentially missing GNU programs.
|
||||
# Common wrapper for a few potentially missing GNU and other programs.
|
||||
|
||||
scriptversion=2013-10-28.13; # UTC
|
||||
scriptversion=2025-06-18.21; # UTC
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells
|
||||
|
||||
# Copyright (C) 1996-2025 Free Software Foundation, Inc.
|
||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@@ -17,7 +19,7 @@ scriptversion=2013-10-28.13; # UTC
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@@ -54,18 +56,20 @@ Options:
|
||||
-v, --version output version information and exit
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal autoconf autoheader autom4te automake makeinfo
|
||||
bison yacc flex lex help2man
|
||||
aclocal autoconf autogen autoheader autom4te automake autoreconf
|
||||
bison flex help2man lex makeinfo perl yacc
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
||||
'g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
GNU Automake home page: <https://www.gnu.org/software/automake/>.
|
||||
General help using GNU software: <https://www.gnu.org/gethelp/>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
echo "missing (GNU Automake) $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
@@ -101,14 +105,14 @@ else
|
||||
exit $st
|
||||
fi
|
||||
|
||||
perl_URL=http://www.perl.org/
|
||||
flex_URL=http://flex.sourceforge.net/
|
||||
gnu_software_URL=http://www.gnu.org/software
|
||||
perl_URL=https://www.perl.org/
|
||||
flex_URL=https://github.com/westes/flex
|
||||
gnu_software_URL=https://www.gnu.org/software
|
||||
|
||||
program_details ()
|
||||
{
|
||||
case $1 in
|
||||
aclocal|automake)
|
||||
aclocal|automake|autoreconf)
|
||||
echo "The '$1' program is part of the GNU Automake package:"
|
||||
echo "<$gnu_software_URL/automake>"
|
||||
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
||||
@@ -123,6 +127,9 @@ program_details ()
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
*)
|
||||
:
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -137,48 +144,55 @@ give_advice ()
|
||||
printf '%s\n' "'$1' is $msg."
|
||||
|
||||
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
||||
autoheader_deps="'acconfig.h'"
|
||||
automake_deps="'Makefile.am'"
|
||||
aclocal_deps="'acinclude.m4'"
|
||||
case $normalized_program in
|
||||
aclocal*)
|
||||
echo "You should only need it if you modified $aclocal_deps or"
|
||||
echo "$configure_deps."
|
||||
;;
|
||||
autoconf*)
|
||||
echo "You should only need it if you modified 'configure.ac',"
|
||||
echo "or m4 files included by it."
|
||||
program_details 'autoconf'
|
||||
echo "You should only need it if you modified $configure_deps."
|
||||
;;
|
||||
autogen*)
|
||||
echo "You should only need it if you modified a '.def' or '.tpl' file."
|
||||
echo "You may want to install the GNU AutoGen package:"
|
||||
echo "<$gnu_software_URL/autogen/>"
|
||||
;;
|
||||
autoheader*)
|
||||
echo "You should only need it if you modified 'acconfig.h' or"
|
||||
echo "You should only need it if you modified $autoheader_deps or"
|
||||
echo "$configure_deps."
|
||||
program_details 'autoheader'
|
||||
;;
|
||||
automake*)
|
||||
echo "You should only need it if you modified 'Makefile.am' or"
|
||||
echo "You should only need it if you modified $automake_deps or"
|
||||
echo "$configure_deps."
|
||||
program_details 'automake'
|
||||
;;
|
||||
aclocal*)
|
||||
echo "You should only need it if you modified 'acinclude.m4' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'aclocal'
|
||||
;;
|
||||
autom4te*)
|
||||
autom4te*)
|
||||
echo "You might have modified some maintainer files that require"
|
||||
echo "the 'autom4te' program to be rebuilt."
|
||||
program_details 'autom4te'
|
||||
;;
|
||||
autoreconf*)
|
||||
echo "You should only need it if you modified $aclocal_deps or"
|
||||
echo "$automake_deps or $autoheader_deps or $automake_deps or"
|
||||
echo "$configure_deps."
|
||||
;;
|
||||
bison*|yacc*)
|
||||
echo "You should only need it if you modified a '.y' file."
|
||||
echo "You may want to install the GNU Bison package:"
|
||||
echo "<$gnu_software_URL/bison/>"
|
||||
;;
|
||||
lex*|flex*)
|
||||
echo "You should only need it if you modified a '.l' file."
|
||||
echo "You may want to install the Fast Lexical Analyzer package:"
|
||||
echo "<$flex_URL>"
|
||||
;;
|
||||
help2man*)
|
||||
echo "You should only need it if you modified a dependency" \
|
||||
"of a man page."
|
||||
echo "You may want to install the GNU Help2man package:"
|
||||
echo "<$gnu_software_URL/help2man/>"
|
||||
;;
|
||||
lex*|flex*)
|
||||
echo "You should only need it if you modified a '.l' file."
|
||||
echo "You may want to install the Fast Lexical Analyzer package:"
|
||||
echo "<$flex_URL>"
|
||||
;;
|
||||
makeinfo*)
|
||||
echo "You should only need it if you modified a '.texi' file, or"
|
||||
echo "any other file indirectly affecting the aspect of the manual."
|
||||
@@ -189,6 +203,12 @@ give_advice ()
|
||||
echo "want to install GNU make:"
|
||||
echo "<$gnu_software_URL/make/>"
|
||||
;;
|
||||
perl*)
|
||||
echo "You should only need it to run GNU Autoconf, GNU Automake, "
|
||||
echo " assorted other tools, or if you modified a Perl source file."
|
||||
echo "You may want to install the Perl 5 language interpreter:"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
*)
|
||||
echo "You might have modified some files without having the proper"
|
||||
echo "tools for further handling them. Check the 'README' file, it"
|
||||
@@ -197,6 +217,7 @@ give_advice ()
|
||||
echo "case some other package contains this missing '$1' program."
|
||||
;;
|
||||
esac
|
||||
program_details "$normalized_program"
|
||||
}
|
||||
|
||||
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||
@@ -207,9 +228,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||
exit $st
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-format: "%Y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#! /bin/sh
|
||||
# test-driver - basic testsuite driver script.
|
||||
|
||||
scriptversion=2013-07-13.22; # UTC
|
||||
scriptversion=2025-06-18.21; # UTC
|
||||
|
||||
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2025 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
|
||||
@@ -16,7 +16,7 @@ scriptversion=2013-07-13.22; # UTC
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@@ -42,11 +42,18 @@ print_usage ()
|
||||
{
|
||||
cat <<END
|
||||
Usage:
|
||||
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
|
||||
[--expect-failure={yes|no}] [--color-tests={yes|no}]
|
||||
[--enable-hard-errors={yes|no}] [--]
|
||||
test-driver --test-name NAME --log-file PATH --trs-file PATH
|
||||
[--expect-failure {yes|no}] [--color-tests {yes|no}]
|
||||
[--collect-skipped-logs {yes|no}]
|
||||
[--enable-hard-errors {yes|no}] [--]
|
||||
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
|
||||
|
||||
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
|
||||
See the GNU Automake documentation for information.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
GNU Automake home page: <https://www.gnu.org/software/automake/>.
|
||||
General help using GNU software: <https://www.gnu.org/gethelp/>.
|
||||
END
|
||||
}
|
||||
|
||||
@@ -55,15 +62,17 @@ log_file= # Where to save the output of the test script.
|
||||
trs_file= # Where to save the metadata of the test run.
|
||||
expect_failure=no
|
||||
color_tests=no
|
||||
collect_skipped_logs=yes
|
||||
enable_hard_errors=yes
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
--help) print_usage; exit $?;;
|
||||
--version) echo "test-driver $scriptversion"; exit $?;;
|
||||
--version) echo "test-driver (GNU Automake) $scriptversion"; exit $?;;
|
||||
--test-name) test_name=$2; shift;;
|
||||
--log-file) log_file=$2; shift;;
|
||||
--trs-file) trs_file=$2; shift;;
|
||||
--color-tests) color_tests=$2; shift;;
|
||||
--collect-skipped-logs) collect_skipped_logs=$2; shift;;
|
||||
--expect-failure) expect_failure=$2; shift;;
|
||||
--enable-hard-errors) enable_hard_errors=$2; shift;;
|
||||
--) shift; break;;
|
||||
@@ -103,8 +112,11 @@ trap "st=130; $do_exit" 2
|
||||
trap "st=141; $do_exit" 13
|
||||
trap "st=143; $do_exit" 15
|
||||
|
||||
# Test script is run here.
|
||||
"$@" >$log_file 2>&1
|
||||
# Test script is run here. We create the file first, then append to it,
|
||||
# to ameliorate tests themselves also writing to the log file. Our tests
|
||||
# don't, but others can (automake bug#35762).
|
||||
: >"$log_file"
|
||||
"$@" >>"$log_file" 2>&1
|
||||
estatus=$?
|
||||
|
||||
if test $enable_hard_errors = no && test $estatus -eq 99; then
|
||||
@@ -116,7 +128,7 @@ fi
|
||||
case $tweaked_estatus:$expect_failure in
|
||||
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
|
||||
0:*) col=$grn res=PASS recheck=no gcopy=no;;
|
||||
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
|
||||
77:*) col=$blu res=SKIP recheck=no gcopy=$collect_skipped_logs;;
|
||||
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
|
||||
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
|
||||
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
|
||||
@@ -126,7 +138,7 @@ esac
|
||||
# know whether the test passed or failed simply by looking at the '.log'
|
||||
# file, without the need of also peaking into the corresponding '.trs'
|
||||
# file (automake bug#11814).
|
||||
echo "$res $test_name (exit status: $estatus)" >>$log_file
|
||||
echo "$res $test_name (exit status: $estatus)" >>"$log_file"
|
||||
|
||||
# Report outcome to console.
|
||||
echo "${col}${res}${std}: $test_name"
|
||||
@@ -140,9 +152,9 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-format: "%Y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+13435
-10036
File diff suppressed because it is too large
Load Diff
Executable
+46626
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.18.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2025 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -69,6 +69,8 @@ am__make_running_with_option = \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
am__rm_f = rm -f $(am__rm_f_notfound)
|
||||
am__rm_rf = rm -rf $(am__rm_f_notfound)
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@@ -139,9 +141,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/open-cloexec.m4 \
|
||||
$(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
|
||||
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
|
||||
$(top_srcdir)/m4/pid_t.m4 $(top_srcdir)/m4/pipe.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
|
||||
$(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||
$(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
|
||||
@@ -149,28 +150,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/setlocale_null.m4 \
|
||||
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
|
||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \
|
||||
$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/std-gnu11.m4 \
|
||||
$(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||
$(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||
$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
||||
$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \
|
||||
$(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
|
||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
|
||||
$(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \
|
||||
$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
||||
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strchrnul.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
|
||||
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||
$(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \
|
||||
$(top_srcdir)/m4/sysexits.m4 $(top_srcdir)/m4/threadlib.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vararrays.m4 \
|
||||
$(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
|
||||
$(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
|
||||
$(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
|
||||
$(top_srcdir)/m4/wmemchr.m4 $(top_srcdir)/m4/wmempcpy.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/year2038.m4 \
|
||||
$(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/vsnprintf.m4 \
|
||||
$(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
|
||||
$(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \
|
||||
$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
|
||||
$(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xsize.m4 \
|
||||
$(top_srcdir)/m4/year2038.m4 $(top_srcdir)/m4/zzgnulib.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \
|
||||
@@ -263,10 +263,9 @@ am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
{ test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
|
||||
}
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(grub_TEXINFOS) $(srcdir)/Makefile.in \
|
||||
@@ -314,6 +313,8 @@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CMP = @CMP@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
@@ -335,6 +336,7 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
|
||||
EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
|
||||
EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
|
||||
ERRNO_H = @ERRNO_H@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FLOAT_H = @FLOAT_H@
|
||||
FNMATCH_H = @FNMATCH_H@
|
||||
@@ -1356,8 +1358,10 @@ ac_ct_TARGET_CC = @ac_ct_TARGET_CC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__rm_f_notfound = @am__rm_f_notfound@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
am__xargs_n = @am__xargs_n@
|
||||
bindir = @bindir@
|
||||
bootdirname = @bootdirname@
|
||||
build = @build@
|
||||
@@ -1469,8 +1473,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
@@ -1507,13 +1511,13 @@ $(am__aclocal_m4_deps):
|
||||
.texi.dvi:
|
||||
$(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
|
||||
$(TEXI2DVI) $(AM_TEXI2FLAGS) -I $(srcdir) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
|
||||
$<
|
||||
|
||||
.texi.pdf:
|
||||
$(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
|
||||
$(TEXI2PDF) $(AM_TEXI2FLAGS) -I $(srcdir) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
|
||||
$<
|
||||
|
||||
.texi.html:
|
||||
@@ -1654,12 +1658,10 @@ dist-info: $(INFO_DEPS)
|
||||
done
|
||||
|
||||
mostlyclean-aminfo:
|
||||
-rm -rf grub.t2d grub.t2p grub-dev.t2d grub-dev.t2p
|
||||
-$(am__rm_rf) grub.t2d grub.t2p grub-dev.t2d grub-dev.t2p
|
||||
|
||||
clean-aminfo:
|
||||
-test -z "grub.dvi grub.pdf grub.ps grub.html grub-dev.dvi grub-dev.pdf \
|
||||
grub-dev.ps grub-dev.html" \
|
||||
|| rm -rf grub.dvi grub.pdf grub.ps grub.html grub-dev.dvi grub-dev.pdf \
|
||||
-$(am__rm_rf) grub.dvi grub.pdf grub.ps grub.html grub-dev.dvi grub-dev.pdf \
|
||||
grub-dev.ps grub-dev.html
|
||||
|
||||
maintainer-clean-aminfo:
|
||||
@@ -1675,7 +1677,10 @@ ctags CTAGS:
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@@ -1739,8 +1744,8 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@@ -1929,3 +1934,10 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
# Tell GNU make to disable its built-in pattern rules.
|
||||
%:: %,v
|
||||
%:: RCS/%,v
|
||||
%:: RCS/%
|
||||
%:: s.%
|
||||
%:: SCCS/s.%
|
||||
|
||||
@@ -23466,6 +23466,26 @@ bli.marker: $(bli_module_SOURCES) $(nodist_bli_module_SOURCES)
|
||||
$(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bli_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1)
|
||||
grep 'MARKER' $@.new | grep -v '^#' > $@; rm -f $@.new
|
||||
endif
|
||||
platform_PROGRAMS += redoxfs.module
|
||||
MODULE_FILES += redoxfs.module$(EXEEXT)
|
||||
redoxfs_module_SOURCES = fs/redoxfs.c ## platform sources
|
||||
nodist_redoxfs_module_SOURCES = ## platform nodist sources
|
||||
redoxfs_module_LDADD =
|
||||
redoxfs_module_CFLAGS = $(AM_CFLAGS) $(CFLAGS_MODULE) -DGRUB_BUILD
|
||||
redoxfs_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE)
|
||||
redoxfs_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE)
|
||||
redoxfs_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE)
|
||||
redoxfs_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
|
||||
dist_noinst_DATA +=
|
||||
BUILT_SOURCES += $(nodist_redoxfs_module_SOURCES)
|
||||
CLEANFILES += $(nodist_redoxfs_module_SOURCES)
|
||||
MOD_FILES += redoxfs.mod
|
||||
MARKER_FILES += redoxfs.marker
|
||||
CLEANFILES += redoxfs.marker
|
||||
|
||||
redoxfs.marker: $(redoxfs_module_SOURCES) $(nodist_redoxfs_module_SOURCES)
|
||||
$(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(redoxfs_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1)
|
||||
grep 'MARKER' $@.new | grep -v '^#' > $@; rm -f $@.new
|
||||
platform_PROGRAMS += gcry_arcfour.module
|
||||
MODULE_FILES += gcry_arcfour.module$(EXEEXT)
|
||||
gcry_arcfour_module_SOURCES = lib/libgcrypt-grub/cipher/arcfour.c ## platform sources
|
||||
|
||||
@@ -2595,3 +2595,9 @@ module = {
|
||||
efi = commands/bli.c;
|
||||
enable = efi;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = redoxfs;
|
||||
common = fs/redoxfs.c;
|
||||
cflags = '-DGRUB_BUILD';
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,312 @@
|
||||
#ifndef GRUB_REDOXFS_H
|
||||
#define GRUB_REDOXFS_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if defined(GRUB_BUILD) || defined(GRUB_MACHINE) || defined(GRUB_MACHINE_EFI)
|
||||
#include <grub/err.h>
|
||||
#include <grub/types.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
|
||||
typedef uint64_t grub_uint64_t;
|
||||
typedef uint32_t grub_uint32_t;
|
||||
typedef uint16_t grub_uint16_t;
|
||||
typedef uint8_t grub_uint8_t;
|
||||
typedef int64_t grub_int64_t;
|
||||
typedef uint64_t grub_off_t;
|
||||
typedef uint64_t grub_disk_addr_t;
|
||||
typedef int64_t grub_ssize_t;
|
||||
typedef uint64_t grub_size_t;
|
||||
|
||||
/* On x86 (our test host), these are identity — on big-endian they byte-swap. */
|
||||
#define grub_le_to_cpu16(x) (x)
|
||||
#define grub_le_to_cpu32(x) (x)
|
||||
#define grub_le_to_cpu64(x) (x)
|
||||
|
||||
typedef enum {
|
||||
GRUB_ERR_NONE = 0,
|
||||
GRUB_ERR_BAD_FS,
|
||||
GRUB_ERR_OUT_OF_RANGE,
|
||||
GRUB_ERR_READ_ERROR,
|
||||
GRUB_ERR_FILE_NOT_FOUND,
|
||||
GRUB_ERR_OUT_OF_MEMORY,
|
||||
} grub_err_t;
|
||||
|
||||
#define GRUB_MAX_ERRMSG 256
|
||||
extern grub_err_t grub_errno;
|
||||
extern char grub_errmsg[GRUB_MAX_ERRMSG];
|
||||
#endif
|
||||
|
||||
#ifndef GRUB_PACKED
|
||||
#define GRUB_PACKED __attribute__((packed))
|
||||
#endif
|
||||
|
||||
#define REDOXFS_BLOCK_SIZE 4096
|
||||
#define REDOXFS_SIGNATURE "RedoxFS"
|
||||
#define REDOXFS_VERSION 8
|
||||
#define REDOXFS_RECORD_LEVEL 5
|
||||
#define REDOXFS_RECORD_SIZE (REDOXFS_BLOCK_SIZE << REDOXFS_RECORD_LEVEL)
|
||||
#define REDOXFS_DIR_ENTRY_MAX_LENGTH 252
|
||||
#define REDOXFS_TREE_LIST_ENTRIES 254
|
||||
#define REDOXFS_BLOCK_LIST_ENTRIES 256
|
||||
#define REDOXFS_HTREE_IDX_ENTRIES 204
|
||||
|
||||
#define REDOXFS_NODE_LEVEL0_COUNT 128
|
||||
#define REDOXFS_NODE_LEVEL1_COUNT 64
|
||||
#define REDOXFS_NODE_LEVEL2_COUNT 32
|
||||
#define REDOXFS_NODE_LEVEL3_COUNT 16
|
||||
#define REDOXFS_NODE_LEVEL4_COUNT 8
|
||||
|
||||
#define REDOXFS_MODE_TYPE 0xF000
|
||||
#define REDOXFS_MODE_FILE 0x8000
|
||||
#define REDOXFS_MODE_DIR 0x4000
|
||||
#define REDOXFS_MODE_SYMLINK 0xA000
|
||||
#define REDOXFS_FLAG_INLINE_DATA 0x1
|
||||
|
||||
struct grub_redoxfs_blockptr {
|
||||
grub_uint64_t addr;
|
||||
grub_uint64_t hash;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_treeptr {
|
||||
grub_uint32_t id;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_header {
|
||||
grub_uint8_t signature[8];
|
||||
grub_uint64_t version;
|
||||
grub_uint8_t uuid[16];
|
||||
grub_uint64_t size;
|
||||
grub_uint64_t generation;
|
||||
struct grub_redoxfs_blockptr tree;
|
||||
struct grub_redoxfs_blockptr alloc;
|
||||
grub_uint8_t key_slots[3072];
|
||||
struct grub_redoxfs_blockptr release;
|
||||
grub_uint8_t padding[904];
|
||||
grub_uint8_t encrypted_hash[16];
|
||||
grub_uint64_t hash;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_node {
|
||||
grub_uint16_t mode;
|
||||
grub_uint32_t uid;
|
||||
grub_uint32_t gid;
|
||||
grub_uint32_t links;
|
||||
grub_uint64_t size;
|
||||
grub_uint64_t blocks;
|
||||
grub_uint64_t ctime;
|
||||
grub_uint32_t ctime_nsec;
|
||||
grub_uint64_t mtime;
|
||||
grub_uint32_t mtime_nsec;
|
||||
grub_uint64_t atime;
|
||||
grub_uint32_t atime_nsec;
|
||||
grub_uint32_t record_level;
|
||||
grub_uint32_t flags;
|
||||
grub_uint8_t padding[54];
|
||||
grub_uint8_t level_data[3968];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_treelist {
|
||||
struct grub_redoxfs_blockptr ptrs[REDOXFS_TREE_LIST_ENTRIES];
|
||||
grub_uint8_t full_flags[32];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_htreeptr {
|
||||
grub_uint32_t htree_hash;
|
||||
struct grub_redoxfs_blockptr ptr;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_htreenode {
|
||||
struct grub_redoxfs_htreeptr ptrs[REDOXFS_HTREE_IDX_ENTRIES];
|
||||
grub_uint8_t padding[16];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_dirlist {
|
||||
grub_uint8_t entry_bytes[4092];
|
||||
grub_uint16_t count;
|
||||
grub_uint16_t entry_bytes_len;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_blocklist {
|
||||
struct grub_redoxfs_blockptr ptrs[REDOXFS_BLOCK_LIST_ENTRIES];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_data {
|
||||
struct grub_redoxfs_header header;
|
||||
void *disk;
|
||||
};
|
||||
|
||||
struct grub_fshelp_node {
|
||||
struct grub_redoxfs_data *data;
|
||||
struct grub_redoxfs_node node;
|
||||
};
|
||||
|
||||
static inline grub_uint64_t
|
||||
grub_redoxfs_blockptr_addr (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return grub_le_to_cpu64 (ptr->addr);
|
||||
}
|
||||
|
||||
static inline grub_uint64_t
|
||||
grub_redoxfs_blockptr_hash (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return grub_le_to_cpu64 (ptr->hash);
|
||||
}
|
||||
|
||||
static inline int
|
||||
grub_redoxfs_blockptr_is_null (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_redoxfs_blockptr_addr (ptr) >> 8) == 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
grub_redoxfs_blockptr_is_marker (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_redoxfs_blockptr_addr (ptr) | 0xFULL) == 0xFFFFFFFFFFFFFFFFULL
|
||||
&& grub_redoxfs_blockptr_hash (ptr) == 0xFFFFFFFFFFFFFFFFULL;
|
||||
}
|
||||
|
||||
static inline grub_uint64_t
|
||||
grub_redoxfs_blockptr_block_index (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return grub_redoxfs_blockptr_addr (ptr) >> 8;
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_blockptr_level (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) (grub_redoxfs_blockptr_addr (ptr) & 0xF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_blockptr_decomp_level (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_redoxfs_blockptr_addr (ptr) >> 4) & 0xF);
|
||||
}
|
||||
|
||||
static inline grub_disk_addr_t
|
||||
grub_redoxfs_blockptr_sector (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_disk_addr_t) grub_redoxfs_blockptr_block_index (ptr)
|
||||
* (REDOXFS_BLOCK_SIZE / 512);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i3 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_le_to_cpu32 (ptr->id) >> 24) & 0xFF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i2 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_le_to_cpu32 (ptr->id) >> 16) & 0xFF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i1 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_le_to_cpu32 (ptr->id) >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i0 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) (grub_le_to_cpu32 (ptr->id) & 0xFF);
|
||||
}
|
||||
|
||||
static inline int
|
||||
grub_redoxfs_header_is_encrypted (const struct grub_redoxfs_header *hdr)
|
||||
{
|
||||
grub_uint8_t expected[16] = { 0 };
|
||||
grub_uint64_t h = grub_le_to_cpu64 (hdr->hash);
|
||||
grub_size_t i;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
expected[i] = (grub_uint8_t) (h >> (8 * i));
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
if (hdr->encrypted_hash[i] != expected[i])
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_uint64_t grub_redoxfs_seahash (const void *data, grub_size_t size);
|
||||
grub_err_t grub_redoxfs_probe (void *disk);
|
||||
struct grub_redoxfs_data *grub_redoxfs_mount (void *disk);
|
||||
void grub_redoxfs_unmount (struct grub_redoxfs_data *data);
|
||||
grub_err_t grub_redoxfs_read_block (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_blockptr *ptr,
|
||||
void *buf);
|
||||
grub_err_t grub_redoxfs_read_block_cap (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_blockptr *ptr,
|
||||
void *buf, grub_size_t buf_cap);
|
||||
grub_err_t grub_redoxfs_read_tree (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_treeptr *tptr,
|
||||
void *buf);
|
||||
grub_err_t grub_redoxfs_read_node (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_treeptr *tptr,
|
||||
struct grub_redoxfs_node *node);
|
||||
grub_err_t grub_redoxfs_read_root (const struct grub_redoxfs_data *data,
|
||||
struct grub_redoxfs_node *node);
|
||||
|
||||
grub_uint32_t grub_redoxfs_htree_hash (const char *name, grub_size_t namelen);
|
||||
grub_err_t grub_redoxfs_dir_get_info (const struct grub_redoxfs_node *dir,
|
||||
int *depth_out,
|
||||
struct grub_redoxfs_blockptr *root_ptr_out);
|
||||
grub_err_t grub_redoxfs_dir_lookup (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *dir,
|
||||
const char *name,
|
||||
struct grub_redoxfs_treeptr *result);
|
||||
|
||||
typedef int (*grub_redoxfs_dir_iter_hook_t) (const char *name,
|
||||
grub_size_t namelen,
|
||||
const struct grub_redoxfs_treeptr *ptr,
|
||||
void *hook_data);
|
||||
|
||||
grub_err_t grub_redoxfs_dir_iterate (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *dir,
|
||||
grub_redoxfs_dir_iter_hook_t hook,
|
||||
void *hook_data);
|
||||
|
||||
grub_err_t path_lookup (const struct grub_redoxfs_data *data,
|
||||
const char *path,
|
||||
int follow_symlinks,
|
||||
int symlink_depth,
|
||||
struct grub_redoxfs_node *out_node);
|
||||
grub_err_t grub_redoxfs_read_record (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *node,
|
||||
grub_uint64_t record_index,
|
||||
grub_uint32_t record_level,
|
||||
void *buf);
|
||||
grub_ssize_t grub_redoxfs_read_file_data (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *node,
|
||||
grub_off_t offset,
|
||||
void *buf,
|
||||
grub_size_t len);
|
||||
|
||||
#ifndef GRUB_BUILD
|
||||
grub_err_t grub_disk_read (void *disk, grub_disk_addr_t sector,
|
||||
grub_off_t offset, grub_size_t size, void *buf);
|
||||
#endif
|
||||
|
||||
_Static_assert (sizeof (struct grub_redoxfs_blockptr) == 16,
|
||||
"grub_redoxfs_blockptr must be 16 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_htreeptr) == 20,
|
||||
"grub_redoxfs_htreeptr must be 20 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_header) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_header must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_node) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_node must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_treelist) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_treelist must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_htreenode) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_htreenode must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_dirlist) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_dirlist must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_blocklist) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_blocklist must be 4096 bytes");
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,62 @@
|
||||
#include "redoxfs.h"
|
||||
|
||||
static inline grub_uint64_t
|
||||
seahash_diffuse (grub_uint64_t x)
|
||||
{
|
||||
grub_uint64_t a;
|
||||
grub_uint64_t b;
|
||||
|
||||
x *= 0x6eed0e9da4d94a4fULL;
|
||||
a = x >> 32;
|
||||
b = x >> 60;
|
||||
x ^= a >> b;
|
||||
x *= 0x6eed0e9da4d94a4fULL;
|
||||
return x;
|
||||
}
|
||||
|
||||
static inline grub_uint64_t
|
||||
seahash_read_le64 (const grub_uint8_t *buf, grub_size_t len)
|
||||
{
|
||||
grub_uint64_t x = 0;
|
||||
grub_size_t i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
x |= (grub_uint64_t) buf[i] << (8 * i);
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
grub_uint64_t
|
||||
grub_redoxfs_seahash (const void *data, grub_size_t size)
|
||||
{
|
||||
const grub_uint8_t *buf = (const grub_uint8_t *) data;
|
||||
grub_uint64_t a = 0x16f11fe89b0d677cULL;
|
||||
grub_uint64_t b = 0xb480a793d8e6c86cULL;
|
||||
grub_uint64_t c = 0x6fe2e5aaf078ebc9ULL;
|
||||
grub_uint64_t d = 0x14f994a4c5259381ULL;
|
||||
grub_size_t i = 0;
|
||||
|
||||
for (; i + 8 <= size; i += 8)
|
||||
{
|
||||
grub_uint64_t n = seahash_read_le64 (buf + i, 8);
|
||||
grub_uint64_t new_a = seahash_diffuse (a ^ n);
|
||||
|
||||
a = b;
|
||||
b = c;
|
||||
c = d;
|
||||
d = new_a;
|
||||
}
|
||||
|
||||
if (i < size)
|
||||
{
|
||||
grub_uint64_t n = seahash_read_le64 (buf + i, size - i);
|
||||
grub_uint64_t new_a = seahash_diffuse (a ^ n);
|
||||
|
||||
a = b;
|
||||
b = c;
|
||||
c = d;
|
||||
d = new_a;
|
||||
}
|
||||
|
||||
return seahash_diffuse (a ^ b ^ c ^ d ^ (grub_uint64_t) size);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.18.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2025 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -120,6 +120,8 @@ am__make_running_with_option = \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
am__rm_f = rm -f $(am__rm_f_notfound)
|
||||
am__rm_rf = rm -rf $(am__rm_f_notfound)
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@@ -248,9 +250,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/open-cloexec.m4 \
|
||||
$(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
|
||||
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
|
||||
$(top_srcdir)/m4/pid_t.m4 $(top_srcdir)/m4/pipe.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
|
||||
$(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||
$(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
|
||||
@@ -258,28 +259,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/setlocale_null.m4 \
|
||||
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
|
||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \
|
||||
$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/std-gnu11.m4 \
|
||||
$(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||
$(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||
$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
||||
$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \
|
||||
$(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
|
||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
|
||||
$(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \
|
||||
$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
||||
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strchrnul.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
|
||||
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||
$(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \
|
||||
$(top_srcdir)/m4/sysexits.m4 $(top_srcdir)/m4/threadlib.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vararrays.m4 \
|
||||
$(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
|
||||
$(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
|
||||
$(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
|
||||
$(top_srcdir)/m4/wmemchr.m4 $(top_srcdir)/m4/wmempcpy.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/year2038.m4 \
|
||||
$(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/vsnprintf.m4 \
|
||||
$(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
|
||||
$(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \
|
||||
$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
|
||||
$(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xsize.m4 \
|
||||
$(top_srcdir)/m4/year2038.m4 $(top_srcdir)/m4/zzgnulib.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
|
||||
@@ -289,11 +289,13 @@ CONFIG_HEADER = $(top_builddir)/config-util.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||
AM_V_AR = $(am__v_AR_@AM_V@)
|
||||
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
|
||||
am__v_AR_0 = @echo " AR " $@;
|
||||
am__v_AR_1 =
|
||||
libgnu_a_AR = $(AR) $(ARFLAGS)
|
||||
libgnu_a_RANLIB = $(RANLIB)
|
||||
am__DEPENDENCIES_1 =
|
||||
am__libgnu_a_SOURCES_DIST = argp.h argp-ba.c argp-eexst.c \
|
||||
argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c \
|
||||
@@ -447,7 +449,6 @@ am_libgnu_a_OBJECTS = libgnu_a-argp-ba.$(OBJEXT) \
|
||||
$(am__objects_56) $(am__objects_57) $(am__objects_58) \
|
||||
libgnu_a-xsize.$(OBJEXT)
|
||||
libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
|
||||
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
@@ -462,7 +463,115 @@ am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/alloca.Po \
|
||||
./$(DEPDIR)/libgnu_a-alloca.Po ./$(DEPDIR)/libgnu_a-argp-ba.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-eexst.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-fmtstream.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-fs-xinl.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-help.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-parse.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-pin.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-pv.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-pvh.Po \
|
||||
./$(DEPDIR)/libgnu_a-argp-xinl.Po \
|
||||
./$(DEPDIR)/libgnu_a-asnprintf.Po \
|
||||
./$(DEPDIR)/libgnu_a-base64.Po \
|
||||
./$(DEPDIR)/libgnu_a-basename-lgpl.Po \
|
||||
./$(DEPDIR)/libgnu_a-btowc.Po ./$(DEPDIR)/libgnu_a-calloc.Po \
|
||||
./$(DEPDIR)/libgnu_a-chdir-long.Po \
|
||||
./$(DEPDIR)/libgnu_a-cloexec.Po ./$(DEPDIR)/libgnu_a-close.Po \
|
||||
./$(DEPDIR)/libgnu_a-dirfd.Po \
|
||||
./$(DEPDIR)/libgnu_a-dup-safer-flag.Po \
|
||||
./$(DEPDIR)/libgnu_a-dup-safer.Po ./$(DEPDIR)/libgnu_a-dup2.Po \
|
||||
./$(DEPDIR)/libgnu_a-error.Po ./$(DEPDIR)/libgnu_a-exitfail.Po \
|
||||
./$(DEPDIR)/libgnu_a-fchdir.Po ./$(DEPDIR)/libgnu_a-fcntl.Po \
|
||||
./$(DEPDIR)/libgnu_a-fd-hook.Po \
|
||||
./$(DEPDIR)/libgnu_a-fd-safer-flag.Po \
|
||||
./$(DEPDIR)/libgnu_a-fd-safer.Po \
|
||||
./$(DEPDIR)/libgnu_a-filenamecat-lgpl.Po \
|
||||
./$(DEPDIR)/libgnu_a-float.Po ./$(DEPDIR)/libgnu_a-fnmatch.Po \
|
||||
./$(DEPDIR)/libgnu_a-fnmatch_loop.Po \
|
||||
./$(DEPDIR)/libgnu_a-free.Po ./$(DEPDIR)/libgnu_a-fstat.Po \
|
||||
./$(DEPDIR)/libgnu_a-getcwd-lgpl.Po \
|
||||
./$(DEPDIR)/libgnu_a-getdelim.Po \
|
||||
./$(DEPDIR)/libgnu_a-getdtablesize.Po \
|
||||
./$(DEPDIR)/libgnu_a-getline.Po ./$(DEPDIR)/libgnu_a-getopt.Po \
|
||||
./$(DEPDIR)/libgnu_a-getopt1.Po \
|
||||
./$(DEPDIR)/libgnu_a-getprogname.Po \
|
||||
./$(DEPDIR)/libgnu_a-hard-locale.Po \
|
||||
./$(DEPDIR)/libgnu_a-ialloc.Po ./$(DEPDIR)/libgnu_a-isblank.Po \
|
||||
./$(DEPDIR)/libgnu_a-itold.Po \
|
||||
./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po \
|
||||
./$(DEPDIR)/libgnu_a-localcharset.Po \
|
||||
./$(DEPDIR)/libgnu_a-localeconv.Po \
|
||||
./$(DEPDIR)/libgnu_a-malloc.Po ./$(DEPDIR)/libgnu_a-malloca.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbrtowc.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbsinit.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbsrtowcs-state.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbsrtowcs.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbswidth.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbtowc-lock.Po \
|
||||
./$(DEPDIR)/libgnu_a-mbtowc.Po ./$(DEPDIR)/libgnu_a-memchr.Po \
|
||||
./$(DEPDIR)/libgnu_a-mempcpy.Po \
|
||||
./$(DEPDIR)/libgnu_a-memrchr.Po \
|
||||
./$(DEPDIR)/libgnu_a-msvc-inval.Po \
|
||||
./$(DEPDIR)/libgnu_a-msvc-nothrow.Po \
|
||||
./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po \
|
||||
./$(DEPDIR)/libgnu_a-nl_langinfo.Po \
|
||||
./$(DEPDIR)/libgnu_a-open.Po \
|
||||
./$(DEPDIR)/libgnu_a-openat-die.Po \
|
||||
./$(DEPDIR)/libgnu_a-openat-proc.Po \
|
||||
./$(DEPDIR)/libgnu_a-openat.Po \
|
||||
./$(DEPDIR)/libgnu_a-pipe-safer.Po \
|
||||
./$(DEPDIR)/libgnu_a-pipe.Po \
|
||||
./$(DEPDIR)/libgnu_a-printf-args.Po \
|
||||
./$(DEPDIR)/libgnu_a-printf-parse.Po \
|
||||
./$(DEPDIR)/libgnu_a-progname.Po \
|
||||
./$(DEPDIR)/libgnu_a-rawmemchr.Po \
|
||||
./$(DEPDIR)/libgnu_a-realloc.Po \
|
||||
./$(DEPDIR)/libgnu_a-reallocarray.Po \
|
||||
./$(DEPDIR)/libgnu_a-regcomp.Po ./$(DEPDIR)/libgnu_a-regex.Po \
|
||||
./$(DEPDIR)/libgnu_a-regex_internal.Po \
|
||||
./$(DEPDIR)/libgnu_a-regexec.Po \
|
||||
./$(DEPDIR)/libgnu_a-save-cwd.Po \
|
||||
./$(DEPDIR)/libgnu_a-setlocale-lock.Po \
|
||||
./$(DEPDIR)/libgnu_a-setlocale_null.Po \
|
||||
./$(DEPDIR)/libgnu_a-sleep.Po \
|
||||
./$(DEPDIR)/libgnu_a-stat-time.Po \
|
||||
./$(DEPDIR)/libgnu_a-stat-w32.Po ./$(DEPDIR)/libgnu_a-stat.Po \
|
||||
./$(DEPDIR)/libgnu_a-stdio-read.Po \
|
||||
./$(DEPDIR)/libgnu_a-stdio-write.Po \
|
||||
./$(DEPDIR)/libgnu_a-strcasecmp.Po \
|
||||
./$(DEPDIR)/libgnu_a-strchrnul.Po \
|
||||
./$(DEPDIR)/libgnu_a-strdup.Po \
|
||||
./$(DEPDIR)/libgnu_a-strerror-override.Po \
|
||||
./$(DEPDIR)/libgnu_a-strerror.Po \
|
||||
./$(DEPDIR)/libgnu_a-strncasecmp.Po \
|
||||
./$(DEPDIR)/libgnu_a-strndup.Po \
|
||||
./$(DEPDIR)/libgnu_a-strnlen.Po \
|
||||
./$(DEPDIR)/libgnu_a-strnlen1.Po \
|
||||
./$(DEPDIR)/libgnu_a-unistd.Po \
|
||||
./$(DEPDIR)/libgnu_a-vasnprintf.Po \
|
||||
./$(DEPDIR)/libgnu_a-vsnprintf.Po \
|
||||
./$(DEPDIR)/libgnu_a-wcrtomb.Po \
|
||||
./$(DEPDIR)/libgnu_a-wctype-h.Po \
|
||||
./$(DEPDIR)/libgnu_a-wcwidth.Po \
|
||||
./$(DEPDIR)/libgnu_a-windows-mutex.Po \
|
||||
./$(DEPDIR)/libgnu_a-windows-once.Po \
|
||||
./$(DEPDIR)/libgnu_a-windows-recmutex.Po \
|
||||
./$(DEPDIR)/libgnu_a-windows-rwlock.Po \
|
||||
./$(DEPDIR)/libgnu_a-wmemchr.Po \
|
||||
./$(DEPDIR)/libgnu_a-wmempcpy.Po ./$(DEPDIR)/libgnu_a-xsize.Po \
|
||||
glthread/$(DEPDIR)/libgnu_a-lock.Po \
|
||||
glthread/$(DEPDIR)/libgnu_a-threadlib.Po \
|
||||
malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po \
|
||||
malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po \
|
||||
malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po \
|
||||
malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po \
|
||||
malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po \
|
||||
malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po \
|
||||
uniwidth/$(DEPDIR)/libgnu_a-width.Po
|
||||
am__mv = mv -f
|
||||
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
@@ -503,7 +612,7 @@ am__recursive_targets = \
|
||||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
distdir
|
||||
distdir distdir-am
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
@@ -521,8 +630,6 @@ am__define_uniq_tagged_files = \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in \
|
||||
$(top_srcdir)/build-aux/depcomp alloca.c
|
||||
@@ -593,6 +700,8 @@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CMP = @CMP@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
@@ -614,6 +723,7 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
|
||||
EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
|
||||
EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
|
||||
ERRNO_H = @ERRNO_H@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FLOAT_H = @FLOAT_H@
|
||||
FNMATCH_H = @FNMATCH_H@
|
||||
@@ -1635,8 +1745,10 @@ ac_ct_TARGET_CC = @ac_ct_TARGET_CC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__rm_f_notfound = @am__rm_f_notfound@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
am__xargs_n = @am__xargs_n@
|
||||
bindir = @bindir@
|
||||
bootdirname = @bootdirname@
|
||||
build = @build@
|
||||
@@ -1890,8 +2002,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
@@ -1904,13 +2016,22 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-noinstLIBRARIES:
|
||||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||
-$(am__rm_f) $(noinst_LIBRARIES)
|
||||
|
||||
clean-noinstLTLIBRARIES:
|
||||
-$(am__rm_f) $(noinst_LTLIBRARIES)
|
||||
@list='$(noinst_LTLIBRARIES)'; \
|
||||
locs=`for p in $$list; do echo $$p; done | \
|
||||
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
|
||||
sort -u`; \
|
||||
echo rm -f $${locs}; \
|
||||
$(am__rm_f) $${locs}
|
||||
malloc/$(am__dirstamp):
|
||||
@$(MKDIR_P) malloc
|
||||
@: > malloc/$(am__dirstamp)
|
||||
@: >>malloc/$(am__dirstamp)
|
||||
malloc/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) malloc/$(DEPDIR)
|
||||
@: > malloc/$(DEPDIR)/$(am__dirstamp)
|
||||
@: >>malloc/$(DEPDIR)/$(am__dirstamp)
|
||||
malloc/libgnu_a-dynarray_at_failure.$(OBJEXT): malloc/$(am__dirstamp) \
|
||||
malloc/$(DEPDIR)/$(am__dirstamp)
|
||||
malloc/libgnu_a-dynarray_emplace_enlarge.$(OBJEXT): \
|
||||
@@ -1923,20 +2044,20 @@ malloc/libgnu_a-dynarray_resize_clear.$(OBJEXT): \
|
||||
malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
|
||||
glthread/$(am__dirstamp):
|
||||
@$(MKDIR_P) glthread
|
||||
@: > glthread/$(am__dirstamp)
|
||||
@: >>glthread/$(am__dirstamp)
|
||||
glthread/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) glthread/$(DEPDIR)
|
||||
@: > glthread/$(DEPDIR)/$(am__dirstamp)
|
||||
@: >>glthread/$(DEPDIR)/$(am__dirstamp)
|
||||
glthread/libgnu_a-lock.$(OBJEXT): glthread/$(am__dirstamp) \
|
||||
glthread/$(DEPDIR)/$(am__dirstamp)
|
||||
glthread/libgnu_a-threadlib.$(OBJEXT): glthread/$(am__dirstamp) \
|
||||
glthread/$(DEPDIR)/$(am__dirstamp)
|
||||
uniwidth/$(am__dirstamp):
|
||||
@$(MKDIR_P) uniwidth
|
||||
@: > uniwidth/$(am__dirstamp)
|
||||
@: >>uniwidth/$(am__dirstamp)
|
||||
uniwidth/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) uniwidth/$(DEPDIR)
|
||||
@: > uniwidth/$(DEPDIR)/$(am__dirstamp)
|
||||
@: >>uniwidth/$(DEPDIR)/$(am__dirstamp)
|
||||
uniwidth/libgnu_a-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
|
||||
uniwidth/$(DEPDIR)/$(am__dirstamp)
|
||||
malloc/libgnu_a-dynarray-skeleton.$(OBJEXT): malloc/$(am__dirstamp) \
|
||||
@@ -1945,18 +2066,7 @@ malloc/libgnu_a-dynarray-skeleton.$(OBJEXT): malloc/$(am__dirstamp) \
|
||||
libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES)
|
||||
$(AM_V_at)-rm -f libgnu.a
|
||||
$(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD)
|
||||
$(AM_V_at)$(RANLIB) libgnu.a
|
||||
|
||||
clean-noinstLTLIBRARIES:
|
||||
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||
@list='$(noinst_LTLIBRARIES)'; \
|
||||
locs=`for p in $$list; do echo $$p; done | \
|
||||
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
|
||||
sort -u`; \
|
||||
test -z "$$locs" || { \
|
||||
echo rm -f $${locs}; \
|
||||
rm -f $${locs}; \
|
||||
}
|
||||
$(AM_V_at)$(libgnu_a_RANLIB) libgnu.a
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
@@ -1967,129 +2077,135 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-alloca.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-ba.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-eexst.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-fmtstream.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-fs-xinl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-help.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-parse.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-pin.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-pv.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-pvh.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-xinl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-asnprintf.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-base64.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-basename-lgpl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-btowc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-calloc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-chdir-long.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-cloexec.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-close.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dirfd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup-safer-flag.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup-safer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup2.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-error.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-exitfail.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fchdir.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fcntl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-hook.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-safer-flag.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-safer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-filenamecat-lgpl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-float.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fnmatch.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fnmatch_loop.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-free.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fstat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getcwd-lgpl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getdelim.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getdtablesize.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getline.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getopt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getopt1.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getprogname.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-hard-locale.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-ialloc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-isblank.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-itold.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-localcharset.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-localeconv.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloca.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbrtowc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsinit.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsrtowcs-state.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsrtowcs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbswidth.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbtowc-lock.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbtowc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memchr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mempcpy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memrchr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-inval.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-nothrow.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nl_langinfo.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-open.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat-die.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat-proc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-pipe-safer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-pipe.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-printf-args.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-printf-parse.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-progname.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-rawmemchr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-realloc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-reallocarray.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regcomp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regex.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regex_internal.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regexec.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-save-cwd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setlocale-lock.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setlocale_null.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sleep.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat-time.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat-w32.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stdio-read.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stdio-write.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strcasecmp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strchrnul.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strdup.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strerror-override.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strerror.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strncasecmp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strndup.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strnlen.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strnlen1.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unistd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vasnprintf.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vsnprintf.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wcrtomb.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wctype-h.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wcwidth.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-mutex.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-once.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-recmutex.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-rwlock.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wmemchr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wmempcpy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-xsize.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libgnu_a-lock.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libgnu_a-threadlib.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/libgnu_a-width.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-alloca.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-ba.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-eexst.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-fmtstream.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-fs-xinl.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-help.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-parse.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-pin.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-pv.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-pvh.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-argp-xinl.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-asnprintf.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-base64.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-basename-lgpl.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-btowc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-calloc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-chdir-long.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-cloexec.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-close.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dirfd.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup-safer-flag.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup-safer.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup2.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-error.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-exitfail.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fchdir.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fcntl.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-hook.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-safer-flag.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-safer.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-filenamecat-lgpl.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-float.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fnmatch.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fnmatch_loop.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-free.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fstat.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getcwd-lgpl.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getdelim.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getdtablesize.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getline.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getopt.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getopt1.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getprogname.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-hard-locale.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-ialloc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-isblank.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-itold.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-localcharset.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-localeconv.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloca.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbrtowc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsinit.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsrtowcs-state.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsrtowcs.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbswidth.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbtowc-lock.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbtowc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memchr.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mempcpy.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memrchr.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-inval.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-nothrow.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nl_langinfo.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-open.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat-die.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat-proc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-openat.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-pipe-safer.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-pipe.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-printf-args.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-printf-parse.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-progname.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-rawmemchr.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-realloc.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-reallocarray.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regcomp.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regex.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regex_internal.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regexec.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-save-cwd.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setlocale-lock.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setlocale_null.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sleep.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat-time.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat-w32.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stdio-read.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stdio-write.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strcasecmp.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strchrnul.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strdup.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strerror-override.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strerror.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strncasecmp.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strndup.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strnlen.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strnlen1.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unistd.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vasnprintf.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vsnprintf.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wcrtomb.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wctype-h.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wcwidth.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-mutex.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-once.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-recmutex.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-rwlock.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wmemchr.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wmempcpy.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-xsize.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libgnu_a-lock.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libgnu_a-threadlib.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/libgnu_a-width.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@: >>$@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@@ -3914,7 +4030,10 @@ cscopelist-am: $(am__tagged_files)
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@@ -3977,7 +4096,8 @@ installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-exec: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
@@ -3996,34 +4116,156 @@ install-strip:
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
|
||||
-$(am__rm_f) $(MOSTLYCLEANFILES)
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
-$(am__rm_f) $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
-rm -f glthread/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f glthread/$(am__dirstamp)
|
||||
-rm -f malloc/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f malloc/$(am__dirstamp)
|
||||
-rm -f uniwidth/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f uniwidth/$(am__dirstamp)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
|
||||
-$(am__rm_f) $(DISTCLEANFILES)
|
||||
-$(am__rm_f) glthread/$(DEPDIR)/$(am__dirstamp)
|
||||
-$(am__rm_f) glthread/$(am__dirstamp)
|
||||
-$(am__rm_f) malloc/$(DEPDIR)/$(am__dirstamp)
|
||||
-$(am__rm_f) malloc/$(am__dirstamp)
|
||||
-$(am__rm_f) uniwidth/$(DEPDIR)/$(am__dirstamp)
|
||||
-$(am__rm_f) uniwidth/$(am__dirstamp)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
-$(am__rm_f) $(BUILT_SOURCES)
|
||||
-$(am__rm_f) $(MAINTAINERCLEANFILES)
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -rf $(DEPDIR) ./$(DEPDIR) glthread/$(DEPDIR) malloc/$(DEPDIR) uniwidth/$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/alloca.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-alloca.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-ba.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-eexst.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-fmtstream.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-fs-xinl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-help.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-parse.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-pin.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-pv.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-pvh.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-xinl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-asnprintf.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-base64.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-basename-lgpl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-btowc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-calloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-chdir-long.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-cloexec.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-close.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dirfd.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dup-safer-flag.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dup-safer.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dup2.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-error.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-exitfail.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fchdir.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fcntl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fd-hook.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fd-safer-flag.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fd-safer.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-filenamecat-lgpl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-float.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fnmatch.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fnmatch_loop.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-free.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fstat.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getcwd-lgpl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getdelim.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getdtablesize.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getline.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getopt.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getopt1.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getprogname.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-hard-locale.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-ialloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-isblank.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-itold.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-localcharset.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-localeconv.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-malloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-malloca.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbrtowc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbsinit.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbsrtowcs-state.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbsrtowcs.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbswidth.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbtowc-lock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbtowc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-memchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mempcpy.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-memrchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-msvc-inval.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-msvc-nothrow.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-open.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-openat-die.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-openat-proc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-openat.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-pipe-safer.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-pipe.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-printf-args.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-printf-parse.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-progname.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-rawmemchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-realloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-reallocarray.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regcomp.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regex.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regex_internal.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regexec.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-save-cwd.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-setlocale-lock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-setlocale_null.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-sleep.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stat-time.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stat-w32.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stat.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stdio-read.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stdio-write.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strcasecmp.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strchrnul.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strdup.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strerror-override.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strerror.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strncasecmp.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strndup.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strnlen.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strnlen1.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-unistd.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-vasnprintf.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-vsnprintf.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wcrtomb.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wctype-h.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wcwidth.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-mutex.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-once.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-recmutex.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-rwlock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wmemchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wmempcpy.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-xsize.Po
|
||||
-rm -f glthread/$(DEPDIR)/libgnu_a-lock.Po
|
||||
-rm -f glthread/$(DEPDIR)/libgnu_a-threadlib.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po
|
||||
-rm -f uniwidth/$(DEPDIR)/libgnu_a-width.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-local distclean-tags
|
||||
@@ -4069,7 +4311,129 @@ install-ps-am:
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -rf $(DEPDIR) ./$(DEPDIR) glthread/$(DEPDIR) malloc/$(DEPDIR) uniwidth/$(DEPDIR)
|
||||
-rm -f ./$(DEPDIR)/alloca.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-alloca.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-ba.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-eexst.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-fmtstream.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-fs-xinl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-help.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-parse.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-pin.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-pv.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-pvh.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-argp-xinl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-asnprintf.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-base64.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-basename-lgpl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-btowc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-calloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-chdir-long.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-cloexec.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-close.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dirfd.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dup-safer-flag.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dup-safer.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-dup2.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-error.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-exitfail.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fchdir.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fcntl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fd-hook.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fd-safer-flag.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fd-safer.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-filenamecat-lgpl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-float.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fnmatch.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fnmatch_loop.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-free.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-fstat.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getcwd-lgpl.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getdelim.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getdtablesize.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getline.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getopt.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getopt1.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-getprogname.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-hard-locale.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-ialloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-isblank.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-itold.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-localcharset.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-localeconv.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-malloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-malloca.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbrtowc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbsinit.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbsrtowcs-state.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbsrtowcs.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbswidth.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbtowc-lock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mbtowc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-memchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-mempcpy.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-memrchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-msvc-inval.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-msvc-nothrow.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-open.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-openat-die.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-openat-proc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-openat.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-pipe-safer.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-pipe.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-printf-args.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-printf-parse.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-progname.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-rawmemchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-realloc.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-reallocarray.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regcomp.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regex.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regex_internal.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-regexec.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-save-cwd.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-setlocale-lock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-setlocale_null.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-sleep.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stat-time.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stat-w32.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stat.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stdio-read.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-stdio-write.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strcasecmp.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strchrnul.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strdup.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strerror-override.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strerror.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strncasecmp.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strndup.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strnlen.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-strnlen1.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-unistd.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-vasnprintf.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-vsnprintf.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wcrtomb.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wctype-h.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wcwidth.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-mutex.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-once.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-recmutex.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-windows-rwlock.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wmemchr.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-wmempcpy.Po
|
||||
-rm -f ./$(DEPDIR)/libgnu_a-xsize.Po
|
||||
-rm -f glthread/$(DEPDIR)/libgnu_a-lock.Po
|
||||
-rm -f glthread/$(DEPDIR)/libgnu_a-threadlib.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po
|
||||
-rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po
|
||||
-rm -f uniwidth/$(DEPDIR)/libgnu_a-width.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic \
|
||||
maintainer-clean-local
|
||||
@@ -4090,22 +4454,22 @@ ps-am:
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(am__recursive_targets) all check install install-am \
|
||||
install-strip
|
||||
install-exec install-strip
|
||||
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||
check-am clean clean-generic clean-noinstLIBRARIES \
|
||||
clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
|
||||
distclean-compile distclean-generic distclean-local \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-local mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \
|
||||
tags-am uninstall uninstall-am
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||
am--depfiles check check-am clean clean-generic \
|
||||
clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \
|
||||
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||
distclean-local distclean-tags distdir dvi dvi-am html html-am \
|
||||
info info-am install install-am install-data install-data-am \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-local mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic mostlyclean-local pdf \
|
||||
pdf-am ps ps-am tags tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
@@ -5376,3 +5740,10 @@ maintainer-clean-local: distclean-gnulib-libobjs
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
# Tell GNU make to disable its built-in pattern rules.
|
||||
%:: %,v
|
||||
%:: RCS/%,v
|
||||
%:: RCS/%
|
||||
%:: s.%
|
||||
%:: SCCS/s.%
|
||||
|
||||
@@ -0,0 +1,312 @@
|
||||
#ifndef GRUB_REDOXFS_H
|
||||
#define GRUB_REDOXFS_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if defined(GRUB_BUILD) || defined(GRUB_MACHINE) || defined(GRUB_MACHINE_EFI)
|
||||
#include <grub/err.h>
|
||||
#include <grub/types.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
|
||||
typedef uint64_t grub_uint64_t;
|
||||
typedef uint32_t grub_uint32_t;
|
||||
typedef uint16_t grub_uint16_t;
|
||||
typedef uint8_t grub_uint8_t;
|
||||
typedef int64_t grub_int64_t;
|
||||
typedef uint64_t grub_off_t;
|
||||
typedef uint64_t grub_disk_addr_t;
|
||||
typedef int64_t grub_ssize_t;
|
||||
typedef uint64_t grub_size_t;
|
||||
|
||||
/* On x86 (our test host), these are identity — on big-endian they byte-swap. */
|
||||
#define grub_le_to_cpu16(x) (x)
|
||||
#define grub_le_to_cpu32(x) (x)
|
||||
#define grub_le_to_cpu64(x) (x)
|
||||
|
||||
typedef enum {
|
||||
GRUB_ERR_NONE = 0,
|
||||
GRUB_ERR_BAD_FS,
|
||||
GRUB_ERR_OUT_OF_RANGE,
|
||||
GRUB_ERR_READ_ERROR,
|
||||
GRUB_ERR_FILE_NOT_FOUND,
|
||||
GRUB_ERR_OUT_OF_MEMORY,
|
||||
} grub_err_t;
|
||||
|
||||
#define GRUB_MAX_ERRMSG 256
|
||||
extern grub_err_t grub_errno;
|
||||
extern char grub_errmsg[GRUB_MAX_ERRMSG];
|
||||
#endif
|
||||
|
||||
#ifndef GRUB_PACKED
|
||||
#define GRUB_PACKED __attribute__((packed))
|
||||
#endif
|
||||
|
||||
#define REDOXFS_BLOCK_SIZE 4096
|
||||
#define REDOXFS_SIGNATURE "RedoxFS"
|
||||
#define REDOXFS_VERSION 8
|
||||
#define REDOXFS_RECORD_LEVEL 5
|
||||
#define REDOXFS_RECORD_SIZE (REDOXFS_BLOCK_SIZE << REDOXFS_RECORD_LEVEL)
|
||||
#define REDOXFS_DIR_ENTRY_MAX_LENGTH 252
|
||||
#define REDOXFS_TREE_LIST_ENTRIES 254
|
||||
#define REDOXFS_BLOCK_LIST_ENTRIES 256
|
||||
#define REDOXFS_HTREE_IDX_ENTRIES 204
|
||||
|
||||
#define REDOXFS_NODE_LEVEL0_COUNT 128
|
||||
#define REDOXFS_NODE_LEVEL1_COUNT 64
|
||||
#define REDOXFS_NODE_LEVEL2_COUNT 32
|
||||
#define REDOXFS_NODE_LEVEL3_COUNT 16
|
||||
#define REDOXFS_NODE_LEVEL4_COUNT 8
|
||||
|
||||
#define REDOXFS_MODE_TYPE 0xF000
|
||||
#define REDOXFS_MODE_FILE 0x8000
|
||||
#define REDOXFS_MODE_DIR 0x4000
|
||||
#define REDOXFS_MODE_SYMLINK 0xA000
|
||||
#define REDOXFS_FLAG_INLINE_DATA 0x1
|
||||
|
||||
struct grub_redoxfs_blockptr {
|
||||
grub_uint64_t addr;
|
||||
grub_uint64_t hash;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_treeptr {
|
||||
grub_uint32_t id;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_header {
|
||||
grub_uint8_t signature[8];
|
||||
grub_uint64_t version;
|
||||
grub_uint8_t uuid[16];
|
||||
grub_uint64_t size;
|
||||
grub_uint64_t generation;
|
||||
struct grub_redoxfs_blockptr tree;
|
||||
struct grub_redoxfs_blockptr alloc;
|
||||
grub_uint8_t key_slots[3072];
|
||||
struct grub_redoxfs_blockptr release;
|
||||
grub_uint8_t padding[904];
|
||||
grub_uint8_t encrypted_hash[16];
|
||||
grub_uint64_t hash;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_node {
|
||||
grub_uint16_t mode;
|
||||
grub_uint32_t uid;
|
||||
grub_uint32_t gid;
|
||||
grub_uint32_t links;
|
||||
grub_uint64_t size;
|
||||
grub_uint64_t blocks;
|
||||
grub_uint64_t ctime;
|
||||
grub_uint32_t ctime_nsec;
|
||||
grub_uint64_t mtime;
|
||||
grub_uint32_t mtime_nsec;
|
||||
grub_uint64_t atime;
|
||||
grub_uint32_t atime_nsec;
|
||||
grub_uint32_t record_level;
|
||||
grub_uint32_t flags;
|
||||
grub_uint8_t padding[54];
|
||||
grub_uint8_t level_data[3968];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_treelist {
|
||||
struct grub_redoxfs_blockptr ptrs[REDOXFS_TREE_LIST_ENTRIES];
|
||||
grub_uint8_t full_flags[32];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_htreeptr {
|
||||
grub_uint32_t htree_hash;
|
||||
struct grub_redoxfs_blockptr ptr;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_htreenode {
|
||||
struct grub_redoxfs_htreeptr ptrs[REDOXFS_HTREE_IDX_ENTRIES];
|
||||
grub_uint8_t padding[16];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_dirlist {
|
||||
grub_uint8_t entry_bytes[4092];
|
||||
grub_uint16_t count;
|
||||
grub_uint16_t entry_bytes_len;
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_blocklist {
|
||||
struct grub_redoxfs_blockptr ptrs[REDOXFS_BLOCK_LIST_ENTRIES];
|
||||
} GRUB_PACKED;
|
||||
|
||||
struct grub_redoxfs_data {
|
||||
struct grub_redoxfs_header header;
|
||||
void *disk;
|
||||
};
|
||||
|
||||
struct grub_fshelp_node {
|
||||
struct grub_redoxfs_data *data;
|
||||
struct grub_redoxfs_node node;
|
||||
};
|
||||
|
||||
static inline grub_uint64_t
|
||||
grub_redoxfs_blockptr_addr (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return grub_le_to_cpu64 (ptr->addr);
|
||||
}
|
||||
|
||||
static inline grub_uint64_t
|
||||
grub_redoxfs_blockptr_hash (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return grub_le_to_cpu64 (ptr->hash);
|
||||
}
|
||||
|
||||
static inline int
|
||||
grub_redoxfs_blockptr_is_null (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_redoxfs_blockptr_addr (ptr) >> 8) == 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
grub_redoxfs_blockptr_is_marker (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_redoxfs_blockptr_addr (ptr) | 0xFULL) == 0xFFFFFFFFFFFFFFFFULL
|
||||
&& grub_redoxfs_blockptr_hash (ptr) == 0xFFFFFFFFFFFFFFFFULL;
|
||||
}
|
||||
|
||||
static inline grub_uint64_t
|
||||
grub_redoxfs_blockptr_block_index (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return grub_redoxfs_blockptr_addr (ptr) >> 8;
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_blockptr_level (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) (grub_redoxfs_blockptr_addr (ptr) & 0xF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_blockptr_decomp_level (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_redoxfs_blockptr_addr (ptr) >> 4) & 0xF);
|
||||
}
|
||||
|
||||
static inline grub_disk_addr_t
|
||||
grub_redoxfs_blockptr_sector (const struct grub_redoxfs_blockptr *ptr)
|
||||
{
|
||||
return (grub_disk_addr_t) grub_redoxfs_blockptr_block_index (ptr)
|
||||
* (REDOXFS_BLOCK_SIZE / 512);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i3 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_le_to_cpu32 (ptr->id) >> 24) & 0xFF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i2 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_le_to_cpu32 (ptr->id) >> 16) & 0xFF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i1 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) ((grub_le_to_cpu32 (ptr->id) >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
static inline grub_uint8_t
|
||||
grub_redoxfs_treeptr_i0 (const struct grub_redoxfs_treeptr *ptr)
|
||||
{
|
||||
return (grub_uint8_t) (grub_le_to_cpu32 (ptr->id) & 0xFF);
|
||||
}
|
||||
|
||||
static inline int
|
||||
grub_redoxfs_header_is_encrypted (const struct grub_redoxfs_header *hdr)
|
||||
{
|
||||
grub_uint8_t expected[16] = { 0 };
|
||||
grub_uint64_t h = grub_le_to_cpu64 (hdr->hash);
|
||||
grub_size_t i;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
expected[i] = (grub_uint8_t) (h >> (8 * i));
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
if (hdr->encrypted_hash[i] != expected[i])
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_uint64_t grub_redoxfs_seahash (const void *data, grub_size_t size);
|
||||
grub_err_t grub_redoxfs_probe (void *disk);
|
||||
struct grub_redoxfs_data *grub_redoxfs_mount (void *disk);
|
||||
void grub_redoxfs_unmount (struct grub_redoxfs_data *data);
|
||||
grub_err_t grub_redoxfs_read_block (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_blockptr *ptr,
|
||||
void *buf);
|
||||
grub_err_t grub_redoxfs_read_block_cap (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_blockptr *ptr,
|
||||
void *buf, grub_size_t buf_cap);
|
||||
grub_err_t grub_redoxfs_read_tree (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_treeptr *tptr,
|
||||
void *buf);
|
||||
grub_err_t grub_redoxfs_read_node (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_treeptr *tptr,
|
||||
struct grub_redoxfs_node *node);
|
||||
grub_err_t grub_redoxfs_read_root (const struct grub_redoxfs_data *data,
|
||||
struct grub_redoxfs_node *node);
|
||||
|
||||
grub_uint32_t grub_redoxfs_htree_hash (const char *name, grub_size_t namelen);
|
||||
grub_err_t grub_redoxfs_dir_get_info (const struct grub_redoxfs_node *dir,
|
||||
int *depth_out,
|
||||
struct grub_redoxfs_blockptr *root_ptr_out);
|
||||
grub_err_t grub_redoxfs_dir_lookup (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *dir,
|
||||
const char *name,
|
||||
struct grub_redoxfs_treeptr *result);
|
||||
|
||||
typedef int (*grub_redoxfs_dir_iter_hook_t) (const char *name,
|
||||
grub_size_t namelen,
|
||||
const struct grub_redoxfs_treeptr *ptr,
|
||||
void *hook_data);
|
||||
|
||||
grub_err_t grub_redoxfs_dir_iterate (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *dir,
|
||||
grub_redoxfs_dir_iter_hook_t hook,
|
||||
void *hook_data);
|
||||
|
||||
grub_err_t path_lookup (const struct grub_redoxfs_data *data,
|
||||
const char *path,
|
||||
int follow_symlinks,
|
||||
int symlink_depth,
|
||||
struct grub_redoxfs_node *out_node);
|
||||
grub_err_t grub_redoxfs_read_record (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *node,
|
||||
grub_uint64_t record_index,
|
||||
grub_uint32_t record_level,
|
||||
void *buf);
|
||||
grub_ssize_t grub_redoxfs_read_file_data (const struct grub_redoxfs_data *data,
|
||||
const struct grub_redoxfs_node *node,
|
||||
grub_off_t offset,
|
||||
void *buf,
|
||||
grub_size_t len);
|
||||
|
||||
#ifndef GRUB_BUILD
|
||||
grub_err_t grub_disk_read (void *disk, grub_disk_addr_t sector,
|
||||
grub_off_t offset, grub_size_t size, void *buf);
|
||||
#endif
|
||||
|
||||
_Static_assert (sizeof (struct grub_redoxfs_blockptr) == 16,
|
||||
"grub_redoxfs_blockptr must be 16 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_htreeptr) == 20,
|
||||
"grub_redoxfs_htreeptr must be 20 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_header) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_header must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_node) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_node must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_treelist) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_treelist must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_htreenode) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_htreenode must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_dirlist) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_dirlist must be 4096 bytes");
|
||||
_Static_assert (sizeof (struct grub_redoxfs_blocklist) == REDOXFS_BLOCK_SIZE,
|
||||
"grub_redoxfs_blocklist must be 4096 bytes");
|
||||
|
||||
#endif
|
||||
@@ -1,121 +1,61 @@
|
||||
dnl 'extern inline' a la ISO C99.
|
||||
|
||||
dnl Copyright 2012-2022 Free Software Foundation, Inc.
|
||||
dnl Copyright 2012-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_EXTERN_INLINE],
|
||||
[
|
||||
AC_CACHE_CHECK([whether ctype.h defines __header_inline],
|
||||
[gl_cv_have___header_inline],
|
||||
[AC_PREPROC_IFELSE(
|
||||
[AC_LANG_SOURCE([[#include <ctype.h>
|
||||
#ifndef __header_inline
|
||||
#error "<ctype.h> does not define __header_inline"
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_have___header_inline=yes],
|
||||
[gl_cv_have___header_inline=no])])
|
||||
if test "$gl_cv_have___header_inline" = yes; then
|
||||
AC_DEFINE([HAVE___HEADER_INLINE], [1],
|
||||
[Define to 1 if ctype.h defines __header_inline.])
|
||||
fi
|
||||
|
||||
AH_VERBATIM([HAVE___HEADER_INLINE_1],
|
||||
AH_VERBATIM([extern_inline],
|
||||
[/* Please see the Gnulib manual for how to use these macros.
|
||||
|
||||
Suppress extern inline with HP-UX cc, as it appears to be broken; see
|
||||
<https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
|
||||
<http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
|
||||
|
||||
Suppress extern inline with Sun C in standards-conformance mode, as it
|
||||
mishandles inline functions that call each other. E.g., for 'inline void f
|
||||
(void) { } inline void g (void) { f (); }', c99 incorrectly complains
|
||||
'reference to static identifier "f" in extern inline function'.
|
||||
This bug was observed with Oracle Developer Studio 12.6
|
||||
(Sun C 5.15 SunOS_sparc 2017/05/30).
|
||||
This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
|
||||
|
||||
Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
|
||||
on configurations that mistakenly use 'static inline' to implement
|
||||
functions or macros in standard C headers like <ctype.h>. For example,
|
||||
if isdigit is mistakenly implemented via a static inline function,
|
||||
a program containing an extern inline function that calls isdigit
|
||||
may not work since the C standard prohibits extern inline functions
|
||||
from calling static functions (ISO C 99 section 6.7.4.(3).
|
||||
This bug is known to occur on:
|
||||
|
||||
OS X 10.8 and earlier; see:
|
||||
https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
|
||||
|
||||
DragonFly; see
|
||||
http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
|
||||
|
||||
FreeBSD; see:
|
||||
https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
|
||||
|
||||
OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
|
||||
for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
|
||||
Assume DragonFly and FreeBSD will be similar.
|
||||
|
||||
GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
inline semantics, unless -fgnu89-inline is used. It defines a macro
|
||||
__GNUC_STDC_INLINE__ to indicate this situation or a macro
|
||||
__GNUC_GNU_INLINE__ to indicate the opposite situation.
|
||||
GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
|
||||
semantics but warns, unless -fgnu89-inline is used:
|
||||
warning: C99 inline functions are not supported; using GNU89
|
||||
warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
|
||||
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
|
||||
*/
|
||||
#if (((defined __APPLE__ && defined __MACH__) \
|
||||
|| defined __DragonFly__ || defined __FreeBSD__) \
|
||||
&& (defined HAVE___HEADER_INLINE \
|
||||
? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
|
||||
&& ! defined __clang__) \
|
||||
: ((! defined _DONT_USE_CTYPE_INLINE_ \
|
||||
&& (defined __GNUC__ || defined __cplusplus)) \
|
||||
|| (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
|
||||
&& defined __GNUC__ && ! defined __cplusplus))))
|
||||
# define _GL_EXTERN_INLINE_STDHEADER_BUG
|
||||
#endif
|
||||
Suppress the use of extern inline on Apple's platforms, as Libc at least
|
||||
through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
|
||||
<http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
|
||||
Perhaps Apple will fix this some day. */
|
||||
#if ((__GNUC__ \
|
||||
? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
|
||||
: (199901L <= __STDC_VERSION__ \
|
||||
&& !defined __HP_cc \
|
||||
&& !defined __PGI \
|
||||
&& !(defined __SUNPRO_C && __STDC__))) \
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
&& !defined __APPLE__)
|
||||
# define _GL_INLINE inline
|
||||
# define _GL_EXTERN_INLINE extern inline
|
||||
# define _GL_EXTERN_INLINE_IN_USE
|
||||
#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
|
||||
&& !defined __APPLE__)
|
||||
# if __GNUC_GNU_INLINE__
|
||||
/* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
|
||||
# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
|
||||
# else
|
||||
# define _GL_INLINE extern inline
|
||||
# endif
|
||||
# define _GL_EXTERN_INLINE extern
|
||||
# define _GL_EXTERN_INLINE_IN_USE
|
||||
#else
|
||||
# define _GL_INLINE _GL_UNUSED static
|
||||
# define _GL_EXTERN_INLINE _GL_UNUSED static
|
||||
# define _GL_INLINE static _GL_UNUSED
|
||||
# define _GL_EXTERN_INLINE static _GL_UNUSED
|
||||
#endif
|
||||
|
||||
/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
|
||||
suppress bogus "no previous prototype for 'FOO'"
|
||||
and "no previous declaration for 'FOO'" diagnostics,
|
||||
when FOO is an inline function in the header; see
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
|
||||
#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
|
||||
#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
|
||||
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA
|
||||
# else
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
|
||||
# endif
|
||||
/* Suppress GCC's bogus "no previous prototype for 'FOO'"
|
||||
and "no previous declaration for 'FOO'" diagnostics,
|
||||
when FOO is an inline function in the header; see
|
||||
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>. */
|
||||
# define _GL_INLINE_HEADER_BEGIN \
|
||||
_Pragma ("GCC diagnostic push") \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
dnl 'extern inline' a la ISO C99.
|
||||
|
||||
dnl Copyright 2012-2022 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_EXTERN_INLINE],
|
||||
[
|
||||
AC_CACHE_CHECK([whether ctype.h defines __header_inline],
|
||||
[gl_cv_have___header_inline],
|
||||
[AC_PREPROC_IFELSE(
|
||||
[AC_LANG_SOURCE([[#include <ctype.h>
|
||||
#ifndef __header_inline
|
||||
#error "<ctype.h> does not define __header_inline"
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_have___header_inline=yes],
|
||||
[gl_cv_have___header_inline=no])])
|
||||
if test "$gl_cv_have___header_inline" = yes; then
|
||||
AC_DEFINE([HAVE___HEADER_INLINE], [1],
|
||||
[Define to 1 if ctype.h defines __header_inline.])
|
||||
fi
|
||||
|
||||
AH_VERBATIM([HAVE___HEADER_INLINE_1],
|
||||
[/* Please see the Gnulib manual for how to use these macros.
|
||||
|
||||
Suppress extern inline with HP-UX cc, as it appears to be broken; see
|
||||
<https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
|
||||
|
||||
Suppress extern inline with Sun C in standards-conformance mode, as it
|
||||
mishandles inline functions that call each other. E.g., for 'inline void f
|
||||
(void) { } inline void g (void) { f (); }', c99 incorrectly complains
|
||||
'reference to static identifier "f" in extern inline function'.
|
||||
This bug was observed with Oracle Developer Studio 12.6
|
||||
(Sun C 5.15 SunOS_sparc 2017/05/30).
|
||||
|
||||
Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
|
||||
on configurations that mistakenly use 'static inline' to implement
|
||||
functions or macros in standard C headers like <ctype.h>. For example,
|
||||
if isdigit is mistakenly implemented via a static inline function,
|
||||
a program containing an extern inline function that calls isdigit
|
||||
may not work since the C standard prohibits extern inline functions
|
||||
from calling static functions (ISO C 99 section 6.7.4.(3).
|
||||
This bug is known to occur on:
|
||||
|
||||
OS X 10.8 and earlier; see:
|
||||
https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
|
||||
|
||||
DragonFly; see
|
||||
http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
|
||||
|
||||
FreeBSD; see:
|
||||
https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
|
||||
|
||||
OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
|
||||
for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
|
||||
Assume DragonFly and FreeBSD will be similar.
|
||||
|
||||
GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
inline semantics, unless -fgnu89-inline is used. It defines a macro
|
||||
__GNUC_STDC_INLINE__ to indicate this situation or a macro
|
||||
__GNUC_GNU_INLINE__ to indicate the opposite situation.
|
||||
GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
|
||||
semantics but warns, unless -fgnu89-inline is used:
|
||||
warning: C99 inline functions are not supported; using GNU89
|
||||
warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
|
||||
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
|
||||
*/
|
||||
#if (((defined __APPLE__ && defined __MACH__) \
|
||||
|| defined __DragonFly__ || defined __FreeBSD__) \
|
||||
&& (defined HAVE___HEADER_INLINE \
|
||||
? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
|
||||
&& ! defined __clang__) \
|
||||
: ((! defined _DONT_USE_CTYPE_INLINE_ \
|
||||
&& (defined __GNUC__ || defined __cplusplus)) \
|
||||
|| (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
|
||||
&& defined __GNUC__ && ! defined __cplusplus))))
|
||||
# define _GL_EXTERN_INLINE_STDHEADER_BUG
|
||||
#endif
|
||||
#if ((__GNUC__ \
|
||||
? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
|
||||
: (199901L <= __STDC_VERSION__ \
|
||||
&& !defined __HP_cc \
|
||||
&& !defined __PGI \
|
||||
&& !(defined __SUNPRO_C && __STDC__))) \
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
# define _GL_INLINE inline
|
||||
# define _GL_EXTERN_INLINE extern inline
|
||||
# define _GL_EXTERN_INLINE_IN_USE
|
||||
#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
|
||||
/* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
|
||||
# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
|
||||
# else
|
||||
# define _GL_INLINE extern inline
|
||||
# endif
|
||||
# define _GL_EXTERN_INLINE extern
|
||||
# define _GL_EXTERN_INLINE_IN_USE
|
||||
#else
|
||||
# define _GL_INLINE _GL_UNUSED static
|
||||
# define _GL_EXTERN_INLINE _GL_UNUSED static
|
||||
#endif
|
||||
|
||||
/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
|
||||
suppress bogus "no previous prototype for 'FOO'"
|
||||
and "no previous declaration for 'FOO'" diagnostics,
|
||||
when FOO is an inline function in the header; see
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
|
||||
#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
|
||||
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA
|
||||
# else
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
|
||||
# endif
|
||||
# define _GL_INLINE_HEADER_BEGIN \
|
||||
_Pragma ("GCC diagnostic push") \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
|
||||
_GL_INLINE_HEADER_CONST_PRAGMA
|
||||
# define _GL_INLINE_HEADER_END \
|
||||
_Pragma ("GCC diagnostic pop")
|
||||
#else
|
||||
# define _GL_INLINE_HEADER_BEGIN
|
||||
# define _GL_INLINE_HEADER_END
|
||||
#endif])
|
||||
])
|
||||
@@ -0,0 +1,34 @@
|
||||
# glibc21.m4 serial 5
|
||||
dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# Test for the GNU C Library, version 2.1 or newer, or uClibc.
|
||||
# From Bruno Haible.
|
||||
|
||||
AC_DEFUN([gl_GLIBC21],
|
||||
[
|
||||
AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
|
||||
[ac_cv_gnu_library_2_1],
|
||||
[AC_EGREP_CPP([Lucky],
|
||||
[
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
|
||||
Lucky GNU user
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __UCLIBC__
|
||||
Lucky user
|
||||
#endif
|
||||
],
|
||||
[ac_cv_gnu_library_2_1=yes],
|
||||
[ac_cv_gnu_library_2_1=no])
|
||||
]
|
||||
)
|
||||
AC_SUBST([GLIBC21])
|
||||
GLIBC21="$ac_cv_gnu_library_2_1"
|
||||
]
|
||||
)
|
||||
@@ -0,0 +1,113 @@
|
||||
# longlong.m4 serial 17
|
||||
dnl Copyright (C) 1999-2007, 2009-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Paul Eggert.
|
||||
|
||||
# Define HAVE_LONG_LONG_INT if 'long long int' works.
|
||||
# This fixes a bug in Autoconf 2.61, and can be faster
|
||||
# than what's in Autoconf 2.62 through 2.68.
|
||||
|
||||
# Note: If the type 'long long int' exists but is only 32 bits large
|
||||
# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
|
||||
# defined. In this case you can treat 'long long int' like 'long int'.
|
||||
|
||||
AC_DEFUN([AC_TYPE_LONG_LONG_INT],
|
||||
[
|
||||
AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
|
||||
AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
|
||||
[ac_cv_type_long_long_int=yes
|
||||
if test "x${ac_cv_prog_cc_c99-no}" = xno; then
|
||||
ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
|
||||
if test $ac_cv_type_long_long_int = yes; then
|
||||
dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
|
||||
dnl If cross compiling, assume the bug is not important, since
|
||||
dnl nobody cross compiles for this platform as far as we know.
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[@%:@include <limits.h>
|
||||
@%:@ifndef LLONG_MAX
|
||||
@%:@ define HALF \
|
||||
(1LL << (sizeof (long long int) * CHAR_BIT - 2))
|
||||
@%:@ define LLONG_MAX (HALF - 1 + HALF)
|
||||
@%:@endif]],
|
||||
[[long long int n = 1;
|
||||
int i;
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
long long int m = n << i;
|
||||
if (m >> i != n)
|
||||
return 1;
|
||||
if (LLONG_MAX / 2 < m)
|
||||
break;
|
||||
}
|
||||
return 0;]])],
|
||||
[],
|
||||
[ac_cv_type_long_long_int=no],
|
||||
[:])
|
||||
fi
|
||||
fi])
|
||||
if test $ac_cv_type_long_long_int = yes; then
|
||||
AC_DEFINE([HAVE_LONG_LONG_INT], [1],
|
||||
[Define to 1 if the system has the type 'long long int'.])
|
||||
fi
|
||||
])
|
||||
|
||||
# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
|
||||
# This fixes a bug in Autoconf 2.61, and can be faster
|
||||
# than what's in Autoconf 2.62 through 2.68.
|
||||
|
||||
# Note: If the type 'unsigned long long int' exists but is only 32 bits
|
||||
# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
|
||||
# will not be defined. In this case you can treat 'unsigned long long int'
|
||||
# like 'unsigned long int'.
|
||||
|
||||
AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
|
||||
[
|
||||
AC_CACHE_CHECK([for unsigned long long int],
|
||||
[ac_cv_type_unsigned_long_long_int],
|
||||
[ac_cv_type_unsigned_long_long_int=yes
|
||||
if test "x${ac_cv_prog_cc_c99-no}" = xno; then
|
||||
AC_LINK_IFELSE(
|
||||
[_AC_TYPE_LONG_LONG_SNIPPET],
|
||||
[],
|
||||
[ac_cv_type_unsigned_long_long_int=no])
|
||||
fi])
|
||||
if test $ac_cv_type_unsigned_long_long_int = yes; then
|
||||
AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
|
||||
[Define to 1 if the system has the type 'unsigned long long int'.])
|
||||
fi
|
||||
])
|
||||
|
||||
# Expands to a C program that can be used to test for simultaneous support
|
||||
# of 'long long' and 'unsigned long long'. We don't want to say that
|
||||
# 'long long' is available if 'unsigned long long' is not, or vice versa,
|
||||
# because too many programs rely on the symmetry between signed and unsigned
|
||||
# integer types (excluding 'bool').
|
||||
AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[[/* For now, do not test the preprocessor; as of 2007 there are too many
|
||||
implementations with broken preprocessors. Perhaps this can
|
||||
be revisited in 2012. In the meantime, code should not expect
|
||||
#if to work with literals wider than 32 bits. */
|
||||
/* Test literals. */
|
||||
long long int ll = 9223372036854775807ll;
|
||||
long long int nll = -9223372036854775807LL;
|
||||
unsigned long long int ull = 18446744073709551615ULL;
|
||||
/* Test constant expressions. */
|
||||
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
|
||||
? 1 : -1)];
|
||||
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
|
||||
? 1 : -1)];
|
||||
int i = 63;]],
|
||||
[[/* Test availability of runtime routines for shift and division. */
|
||||
long long int llmax = 9223372036854775807ll;
|
||||
unsigned long long int ullmax = 18446744073709551615ull;
|
||||
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
|
||||
| (llmax / ll) | (llmax % ll)
|
||||
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
|
||||
| (ullmax / ull) | (ullmax % ull));]])
|
||||
])
|
||||
@@ -16,7 +16,7 @@ VERSION = @VERSION@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
|
||||
SED = @SED@
|
||||
SHELL = @SHELL@
|
||||
SHELL = /bin/sh
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
@@ -84,13 +84,13 @@ CATALOGS = @CATALOGS@
|
||||
|
||||
.po.mo:
|
||||
@echo "$(MSGFMT) -c -o $@ $<"; \
|
||||
$(MSGFMT) --endianness=little -c -o t-$@ $< && mv t-$@ $@
|
||||
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
|
||||
|
||||
.po.gmo:
|
||||
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) --endianness=little -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
|
||||
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) --endianness=little -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
||||
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
|
||||
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
||||
|
||||
.sin.sed:
|
||||
sed -e '/^#/d' $< > t-$@
|
||||
@@ -142,7 +142,7 @@ stamp-po: $(srcdir)/$(DOMAIN).pot
|
||||
# The determination of whether the package xyz is a GNU one is based on the
|
||||
# heuristic whether some file in the top level directory mentions "GNU xyz".
|
||||
# If GNU 'find' is available, we avoid grepping through monster files.
|
||||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in $(srcdir)/POTFILES-shell.in remove-potcdate.sed
|
||||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|
||||
if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
|
||||
LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
|
||||
else \
|
||||
@@ -175,32 +175,8 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in $(srcdir)/POTFILES-shell
|
||||
--package-version='@VERSION@' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
;; \
|
||||
esac; \
|
||||
case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
|
||||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: @XGETTEXT_EXTRA_OPTIONS@ \
|
||||
--files-from=$(srcdir)/POTFILES-shell.in \
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
--join-existing --language=Shell \
|
||||
--keyword=gettext_quoted --keyword=gettext_printf \
|
||||
;; \
|
||||
*) \
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: @XGETTEXT_EXTRA_OPTIONS@ \
|
||||
--files-from=$(srcdir)/POTFILES-shell.in \
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||
--package-name="$${package_gnu}@PACKAGE@" \
|
||||
--package-version='@VERSION@' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
--join-existing --language=Shell \
|
||||
--keyword=gettext_quoted --keyword=gettext_printf \
|
||||
;; \
|
||||
esac; \
|
||||
esac
|
||||
test ! -f $(DOMAIN).po || { \
|
||||
sed -f grub.d.sed < $(DOMAIN).po > $(DOMAIN).1po && \
|
||||
mv $(DOMAIN).1po $(DOMAIN).po; \
|
||||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
||||
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
||||
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
||||
|
||||
@@ -0,0 +1,478 @@
|
||||
# Makefile for PO directory in any package using GNU gettext.
|
||||
# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||
#
|
||||
# This file can be copied and used freely without restrictions. It can
|
||||
# be used in projects which are not available under the GNU General Public
|
||||
# License but which still want to provide support for the GNU gettext
|
||||
# functionality.
|
||||
# Please note that the actual code of GNU gettext is covered by the GNU
|
||||
# General Public License and is *not* in the public domain.
|
||||
#
|
||||
# Origin: gettext-0.18.3
|
||||
GETTEXT_MACRO_VERSION = 0.18
|
||||
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
|
||||
SED = @SED@
|
||||
SHELL = @SHELL@
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
datarootdir = @datarootdir@
|
||||
datadir = @datadir@
|
||||
localedir = @localedir@
|
||||
gettextsrcdir = $(datadir)/gettext/po
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# We use $(mkdir_p).
|
||||
# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
|
||||
# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
|
||||
# @install_sh@ does not start with $(SHELL), so we add it.
|
||||
# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
|
||||
# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
|
||||
# versions, $(mkinstalldirs) and $(install_sh) are unused.
|
||||
mkinstalldirs = $(SHELL) @install_sh@ -d
|
||||
install_sh = $(SHELL) @install_sh@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
mkdir_p = @mkdir_p@
|
||||
|
||||
GMSGFMT_ = @GMSGFMT@
|
||||
GMSGFMT_no = @GMSGFMT@
|
||||
GMSGFMT_yes = @GMSGFMT_015@
|
||||
GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
|
||||
MSGFMT_ = @MSGFMT@
|
||||
MSGFMT_no = @MSGFMT@
|
||||
MSGFMT_yes = @MSGFMT_015@
|
||||
MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
|
||||
XGETTEXT_ = @XGETTEXT@
|
||||
XGETTEXT_no = @XGETTEXT@
|
||||
XGETTEXT_yes = @XGETTEXT_015@
|
||||
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
|
||||
MSGMERGE = msgmerge
|
||||
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
||||
MSGINIT = msginit
|
||||
MSGCONV = msgconv
|
||||
MSGFILTER = msgfilter
|
||||
|
||||
POFILES = @POFILES@
|
||||
GMOFILES = @GMOFILES@
|
||||
UPDATEPOFILES = @UPDATEPOFILES@
|
||||
DUMMYPOFILES = @DUMMYPOFILES@
|
||||
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
|
||||
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
|
||||
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
|
||||
$(POFILES) $(GMOFILES) \
|
||||
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
|
||||
|
||||
POTFILES = \
|
||||
|
||||
CATALOGS = @CATALOGS@
|
||||
|
||||
# Makevars gets inserted here. (Don't remove this line!)
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
|
||||
|
||||
.po.mo:
|
||||
@echo "$(MSGFMT) -c -o $@ $<"; \
|
||||
$(MSGFMT) --endianness=little -c -o t-$@ $< && mv t-$@ $@
|
||||
|
||||
.po.gmo:
|
||||
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) --endianness=little -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
|
||||
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) --endianness=little -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
||||
|
||||
.sin.sed:
|
||||
sed -e '/^#/d' $< > t-$@
|
||||
mv t-$@ $@
|
||||
|
||||
|
||||
all: all-@USE_NLS@
|
||||
|
||||
all-yes: stamp-po
|
||||
all-no:
|
||||
|
||||
# Ensure that the gettext macros and this Makefile.in.in are in sync.
|
||||
CHECK_MACRO_VERSION = \
|
||||
test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
|
||||
|| { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
|
||||
exit 1; \
|
||||
}
|
||||
|
||||
# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
|
||||
# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
|
||||
# we don't want to bother translators with empty POT files). We assume that
|
||||
# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
|
||||
# In this case, stamp-po is a nop (i.e. a phony target).
|
||||
|
||||
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
|
||||
# been loosely updated. Its purpose is that when a developer or translator
|
||||
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
|
||||
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
|
||||
# invocations of "make" will do nothing. This timestamp would not be necessary
|
||||
# if updating the $(CATALOGS) would always touch them; however, the rule for
|
||||
# $(POFILES) has been designed to not touch files that don't need to be
|
||||
# changed.
|
||||
stamp-po: $(srcdir)/$(DOMAIN).pot
|
||||
@$(CHECK_MACRO_VERSION)
|
||||
test ! -f $(srcdir)/$(DOMAIN).pot || \
|
||||
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
|
||||
@test ! -f $(srcdir)/$(DOMAIN).pot || { \
|
||||
echo "touch stamp-po" && \
|
||||
echo timestamp > stamp-poT && \
|
||||
mv stamp-poT stamp-po; \
|
||||
}
|
||||
|
||||
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
||||
# otherwise packages like GCC can not be built if only parts of the source
|
||||
# have been downloaded.
|
||||
|
||||
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
|
||||
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
|
||||
# The determination of whether the package xyz is a GNU one is based on the
|
||||
# heuristic whether some file in the top level directory mentions "GNU xyz".
|
||||
# If GNU 'find' is available, we avoid grepping through monster files.
|
||||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in $(srcdir)/POTFILES-shell.in remove-potcdate.sed
|
||||
if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
|
||||
LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
|
||||
else \
|
||||
LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
|
||||
fi; \
|
||||
} | grep -v 'libtool:' >/dev/null; then \
|
||||
package_gnu='GNU '; \
|
||||
else \
|
||||
package_gnu=''; \
|
||||
fi; \
|
||||
if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
|
||||
msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
|
||||
else \
|
||||
msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
|
||||
fi; \
|
||||
case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
|
||||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
|
||||
--files-from=$(srcdir)/POTFILES.in \
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
;; \
|
||||
*) \
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
|
||||
--files-from=$(srcdir)/POTFILES.in \
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||
--package-name="$${package_gnu}@PACKAGE@" \
|
||||
--package-version='@VERSION@' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
;; \
|
||||
esac; \
|
||||
case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
|
||||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: @XGETTEXT_EXTRA_OPTIONS@ \
|
||||
--files-from=$(srcdir)/POTFILES-shell.in \
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
--join-existing --language=Shell \
|
||||
--keyword=gettext_quoted --keyword=gettext_printf \
|
||||
;; \
|
||||
*) \
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: @XGETTEXT_EXTRA_OPTIONS@ \
|
||||
--files-from=$(srcdir)/POTFILES-shell.in \
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||
--package-name="$${package_gnu}@PACKAGE@" \
|
||||
--package-version='@VERSION@' \
|
||||
--msgid-bugs-address="$$msgid_bugs_address" \
|
||||
--join-existing --language=Shell \
|
||||
--keyword=gettext_quoted --keyword=gettext_printf \
|
||||
;; \
|
||||
esac; \
|
||||
test ! -f $(DOMAIN).po || { \
|
||||
sed -f grub.d.sed < $(DOMAIN).po > $(DOMAIN).1po && \
|
||||
mv $(DOMAIN).1po $(DOMAIN).po; \
|
||||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
||||
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
||||
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
||||
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
|
||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
|
||||
else \
|
||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
|
||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
||||
fi; \
|
||||
else \
|
||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
||||
fi; \
|
||||
}
|
||||
|
||||
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
|
||||
# every "make" invocation, only create it when it is missing.
|
||||
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
|
||||
$(srcdir)/$(DOMAIN).pot:
|
||||
$(MAKE) $(DOMAIN).pot-update
|
||||
|
||||
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
|
||||
# Note that a PO file is not touched if it doesn't need to be changed.
|
||||
$(POFILES): $(srcdir)/$(DOMAIN).pot
|
||||
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
||||
if test -f "$(srcdir)/$${lang}.po"; then \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
|
||||
cd $(srcdir) \
|
||||
&& { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
|
||||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
|
||||
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
|
||||
*) \
|
||||
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
|
||||
esac; \
|
||||
}; \
|
||||
else \
|
||||
$(MAKE) $${lang}.po-create; \
|
||||
fi
|
||||
|
||||
|
||||
install: install-exec install-data
|
||||
install-exec:
|
||||
install-data: install-data-@USE_NLS@
|
||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||
$(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
|
||||
for file in $(DISTFILES.common) Makevars.template; do \
|
||||
$(INSTALL_DATA) $(srcdir)/$$file \
|
||||
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||
done; \
|
||||
for file in Makevars; do \
|
||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||
done; \
|
||||
else \
|
||||
: ; \
|
||||
fi
|
||||
install-data-no: all
|
||||
install-data-yes: all
|
||||
@catalogs='$(CATALOGS)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||
$(mkdir_p) $(DESTDIR)$$dir; \
|
||||
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
||||
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
||||
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||
if test -n "$$lc"; then \
|
||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
||||
for file in *; do \
|
||||
if test -f $$file; then \
|
||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
||||
fi; \
|
||||
done); \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
else \
|
||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
||||
:; \
|
||||
else \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
fi; \
|
||||
fi; \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
||||
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
||||
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
|
||||
fi; \
|
||||
done; \
|
||||
done
|
||||
|
||||
install-strip: install
|
||||
|
||||
installdirs: installdirs-exec installdirs-data
|
||||
installdirs-exec:
|
||||
installdirs-data: installdirs-data-@USE_NLS@
|
||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||
$(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
|
||||
else \
|
||||
: ; \
|
||||
fi
|
||||
installdirs-data-no:
|
||||
installdirs-data-yes:
|
||||
@catalogs='$(CATALOGS)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||
$(mkdir_p) $(DESTDIR)$$dir; \
|
||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||
if test -n "$$lc"; then \
|
||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
||||
for file in *; do \
|
||||
if test -f $$file; then \
|
||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
||||
fi; \
|
||||
done); \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
else \
|
||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
||||
:; \
|
||||
else \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
done; \
|
||||
done
|
||||
|
||||
# Define this as empty until I found a useful application.
|
||||
installcheck:
|
||||
|
||||
uninstall: uninstall-exec uninstall-data
|
||||
uninstall-exec:
|
||||
uninstall-data: uninstall-data-@USE_NLS@
|
||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||
for file in $(DISTFILES.common) Makevars.template; do \
|
||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||
done; \
|
||||
else \
|
||||
: ; \
|
||||
fi
|
||||
uninstall-data-no:
|
||||
uninstall-data-yes:
|
||||
catalogs='$(CATALOGS)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||
done; \
|
||||
done
|
||||
|
||||
check: all
|
||||
|
||||
info dvi ps pdf html tags TAGS ctags CTAGS ID:
|
||||
|
||||
mostlyclean:
|
||||
rm -f remove-potcdate.sed
|
||||
rm -f stamp-poT
|
||||
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
|
||||
rm -fr *.o
|
||||
|
||||
clean: mostlyclean
|
||||
|
||||
distclean: clean
|
||||
rm -f Makefile Makefile.in POTFILES *.mo
|
||||
|
||||
maintainer-clean: distclean
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
rm -f stamp-po $(GMOFILES)
|
||||
|
||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||
dist distdir:
|
||||
$(MAKE) update-po
|
||||
@$(MAKE) dist2
|
||||
# This is a separate target because 'update-po' must be executed before.
|
||||
dist2: stamp-po $(DISTFILES)
|
||||
dists="$(DISTFILES)"; \
|
||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||
dists="$$dists Makevars.template"; \
|
||||
fi; \
|
||||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
||||
dists="$$dists $(DOMAIN).pot stamp-po"; \
|
||||
fi; \
|
||||
if test -f $(srcdir)/ChangeLog; then \
|
||||
dists="$$dists ChangeLog"; \
|
||||
fi; \
|
||||
for i in 0 1 2 3 4 5 6 7 8 9; do \
|
||||
if test -f $(srcdir)/ChangeLog.$$i; then \
|
||||
dists="$$dists ChangeLog.$$i"; \
|
||||
fi; \
|
||||
done; \
|
||||
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
|
||||
for file in $$dists; do \
|
||||
if test -f $$file; then \
|
||||
cp -p $$file $(distdir) || exit 1; \
|
||||
else \
|
||||
cp -p $(srcdir)/$$file $(distdir) || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
update-po: Makefile
|
||||
$(MAKE) $(DOMAIN).pot-update
|
||||
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
|
||||
$(MAKE) update-gmo
|
||||
|
||||
# General rule for creating PO files.
|
||||
|
||||
.nop.po-create:
|
||||
@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
|
||||
echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
|
||||
exit 1
|
||||
|
||||
# General rule for updating PO files.
|
||||
|
||||
.nop.po-update:
|
||||
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
|
||||
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
|
||||
tmpdir=`pwd`; \
|
||||
echo "$$lang:"; \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
||||
cd $(srcdir); \
|
||||
if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
|
||||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
|
||||
$(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
|
||||
*) \
|
||||
$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
|
||||
esac; \
|
||||
}; then \
|
||||
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
||||
rm -f $$tmpdir/$$lang.new.po; \
|
||||
else \
|
||||
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
||||
:; \
|
||||
else \
|
||||
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi; \
|
||||
else \
|
||||
echo "msgmerge for $$lang.po failed!" 1>&2; \
|
||||
rm -f $$tmpdir/$$lang.new.po; \
|
||||
fi
|
||||
|
||||
$(DUMMYPOFILES):
|
||||
|
||||
update-gmo: Makefile $(GMOFILES)
|
||||
@:
|
||||
|
||||
# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
|
||||
# because execution permission bits may not work on the current file system.
|
||||
# Use @SHELL@, which is the shell determined by autoconf for the use by its
|
||||
# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
|
||||
Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
|
||||
cd $(top_builddir) \
|
||||
&& @SHELL@ ./config.status $(subdir)/$@.in po-directories
|
||||
|
||||
force:
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,53 @@
|
||||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
DOMAIN = $(PACKAGE)
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
# These options get passed to xgettext.
|
||||
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
|
||||
|
||||
# This is the copyright holder that gets inserted into the header of the
|
||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||
# package. (Note that the msgstr strings, extracted from the package's
|
||||
# sources, belong to the copyright holder of the package.) Translators are
|
||||
# expected to transfer the copyright for their translations to this person
|
||||
# or entity, or to disclaim their copyright. The empty string stands for
|
||||
# the public domain; in this case the translators are expected to disclaim
|
||||
# their copyright.
|
||||
COPYRIGHT_HOLDER = Free Software Foundation, Inc.
|
||||
|
||||
# This is the email address or URL to which the translators shall report
|
||||
# bugs in the untranslated strings:
|
||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||
# - Strings which use unclear terms or require additional context to be
|
||||
# understood.
|
||||
# - Strings which make invalid assumptions about notation of date, time or
|
||||
# money.
|
||||
# - Pluralisation problems.
|
||||
# - Incorrect English spelling.
|
||||
# - Incorrect formatting.
|
||||
# It can be your email address, or a mailing list address where translators
|
||||
# can write to without being subscribed, or the URL of a web page through
|
||||
# which the translators can contact you.
|
||||
MSGID_BUGS_ADDRESS =
|
||||
|
||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||
# message catalogs shall be used. It is usually empty.
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
|
||||
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
|
||||
# context. Possible values are "yes" and "no". Set this to yes if the
|
||||
# package uses functions taking also a message context, like pgettext(), or
|
||||
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
|
||||
USE_MSGCTXT = no
|
||||
|
||||
# These options get passed to msgmerge.
|
||||
# Useful options are in particular:
|
||||
# --previous to keep previous msgids of translated messages,
|
||||
# --quiet to reduce the verbosity.
|
||||
MSGMERGE_OPTIONS =
|
||||
@@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.18.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2025 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -70,6 +70,8 @@ am__make_running_with_option = \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
am__rm_f = rm -f $(am__rm_f_notfound)
|
||||
am__rm_rf = rm -rf $(am__rm_f_notfound)
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@@ -140,9 +142,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/open-cloexec.m4 \
|
||||
$(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
|
||||
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
|
||||
$(top_srcdir)/m4/pid_t.m4 $(top_srcdir)/m4/pipe.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
|
||||
$(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||
$(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
|
||||
@@ -150,28 +151,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/setlocale_null.m4 \
|
||||
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
|
||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \
|
||||
$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/std-gnu11.m4 \
|
||||
$(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||
$(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||
$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
||||
$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \
|
||||
$(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
|
||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
|
||||
$(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \
|
||||
$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
||||
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strchrnul.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
|
||||
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||
$(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \
|
||||
$(top_srcdir)/m4/sysexits.m4 $(top_srcdir)/m4/threadlib.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vararrays.m4 \
|
||||
$(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
|
||||
$(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
|
||||
$(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
|
||||
$(top_srcdir)/m4/wmemchr.m4 $(top_srcdir)/m4/wmempcpy.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/year2038.m4 \
|
||||
$(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/vsnprintf.m4 \
|
||||
$(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
|
||||
$(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \
|
||||
$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
|
||||
$(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xsize.m4 \
|
||||
$(top_srcdir)/m4/year2038.m4 $(top_srcdir)/m4/zzgnulib.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
@@ -220,10 +220,9 @@ am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
{ test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(bashcompletiondir)"
|
||||
DATA = $(bashcompletion_DATA)
|
||||
@@ -271,6 +270,8 @@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CMP = @CMP@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
@@ -292,6 +293,7 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
|
||||
EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
|
||||
EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
|
||||
ERRNO_H = @ERRNO_H@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FLOAT_H = @FLOAT_H@
|
||||
FNMATCH_H = @FNMATCH_H@
|
||||
@@ -1313,8 +1315,10 @@ ac_ct_TARGET_CC = @ac_ct_TARGET_CC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__rm_f_notfound = @am__rm_f_notfound@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
am__xargs_n = @am__xargs_n@
|
||||
bindir = @bindir@
|
||||
bootdirname = @bootdirname@
|
||||
build = @build@
|
||||
@@ -1425,8 +1429,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
@@ -1465,7 +1469,10 @@ ctags CTAGS:
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@@ -1524,11 +1531,11 @@ install-strip:
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
-$(am__rm_f) $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@@ -1622,3 +1629,10 @@ $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.stat
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
# Tell GNU make to disable its built-in pattern rules.
|
||||
%:: %,v
|
||||
%:: RCS/%,v
|
||||
%:: RCS/%
|
||||
%:: s.%
|
||||
%:: SCCS/s.%
|
||||
|
||||
@@ -40,6 +40,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
# shall we use DBus?
|
||||
# enabled per default on Linux & BSD systems
|
||||
|
||||
@@ -33,6 +33,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
find_package(KF6Codecs ${KF_DEP_VERSION} REQUIRED)
|
||||
find_package(KF6Config ${KF_DEP_VERSION} REQUIRED)
|
||||
|
||||
@@ -30,6 +30,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
# shall we use DBus?
|
||||
# enabled per default on Linux & BSD systems
|
||||
|
||||
@@ -49,6 +49,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6Svg ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
|
||||
|
||||
# shall we use DBus?
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
#include <QHostInfo>
|
||||
|
||||
#include <QHostInfo>
|
||||
|
||||
#include <QHostInfo>
|
||||
#include "usernotificationhandler_p.h"
|
||||
#include "workerbase.h"
|
||||
|
||||
@@ -31,6 +31,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
if(NOT WIN32 AND NOT APPLE AND NOT ANDROID AND NOT HAIKU)
|
||||
option(WITH_X11 "Build with support for QX11Info::appUserTime()" ON)
|
||||
|
||||
@@ -42,6 +42,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
|
||||
|
||||
if (WITH_TEXT_TO_SPEECH)
|
||||
find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED TextToSpeech)
|
||||
|
||||
@@ -50,6 +50,7 @@ find_package(Qt6WaylandClientPrivate REQUIRED)
|
||||
find_package(Qt6WaylandClientPrivate REQUIRED)
|
||||
find_package(Qt6WaylandClientPrivate REQUIRED)
|
||||
find_package(Qt6WaylandClientPrivate REQUIRED)
|
||||
find_package(Qt6WaylandClientPrivate REQUIRED)
|
||||
set_package_properties(Wayland PROPERTIES
|
||||
TYPE REQUIRED
|
||||
)
|
||||
|
||||
@@ -74,10 +74,10 @@ void initializeLanguages()
|
||||
// Ideally setting the LANGUAGE would change the default QLocale too
|
||||
// but unfortunately this is too late since the QCoreApplication constructor
|
||||
// already created a QLocale at this stage so we need to set the reset it
|
||||
////////////////////////////////////////////////// // by triggering the creation and destruction of a QSystemLocale
|
||||
//////////////////////////////////////////////////// // by triggering the creation and destruction of a QSystemLocale
|
||||
// this is highly dependent on Qt internals, so may break, but oh well
|
||||
////////////////////////////////////////////////// QSystemLocale *dummy = new QSystemLocale();
|
||||
////////////////////////////////////////////////// delete dummy;
|
||||
//////////////////////////////////////////////////// QSystemLocale *dummy = new QSystemLocale();
|
||||
//////////////////////////////////////////////////// delete dummy;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ set_package_properties(PList PROPERTIES
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES Linux)
|
||||
# Used by the UDisks backend on Linux
|
||||
#############################find_package(LibMount)
|
||||
##############################find_package(LibMount)
|
||||
set_package_properties(LibMount PROPERTIES
|
||||
TYPE REQUIRED)
|
||||
endif()
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
# ./local/scripts/build-redbear.sh # Default: redbear-full
|
||||
# ./local/scripts/build-redbear.sh redbear-mini # Minimal validation baseline
|
||||
# ./local/scripts/build-redbear.sh redbear-full # Full Red Bear desktop/session target
|
||||
# ./local/scripts/build-redbear.sh redbear-live-mini # Live ISO for minimal target
|
||||
# ./local/scripts/build-redbear.sh redbear-live-full # Live ISO for full target
|
||||
# ./local/scripts/build-redbear.sh redbear-live # Canonical full live profile config
|
||||
# ./local/scripts/build-redbear.sh redbear-live-mini # Text-only mini live profile config
|
||||
# ./local/scripts/build-redbear.sh redbear-grub-live-mini # Text-only GRUB mini live profile config
|
||||
# ./local/scripts/build-redbear.sh --upstream redbear-full # Allow Redox/upstream recipe refresh
|
||||
# APPLY_PATCHES=0 ./local/scripts/build-redbear.sh # Skip patch application
|
||||
#
|
||||
@@ -24,6 +25,23 @@ JOBS="${JOBS:-$(nproc)}"
|
||||
APPLY_PATCHES="${APPLY_PATCHES:-1}"
|
||||
ALLOW_UPSTREAM=0
|
||||
|
||||
canonicalize_config() {
|
||||
case "$1" in
|
||||
redbear-mini)
|
||||
printf '%s\n' "redbear-minimal"
|
||||
;;
|
||||
redbear-live-full)
|
||||
printf '%s\n' "redbear-live"
|
||||
;;
|
||||
redbear-live-mini-grub)
|
||||
printf '%s\n' "redbear-grub-live-mini"
|
||||
;;
|
||||
*)
|
||||
printf '%s\n' "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Usage: $(basename "$0") [OPTIONS] [CONFIG]
|
||||
@@ -35,7 +53,7 @@ Options:
|
||||
-h, --help Show this help
|
||||
|
||||
Configs:
|
||||
redbear-mini, redbear-live-mini, redbear-full, redbear-live-full
|
||||
redbear-mini, redbear-full, redbear-live, redbear-live-mini, redbear-grub-live-mini
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -69,18 +87,22 @@ fi
|
||||
|
||||
[ ${#POSITIONAL[@]} -eq 1 ] && CONFIG="${POSITIONAL[0]}"
|
||||
|
||||
CONFIG="$(canonicalize_config "$CONFIG")"
|
||||
|
||||
case "$CONFIG" in
|
||||
redbear-mini)
|
||||
CONFIG="redbear-minimal"
|
||||
redbear-minimal)
|
||||
;;
|
||||
redbear-live)
|
||||
;;
|
||||
redbear-live-mini)
|
||||
CONFIG="redbear-live-minimal"
|
||||
;;
|
||||
redbear-minimal|redbear-full|redbear-live-minimal|redbear-live-full)
|
||||
redbear-grub-live-mini)
|
||||
;;
|
||||
redbear-full)
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Unknown config '$CONFIG'"
|
||||
echo "Supported: redbear-mini, redbear-live-mini, redbear-full, redbear-live-full"
|
||||
echo "Supported: redbear-mini, redbear-full, redbear-live, redbear-live-mini, redbear-grub-live-mini"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -98,6 +120,12 @@ echo ""
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
if [ -x "$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh" ]; then
|
||||
echo ">>> Verifying overlay integrity (auto-repair)..."
|
||||
"$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh" --repair
|
||||
echo ""
|
||||
fi
|
||||
|
||||
stash_nested_repo_if_dirty() {
|
||||
local target_dir="$1"
|
||||
local label="$2"
|
||||
@@ -193,17 +221,23 @@ if [ "$APPLY_PATCHES" = "1" ]; then
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ -x "$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh" ]; then
|
||||
echo ">>> Verifying overlay integrity (strict)..."
|
||||
"$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ ! -f "target/release/repo" ]; then
|
||||
echo ">>> Building cookbook binary..."
|
||||
cargo build --release
|
||||
fi
|
||||
|
||||
if [ "$CONFIG" = "redbear-full" ] || [ "$CONFIG" = "redbear-live-full" ]; then
|
||||
if [ "$CONFIG" = "redbear-full" ] || [ "$CONFIG" = "redbear-live" ]; then
|
||||
ensure_relibc_desktop_surface
|
||||
fi
|
||||
|
||||
FW_AMD_DIR="$PROJECT_ROOT/local/firmware/amdgpu"
|
||||
if [ "$CONFIG" != "redbear-minimal" ]; then
|
||||
if [ "$CONFIG" != "redbear-minimal" ] && [ "$CONFIG" != "redbear-live-mini" ] && [ "$CONFIG" != "redbear-grub-live-mini" ]; then
|
||||
if [ -d "$FW_AMD_DIR" ] && [ -n "$(ls -A "$FW_AMD_DIR" 2>/dev/null)" ]; then
|
||||
FW_COUNT=$(ls "$FW_AMD_DIR"/*.bin 2>/dev/null | wc -l)
|
||||
echo ">>> Found $FW_COUNT AMD firmware blobs"
|
||||
|
||||
@@ -160,6 +160,11 @@ else
|
||||
ls -la recipes/core/kernel/redox.patch recipes/core/base/redox.patch
|
||||
fi
|
||||
|
||||
if [ -x local/scripts/verify-overlay-integrity.sh ]; then
|
||||
echo "==> Verifying overlay integrity..."
|
||||
local/scripts/verify-overlay-integrity.sh --repair
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "==> Sync complete."
|
||||
echo " Previous HEAD: $PREV_HEAD"
|
||||
|
||||
Executable
+83
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
# test-live-iso-qemu.sh — bounded QEMU smoke test for Red Bear live ISOs.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
canonicalize_live_config() {
|
||||
case "$1" in
|
||||
redbear-live-full)
|
||||
printf '%s\n' "redbear-live"
|
||||
;;
|
||||
redbear-live-mini-grub)
|
||||
printf '%s\n' "redbear-grub-live-mini"
|
||||
;;
|
||||
*)
|
||||
printf '%s\n' "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<'USAGE'
|
||||
Usage: test-live-iso-qemu.sh [CONFIG_NAME ...]
|
||||
|
||||
Boot one or more Red Bear live ISO targets in QEMU/UEFI and verify that each reaches a text
|
||||
`login:` prompt on the serial console.
|
||||
|
||||
Defaults:
|
||||
redbear-live redbear-live-mini redbear-grub-live-mini
|
||||
USAGE
|
||||
}
|
||||
|
||||
if [[ "${1:-}" == "--help" || "${1:-}" == "-h" || "${1:-}" == "help" ]]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
configs=("$@")
|
||||
if [[ ${#configs[@]} -eq 0 ]]; then
|
||||
configs=(redbear-live redbear-live-mini redbear-grub-live-mini)
|
||||
fi
|
||||
|
||||
for i in "${!configs[@]}"; do
|
||||
configs[$i]="$(canonicalize_live_config "${configs[$i]}")"
|
||||
done
|
||||
|
||||
for config in "${configs[@]}"; do
|
||||
case "$config" in
|
||||
redbear-live|redbear-live-mini|redbear-grub-live-mini)
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: unsupported live ISO target $config" >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
arch="${ARCH:-$(uname -m)}"
|
||||
|
||||
for config in "${configs[@]}"; do
|
||||
image="build/$arch/$config.iso"
|
||||
if [[ ! -f "$image" ]]; then
|
||||
echo "ERROR: missing ISO $image" >&2
|
||||
echo "Build it first with: ./scripts/build-iso.sh $config" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
for config in "${configs[@]}"; do
|
||||
echo "=== Boot-testing $config ==="
|
||||
expect <<EOF
|
||||
log_user 1
|
||||
set timeout 420
|
||||
spawn make qemu CONFIG_NAME=$config live=yes serial=yes gpu=no net=no
|
||||
expect "login:"
|
||||
send "root\r"
|
||||
expect "assword:"
|
||||
send "password\r"
|
||||
expect "Type 'help' for available commands."
|
||||
send "shutdown\r"
|
||||
expect eof
|
||||
EOF
|
||||
done
|
||||
Executable
+143
@@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env bash
|
||||
# verify-overlay-integrity.sh — ensure Red Bear overlay is present and repairable.
|
||||
#
|
||||
# Usage:
|
||||
# ./local/scripts/verify-overlay-integrity.sh
|
||||
# ./local/scripts/verify-overlay-integrity.sh --repair
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
REPAIR=0
|
||||
|
||||
if [ "${1:-}" = "--repair" ]; then
|
||||
REPAIR=1
|
||||
fi
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
fail() {
|
||||
echo "overlay-integrity: ERROR: $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
need_file() {
|
||||
local path="$1"
|
||||
[ -f "$path" ] || fail "missing file: $path"
|
||||
}
|
||||
|
||||
need_symlink_target() {
|
||||
local link="$1"
|
||||
local expected="$2"
|
||||
local current
|
||||
|
||||
if [ ! -L "$link" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
current="$(readlink "$link")"
|
||||
[ "$current" = "$expected" ]
|
||||
}
|
||||
|
||||
ensure_link() {
|
||||
local link="$1"
|
||||
local target="$2"
|
||||
if ! need_symlink_target "$link" "$target"; then
|
||||
if [ "$REPAIR" -eq 1 ] && [ -x "$REPO_ROOT/local/scripts/apply-patches.sh" ]; then
|
||||
"$REPO_ROOT/local/scripts/apply-patches.sh" >/dev/null
|
||||
fi
|
||||
need_symlink_target "$link" "$target" || fail "bad symlink: $link -> expected $target"
|
||||
fi
|
||||
}
|
||||
|
||||
has_marker() {
|
||||
local file="$1"
|
||||
local pattern="$2"
|
||||
[ -f "$file" ] && grep -q "$pattern" "$file"
|
||||
}
|
||||
|
||||
ensure_marker() {
|
||||
local file="$1"
|
||||
local pattern="$2"
|
||||
if ! has_marker "$file" "$pattern"; then
|
||||
if [ "$REPAIR" -eq 1 ]; then
|
||||
if [ -x "$REPO_ROOT/local/scripts/apply-patches.sh" ]; then
|
||||
"$REPO_ROOT/local/scripts/apply-patches.sh" >/dev/null || true
|
||||
fi
|
||||
apply_patch_dir "$REPO_ROOT/local/patches/base" "$REPO_ROOT/recipes/core/base/source"
|
||||
apply_patch_dir "$REPO_ROOT/local/patches/kernel" "$REPO_ROOT/recipes/core/kernel/source"
|
||||
apply_patch_dir "$REPO_ROOT/local/patches/relibc" "$REPO_ROOT/recipes/core/relibc/source"
|
||||
fi
|
||||
fi
|
||||
has_marker "$file" "$pattern" || fail "missing marker in $file: $pattern"
|
||||
}
|
||||
|
||||
check_local_over_wip_priority() {
|
||||
local local_dir
|
||||
local rel
|
||||
local name
|
||||
local wip_match
|
||||
local active_path
|
||||
|
||||
for local_dir in "$REPO_ROOT"/local/recipes/*/*; do
|
||||
[ -d "$local_dir" ] || continue
|
||||
rel="${local_dir#"$REPO_ROOT/local/recipes/"}"
|
||||
name="${local_dir##*/}"
|
||||
wip_match="$(find "$REPO_ROOT/recipes/wip" -mindepth 2 -maxdepth 2 -type d -name "$name" 2>/dev/null | head -n1 || true)"
|
||||
|
||||
# Policy: if local package conflicts with an upstream WIP package of the same name,
|
||||
# the active recipe must be our local overlay (symlink in recipes/*/<name>).
|
||||
[ -n "$wip_match" ] || continue
|
||||
|
||||
active_path="$(find "$REPO_ROOT/recipes" -mindepth 2 -maxdepth 2 -type l -name "$name" ! -path "$REPO_ROOT/recipes/wip/*" 2>/dev/null | head -n1 || true)"
|
||||
# Only enforce for actively mounted local overlays.
|
||||
[ -n "$active_path" ] || continue
|
||||
|
||||
if [ "$(readlink "$active_path")" != "../../local/recipes/${rel}" ]; then
|
||||
fail "local-over-wip policy violated: '$active_path' does not point to ../../local/recipes/${rel}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
apply_patch_dir() {
|
||||
local patch_dir="$1"
|
||||
local target_dir="$2"
|
||||
local patch_file
|
||||
|
||||
[ -d "$patch_dir" ] || return 0
|
||||
[ -d "$target_dir" ] || return 0
|
||||
|
||||
for patch_file in "$patch_dir"/*.patch; do
|
||||
[ -f "$patch_file" ] || continue
|
||||
if patch --dry-run -p1 -d "$target_dir" < "$patch_file" >/dev/null 2>&1; then
|
||||
patch -p1 -d "$target_dir" < "$patch_file" >/dev/null 2>&1 || true
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
need_file "local/patches/kernel/redox.patch"
|
||||
need_file "local/patches/base/redox.patch"
|
||||
need_file "local/patches/relibc/redox.patch"
|
||||
|
||||
ensure_link "recipes/core/kernel/redox.patch" "../../../local/patches/kernel/redox.patch"
|
||||
ensure_link "recipes/core/base/redox.patch" "../../../local/patches/base/redox.patch"
|
||||
ensure_link "recipes/core/bootloader/P2-live-preload-guard.patch" "../../../local/patches/bootloader/P2-live-preload-guard.patch"
|
||||
ensure_link "recipes/core/bootloader/P3-uefi-live-image-safe-read.patch" "../../../local/patches/bootloader/P3-uefi-live-image-safe-read.patch"
|
||||
ensure_link "recipes/core/grub" "../../local/recipes/core/grub"
|
||||
check_local_over_wip_priority
|
||||
|
||||
# Critical runtime markers in source trees (if sources are present locally).
|
||||
if [ -d "recipes/core/base/source" ]; then
|
||||
ensure_marker \
|
||||
"recipes/core/base/source/drivers/acpid/src/acpi.rs" \
|
||||
"AML interpreter requires PCI registration before initialization"
|
||||
ensure_marker \
|
||||
"recipes/core/base/source/drivers/acpid/src/scheme.rs" \
|
||||
"wait_for_pci_ready"
|
||||
ensure_marker \
|
||||
"recipes/core/base/source/drivers/input/ps2d/src/controller.rs" \
|
||||
"continuing without second port"
|
||||
fi
|
||||
|
||||
echo "overlay-integrity: OK"
|
||||
@@ -17,12 +17,12 @@ ci-img: FORCE
|
||||
|
||||
# The name of the target must match the name of the filesystem config file
|
||||
server desktop demo: FORCE
|
||||
rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@/redbear-live.iso"
|
||||
rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@.iso"
|
||||
export $(CI_COOKBOOK_CONFIG) REPO_NONSTOP=0 && \
|
||||
$(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/redbear-live.iso
|
||||
$(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@.iso
|
||||
mkdir -p $(IMG_DIR)
|
||||
cp "build/$(ARCH)/$@/harddrive.img" "$(IMG_DIR)/redbear_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
|
||||
cp "build/$(ARCH)/$@/redbear-live.iso" "$(IMG_DIR)/redbear_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
|
||||
cp "build/$(ARCH)/$@.iso" "$(IMG_DIR)/redbear_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
|
||||
|
||||
ci-os-test: FORCE
|
||||
make CONFIG_NAME=os-test unmount
|
||||
|
||||
+4
-35
@@ -13,7 +13,7 @@ else
|
||||
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
||||
fi && \
|
||||
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) --no-mount -c $(FILESYSTEM_CONFIG) $@.partial
|
||||
mv $@.partial $@
|
||||
endif
|
||||
|
||||
@@ -22,14 +22,14 @@ ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
mkdir -p $(LIVE_BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
rm -rf $@ $@.partial
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
||||
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
||||
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
||||
fi && \
|
||||
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --write-bootloader="$(LIVE_BOOTLOADER)" --live $@.partial
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) --no-mount -c $(FILESYSTEM_CONFIG) --write-bootloader="$(LIVE_BOOTLOADER)" --live $@.partial
|
||||
mv $@.partial $@
|
||||
endif
|
||||
|
||||
@@ -39,38 +39,7 @@ ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
else
|
||||
mkdir -p $(LIVE_BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
tmpdir="$$(mktemp -d)"; \
|
||||
esp_img="$$tmpdir/efiboot.img"; \
|
||||
trap 'rm -rf "$$tmpdir"' EXIT; \
|
||||
mkdir -p "$$tmpdir/EFI/BOOT"; \
|
||||
BOOTLOADER_LIVE_BIOS=""; \
|
||||
for path in recipes/core/bootloader/target/*/stage/usr/lib/boot/bootloader-live.bios repo/*/*/bootloader/*/usr/lib/boot/bootloader-live.bios; do \
|
||||
if [ -f "$$path" ]; then \
|
||||
BOOTLOADER_LIVE_BIOS="$$path"; \
|
||||
break; \
|
||||
fi; \
|
||||
done; \
|
||||
live_size="$$(stat -c%s "$(LIVE_IMG)")"; \
|
||||
esp_size="$$((live_size + 64 * 1024 * 1024))"; \
|
||||
truncate -s "$$esp_size" "$$esp_img"; \
|
||||
mkfs.fat -F 32 "$$esp_img" >/dev/null; \
|
||||
python3 local/scripts/fat_tool.py mkdir "$$esp_img" 0 EFI; \
|
||||
python3 local/scripts/fat_tool.py mkdir "$$esp_img" 0 EFI/BOOT; \
|
||||
python3 local/scripts/fat_tool.py cp-in "$$esp_img" 0 "$(LIVE_BOOTLOADER)" EFI/BOOT/BOOTX64.EFI; \
|
||||
python3 local/scripts/fat_tool.py cp-in "$$esp_img" 0 "$(LIVE_IMG)" redox-live.iso; \
|
||||
cp "$(LIVE_BOOTLOADER)" "$$tmpdir/EFI/BOOT/BOOTX64.EFI"; \
|
||||
cp redbear.ipxe "$$tmpdir/redbear.ipxe"; \
|
||||
if [ -n "$$BOOTLOADER_LIVE_BIOS" ]; then \
|
||||
cp "$$BOOTLOADER_LIVE_BIOS" "$$tmpdir/bootloader-live.bios"; \
|
||||
xorriso -as mkisofs -R -J -V "REDBEARLIVE" -o $@.partial \
|
||||
-b bootloader-live.bios -no-emul-boot \
|
||||
-eltorito-alt-boot -e efiboot.img -no-emul-boot \
|
||||
"$$tmpdir" >/dev/null; \
|
||||
else \
|
||||
xorriso -as mkisofs -R -J -V "REDBEARLIVE" -o $@.partial \
|
||||
-eltorito-alt-boot -e efiboot.img -no-emul-boot \
|
||||
"$$tmpdir" >/dev/null; \
|
||||
fi
|
||||
cp "$(LIVE_IMG)" $@.partial
|
||||
mv $@.partial $@
|
||||
cp redbear.ipxe $(LIVE_IPXE)
|
||||
endif
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
../../../local/patches/bootloader/P2-live-preload-guard.patch
|
||||
@@ -0,0 +1 @@
|
||||
../../../local/patches/bootloader/P3-uefi-live-image-safe-read.patch
|
||||
@@ -1,6 +1,6 @@
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/bootloader.git"
|
||||
patches = ["redox.patch"]
|
||||
patches = ["redox.patch", "P2-live-preload-guard.patch", "P3-uefi-live-image-safe-read.patch"]
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
|
||||
@@ -6,6 +6,20 @@ CONFIG_NAME="redbear-live"
|
||||
ARCH="x86_64"
|
||||
ALLOW_UPSTREAM=0
|
||||
|
||||
canonicalize_live_config() {
|
||||
case "$1" in
|
||||
redbear-live-full)
|
||||
printf '%s\n' "redbear-live"
|
||||
;;
|
||||
redbear-live-mini-grub)
|
||||
printf '%s\n' "redbear-grub-live-mini"
|
||||
;;
|
||||
*)
|
||||
printf '%s\n' "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Usage: $(basename "$0") [OPTIONS] [CONFIG_NAME] [ARCH]
|
||||
@@ -20,6 +34,15 @@ Options:
|
||||
--upstream Allow Redox/upstream recipe source refresh during build
|
||||
-h, --help Show this help
|
||||
|
||||
Supported live ISO targets:
|
||||
redbear-live Full live ISO
|
||||
redbear-live-mini Text-only mini live ISO
|
||||
redbear-grub-live-mini Text-only mini live ISO with GRUB bootloader
|
||||
|
||||
Legacy compatibility aliases:
|
||||
redbear-live-full
|
||||
redbear-live-mini-grub
|
||||
|
||||
Defaults:
|
||||
CONFIG_NAME=redbear-live
|
||||
ARCH=x86_64
|
||||
@@ -62,6 +85,18 @@ fi
|
||||
[ ${#POSITIONAL[@]} -ge 1 ] && CONFIG_NAME="${POSITIONAL[0]}"
|
||||
[ ${#POSITIONAL[@]} -ge 2 ] && ARCH="${POSITIONAL[1]}"
|
||||
|
||||
CONFIG_NAME="$(canonicalize_live_config "$CONFIG_NAME")"
|
||||
|
||||
case "$CONFIG_NAME" in
|
||||
redbear-live|redbear-live-mini|redbear-grub-live-mini)
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Unsupported live ISO target '$CONFIG_NAME'" >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "${CI:-}" ] && { [ ! -t 0 ] || [ ! -t 1 ]; }; then
|
||||
export CI=1
|
||||
fi
|
||||
|
||||
@@ -9,7 +9,9 @@ set -ex
|
||||
trap 'kill -HUP 0' EXIT
|
||||
|
||||
eval $(make setenv)
|
||||
make "${BUILD}/redbear-live.iso"
|
||||
LIVE_IMAGE="build/${ARCH}/${CONFIG_NAME}.iso"
|
||||
make "${LIVE_IMAGE}"
|
||||
ln -sf "$(realpath "${LIVE_IMAGE}")" "${BUILD}/redbear-live.iso"
|
||||
|
||||
echo "Allowing packet forwarding"
|
||||
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ for ARCH in "${ARCHS[@]}"
|
||||
do
|
||||
for CONFIG_NAME in "${CONFIGS[@]}"
|
||||
do
|
||||
IMAGE="build/${ARCH}/${CONFIG_NAME}/redbear-live.iso"
|
||||
IMAGE="build/${ARCH}/${CONFIG_NAME}.iso"
|
||||
make ARCH="${ARCH}" CONFIG_NAME="${CONFIG_NAME}" "${IMAGE}"
|
||||
cp -v "${IMAGE}" "${VENTOY}/redbear-${CONFIG_NAME}-${ARCH}.iso"
|
||||
done
|
||||
|
||||
@@ -21,6 +21,7 @@ use pkg::SourceIdentifier;
|
||||
use pkg::net_backend::DownloadBackendWriter;
|
||||
use std::cell::RefCell;
|
||||
use std::collections::BTreeMap;
|
||||
use std::env;
|
||||
use std::fs;
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
@@ -34,6 +35,27 @@ pub struct FetchResult {
|
||||
pub cached: bool,
|
||||
}
|
||||
|
||||
fn redbear_protected_recipe(name: &str) -> bool {
|
||||
matches!(
|
||||
name,
|
||||
"relibc"
|
||||
| "bootloader"
|
||||
| "kernel"
|
||||
| "base"
|
||||
| "base-initfs"
|
||||
| "installer"
|
||||
| "redoxfs"
|
||||
| "grub"
|
||||
)
|
||||
}
|
||||
|
||||
fn redbear_allow_protected_fetch() -> bool {
|
||||
matches!(
|
||||
env::var("REDBEAR_ALLOW_PROTECTED_FETCH").ok().as_deref(),
|
||||
Some("1" | "true" | "TRUE" | "yes" | "YES")
|
||||
)
|
||||
}
|
||||
|
||||
impl FetchResult {
|
||||
pub fn new(source_dir: PathBuf, ident: String, cached: bool) -> Self {
|
||||
Self {
|
||||
@@ -139,6 +161,15 @@ pub fn fetch_offline(recipe: &CookRecipe, logger: &PtyOut) -> Result<FetchResult
|
||||
}
|
||||
|
||||
pub fn fetch(recipe: &CookRecipe, check_source: bool, logger: &PtyOut) -> Result<FetchResult> {
|
||||
if redbear_protected_recipe(recipe.name.name()) && !redbear_allow_protected_fetch() {
|
||||
log_to_pty!(
|
||||
logger,
|
||||
"[INFO]: protected recipe {} uses local source (fetch disabled; set REDBEAR_ALLOW_PROTECTED_FETCH=1 to override)",
|
||||
recipe.name.name()
|
||||
);
|
||||
return fetch_offline(recipe, logger);
|
||||
}
|
||||
|
||||
let recipe_dir = &recipe.dir;
|
||||
let source_dir = recipe_dir.join("source");
|
||||
match recipe.recipe.build.kind {
|
||||
|
||||
Reference in New Issue
Block a user