Index: build-system-1.10.x/build-config.mk.template
===================================================================
--- build-system-1.10.x/build-config.mk.template (revision 57)
+++ build-system-1.10.x/build-config.mk.template (nonexistent)
@@ -1,126 +0,0 @@
-#
-# ENABLE NOARCH, and HOST: {x86_64|i686}-pc-linux-gnu: is always true.
-#
-
-# TARGET: i686-radix-linux-gnu:
-ENABLE_INTEL_PC32 = true
-
-# TARGET: x86_64-radix-linux-gnu:
-ENABLE_INTEL_PC64 = true
-
-# TARGET: i686-radix-linux-gnu:
-ENABLE_INTEL_PC32M = true
-
-# TARGET: x86_64-radix-linux-gnu:
-ENABLE_INTEL_PC64M = true
-
-# TARGET: i586-radix-linux-gnu:
-ENABLE_EBOX_3350DX2 = true
-
-# TARGET: i586-radix-linux-gnu:
-ENABLE_EBOX_3350DX2M = true
-
-# TARGET: arm-a1x-eabi:
-ENABLE_CB1N = true
-
-# TARGET: arm-a2x-eabi:
-ENABLE_CB2N = true
-ENABLE_CB3N = true
-
-# TARGET: arm-a1x-linux-gnueabihf:
-ENABLE_CB1X = false
-
-# TARGET: arm-a2x-linux-gnueabihf:
-ENABLE_CB2X = false
-ENABLE_CB3X = true
-
-# TARGET: arm-rk328x-linux-gnueabihf:
-ENABLE_FFRK3288 = false
-ENABLE_POIN2 = true
-
-# TARGET: aarch64-rk33xx-linux-gnu:
-ENABLE_RK3328_CC = true
-
-# TARGET: aarch64-rk339x-linux-gnu:
-ENABLE_KHADAS_EDGE = false
-ENABLE_LEEZ_P710 = true
-
-# TARGET: aarch64-rk358x-linux-gnu:
-ENABLE_ORANGE_PI5 = true
-ENABLE_ORANGE_PI5B = false
-ENABLE_ORANGE_PI5P = false
-ENABLE_ROCK_5B = false
-
-# TARGET: arm-h3-linux-gnueabihf:
-ENABLE_ORANGE_PP2E = true
-ENABLE_NANOPI_NEO = false
-
-# TARGET: aarch64-h5-linux-gnu:
-ENABLE_ORANGE_PP = false
-ENABLE_ORANGE_PL2 = false
-ENABLE_WECHIP_TX6 = true
-ENABLE_REPKA_PI3 = true
-
-# TARGET: arm-s8xx-linux-gnueabihf:
-ENABLE_M201 = false
-ENABLE_MXV = true
-
-# TARGET: aarch64-s9xx-linux-gnu:
-ENABLE_P201 = false
-ENABLE_NEXBOX_A95X = false
-ENABLE_ODROID_C2 = false
-ENABLE_P212 = false
-ENABLE_KHADAS_VIM = false
-ENABLE_Q201 = false
-ENABLE_ENYBOX_X2 = true
-ENABLE_KHADAS_VIM2 = false
-
-# TARGET: aarch64-a311x-linux-gnu:
-ENABLE_KHADAS_VIM3 = true
-
-# TARGET: arm-at91sam7s-eabi:
-ENABLE_AT91S = true
-
-# TARGET: arm-imx6-linux-gnueabihf:
-ENABLE_NIT6Q = true
-ENABLE_OKMX6DL_C = false
-ENABLE_OKMX6Q_C = false
-
-# TARGET: arm-imx6ull-linux-gnueabihf:
-ENABLE_SK6ULL = false
-
-# TARGETS: arm-am335x-linux-gnueabihf:
-ENABLE_BONE_BLACK = true
-
-# TARGETS: arm-omap543x-linux-gnueabihf:
-ENABLE_OMAP5UEVM = true
-ENABLE_DRA7XXEVM = false
-
-# TARGETS: mipsel-jz47xx-linux-gnu:
-ENABLE_CI20 = true
-
-# TARGETS: mipsel-p5600-linux-gnu:
-ENABLE_BAIKAL_T1 = true
-
-# TARGETS: aarch64-m1000-linux-gnu:
-ENABLE_BAIKAL_M1 = true
-
-# TARGETS: ppc64-power8-linux-gnu:
-ENABLE_S824L = false
-ENABLE_VESNIN = true
-
-# TARGETS: ppc64le-power8-linux-gnu:
-ENABLE_S824L_LSB = false
-ENABLE_VESNIN_LSB = true
-
-# TARGETS: ppc64-power9-linux-gnu:
-ENABLE_TL2WK2 = false
-ENABLE_TL2SV2 = true
-
-# TARGETS: ppc64le-power9-linux-gnu:
-ENABLE_TL2WK2_LSB = false
-ENABLE_TL2SV2_LSB = true
-
-# TARGETS: riscv64-rv64gc-linux-gnu:
-ENABLE_SIFIVE_U740 = false
-ENABLE_VISIONFIVE2 = true
Index: build-system-1.10.x/core.mk
===================================================================
--- build-system-1.10.x/core.mk (revision 57)
+++ build-system-1.10.x/core.mk (nonexistent)
@@ -1,1993 +0,0 @@
-
-# include once
-ifndef CORE_MK
-
-#######
-####### helpful variables
-#######
-
-comma := ,
-empty :=
-space := $(empty) $(empty)
-
-
-#######
-####### Set up TOP_BUILD_DIR, TOP_BUILD_DIR_ABS and BUILDSYSTEM variables
-#######
-
-ifndef MAKEFILE_LIST
-
-# Work-around for GNU make pre-3.80, which lacks MAKEFILE_LIST and $(eval ...)
-
-TOP_BUILD_DIR := $(shell perl -e 'for ($$_ = "$(CURDIR)"; ! -d "$$_/build-system"; s!(.*)/(.*)!\1!) { $$q .= "../"; } chop $$q; print "$$q"')
-ifeq ($(TOP_BUILD_DIR),)
-TOP_BUILD_DIR=.
-endif
-export TOP_BUILD_DIR_ABS := $(shell perl -e 'for ($$_ = "$(CURDIR)"; ! -d "$$_/build-system"; s!(.*)/(.*)!\1!) { } print')
-export BUILDSYSTEM := $(TOP_BUILD_DIR_ABS)/build-system
-
-else
-
-# Normal operation for GNU make 3.80 and above
-
-__pop = $(patsubst %/,%,$(dir $(1)))
-__tmp := $(call __pop,$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
-# Special case for build-system/Makefile
-ifeq ($(__tmp),.)
-__tmp := ../$(notdir $(CURDIR))
-endif
-
-ifndef TOP_BUILD_DIR
-TOP_BUILD_DIR := $(call __pop,$(__tmp))
-endif
-
-ifndef TOP_BUILD_DIR_ABS
-TOP_BUILD_DIR_ABS := $(CURDIR)
-ifneq ($(TOP_BUILD_DIR),.)
-$(foreach ,$(subst /, ,$(TOP_BUILD_DIR)),$(eval TOP_BUILD_DIR_ABS := $(call __pop,$(TOP_BUILD_DIR_ABS))))
-endif
-export TOP_BUILD_DIR_ABS
-endif
-
-ifndef BUILDSYSTEM
-export BUILDSYSTEM := $(TOP_BUILD_DIR_ABS)/$(notdir $(__tmp))
-endif
-
-endif
-
-
-PATH := $(BUILDSYSTEM):$(BUILDSYSTEM)/sbin:$(BUILDSYSTEM)/usr/bin:$(PATH)
-
-
-#######
-####### Config:
-#######
-
-include $(BUILDSYSTEM)/constants.mk
-
-#
-# All available hardware:
-#
-HARDWARE_ALL = $(strip $(foreach hw, $(filter HARDWARE_%, \
- $(filter-out HARDWARE_ALL \
- HARDWARE_NAMES, \
- $(.VARIABLES))), $($(hw))))
-
-HARDWARE_NAMES = $(filter-out $(HARDWARE_NOARCH), $(HARDWARE_ALL))
-
-#
-# All available toolchains:
-#
-TOOLCHAIN_ALL = $(strip $(foreach t, $(filter TOOLCHAIN_%, \
- $(filter-out TOOLCHAIN_ALL \
- TOOLCHAIN_NAMES \
- TOOLCHAIN_DIR \
- TOOLCHAIN_PATH \
- TOOLCHAIN_VERSION, \
- $(.VARIABLES))), $($(t))))
-
-TOOLCHAIN_NAMES = $(TOOLCHAIN_ALL)
-
-COMPONENT_TOOLCHAINS = $(TOOLCHAIN_ALL)
-
-
-
-
-#######
-####### Config:
-#######
-
-ifneq ($(wildcard $(BUILDSYSTEM)/build-config.mk),)
-include $(BUILDSYSTEM)/build-config.mk
-else
-include $(BUILDSYSTEM)/build-config.mk.template
-endif
-
-# Reading build-config.mk:
-
-# ENABLE_NOARCH & ENABLE_BUILD always enabled:
-ENABLE_NOARCH = true
-ENABLE_BUILD = true
-
-enabled = $(filter ENABLE_%, $(filter-out ENABLE_ARCH ENABLE_TARGETS, $(.VARIABLES)))
-
-hardware_filter = $(strip $(foreach t, \
- $(strip $(foreach b, \
- $(enabled), $(if $(filter true, $($(b))), \
- $(subst ENABLE_, HARDWARE_, $(b))))), $($(t))))
-
-# If no HARDWARE set
-ifeq ($(HARDWARE),)
-
-# COMPONENT_TARGETS must have a value specified in the Makefile
-ifeq ($(COMPONENT_TARGETS),)
-$(error Error: COMPONENT_TARGETS must have a value)
-endif
-
-# End if no HARDWARE set
-endif
-
-
-
-#######
-####### Filter out disabled targets
-#######
-
-COMPONENT_TARGETS := $(filter $(hardware_filter), $(COMPONENT_TARGETS))
-
-# Remove duplicates:
-COMPONENT_TARGETS := $(sort $(COMPONENT_TARGETS))
-
-
-#######
-####### Filter out disabled toolchains:
-#######
-
-COMPONENT_TOOLCHAINS := $(strip \
- $(foreach toolchain, $(COMPONENT_TOOLCHAINS), \
- $(if $(filter $($(shell echo $(toolchain) | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- $(COMPONENT_TARGETS)),$(toolchain),)))
-
-COMPONENT_TOOLCHAINS := $(sort $(COMPONENT_TOOLCHAINS))
-
-
-
-# Error if TOOLCHAIN is invalid
-ifneq ($(TOOLCHAIN),)
-ifeq ($(filter $(TOOLCHAIN), $(COMPONENT_TOOLCHAINS)),)
-$(error Error: TOOLCHAIN=$(TOOLCHAIN) is invalid for selected COMPONENT_TARGETS in Makefile)
-endif
-endif
-
-# Error if HARDWARE is invalid
-ifneq ($(HARDWARE),)
-ifeq ($(filter $(HARDWARE), $(COMPONENT_TARGETS)),)
-$(error Error: HARDWARE=$(HARDWARE) is invalid for selected COMPONENT_TARGETS in Makefile)
-endif
-endif
-
-
-################################################################
-#######
-####### Directories setup Section:
-#######
-
-#
-# Set up SOURCE PACKAGE directory:
-#
-export SRC_PACKAGE_DIR := sources
-export SRC_PACKAGE_PATH := $(TOP_BUILD_DIR)/$(SRC_PACKAGE_DIR)
-export SRC_PACKAGE_PATH_ABS := $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR)
-
-
-#
-# Set up DESTINATION directories:
-#
-DEST_DIR_ABS = $(TOP_BUILD_DIR_ABS)/dist
-
-ifeq ($(NEED_ABS_PATH),)
-DEST_DIR = $(TOP_BUILD_DIR)/dist
-else
-DEST_DIR = $(DEST_DIR_ABS)
-endif
-
-
-#
-# Default PREFIX: is $(TOP_BUILD_DIR)/dist
-#
-PREFIX ?= $(DEST_DIR)
-
-
-#
-# Install DIRs (for SCRIPT_, BIN_, ... TARGETS) [should be always ABS]:
-#
-TARGET_DEST_DIR = $(DEST_DIR_ABS)/$(addprefix ., $(TOOLCHAIN))/$(HARDWARE)
-PRODUCTS_DEST_DIR = $(DEST_DIR_ABS)/products/$(TOOLCHAIN)/$(HARDWARE)
-ROOTFS_DEST_DIR = $(DEST_DIR_ABS)/rootfs/$(TOOLCHAIN)/$(HARDWARE)
-
-#######
-####### End of Directories setup Section.
-#######
-################################################################
-
-
-
-################################################################
-#######
-####### Targets setup Section:
-#######
-
-ifdef TARGET_SETUP_MK
-$(error Error: 'target-setup.mk' should not be included directly, include 'constants.mk' instead.)
-endif
-
-include $(BUILDSYSTEM)/target-setup.mk
-
-#######
-####### End of Targets setup Section.
-#######
-################################################################
-
-
-
-
-
-
-
-
-################################################################
-# Get toolchain by HARDWARE function:
-#
-# toolchain()
-#
-toolchain = $($(strip \
- $(foreach v, $(filter %_HARDWARE_VARIANTS, $(.VARIABLES)), \
- $(if $(filter $1, $($(v))), \
- $(addprefix TOOLCHAIN_,$(subst _HARDWARE_VARIANTS,,$(v))), \
- ))))
-
-# usage:
-# pc32_toolchain = $(call toolchain,$(HARDWARE_INTEL_PC32))
-#
-# Get toolchain by HARDWARE function.
-################################################################
-
-
-################################################################
-# Check the list of available targets for current Makefile
-#
-__available_targets = \
- $(foreach arch, $(shell echo $(COMPONENT_TOOLCHAINS) | sed -e 's/x86_64/x86-64/g'), \
- $(foreach hardware, $($(shell echo ${arch} | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- $(if $(filter $(hardware),$(COMPONENT_TARGETS)), \
- $(if $($(shell echo $(hardware) | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- $(foreach flavour, $($(shell echo $(hardware) | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- .target_$(arch)_$(hardware)_$(flavour) \
- ) .target_$(arch)_$(hardware), \
- $(if $(FLAVOURS), \
- $(foreach flavour, $(FLAVOURS), \
- .target_$(arch)_$(hardware)_$(flavour) \
- ) .target_$(arch)_$(hardware), \
- .target_$(arch)_$(hardware) \
- ) \
- ), \
- ) \
- ) \
- )
-
-__available_targets := $(strip $(__available_targets))
-__available_targets := $(sort $(__available_targets))
-#
-#
-################################################################
-
-
-
-#######
-####### Silent make:
-#######
-
-#ifeq ($(VERBOSE),)
-#ifeq ($(COMPONENT_IS_3PP),)
-#MAKEFLAGS += -s
-#endif
-#endif
-#
-#ifeq ($(VERBOSE),)
-#guiet = @
-#else
-#quiet =
-#endif
-
-
-#######
-####### Number of CPU cores:
-#######
-
-NUMPROCS := 1
-OS := $(shell uname -s)
-
-ifeq ($(OS),Linux)
-NUMPROCS := $(shell grep -c ^processor /proc/cpuinfo)
-endif
-
-
-#######
-####### Parallel control:
-#######
-
-ifneq ($(NOT_PARALLEL),)
-MAKEFLAGS += -j1
-.NOTPARALLEL:
-endif
-
-
-
-#######
-####### Global Cleanup List may be start here with += assign symbol:
-#######
-####### CLEANUP_FILES += ...
-#######
-####### IMPORTANT NOTE:
-####### ==============
-####### Do not add directories such as .$(TOOLCHAIN), $(TARGET_BUILD_DIR), $(HARDWARE), etc.
-#######
-
-
-
-all: BUILD_TREE := true
-export BUILD_TREE
-
-all:
- @$(MAKE) local_all
-
-
-clean: CLEAN_TREE := true
-export CLEAN_TREE
-
-clean:
- @$(MAKE) local_clean
-
-
-dist_clean: DIST_CLEAN_TREE := true
-export DIST_CLEAN_TREE
-
-dist_clean:
- @$(MAKE) local_dist_clean
-
-
-rootfs_clean: ROOTFS_CLEAN_TREE := true
-export ROOTFS_CLEAN_TREE
-
-rootfs_clean:
- @$(MAKE) local_rootfs_clean
-
-
-
-
-# MAKE goals which not depended from Makefile
-__quick_targets := help ccache_stats ccache_cleanup configure_targets local_clean global_clean downloads_clean build-config.mk $(HACK_TARGETS)
-
-
-
-
-################################################################
-#######
-####### Build preparations & HW Independed GOALs Section:
-#######
-
-#
-# GLOBAL setup targets:
-# ====================
-# These targets are built before all targets. For example, source tarballs
-# have to be downloaded before starting the build.
-#
-# NOTE:
-# BUILDSYSTEM is a setup target for other directories and the BUILDSYSTEM
-# requires only '.sources' target as a setup target.
-#
-ifeq ($(filter %_clean,$(MAKECMDGOALS)),)
-ifeq ($(shell pwd),$(BUILDSYSTEM))
-__setup_targets = .sources
-else
-__setup_targets = .sources .build_system
-endif
-endif
-
-
-.setup:
-ifeq ($(__final__),)
-.setup: $(__setup_targets)
-else
-.setup: .makefile
-endif
-
-
-#######
-####### If Makefile has been changed we cannot warranty that this is afected only
-####### one HW target from the list of targets prepared by this local Makefile.
-#######
-####### So, in this case we have to clean up all built targets.
-#######
-
-# Check if Makefile has been changed:
-.makefile: Makefile
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifneq ($(if $(MAKECMDGOALS),$(filter-out $(__quick_targets),$(MAKECMDGOALS)),true),)
- @touch $@
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
- @echo ""
- @echo -e "#######"
- @echo -e "####### New makefile ($(<F)), clean up & rebuild source requires!"
- @echo -e "#######"
- @echo ""
- @$(MAKE) local_dist_clean
- @if $(MAKE) local_clean; then true; else rm -f $@; fi
-else
- @if $(MAKE) download_clean; then true; else rm -f $@; fi
-endif
-endif
-endif
-
-
-
-#######
-####### Build directory dependencies into .src_requires which
-####### is used as a Makefile for srource tarballs downloading
-#######
-
-#######
-####### NOTE:
-####### ====
-####### Source tarballs are downloaded once for whole dependencies tree
-####### of the current directory where we make the build using command
-####### such as 'make' or 'make local_all'.
-####### Target local_all is not affects the downloading sources for the
-####### whole dependencies tree (target local_all affects the building
-####### of packages only).
-####### In this case the $(__final__) variable is not defined.
-####### On the contrary when the BUILDSYSTEM builds each packages of
-####### dependencies tree the $(__final__) variable is defined and
-####### we don't try to download sources because they already downloaded.
-####### More over we don't need to have the '.src_requires' and
-####### '.src_requires_depend' files.
-#######
-####### Such behavior is invented aspecialy to avoid competition in case
-####### when during parallel build different processes can run the same
-####### Makefile and all of them can start the sources preparation.
-#######
-
-.sources: .src_requires
-
-.src_requires_depend: .src_requires ;
-
-.src_requires: .makefile
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(filter %_clean,$(MAKECMDGOALS)),)
-ifeq ($(__final__),)
- @echo ""
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of building source requires for '$(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))':"
- @echo -e "#######"
- @$(BUILDSYSTEM)/build_src_requires $(TOP_BUILD_DIR_ABS)
- @__final__= TREE_RULE=local_all $(MAKE) TOOLCHAIN=$(TOOLCHAIN_NOARCH) HARDWARE=$(HARDWARE_NOARCH) FLAVOUR= -f .src_requires
- @echo -e "#######"
- @echo -e "####### End of building source requires for '$(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))'."
- @echo -e "#######"
- @echo -e "################################################################"
- @echo ""
- @touch $@
- @touch .src_requires_depend
-endif
-endif
-endif
-
-
-
-.build_system: .src_requires
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd | grep $(BUILDSYSTEM)),)
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start to Check the BUILDSYSTEM is ready:"
- @echo -e "#######"
- @( cd $(BUILDSYSTEM) ; __final__= $(MAKE) TOOLCHAIN=$(TOOLCHAIN_BUILD_MACHINE) HARDWARE=$(HARDWARE_BUILD) FLAVOUR= all )
- @echo -e "#######"
- @echo -e "####### End of checking the BUILDSYSTEM."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-
-
-
-#######
-####### Clean the whole source tree
-#######
-
-global_clean: .global_clean
-
-.global_clean:
- @echo ""
- @echo -e "#######"
- @echo -e "####### Cleaning the whole sources tree excluding downloaded sources..."
- @echo -e "#######"
- @$(BUILDSYSTEM)/global_clean $(addprefix ., $(TOOLCHAIN_NAMES)) $(TOP_BUILD_DIR_ABS)
-
-
-#######
-####### Clean all downloaded source tarballs
-#######
-
-downloads_clean: .downloads_clean
-
-.downloads_clean:
- @echo ""
- @echo -e "#######"
- @echo -e "####### Cleaning Up all downloaded sources..."
- @echo -e "#######"
- @$(BUILDSYSTEM)/downloads_clean $(addprefix ., $(TOOLCHAIN_NOARCH)) $(BUILDSYSTEM)/3pp/sources
-ifneq ($(wildcard $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR)),)
- @$(BUILDSYSTEM)/downloads_clean $(addprefix ., $(TOOLCHAIN_NOARCH)) $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR)
-endif
-
-
-help:
- @echo ""
- @echo -e "Build System $(SYSTEM_VERSION)"
- @echo ""
- @echo -e "You can build and install software using command line such as follow:"
- @echo ""
- @echo -e " $$ [TOOLCHAIN=toolchain] [HARDWARE=hardware] [FLAVOUR=flavour] make [goal]"
- @echo ""
- @echo -e "The following MAKE goals are available:"
- @echo ""
- @echo -e " all - perform make build and install software in the all"
- @echo -e " required directories which defined by REQUIRES"
- @echo -e " variable in the local Makefile;"
- @echo -e " local_all - build and install software prepared onlu by local"
- @echo -e " Makefile;"
- @echo -e " dist_clean,"
- @echo -e " local_dist_clean - remove distribution packages from target directory"
- @echo -e " defined by PRODUCTS_DEST_DIR variable. Note that"
- @echo -e " is depends from targets defined by COMPONENT_TARGETS"
- @echo -e " variable or command line;"
- @echo -e " rootfs_clean,"
- @echo -e " local_rootfs_clean - uninstall packages installed into target 'root file"
- @echo -e " system' directory which defined by ROOTFS_DEST_DIR"
- @echo -e " variable;"
- @echo -e " clean,"
- @echo -e " local_clean - clean up all built targets by this Makefile;"
- @echo ""
- @echo -e " If the one from above goals has prefix 'local_' then this goal affects only"
- @echo -e " current directory. Otherwise this goal will be performed for all required"
- @echo -e " directories which defined by REQUIRES variable."
- @echo ""
- @echo -e " configure_targets - select hardwares, for which the software will be built."
- @echo -e " This command edits the build-config.mk file;"
- @echo ""
- @echo -e " requires-tree - create HTML file to show the requires tree for current"
- @echo -e " directory. Note that this goal depends on goal all;"
- @echo -e " packages-list - create HW.pkglist file which contains the list of packages"
- @echo -e " in install order. Note that this goal depends on goal all;"
- @echo -e " devices_table - create Devices Table for rootfs image creation procedure;"
- @echo -e " packages_repo - copy Packages Repository into rootfs before image creation;"
- @echo -e " ext4fs_image - create Ext4 Root FS for target Boot Image;"
- @echo -e " products_release - install files into products directory for release;"
- @echo ""
- @echo -e " global_clean - clean up whole sourses tree excluding downloaded"
- @echo -e " source tarballs;"
- @echo -e " downloads_clean - remove all sourse tarball from 'sourses' directory;"
- @echo ""
- @echo -e " ccache_stats - show the ccache statistic"
- @echo -e " ccache_cleanup - delete old ccache files and recalculate size counters."
- @echo ""
- @echo -e "Local Makefile is prepared for following target HW platforms:"
- @echo ""
- @for platform in $(COMPONENT_TARGETS) ; do \
- echo -e " $$platform"; \
- done
- @echo ""
- @echo -e "Enjoy."
- @echo ""
-
-ccache_stats:
-ifeq ($(NO_CCACHE),)
- @echo ""
- @echo -e "CCACHE statistic:"
- @echo ""
- @CCACHE_DIR=$(CACHED_CC_OUTPUT) $(CCACHE) -s
- @echo ""
- @echo -e "To set max cache size make use the following command"
- @echo ""
- @echo -e " $$ CCACHE_DIR=$(CACHED_CC_OUTPUT) $(CCACHE)-M 64G"
- @echo ""
- @echo -e "see CCACHE(1) for more information."
- @echo ""
-else
- @echo ""
- @echo -e "CCACHE disabled by setting 'NO_CCACHE=$(NO_CCACHE)' variable for this Makefile."
- @echo ""
-endif
-
-ccache_cleanup:
-ifeq ($(NO_CCACHE),)
- @echo ""
- @echo -e "CCACHE cleanup:"
- @echo ""
- @CCACHE_DIR=$(CACHED_CC_OUTPUT) $(CCACHE) --cleanup
- @echo ""
- @echo -e "CCACHE $(CACHED_CC_OUTPUT) is clean."
- @echo ""
-else
- @echo ""
- @echo -e "CCACHE disabled by setting 'NO_CCACHE=$(NO_CCACHE)' variable for this Makefile."
- @echo ""
-endif
-
-configure_targets: $(BUILDSYSTEM)/build-config.mk
- @BUILDSYSTEM=$(BUILDSYSTEM) \
- CONFIG=$(BUILDSYSTEM)/build-config.mk \
- CONSTANTS=$(BUILDSYSTEM)/constants.mk \
- $(BUILDSYSTEM)/configure-targets
-
-#
-# Print value of Makefile variable:
-# --------------------------------
-# usage:
-# make -f Makefile print-BASH_PKG_VERSION
-# output:
-# BASH_PKG_VERSION = 4.3
-#
-print-%:
- @echo '$* = $($*)'
-
-#######
-####### End of Build preparations & HW Independed GOALs Section.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Source archive and patch handling:
-#######
-
-# Patch dependency:
-PATCHES_DEP = $(foreach patch,$(PATCHES),\
- $(shell $(BUILDSYSTEM)/apply_patches $(patch) -dep-))
-
-SRC_DIR_BASE = $(dir $(SRC_DIR))
-
-# Unpack SRC_ARCHIVE in SRC_DIR and backup old SRC_DIR:
-UNPACK_SRC_ARCHIVE = \
- @echo "Expanding $(SRC_ARCHIVE)"; \
- if [ -d $(SRC_DIR) ]; then mv $(SRC_DIR) $$(mktemp -d $(SRC_DIR).bak.XXXXXX); fi; \
- mkdir -p $(SRC_DIR_BASE); \
- $(if $(findstring .rpm,$(SRC_ARCHIVE)), \
- cd $(SRC_DIR_BASE) && rpm2cpio $(SRC_ARCHIVE) | cpio -id --quiet, \
- $(if $(findstring .zip,$(SRC_ARCHIVE)), \
- unzip -q -d $(SRC_DIR_BASE) $(SRC_ARCHIVE), \
- tar $(if $(findstring .bz2,$(SRC_ARCHIVE)),-xjf, \
- $(if $(findstring .xz,$(SRC_ARCHIVE)),-xJf, \
- $(if $(findstring .txz,$(SRC_ARCHIVE)),-xJf,-xzf))) \
- $(SRC_ARCHIVE) -C $(SRC_DIR_BASE))); \
- chmod -R u+w $(SRC_DIR)
-
-# Apply patches in PATCHES on SRC_DIR_BASE:
-APPLY_PATCHES = $(quiet)$(foreach patch,$(PATCHES),\
- $(BUILDSYSTEM)/apply_patches $(patch) $(SRC_DIR_BASE) &&) true
-
-# Apply patches in PATCHES on BASE of directory defined as argument:
-apply-patches = $(quiet)$(foreach patch,$(PATCHES),\
- $(BUILDSYSTEM)/apply_patches $(patch) $(dir $1) &&) true
-
-# Apply patches in OPT_PATCHES on SRC_DIR_BASE:
-APPLY_OPT_PATCHES = $(quiet)$(foreach patch,$(OPT_PATCHES),\
- $(BUILDSYSTEM)/apply_patches $(patch) $(SRC_DIR_BASE) &&) true
-
-# Apply patches in OPT_PATCHES on BASE of directory defined as argument:
-apply-opt-patches = $(quiet)$(foreach patch,$(OPT_PATCHES),\
- $(BUILDSYSTEM)/apply_patches $(patch) $(dir $1) &&) true
-
-
-################################################################
-# Functions:
-# =========
-#
-# Install package content into the current development environment:
-# ----------------------------------------------------------------
-#
-# NOTE:
-# - When we pass ARGS through STDIN [using '--' as end of options] we splits ARGS
-# by new-line '\n' symbol.
-# - When we pass ARGS in the command line, we have to add | tr '\n' ' ' | filter
-# to change new-line with space.
-#
-install-into-devenv = \
- @( cd $1 ; \
- find . \( -type d -empty -o -type f -o -type l \) -printf '%P\n' | sed -e 's, ,\\040,g' | \
- DO_CREATE_DIST_FILES=1 CWD=$(CURDIR) \
- $(BUILDSYSTEM)/install_targets \
- --preserve-source-dir=true \
- --destination=$(TARGET_DEST_DIR) \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) \
- -- \
- )
-# usage:
-# $(call install-into-devenv,$(PKGDIR))
-# where PKGDIR - is a directory where package installed from sources.
-# ----------------------------------------------------------------
-#
-# Pull and Push variables into Perl Storable Hash saved in the
-# $(BUILDSYSTEM)/var/tmp directory. These functions also prints
-# echo to stdout stream:
-# ----------------------------------------------------------------
-push-env = $(shell $(BUILDSYSTEM)/transmitting_hash \
- --set --hardware=$(HARDWARE) --flavour=$(FLAVOUR) \
- --pool-name=$(strip $1) --name=$(strip $2) --value=$(strip $3))
-
-pull-env = $(shell $(BUILDSYSTEM)/transmitting_hash \
- --get --hardware=$(HARDWARE) --flavour=$(FLAVOUR) \
- --pool-name=$(strip $1) --name=$(strip $2) --value=$(strip $3))
-
-push-env-vo = $(shell $(BUILDSYSTEM)/transmitting_hash \
- --set --value-only --hardware=$(HARDWARE) --flavour=$(FLAVOUR) \
- --pool-name=$(strip $1) --name=$(strip $2) --value=$(strip $3))
-
-pull-env-vo = $(shell $(BUILDSYSTEM)/transmitting_hash \
- --get --value-only --hardware=$(HARDWARE) --flavour=$(FLAVOUR) \
- --pool-name=$(strip $1) --name=$(strip $2) --value=$(strip $3))
-#
-# usage:
-# -----
-# environment = $(call push-env, perl, HOME, \'/home/kx\')
-# environment += $(call push-env, perl, DIR, \'$(CURDIR)\')
-# environment += $(call push-env, perl, BASH, \'/bin/bash\')
-# environment += --set $(call push-env, perl, archlib, \'/usr/lib$(LIBSUFFIX)/perl5/$(ARCHNAME)\')
-#
-# environment = HOME=$(call pull-env-vo, perl, HOME, \'/home/olga\')
-# environment += DIR=$(call pull-env-vo, perl, DIR, \'$(CURDIR)\')
-# environment += BASH=$(call pull-env-vo, perl, BASH, \'/bin/sh\')
-# environment += --set archlib=$(call pull-env-vo, perl, archlib, \'/usr/lib$(LIBSUFFIX)/perl5/$(ARCHNAME)\')
-# ----------------------------------------------------------------
-#
-# End of Functions.
-################################################################
-
-
-
-################################################################
-#
-# Example rule:
-#
-# src_done = $(SRC_DIR)/.source-done
-#
-# $(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
-# $(UNPACK_SRC_ARCHIVE)
-# $(APPLY_PATCHES)
-# <other stuff that needs to be done to the source,
-# should be empty in most cases>
-# @touch $@
-#
-################################################################
-
-#######
-####### Source archive and patch handling.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Include files with references to BUILD-SYSTEM scripts:
-#######
-
--include $(BUILDSYSTEM)/progs/.config
--include $(BUILDSYSTEM)/sbin/.config
-
-#######
-####### References to BUILD-SYSTEM scripts.
-#######
-################################################################
-
-
-
-################################################################
-#
-# No '__final__' target selected:
-# ==============================
-#
-# Parse TOOLCHAIN, HARDWARE, FLAVOUR selected in command line
-# and build the list of '__final__' targets.
-#
-ifeq ($(__final__),)
-
-#
-# The FLAVOUR can be defined in command line.
-# If command line defines empty flavour FLAVOUR= then
-# we define that variable is set but has no values.
-#
-__cmdline_flavour_defined = $(if $(filter FLAVOUR,$(.VARIABLES)),true,false)
-ifeq ($(__cmdline_flavour_defined),true)
-__cmdline_flavour_value = $(FLAVOUR)
-else
-__cmdline_flavour_value =
-endif
-
-##############################################################
-# -----------+----------+---------+-------------------+-----
-# TOOLCHAIN | HARDWARE | FLAVOUR | FLAVOUR has VALUE | REF
-# -----------+----------+---------+-------------------+-----
-# defined | defined | defined | yes | (0)
-# defined | defined | defined | no | (1)
-# defined | defined | ~ | ~ | (2)
-# -----------+----------+---------+-------------------+-----
-# defined | ~ | defined | yes | (3)
-# defined | ~ | defined | no | (4)
-# defined | ~ | ~ | ~ | (5)
-# -----------+----------+---------+-------------------+-----
-# ~ | defined | defined | yes | (6)
-# ~ | defined | defined | no | (7)
-# ~ | defined | ~ | ~ | (8)
-# -----------+----------+---------+-------------------+-----
-# ~ | ~ | defined | yes | (9)
-# ~ | ~ | defined | no | (A)
-# ~ | ~ | ~ | ~ | (B)
-# -----------+----------+---------+-------------------+-----
-##############################################################
-
-# we allow only available combinations according to component targets and flavours lists
-
-ifeq ($(TOOLCHAIN),)
-ifeq ($(HARDWARE),)
-ifeq ($(FLAVOUR),)
-ifeq ($(__cmdline_flavour_defined),false)
-# (B) ======= loop: T, H, F; =======
-__target_args = $(__available_targets)
-else
-# (A) ======= loop: T, H ; where F=0 =======
-__target_args = $(foreach arch, $(shell echo $(COMPONENT_TOOLCHAINS) | sed -e 's/x86_64/x86-64/g'), \
- $(foreach hardware, $($(shell echo ${arch} | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- .target_$(arch)_$(hardware) \
- ) \
- )
-endif
-else
-# (9) ======= loop: T, H ; where F=const =======
-__target_args = $(foreach arch, $(shell echo $(COMPONENT_TOOLCHAINS) | sed -e 's/x86_64/x86-64/g'), \
- $(foreach hardware, $($(shell echo ${arch} | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- $(if $(filter $(FLAVOUR), $($(shell echo ${hardware} | tr '[a-z]' '[A-Z]')_FLAVOURS)), \
- .target_$(arch)_$(hardware)_$(FLAVOUR), \
- $(if $(filter $(FLAVOUR), $(FLAVOURS)), \
- .target_$(arch)_$(hardware)_$(FLAVOUR), \
- ) \
- ) \
- ) \
- )
-endif
-else
-ifeq ($(FLAVOUR),)
-ifeq ($(__cmdline_flavour_defined),false)
-# (8) ======= loop: T, , F; where H=const =======
-__target_args = $(foreach arch, $(shell echo $(call toolchain,$(HARDWARE)) | sed -e 's/x86_64/x86-64/g'), \
- $(if $($(shell echo $(HARDWARE) | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- $(foreach flavour, $($(shell echo $(HARDWARE) | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- .target_$(arch)_$(HARDWARE)_$(flavour) \
- ) .target_$(arch)_$(HARDWARE), \
- $(if $(FLAVOURS), \
- $(foreach flavour, $(FLAVOURS), \
- .target_$(arch)_$(HARDWARE)_$(flavour) \
- ), \
- ) .target_$(arch)_$(HARDWARE) \
- ) \
- )
-else
-# (7) ======= loop: T, , ; where H=const, F=0 =======
-__target_args = $(foreach arch, $(shell echo $(call toolchain,$(HARDWARE)) | sed -e 's/x86_64/x86-64/g'), \
- .target_$(arch)_$(HARDWARE) \
- )
-endif
-else
-# (6) ======= loop: T, , ; where H=const, F=const =======
-__target_args = $(foreach arch, $(shell echo $(call toolchain,$(HARDWARE)) | sed -e 's/x86_64/x86-64/g'), \
- .target_$(arch)_$(HARDWARE)_$(FLAVOUR) \
- )
-endif
-endif
-else
-ifeq ($(HARDWARE),)
-ifeq ($(FLAVOUR),)
-ifeq ($(__cmdline_flavour_defined),false)
-# (5) ======= loop: , H, F; where T=const =======
-__target_args = $(foreach hardware, $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- $(if $($(shell echo ${hardware} | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- $(foreach flavour, $($(shell echo ${hardware} | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(hardware)_$(flavour) \
- ) .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(hardware), \
- $(if $(FLAVOURS), \
- $(foreach flavour, $(FLAVOURS), \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(hardware)_$(flavour) \
- ), \
- ) \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(hardware) \
- ) \
- )
-else
-# (4) ======= loop: , H, ; where T=const, F=0 =======
-__target_args = $(foreach hardware, $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(hardware) \
- )
-endif
-else
-# (3) ======= loop: , H, ; where T=const, F=const =======
-__target_args = $(foreach hardware, $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_HARDWARE_VARIANTS), \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(hardware)_$(FLAVOUR) \
- )
-endif
-else
-ifeq ($(FLAVOUR),)
-ifeq ($(__cmdline_flavour_defined),false)
-# (2) ======= loop: , , F; where T=const, H=const =======
-__target_args = $(if $($(shell echo $(HARDWARE) | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- $(foreach flavour, $($(shell echo $(HARDWARE) | tr '[a-z]' '[A-Z]')_FLAVOURS), \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE)_$(flavour) \
- ) .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE), \
- $(if $(FLAVOURS), \
- $(foreach flavour, $(FLAVOURS), \
- .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE)_$(flavour) \
- ) .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE), \
- ) .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE) \
- )
-else
-# (1) ======= loop: , , ; T=const, H=const, F=0 =======
-__target_args = .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE)
-endif
-else
-# (0) ======= loop: , , ; T=const, H=const, F=const =======
-__target_args = .target_$(shell echo $(TOOLCHAIN) | sed -e 's/x86_64/x86-64/g')_$(HARDWARE)_$(FLAVOUR)
-endif
-endif
-endif
-
-__target_args := $(strip $(__target_args))
-
-
-__targets = $(filter $(__target_args), $(__available_targets))
-
-# Now we have to sort targets for that the main targets should be built before flavours!
-__targets := $(sort $(__targets))
-
-
-ifeq ($(__targets),)
-$(error Error: Selected combination [TOOLCHAIN=$(TOOLCHAIN), HARDWARE=$(HARDWARE), FLAVOUR=$(FLAVOUR)] is invalid for this Makefile)
-endif
-
-$(__targets): .setup
-
-
-#
-# NOTE:
-# ====
-# Several FLAVOURS can require the same package, for example, base/pkgtool.
-# To avoid concurrency problems we have to diable parallel building for Makefiles
-# where there are FLAVOURS.
-#
-# We have to check both HW specific and general FLAVOURS.
-#
-all-flavour-values = $(strip $(foreach flname, $(filter FLAVOURS %_FLAVOURS, $(.VARIABLES)), $($(flname))))
-
-ifneq ($(all-flavour-values),)
-.NOTPARALLEL: $(__targets)
-endif
-
-
-local_all: GOAL = local_all
-local_all: $(__targets)
-
-
-local_clean: GOAL = local_clean
-local_clean: $(__targets)
-
-
-local_dist_clean: GOAL = local_dist_clean
-local_dist_clean: $(__targets)
-
-
-local_rootfs_clean: GOAL = local_rootfs_clean
-local_rootfs_clean: $(__targets)
-
-requires-tree: GOAL = requires-tree
-requires-tree: $(__targets)
-
-packages-list: GOAL = packages-list
-packages-list: $(__targets)
-
-devices_table: GOAL = devices_table
-devices_table: $(__targets)
-
-packages_repo: GOAL = packages_repo
-packages_repo: $(__targets)
-
-ext4fs_image: GOAL = ext4fs_image
-ext4fs_image: $(__targets)
-
-products_release: GOAL = products_release
-products_release: $(__targets)
-
-
-.target_%: TOOLCHAIN = $(shell echo $(word 2, $(subst _, , $@)) | sed -e 's/x86-64/x86_64/g')
-.target_%: HARDWARE = $(if $(filter $(shell echo $(word 3, $(subst _, , $@))),$(HARDWARE_ALL)),$(word 3, $(subst _, , $@)))
-.target_%: FLAVOUR = $(if $(word 4, $(subst _, , $@)),$(word 4, $(subst _, , $@)),$(if $(filter $(shell echo $(word 3, $(subst _, , $@))),$(HARDWARE_ALL)),,$(word 3, $(subst _, , $@))))
-.target_%:
- @echo ""
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### TOOLCHAIN=$(TOOLCHAIN) ; HARDWARE=$(HARDWARE) ; FLAVOUR=$(if $(FLAVOUR),$(FLAVOUR)) ;"
- @echo -e "#######"
- @__final__=true $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE) FLAVOUR=$(FLAVOUR) $(GOAL)
-
-
-else
-#
-################################################################
-#
-# The '__final__' target is defined, run the build process.
-
-
-targetflavour = .$(TOOLCHAIN)/$(HARDWARE)$(if $(FLAVOUR),/$(FLAVOUR),)
-
-TARGET_BUILD_DIR = $(targetflavour)
-
-ifeq ($(filter %_clean,$(MAKECMDGOALS)),)
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-$(shell mkdir -p .$(TOOLCHAIN)/$(HARDWARE)$(if $(FLAVOUR),/$(FLAVOUR)))
-endif
-endif
-endif
-
-ifneq ($(NO_CREATE_DIST_FILES),true)
-local_all: CREATE_DIST_FILES = 1
-endif
-
-
-ifeq ($(BUILD_TREE),true)
-_tree := .tree_all
-else
-_tree := .requires_makefile
-endif
-
-#
-local_all: .toolchain $(_tree) _install
-
-
-ifeq ($(CLEAN_TREE),true)
-local_clean: .tree_clean
-else
-local_clean:
-endif
-
-ifeq ($(DIST_CLEAN_TREE),true)
-local_dist_clean: .tree_dist_clean
-else
-local_dist_clean:
-endif
-
-ifeq ($(ROOTFS_CLEAN_TREE),true)
-local_rootfs_clean: .tree_rootfs_clean
-else
-local_rootfs_clean:
-endif
-
-.toolchain:
-ifneq ($(TOOLCHAIN_PATH),)
-ifeq ($(wildcard $(TOOLCHAIN_PATH)),)
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of downloading toolchain '$(shell basename $(TOOLCHAIN_TARBALL))':"
- @echo -e "#######"
- @if [ -d $(TOOLCHAINS_BASE_PATH) -a -w $(TOOLCHAINS_BASE_PATH) ] ; then \
- ( cd $(TOOLCHAINS_BASE_PATH) ; \
- $(BUILDSYSTEM)/download-toolchain "$(DOWNLOAD_SERVER)/$(TOOLCHAIN_TARBALL)" ; \
- ) ; \
- else \
- echo -e "#" ; \
- echo -e "#" ; \
- echo -e "# Please create '$(TOOLCHAINS_BASE_PATH)' directory" ; \
- echo -e "# and give write permissions to '$(shell echo "`id -u -n`")':" ; \
- echo -e "#" ; \
- echo -e "# # sudo mkdir -p $(TOOLCHAINS_BASE_PATH)" ; \
- echo -e "# # sudo chown -R $(shell echo "`id -u -n`"):$(shell echo "`id -g -n`") $(TOOLCHAINS_BASE_PATH)" ; \
- echo -e "#" ; \
- echo -e "#" ; \
- echo -e "# ERROR: $(TOOLCHAINS_BASE_PATH): Permission denied. Stop." ; \
- echo -e "#" ; \
- exit 1 ; \
- fi
- @echo -e "#######"
- @echo -e "####### End of downloading toolchain '$(shell basename $(TOOLCHAIN_TARBALL))'."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-
-
-.tree_all: BUILD_TREE := false
-
-.tree_all: $(TARGET_BUILD_DIR)/.requires
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
- @echo -e "################################################################"
- @echo -e "#######"
-ifeq ($(shell pwd),$(BUILDSYSTEM))
- @echo -e "####### Start of building requires for '$(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))':"
-else
- @echo -e "####### Start of building requires for TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE) FLAVOUR=$(FLAVOUR) in '$(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))':"
-endif
- @echo -e "#######"
-ifeq ($(shell pwd),$(BUILDSYSTEM))
- @__final__=true TREE_RULE=local_all $(MAKE) TOOLCHAIN=$(TOOLCHAIN_BUILD_MACHINE) HARDWARE=$(HARDWARE_BUILD) FLAVOUR= -f $(TARGET_BUILD_DIR)/.requires
-else
- @__final__=true TREE_RULE=local_all $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE) FLAVOUR= -f $(TARGET_BUILD_DIR)/.requires
-endif
- @echo -e "#######"
- @echo -e "####### End of building requires for '$(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))'."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-
-
-# We always build requires Makeile '.requires_makefile' (for both local and tree build processes).
-# This is needed to cover all tree. In other words we want to have '$(TARGET_BUILD_DIR)/.requires'
-# file in the each directory to be able run 'make requires-tree' command.
-#
-
-.requires_makefile: $(TARGET_BUILD_DIR)/.requires
-
-
-#######
-####### Build directory dependencies into $(TARGET_BUILD_DIR)/.requires
-####### file which is used as a Makefile for tree builds.
-#######
-
-$(TARGET_BUILD_DIR)/.requires_depend: $(TARGET_BUILD_DIR)/.requires ;
-
-$(TARGET_BUILD_DIR)/.requires: .makefile
-ifeq ($(filter %_clean,$(MAKECMDGOALS)),)
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(BUILDSYSTEM))
- @$(BUILDSYSTEM)/build_requires $(TOP_BUILD_DIR_ABS) $(TOOLCHAIN_BUILD_MACHINE) $(HARDWARE_BUILD) ; wait
-else
- @$(BUILDSYSTEM)/build_requires $(TOP_BUILD_DIR_ABS) $(TOOLCHAIN) $(HARDWARE) $(FLAVOUR) ; wait
-endif
-endif
-endif
-endif
-
-
-
-
-################################################################
-#######
-####### Tree Clean up rules:
-#######
-
-.tree_clean: CLEAN_TREE := false
-
-.tree_clean: $(TARGET_BUILD_DIR)/.requires
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifneq ($(wildcard $(TARGET_BUILD_DIR)/.requires),)
-ifeq ($(shell pwd),$(BUILDSYSTEM))
- @__final__=true TREE_RULE=local_clean $(MAKE) TOOLCHAIN=$(TOOLCHAIN_BUILD_MACHINE) HARDWARE=$(HARDWARE_BUILD) FLAVOUR= -f $(TARGET_BUILD_DIR)/.requires
-else
- @__final__=true TREE_RULE=local_clean $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE) FLAVOUR= -f $(TARGET_BUILD_DIR)/.requires
-endif
-endif
-endif
-endif
-
-
-.tree_dist_clean: DIST_CLEAN_TREE := false
-
-.tree_dist_clean: $(TARGET_BUILD_DIR)/.requires
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifneq ($(shell pwd),$(BUILDSYSTEM))
- @__final__=true TREE_RULE=local_dist_clean $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE) FLAVOUR= -f $(TARGET_BUILD_DIR)/.requires
-endif
-endif
-endif
-
-
-.tree_rootfs_clean: ROOTFS_CLEAN_TREE := false
-
-.tree_rootfs_clean: $(TARGET_BUILD_DIR)/.requires
-ifneq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifneq ($(shell pwd),$(BUILDSYSTEM))
- @__final__=true TREE_RULE=local_rootfs_clean $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE) FLAVOUR= -f $(TARGET_BUILD_DIR)/.requires
-endif
-endif
-endif
-
-
-#######
-####### End of Tree Clean up rules.
-#######
-################################################################
-
-
-
-################################################################
-#######
-####### Clean up default rules:
-#######
-
-
-#######
-####### Clean:
-#######
-
-#
-# CLEANUP_FILES can be placed outside $(TARGET_BUILD_DIR) directory,
-# the '.$(TOOLCHAIN)' directory can be removed if it is empty ONLY.
-#
-
-local_clean: .local_clean
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifneq ($(wildcard .$(TOOLCHAIN)),)
- @rm -rf $(CLEANUP_FILES)
-ifneq ($(wildcard $(TARGET_BUILD_DIR)),)
- @rm -rf $(TARGET_BUILD_DIR)
-endif
- @if [ "`find .$(TOOLCHAIN) -maxdepth 0 -empty`" ] ; then rm -rf .$(TOOLCHAIN) ; fi
-endif
-endif
-
-.local_clean:
-ifneq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
- @echo -e "####### Cleaning in '`basename $(CURDIR)`' directory is not supported."
-else
- @echo -e "####### Local Cleaning in '`basename $(CURDIR)`' directory..."
-endif
-
-
-#######
-####### Destination Clean:
-#######
-
-#
-# dist & rootfs cleaning perform only if *.dist, *.rootfs file exists
-# For the product packages, BIN & SCRIPT ..._TARGETS we create *.dist
-# files for each hardware:
-#
-# .$(HARDWARE).dist
-#
-# Rootfs target have to be alone because we install into root fs only
-# main package (flavour package we copy only into dist/products/...)
-#
-# .$(HARDWARE).rootfs
-#
-
-local_dist_clean: .local_dist_clean
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(wildcard $(TARGET_BUILD_DIR)/.dist),)
- @echo -e " (nothing to be done)."
-else
- @if [ -f $(TARGET_BUILD_DIR)/.dist ] ; then \
- $(BUILDSYSTEM)/dist_clean --destination=$(DEST_DIR) \
- --toolchain=$(TOOLCHAIN) --hardware=$(HARDWARE) --flavour=$(FLAVOUR) ; \
- rm -f $(TARGET_BUILD_DIR)/.dist ; \
- fi
- @rm -rf $(TARGET_BUILD_DIR)/.dist*
- @echo -e " (done)."
-endif
-endif
-endif
-
-.local_dist_clean:
-ifeq ($(shell pwd),$(BUILDSYSTEM))
- @echo -e "####### Destination cleaning in '`basename $(CURDIR)`' directory is not supported."
-else
-ifneq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
- @echo -e "####### Destination cleaning in '`basename $(CURDIR)`' directory is not supported."
-else
- @echo -n -e "####### Destination cleaning in '`basename $(CURDIR)`' directory..."
-endif
-endif
-
-
-#######
-####### Root File System Clean:
-#######
-
-local_rootfs_clean: .local_rootfs_clean
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(wildcard $(TARGET_BUILD_DIR)/.rootfs),)
- @echo -e "####### Root File System cleaning... (nothing to be done)."
-else
- @if [ -f $(TARGET_BUILD_DIR)/.rootfs ]; then \
- REMOVE_PACKAGE="$(REMOVE_PACKAGE)" $(BUILDSYSTEM)/rootfs_clean \
- --destination=$(DEST_DIR) \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) ; \
- else \
- echo -e "B####### ... Nothing to be done (there are no installed packages)." ; \
- fi
- @rm -rf $(TARGET_BUILD_DIR)/.rootfs
-endif
-endif
-endif
-
-.local_rootfs_clean:
-ifeq ($(shell pwd),$(BUILDSYSTEM))
- @echo -e "####### Root file system cleaning in '`basename $(CURDIR)`' directory is not supported."
-else
-ifneq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
- @echo -e "####### Root file system cleaning in '`basename $(CURDIR)`' directory is not supported."
-else
- @echo -e "#######"
- @echo -e "####### Remove packages from 'dist/rootfs/$(TOOLCHAIN)/$(HARDWARE)/...' file system..."
- @echo -e "#######"
-endif
-endif
-
-
-#######
-####### End of Clean up default rules.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Build REQUIRES tree:
-#######
-
-#
-# $(HARDWARE).tree.html - is a main target of `make requires-tree' procedure:
-#
-requires-tree: $(TARGET_BUILD_DIR)/.$(HARDWARE).tree.html
-
-#
-# Requires Tree perform only if goal 'all' is done and all packages installed
-# into root filesystem or into products directory.
-#
-# NOTE:
-# GNU Make `wildcard' function doesn't work with files which created
-# during Makefile works. For normal work all tested files should be
-# created before the Makefile starting my make command.
-#
-$(TARGET_BUILD_DIR)/.$(HARDWARE).tree.html:
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Requires Tree creation in the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
-ifeq ($(wildcard $(TARGET_BUILD_DIR)/.requires),)
- @echo -e " (nothing to be done)."
- @echo -e "#######"
- @echo -e "####### Before creating a dependency tree all goals have to be made."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of building Requires Tree in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @JSMIN=$(JSMIN) $(BUILDSYSTEM)/build_requires_tree $(TOP_BUILD_DIR_ABS) $(PKGARCH) $(TOOLCHAIN) $(HARDWARE) $(FLAVOUR)
- @echo -e "#######"
- @echo -e "####### End of building Requires Tree in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-endif
-
-#######
-####### End of Build REQUIRES tree.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Build PACKAGES list:
-#######
-
-#
-# $(HARDWARE).pkglist - is a main target of `make packages-list' procedure:
-#
-packages-list: $(TARGET_BUILD_DIR)/$(HARDWARE).pkglist
-
-#
-# Packages List perform only if goal 'all' is done and all packages installed
-# into root filesystem or into products directory.
-#
-# NOTE:
-# GNU Make `wildcard' function doesn't work with files which created
-# during Makefile works. For normal work all tested files should be
-# created before the Makefile starting my make command.
-#
-$(TARGET_BUILD_DIR)/$(HARDWARE).pkglist:
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Packages List creation in the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
-ifeq ($(wildcard $(TARGET_BUILD_DIR)/.requires),)
- @echo -e " (nothing to be done)."
- @echo -e "#######"
- @echo -e "####### Before creating a dependency tree all goals have to be made."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of building Packages List in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @$(BUILDSYSTEM)/build_packages_list $(TOP_BUILD_DIR_ABS) $(PKGARCH) $(TOOLCHAIN) $(HARDWARE) $(FLAVOUR)
- @echo -e "#######"
- @echo -e "####### End of building Packages List in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-endif
-
-#######
-####### End of Build PACKAGES list.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Build Devices Table:
-#######
-
-devices_table: $(TARGET_BUILD_DIR)/.DEVTABLE
-
-$(TARGET_BUILD_DIR)/.DEVTABLE: $(TARGET_BUILD_DIR)/$(HARDWARE).pkglist
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Devices Table creation in the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of building Devices Table in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @SYSTEM_VERSION=$(SYSTEM_VERSION) \
- DISTRO_VERSION=$(DISTRO_VERSION) \
- DISTRO_NAME=$(DISTRO_NAME) \
- $(BUILDSYSTEM)/build_devices_table $(TOP_BUILD_DIR_ABS) $(TOOLCHAIN) $(HARDWARE) $(FLAVOUR)
- @echo -e "#######"
- @echo -e "####### End of building Devices Table in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-
-#######
-####### End of Build Devices Table.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Copy Packages REPO into rootfs:
-#######
-
-packages_repo: $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/$(HARDWARE).pkglist
-
-$(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/$(HARDWARE).pkglist: $(TARGET_BUILD_DIR)/$(HARDWARE).pkglist $(TARGET_BUILD_DIR)/.DEVTABLE
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Packages REPO creation in the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of copying Packages REPO in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @mkdir -p $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)
- @for dir in `find $(PRODUCTS_DEST_DIR)/ -mindepth 1 -type d -name '*'` ; do \
- cp -a $${dir} $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/ ; \
- done
- @cp -a $(TARGET_BUILD_DIR)/$(HARDWARE).pkglist \
- $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/
- @ln -sfr $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/$(HARDWARE).pkglist \
- $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/.pkglist
- @echo -e "####### Packages REPO has been installed into 'var/lib/$(DISTRO_NAME)/repo' directory."
- @echo -e "#######"
- @echo -e "####### End of copying Packages REPO in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-
-#######
-####### End of Copying Packages REPO.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Build ext4 Root FS image:
-#######
-
-ext4fs_image: $(TARGET_BUILD_DIR)/$(HARDWARE).ext4fs
-
-$(TARGET_BUILD_DIR)/$(HARDWARE).ext4fs: $(TARGET_BUILD_DIR)/.DEVTABLE $(ROOTFS_DEST_DIR)/var/lib/$(DISTRO_NAME)/repo/$(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)/$(HARDWARE).pkglist
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Ext4 Root FS Image creation in the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Start of building Ext4 Root FS Image in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @( size=`echo $(MAKEFLAGS) | grep 'size=' | sed -e 's,.*size=\([0-9.]*[KMG]\?\).*,\1,'` ; \
- if [ -z "$$size" ] ; then \
- sizeoption="" ; \
- else \
- sizeoption="--size=$$size" ; \
- fi ; \
- MKEE4FS=$(MKE4FS) E4FSCK=$(E4FSCK) POPULATEFS=$(POPULATEFS) \
- $(BUILDSYSTEM)/build_ext4fs $$sizeoption $(TOP_BUILD_DIR_ABS) $(TOOLCHAIN) $(HARDWARE) $(FLAVOUR) ; \
- )
- @echo -e "#######"
- @echo -e "####### End of building Ext4 Root FS Image in '`echo $(CURDIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-
-#######
-####### End of Build ext4 Root FS image.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Install $(HARDWARE).{pkglist,ext4fs,SD.MBR} into products directory:
-#######
-
-products_release: $(PRODUCTS_DEST_DIR)/$(HARDWARE).pkglist \
- $(PRODUCTS_DEST_DIR)/$(HARDWARE).ext4fs
-
-$(PRODUCTS_DEST_DIR)/$(HARDWARE).ext4fs: $(TARGET_BUILD_DIR)/$(HARDWARE).ext4fs
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Installation of Ext4 Root FS Image from the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Installing the Ext4 Root FS Image into '`echo $(PRODUCTS_DEST_DIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @cp -a $(TARGET_BUILD_DIR)/$(HARDWARE).SD.MBR $(PRODUCTS_DEST_DIR)/$(HARDWARE).SD.MBR
- @cp -a $(TARGET_BUILD_DIR)/$(HARDWARE).ext4fs $(PRODUCTS_DEST_DIR)/$(HARDWARE).ext4fs
- @$(E4FSCK) -fy $(PRODUCTS_DEST_DIR)/$(HARDWARE).ext4fs
- @if [ -s $(PRODUCTS_DEST_DIR)/$(HARDWARE).boot-records ] ; then \
- $(DD) if=$(TARGET_BUILD_DIR)/$(HARDWARE).SD.MBR \
- of=$(PRODUCTS_DEST_DIR)/$(HARDWARE).boot-records \
- bs=1 skip=446 seek=446 count=66 conv=notrunc 1> /dev/null 2> /dev/null ; \
- fi
- @if [ -s $(PRODUCTS_DEST_DIR)/$(HARDWARE).grub-records ] ; then \
- $(DD) if=$(TARGET_BUILD_DIR)/$(HARDWARE).SD.MBR \
- of=$(PRODUCTS_DEST_DIR)/$(HARDWARE).grub-records \
- bs=1 skip=446 seek=446 count=66 conv=notrunc 1> /dev/null 2> /dev/null ; \
- fi
- @if [ -s $(PRODUCTS_DEST_DIR)/$(HARDWARE).efi32fs ] ; then \
- rm -f $(PRODUCTS_DEST_DIR)/$(HARDWARE).SD.MBR ; \
- cp -a $(BUILDSYSTEM)/write-efiboot-image $(PRODUCTS_DEST_DIR) ; \
- cp -a $(BUILDSYSTEM)/usr/share/pkgtools/.dialogrc $(PRODUCTS_DEST_DIR) ; \
- fi
- @echo -e "#######"
- @echo -e "####### End of installing Ext4 Root FS Image into '`echo $(PRODUCTS_DEST_DIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-
-$(PRODUCTS_DEST_DIR)/$(HARDWARE).pkglist: $(TARGET_BUILD_DIR)/$(HARDWARE).pkglist
-ifneq ($(shell pwd),$(BUILDSYSTEM))
-ifeq ($(shell pwd | grep $(TOP_BUILD_DIR_ABS)/$(SRC_PACKAGE_DIR))$(shell pwd | grep $(BUILDSYSTEM)/3pp/sources),)
-ifeq ($(shell pwd),$(TOP_BUILD_DIR_ABS))
- @echo -e "#######"
- @echo -e "####### Installation of Packages List from the top of '`basename $(CURDIR)`' directory is not supported."
- @echo -e "#######"
-else
- @echo -e "################################################################"
- @echo -e "#######"
- @echo -e "####### Installing the Packages List into '`echo $(PRODUCTS_DEST_DIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory..."
- @echo -e "#######"
- @mkdir -p $(PRODUCTS_DEST_DIR)
- @cp -a $(TARGET_BUILD_DIR)/$(HARDWARE).pkglist \
- $(PRODUCTS_DEST_DIR)
- @( cd $(PRODUCTS_DEST_DIR) ; \
- ln -sf $(HARDWARE).pkglist .pkglist ; \
- )
- @echo -e "#######"
- @echo -e "####### Packages List has been installed into '`echo $(PRODUCTS_DEST_DIR) | sed 's,$(TOP_BUILD_DIR_ABS)/,,'`' directory."
- @echo -e "#######"
- @echo -e "################################################################"
-endif
-endif
-endif
-
-#######
-####### End of Install $(HARDWARE).{pkglist,ext4fs,SD.MBR}.
-#######
-################################################################
-
-
-#######
-####### Install rules:
-#######
-
-ifdef SCRIPT_TARGETS
-_install_scripts := .install_scripts
-endif
-
-ifdef BIN_TARGETS
-_install_bins := .install_bins
-endif
-
-ifdef BUILD_TARGETS
-_install_builds := .install_builds
-endif
-
-ifdef PRODUCT_TARGETS
-_install_products := .install_products
-endif
-
-ifdef ROOTFS_TARGETS
-_install_pkgs := .install_pkgs
-endif
-
-ifdef ROOTFS_UPDATE_TARGETS
-_update_pkgs := .update_pkgs
-endif
-
-
-################################################################
-#######
-####### Waiting for build whole required tree:
-#######
-
-$(BUILD_TARGETS) : | $(_tree)
-
-#######
-####### End of waiting for build whole required tree.
-#######
-################################################################
-
-
-$(PRODUCT_TARGETS) : | $(BUILD_TARGETS)
-$(ROOTFS_TARGETS) : | $(BUILD_TARGETS)
-$(ROOTFS_UPDATE_TARGETS) : | $(BUILD_TARGETS)
-
-
-
-_install: .install
- @if [ "$$(echo $(TARGET_BUILD_DIR)/.dist*)" != "$(TARGET_BUILD_DIR)/.dist*" ]; then \
- sort -o $(TARGET_BUILD_DIR)/.dist.tmp -u $(TARGET_BUILD_DIR)/.dist* ; \
- mv $(TARGET_BUILD_DIR)/.dist.tmp $(TARGET_BUILD_DIR)/.dist ; \
- fi
- @rm -f $(TARGET_BUILD_DIR)/.dist.*
-
-
-
-.install: $(_install_scripts)
-.install: $(_install_bins)
-.install: $(_install_builds)
-.install: $(_install_products)
-.install: $(_install_pkgs)
-.install: $(_update_pkgs)
-
-
-# create files which contains the list of installed files
-.install_%: DO_CREATE_DIST_FILES = $(CREATE_DIST_FILES)
-export DO_CREATE_DIST_FILES
-
-
-#
-# Note:
-# The check such as 'ifdef SCRIPT_TARGETS' realy doesn't need. This
-# practice can be used in other cases, for example, if we will need
-# to check some variables used in the following commands.
-# As example only, we can check existence of FLAVOUR variable:
-#
-# $(_install_scripts): $(SCRIPT_TARGETS)
-# ifdef FLAVOUR
-# @$(BUILDSYSTEM)/install_targets $^ $(TARGET_DEST_DIR)/bin $(HARDWARE) $(FLAVOUR)
-# else
-# @$(BUILDSYSTEM)/install_targets $^ $(TARGET_DEST_DIR)/bin $(HARDWARE)
-# endif
-#
-$(_install_scripts): $(SCRIPT_TARGETS)
-ifdef SCRIPT_TARGETS
- @$(BUILDSYSTEM)/install_targets \
- --destination=$(TARGET_DEST_DIR)/bin \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) \
- $^
-endif
-
-$(_install_bins): $(BIN_TARGETS)
-ifdef BIN_TARGETS
- @$(BUILDSYSTEM)/install_targets \
- --destination=$(TARGET_DEST_DIR)/bin \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) \
- $^
-endif
-
-$(_install_builds): $(BUILD_TARGETS)
-ifdef BUILD_TARGETS
-# Do nothing
-endif
-
-# preserve source dir with depth=1 ; then collect installed products in the .$(HARDWARE).products file
-$(_install_products): $(PRODUCT_TARGETS)
-ifdef PRODUCT_TARGETS
- @$(BUILDSYSTEM)/install_targets \
- --preserve-source-dir=$(if $(FLAVOUR),two,one) \
- --destination=$(PRODUCTS_DEST_DIR) \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) \
- $^
-endif
-
-#
-# NOTE:
-# We use CWD=$(CURDIR) as a directory for collect .$(HARDWARE).rootfs.* files, also
-# to allow parallel installation the 'install_pkgs' script install packages from
-# $(TARGET_BUILD_DIR)/$(PKG_GROUP) directory. In other words if ROOTFS_TARGETS equal to
-#
-# ROOTFS_TARGETS = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).txz
-#
-# then 'install_pkgs' going to $(TARGET_BUILD_DIR)/$(PKG_GROUP) directory and installs
-# the $(pkg_basename).txz package directly from this directory to keep temporary files
-# separately from other HARDWAREs. In this case we need to use CWD environment variable
-# to set the directory where the .$(HARDWARE).rootfs.* files will be collected by
-# 'install_pkgs' script (see the 'install_pkgs' source code).
-#
-# Parallel installation when ROOTFS_TARGETS presents not alone package not tested.
-#
-$(_install_pkgs): $(ROOTFS_TARGETS)
-ifdef ROOTFS_TARGETS
- @echo -e "#######"
- @echo -e "####### Install packages into 'dist/rootfs/$(TOOLCHAIN)/$(HARDWARE)/...' file system..."
- @echo -e "#######"
-ifeq ($(wildcard $(TARGET_BUILD_DIR)/.rootfs),)
- @CWD=$(CURDIR) INSTALL_PACKAGE="$(INSTALL_PACKAGE)" \
- $(BUILDSYSTEM)/install_pkgs --destination=$(ROOTFS_DEST_DIR) \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) \
- $^
-else
- @echo ""
- @for pkg in $(ROOTFS_TARGETS) ; do \
- echo -e "####### ... package `basename $$pkg` is already installed." ; \
- done
- @echo ""
-endif
-endif
-
-
-$(_update_pkgs): $(ROOTFS_UPDATE_TARGETS)
-ifdef ROOTFS_UPDATE_TARGETS
- @echo -e "#######"
- @echo -e "####### Update packages into 'dist/rootfs/$(TOOLCHAIN)/$(HARDWARE)/...' file system..."
- @echo -e "#######"
-ifeq ($(wildcard $(TARGET_BUILD_DIR)/.rootfs),)
- @CWD=$(CURDIR) UPDATE_PACKAGE="$(UPDATE_PACKAGE)" \
- $(BUILDSYSTEM)/update_pkgs --destination=$(ROOTFS_DEST_DIR) \
- --toolchain=$(TOOLCHAIN) \
- --hardware=$(HARDWARE) \
- --flavour=$(FLAVOUR) \
- $^
-else
- @echo ""
- @for pkg in $(ROOTFS_UPDATE_TARGETS) ; do \
- echo -e "####### ... package `basename $$pkg` is already installed." ; \
- done
- @echo ""
-endif
-endif
-
-
-
-
-
-################################################################
-#######
-####### Generic Rules Section:
-#######
-
-# link rule, used to build binaries
-# $(target): $(objs)
-# $(LINK)
-#
-
-LINKER = $(if $(filter .cpp,$(suffix $(SRCS))),$(CXX_LINKER),$(CC_LINKER))
-
-ifeq ($(COMPONENT_IS_3PP),)
-LINKMAP = -Wl,-Map,$@.linkmap
-endif
-
-BASIC_LDOPTS = $(ARCH_FLAGS) $(LDFLAGS) $(LINKMAP)
-BASIC_LDOPTS += -o $@ $(filter %.o,$^)
-
-
-define cmdheader
- @echo -e ""
- @echo -e "======= $(1) ======="
- $(2)
- @echo -e ""
-endef
-
-
-LINK = $(call cmdheader,"Linking $@",$(LINKER) $(BASIC_LDOPTS))
-
-# LINK_C overrides the automatic linker selection provided with LINK
-# and always uses gcc. Useful when building both C and C++ targets
-# in the same component:
-LINK_C = $(call cmdheader,"Linking $@",$(CC) $(BASIC_LDOPTS))
-
-LINK_SO = $(call cmdheader,"Linking $@", $(LINKER) $(BASIC_LDOPTS) -shared)
-
-LINK_A = $(call cmdheader,"Building $@",$(AR) cru $@ $^)
-
-
-#######
-####### Source dependency
-#######
-
-flatfile = $(subst /,_,$(subst ./,,$(1)))
-DEPFILE = $(patsubst %.o,%.d,$(if $(findstring $(TOOLCHAIN),$@),$(TARGET_BUILD_DIR)/$(call flatfile,$(subst $(TARGET_BUILD_DIR)/,,$@)),$(call flatfile,$@)))
-DEPSETUP = -MD -MP -MF $(DEPFILE) -MT $@
-
-####### .cpp -> .o
-%.o: %.cpp
- @echo -e ""
- @echo -e "======= $< -> $@ ======="
- $(quiet)$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $(DEPSETUP) $<
-
-$(TARGET_BUILD_DIR)/%.o: %.cpp
- @echo -e "\n======= $< -> $@ ======="
- @mkdir -p $(dir $@)
- $(quiet)$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $(DEPSETUP) $<
-
-####### .c -> .o
-%.o: %.c
- @echo -e ""
- @echo -e "======= $< -> $@ ======="
- $(quiet)$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $(DEPSETUP) $<
-
-$(TARGET_BUILD_DIR)/%.o: %.c
- @echo -e "======= $< -> $@ ======="
- @mkdir -p $(dir $@)
- $(quiet)$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $(DEPSETUP) $<
-
-#######
-####### Generic Rules Section.
-#######
-################################################################
-
-
-
-#######
-####### NOTE: Include dependencies should be in section where
-####### the symbol __final__ is defined: ifneq ($(__final__),)
-#######
-
-#######
-####### Include dependencies if they exist
-#######
-
--include $(targetflavour)/*.d
-
-# Include HW dependencies
--include $(TARGET_BUILD_DIR)/.requires_depend
-
-#######
-####### Include sources dependency if they exist
-#######
-
--include .src_requires_depend
-
-
-
-################################################################
-#######
-####### HW depended macro for create PKG requires:
-#######
- BUILD_PKG_REQUIRES = $(BUILDSYSTEM)/build_pkg_requires --toolchain=$(TOOLCHAIN) --hardware=$(HARDWARE) --flavour=$(FLAVOUR) $(REQUIRES)
-BUILD_ALL_PKG_REQUIRES = $(BUILDSYSTEM)/build_pkg_requires --toolchain=$(TOOLCHAIN) --hardware=$(HARDWARE) --flavour=$(FLAVOUR) --pkg-type=all $(REQUIRES)
-BUILD_BIN_PKG_REQUIRES = $(BUILDSYSTEM)/build_pkg_requires --toolchain=$(TOOLCHAIN) --hardware=$(HARDWARE) --flavour=$(FLAVOUR) --pkg-type=bin $(REQUIRES)
-BUILD_DEV_PKG_REQUIRES = $(BUILDSYSTEM)/build_pkg_requires --toolchain=$(TOOLCHAIN) --hardware=$(HARDWARE) --flavour=$(FLAVOUR) --pkg-type=dev $(REQUIRES)
-#######
-####### HW depended macro for create PKG requires.
-#######
-################################################################
-
-
-endif
-#
-# end of ifeq ($(__final__),)
-#
-################################################################
-
-
-
-
-# HW depended targets:
-.PHONY: .target*
-
-.PHONY: .toolchain
-
-.PHONY: $(_tree)
-.PHONY: .requires_makefile
-
-.PHONY: .tree_all .tree_clean .tree_dist_clean .tree_rootfs_clean
-.PHONY: all _install clean dist_clean rootfs_clean
-.PHONY: local_all local_clean local_dist_clean local_rootfs_clean
-.PHONY: .local_clean .local_dist_clean .local_rootfs_clean
-
-.PHONY: .install $(_install_scripts) $(_install_builds) $(_install_bins) $(_install_products)
-.PHONY: $(_install_pkgs) $(_update_pkgs)
-
-# HW independed targets:
-.PHONY: help
-.PHONY: .setup
-.PHONY: .sources .build_system
-.PHONY: global_clean downloads_clean
-.PHONY: .global_clean .downloads_clean
-
-.SUFFIXES:
-
-
-
-CORE_MK = 1
-endif
Index: build-system-1.10.x/tree-bs.mk
===================================================================
--- build-system-1.10.x/tree-bs.mk (revision 57)
+++ build-system-1.10.x/tree-bs.mk (nonexistent)
@@ -1,9 +0,0 @@
-
-# Generic rule used for build-system directories
-
-all $(TREEDIRS):
-
-$(TREEDIRS):
- @$(MAKE) FLAVOUR= -C $(TOP_BUILD_DIR_ABS)/$@ $(TREE_RULE)
-
-.PHONY: all $(TREEDIRS)
Index: build-system-1.10.x/build_requires_tree
===================================================================
--- build-system-1.10.x/build_requires_tree (revision 57)
+++ build-system-1.10.x/build_requires_tree (nonexistent)
@@ -1,1105 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-
-use Time::localtime;
-
-use _kxLab;
-
-#
-# Generate .$(HARDWARE).{json,html} file for current directory
-#
-# usage:
-# $0 topdir toolchain hardware
-#
-# where:
-# 'topdir' - is a absolute path to the top directory of checked out branch
-# 'pkgarch' - is a ARCHITECTURE name
-# 'toolchain' - is a TOOLCHAIN name
-# 'hardware' - is a HARDWARE variant
-#
-
-# global variables
-my ($build_system);
-my ($topdir, $pkgarch, $toolchain, $hardware, $flavour);
-my ($target_build_dir, $requires_file);
-my ($html_tree_file, $js_tree_file, $js_min_tree_file, $js_pkgs_file, $js_min_pkgs_file);
-my ($system_version, $distro_name, $distro_version, $url);
-my $tarball_suffix = "txz";
-
-my %sub_trees;
-my %tree;
-
-
-sub usage
-{
- print <<EOF;
-
-Usage: $0 topdir toolchain hardware
-Where:
- topdir - is a absolute path to the top of checked out branch;
- pkgarch - is a ARCHITECTURE name;
- toolchain - is a TOOLCHAIN name;
- hardware - is a HARDWARE variant.
-
-EOF
- exit;
-}
-
-#
-# Getting information from build-system/constants.mk
-#
-sub system_version
-{
- my $build_system = shift;
- my $version;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^SYSTEM_VERSION(.+= +)(.+)/ )
- {
- $version = $2;
- }
- }
- close( FILE );
-
- return $version;
-}
-
-sub distro_name
-{
- my $build_system = shift;
- my $name;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub distro_version
-{
- my $build_system = shift;
- my $name;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_VERSION(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub bug_url
-{
- my $build_system = shift;
- my $url;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^BUG_URL(.+= +)(.+)/ )
- {
- $url = $2;
- }
- }
- close( FILE );
-
- return $url;
-}
-
-#
-# value_from_makefile( $makefile, $variable_name, $stop_line ):
-# ------------------------------------------------------------
-# This function returns the value of variable defined in the
-# Makefile on global level before od REQUIRES declaration.
-#
-# The optional $stop_line argument presents the start of the
-# line which terminates the analized part of Makefile.
-#
-sub value_from_makefile
-{
- my $makefile = shift;
- my $vname = shift;
- my $stop_line = shift;
- my $value = "";
-
- if( !defined $stop_line || $stop_line eq '' )
- {
- $stop_line = "__END_OF_REQUIRES__";
- }
- else
- {
- $stop_line = "^" . $stop_line;
- }
-
- my $cdir = dirname( $makefile );
-
- my $shell_output = <<`SHELL`;
-cd $cdir
-head -n `cat Makefile | grep -n "$stop_line" | cut -f 1 -d ':'` Makefile | \
- make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f - -p __build_requires__ 2>/dev/null | grep "$vname"
-exit 0
-SHELL
-
- if( $shell_output =~ m/^$vname(.+= +)(.+)/gm )
- {
- $value = $2;
- }
-
- return $value;
-}
-
-#
-# Getting information from Makefile
-#
-sub pkg_rootfs_target
-{
- my $makefile = shift;
- my $install = "";
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^ROOTFS_TARGETS(.+= +)(.+)/ )
- {
- if( $2 ne "" ) { $install = "install"; }
- }
- elsif( /^ROOTFS_UPDATE_TARGETS(.+= +)(.+)/ )
- {
- if( $2 ne "" ) { $install = "update"; }
- }
- }
- close( FILE );
-
- if( $install eq "" ) { $install = "no"; }
-# else { $install = "yes"; }
-
- return $install;
-}
-
-sub pkg_group
-{
- my $makefile = shift;
- my $group;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^PKG_GROUP(.+= +)(.+)/ )
- {
- $group = $2;
- }
- }
- close( FILE );
-
- return $group;
-}
-
-sub pkg_name
-{
- my $makefile = shift;
- my $name = "";
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub pkg_version
-{
- my $makefile = shift;
- my $version;
-
- my $stop_line;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^([A-Z_0-9]*_PKG_VERSION)(.+= +)(.+)/ )
- {
- $stop_line = $1;
- $version = $3;
- }
- }
- close( FILE );
-
- # check if version is present as a reference to some variable:
- if( $version =~ m/^\$\((.+)\)/ )
- {
- my $vname = $1;
-
- # get value of referenced variable
- $version = value_from_makefile( $makefile, $vname, $stop_line );
- }
-
- return $version;
-}
-
-sub pkg_license
-{
- my $makefile = shift;
- my $license;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_LICENSE(.+= +)(.+)/ )
- {
- $license = $2;
- }
- }
- close( FILE );
-
- return $license;
-}
-
-sub pkg_short_description
-{
- my $makefile = shift;
- my $description;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_SHORT_DESCRIPTION(.+= +)(.+)/ )
- {
- $description = $2;
- }
- }
- close( FILE );
-
- #
- # In Makefiles we have to mask characters '\', '&', '*', '(', ')' inside
- # the new value in the assignment operator with backslash. So, for axample,
- # the value "name & \ * ( ) end" we have to assign as follow
- #
- # ..._SHORT_DESCRIPTION = name \& \\ \* \( \) end
- #
- # Here we have to remove backslashes and fill escaped symbols as is:
- #
- $description =~ s/\\(.?)/$1/g;
-
- return $description;
-}
-
-#
-# Getting information from tarball/{.PKGINFO | .DESCRIPTION}
-#
-sub get_pkg_info
-{
- my $infofile = shift;
- my $data_field = shift;
- my $data = "";
-
- open( FILE, "< $infofile" );
-
- while( <FILE> )
- {
- if( /^$data_field=(.+)/ )
- {
- $data = $1;
- }
- }
- close( FILE );
-
- return $data;
-}
-
-sub get_pkg_description
-{
- my $descfile = shift;
- my $data = "";
- my @fields;
-
- open( FILE, "< $descfile" );
-
- # Read the first line only
- @fields = split( ':', <FILE> );
- $data = $fields[1];
- $data =~ s/^\s+|\s+$//;
- $data =~ s/\"/\'/g;
- chomp $data;
-
- close( FILE );
-
- return $data;
-}
-
-
-sub get_treedirs
-{
- my @list;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /^TREEDIRS(.+= +)(.+)/ )
- {
- @list = split( ' ', $2 );
- }
- }
-
- return @list;
-}
-
-sub get_ntreedirs
-{
- my @list;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /^TREEDIRS(.+= +)(.+)/ )
- {
- @list = split( ' ', $2 );
- }
- }
-
- return $#list;
-}
-
-sub get_root
-{
- my $root;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /^# ROOT(=)(.+)/ )
- {
- $root = $2;
- }
- }
-
- return $root;
-}
-
-sub get_deps
-{
- my %deps;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /(.+)(: +)(.+)/ )
- {
- $deps{$1} = $3;
- }
- }
- return %deps;
-}
-
-my $root_node = 1;
-
-#
-# PACKAGE HASH:
-# ============
-#
-# name => $(PKG_NAME) from Makefile
-# version => $(PKG_VERSION) from Makefile
-# group => $(PKG_GROUP) from Makefile {app,base,dev,libs,net,...}
-#
-# arch => $pkgarch from comandline args
-# hardware => $hardware from comandline args
-# flavour => $flavour from comandline args for ROOT pkg, from REQUIRES for dependencies
-# tarball => "$name-$version-$arch-$distro_name-$distro_version.$tarball_suffix"
-#
-# distro_name => $(DISTRO_NAME) from build-system/constants.mk
-# distro_version => $(DISTRO_VERSION) from build-system/constants.mk
-# url => $(BUG_URL) from build-system/constants.mk
-# license => from Makefile
-# short_description => from Makefile
-# description => first line from .DESCRIPTION
-# uncompressed_size => from .PKGINFO
-# total_files => from .PKGINFO
-#
-# dir => path to Makefile from .$(HW)_requires
-# children =>
-#
-sub fill_package_info
-{
- my $base_dir = shift;
- my $makefile = shift;
- my $flavour = shift;
- my ( $product_path, $tarball_file );
- my %pkg = ();
-
- $pkg{'dir'} = $base_dir;
- $pkg{'install'} = pkg_rootfs_target( $makefile );
-
- $pkg{'name'} = pkg_name( $makefile );
- if( $pkg{'name'} eq "" )
- {
- # There is no package for this Makefile
- $pkg{'name'} = $pkg{'dir'};
- return %pkg;
- }
-
- $pkg{'version'} = pkg_version( $makefile );
- $pkg{'arch'} = $pkgarch;
- $pkg{'hardware'} = $hardware;
- $pkg{'flavour'} = $flavour;
- $pkg{'group'} = pkg_group( $makefile );
- $pkg{'distro_name'} = $distro_name;
- $pkg{'distro_version'} = $distro_version;
- $pkg{'url'} = $url;
- $pkg{'license'} = pkg_license( $makefile );
- $pkg{'short_description'} = pkg_short_description( $makefile );
-
- $pkg{'tarball'} = $pkg{'name'} . "-" .
- $pkg{'version'} . "-" .
- $pkg{'arch'} . "-" .
- $distro_name . "-" .
- $distro_version . "." .
- $tarball_suffix;
-
- $pkg{'description'} = $pkg{'name'} . " " . $pkg{'version'} . " (" . $pkg{'short_description'} . ")";
- $pkg{'uncompressed_size'} = '';
- $pkg{'total_files'} = '';
-
- $product_path = $topdir . "/dist/products/" . $toolchain . "/" . $hardware;
- if( $flavour eq "" )
- {
- $tarball_file = $product_path . "/" . $pkg{'group'} . "/" . $pkg{'tarball'};
- }
- else
- {
- $tarball_file = $product_path . "/" . $pkg{'group'} . "/" . $pkg{'flavour'} . "/" . $pkg{'tarball'};
- }
-
- if( -e $tarball_file )
- {
- my $cleanup = 1;
- my $fname = "$target_build_dir/.$hardware.pkginfo.XXXXXXXX";
- my $tempname;
-
- (undef, $tempname) = File::Temp::tempfile( $fname, OPEN => 0, UNLINK => $cleanup );
-
- _kxLab::system( "xzcat $tarball_file | tar -xvf - \".PKGINFO\" -O 1> $tempname 2> /dev/null" );
-
- $pkg{'uncompressed_size'} = get_pkg_info( $tempname, "uncompressed_size" );
- $pkg{'total_files'} = get_pkg_info( $tempname, "total_files" );
-
- unlink $tempname;
- }
-
- return %pkg;
-}
-
-
-sub print_package_head
-{
- my ( $level, $pkg ) = @_;
- my $indent = "";
-
- $level *= 2;
- while( $level )
- {
- $indent .= " ";
- $level--;
- }
- print JS_TREE_FILE $indent . "{\n";
-
- if( $pkg->{'name'} eq $pkg->{'dir'} )
- {
- if( $root_node == 1 )
- {
- print JS_TREE_FILE $indent . " \"distro\": ["
- . " \"" . $distro_name . "\","
- . " \"" . $distro_version . "\","
- . " \"" . $url . "\""
- . " ],\n";
- }
- print JS_TREE_FILE $indent . " \"name\": \"" . $pkg->{'name'} . "\"";
- }
- else
- {
- if( $root_node == 1 )
- {
- print JS_TREE_FILE $indent . " \"distro\": ["
- . " \"" . $distro_name . "\","
- . " \"" . $distro_version . "\","
- . " \"" . $url . "\""
- . " ],\n";
- }
- if( !defined $pkg->{'group'} || $pkg->{'group'} eq "" )
- {
- print JS_TREE_FILE $indent . " \"name\": \""
- . $pkg->{'name'} . "-"
- . $pkg->{'version'} . "\"";
- }
- else
- {
- print JS_TREE_FILE $indent . " \"name\": \""
- . $pkg->{'group'} . ":"
- . $pkg->{'name'} . "-"
- . $pkg->{'version'} . "\"";
- }
- }
-}
-
-sub print_package_start_children
-{
- my $level = shift;
- my $indent = "";
-
- $level *= 2;
- while( $level )
- {
- $indent .= " ";
- $level--;
- }
- print JS_TREE_FILE $indent . " \"children\": [\n";
-}
-
-sub print_package_finish_children
-{
- my $level = shift;
- my $indent = "";
-
- $level *= 2;
- while( $level ) { $indent .= " "; $level--; }
- print JS_TREE_FILE $indent . " ]\n";
-}
-
-sub print_package_tail
-{
- my $level = shift;
- my $indent = "";
-
- $level *= 2;
- while( $level ) { $indent .= " "; $level--; }
- print JS_TREE_FILE $indent . "}";
-}
-
-sub print_comma
-{
- my $comma = shift;
-
- if( $comma > 0 ) { print JS_TREE_FILE ",\n"; }
- else { print JS_TREE_FILE "\n"; }
-}
-
-
-#
-# Parse the command line options
-#
-
-# Get the rest arguments of the command line
-$topdir = shift;
-$pkgarch = shift;
-$toolchain = shift;
-$hardware = shift;
-$flavour = shift;
-
-my $makefile = "Makefile";
-
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-if( ! defined $pkgarch or $pkgarch eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" ) { $flavour = ""; }
-
-_kxLab::error( "$0: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "$0: Makefile missing: $makefile" ) if ( ! -f $makefile );
-
-$build_system = $topdir . "/build-system";
-
-$system_version = system_version( $build_system );
-$distro_name = distro_name( $build_system );
-$distro_version = distro_version( $build_system );
-$url = bug_url( $build_system );
-
-
-if( $flavour eq "" )
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-$requires_file = $target_build_dir . "/.requires";
-
-if( $flavour eq "" )
-{
- $html_tree_file = $target_build_dir . "/" . $hardware . ".tree.html";
- $js_tree_file = $target_build_dir . "/" . $hardware . ".tree.json";
- $js_pkgs_file = $target_build_dir . "/" . $hardware . ".pkgs.json";
-}
-else
-{
- $html_tree_file = $target_build_dir . "/" . $hardware . "-" . $flavour . ".tree.html";
- $js_tree_file = $target_build_dir . "/" . $hardware . "-" . $flavour . ".tree.json";
- $js_pkgs_file = $target_build_dir . "/" . $hardware . "-" . $flavour . ".pkgs.json";
-}
-
-my $jsmin = $ENV{JSMIN};
-if( $jsmin ne "" )
-{
- $js_min_tree_file = $js_tree_file;
- $js_min_tree_file =~ s/\.json$/\.min\.json/;
-
- $js_min_pkgs_file = $js_pkgs_file;
- $js_min_pkgs_file =~ s/\.json$/\.min\.json/;
-}
-
-# open the intput file
-open(REQUIRES_FILE, "< $requires_file") or
- _kxLab::error( "$0: Could not open $requires_file file: $!" );
-# open the output files
-open(JS_TREE_FILE, "> $js_tree_file") or
- _kxLab::error( "$0: Could not open $js_tree_file file: $!" );
-open(JS_PKGS_FILE, "> $js_pkgs_file") or
- _kxLab::error( "$0: Could not open $js_pkgs_file file: $!" );
-
-
-my $depth = 2;
-my $level = 0;
-my $root = get_root();
-my @treedirs = get_treedirs();
-my %deps = get_deps();
-
-sub print_tree
-{
- my ($level, $last, $pkg) = @_;
-
- if( $depth < $level ) { $depth = $level; }
-
- print_package_head( $level, \%{$pkg} );
- $root_node = 0;
-
- if( $pkg->{'children'} )
- {
- print_comma( 1 );
- print_package_start_children( $level );
-
- my @a = @{$pkg->{'children'}};
- my $n = $#a;
-
- foreach my $p ( @{$pkg->{'children'}} )
- {
- print_tree( $level + 1, $n--, \%{$p} );
- }
-
- print_package_finish_children( $level );
- }
- else
- {
- print_comma( 0 );
- }
- print_package_tail( $level );
- print_comma( $last );
-}
-
-
-#
-# This is the root package
-#
-%tree = fill_package_info( $root, $makefile, $flavour );
-
-
-my %sequence;
-my $order = 0;
-
-#################################################################
-# if( there is any dependencies )
-#
-if( %deps )
-{
- my @dep_keys = keys %deps;
-
- my $count = scalar( keys %deps );
-
- foreach my $dir ( @treedirs )
- {
- if( ! grep { $_ eq $dir } @dep_keys )
- {
- my $key = $dir;
- $sequence{$key} = ++$order;
- @treedirs = grep { $_ ne $key } @treedirs;
-
- # Split dir^flavour:
- my ($d, $f);
- $d = `echo $dir | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
- if( $dir =~ m/\^/ )
- {
- $f = `echo $dir | cut -f 2 -d '^'`;
- $f =~ s/^\s+|\s+$//;
- }
- else
- {
- $f = "";
- }
-
- # Insert into sub_trees:
- my %pkg = fill_package_info( $d, $topdir . "/" . $d . "/Makefile", $f );
- $sub_trees{$dir} = \%pkg;
-
- delete $deps{$dir};
- }
- }
-
-
- for( my $i = 0; $i < $count; ++$i )
- {
- my @installed = keys %sequence;
-
- foreach my $key (sort keys %deps)
- {
- my $ok = 1;
- my @dirs = split( ' ', $deps{$key} );
-
- if( $key ne "all" )
- {
- foreach my $dir ( @dirs )
- {
- if( ! grep { $_ eq $dir } @installed )
- {
- $ok = 0;
- }
- }
-
- if( $ok == 1 )
- {
- $sequence{$key} = ++$order;
-
- # Split dir^flavour:
- my ($d, $f);
- $d = `echo $key | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
- if( $key =~ m/\^/ )
- {
- $f = `echo $key | cut -f 2 -d '^'`;
- $f =~ s/^\s+|\s+$//;
- }
- else
- {
- $f = "";
- }
-
- # create package node:
- my %pkg = fill_package_info( $d, $topdir . "/" . $d . "/Makefile", $f );
- # add children:
- foreach my $dir ( @dirs )
- {
- my $child = $sub_trees{$dir};
- push( @{$pkg{'children'}}, $child );
- }
-
- # insert new sub tree into $sub_tree:
- $sub_trees{$key} = \%pkg;
-
- delete $deps{$key};
- }
- }
- }
- }
-
- #
- # The root node children
- #
- my @dirs = split( ' ', $deps{'all'} );
- foreach my $dir ( @dirs )
- {
- my $child = $sub_trees{$dir};
- push( @{$tree{'children'}}, $child );
- }
-
-}
-else
-{
- my %pkg;
-
- $pkg{'dir'} = "void";
- $pkg{'name'} = "void";
-
- push( @{$tree{'children'}}, \%pkg );
-}
-#
-# End if( there is any dependencies )
-#################################################################
-
-
-print_tree( $level, 0, \%tree );
-
-# close tree JSON file:
-close JS_TREE_FILE;
-
-
-#################################################################
-# Calculate SVG size and make HTML from template:
-#
-my $copyright_url = $url;
-my $html_template = $build_system . "/html/requires_tree_html.template";
-my $w = $depth;
-my $h = get_ntreedirs();
-my ($width, $height);
-
-$h = $h * 4 / 5;
-
-$width = ($w + 4) * 160;
-$height = ($h + 4) * 24;
-
-$root =~ s/\//\\\//g;
-$root =~ s/\-/\\\-/g;
-$root =~ s/\+/\\\+/g;
-$root =~ s/\./\\\./g;
-
-$copyright_url =~ s/\//\\\//g;
-$copyright_url =~ s/\-/\\\-/g;
-$copyright_url =~ s/\+/\\\+/g;
-$copyright_url =~ s/\./\\\./g;
-
-
-
-my $js_tree_file_name = basename( $js_tree_file );
-my $js_pkgs_file_name = basename( $js_pkgs_file );
-
-if( $jsmin ne "" )
-{
- # minimize JSON tree file:
- _kxLab::system( "$jsmin -o $js_min_tree_file $js_tree_file" );
- $js_tree_file_name = basename( $js_min_tree_file );
- $js_pkgs_file_name = basename( $js_min_pkgs_file );
- # minimize JSON pkgs file later.
-}
-
-my $copyright = "Radix cross Linux";
-
-my ( $second, $minute, $hour, $day, $month, $year );
-
-#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
-
-$second = localtime->sec();
-$minute = localtime->min();
-$hour = localtime->hour();
-$day = localtime->mday();
-$month = localtime->mon() + 1;
-$year = localtime->year() + 1900;
-
-my $call_string = sprintf( "cat %s | " .
- "sed 's/\@HARDWARE\@/%s/g' | " .
- "sed 's/\@ROOT\@/%s/g' | " .
- "sed 's/\@TARBALL_SUFFIX\@/%s/g' | " .
- "sed 's/\@BUG_URL\@/%s/g' | " .
- "sed 's/\@COPYING\@/%s/g' | " .
- "sed 's/\@YEAR\@/%.4d/g' | " .
- "sed 's/\@MONTH\@/%.2d/g' | " .
- "sed 's/\@DAY\@/%.2d/g' | " .
- "sed 's/\@HOUR\@/%.2d/g' | " .
- "sed 's/\@MINUTE\@/%.2d/g' | " .
- "sed 's/\@SECOND\@/%.2d/g' | " .
- "sed 's/\@SVG_WIDTH\@/%d/g' | " .
- "sed 's/\@SVG_HEIGHT\@/%d/g' | " .
- "sed 's/\@JSON_PKGS_FILE\@/%s/g' | " .
- "sed 's/\@JSON_TREE_FILE\@/%s/g' > " . $html_tree_file,
- $html_template,
- $hardware,
- $root,
- $tarball_suffix,
- $copyright_url,
- $copyright,
- $year, $month, $day,
- $hour, $minute, $second,
- $width, $height,
- $js_pkgs_file_name,
- $js_tree_file_name );
-_kxLab::system( $call_string );
-
-#
-# End of creating HTML file
-#################################################################
-
-
-# close input file:
-close REQUIRES_FILE;
-
-
-#################################################################
-# Write packages JSON file and count the number of packages:
-#
-sub compare_order
-{
- $sequence{$a} <=> $sequence{$b};
-}
-
-print JS_PKGS_FILE "[";
-
-my $packages_done = 0;
-
-sub print_result
-{
- my $out_string = sprintf( "####### Required Packages Tree (done: %4d packages)\n", $packages_done );
-
- print $out_string;
-}
-
-print "#######\n";
-
-foreach my $dir (sort compare_order( (keys %sequence) ))
-{
- my $package;
-
- if( $dir ne "all" )
- {
- $package = $sub_trees{$dir};
-
- if( $package->{'install'} ne "no" )
- {
-
- if( $packages_done == 0 )
- {
- print JS_PKGS_FILE "{\n";
- }
- else
- {
- print JS_PKGS_FILE ",\n";
- print JS_PKGS_FILE " {\n";
- }
-
- if( !defined $package->{'group'} || $package->{'group'} eq "" )
- {
- print JS_PKGS_FILE " \"id\": \""
- . $package->{'name'} . "-"
- . $package->{'version'} . "\",\n";
- }
- else
- {
- print JS_PKGS_FILE " \"id\": \""
- . $package->{'group'} . ":"
- . $package->{'name'} . "-"
- . $package->{'version'} . "\",\n";
- }
- print JS_PKGS_FILE " \"name\": \"" . $package->{'name'} . "\",\n";
- print JS_PKGS_FILE " \"version\": \"" . $package->{'version'} . "\",\n";
- print JS_PKGS_FILE " \"group\": \"" . $package->{'group'} . "\",\n";
- print JS_PKGS_FILE " \"arch\": \"" . $package->{'arch'} . "\",\n";
- print JS_PKGS_FILE " \"hardware\": \"" . $package->{'hardware'} . "\",\n";
- if( defined $package->{'flavour'} && $package->{'flavour'} ne "" )
- {
- print JS_PKGS_FILE " \"flavour\": \"" . $package->{'flavour'} . "\",\n";
- }
- print JS_PKGS_FILE " \"license\": \"" . $package->{'license'} . "\",\n";
- print JS_PKGS_FILE " \"description\": \"" . $package->{'description'} . "\",\n";
- print JS_PKGS_FILE " \"uncompressed_size\": \"" . $package->{'uncompressed_size'} . "\",\n";
- print JS_PKGS_FILE " \"total_files\": \"" . $package->{'total_files'} . "\"\n";
- print JS_PKGS_FILE " }";
-
- ++$packages_done;
- }
- }
-}
-
-#
-# Print the root node of tree:
-#
-my $tree = \%tree;
-
-if( $tree->{'install'} ne "no" )
-{
-
- if( $packages_done == 0 )
- {
- print JS_PKGS_FILE "{\n";
- }
- else
- {
- print JS_PKGS_FILE ",\n";
- print JS_PKGS_FILE " {\n";
- }
-
- if( !defined $tree->{'group'} || $tree->{'group'} eq "" )
- {
- print JS_PKGS_FILE " \"id\": \""
- . $tree->{'name'} . "-"
- . $tree->{'version'} . "\",\n";
- }
- else
- {
- print JS_PKGS_FILE " \"id\": \""
- . $tree->{'group'} . ":"
- . $tree->{'name'} . "-"
- . $tree->{'version'} . "\",\n";
- }
- print JS_PKGS_FILE " \"name\": \"" . $tree->{'name'} . "\",\n";
- print JS_PKGS_FILE " \"version\": \"" . $tree->{'version'} . "\",\n";
- print JS_PKGS_FILE " \"group\": \"" . $tree->{'group'} . "\",\n";
- print JS_PKGS_FILE " \"arch\": \"" . $tree->{'arch'} . "\",\n";
- print JS_PKGS_FILE " \"hardware\": \"" . $tree->{'hardware'} . "\",\n";
- if( defined $tree->{'flavour'} && $tree->{'flavour'} ne "" )
- {
- print JS_PKGS_FILE " \"flavour\": \"" . $tree->{'flavour'} . "\",\n";
- }
- print JS_PKGS_FILE " \"license\": \"" . $tree->{'license'} . "\",\n";
- print JS_PKGS_FILE " \"description\": \"" . $tree->{'description'} . "\",\n";
- print JS_PKGS_FILE " \"uncompressed_size\": \"" . $tree->{'uncompressed_size'} . "\",\n";
- print JS_PKGS_FILE " \"total_files\": \"" . $tree->{'total_files'} . "\"\n";
- print JS_PKGS_FILE " }";
-
- ++$packages_done;
-}
-
-print JS_PKGS_FILE "]\n";
-
-print_result();
-print "#######\n";
-#
-# End of packages JSON file write.
-#################################################################
-
-# close pkgs JSON file:
-close JS_PKGS_FILE;
-
-if( $jsmin ne "" )
-{
- # minimize JSON tree file:
- _kxLab::system( "$jsmin -o $js_min_pkgs_file $js_pkgs_file" );
-}
-
Property changes on: build-system-1.10.x/build_requires_tree
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/global_clean
===================================================================
--- build-system-1.10.x/global_clean (revision 57)
+++ build-system-1.10.x/global_clean (nonexistent)
@@ -1,113 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Find;
-use _kxLab;
-
-
-# Global variables
-my $header_printed = 0;
-
-my $top_dir;
-my @targets;
-my $verbose = $ENV{VERBOSE};
-
-my %seen;
-my ( @clean_dirs, @clean_dirs_all );
-my ( $clean_count );
-
-sub do_clean
-{
- unlink "$top_dir/.makefile";
-
- foreach my $d ( @clean_dirs )
- {
- my $printed_d;
-
- $printed_d = $d;
- $printed_d =~ s/^$top_dir\///;
-
- print "\n=======\n" if ( $verbose );
- print "======= Cleaning in $printed_d...\n" if ( $verbose );
- print "=======\n" if ( $verbose );
-
- _kxLab::system( "make -C $d local_clean" );
-
- # remove requires and .makefile:
- unlink "$d/.makefile";
- unlink <$d/.*_requires*>;
- # remove lists of files installed into $top_dir/dist/products and $top_dir/dist/rootfs:
- unlink <$d/.*.rootfs>;
- unlink <$d/.*.dist*>;
- }
-}
-
-
-sub find_directories
-{
- # find all directories which has Makefile and hiden build results
- my $shell_output = <<`SHELL`;
- dirs=`find $top_dir -name ".[a-zA-Z0-9_-+.]*" \\
- ! -path "$top_dir/doc/*" \\
- ! -path "$top_dir/dist/*" \\
- ! -path "$top_dir/sources/*" \\
- ! -path "$top_dir/build-system/3pp/sources/*" \\
- -prune -exec dirname {} \\; | sort -u`
-
- for dir in \$dirs ; do
- if [ -f "\$dir/Makefile" ] ; then
- echo "\$dir"
- fi
- done
-SHELL
-
- @clean_dirs = split /\n/, $shell_output;
- @clean_dirs = grep { $_ ne $top_dir } @clean_dirs;
-}
-
-
-foreach ( @ARGV )
-{
- push @targets, $_;
-}
-$top_dir = pop @targets;
-
-if( ! -d $top_dir )
-{
- die "\nTop: $top_dir: is not a directory\n\n";
-}
-if( ! $top_dir =~ m/^\// )
-{
- die "\nTop: $top_dir: is not absolute path\n\n";
-}
-
-
-find_directories();
-
-
-$clean_count = $#clean_dirs;
-
-if( $clean_count != 0 )
-{
- if( !$header_printed )
- {
- print "\n======= Cleaning build tree =======\n\n" if ( $verbose );
- $header_printed = 1;
- }
-
- do_clean();
-
- # remove DEST_DIR_ABS
- _kxLab::system( "rm -rf $top_dir/dist" );
-
- print "\n";
-}
-else
-{
- print "\nCleaning... (nothing to be done).\n\n";
-}
Property changes on: build-system-1.10.x/global_clean
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/tree.mk
===================================================================
--- build-system-1.10.x/tree.mk (revision 57)
+++ build-system-1.10.x/tree.mk (nonexistent)
@@ -1,11 +0,0 @@
-
-# Generic rule used for directories
-
-all $(TREEDIRS):
-
-get-flavour = $(if $(shell echo $1 | grep "\^"),$(shell echo $1 | cut -f 2 -d '^'),)
-
-$(TREEDIRS):
- @$(MAKE) FLAVOUR=$(call get-flavour,$@) -C $(TOP_BUILD_DIR_ABS)/$(shell echo $@ | cut -f 1 -d '^') $(TREE_RULE)
-
-.PHONY: all $(TREEDIRS)
Index: build-system-1.10.x/target-setup.mk
===================================================================
--- build-system-1.10.x/target-setup.mk (revision 57)
+++ build-system-1.10.x/target-setup.mk (nonexistent)
@@ -1,548 +0,0 @@
-# include once
-ifndef TARGET_SETUP_MK
-
-
-include $(BUILDSYSTEM)/constants.mk
-
-
-
-################################################################
-# Get hw_id & hw_name by HARDWARE functions:
-#
-# hw_id(), hw_name()
-#
-hw_id = $($(strip $(foreach v, $(filter-out HARDWARE_NAMES HARDWARE_ALL,$(filter HARDWARE_%, $(.VARIABLES))), \
- $(if $(filter $1, $($(v))), \
- $(addsuffix _ID_STD,$(subst HARDWARE_,,$(v))), \
- ))))
-
-
-hw_name = $(strip $(foreach v, $(filter-out HARDWARE_NAMES HARDWARE_ALL,$(filter HARDWARE_%, $(.VARIABLES))), \
- $(if $(filter $1, $($(v))),$(subst HARDWARE_,,$(v)),)))
-
-# usage:
-# HW_ID = $(call hw_id,$(HARDWARE))
-#
-# Get hw_id & hw_name by HARDWARE function.
-################################################################
-
-
-HW_DEFS = $(strip \
- $(foreach v, \
- $(filter-out HARDWARE_ALL HARDWARE_NAMES HARDWARE_NOARCH HARDWARE_BUILD, \
- $(filter HARDWARE_%, $(.VARIABLES))), \
- -D$(subst HARDWARE_,,$(v))=$($(strip $(addsuffix _ID_STD,$(subst HARDWARE_,,$(v)))))))
-
-
-################################################################
-# Is the switch --sysroot=$(TARGET_DEST_DIR) should be used.
-#
-sysroot = $($(strip \
- $(foreach v, $(filter TOOLCHAIN_%, \
- $(filter-out TOOLCHAIN_ALL \
- TOOLCHAIN_NAMES \
- TOOLCHAIN_DIR \
- TOOLCHAIN_PATH \
- TOOLCHAIN_VERSION \
- TOOLCHAIN_INCPATH, \
- $(.VARIABLES))), \
- $(if $(filter $1, $($(v))), \
- $(addsuffix _DEST_SYSROOT,$(subst TOOLCHAIN_,,$(v))), \
- ))))
-
-# usage:
-# enable_sysroot = $(call sysroot,$(TOOLCHAIN))
-#
-# Is the switch --sysroot=$(TARGET_DEST_DIR) should be used.
-################################################################
-
-
-################################################################
-# The name of toolchain sysroot directory (default 'sys-root').
-#
-
-# This is a last directory name in the absolute toolchain
-# sysroot path. If this name is 'sys-root' then absolute
-# toolchain system root is placed in
-#
-# $(TOOLCHAIN_PATH)/$(TARGET)/sys-root
-#
-# directory. If this function returns "", then toolchain
-# has been built without '--with-sysroot=DIR' switch.
-
-toolchain-sysroot = $($(strip \
- $(foreach v, $(filter TOOLCHAIN_%, \
- $(filter-out TOOLCHAIN_ALL \
- TOOLCHAIN_NAMES \
- TOOLCHAIN_DIR \
- TOOLCHAIN_PATH \
- TOOLCHAIN_VERSION \
- TOOLCHAIN_INCPATH, \
- $(.VARIABLES))), \
- $(if $(filter $1, $($(v))), \
- $(addsuffix _SYSROOT,$(subst TOOLCHAIN_,,$(v))), \
- ))))
-
-# usage:
-# toolchain_sysroot = $(call toolchain-sysroot,$(TOOLCHAIN))
-#
-# The name of toolchain sysroot directory.
-################################################################
-
-
-################################################################
-# Is there 'patchelf' utility in the toolchain.
-#
-has-patchelf = $($(strip \
- $(foreach v, $(filter TOOLCHAIN_%, \
- $(filter-out TOOLCHAIN_ALL \
- TOOLCHAIN_NAMES \
- TOOLCHAIN_DIR \
- TOOLCHAIN_PATH \
- TOOLCHAIN_VERSION \
- TOOLCHAIN_INCPATH, \
- $(.VARIABLES))), \
- $(if $(filter $1, $($(v))), \
- $(addsuffix _HAS_PATCHELF,$(subst TOOLCHAIN_,,$(v))), \
- ))))
-
-# usage:
-# enable_patchelf = $(call has-patchelf,$(TOOLCHAIN))
-#
-# Is there 'patchelf' utility in the toolchain.
-################################################################
-
-
-#######
-####### Setup ccache:
-#######
-
-ifeq ($(NO_CCACHE),)
-CCACHE = /usr/bin/ccache$(space)
-
-ifeq ($(wildcard $(CCACHE)),)
-$(info )
-$(info #######)
-$(info ####### Please install 'ccache' package)
-$(info ####### or disable ccache with "NO_CCACHE=1 make ...")
-$(info #######)
-$(info )
-$(error Error: ccache not found)
-endif
-
-ifeq ($(wildcard $(CACHED_CC_OUTPUT)),)
-$(info )
-$(info #######)
-$(info ####### Please create directory $(CACHED_CC_OUTPUT) for cached compiler output)
-$(info ####### or disable ccache with "NO_CCACHE=1 make ...")
-$(info #######)
-$(info )
-$(error Error: cached compiler output directory doesn't exist)
-endif
-
-export CCACHE_BASEDIR = $(TOP_BUILD_DIR_ABS)
-export CCACHE_DIR = $(CACHED_CC_OUTPUT)
-export CCACHE_UMASK = 000
-
-unexport CCACHE_PREFIX
-else
-CCACHE =
-endif
-
-
-#######
-####### Setup current toolchain variables:
-#######
-
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_BUILD_MACHINE))
-TOOLCHAIN_PATH = $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_PATH)
-else
-TOOLCHAIN_PATH = $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_PATH)/$(TOOLCHAIN_VERSION)
-endif
-
-TOOLCHAIN_TARBALL = $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_TARBALL)
-TOOLCHAIN_VERSION = $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_VERSION)
-TOOLCHAIN_DIR = $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_DIR)
-TARGET = $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_ARCH)
-
-ARCH_DEFS ?= $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_ARCH_DEFS)
-ARCH_FLAGS ?= $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_ARCH_FLAGS)
-ARCH_OPTIMIZATION ?= $($(shell echo $(TOOLCHAIN) | tr '[a-z-]' '[A-Z_]')_OPTIMIZATION)
-
-ifeq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_NOARCH) $(TOOLCHAIN_BUILD_MACHINE)),)
-HW_FLAGS = -D__HARDWARE__=$(call hw_id,$(HARDWARE)) $(HW_DEFS)
-endif
-
-
-ifeq ($(filter $(TOOLCHAIN), $(TOOLCHAIN_NOARCH) $(TOOLCHAIN_BUILD_MACHINE)),)
-CC = $(CCACHE)$(TOOLCHAIN_PATH)/bin/$(TARGET)-gcc
-CXX = $(CCACHE)$(TOOLCHAIN_PATH)/bin/$(TARGET)-g++
-ADDR2LINE = $(TOOLCHAIN_PATH)/bin/$(TARGET)-addr2line
-AS = $(TOOLCHAIN_PATH)/bin/$(TARGET)-as
-AR = $(TOOLCHAIN_PATH)/bin/$(TARGET)-ar
-LD = $(TOOLCHAIN_PATH)/bin/$(TARGET)-ld
-RANLIB = $(TOOLCHAIN_PATH)/bin/$(TARGET)-ranlib
-SIZE = $(TOOLCHAIN_PATH)/bin/$(TARGET)-size
-STRIP = $(TOOLCHAIN_PATH)/bin/$(TARGET)-strip
-OBJCOPY = $(TOOLCHAIN_PATH)/bin/$(TARGET)-objcopy
-OBJDUMP = $(TOOLCHAIN_PATH)/bin/$(TARGET)-objdump
-READELF = $(TOOLCHAIN_PATH)/bin/$(TARGET)-readelf
-NM = $(TOOLCHAIN_PATH)/bin/$(TARGET)-nm
-CROSS_PREFIX = $(TOOLCHAIN_PATH)/bin/$(TARGET)-
-PATCHELF = $(strip \
- $(if $(filter yes,$(call has-patchelf,$(TOOLCHAIN))), \
- $(TOOLCHAIN_PATH)/bin/$(TARGET)-patchelf, \
- ))
-else
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_BUILD_MACHINE))
-CC = $(TOOLCHAIN_PATH)/bin/gcc
-CXX = $(TOOLCHAIN_PATH)/bin/g++
-ADDR2LINE = $(TOOLCHAIN_PATH)/bin/addr2line
-AS = $(TOOLCHAIN_PATH)/bin/as
-AR = $(TOOLCHAIN_PATH)/bin/ar
-LD = $(TOOLCHAIN_PATH)/bin/ld
-RANLIB = $(TOOLCHAIN_PATH)/bin/ranlib
-SIZE = $(TOOLCHAIN_PATH)/bin/size
-STRIP = $(TOOLCHAIN_PATH)/bin/strip
-OBJCOPY = $(TOOLCHAIN_PATH)/bin/objcopy
-OBJDUMP = $(TOOLCHAIN_PATH)/bin/objdump
-READELF = $(TOOLCHAIN_PATH)/bin/readelf
-NM = $(TOOLCHAIN_PATH)/bin/nm
-PATCHELF = $(strip \
- $(if $(filter yes,$(call has-patchelf,$(TOOLCHAIN))), \
- $(TOOLCHAIN_PATH)/bin/patchelf, \
- ))
-else
-# TOOLCHAIN_NOARCH doesn't need these variables but:
-CC = gcc
-CXX = g++
-ADDR2LINE = addr2line
-AS = as
-AR = ar
-LD = ld
-RANLIB = ranlib
-SIZE = size
-STRIP = strip
-OBJCOPY = objcopy
-OBJDUMP = objdump
-READELF = readelf
-NM = nm
-endif
-endif
-
-#######
-####### Packages ARCH:
-#######
-
-PKGARCH = $(word 1,$(subst -, ,$(TARGET)))
-
-
-#
-# The user may reject the sysroot usage. For this the user have to declare
-# the USE_TARGET_DEST_DIR_SYSROOT variable with value 'no':
-#
-# USE_TARGET_DEST_DIR_SYSROOT = no
-#
-ifneq ($(USE_TARGET_DEST_DIR_SYSROOT),no)
-USE_TARGET_DEST_DIR_SYSROOT := yes
-endif
-
-
-#######
-####### Build machine triplet:
-#######
-
-ifeq ($(shell echo $(shell ${BUILDSYSTEM}/canonical-build 2> /dev/null)),)
-BUILD = unknown-unknown-unknown-unknown
-$(error Errorr: Unknown BUILD System '${BUILD}')
-else
-BUILD = $(shell echo $(shell ${BUILDSYSTEM}/canonical-build 2> /dev/null))
-endif
-
-
-################################################################
-#######
-####### Include Directories setup Section:
-#######
-
-INCPATH += -I.
-
-TARGET_INCPATH += -I$(TARGET_DEST_DIR)/usr/include
-
-ROOTFS_INCPATH += -I$(ROOTFS_DEST_DIR)/usr/include
-
-#
-# Toolchain include path:
-#
-ifneq ($(call toolchain-sysroot,$(TOOLCHAIN)),)
-TOOLCHAIN_INCPATH += -I$(TOOLCHAIN_PATH)/$(TARGET)/$(call toolchain-sysroot,$(TOOLCHAIN))/usr/include
-endif
-
-#######
-####### End of Include Directories setup Section.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Library directory suffixes for BUILD MACHINE.
-#######
-
-#
-# NOTE: LIBSUFFIX=64 is valid for Slackware64 distro where native libraries are placed in /usr/lib64 directory
-# for example ubuntu has /usr/lib for x86_64 libraries and /usr/lib32 for x86_32 libraries as well as
-# our X86_64-glibc toolchain.
-# TODO: Create the canonical-distro script such as $(BULDSYSTEM)/canonical-build we have.
-#
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_BUILD_MACHINE))
-LIBSUFFIX ?= 64
-endif
-
-#
-# BUILD_CC lib SUFFIX
-#
-BUILD_MULTILIB_X86_32_SUFFIX = $(shell echo $(shell gcc -m32 -print-multi-os-directory) | sed -e 's/\(^.*lib\)\([0-9]*\)/\2/')
-BUILD_MULTILIB_SUFFIX = $(shell echo $(shell gcc -print-multi-os-directory) | sed -e 's/\(^.*lib\)\([0-9]*\)/\2/')
-
-#######
-####### End of Library directory suffixes for BUILD MACHINE.
-#######
-################################################################
-
-
-# NOTE:
-# ====
-#
-# Default optimization is -O3 and defined by 'OPTIMIZATION_FLAGS' variable
-# in the target-setup.mk. The 'OPTIMIZATION_FLAGS' variable can be overriden
-# in user Makefile by following definition.
-#
-# OPTIMIZATION_FLAGS = -O2
-#
-# However some HW requires specific optimization which should't be overriden
-# by user. In this case we define toolchain depended variable *_OPTIMIZATION
-# within constants.mk file. This variable is used to assign a value to the
-# ARCH_OPTIMIZATION variable, which, in turn, sets the actual (depending on
-# the current HW) optimization.
-#
-# This way allow us prioritize the HW specific optimisation. If user
-# want to override HW specific optimization then hi can override the
-# ARCH_OPTIMISATION variable. In this case user have to be sure that
-# this redefinition doesn't affect other HW:
-#
-# ifeq ($(HARDWARE),$(HARDWARE_CI20))
-# ARCH_OPTIMIZATION = -O2
-# endif
-#
-# Resume:
-# ------
-# - OPTIMIZATION_FLAGS can be overriden only if ARCH_OPTIMIZATION is not set.
-# - ARCH_OPTIMIZATION can be overriden always and ARCH_OPTIMIZATION has highest priority.
-# - default optimization is -O3
-# - the condition (OPTIMIZATION_FLAGS == ARCH_OPTIMIZATION) is always true.
-#
-ifneq ($(ARCH_OPTIMIZATION),)
-OPTIMIZATION_FLAGS = $(ARCH_OPTIMIZATION)
-else
-OPTIMIZATION_FLAGS ?= -O3
-ARCH_OPTIMIZATION = $(OPTIMIZATION_FLAGS)
-endif
-
-
-################################################################
-#######
-####### Common Compiler & Linker flags:
-#######
-
-ifeq ($(USE_TARGET_DEST_DIR_SYSROOT),yes)
-LDFLAGS += -L$(TARGET_DEST_DIR)/lib$(LIBSUFFIX) -L$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)
-endif
-
-# Common CPP/C/C++ flags
-COMMON_FLAGS = $(INCPATH)
-ifeq ($(USE_TARGET_DEST_DIR_SYSROOT),yes)
-COMMON_FLAGS += $(TARGET_INCPATH)
-endif
-COMMON_FLAGS += -g $(OPTIMIZATION_FLAGS) $(ARCH_FLAGS) $(ARCH_DEFS) $(HW_FLAGS)
-
-
-CFLAGS += $(COMMON_FLAGS)
-CXXFLAGS += $(COMMON_FLAGS)
-
-#######
-####### End of Common Compiler & Linker flags.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Default Linkers:
-#######
-
-ifeq ($(call sysroot,$(TOOLCHAIN))_$(USE_TARGET_DEST_DIR_SYSROOT),yes_yes)
-CC_LINKER = $(CC) --sysroot=$(TARGET_DEST_DIR)
-CXX_LINKER = $(CXX) --sysroot=$(TARGET_DEST_DIR)
-else
-CC_LINKER = $(CC)
-CXX_LINKER = $(CXX)
-endif
-
-#######
-####### Default Linkers.
-#######
-################################################################
-
-
-################################################################
-#######
-####### Development environment:
-#######
-
-
-BUILD_ENVIRONMENT = PATH=$(PATH):$(TOOLCHAIN_PATH)/bin
-
-ifeq ($(call sysroot,$(TOOLCHAIN))_$(USE_TARGET_DEST_DIR_SYSROOT),yes_yes)
-BUILD_ENVIRONMENT += CC="$(CC) --sysroot=$(TARGET_DEST_DIR)"
-BUILD_ENVIRONMENT += CXX="$(CXX) --sysroot=$(TARGET_DEST_DIR)"
-BUILD_ENVIRONMENT += LD="$(LD) --sysroot=$(TARGET_DEST_DIR)"
-else
-BUILD_ENVIRONMENT += CC="$(CC)" CXX="$(CXX)" LD="$(LD)"
-endif
-
-BUILD_ENVIRONMENT += AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" SIZE="$(SIZE)" STRIP="$(STRIP)" OBJCOPY="$(OBJCOPY)" OBJDUMP="$(OBJDUMP)" NM="$(NM)"
-BUILD_ENVIRONMENT += BUILD_CC="$(BUILD_CC)" BUILD_CXX="$(BUILD_CXX)" BUILD_AS="$(BUILD_AS)" BUILD_AR="$(BUILD_AR)" BUILD_LD="$(BUILD_LD)" BUILD_RANLIB="$(BUILD_RANLIB)" BUILD_SIZE="$(BUILD_SIZE)" BUILD_STRIP="$(BUILD_STRIP)" BUILD_OBJCOPY="$(BUILD_OBJCOPY)" BUILD_OBJDUMP="$(BUILD_OBJDUMP)" BUILD_NM="$(BUILD_NM)"
-BUILD_ENVIRONMENT += CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)"
-BUILD_ENVIRONMENT += LDFLAGS="$(LDFLAGS)"
-
-#
-# PKG_CONFIG_PATH - directories to add to pkg-config's search path
-#
-PKG_CONFIG_PATH = $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig:$(TARGET_DEST_DIR)/usr/share/pkgconfig
-PKG_CONFIG_LIBDIR = $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig:$(TARGET_DEST_DIR)/usr/share/pkgconfig
-
-BUILD_ENVIRONMENT += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"
-BUILD_ENVIRONMENT += PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)"
-
-#######
-####### Development environment.
-#######
-################################################################
-
-
-
-################################################################
-#######
-####### Multilib Support:
-#######
-
-
-#######
-####### x86_32:
-#######
-
-####### Multilib directory suffixes for TARGETs:
-
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC))
-MULTILIB_X86_32_SUFFIX ?= 32
-endif
-
-ifneq ($(filter $(HARDWARE),$(HARDWARE_INTEL_PC64)),)
-ifeq ($(CREATE_X86_32_PACKAGE),true)
-
-CC += -m32
-CXX += -m32
-
-ifeq ($(USE_TARGET_DEST_DIR_SYSROOT),yes)
-LDFLAGS = -L$(TARGET_DEST_DIR)/lib$(MULTILIB_X86_32_SUFFIX)
-LDFLAGS += -L$(TARGET_DEST_DIR)/usr/lib$(MULTILIB_X86_32_SUFFIX)
-endif
-
-PKG_CONFIG_PATH = $(TARGET_DEST_DIR)/usr/lib$(MULTILIB_X86_32_SUFFIX)/pkgconfig:$(TARGET_DEST_DIR)/usr/share/pkgconfig
-PKG_CONFIG_LIBDIR = $(TARGET_DEST_DIR)/usr/lib$(MULTILIB_X86_32_SUFFIX)/pkgconfig:$(TARGET_DEST_DIR)/usr/share/pkgconfig
-
-ARCH_FLAGS = -m32 -march=i686 -mtune=i686
-
-TARGET32 = $(shell echo $(TARGET) | sed 's/x86_64/i686/')
-
-endif
-endif
-
-
-#######
-####### powerpc32:
-#######
-
-####### Multilib directory suffixes for TARGETs:
-
-ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) \
- $(TOOLCHAIN_POWER9_GLIBC)),)
-MULTILIB_PPC32_SUFFIX ?= 32
-endif
-
-ifneq ($(filter $(HARDWARE),$(HARDWARE_S824L) \
- $(HARDWARE_VESNIN) \
- $(HARDWARE_TL2WK2) \
- $(HARDWARE_TL2SV2)),)
-ifeq ($(CREATE_PPC32_PACKAGE),true)
-
-CC += -m32
-CXX += -m32
-
-ifeq ($(USE_TARGET_DEST_DIR_SYSROOT),yes)
-LDFLAGS = -L$(TARGET_DEST_DIR)/lib$(MULTILIB_PPC32_SUFFIX)
-LDFLAGS += -L$(TARGET_DEST_DIR)/usr/lib$(MULTILIB_PPC32_SUFFIX)
-endif
-
-PKG_CONFIG_PATH = $(TARGET_DEST_DIR)/usr/lib$(MULTILIB_PPC32_SUFFIX)/pkgconfig:$(TARGET_DEST_DIR)/usr/share/pkgconfig
-PKG_CONFIG_LIBDIR = $(TARGET_DEST_DIR)/usr/lib$(MULTILIB_PPC32_SUFFIX)/pkgconfig:$(TARGET_DEST_DIR)/usr/share/pkgconfig
-
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC))
-ARCH_FLAGS = -m32 -mcpu=power8 -mlong-double-128
-endif
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_POWER9_GLIBC))
-ARCH_FLAGS = -m32 -mcpu=power9 -mlong-double-128
-endif
-
-TARGET32 = $(shell echo $(TARGET) | sed 's/ppc64/ppc/')
-
-endif
-endif
-
-
-
-
-#######
-####### End of Multilib Support.
-#######
-################################################################
-
-
-#######
-####### Setup actual Distribution info:
-#######
-
-DISTRO_REPOSITORY_URL = $(shell $(BUILDSYSTEM)/build-version --system --repo)
-DISTRO_BUILD_BRANCH = $(shell $(BUILDSYSTEM)/build-version --system --branch)
-DISTRO_BUILD_REVISION = $(shell $(BUILDSYSTEM)/build-version --system)
-DISTRO_FULL_VERSION = $(DISTRO_VERSION).$(DISTRO_BUILD_REVISION)
-
-BUILD_SYSTEM_REPOSITORY_URL = $(shell $(BUILDSYSTEM)/build-version --repo)
-BUILD_SYSTEM_BUILD_BRANCH = $(shell $(BUILDSYSTEM)/build-version --branch)
-BUILD_SYSTEM_BUILD_REVISION = $(shell $(BUILDSYSTEM)/build-version)
-
-TOOLSHAINS_RELATIVE_URL = $(TOOLCHAINS_FTP_BASE)/$(TOOLCHAIN_VERSION)
-
-SOURCES_RELATIVE_URL = sources
-
-PACKAGES_BASE_URL = $(DOWNLOAD_SERVER)/$(DISTRO_NAME)/system/releases
-PACKAGES_RELATIVE_URL = $(DISTRO_FULL_VERSION)/$(TOOLCHAIN)/$(HARDWARE)
-
-PACKAGES_REPOSITORY = https://pkg.radix.pro
-
-
-
-
-TARGET_SETUP_MK=1
-endif
Index: build-system-1.10.x/transmitting_hash
===================================================================
--- build-system-1.10.x/transmitting_hash (revision 57)
+++ build-system-1.10.x/transmitting_hash (nonexistent)
@@ -1,172 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Basename;
-use File::Temp;
-use File::Path qw(make_path remove_tree);
-use Storable qw(lock_store lock_nstore lock_retrieve);
-use _kxLab;
-
-
-my $program = basename( $0 );
-
-my ($hardware, $flavour, $poolname, $operation, $name, $value);
-my $value_only = 'no';
-
-sub usage
-{
- print <<EOF;
-
-Usage: $program [options]
-Options:
- {--get | --set} - type of operation;
- --hardware=HARDWARE - where HARDWARE ia a current HARDWARE name;
- --flavour=FLAVOUR - where FLAVOUR ia a current FLAVOUR name;
- --pool-name=NAME - where NAME is the variables pool name;
- --name=NAME - where NAME is a variable name;
- --value=string - where 'string' is a value of variable;
- --value-only - if this option is used then $program
- prints out only value of required vatiable,
- if this option is not used then $program
- prints out the pair 'NAME=VALUE' without
- spaces around of equal ('=') symbol.
-
-EOF
- exit;
-}
-
-# args:
-# - environment pool name ( perl,for example );
-# - hardware name ( ci20, for example );
-# - flavour name ( m512, for example );
-# - variable;
-# - value;
-sub save_env
-{
- my $fname = shift;
- my $name = shift;
- my $value = shift;
-
- my $tabref;
-
- if( -s $fname and defined( Storable::file_magic( $fname ) ) )
- {
- $tabref = lock_retrieve( $fname );
- if( ! defined $tabref )
- {
- $tabref = 0;
- }
- }
- $tabref->{ $name } = $value;
- lock_store( \%$tabref, $fname );
-}
-
-sub get_env
-{
- my $fname = shift;
- my $name = shift;
-
- my $value = "";
- my $tabref;
-
- if( -s $fname and defined( Storable::file_magic( $fname ) ) )
- {
- $tabref = lock_retrieve( $fname );
- }
- if( defined $tabref )
- {
- my $val = $tabref->{ $name };
- if( defined $val ) { $value = $val; }
- }
- return $value;
-}
-
-
-foreach ( @ARGV )
-{
- if( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--pool-name=(\S*)/ )
- {
- $poolname = $1;
- }
- elsif( /--name=(\S*)/ )
- {
- $name = $1;
- }
- elsif( /--value=(\S*)/ )
- {
- $value = $1;
- }
- elsif( /--set/ )
- {
- $operation = 'set';
- }
- elsif( /--get/ )
- {
- $operation = 'get';
- }
- elsif( /--value-only/ )
- {
- $value_only = 'yes';
- }
- elsif( /--help/ )
- {
- usage;
- }
- else
- {
- usage;
- }
-}
-
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $poolname or $poolname eq "" ) { usage; }
-if( ! defined $operation or $operation eq "" ) { usage; }
-if( ! defined $name or $name eq "" ) { usage; }
-if( $operation eq 'set' )
-{
- if( ! defined $value or $value eq "" ) { usage; }
-}
-
-my $hash_fname;
-if( defined $flavour and $flavour ne "" )
-{
- $hash_fname = _kxLab::build_system_tmpdir() . "/" . "." .
- $hardware . "." . $flavour . "." . $poolname . ".transmitting-hash";
-}
-else
-{
- $hash_fname = _kxLab::build_system_tmpdir() . "/" . "." .
- $hardware . "." . $poolname . ".transmitting-hash";
-}
-
-if( $operation eq 'set' )
-{
- save_env( $hash_fname, $name, $value );
-}
-else
-{
- my $val = get_env( $hash_fname, $name );
- if( defined $val and $val ne "" )
- {
- $value = $val;
- }
-}
-
-#
-# ECHO according to '--value-only' option:
-#
-if( $value_only eq 'yes' ) { print $value ; }
-else { print $name . "=" . $value ; }
Property changes on: build-system-1.10.x/transmitting_hash
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/canonical-build
===================================================================
--- build-system-1.10.x/canonical-build (revision 57)
+++ build-system-1.10.x/canonical-build (nonexistent)
@@ -1,55 +0,0 @@
-#!/bin/sh
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- i*86:Linux:*:*)
- if [ -f /etc/slackware-version ]; then
- system=`cat /etc/slackware-version | cut -f 1 -d ' ' | tr 'S' 's'`
- echo ${UNAME_MACHINE}-${system}-linux
- else
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- fi
- exit ;;
- x86_64:Linux:*:*)
- if [ -f /etc/slamd64-version ]; then
- system=`cat /etc/slamd64-version | cut -f 1 -d ' ' | tr 'S' 's'`
- echo x86_64-${system}-linux
- elif [ -f /etc/slackware-version ]; then
- system=`cat /etc/slackware-version | cut -f 1 -d ' ' | tr 'S' 's'`
- echo x86_64-${system}-linux
- elif [ -f /etc/os-release ]; then
- system=`cat /etc/os-release | grep -e '^ID=' | cut -f 2 -d '='`
- echo x86_64-linux-gnu
- else
- echo x86_64-unknown-linux-gnu
- fi
- exit ;;
-esac
-
-####### echo "unknown-unknown-unknown-unknown"
-
-cat >&2 <<EOF
-
-`basename $0`: unable to reciognize build system type
-
- MACHINE = '${UNAME_MACHINE}'
- SYSTEM = '${UNAME_SYSTEM}'
- RELEASE = '${UNAME_RELEASE}'
- VERSION = '${UNAME_VERSION}'
-
-EOF
-
-exit 1
Property changes on: build-system-1.10.x/canonical-build
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/build_requires
===================================================================
--- build-system-1.10.x/build_requires (revision 57)
+++ build-system-1.10.x/build_requires (nonexistent)
@@ -1,309 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-use Getopt::Long;
-
-use _kxLab;
-
-#
-# Generate .$(HARDWARE)_requires file for current directory
-#
-# usage:
-# $0 [options] topdir toolchain hardware
-#
-# where:
-# 'topdir' - is a absolute path to the top directory of checked out branch
-# 'toolchain' - is a TOOLCHAIN name
-# 'hardware' - is a HARDWARE name
-# 'flavour' - is a HARDWARE variant
-#
-
-# global variables
-my (%all_requires, $top_dir, $opt_max_depth, %requires_depend, $requires_file, %skip_dirs);
-
-my ($toolchain, $hardware, $flavour, $target_build_dir);
-
-
-sub usage
-{
- print <<EOF;
-
-Usage: build_requires [options] topdir toolchain hardware [flavour]
-Options:
- --max-depth=i - where 'i' is a maximal directory depth for finding requires;
- --skip-dir - directory to be skipped (such as dist or TARGET_BUILD_DIR);
- topdir - is a absolute path to the top of checked out branch;
- toolchain - is a TOOLCHAIN name;
- hardware - is a HARDWARE name.
- flavour - is a HARDWARE variant.
-
-EOF
- exit;
-}
-
-
-sub requires_depend
-{
- my $makefile = shift;
-
- if( ! exists $requires_depend{$makefile} )
- {
- print REQUIRES_DEPEND_FILE "$requires_file: $makefile\n\n";
- print REQUIRES_DEPEND_FILE "$makefile:\n\n";
- $requires_depend{$makefile} = "";
- }
-}
-
-sub read_requires
-{
- my $makefile = shift;
- my $flavour = shift;
-
- # Add a dependency to the Makefile
- requires_depend( $makefile );
-
- my $cdir = dirname( $makefile );
-
- my %requires;
-
- #
- # We read the head of Makefile until '__END_OF_REQUIRES__' keyword.
- # The 'build-system/constants.mk' should be included before requires.
- #
- my $shell_output = <<`SHELL`;
-cd $cdir
-head -n `cat Makefile | grep -n "__END_OF_REQUIRES__" | cut -f 1 -d ':'` Makefile | \
- make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f - -p __build_requires__ 2>/dev/null | grep "REQUIRES"
-exit 0
-SHELL
-
- while( $shell_output =~ m/^REQUIRES(.+= +)(.+)/gm )
- {
- my @n = split( " ", $2 );
- foreach my $req ( @n )
- {
- my ($d, $f);
-
- $d = `echo $req | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
- if( $req =~ m/\^/ )
- {
- $f = `echo $req | cut -f 2 -d '^'`;
- $f =~ s/^\s+|\s+$//;
- }
- else
- {
- $f = "";
- }
-
- if( $d eq "ALL_DIRS" )
- {
- my $dirname = dirname( $makefile );
-
- opendir( DIR, "$dirname" ) or
- _kxLab::error( "build_requires: Could not open directory: $dirname: $!" );
- my @dirs = grep { ! /^\./ && -d "$_" && -f "$_/Makefile" } readdir( DIR );
- closedir DIR;
-
- foreach my $dir (@dirs)
- {
- requires_depend( "$dirname/$dir/Makefile" );
- "$dirname/$dir" =~ m!$top_dir/(.+)!;
- $requires{$1} = "";
- }
- }
- else
- {
- # Print a nice error message if the REQUIRES statement points to a missing directory
- _kxLab::error( "build_requires: REQUIRES '$d' in $makefile not found. Exit" ) if( ! -d "$top_dir/$d" );
-
- if( -f "$top_dir/$d/Makefile" )
- {
- if( $f eq "" ) { $requires{$d} = ""; }
- else { $requires{$d . "^" . $f} = ""; }
- }
- }
- }
- }
- return %requires;
-}
-
-sub start_depend
-{
- my $req = shift;
-
- print REQUIRES_FILE "$req:";
-}
-
-sub depend
-{
- my $req = shift;
-
- print REQUIRES_FILE " $req";
-}
-
-sub end_depend
-{
- print REQUIRES_FILE "\n\n";
-}
-
-sub make_sub_requires
-{
- my $req = shift;
-
- if( ! exists $all_requires{$req} )
- {
- $all_requires{$req} = "";
-
- my ($d, $f);
-
- $d = `echo $req | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
- if( $req =~ m/\^/ )
- {
- $f = `echo $req | cut -f 2 -d '^'`;
- $f =~ s/^\s+|\s+$//;
- }
- else
- {
- $f = "";
- }
-
- # Read sub requires
- my $makefile = "$top_dir/$d/Makefile";
- my %sub_requires = read_requires( $makefile, $f );
- if( scalar(%sub_requires) )
- {
- my @sorted_sub_requires = sort(keys %sub_requires);
-
- # Build dependencies for sub requires
- if( $f eq "" ) { start_depend( $d ); }
- else { start_depend( $d . "^" . $f ); }
- foreach my $sub_req ( @sorted_sub_requires )
- {
- depend( $sub_req );
- }
- end_depend();
-
- # Make sub sub requires
- foreach my $sub_req ( @sorted_sub_requires )
- {
- make_sub_requires( $sub_req );
- }
- }
- }
-}
-
-
-#
-# Parse the command line options
-#
-$opt_max_depth = 10;
-my @opt_skip_dirs;
-GetOptions( "max-depth=i" => \$opt_max_depth, "skip-dir=s" => \@opt_skip_dirs );
-%skip_dirs = map { $_ => "" } @opt_skip_dirs;
-
-# Get the rest of the command line
-my $topdir = shift;
-$toolchain = shift;
-$hardware = shift;
-$flavour = shift;
-
-my $makefile = "Makefile";
-
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-_kxLab::error( "build_requires: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "build_requires: Makefile missing: $makefile" ) if ( ! -f $makefile );
-
-# setup $top_build_dir
-$top_dir = $topdir;
-my $build_system = $top_dir . "/build-system";
-
-_kxLab::system( "mkdir -p $target_build_dir" );
-
-$requires_file = $target_build_dir . "/" . ".requires";
-my $requires_depend_file = $requires_file . "_depend";
-
-# open the output files
-open(REQUIRES_FILE, "> $requires_file") or
- _kxLab::error( "build_requires: Could not open $requires_file file: $!" );
-open(REQUIRES_DEPEND_FILE, "> $requires_depend_file") or
- _kxLab::error( "build_requires: Could not open $requires_depend_file file: $!" );
-
-
-# root component
-my $pwd = `pwd`;
-chomp $pwd;
-$pwd =~ m!$top_dir(.*)!;
-my $root;
-if( $1 eq "" )
-{
- $root = "all";
-}
-else
-{
- $1 =~ m!/(.+)!;
- $root = $1;
-}
-
-print REQUIRES_FILE "# ROOT=$root\n\n";
-print REQUIRES_DEPEND_FILE "\n";
-
-# read the makefile
-my %requires = read_requires( "$pwd/$makefile", $flavour );
-
-#$requires{"build-system"} = "";
-# ignore the "build-system" dependency (if any), since this dependency is implicit
-delete $requires{"build-system"};
-
-my @sorted_requires = sort(keys %requires);
-
-# build the all: rule
-start_depend( "all" );
-foreach my $req ( @sorted_requires )
-{
- depend( $req );
-}
-end_depend();
-
-# build sub dependencies
-foreach my $req ( @sorted_requires )
-{
- make_sub_requires( $req );
-}
-
-# Finish by including tree.mk
-print REQUIRES_FILE "TREEDIRS = ", join(" ", sort(keys %all_requires)), "\n\n";
-if( $pwd =~ m/$build_system/ )
-{
- print REQUIRES_FILE "include \$(BUILDSYSTEM)/tree-bs.mk\n";
-}
-else
-{
- print REQUIRES_FILE "include \$(BUILDSYSTEM)/tree.mk\n";
-}
-
-
-# close output files
-close REQUIRES_FILE;
-close REQUIRES_DEPEND_FILE;
Property changes on: build-system-1.10.x/build_requires
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/downloads_clean
===================================================================
--- build-system-1.10.x/downloads_clean (revision 57)
+++ build-system-1.10.x/downloads_clean (nonexistent)
@@ -1,116 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Find;
-use _kxLab;
-
-
-# Global variables
-my $header_printed = 0;
-
-my $top_dir;
-my @targets;
-my $verbose = $ENV{VERBOSE};
-
-my %seen;
-my ( @dist_clean_dirs, @clean_dirs, @dist_clean_dirs_all, @clean_dirs_all );
-my ( $dist_clean_count, $clean_count );
-
-sub do_clean
-{
- unlink "$top_dir/.makefile";
-
- foreach my $d ( @clean_dirs )
- {
- my $printed_d;
-
- $printed_d = $d;
- $printed_d =~ s/^$top_dir\///;
-
- print "\n=======\n" if ( $verbose );
- print "======= Cleaning in $printed_d...\n" if ( $verbose );
- print "=======\n" if ( $verbose );
- _kxLab::system( "make -C $d download_clean" );
- unlink "$d/.makefile";
- unlink <$d/.*_requires*>;
- }
-}
-
-sub do_clean_list
-{
- my $dir = shift;
- my $cwd = `pwd`;
-
- chomp $cwd;
-
- # skip not our directories where we create patches
- return if( $cwd =~ m/.*create\-.*\-patch.*/ );
-
- return if( ! -f "$cwd/Makefile" );
-
- # needs clean:
- push @clean_dirs_all, $cwd;
-}
-
-sub process_clean
-{
- return if( ! $File::Find::dir =~ m/$top_dir\/sources/ );
-
- # add directory which contains 'Makefile' too.
- if( $_ eq "Makefile" ) { do_clean_list( $File::Find::dir ); }
-
- return if( ! -d $_ );
-
- foreach my $d ( @targets )
- {
- if( $d eq $_ ) { do_clean_list( $File::Find::dir ); }
- }
-}
-
-
-foreach ( @ARGV )
-{
- push @targets, $_;
-}
-$top_dir = pop @targets;
-
-if( ! -d $top_dir )
-{
- die "\nTop: $top_dir: is not a directory\n\n";
-}
-if( ! $top_dir =~ m/^\// )
-{
- die "\nTop: $top_dir: is not absolute path\n\n";
-}
-
-find( \&process_clean, "$top_dir" );
-
-# get unique names:
-%seen = ();
-@clean_dirs = grep { ! $seen{ $_ }++ } @clean_dirs_all;
-@clean_dirs = reverse( keys %seen );
-
-$clean_count = @clean_dirs;
-
-if( $clean_count != 0 )
-{
- if( !$header_printed )
- {
- print "\n======= Cleaning downloads tree =======\n\n" if ( $verbose );
- $header_printed = 1;
- }
-
- do_clean();
-
- print "\n";
-}
-else
-{
- print "\nCleaning... (nothing to be done).\n\n";
-}
-
Property changes on: build-system-1.10.x/downloads_clean
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/cpan/configure.ac
===================================================================
--- build-system-1.10.x/cpan/configure.ac (revision 57)
+++ build-system-1.10.x/cpan/configure.ac (nonexistent)
@@ -1,106 +0,0 @@
-
-dnl ============================================================
-dnl Process this file with autoconf to produce
-dnl a configure script.
-dnl ============================================================
-
-AC_PREREQ(2.58)dnl dnl Minimum Autoconf version required.
-
-
-AC_INIT([build-system], [1.0.0])
-AC_CONFIG_SRCDIR(acsite.m4)
-
-
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl $$ $$
-dnl $$ PART: Test for Auxiliary (my be version sensitive) $$
-dnl $$ programs $$
-dnl $$ $$
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-AC_MSG_RESULT(=======)
-AC_MSG_RESULT(======= Test for aux programs:)
-AC_MSG_RESULT(=======)
-
-dnl ============================================================
-dnl Locate tools( on build machine! ) .
-dnl =================
-dnl ============================================================
-AC_PATH_PROG_LN_S
-AC_SUBST(LN)
-AC_SUBST(LN_S)
-
-dnl Нам нужен исполняемый файл pwd. Встроенный "pwd -P" нас
-dnl не устраивает( из соображений переносимости ) .
-AC_PATH_PROG(PWD_P, pwd, no)
-if test "$PWD_P" = no; then
- AC_MSG_ERROR(******** A pwd binary could not be found.)
-fi
-
-AC_PATH_PROGS(SED, sed gsed, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROGS(TAR, tar gtar, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROG(BASH, bash, no)
-if test "$BASH" != no &&
- $BASH -c 'test "$BASH_VERSINFO" \
- && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
- parse_conf_cv_have_bash2=yes
-else
- parse_conf_cv_have_bash2=no
-fi
-AC_SUBST(parse_conf_cv_have_bash2)
-
-AC_PATH_PROG(BZIP2, bzip2, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(GPG, gpg, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(GZIP, gzip, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(MAKE, make, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(LESS, less, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(PATCH, patch, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(UNZIP, unzip, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(WGET, wget, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_SUBST(BUILDSYSTEM, [$BUILDSYSTEM])
-
-AC_PATH_PROG(GCC, gcc, no)
-if test "$GCC" != no ; then
- LIBDIRSUFFIX=$($GCC -print-multi-os-directory | head -1 | sed 's,[[^0-9]]*\([[0-9]]*\)$,\1,')
-else
- LIBDIRSUFFIX=
-fi
-AC_SUBST(LIBDIRSUFFIX)
-
-
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl $$ $$
-dnl $$ PART: OUTPUT Substitution $$
-dnl $$ $$
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-AC_MSG_RESULT(=======)
-AC_MSG_RESULT(======= OUTPUT:)
-AC_MSG_RESULT(=======)
-
-
-AC_OUTPUT([
-CPAN-Config.pm
-CPAN-install
-])
-
-AC_MSG_RESULT(=======)
-AC_MSG_RESULT(======= End of test for aux programs.)
-AC_MSG_RESULT(=======)
Index: build-system-1.10.x/cpan/CPAN-Config.pm.in
===================================================================
--- build-system-1.10.x/cpan/CPAN-Config.pm.in (revision 57)
+++ build-system-1.10.x/cpan/CPAN-Config.pm.in (nonexistent)
@@ -1,73 +0,0 @@
-
-$CPAN::Config = {
- 'allow_installing_module_downgrades' => q[ask/no],
- 'allow_installing_outdated_dists' => q[ask/no],
- 'applypatch' => q[],
- 'auto_commit' => q[0],
- 'build_cache' => q[100],
- 'build_dir' => q[@BUILDSYSTEM@/var/.cpan/build],
- 'build_dir_reuse' => q[0],
- 'build_requires_install_policy' => q[yes],
- 'bzip2' => q[@BZIP2@],
- 'cache_metadata' => q[1],
- 'check_sigs' => q[0],
- 'cleanup_after_install' => q[1],
- 'colorize_output' => q[0],
- 'commandnumber_in_prompt' => q[1],
- 'connect_to_internet_ok' => q[1],
- 'cpan_home' => q[@BUILDSYSTEM@/var/.cpan],
- 'ftp_passive' => q[1],
- 'ftp_proxy' => q[],
- 'getcwd' => q[cwd],
- 'gpg' => q[@GPG@],
- 'gzip' => q[@GZIP@],
- 'halt_on_failure' => q[0],
- 'histfile' => q[@BUILDSYSTEM@/var/.cpan/histfile],
- 'histsize' => q[100],
- 'http_proxy' => q[],
- 'inactivity_timeout' => q[0],
- 'index_expire' => q[1],
- 'inhibit_startup_message' => q[0],
- 'keep_source_where' => q[@BUILDSYSTEM@/var/.cpan/sources],
- 'load_module_verbosity' => q[none],
- 'make' => q[@MAKE@],
- 'make_arg' => q[-j4],
- 'make_install_arg' => q[UNINST=1 INSTALLDIRS=vendor],
- 'make_install_make_command' => q[@MAKE@],
- 'makepl_arg' => q[INSTALLDIRS=vendor],
- 'mbuild_arg' => q[--extra_linker_flags -L/usr/lib@LIBDIRSUFFIX@ --installdirs vendor],
- 'mbuild_install_arg' => q[--uninst 1 --installdirs vendor],
- 'mbuild_install_build_command' => q[./Build],
- 'mbuildpl_arg' => q[--extra_linker_flags -L/usr/lib@LIBDIRSUFFIX@ --installdirs vendor],
- 'no_proxy' => q[],
- 'pager' => q[@LESS@],
- 'patch' => q[@PATCH@],
- 'perl5lib_verbosity' => q[none],
- 'prefer_external_tar' => q[1],
- 'prefer_installer' => q[MB],
- 'prefs_dir' => q[@BUILDSYSTEM@/var/.cpan/prefs],
- 'prerequisites_policy' => q[follow],
- 'recommends_policy' => q[0],
- 'scan_cache' => q[atstart],
- 'shell' => q[@BASH@],
- 'show_unparsable_versions' => q[0],
- 'show_upload_date' => q[0],
- 'show_zero_versions' => q[0],
- 'suggests_policy' => q[1],
- 'tar' => q[@TAR@],
- 'tar_verbosity' => q[none],
- 'term_is_latin' => q[1],
- 'term_ornaments' => q[1],
- 'test_report' => q[0],
- 'trust_test_report_history' => q[0],
- 'unzip' => q[@UNZIP@],
- 'urllist' => [q[http://www.cpan.org/]],
- 'use_prompt_default' => q[0],
- 'use_sqlite' => q[0],
- 'version_timeout' => q[15],
- 'wget' => q[@WGET@],
- 'yaml_load_code' => q[0],
- 'yaml_module' => q[YAML],
-};
-1;
-__END__
Index: build-system-1.10.x/cpan/CPAN-install.in
===================================================================
--- build-system-1.10.x/cpan/CPAN-install.in (revision 57)
+++ build-system-1.10.x/cpan/CPAN-install.in (nonexistent)
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-module=$1
-
-if [ -z "${module}" ] ; then
- exit 0
-fi
-
-CONFIG=@BUILDSYSTEM@/var/.cpan/CPAN/Config.pm
-
-@BUILDSYSTEM@/usr/bin/cpan -T -j ${CONFIG} install ${module}
Index: build-system-1.10.x/cpan/acsite.m4
===================================================================
--- build-system-1.10.x/cpan/acsite.m4 (revision 57)
+++ build-system-1.10.x/cpan/acsite.m4 (nonexistent)
@@ -1,34 +0,0 @@
-
-dnl ============================================================
-dnl Test for build_host `ln -s' .
-dnl ============================
-dnl
-dnl Usage:
-dnl -----
-dnl AC_PATH_PROG_LN_S
-dnl AC_SUBST(LN)
-dnl AC_SUBST(LN_S)
-dnl
-dnl ============================================================
-AC_DEFUN(AC_PATH_PROG_LN_S,
-[AC_PATH_PROG(LN, ln, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_MSG_CHECKING(whether ln -s works on build host)
-AC_CACHE_VAL(ac_cv_path_prog_LN_S,
-[rm -f conftestdata
-if $LN -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_path_prog_LN_S="$LN -s"
-else
- ac_cv_path_prog_LN_S="$LN"
-fi])dnl
-LN_S="$ac_cv_path_prog_LN_S"
-if test "$ac_cv_path_prog_LN_S" = "$LN -s"; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST(LN)dnl
-AC_SUBST(LN_S)dnl
-])
-
Index: build-system-1.10.x/cpan/Makefile
===================================================================
--- build-system-1.10.x/cpan/Makefile (revision 57)
+++ build-system-1.10.x/cpan/Makefile (nonexistent)
@@ -1,41 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../build-system/constants.mk
-
-# ======= __END_OF_REQUIRES__ =======
-
-cpan-config = CPAN-Config.pm
-cpan-install = CPAN-install
-
-config_targets = $(cpan-config) $(cpan-install)
-
-install_target = .installed
-
-BUILD_TARGETS = $(install_target)
-
-CLEANUP_FILES += autom4te.cache
-CLEANUP_FILES += $(config_targets)
-CLEANUP_FILES += $(install_target)
-CLEANUP_FILES += config.log
-CLEANUP_FILES += config.status
-CLEANUP_FILES += configure
-
-include ../../build-system/core.mk
-
-.NOTPARALLEL:
-
-$(config_targets):
- @autoconf
- @rm -rf autom4te.cache
- @./configure
-
-$(install_target): $(config_targets)
- @echo -e "\n======= Installing CPAN Install script =======\n"
- @mkdir -p $(BUILDSYSTEM)/var/.cpan/CPAN && \
- install --mode=644 $(cpan-config) $(BUILDSYSTEM)/var/.cpan/CPAN/Config.pm
- @mkdir -p $(BUILDSYSTEM)/usr/bin && \
- install --mode=755 $(cpan-install) $(BUILDSYSTEM)/usr/bin/cpan-install
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "CPAN_INSTALL := $(BUILDSYSTEM)/usr/bin/cpan-install" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/cpan
===================================================================
--- build-system-1.10.x/cpan (revision 57)
+++ build-system-1.10.x/cpan (nonexistent)
Property changes on: build-system-1.10.x/cpan
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/genext2fs/1.4.1/PATCHES
===================================================================
--- build-system-1.10.x/3pp/app/genext2fs/1.4.1/PATCHES (revision 57)
+++ build-system-1.10.x/3pp/app/genext2fs/1.4.1/PATCHES (nonexistent)
@@ -1,3 +0,0 @@
-
-../../../sources/packages/genext2fs/patches/genext2fs-1.4.1-blocksize.patch -p0
-../../../sources/packages/genext2fs/patches/genext2fs-1.4.1-configure.patch -p0
Index: build-system-1.10.x/3pp/app/genext2fs/1.4.1/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/genext2fs/1.4.1/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/genext2fs/1.4.1/Makefile (nonexistent)
@@ -1,63 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/genext2fs
-
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version = 1.4.1
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/genext2fs/genext2fs-$(version).tar.xz
-src_dir = genext2fs-$(version)
-build_dir = $(TARGET_BUILD_DIR)/built
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-SRC_DIR = $(TARGET_BUILD_DIR)/genext2fs-$(version)
-SRC_ARCHIVE = $(tar_xz_archive)
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-#
-# Workaround for MAJOR_IN_SYSMACROS definition in the config.h
-# (because of AC_HEADER_MAJOR function doesn't work correctly):
-#
-environment = ac_cv_header_sys_types_h_makedev=no
-environment += ac_cv_header_sys_mkdev_h=no
-
-extra_configure_switches = --libdir=/usr/lib$(BUILD_MULTILIB_SUFFIX)
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @mkdir -p $(build_dir)
- @( cd $(SRC_DIR) ; \
- autoreconf -i ; rm -rf autom4te.cache ; rm -f *~ ; \
- )
- @cd $(build_dir) && $(environment) ../$(src_dir)/configure \
- --prefix=/usr \
- $(extra_configure_switches)
- @$(environment) $(MAKE) -C $(build_dir) all
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing genext2fs binary =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- cp -a $(build_dir)/genext2fs $(BUILDSYSTEM)/sbin && \
- echo "GENEXT2FS := $(BUILDSYSTEM)/sbin/genext2fs" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/genext2fs/1.4.1
===================================================================
--- build-system-1.10.x/3pp/app/genext2fs/1.4.1 (revision 57)
+++ build-system-1.10.x/3pp/app/genext2fs/1.4.1 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/genext2fs/1.4.1
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/genext2fs
===================================================================
--- build-system-1.10.x/3pp/app/genext2fs (revision 57)
+++ build-system-1.10.x/3pp/app/genext2fs (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/genext2fs
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/ruby/3.2.0/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/ruby/3.2.0/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/ruby/3.2.0/Makefile (nonexistent)
@@ -1,61 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/ruby
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 3.2.0
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/ruby/ruby-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/ruby-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-LDFLAGS += -Wl,-rpath,$(BUILDSYSTEM)/usr/lib
-
-extra_configure_switches = --libdir=$(BUILDSYSTEM)/usr/lib
-extra_configure_switches += --bindir=$(BUILDSYSTEM)/usr/bin
-extra_configure_switches += --docdir=$(BUILDSYSTEM)/usr/share/doc/$(src_dir_name)
-extra_configure_switches += --mandir=$(BUILDSYSTEM)/usr/share/man
-extra_configure_switches += --datadir=$(BUILDSYSTEM)/usr/share
-extra_configure_switches += --with-ruby-version=$(version)
-extra_configure_switches += --enable-shared
-extra_configure_switches += --enable-pthread
-extra_configure_switches += --disable-install-capi
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @cd $(SRC_DIR) && ./configure \
- --prefix=$(BUILDSYSTEM)/usr \
- --build=$(BUILD) \
- --host=$(BUILD) \
- $(extra_configure_switches)
- @cd $(SRC_DIR) && $(MAKE)
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing Ruby $(version) binary =======\n"
- @cd $(SRC_DIR) && $(MAKE) -j1 install
- @echo -e "\n======= Setup RUBY build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "RUBY := $(BUILDSYSTEM)/usr/bin/ruby" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/ruby/3.2.0
===================================================================
--- build-system-1.10.x/3pp/app/ruby/3.2.0 (revision 57)
+++ build-system-1.10.x/3pp/app/ruby/3.2.0 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/ruby/3.2.0
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/ruby
===================================================================
--- build-system-1.10.x/3pp/app/ruby (revision 57)
+++ build-system-1.10.x/3pp/app/ruby (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/ruby
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/fakeroot/1.31/scripts/fakeroot
===================================================================
--- build-system-1.10.x/3pp/app/fakeroot/1.31/scripts/fakeroot (revision 57)
+++ build-system-1.10.x/3pp/app/fakeroot/1.31/scripts/fakeroot (nonexistent)
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-program=$0
-fakeroot_prefix=$(cd $(dirname $program)/.. ; pwd -P)/usr
-
-shell=$1 ; shift ; option=$1 ; shift
-
-#
-# remove extra spaces
-#
-args=`echo "${@}" | sed 's/ \{1,\}/ /g'`
-
-${fakeroot_prefix}/bin/fakeroot-sysv --lib ${fakeroot_prefix}/lib/libfakeroot-0.so \
- --faked ${fakeroot_prefix}/bin/faked-sysv -- $shell $option "$args"
-
-
Index: build-system-1.10.x/3pp/app/fakeroot/1.31/scripts
===================================================================
--- build-system-1.10.x/3pp/app/fakeroot/1.31/scripts (revision 57)
+++ build-system-1.10.x/3pp/app/fakeroot/1.31/scripts (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/fakeroot/1.31/scripts
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/fakeroot/1.31/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/fakeroot/1.31/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/fakeroot/1.31/Makefile (nonexistent)
@@ -1,67 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/fakeroot
-
-REQUIRES = build-system/3pp/app/po4a/0.68
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 1.31
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/fakeroot/fakeroot-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/fakeroot-$(version)
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-src_dir_name = fakeroot-$(version)
-build_dir = $(TARGET_BUILD_DIR)/built
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-script = $(CURDIR)/scripts/fakeroot
-
-environment = CPPFLAGS=-I$(BUILDSYSTEM)/usr/include
-environment += LDFLAGS=-Wl,-rpath=$(BUILDSYSTEM)/usr/lib
-
-extra_configure_switches = --libdir=/usr/lib
-extra_configure_switches += --program-suffix=-sysv
-extra_configure_switches += --mandir=/usr/share/man
-extra_configure_switches += --disable-static
-extra_configure_switches += --with-ipc=sysv
-
-
-BUILD_TARGETS = $(install_target)
-
-include ../../../../../build-system/core.mk
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @( cd $(SRC_DIR) ; ./bootstrap )
- @( cd $(SRC_DIR)/doc ; \
- $(BUILDSYSTEM)/usr/bin/po4a -k 0 --rm-backups --variable 'srcdir=../doc/' po4a/po4a.cfg ; \
- )
- @touch $@
-
-$(build_target): $(src_done)
- @mkdir -p $(build_dir)
- @cd $(build_dir) && $(environment) ../$(src_dir_name)/configure \
- --prefix=/usr \
- $(extra_configure_switches)
- @$(environment) $(MAKE) -C $(build_dir)
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing FAKEROOT binary =======\n"
- @cd $(build_dir) && $(MAKE) install DESTDIR=$(BUILDSYSTEM)
- @echo -e "\n======= Installing FAKEROOT wrapper =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- cp -a $(script) $(BUILDSYSTEM)/sbin/fakeroot && \
- chmod a+x $(BUILDSYSTEM)/sbin/fakeroot && \
- echo "PSEUDO := $(BUILDSYSTEM)/sbin/fakeroot" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/fakeroot/1.31
===================================================================
--- build-system-1.10.x/3pp/app/fakeroot/1.31 (revision 57)
+++ build-system-1.10.x/3pp/app/fakeroot/1.31 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/fakeroot/1.31
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/fakeroot
===================================================================
--- build-system-1.10.x/3pp/app/fakeroot (revision 57)
+++ build-system-1.10.x/3pp/app/fakeroot (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/fakeroot
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/populatefs/1.1/PATCHES
===================================================================
--- build-system-1.10.x/3pp/app/populatefs/1.1/PATCHES (revision 57)
+++ build-system-1.10.x/3pp/app/populatefs/1.1/PATCHES (nonexistent)
@@ -1,3 +0,0 @@
-
-../../../sources/packages/populatefs/patches/populatefs-1.1-sys-macros.patch -p0
-../../../sources/packages/populatefs/patches/populatefs-1.1-version.patch -p0
Index: build-system-1.10.x/3pp/app/populatefs/1.1/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/populatefs/1.1/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/populatefs/1.1/Makefile (nonexistent)
@@ -1,56 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/populatefs
-
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version = 1.1
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/populatefs/populatefs-$(version).tar.xz
-src_dir = populatefs-$(version)
-build_dir = $(TARGET_BUILD_DIR)/built
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-SRC_DIR = $(TARGET_BUILD_DIR)/populatefs-$(version)
-SRC_ARCHIVE = $(tar_xz_archive)
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-environment = prefix=/usr
-environment += bindir=/sbin
-environment += libdir=/usr/lib$(BUILD_MULTILIB_SUFFIX)
-environment += includedir=/usr/include
-environment += LDFLAGS=-L/usr/lib$(BUILD_MULTILIB_SUFFIX)
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- $(MAKE) $(environment) ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing POPULATEFS binary =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- cp -a $(SRC_DIR)/src/populatefs $(BUILDSYSTEM)/sbin && \
- echo "POPULATEFS := $(BUILDSYSTEM)/sbin/populatefs" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/populatefs/1.1
===================================================================
--- build-system-1.10.x/3pp/app/populatefs/1.1 (revision 57)
+++ build-system-1.10.x/3pp/app/populatefs/1.1 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/populatefs/1.1
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/populatefs
===================================================================
--- build-system-1.10.x/3pp/app/populatefs (revision 57)
+++ build-system-1.10.x/3pp/app/populatefs (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/populatefs
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/qemu/8.0.2/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/qemu/8.0.2/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/qemu/8.0.2/Makefile (nonexistent)
@@ -1,98 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/qemu
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 8.0.2
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/qemu/qemu-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/qemu-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-build_dir = $(TARGET_BUILD_DIR)/build
-src_dir = qemu-$(version)
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-environment =
-
-extra_configure_switches = --libdir=$(BUILDSYSTEM)/usr/lib
-extra_configure_switches += --bindir=$(BUILDSYSTEM)/usr/bin
-extra_configure_switches += --docdir=$(BUILDSYSTEM)/usr/share/doc/$(src_dir_name)
-extra_configure_switches += --mandir=$(BUILDSYSTEM)/usr/share/man
-extra_configure_switches += --datadir=$(BUILDSYSTEM)/usr/share
-
-extra_configure_switches += --sysconfdir=$(BUILDSYSTEM)/usr/etc
-extra_configure_switches += --libexecdir=$(BUILDSYSTEM)/usr/libexec
-extra_configure_switches += --localstatedir=$(BUILDSYSTEM)/var
-
-extra_configure_switches += --enable-attr
-extra_configure_switches += --enable-linux-user
-extra_configure_switches += --enable-tcg
-extra_configure_switches += --disable-bpf
-extra_configure_switches += --disable-bsd-user
-extra_configure_switches += --disable-capstone
-extra_configure_switches += --disable-docs
-extra_configure_switches += --disable-fdt
-extra_configure_switches += --disable-fuse
-extra_configure_switches += --disable-gcrypt
-extra_configure_switches += --disable-glusterfs
-extra_configure_switches += --disable-gnutls
-extra_configure_switches += --disable-gtk
-extra_configure_switches += --disable-install-blobs
-extra_configure_switches += --disable-kvm
-extra_configure_switches += --disable-libiscsi
-extra_configure_switches += --disable-libnfs
-extra_configure_switches += --disable-libssh
-extra_configure_switches += --disable-linux-io-uring
-extra_configure_switches += --disable-nettle
-extra_configure_switches += --disable-opengl
-extra_configure_switches += --disable-qom-cast-debug
-extra_configure_switches += --disable-sdl
-extra_configure_switches += --disable-system
-extra_configure_switches += --disable-tools
-extra_configure_switches += --disable-tpm
-extra_configure_switches += --disable-vde
-extra_configure_switches += --disable-vhost-crypto
-extra_configure_switches += --disable-vhost-kernel
-extra_configure_switches += --disable-vhost-net
-extra_configure_switches += --disable-vhost-user
-extra_configure_switches += --disable-vnc
-extra_configure_switches += --disable-werror
-extra_configure_switches += --disable-xen
-extra_configure_switches += --disable-zstd
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @mkdir -p $(build_dir)
- @cd $(build_dir) && $(environment) ../$(src_dir)/configure \
- --prefix=$(BUILDSYSTEM)/usr \
- --build=$(BUILD) \
- --host=$(BUILD) \
- $(extra_configure_switches)
- @cd $(build_dir) && ninja
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing Qemu $(version) binary =======\n"
- @cd $(build_dir) && ninja install
- @touch $@
Index: build-system-1.10.x/3pp/app/qemu/8.0.2
===================================================================
--- build-system-1.10.x/3pp/app/qemu/8.0.2 (revision 57)
+++ build-system-1.10.x/3pp/app/qemu/8.0.2 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/qemu/8.0.2
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/pkgtools/0.2.2/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/pkgtools/0.2.2/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/pkgtools/0.2.2/Makefile (nonexistent)
@@ -1,76 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/pkgtools
-
-REQUIRES = build-system/3pp/app/dialog/1.3-20210621
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/pkgtools/pkgtools-0.2.2.tar.xz
-src_dir = pkgtools-0.2.2
-build_dir = $(TARGET_BUILD_DIR)/built
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-SRC_DIR = $(TARGET_BUILD_DIR)/pkgtools-0.2.2
-SRC_ARCHIVE = $(tar_xz_archive)
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-environment = CPPFLAGS=-I$(BUILDSYSTEM)/usr/include
-environment += LDFLAGS=-Wl,-rpath=$(BUILDSYSTEM)/usr/lib
-
-extra_configure_switches += --with-dialog=$(BUILDSYSTEM)/usr
-extra_configure_switches += --with-dialog-test=yes
-extra_configure_switches += --with-gpg2=yes
-extra_configure_switches += --with-distro-name=$(DISTRO_NAME)
-extra_configure_switches += --with-distro-version=$(DISTRO_VERSION)
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @cd $(SRC_DIR) && ./bootstrap
- @mkdir -p $(build_dir)
- @cd $(build_dir) && $(environment) ../$(src_dir)/configure \
- --prefix=$(BUILDSYSTEM)/usr \
- --sbindir=$(BUILDSYSTEM)/sbin \
- --build=$(BUILD) \
- --host=$(BUILD) \
- $(extra_configure_switches)
- @$(environment) $(MAKE) -C $(build_dir) all
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing PKGTOOLS binaries =======\n"
- @$(environment) $(MAKE) -j1 -C $(build_dir) install
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "CHECK_DB_INTEGRITY := $(BUILDSYSTEM)/sbin/check-db-integrity" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "CHECK_PACKAGE := $(BUILDSYSTEM)/sbin/check-package" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "CHECK_REQUIRES := $(BUILDSYSTEM)/sbin/check-requires" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "CHANGE_REFS := $(BUILDSYSTEM)/sbin/chrefs" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "INSTALL_PACKAGE := $(BUILDSYSTEM)/sbin/install-package" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "INSTALL_PKGLIST := $(BUILDSYSTEM)/sbin/install-pkglist" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "MAKE_PACKAGE := $(BUILDSYSTEM)/sbin/make-package" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "MAKE_PKGLIST := $(BUILDSYSTEM)/sbin/make-pkglist" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "PKGINFO := $(BUILDSYSTEM)/sbin/pkginfo" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "PKGLOG := $(BUILDSYSTEM)/sbin/pkglog" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "REMOVE_PACKAGE := $(BUILDSYSTEM)/sbin/remove-package" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "UPDATE_PACKAGE := $(BUILDSYSTEM)/sbin/update-package" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/pkgtools/0.2.2
===================================================================
--- build-system-1.10.x/3pp/app/pkgtools/0.2.2 (revision 57)
+++ build-system-1.10.x/3pp/app/pkgtools/0.2.2 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/pkgtools/0.2.2
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/pkgtools
===================================================================
--- build-system-1.10.x/3pp/app/pkgtools (revision 57)
+++ build-system-1.10.x/3pp/app/pkgtools (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/pkgtools
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/perl/5.36.0/PATCHES
===================================================================
--- build-system-1.10.x/3pp/app/perl/5.36.0/PATCHES (revision 57)
+++ build-system-1.10.x/3pp/app/perl/5.36.0/PATCHES (nonexistent)
@@ -1,2 +0,0 @@
-
-../../../sources/packages/perl/patches/perl-5.36.0-multilib.patch -p0
Index: build-system-1.10.x/3pp/app/perl/5.36.0/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/perl/5.36.0/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/perl/5.36.0/Makefile (nonexistent)
@@ -1,124 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/perl
-
-REQUIRES = build-system/cpan
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 5.36.0
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/perl/perl-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/perl-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-ARCH = $(shell uname -m)
-ARCHNAME = $(ARCH)-linux
-
-OPTIMIZE = -O2
-
-ifeq ($(ARCH),x86_64)
- ARCH_OPTS = -Dcccdlflags='-fPIC' -Duselargefiles -Duse64bitall
- OPTIMIZE += -fPIC
-endif
-
-OPTIMIZE += -Wno-cast-function-type -Wno-nonnull -Wno-clobbered
-OPTIMIZE += -Wno-multistatement-macros -Wimplicit-fallthrough=0
-
-#
-# If after all this time you still don't trust threads, comment out the variable below:
-#
-USE_THREADS = -Dusethreads -Duseithreads
-
-
-extra_configure_switches = -Darchname=$(ARCHNAME)
-
-extra_configure_switches += -Dprefix=$(BUILDSYSTEM)/usr
-extra_configure_switches += -Dbin='$(BUILDSYSTEM)/usr/bin'
-extra_configure_switches += -Dscriptdir='$(BUILDSYSTEM)/usr/bin'
-
-extra_configure_switches += -Darchlib='$(BUILDSYSTEM)/usr/lib/perl5'
-extra_configure_switches += -Dprivlib='$(BUILDSYSTEM)/usr/share/perl5'
-
-extra_configure_switches += -Dsiteprefix=$(BUILDSYSTEM)/usr
-extra_configure_switches += -Dsitebin='$(BUILDSYSTEM)/usr/bin'
-extra_configure_switches += -Dsitescript='$(BUILDSYSTEM)/usr/bin'
-extra_configure_switches += -Dsitearch='$(BUILDSYSTEM)/usr/lib/perl5/site_perl'
-extra_configure_switches += -Dsitelib='$(BUILDSYSTEM)/usr/share/perl5/site_perl'
-
-extra_configure_switches += -Dvendorprefix=$(BUILDSYSTEM)/usr
-extra_configure_switches += -Dvendorbin='$(BUILDSYSTEM)/usr/bin'
-extra_configure_switches += -Dvendorscript='$(BUILDSYSTEM)/usr/bin'
-extra_configure_switches += -Dvendorarch='$(BUILDSYSTEM)/usr/lib/perl5/vendor_perl'
-extra_configure_switches += -Dvendorlib='$(BUILDSYSTEM)/usr/share/perl5/vendor_perl'
-
-extra_configure_switches += -Dinstallprefix=$(BUILDSYSTEM)/usr
-extra_configure_switches += -Dlibpth='$(BUILDSYSTEM)/usr/lib'
-extra_configure_switches += -Dloclibpth='$(BUILDSYSTEM)/usr/lib'
-extra_configure_switches += -Dlocincpth='$(BUILDSYSTEM)/usr/include'
-
-extra_configure_switches += -Doptimize='$(OPTIMIZE)'
-extra_configure_switches += $(USE_THREADS)
-extra_configure_switches += $(ARCH_OPTS)
-extra_configure_switches += -Duseshrplib
-extra_configure_switches += -Ubincompat5005
-extra_configure_switches += -Uversiononly
-
-extra_configure_switches += -Dpager='/usr/bin/less -isr'
-
-extra_configure_switches += -Dhtml1dir='$(BUILDSYSTEM)/usr/share/doc/perl-$(version)/html'
-extra_configure_switches += -Dhtml3dir='$(BUILDSYSTEM)/usr/share/doc/perl-$(version)/html'
-extra_configure_switches += -Dman1dir='$(BUILDSYSTEM)/usr/share/man/man1'
-extra_configure_switches += -Dman3dir='$(BUILDSYSTEM)/usr/share/man/man3'
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @cd $(SRC_DIR) && echo 'installstyle="lib/perl5"' >> hints/linux.sh
- @touch $@
-
-$(build_target): $(src_done)
- @cd $(SRC_DIR) && ./Configure -des $(extra_configure_switches)
- @cd $(SRC_DIR) && $(MAKE)
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing Perl 5 binary =======\n"
- @cd $(SRC_DIR) && $(MAKE) -j1 install
- @echo -e "\n======= Install Perl modules =======\n"
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- ./cpan-install Module::Build 2>/dev/null ; \
- ./cpan-install IPC::System::Simple 2>/dev/null ; \
- ./cpan-install File::Slurp 2>/dev/null ; \
- ./cpan-install File::Which 2>/dev/null ; \
- ./cpan-install List::MoreUtils 2>/dev/null ; \
- ./cpan-install Data::Dumper 2>/dev/null ; \
- ./cpan-install Devel::CheckLib 2>/dev/null ; \
- ./cpan-install DBI 2>/dev/null ; \
- ./cpan-install URI 2>/dev/null ; \
- ./cpan-install XML::Parser 2>/dev/null ; \
- ./cpan-install XML::SAX 2>/dev/null ; \
- ./cpan-install XML::SAX::Expat 2>/dev/null ; \
- ./cpan-install Alien::Base::Wrapper 2>/dev/null ; \
- ./cpan-install Alien::Libxml2 2>/dev/null ; \
- )
- @echo -e "\n======= Setup PERL build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "PERL := $(BUILDSYSTEM)/usr/bin/perl" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/perl/5.36.0
===================================================================
--- build-system-1.10.x/3pp/app/perl/5.36.0 (revision 57)
+++ build-system-1.10.x/3pp/app/perl/5.36.0 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/perl/5.36.0
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/perl
===================================================================
--- build-system-1.10.x/3pp/app/perl (revision 57)
+++ build-system-1.10.x/3pp/app/perl (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/perl
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/dialog/1.3-20210621/PATCHES
===================================================================
--- build-system-1.10.x/3pp/app/dialog/1.3-20210621/PATCHES (revision 57)
+++ build-system-1.10.x/3pp/app/dialog/1.3-20210621/PATCHES (nonexistent)
@@ -1,2 +0,0 @@
-
-../../../sources/packages/dialog/patches/dialog-1.3-20210621.patch -p0
Index: build-system-1.10.x/3pp/app/dialog/1.3-20210621/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/dialog/1.3-20210621/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/dialog/1.3-20210621/Makefile (nonexistent)
@@ -1,68 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/dialog
-
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-tar_gz_archive = $(BUILDSYSTEM)/3pp/sources/packages/dialog/dialog-1.3-20210621.tgz
-src_dir = dialog-1.3-20210621
-build_dir = $(TARGET_BUILD_DIR)/built
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-SRC_DIR = $(TARGET_BUILD_DIR)/dialog-1.3-20210621
-SRC_ARCHIVE = $(tar_gz_archive)
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-environment =
-extra_configure_switches += --mandir=$(BUILDSYSTEM)/usr/share/man
-extra_configure_switches += --with-shared
-extra_configure_switches += --with-libtool
-extra_configure_switches += --with-ncursesw
-extra_configure_switches += --enable-widec
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @mkdir -p $(build_dir)
- @cd $(build_dir) && $(environment) ../$(src_dir)/configure \
- --prefix=$(BUILDSYSTEM)/usr \
- --exec-prefix=$(BUILDSYSTEM)/usr \
- --build=$(BUILD) \
- --host=$(BUILD) \
- $(extra_configure_switches)
- @$(environment) $(MAKE) -C $(build_dir) all
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing DIALOG binary =======\n"
- @$(environment) $(MAKE) -j1 -C $(build_dir) install
- @sed -i '/^#include <dlg_config.h>/,+1d' $(BUILDSYSTEM)/usr/include/dialog.h
- @rm -f $(BUILDSYSTEM)/usr/include/dlg_config.h
- @chmod 755 $(BUILDSYSTEM)/usr/lib/libdialog.{la,so*}
- @mkdir -p $(BUILDSYSTEM)/usr/share/aclocal
- @cat $(SRC_DIR)/dialog.m4 > $(BUILDSYSTEM)/usr/share/aclocal/dialog.m4
- @chmod 644 $(BUILDSYSTEM)/usr/share/aclocal/dialog.m4
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "DIALOG := $(BUILDSYSTEM)/usr/bin/dialog" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "DIALOG_CONFIG := $(BUILDSYSTEM)/usr/bin/dialog-config" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/dialog/1.3-20210621
===================================================================
--- build-system-1.10.x/3pp/app/dialog/1.3-20210621 (revision 57)
+++ build-system-1.10.x/3pp/app/dialog/1.3-20210621 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/dialog/1.3-20210621
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/dialog
===================================================================
--- build-system-1.10.x/3pp/app/dialog (revision 57)
+++ build-system-1.10.x/3pp/app/dialog (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/dialog
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/po4a/0.68/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/po4a/0.68/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/po4a/0.68/Makefile (nonexistent)
@@ -1,54 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/po4a
-
-REQUIRES = build-system/3pp/app/perl-SGMLS/1.1
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 0.68
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/po4a/po4a-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/po4a-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/perl Build.PL prefix=/usr installdirs=vendor destdir=$(BUILDSYSTEM) ; \
- ./Build ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing Perl SGMLS binaries =======\n"
- @( cd $(SRC_DIR) ; \
- ./Build install \
- --install_path bindoc=/usr/share/man/man1 \
- --install_path libdoc=/usr/share/man/man3 ; \
- )
- @find $(BUILDSYSTEM)/usr/lib/perl5 \
- -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
- @echo -e "\n======= Setup PO4A build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "PO4A := $(BUILDSYSTEM)/usr/bin/po4a" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/po4a/0.68
===================================================================
--- build-system-1.10.x/3pp/app/po4a/0.68 (revision 57)
+++ build-system-1.10.x/3pp/app/po4a/0.68 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/po4a/0.68
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/po4a
===================================================================
--- build-system-1.10.x/3pp/app/po4a (revision 57)
+++ build-system-1.10.x/3pp/app/po4a (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/po4a
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/jsmin/0.0.1/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/jsmin/0.0.1/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/jsmin/0.0.1/Makefile (nonexistent)
@@ -1,53 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/jsmin
-
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/jsmin/jsmin-0.0.1.tar.xz
-src_dir = jsmin-0.0.1
-build_dir = $(TARGET_BUILD_DIR)/built
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-SRC_DIR = $(TARGET_BUILD_DIR)/jsmin-0.0.1
-SRC_ARCHIVE = $(tar_xz_archive)
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-environment =
-
-extra_configure_switches = --program-prefix=''
-extra_configure_switches += --program-suffix=''
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- @touch $@
-
-$(build_target): $(src_done)
- @mkdir -p $(build_dir)
- @cd $(build_dir) && $(environment) ../$(src_dir)/configure \
- --prefix=/usr \
- $(extra_configure_switches)
- @$(environment) $(MAKE) -C $(build_dir) all
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing JSMIN binary =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- cp -a $(build_dir)/src/jsmin $(BUILDSYSTEM)/sbin && \
- echo "JSMIN := $(BUILDSYSTEM)/sbin/jsmin" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/jsmin/0.0.1
===================================================================
--- build-system-1.10.x/3pp/app/jsmin/0.0.1 (revision 57)
+++ build-system-1.10.x/3pp/app/jsmin/0.0.1 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/jsmin/0.0.1
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/jsmin
===================================================================
--- build-system-1.10.x/3pp/app/jsmin (revision 57)
+++ build-system-1.10.x/3pp/app/jsmin (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/jsmin
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0/PATCHES
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0/PATCHES (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0/PATCHES (nonexistent)
@@ -1,2 +0,0 @@
-
-#../../../../sources/packages/python-modules/setuptools/patches/setuptools-46.4.0-warn.patch -p0
Index: build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0/Makefile (nonexistent)
@@ -1,47 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python-modules/setuptools
-
-REQUIRES = build-system/3pp/app/python2/2.7.18
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 44.0.0
-tar_gz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python-modules/setuptools/setuptools-$(version).tar.gz
-SRC_ARCHIVE = $(tar_gz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/setuptools-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../../build-system/core.mk
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python2 bootstrap.py ; \
- $(BUILDSYSTEM)/usr/bin/python2 setup.py build ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing setuptools-$(version) =======\n"
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python2 setup.py install ; \
- )
- @touch $@
Index: build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0 (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2-modules/setuptools/44.0.0
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2-modules/setuptools
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/setuptools (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/setuptools (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2-modules/setuptools
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2-modules/pip/20.3/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/pip/20.3/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/pip/20.3/Makefile (nonexistent)
@@ -1,56 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python-modules/pip
-
-REQUIRES = build-system/3pp/app/python2-modules/setuptools/44.0.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 20.3
-tar_gz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python-modules/pip/pip-$(version).tar.gz
-SRC_ARCHIVE = $(tar_gz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/pip-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../../build-system/core.mk
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python2 setup.py build ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing setuptools-$(version) =======\n"
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python2 setup.py install ; \
- )
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- rm -f pip ; ln -sf pip2 pip ; \
- )
- @echo -e "\n======= Install Python2 M2Crypto package =======\n"
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- ./pip2.7 install M2Crypto==0.38.0 ; \
- )
- @echo -e "\n======= Setup PIP2 build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "PIP2 := $(BUILDSYSTEM)/usr/bin/pip2" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/python2-modules/pip/20.3
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/pip/20.3 (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/pip/20.3 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2-modules/pip/20.3
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2-modules/pip
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules/pip (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules/pip (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2-modules/pip
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2-modules
===================================================================
--- build-system-1.10.x/3pp/app/python2-modules (revision 57)
+++ build-system-1.10.x/3pp/app/python2-modules (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2-modules
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0/Makefile (nonexistent)
@@ -1,47 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python-modules/m2crypto
-
-REQUIRES = build-system/3pp/app/python3-modules/setuptools/65.5.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 0.38.0
-tar_gz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python-modules/m2crypto/m2crypto-$(version).tar.gz
-SRC_ARCHIVE = $(tar_gz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/m2crypto-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../../build-system/core.mk
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py egg_info ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py build ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing M2Crypto-$(version) =======\n"
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py install --root=/ ; \
- )
- @touch $@
Index: build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0 (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules/m2crypto/0.38.0
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules/m2crypto
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/m2crypto (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/m2crypto (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules/m2crypto
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0/Makefile (nonexistent)
@@ -1,56 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python-modules/setuptools
-
-REQUIRES = build-system/3pp/app/python3/3.10.8
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 65.5.0
-tar_gz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python-modules/setuptools/setuptools-$(version).tar.gz
-SRC_ARCHIVE = $(tar_gz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/setuptools-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../../build-system/core.mk
-
-#
-# NOTE:
-# ====
-# Command `mkdir -p build/scripts-3.10` and install option --root=/ are needed to avoid
-# Python errors related to build procedure and deprecated easy_install utility.
-#
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- rm -f setuptools/*.exe ; \
- mkdir -p build/scripts-3.10 ; \
- sed -i 's,^tag_build.*,tag_build =,' setup.cfg ; \
- sed -i 's,^tag_date.*,tag_date = 0,' setup.cfg ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py egg_info ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing setuptools-$(version) =======\n"
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py install --root=/ ; \
- )
- @touch $@
Index: build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0 (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules/setuptools/65.5.0
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules/setuptools
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/setuptools (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/setuptools (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules/setuptools
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2/Makefile (nonexistent)
@@ -1,61 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python-modules/pip
-
-REQUIRES = build-system/3pp/app/python3-modules/m2crypto/0.38.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 22.2.2
-tar_gz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python-modules/pip/pip-$(version).tar.gz
-SRC_ARCHIVE = $(tar_gz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/pip-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../../build-system/core.mk
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py egg_info ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py build ; \
- )
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing setuptools-$(version) =======\n"
- @( cd $(SRC_DIR) ; \
- $(BUILDSYSTEM)/usr/bin/python3 setup.py install --root=/ ; \
- )
- @echo -e "\n======= Install Python3 wheel, PLY, pygments, cryptography packages =======\n"
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- rm -f pip ; ln -sf pip2 pip ; \
- ./pip3.10 install --upgrade wheel 2>/dev/null ; \
- ./pip3.10 install --upgrade ply 2>/dev/null ; \
- ./pip3.10 install --upgrade pygments 2>/dev/null ; \
- ./pip3.10 install --upgrade cryptography 2>/dev/null ; \
- ./pip3.10 install --upgrade Mako 2>/dev/null ; \
- ./pip3.10 install --upgrade Markdown 2>/dev/null ; \
- ./pip3.10 install --upgrade pyelftools 2>/dev/null ; \
- )
- @echo -e "\n======= Setup PIP3 build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "PIP3 := $(BUILDSYSTEM)/usr/bin/pip3" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2 (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules/pip/22.2.2
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules/pip
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules/pip (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules/pip (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules/pip
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3-modules
===================================================================
--- build-system-1.10.x/3pp/app/python3-modules (revision 57)
+++ build-system-1.10.x/3pp/app/python3-modules (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3-modules
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/perl-SGMLS/1.1/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/perl-SGMLS/1.1/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/perl-SGMLS/1.1/Makefile (nonexistent)
@@ -1,61 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/perl-SGMLS
-
-REQUIRES = build-system/3pp/app/perl/5.36.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 1.1
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/perl-SGMLS/perl-SGMLS-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/perl-SGMLS-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-build_environment = PERL_MM_USE_DEFAULT=1
-build_environment += PERL_AUTOINSTALL=--skipdeps
-build_environment += PERL_MM_OPT="INSTALLDIRS=vendor"
-build_environment += PERL_MB_OPT="--installdirs vendor"
-build_environment += MODULEBUILDRC=/dev/null
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @cd $(SRC_DIR) && $(build_environment) $(BUILDSYSTEM)/usr/bin/perl Makefile.PL
- @cd $(SRC_DIR) && $(MAKE)
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Install Required modules =======\n"
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- ./cpan-install Locale::gettext 2>/dev/null ; \
- ./cpan-install Text::WrapI18N 2>/dev/null ; \
- ./cpan-install Term::ReadKey 2>/dev/null ; \
- ./cpan-install SGML::Parser::OpenSP::Tools 2>/dev/null ; \
- ./cpan-install Docbook::Table 2>/dev/null ; \
- ./cpan-install Pod::DocBook 2>/dev/null ; \
- ./cpan-install Unicode::GCString 2>/dev/null ; \
- ./cpan-install YAML::Tiny 2>/dev/null ; \
- )
- @echo -e "\n======= Installing Perl SGMLS binaries =======\n"
- @cd $(SRC_DIR) && $(MAKE) -j1 install
- @touch $@
Index: build-system-1.10.x/3pp/app/perl-SGMLS/1.1
===================================================================
--- build-system-1.10.x/3pp/app/perl-SGMLS/1.1 (revision 57)
+++ build-system-1.10.x/3pp/app/perl-SGMLS/1.1 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/perl-SGMLS/1.1
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/perl-SGMLS
===================================================================
--- build-system-1.10.x/3pp/app/perl-SGMLS (revision 57)
+++ build-system-1.10.x/3pp/app/perl-SGMLS (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/perl-SGMLS
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2/2.7.18/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python2/2.7.18/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python2/2.7.18/Makefile (nonexistent)
@@ -1,110 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python2
-
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 2.7.18
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python2/Python-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/Python-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-LDFLAGS += -Wl,-rpath,$(BUILDSYSTEM)/usr/lib
-
-extra_configure_switches = --libdir=$(BUILDSYSTEM)/usr/lib
-extra_configure_switches += --bindir=$(BUILDSYSTEM)/usr/bin
-extra_configure_switches += --docdir=$(BUILDSYSTEM)/usr/share/doc/$(src_dir_name)
-extra_configure_switches += --mandir=$(BUILDSYSTEM)/usr/share/man
-extra_configure_switches += --with-system-expat
-extra_configure_switches += --with-system-ffi
-extra_configure_switches += --with-threads
-extra_configure_switches += --enable-ipv6
-extra_configure_switches += --enable-shared
-
-python_environment = RFS=$(BUILDSYSTEM)
-python_environment += PYTHONHOME=$(BUILDSYSTEM)/usr/lib/python2.7
-python_environment += LDFLAGS='$(LDFLAGS)'
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(build_target): $(src_done)
- @cd $(SRC_DIR) && $(python_environment) ./configure \
- --prefix=$(BUILDSYSTEM)/usr \
- --exec-prefix=$(BUILDSYSTEM)/usr \
- --build=$(BUILD) \
- --host=$(BUILD) \
- $(extra_configure_switches)
- @cd $(SRC_DIR) && $(python_environment) $(MAKE)
- @cd $(SRC_DIR) && $(python_environment) $(MAKE) Parser/pgen
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing Python 2.7 binary =======\n"
- @cd $(SRC_DIR) && $(MAKE) -j1 $(python_environment) install
- @cp -a $(SRC_DIR)/Parser/pgen $(BUILDSYSTEM)/usr/bin/
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- mv 2to3 2to3-2.7 ; ln -sf 2to3-2.7 2to3 ; \
- mv idle idle2.7 ; ln -sf idle2.7 idle2 ; ln -sf idle2 idle ; \
- mv pydoc pydoc2.7 ; ln -sf pydoc2.7 pydoc2 ; ln -sf pydoc2 pydoc; \
- mv pgen pgen2.7 ; ln -sf pgen2.7 pgen2 ; ln -sf pgen2 pgen ; \
- )
- @( cd $(BUILDSYSTEM)/usr/include/python2.7 ; \
- mv pyconfig.h pyconfig-64.h ; \
- echo '' > pyconfig.h ; \
- echo '/******************************' >> pyconfig.h ; \
- echo ' pyconfig.h - Multilib Header' >> pyconfig.h ; \
- echo ' ******************************/' >> pyconfig.h ; \
- echo '' >> pyconfig.h ; \
- echo '#ifndef __MULTILIB__PYCONFIG_H__' >> pyconfig.h ; \
- echo '#define __MULTILIB__PYCONFIG_H__' >> pyconfig.h ; \
- echo '' >> pyconfig.h ; \
- echo '#if defined(__x86_64__) || \' >> pyconfig.h ; \
- echo ' defined(__aarch64__) || \' >> pyconfig.h ; \
- echo ' defined(__powerpc64__) || \' >> pyconfig.h ; \
- echo ' defined(__sparc__) && defined(__arch64__) || \' >> pyconfig.h ; \
- echo ' defined(__riscv_xlen) && __riscv_xlen == 64' >> pyconfig.h ; \
- echo '#include "pyconfig-64.h"' >> pyconfig.h ; \
- echo '#else' >> pyconfig.h ; \
- echo '#include "pyconfig-32.h"' >> pyconfig.h ; \
- echo '#endif' >> pyconfig.h ; \
- echo '' >> pyconfig.h ; \
- echo '#endif /* __MULTILIB__PYCONFIG_H__ */' >> pyconfig.h ; \
- cat pyconfig-64.h | \
- sed -e 's,^\/\* #undef HAVE_LARGEFILE_SUPPORT \*\/,#define HAVE_LARGEFILE_SUPPORT 1,' \
- -e 's,^#define SIZEOF_LONG 8,#define SIZEOF_LONG 4,' \
- -e 's,^#define SIZEOF_LONG_DOUBLE 16,#define SIZEOF_LONG_DOUBLE 12,' \
- -e 's,^#define SIZEOF_PTHREAD_T 8,#define SIZEOF_PTHREAD_T 4,' \
- -e 's,^#define SIZEOF_OFF_T 8,#define SIZEOF_OFF_T 4,' \
- -e 's,^#define SIZEOF_SIZE_T 8,#define SIZEOF_SIZE_T 4,' \
- -e 's,^#define SIZEOF_TIME_T 8,#define SIZEOF_TIME_T 4,' \
- -e 's,^#define SIZEOF_UINTPTR_T 8,#define SIZEOF_UINTPTR_T 4,' \
- -e 's,^#define SIZEOF_VOID_P 8,#define SIZEOF_VOID_P 4,' \
- -e 's,^#define VA_LIST_IS_ARRAY 1,\/\* #undef VA_LIST_IS_ARRAY \*\/,' \
- > pyconfig-32.h ; \
- )
- @echo -e "\n======= Setup PYTHON2 build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "PYTHON2 := $(BUILDSYSTEM)/usr/bin/python2" >> $(BUILDSYSTEM)/sbin/.config ; \
- echo "PGEN2 := $(BUILDSYSTEM)/usr/bin/pgen2" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/python2/2.7.18
===================================================================
--- build-system-1.10.x/3pp/app/python2/2.7.18 (revision 57)
+++ build-system-1.10.x/3pp/app/python2/2.7.18 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2/2.7.18
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python2
===================================================================
--- build-system-1.10.x/3pp/app/python2 (revision 57)
+++ build-system-1.10.x/3pp/app/python2 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python2
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3/3.10.8/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/python3/3.10.8/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/python3/3.10.8/Makefile (nonexistent)
@@ -1,114 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/python3
-
-REQUIRES = build-system/3pp/app/python2-modules/pip/20.3
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 3.10.8
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python3/Python-$(version).tar.xz
-SRC_ARCHIVE = $(tar_xz_archive)
-SRC_DIR = $(TARGET_BUILD_DIR)/Python-$(version)
-src_done = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES = PATCHES
-
-build_target = $(TARGET_BUILD_DIR)/.built
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(build_target)
-BUILD_TARGETS += $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-LDFLAGS += -Wl,-rpath,$(BUILDSYSTEM)/usr/lib
-
-extra_configure_switches = --libdir=$(BUILDSYSTEM)/usr/lib
-extra_configure_switches += --bindir=$(BUILDSYSTEM)/usr/bin
-extra_configure_switches += --docdir=$(BUILDSYSTEM)/usr/share/doc/$(src_dir_name)
-extra_configure_switches += --mandir=$(BUILDSYSTEM)/usr/share/man
-extra_configure_switches += --with-system-expat
-extra_configure_switches += --with-system-ffi
-extra_configure_switches += --with-threads
-extra_configure_switches += --without-ensurepip
-extra_configure_switches += --enable-ipv6
-extra_configure_switches += --enable-shared
-
-python_environment = RFS=$(BUILDSYSTEM)
-python_environment += PYTHONHOME=$(BUILDSYSTEM)/usr/lib/python3.10
-python_environment += LDFLAGS='$(LDFLAGS)'
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @cd $(SRC_DIR) && sed -i 's|\("install",\)|\1 "--ignore-installed",|' Lib/ensurepip/__init__.py
- @touch $@
-
-$(build_target): $(src_done)
- @cd $(SRC_DIR) && $(python_environment) ./configure \
- --prefix=$(BUILDSYSTEM)/usr \
- --exec-prefix=$(BUILDSYSTEM)/usr \
- --build=$(BUILD) \
- --host=$(BUILD) \
- $(extra_configure_switches)
- @cd $(SRC_DIR) && $(python_environment) $(MAKE)
- @touch $@
-
-$(install_target): $(build_target)
- @echo -e "\n======= Installing Python 3.10 binary =======\n"
- @cd $(SRC_DIR) && $(MAKE) -j1 $(python_environment) install
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- ln -sf 2to3-2.7 2to3 ; \
- )
- @echo -e "\n======= tune python3.10-config CFLAGS for target machine =======\n"
- @( cd $(BUILDSYSTEM)/usr/bin ; \
- sed -i 's,includedir=$$(echo "$${prefix},includedir=$$(echo "/usr,g' python3.10-config ; \
- sed -i 's,LIBPL=$$(echo "$${prefix},LIBPL=$$(echo "/usr,g' python3.10-config ; \
- sed -i "s,$(BUILDSYSTEM),,g" python3.10-config ; \
- )
- @( cd $(BUILDSYSTEM)/usr/include/python3.10 ; \
- mv pyconfig.h pyconfig-64.h ; \
- echo '' > pyconfig.h ; \
- echo '/******************************' >> pyconfig.h ; \
- echo ' pyconfig.h - Multilib Header' >> pyconfig.h ; \
- echo ' ******************************/' >> pyconfig.h ; \
- echo '' >> pyconfig.h ; \
- echo '#ifndef __MULTILIB__PYCONFIG_H__' >> pyconfig.h ; \
- echo '#define __MULTILIB__PYCONFIG_H__' >> pyconfig.h ; \
- echo '' >> pyconfig.h ; \
- echo '#if defined(__x86_64__) || \' >> pyconfig.h ; \
- echo ' defined(__aarch64__) || \' >> pyconfig.h ; \
- echo ' defined(__powerpc64__) || \' >> pyconfig.h ; \
- echo ' defined(__sparc__) && defined(__arch64__) || \' >> pyconfig.h ; \
- echo ' defined(__riscv_xlen) && __riscv_xlen == 64' >> pyconfig.h ; \
- echo '#include "pyconfig-64.h"' >> pyconfig.h ; \
- echo '#else' >> pyconfig.h ; \
- echo '#include "pyconfig-32.h"' >> pyconfig.h ; \
- echo '#endif' >> pyconfig.h ; \
- echo '' >> pyconfig.h ; \
- echo '#endif /* __MULTILIB__PYCONFIG_H__ */' >> pyconfig.h ; \
- cat pyconfig-64.h | \
- sed -e 's,^#define HAVE_GCC_ASM_FOR_X64 1,\/\* #undef HAVE_GCC_ASM_FOR_X64 \*\/,' \
- -e 's,^#define HAVE_GCC_UINT128_T 1,/* #undef HAVE_GCC_UINT128_T */,' \
- -e 's,^\/\* #undef HAVE_LARGEFILE_SUPPORT \*\/,#define HAVE_LARGEFILE_SUPPORT 1,' \
- -e 's,^#define SIZEOF_LONG 8,#define SIZEOF_LONG 4,' \
- -e 's,^#define SIZEOF_LONG_DOUBLE 16,#define SIZEOF_LONG_DOUBLE 12,' \
- -e 's,^#define SIZEOF_PTHREAD_T 8,#define SIZEOF_PTHREAD_T 4,' \
- -e 's,^#define SIZEOF_OFF_T 8,#define SIZEOF_OFF_T 4,' \
- -e 's,^#define SIZEOF_SIZE_T 8,#define SIZEOF_SIZE_T 4,' \
- -e 's,^#define SIZEOF_TIME_T 8,#define SIZEOF_TIME_T 4,' \
- -e 's,^#define SIZEOF_UINTPTR_T 8,#define SIZEOF_UINTPTR_T 4,' \
- -e 's,^#define SIZEOF_VOID_P 8,#define SIZEOF_VOID_P 4,' \
- > pyconfig-32.h ; \
- )
- @echo -e "\n======= Setup PYTHON3 build-system variable =======\n"
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "PYTHON3 := $(BUILDSYSTEM)/usr/bin/python3" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/python3/3.10.8
===================================================================
--- build-system-1.10.x/3pp/app/python3/3.10.8 (revision 57)
+++ build-system-1.10.x/3pp/app/python3/3.10.8 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3/3.10.8
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/python3
===================================================================
--- build-system-1.10.x/3pp/app/python3 (revision 57)
+++ build-system-1.10.x/3pp/app/python3 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/python3
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/automake/1.16.5/Makefile
===================================================================
--- build-system-1.10.x/3pp/app/automake/1.16.5/Makefile (revision 57)
+++ build-system-1.10.x/3pp/app/automake/1.16.5/Makefile (nonexistent)
@@ -1,43 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../../../../build-system/constants.mk
-
-SOURCE_REQUIRES = build-system/3pp/sources/packages/automake
-
-
-# ======= __END_OF_REQUIRES__ =======
-
-version = 1.16.5
-tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/automake/automake-$(version).tar.xz
-src_dir = automake-$(version)
-
-src_done = $(TARGET_BUILD_DIR)/.source-done
-SRC_DIR = $(TARGET_BUILD_DIR)/automake-$(version)
-SRC_ARCHIVE = $(tar_xz_archive)
-
-PATCHES = PATCHES
-
-install_target = $(TARGET_BUILD_DIR)/.installed
-
-BUILD_TARGETS = $(install_target)
-
-
-include ../../../../../build-system/core.mk
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
- $(UNPACK_SRC_ARCHIVE)
- $(APPLY_PATCHES)
- @touch $@
-
-$(install_target): $(src_done)
- @echo -e "\n======= Installing Automake scripts =======\n"
- @mkdir -p $(BUILDSYSTEM)/usr/share/automake-$(version)
- @cd $(SRC_DIR)/lib ; \
- cp -a config.guess config.sub \
- $(BUILDSYSTEM)/usr/share/automake-$(version)
- @mkdir -p $(BUILDSYSTEM)/sbin && \
- echo "CONFIG_GUESS := $(BUILDSYSTEM)/usr/share/automake-$(version)/config.guess" >> $(BUILDSYSTEM)/sbin/.config && \
- echo "CONFIG_SUB := $(BUILDSYSTEM)/usr/share/automake-$(version)/config.sub" >> $(BUILDSYSTEM)/sbin/.config
- @touch $@
Index: build-system-1.10.x/3pp/app/automake/1.16.5
===================================================================
--- build-system-1.10.x/3pp/app/automake/1.16.5 (revision 57)
+++ build-system-1.10.x/3pp/app/automake/1.16.5 (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/automake/1.16.5
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app/automake
===================================================================
--- build-system-1.10.x/3pp/app/automake (revision 57)
+++ build-system-1.10.x/3pp/app/automake (nonexistent)
Property changes on: build-system-1.10.x/3pp/app/automake
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/app
===================================================================
--- build-system-1.10.x/3pp/app (revision 57)
+++ build-system-1.10.x/3pp/app (nonexistent)
Property changes on: build-system-1.10.x/3pp/app
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/genext2fs.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/genext2fs.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/genext2fs.c (nonexistent)
@@ -1,2721 +0,0 @@
-/* vi: set sw=8 ts=8: */
-// genext2fs.c
-//
-// ext2 filesystem generator for embedded systems
-// Copyright (C) 2000 Xavier Bestel <xavier.bestel@free.fr>
-//
-// Please direct support requests to genext2fs-devel@lists.sourceforge.net
-//
-// 'du' portions taken from coreutils/du.c in busybox:
-// Copyright (C) 1999,2000 by Lineo, inc. and John Beppu
-// Copyright (C) 1999,2000,2001 by John Beppu <beppu@codepoet.org>
-// Copyright (C) 2002 Edward Betts <edward@debian.org>
-//
-// 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; version
-// 2 of the License.
-//
-// Changes:
-// 3 Jun 2000 Initial release
-// 6 Jun 2000 Bugfix: fs size multiple of 8
-// Bugfix: fill blocks with inodes
-// 14 Jun 2000 Bugfix: bad chdir() with -d option
-// Bugfix: removed size=8n constraint
-// Changed -d file to -f file
-// Added -e option
-// 22 Jun 2000 Changed types for 64bits archs
-// 24 Jun 2000 Added endianness swap
-// Bugfix: bad dir name lookup
-// 03 Aug 2000 Bugfix: ind. blocks endian swap
-// 09 Aug 2000 Bugfix: symlinks endian swap
-// 01 Sep 2000 Bugfix: getopt returns int, not char proski@gnu.org
-// 10 Sep 2000 Bugfix: device nodes endianness xavier.gueguen@col.bsf.alcatel.fr
-// Bugfix: getcwd values for Solaris xavier.gueguen@col.bsf.alcatel.fr
-// Bugfix: ANSI scanf for non-GNU C xavier.gueguen@col.bsf.alcatel.fr
-// 28 Jun 2001 Bugfix: getcwd differs for Solaris/GNU mike@sowbug.com
-// 8 Mar 2002 Bugfix: endianness swap of x-indirects
-// 23 Mar 2002 Bugfix: test for IFCHR or IFBLK was flawed
-// 10 Oct 2002 Added comments,makefile targets, vsundar@ixiacom.com
-// endianess swap assert check.
-// Copyright (C) 2002 Ixia communications
-// 12 Oct 2002 Added support for triple indirection vsundar@ixiacom.com
-// Copyright (C) 2002 Ixia communications
-// 14 Oct 2002 Added support for groups vsundar@ixiacom.com
-// Copyright (C) 2002 Ixia communications
-// 5 Jan 2003 Bugfixes: reserved inodes should be set vsundar@usc.edu
-// only in the first group; directory names
-// need to be null padded at the end; and
-// number of blocks per group should be a
-// multiple of 8. Updated md5 values.
-// 6 Jan 2003 Erik Andersen <andersee@debian.org> added
-// mkfs.jffs2 compatible device table support,
-// along with -q, -P, -U
-
-
-#include <config.h>
-#include <stdio.h>
-
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if MAJOR_IN_MKDEV
-# include <sys/mkdev.h>
-#elif MAJOR_IN_SYSMACROS
-# include <sys/sysmacros.h>
-#endif
-
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-# if HAVE_STDDEF_H
-# include <stddef.h>
-# endif
-#endif
-
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-#if HAVE_LIBGEN_H
-# include <libgen.h>
-#endif
-
-#include <stdarg.h>
-#include <assert.h>
-#include <time.h>
-#include <ctype.h>
-#include <errno.h>
-
-#if HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-
-#if HAVE_GETOPT_H
-# include <getopt.h>
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-struct stats {
- unsigned long nblocks;
- unsigned long ninodes;
-};
-
-// block size
-
-static int blocksize = 1024;
-
-#define BLOCKSIZE blocksize
-#define BLOCKS_PER_GROUP 8192
-#define INODES_PER_GROUP 8192
-/* Percentage of blocks that are reserved.*/
-#define RESERVED_BLOCKS 5/100
-#define MAX_RESERVED_BLOCKS 25/100
-
-/* The default value for s_creator_os. */
-#if defined(__GNU__)
-# define CREATOR_OS 1 /* Hurd */
-#elif defined(__FreeBSD__)
-# define CREATOR_OS 3 /* FreeBSD */
-#else
-# define CREATOR_OS 0 /* Linux */
-#endif
-
-
-// inode block size (why is it != BLOCKSIZE ?!?)
-/* The field i_blocks in the ext2 inode stores the number of data blocks
- but in terms of 512 bytes. That is what INODE_BLOCKSIZE represents.
- INOBLK is the number of such blocks in an actual disk block */
-
-#define INODE_BLOCKSIZE 512
-#define INOBLK (BLOCKSIZE / INODE_BLOCKSIZE)
-
-// reserved inodes
-
-#define EXT2_BAD_INO 1 // Bad blocks inode
-#define EXT2_ROOT_INO 2 // Root inode
-#define EXT2_ACL_IDX_INO 3 // ACL inode
-#define EXT2_ACL_DATA_INO 4 // ACL inode
-#define EXT2_BOOT_LOADER_INO 5 // Boot loader inode
-#define EXT2_UNDEL_DIR_INO 6 // Undelete directory inode
-#define EXT2_FIRST_INO 11 // First non reserved inode
-
-// magic number for ext2
-
-#define EXT2_MAGIC_NUMBER 0xEF53
-
-
-// direct/indirect block addresses
-
-#define EXT2_NDIR_BLOCKS 11 // direct blocks
-#define EXT2_IND_BLOCK 12 // indirect block
-#define EXT2_DIND_BLOCK 13 // double indirect block
-#define EXT2_TIND_BLOCK 14 // triple indirect block
-#define EXT2_INIT_BLOCK 0xFFFFFFFF // just initialized (not really a block address)
-
-// end of a block walk
-
-#define WALK_END 0xFFFFFFFE
-
-// file modes
-
-#define FM_IFMT 0170000 // format mask
-#define FM_IFSOCK 0140000 // socket
-#define FM_IFLNK 0120000 // symbolic link
-#define FM_IFREG 0100000 // regular file
-
-#define FM_IFBLK 0060000 // block device
-#define FM_IFDIR 0040000 // directory
-#define FM_IFCHR 0020000 // character device
-#define FM_IFIFO 0010000 // fifo
-
-#define FM_IMASK 0007777 // *all* perms mask for everything below
-
-#define FM_ISUID 0004000 // SUID
-#define FM_ISGID 0002000 // SGID
-#define FM_ISVTX 0001000 // sticky bit
-
-#define FM_IRWXU 0000700 // entire "user" mask
-#define FM_IRUSR 0000400 // read
-#define FM_IWUSR 0000200 // write
-#define FM_IXUSR 0000100 // execute
-
-#define FM_IRWXG 0000070 // entire "group" mask
-#define FM_IRGRP 0000040 // read
-#define FM_IWGRP 0000020 // write
-#define FM_IXGRP 0000010 // execute
-
-#define FM_IRWXO 0000007 // entire "other" mask
-#define FM_IROTH 0000004 // read
-#define FM_IWOTH 0000002 // write
-#define FM_IXOTH 0000001 // execute
-
-// options
-
-#define OP_HOLES 0x01 // make files with holes
-
-/* Defines for accessing group details */
-
-// Number of groups in the filesystem
-#define GRP_NBGROUPS(fs) \
- (((fs)->sb.s_blocks_count - fs->sb.s_first_data_block + \
- (fs)->sb.s_blocks_per_group - 1) / (fs)->sb.s_blocks_per_group)
-
-// Get group block bitmap (bbm) given the group number
-#define GRP_GET_GROUP_BBM(fs,grp) ( get_blk((fs), get_gd((fs),(grp))->bg_block_bitmap) )
-
-// Get group inode bitmap (ibm) given the group number
-#define GRP_GET_GROUP_IBM(fs,grp) ( get_blk((fs), get_gd((fs),(grp))->bg_inode_bitmap) )
-
-// Given an inode number find the group it belongs to
-#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group)
-
-//Given an inode number get the inode bitmap that covers it
-#define GRP_GET_INODE_BITMAP(fs,nod) \
- ( GRP_GET_GROUP_IBM((fs),GRP_GROUP_OF_INODE((fs),(nod))) )
-
-//Given an inode number find its offset within the inode bitmap that covers it
-#define GRP_IBM_OFFSET(fs,nod) \
- ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group )
-
-// Given a block number find the group it belongs to
-#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group)
-
-//Given a block number get the block bitmap that covers it
-#define GRP_GET_BLOCK_BITMAP(fs,blk) \
- ( GRP_GET_GROUP_BBM((fs),GRP_GROUP_OF_BLOCK((fs),(blk))) )
-
-//Given a block number find its offset within the block bitmap that covers it
-#define GRP_BBM_OFFSET(fs,blk) \
- ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group )
-
-
-// used types
-
-typedef signed char int8;
-typedef unsigned char uint8;
-typedef signed short int16;
-typedef unsigned short uint16;
-typedef signed int int32;
-typedef unsigned int uint32;
-
-
-// the GNU C library has a wonderful scanf("%as", string) which will
-// allocate the string with the right size, good to avoid buffer
-// overruns. the following macros use it if available or use a
-// hacky workaround
-// moreover it will define a snprintf() like a sprintf(), i.e.
-// without the buffer overrun checking, to work around bugs in
-// older solaris. Note that this is still not very portable, in that
-// the return value cannot be trusted.
-
-#if 0 /* SCANF_CAN_MALLOC */
-/* C99 define "a" for floating point, so you can have
- runtime surprise according the library versions */
-# define SCANF_PREFIX "a"
-# define SCANF_STRING(s) (&s)
-#else
-# define SCANF_PREFIX "511"
-# define SCANF_STRING(s) (s = malloc(512))
-#endif /* SCANF_CAN_MALLOC */
-
-#if PREFER_PORTABLE_SNPRINTF
-static inline int
-portable_snprintf(char *str, size_t n, const char *fmt, ...)
-{
- int ret;
- va_list ap;
- va_start(ap, fmt);
- ret = vsprintf(str, fmt, ap);
- va_end(ap);
- return ret;
-}
-# define SNPRINTF portable_snprintf
-#else
-# define SNPRINTF snprintf
-#endif /* PREFER_PORTABLE_SNPRINTF */
-
-#if !HAVE_GETLINE
-// getline() replacement for Darwin and Solaris etc.
-// This code uses backward seeks (unless rchunk is set to 1) which can't work
-// on pipes etc. However, add2fs_from_file() only calls getline() for
-// regular files, so a larger rchunk and backward seeks are okay.
-
-ssize_t
-getdelim(char **lineptr, size_t *n, int delim, FILE *stream)
-{
- char *p; // reads stored here
- size_t const rchunk = 512; // number of bytes to read
- size_t const mchunk = 512; // number of extra bytes to malloc
- size_t m = rchunk + 1; // initial buffer size
-
- if (*lineptr) {
- if (*n < m) {
- *lineptr = (char*)realloc(*lineptr, m);
- if (!*lineptr) return -1;
- *n = m;
- }
- } else {
- *lineptr = (char*)malloc(m);
- if (!*lineptr) return -1;
- *n = m;
- }
-
- m = 0; // record length including seperator
-
- do {
- size_t i; // number of bytes read etc
- size_t j = 0; // number of bytes searched
-
- p = *lineptr + m;
-
- i = fread(p, 1, rchunk, stream);
- if (i < rchunk && ferror(stream))
- return -1;
- while (j < i) {
- ++j;
- if (*p++ == (char)delim) {
- *p = '\0';
- if (j != i) {
- if (fseek(stream, j - i, SEEK_CUR))
- return -1;
- if (feof(stream))
- clearerr(stream);
- }
- m += j;
- return m;
- }
- }
-
- m += j;
- if (feof(stream)) {
- if (m) return m;
- if (!i) return -1;
- }
-
- // allocate space for next read plus possible null terminator
- i = ((m + (rchunk + 1 > mchunk ? rchunk + 1 : mchunk) +
- mchunk - 1) / mchunk) * mchunk;
- if (i != *n) {
- *lineptr = (char*)realloc(*lineptr, i);
- if (!*lineptr) return -1;
- *n = i;
- }
- } while (1);
-}
-#define getline(a,b,c) getdelim(a,b,'\n',c)
-#endif /* HAVE_GETLINE */
-
-// Convert a numerical string to a float, and multiply the result by an
-// IEC or SI multiplier if provided; supported multipliers are Ki, Mi, Gi, k, M
-// and G.
-
-float
-SI_atof(const char *nptr)
-{
- float f = 0;
- float m = 1;
- char *suffixptr;
-
-#if HAVE_STRTOF
- f = strtof(nptr, &suffixptr);
-#else
- f = (float)strtod(nptr, &suffixptr);
-#endif /* HAVE_STRTOF */
-
- if (*suffixptr) {
- if (!strcmp(suffixptr, "Ki"))
- m = 1 << 10;
- else if (!strcmp(suffixptr, "Mi"))
- m = 1 << 20;
- else if (!strcmp(suffixptr, "Gi"))
- m = 1 << 30;
- else if (!strcmp(suffixptr, "k"))
- m = 1000;
- else if (!strcmp(suffixptr, "M"))
- m = 1000 * 1000;
- else if (!strcmp(suffixptr, "G"))
- m = 1000 * 1000 * 1000;
- }
- return f * m;
-}
-
-// endianness swap
-
-static inline uint16
-swab16(uint16 val)
-{
- return (val >> 8) | (val << 8);
-}
-
-static inline uint32
-swab32(uint32 val)
-{
- return ((val>>24) | ((val>>8)&0xFF00) |
- ((val<<8)&0xFF0000) | (val<<24));
-}
-
-
-// on-disk structures
-// this trick makes me declare things only once
-// (once for the structures, once for the endianness swap)
-
-#define superblock_decl \
- udecl32(s_inodes_count) /* Count of inodes in the filesystem */ \
- udecl32(s_blocks_count) /* Count of blocks in the filesystem */ \
- udecl32(s_r_blocks_count) /* Count of the number of reserved blocks */ \
- udecl32(s_free_blocks_count) /* Count of the number of free blocks */ \
- udecl32(s_free_inodes_count) /* Count of the number of free inodes */ \
- udecl32(s_first_data_block) /* The first block which contains data */ \
- udecl32(s_log_block_size) /* Indicator of the block size */ \
- decl32(s_log_frag_size) /* Indicator of the size of the fragments */ \
- udecl32(s_blocks_per_group) /* Count of the number of blocks in each block group */ \
- udecl32(s_frags_per_group) /* Count of the number of fragments in each block group */ \
- udecl32(s_inodes_per_group) /* Count of the number of inodes in each block group */ \
- udecl32(s_mtime) /* The time that the filesystem was last mounted */ \
- udecl32(s_wtime) /* The time that the filesystem was last written to */ \
- udecl16(s_mnt_count) /* The number of times the file system has been mounted */ \
- decl16(s_max_mnt_count) /* The number of times the file system can be mounted */ \
- udecl16(s_magic) /* Magic number indicating ex2fs */ \
- udecl16(s_state) /* Flags indicating the current state of the filesystem */ \
- udecl16(s_errors) /* Flags indicating the procedures for error reporting */ \
- udecl16(s_minor_rev_level) /* The minor revision level of the filesystem */ \
- udecl32(s_lastcheck) /* The time that the filesystem was last checked */ \
- udecl32(s_checkinterval) /* The maximum time permissable between checks */ \
- udecl32(s_creator_os) /* Indicator of which OS created the filesystem */ \
- udecl32(s_rev_level) /* The revision level of the filesystem */ \
- udecl16(s_def_resuid) /* The default uid for reserved blocks */ \
- udecl16(s_def_resgid) /* The default gid for reserved blocks */
-
-#define groupdescriptor_decl \
- udecl32(bg_block_bitmap) /* Block number of the block bitmap */ \
- udecl32(bg_inode_bitmap) /* Block number of the inode bitmap */ \
- udecl32(bg_inode_table) /* Block number of the inode table */ \
- udecl16(bg_free_blocks_count) /* Free blocks in the group */ \
- udecl16(bg_free_inodes_count) /* Free inodes in the group */ \
- udecl16(bg_used_dirs_count) /* Number of directories in the group */ \
- udecl16(bg_pad)
-
-#define inode_decl \
- udecl16(i_mode) /* Entry type and file mode */ \
- udecl16(i_uid) /* User id */ \
- udecl32(i_size) /* File/dir size in bytes */ \
- udecl32(i_atime) /* Last access time */ \
- udecl32(i_ctime) /* Creation time */ \
- udecl32(i_mtime) /* Last modification time */ \
- udecl32(i_dtime) /* Deletion time */ \
- udecl16(i_gid) /* Group id */ \
- udecl16(i_links_count) /* Number of (hard) links to this inode */ \
- udecl32(i_blocks) /* Number of blocks used (1 block = 512 bytes) */ \
- udecl32(i_flags) /* ??? */ \
- udecl32(i_reserved1) \
- utdecl32(i_block,15) /* Blocks table */ \
- udecl32(i_version) /* ??? */ \
- udecl32(i_file_acl) /* File access control list */ \
- udecl32(i_dir_acl) /* Directory access control list */ \
- udecl32(i_faddr) /* Fragment address */ \
- udecl8(i_frag) /* Fragments count*/ \
- udecl8(i_fsize) /* Fragment size */ \
- udecl16(i_pad1)
-
-#define directory_decl \
- udecl32(d_inode) /* Inode entry */ \
- udecl16(d_rec_len) /* Total size on record */ \
- udecl16(d_name_len) /* Size of entry name */
-
-#define decl8(x) int8 x;
-#define udecl8(x) uint8 x;
-#define decl16(x) int16 x;
-#define udecl16(x) uint16 x;
-#define decl32(x) int32 x;
-#define udecl32(x) uint32 x;
-#define utdecl32(x,n) uint32 x[n];
-
-typedef struct
-{
- superblock_decl
- uint32 s_reserved[235]; // Reserved
-} superblock;
-
-typedef struct
-{
- groupdescriptor_decl
- uint32 bg_reserved[3];
-} groupdescriptor;
-
-typedef struct
-{
- inode_decl
- uint32 i_reserved2[2];
-} inode;
-
-typedef struct
-{
- directory_decl
- char d_name[0];
-} directory;
-
-typedef uint8 *block;
-
-/* blockwalker fields:
- The blockwalker is used to access all the blocks of a file (including
- the indirection blocks) through repeated calls to walk_bw.
-
- bpdir -> index into the inode->i_block[]. Indicates level of indirection.
- bnum -> total number of blocks so far accessed. including indirection
- blocks.
- bpind,bpdind,bptind -> index into indirection blocks.
-
- bpind, bpdind, bptind do *NOT* index into single, double and triple
- indirect blocks resp. as you might expect from their names. Instead
- they are in order the 1st, 2nd & 3rd index to be used
-
- As an example..
- To access data block number 70000:
- bpdir: 15 (we are doing triple indirection)
- bpind: 0 ( index into the triple indirection block)
- bpdind: 16 ( index into the double indirection block)
- bptind: 99 ( index into the single indirection block)
- 70000 = 12 + 256 + 256*256 + 16*256 + 100 (indexing starts from zero)
-
- So,for double indirection bpind will index into the double indirection
- block and bpdind into the single indirection block. For single indirection
- only bpind will be used.
-*/
-
-typedef struct
-{
- uint32 bnum;
- uint32 bpdir;
- uint32 bpind;
- uint32 bpdind;
- uint32 bptind;
-} blockwalker;
-
-
-/* Filesystem structure that support groups */
-typedef struct
-{
- uint8 zero[1024]; // Room for bootloader stuff
- superblock sb; // The superblock, always at 1024
- // group descriptors come next, see get_gd() below
-} filesystem;
-
-// now the endianness swap
-
-#undef decl8
-#undef udecl8
-#undef decl16
-#undef udecl16
-#undef decl32
-#undef udecl32
-#undef utdecl32
-
-#define decl8(x)
-#define udecl8(x)
-#define decl16(x) this->x = swab16(this->x);
-#define udecl16(x) this->x = swab16(this->x);
-#define decl32(x) this->x = swab32(this->x);
-#define udecl32(x) this->x = swab32(this->x);
-#define utdecl32(x,n) { int i; for(i=0; i<n; i++) this->x[i] = swab32(this->x[i]); }
-
-#define HDLINK_CNT 16
-static int32 hdlink_cnt = HDLINK_CNT;
-struct hdlink_s
-{
- uint32 src_inode;
- uint32 dst_nod;
-};
-
-struct hdlinks_s
-{
- int32 count;
- struct hdlink_s *hdl;
-};
-
-static struct hdlinks_s hdlinks;
-
-static void
-swap_sb(superblock *sb)
-{
-#define this sb
- superblock_decl
-#undef this
-}
-
-static void
-swap_gd(groupdescriptor *gd)
-{
-#define this gd
- groupdescriptor_decl
-#undef this
-}
-
-static void
-swap_nod(inode *nod)
-{
-#define this nod
- inode_decl
-#undef this
-}
-
-static void
-swap_dir(directory *dir)
-{
-#define this dir
- directory_decl
-#undef this
-}
-
-static void
-swap_block(block b)
-{
- int i;
- uint32 *blk = (uint32*)b;
- for(i = 0; i < BLOCKSIZE/4; i++)
- blk[i] = swab32(blk[i]);
-}
-
-#undef decl8
-#undef udecl8
-#undef decl16
-#undef udecl16
-#undef decl32
-#undef udecl32
-#undef utdecl32
-
-static char * app_name;
-static const char *const memory_exhausted = "memory exhausted";
-
-// error (un)handling
-static void
-verror_msg(const char *s, va_list p)
-{
- fflush(stdout);
- fprintf(stderr, "%s: ", app_name);
- vfprintf(stderr, s, p);
-}
-static void
-error_msg(const char *s, ...)
-{
- va_list p;
- va_start(p, s);
- verror_msg(s, p);
- va_end(p);
- putc('\n', stderr);
-}
-
-static void
-error_msg_and_die(const char *s, ...)
-{
- va_list p;
- va_start(p, s);
- verror_msg(s, p);
- va_end(p);
- putc('\n', stderr);
- exit(EXIT_FAILURE);
-}
-
-static void
-vperror_msg(const char *s, va_list p)
-{
- int err = errno;
- if (s == 0)
- s = "";
- verror_msg(s, p);
- if (*s)
- s = ": ";
- fprintf(stderr, "%s%s\n", s, strerror(err));
-}
-
-static void
-perror_msg_and_die(const char *s, ...)
-{
- va_list p;
- va_start(p, s);
- vperror_msg(s, p);
- va_end(p);
- exit(EXIT_FAILURE);
-}
-
-static FILE *
-xfopen(const char *path, const char *mode)
-{
- FILE *fp;
- if ((fp = fopen(path, mode)) == NULL)
- perror_msg_and_die("%s", path);
- return fp;
-}
-
-static char *
-xstrdup(const char *s)
-{
- char *t;
-
- if (s == NULL)
- return NULL;
- t = strdup(s);
- if (t == NULL)
- error_msg_and_die(memory_exhausted);
- return t;
-}
-
-static void *
-xrealloc(void *ptr, size_t size)
-{
- ptr = realloc(ptr, size);
- if (ptr == NULL && size != 0)
- error_msg_and_die(memory_exhausted);
- return ptr;
-}
-
-static char *
-xreadlink(const char *path)
-{
- static const int GROWBY = 80; /* how large we will grow strings by */
-
- char *buf = NULL;
- int bufsize = 0, readsize = 0;
-
- do {
- buf = xrealloc(buf, bufsize += GROWBY);
- readsize = readlink(path, buf, bufsize); /* 1st try */
- if (readsize == -1) {
- perror_msg_and_die("%s:%s", app_name, path);
- }
- }
- while (bufsize < readsize + 1);
-
- buf[readsize] = '\0';
- return buf;
-}
-
-int
-is_hardlink(ino_t inode)
-{
- int i;
-
- for(i = 0; i < hdlinks.count; i++) {
- if(hdlinks.hdl[i].src_inode == inode)
- return i;
- }
- return -1;
-}
-
-// printf helper macro
-#define plural(a) (a), ((a) > 1) ? "s" : ""
-
-// temporary working block
-static inline uint8 *
-get_workblk(void)
-{
- unsigned char* b=calloc(1,BLOCKSIZE);
- return b;
-}
-static inline void
-free_workblk(block b)
-{
- free(b);
-}
-
-/* Rounds qty upto a multiple of siz. siz should be a power of 2 */
-static inline uint32
-rndup(uint32 qty, uint32 siz)
-{
- return (qty + (siz - 1)) & ~(siz - 1);
-}
-
-// check if something is allocated in the bitmap
-static inline uint32
-allocated(block b, uint32 item)
-{
- return b[(item-1) / 8] & (1 << ((item-1) % 8));
-}
-
-// return a given block from a filesystem
-static inline uint8 *
-get_blk(filesystem *fs, uint32 blk)
-{
- return (uint8*)fs + blk*BLOCKSIZE;
-}
-
-// the group descriptors are aligned on the block size
-static inline groupdescriptor *
-get_gd(filesystem *fs, int no)
-{
- int gdblk = (sizeof (filesystem) + BLOCKSIZE - 1) / BLOCKSIZE;
- return ((groupdescriptor *) get_blk(fs, gdblk)) + no;
-}
-
-// return a given inode from a filesystem
-static inline inode *
-get_nod(filesystem *fs, uint32 nod)
-{
- int grp,offset;
- inode *itab;
-
- offset = GRP_IBM_OFFSET(fs,nod);
- grp = GRP_GROUP_OF_INODE(fs,nod);
- itab = (inode *)get_blk(fs, get_gd(fs,grp)->bg_inode_table);
- return itab+offset-1;
-}
-
-// allocate a given block/inode in the bitmap
-// allocate first free if item == 0
-static uint32
-allocate(block b, uint32 item)
-{
- if(!item)
- {
- int i;
- uint8 bits;
- for(i = 0; i < BLOCKSIZE; i++)
- if((bits = b[i]) != (uint8)-1)
- {
- int j;
- for(j = 0; j < 8; j++)
- if(!(bits & (1 << j)))
- break;
- item = i * 8 + j + 1;
- break;
- }
- if(i == BLOCKSIZE)
- return 0;
- }
- b[(item-1) / 8] |= (1 << ((item-1) % 8));
- return item;
-}
-
-// deallocate a given block/inode
-static void
-deallocate(block b, uint32 item)
-{
- b[(item-1) / 8] &= ~(1 << ((item-1) % 8));
-}
-
-// allocate a block
-static uint32
-alloc_blk(filesystem *fs, uint32 nod)
-{
- uint32 bk=0;
- uint32 grp,nbgroups;
-
- grp = GRP_GROUP_OF_INODE(fs,nod);
- nbgroups = GRP_NBGROUPS(fs);
- if(!(bk = allocate(GRP_GET_GROUP_BBM(fs, grp), 0))) {
- for(grp=0;grp<nbgroups && !bk;grp++)
- bk = allocate(GRP_GET_GROUP_BBM(fs, grp), 0);
- grp--;
- }
- if (!bk)
- error_msg_and_die("couldn't allocate a block (no free space)");
- if(!(get_gd(fs, grp)->bg_free_blocks_count--))
- error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp);
- if(!(fs->sb.s_free_blocks_count--))
- error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
- return fs->sb.s_first_data_block + fs->sb.s_blocks_per_group*grp + (bk-1);
-}
-
-// free a block
-static void
-free_blk(filesystem *fs, uint32 bk)
-{
- uint32 grp;
-
- grp = bk / fs->sb.s_blocks_per_group;
- bk %= fs->sb.s_blocks_per_group;
- deallocate(GRP_GET_GROUP_BBM(fs, grp), bk);
- get_gd(fs, grp)->bg_free_blocks_count++;
- fs->sb.s_free_blocks_count++;
-}
-
-// allocate an inode
-static uint32
-alloc_nod(filesystem *fs)
-{
- uint32 nod,best_group=0;
- uint32 grp,nbgroups,avefreei;
-
- nbgroups = GRP_NBGROUPS(fs);
-
- /* Distribute inodes amongst all the blocks */
- /* For every block group with more than average number of free inodes */
- /* find the one with the most free blocks and allocate node there */
- /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */
- /* We do it for all inodes. */
- avefreei = fs->sb.s_free_inodes_count / nbgroups;
- for(grp=0; grp<nbgroups; grp++) {
- if (get_gd(fs, grp)->bg_free_inodes_count < avefreei ||
- get_gd(fs, grp)->bg_free_inodes_count == 0)
- continue;
- if (!best_group ||
- get_gd(fs, grp)->bg_free_blocks_count > get_gd(fs, best_group)->bg_free_blocks_count)
- best_group = grp;
- }
- if (!(nod = allocate(GRP_GET_GROUP_IBM(fs, best_group), 0)))
- error_msg_and_die("couldn't allocate an inode (no free inode)");
- if(!(get_gd(fs, best_group)->bg_free_inodes_count--))
- error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)");
- if(!(fs->sb.s_free_inodes_count--))
- error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
- return fs->sb.s_inodes_per_group*best_group+nod;
-}
-
-// print a bitmap allocation
-static void
-print_bm(block b, uint32 max)
-{
- uint32 i;
- printf("----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0\n");
- for(i=1; i <= max; i++)
- {
- putchar(allocated(b, i) ? '*' : '.');
- if(!(i % 100))
- printf("\n");
- }
- if((i-1) % 100)
- printf("\n");
-}
-
-// initalize a blockwalker (iterator for blocks list)
-static inline void
-init_bw(blockwalker *bw)
-{
- bw->bnum = 0;
- bw->bpdir = EXT2_INIT_BLOCK;
-}
-
-// return next block of inode (WALK_END for end)
-// if *create>0, append a newly allocated block at the end
-// if *create<0, free the block - warning, the metadata blocks contents is
-// used after being freed, so once you start
-// freeing blocks don't stop until the end of
-// the file. moreover, i_blocks isn't updated.
-// in fact, don't do that, just use extend_blk
-// if hole!=0, create a hole in the file
-static uint32
-walk_bw(filesystem *fs, uint32 nod, blockwalker *bw, int32 *create, uint32 hole)
-{
- uint32 *bkref = 0;
- uint32 *b;
- int extend = 0, reduce = 0;
- if(create && (*create) < 0)
- reduce = 1;
- if(bw->bnum >= get_nod(fs, nod)->i_blocks / INOBLK)
- {
- if(create && (*create) > 0)
- {
- (*create)--;
- extend = 1;
- }
- else
- return WALK_END;
- }
- // first direct block
- if(bw->bpdir == EXT2_INIT_BLOCK)
- {
- bkref = &get_nod(fs, nod)->i_block[bw->bpdir = 0];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
- // direct block
- else if(bw->bpdir < EXT2_NDIR_BLOCKS)
- {
- bkref = &get_nod(fs, nod)->i_block[++bw->bpdir];
- if(extend) // allocate block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free block
- free_blk(fs, *bkref);
- }
- // first block in indirect block
- else if(bw->bpdir == EXT2_NDIR_BLOCKS)
- {
- bw->bnum++;
- bw->bpdir = EXT2_IND_BLOCK;
- bw->bpind = 0;
- if(extend) // allocate indirect block
- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- bkref = &b[bw->bpind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
- // block in indirect block
- else if((bw->bpdir == EXT2_IND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
- {
- bw->bpind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- bkref = &b[bw->bpind];
- if(extend) // allocate block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free block
- free_blk(fs, *bkref);
- }
- // first block in first indirect block in first double indirect block
- else if(bw->bpdir == EXT2_IND_BLOCK)
- {
- bw->bnum += 2;
- bw->bpdir = EXT2_DIND_BLOCK;
- bw->bpind = 0;
- bw->bpdind = 0;
- if(extend) // allocate double indirect block
- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
- if(reduce) // free double indirect block
- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- if(extend) // allocate first indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free firstindirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- bkref = &b[bw->bpdind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
- // block in indirect block in double indirect block
- else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpdind < BLOCKSIZE/4 - 1))
- {
- bw->bpdind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- bkref = &b[bw->bpdind];
- if(extend) // allocate block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free block
- free_blk(fs, *bkref);
- }
- // first block in indirect block in double indirect block
- else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
- {
- bw->bnum++;
- bw->bpdind = 0;
- bw->bpind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- if(extend) // allocate indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- bkref = &b[bw->bpdind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
-
- /* Adding support for triple indirection */
- /* Just starting triple indirection. Allocate the indirection
- blocks and the first data block
- */
- else if (bw->bpdir == EXT2_DIND_BLOCK)
- {
- bw->bnum += 3;
- bw->bpdir = EXT2_TIND_BLOCK;
- bw->bpind = 0;
- bw->bpdind = 0;
- bw->bptind = 0;
- if(extend) // allocate triple indirect block
- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
- if(reduce) // free triple indirect block
- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- if(extend) // allocate first double indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free first double indirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- if(extend) // allocate first indirect block
- b[bw->bpdind] = alloc_blk(fs,nod);
- if(reduce) // free first indirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpdind]);
- bkref = &b[bw->bptind];
- if(extend) // allocate first data block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
- /* Still processing a single indirect block down the indirection
- chain.Allocate a data block for it
- */
- else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
- (bw->bptind < BLOCKSIZE/4 -1) )
- {
- bw->bptind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpdind]);
- bkref = &b[bw->bptind];
- if(extend) // allocate data block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free block
- free_blk(fs, *bkref);
- }
- /* Finished processing a single indirect block. But still in the
- same double indirect block. Allocate new single indirect block
- for it and a data block
- */
- else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
- (bw->bpdind < BLOCKSIZE/4 -1) )
- {
- bw->bnum++;
- bw->bptind = 0;
- bw->bpdind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- if(extend) // allocate single indirect block
- b[bw->bpdind] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpdind]);
- bkref = &b[bw->bptind];
- if(extend) // allocate first data block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
- /* Finished processing a double indirect block. Allocate the next
- double indirect block and the single,data blocks for it
- */
- else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
- (bw->bpind < BLOCKSIZE/4 - 1) )
- {
- bw->bnum += 2;
- bw->bpdind = 0;
- bw->bptind = 0;
- bw->bpind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- if(extend) // allocate double indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free double indirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- if(extend) // allocate single indirect block
- b[bw->bpdind] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, b[bw->bpind]);
- b = (uint32*)get_blk(fs, b[bw->bpdind]);
- bkref = &b[bw->bptind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
- free_blk(fs, *bkref);
- }
- else
- error_msg_and_die("file too big !");
- /* End change for walking triple indirection */
-
- if(*bkref)
- {
- bw->bnum++;
- if(!reduce && !allocated(GRP_GET_BLOCK_BITMAP(fs,*bkref), GRP_BBM_OFFSET(fs,*bkref)))
- error_msg_and_die("[block %d of inode %d is unallocated !]", *bkref, nod);
- }
- if(extend)
- get_nod(fs, nod)->i_blocks = bw->bnum * INOBLK;
- return *bkref;
-}
-
-// add blocks to an inode (file/dir/etc...)
-static void
-extend_blk(filesystem *fs, uint32 nod, block b, int amount)
-{
- int create = amount;
- blockwalker bw, lbw;
- uint32 bk;
- init_bw(&bw);
- if(amount < 0)
- {
- uint32 i;
- for(i = 0; i < get_nod(fs, nod)->i_blocks / INOBLK + amount; i++)
- walk_bw(fs, nod, &bw, 0, 0);
- while(walk_bw(fs, nod, &bw, &create, 0) != WALK_END)
- /*nop*/;
- get_nod(fs, nod)->i_blocks += amount * INOBLK;
- }
- else
- {
- lbw = bw;
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- lbw = bw;
- bw = lbw;
- while(create)
- {
- int i, copyb = 0;
- if(!(fs->sb.s_reserved[200] & OP_HOLES))
- copyb = 1;
- else
- for(i = 0; i < BLOCKSIZE / 4; i++)
- if(((int32*)(b + BLOCKSIZE * (amount - create)))[i])
- {
- copyb = 1;
- break;
- }
- if((bk = walk_bw(fs, nod, &bw, &create, !copyb)) == WALK_END)
- break;
- if(copyb)
- memcpy(get_blk(fs, bk), b + BLOCKSIZE * (amount - create - 1), BLOCKSIZE);
- }
- }
-}
-
-// link an entry (inode #) to a directory
-static void
-add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name)
-{
- blockwalker bw;
- uint32 bk;
- uint8 *b;
- directory *d;
- int reclen, nlen;
- inode *node;
- inode *pnode;
-
- pnode = get_nod(fs, dnod);
- if((pnode->i_mode & FM_IFMT) != FM_IFDIR)
- error_msg_and_die("can't add '%s' to a non-directory", name);
- if(!*name)
- error_msg_and_die("can't create an inode with an empty name");
- if(strchr(name, '/'))
- error_msg_and_die("bad name '%s' (contains a slash)", name);
- nlen = strlen(name);
- reclen = sizeof(directory) + rndup(nlen, 4);
- if(reclen > BLOCKSIZE)
- error_msg_and_die("bad name '%s' (too long)", name);
- init_bw(&bw);
- while((bk = walk_bw(fs, dnod, &bw, 0, 0)) != WALK_END) // for all blocks in dir
- {
- b = get_blk(fs, bk);
- // for all dir entries in block
- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
- {
- // if empty dir entry, large enough, use it
- if((!d->d_inode) && (d->d_rec_len >= reclen))
- {
- d->d_inode = nod;
- node = get_nod(fs, nod);
- node->i_links_count++;
- d->d_name_len = nlen;
- strncpy(d->d_name, name, nlen);
- return;
- }
- // if entry with enough room (last one?), shrink it & use it
- if(d->d_rec_len >= (sizeof(directory) + rndup(d->d_name_len, 4) + reclen))
- {
- reclen = d->d_rec_len;
- d->d_rec_len = sizeof(directory) + rndup(d->d_name_len, 4);
- reclen -= d->d_rec_len;
- d = (directory*) (((int8*)d) + d->d_rec_len);
- d->d_rec_len = reclen;
- d->d_inode = nod;
- node = get_nod(fs, nod);
- node->i_links_count++;
- d->d_name_len = nlen;
- strncpy(d->d_name, name, nlen);
- return;
- }
- }
- }
- // we found no free entry in the directory, so we add a block
- if(!(b = get_workblk()))
- error_msg_and_die("get_workblk() failed.");
- d = (directory*)b;
- d->d_inode = nod;
- node = get_nod(fs, nod);
- node->i_links_count++;
- d->d_rec_len = BLOCKSIZE;
- d->d_name_len = nlen;
- strncpy(d->d_name, name, nlen);
- extend_blk(fs, dnod, b, 1);
- get_nod(fs, dnod)->i_size += BLOCKSIZE;
- free_workblk(b);
-}
-
-// find an entry in a directory
-static uint32
-find_dir(filesystem *fs, uint32 nod, const char * name)
-{
- blockwalker bw;
- uint32 bk;
- int nlen = strlen(name);
- init_bw(&bw);
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- directory *d;
- uint8 *b;
- b = get_blk(fs, bk);
- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
- if(d->d_inode && (nlen == d->d_name_len) && !strncmp(d->d_name, name, nlen))
- return d->d_inode;
- }
- return 0;
-}
-
-// find the inode of a full path
-static uint32
-find_path(filesystem *fs, uint32 nod, const char * name)
-{
- char *p, *n, *n2 = xstrdup(name);
- n = n2;
- while(*n == '/')
- {
- nod = EXT2_ROOT_INO;
- n++;
- }
- while(*n)
- {
- if((p = strchr(n, '/')))
- (*p) = 0;
- if(!(nod = find_dir(fs, nod, n)))
- break;
- if(p)
- n = p + 1;
- else
- break;
- }
- free(n2);
- return nod;
-}
-
-// create a simple inode
-static uint32
-mknod_fs(filesystem *fs, uint32 parent_nod, const char *name, uint16 mode, uint16 uid, uint16 gid, uint8 major, uint8 minor, uint32 ctime, uint32 mtime)
-{
- uint32 nod;
- inode *node;
- if((nod = find_dir(fs, parent_nod, name)))
- {
- node = get_nod(fs, nod);
- if((node->i_mode & FM_IFMT) != (mode & FM_IFMT))
- error_msg_and_die("node '%s' already exists and isn't of the same type", name);
- node->i_mode = mode;
- }
- else
- {
- nod = alloc_nod(fs);
- node = get_nod(fs, nod);
- node->i_mode = mode;
- add2dir(fs, parent_nod, nod, name);
- switch(mode & FM_IFMT)
- {
- case FM_IFLNK:
- mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
- break;
- case FM_IFBLK:
- case FM_IFCHR:
- ((uint8*)get_nod(fs, nod)->i_block)[0] = minor;
- ((uint8*)get_nod(fs, nod)->i_block)[1] = major;
- break;
- case FM_IFDIR:
- add2dir(fs, nod, nod, ".");
- add2dir(fs, nod, parent_nod, "..");
- get_gd(fs, GRP_GROUP_OF_INODE(fs,nod))->bg_used_dirs_count++;
- break;
- }
- }
- node->i_uid = uid;
- node->i_gid = gid;
- node->i_atime = mtime;
- node->i_ctime = ctime;
- node->i_mtime = mtime;
- return nod;
-}
-
-// make a full-fledged directory (i.e. with "." & "..")
-static inline uint32
-mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode,
- uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
-{
- return mknod_fs(fs, parent_nod, name, mode|FM_IFDIR, uid, gid, 0, 0, ctime, mtime);
-}
-
-// make a symlink
-static uint32
-mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 *b, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
-{
- uint32 nod = mknod_fs(fs, parent_nod, name, FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO, uid, gid, 0, 0, ctime, mtime);
- extend_blk(fs, nod, 0, - (int)get_nod(fs, nod)->i_blocks / INOBLK);
- get_nod(fs, nod)->i_size = size;
- if(size <= 4 * (EXT2_TIND_BLOCK+1))
- {
- strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size);
- return nod;
- }
- extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
- return nod;
-}
-
-// make a file from a FILE*
-static uint32
-mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
-{
- uint8 * b;
- uint32 nod = mknod_fs(fs, parent_nod, name, mode|FM_IFREG, uid, gid, 0, 0, ctime, mtime);
- extend_blk(fs, nod, 0, - (int)get_nod(fs, nod)->i_blocks / INOBLK);
- get_nod(fs, nod)->i_size = size;
- if (size) {
- if(!(b = (uint8*)calloc(rndup(size, BLOCKSIZE), 1)))
- error_msg_and_die("not enough mem to read file '%s'", name);
- if(f)
- fread(b, size, 1, f); // FIXME: ugly. use mmap() ...
- extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
- free(b);
- }
- return nod;
-}
-
-// retrieves a mode info from a struct stat
-static uint32
-get_mode(struct stat *st)
-{
- uint32 mode = 0;
-
- if(st->st_mode & S_IRUSR)
- mode |= FM_IRUSR;
- if(st->st_mode & S_IWUSR)
- mode |= FM_IWUSR;
- if(st->st_mode & S_IXUSR)
- mode |= FM_IXUSR;
- if(st->st_mode & S_IRGRP)
- mode |= FM_IRGRP;
- if(st->st_mode & S_IWGRP)
- mode |= FM_IWGRP;
- if(st->st_mode & S_IXGRP)
- mode |= FM_IXGRP;
- if(st->st_mode & S_IROTH)
- mode |= FM_IROTH;
- if(st->st_mode & S_IWOTH)
- mode |= FM_IWOTH;
- if(st->st_mode & S_IXOTH)
- mode |= FM_IXOTH;
- if(st->st_mode & S_ISUID)
- mode |= FM_ISUID;
- if(st->st_mode & S_ISGID)
- mode |= FM_ISGID;
- if(st->st_mode & S_ISVTX)
- mode |= FM_ISVTX;
- return mode;
-}
-
-// add or fixup entries to the filesystem from a text file
-/* device table entries take the form of:
- <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
- /dev/mem c 640 0 0 1 1 0 0 -
-
- type can be one of:
- f A regular file
- d Directory
- c Character special device file
- b Block special device file
- p Fifo (named pipe)
-
- I don't bother with symlinks (permissions are irrelevant), hard
- links (special cases of regular files), or sockets (why bother).
-
- Regular files must exist in the target root directory. If a char,
- block, fifo, or directory does not exist, it will be created.
-*/
-
-static void
-add2fs_from_file(filesystem *fs, uint32 this_nod, FILE * fh, uint32 fs_timestamp, struct stats *stats)
-{
- unsigned long mode, uid, gid, major, minor;
- unsigned long start, increment, count;
- uint32 nod, ctime, mtime;
- char *c, type, *path = NULL, *path2 = NULL, *dir, *name, *line = NULL;
- size_t len;
- struct stat st;
- int nbargs, lineno = 0;
-
- fstat(fileno(fh), &st);
- ctime = fs_timestamp;
- mtime = st.st_mtime;
- while(getline(&line, &len, fh) >= 0)
- {
- mode = uid = gid = major = minor = 0;
- start = 0; increment = 1; count = 0;
- lineno++;
- if((c = strchr(line, '#')))
- *c = 0;
- if (path) {
- free(path);
- path = NULL;
- }
- if (path2) {
- free(path2);
- path2 = NULL;
- }
- nbargs = sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
- SCANF_STRING(path), &type, &mode, &uid, &gid, &major, &minor,
- &start, &increment, &count);
- if(nbargs < 3)
- {
- if(nbargs > 0)
- error_msg("device table line %d skipped: bad format for entry '%s'", lineno, path);
- continue;
- }
- mode &= FM_IMASK;
- path2 = strdup(path);
- name = basename(path);
- dir = dirname(path2);
- if((!strcmp(name, ".")) || (!strcmp(name, "..")))
- {
- error_msg("device table line %d skipped", lineno);
- continue;
- }
- if(fs)
- {
- if(!(nod = find_path(fs, this_nod, dir)))
- {
- error_msg("device table line %d skipped: can't find directory '%s' to create '%s''", lineno, dir, name);
- continue;
- }
- }
- else
- nod = 0;
- switch (type)
- {
- case 'd':
- mode |= FM_IFDIR;
- break;
- case 'f':
- mode |= FM_IFREG;
- break;
- case 'p':
- mode |= FM_IFIFO;
- break;
- case 's':
- mode |= FM_IFSOCK;
- break;
- case 'c':
- mode |= FM_IFCHR;
- break;
- case 'b':
- mode |= FM_IFBLK;
- break;
- default:
- error_msg("device table line %d skipped: bad type '%c' for entry '%s'", lineno, type, name);
- continue;
- }
- if(stats) {
- if(count > 0)
- stats->ninodes += count - start;
- else
- stats->ninodes++;
- } else {
- if(count > 0)
- {
- char *dname;
- unsigned long i;
- unsigned len;
- len = strlen(name) + 10;
- dname = malloc(len + 1);
- for(i = start; i < count; i++)
- {
- SNPRINTF(dname, len, "%s%lu", name, i);
- mknod_fs(fs, nod, dname, mode, uid, gid, major, minor + (i * increment - start), ctime, mtime);
- }
- free(dname);
- }
- else
- mknod_fs(fs, nod, name, mode, uid, gid, major, minor, ctime, mtime);
- }
- }
- if (line)
- free(line);
- if (path)
- free(path);
- if (path2)
- free(path2);
-}
-
-// adds a tree of entries to the filesystem from current dir
-static void
-add2fs_from_dir(filesystem *fs, uint32 this_nod, int squash_uids, int squash_perms, uint32 fs_timestamp, struct stats *stats)
-{
- uint32 nod;
- uint32 uid, gid, mode, ctime, mtime;
- const char *name;
- FILE *fh;
- DIR *dh;
- struct dirent *dent;
- struct stat st;
- char *lnk;
- uint32 save_nod;
-
- if(!(dh = opendir(".")))
- perror_msg_and_die(".");
- while((dent = readdir(dh)))
- {
- if((!strcmp(dent->d_name, ".")) || (!strcmp(dent->d_name, "..")))
- continue;
- lstat(dent->d_name, &st);
- uid = st.st_uid;
- gid = st.st_gid;
- ctime = fs_timestamp;
- mtime = st.st_mtime;
- name = dent->d_name;
- mode = get_mode(&st);
- if(squash_uids)
- uid = gid = 0;
- if(squash_perms)
- mode &= ~(FM_IRWXG | FM_IRWXO);
- if(stats)
- switch(st.st_mode & S_IFMT)
- {
- case S_IFLNK:
- case S_IFREG:
- if((st.st_mode & S_IFMT) == S_IFREG || st.st_size > 4 * (EXT2_TIND_BLOCK+1))
- stats->nblocks += (st.st_size + BLOCKSIZE - 1) / BLOCKSIZE;
- case S_IFCHR:
- case S_IFBLK:
- case S_IFIFO:
- case S_IFSOCK:
- stats->ninodes++;
- break;
- case S_IFDIR:
- stats->ninodes++;
- if(chdir(dent->d_name) < 0)
- perror_msg_and_die(dent->d_name);
- add2fs_from_dir(fs, this_nod, squash_uids, squash_perms, fs_timestamp, stats);
- chdir("..");
- break;
- default:
- break;
- }
- else
- {
- save_nod = 0;
- /* Check for hardlinks */
- if (!S_ISDIR(st.st_mode) && !S_ISLNK(st.st_mode) && st.st_nlink > 1) {
- int32 hdlink = is_hardlink(st.st_ino);
- if (hdlink >= 0) {
- add2dir(fs, this_nod, hdlinks.hdl[hdlink].dst_nod, name);
- continue;
- } else {
- save_nod = 1;
- }
- }
- switch(st.st_mode & S_IFMT)
- {
-#if HAVE_STRUCT_STAT_ST_RDEV
- case S_IFCHR:
- nod = mknod_fs(fs, this_nod, name, mode|FM_IFCHR, uid, gid, major(st.st_rdev), minor(st.st_rdev), ctime, mtime);
- break;
- case S_IFBLK:
- nod = mknod_fs(fs, this_nod, name, mode|FM_IFBLK, uid, gid, major(st.st_rdev), minor(st.st_rdev), ctime, mtime);
- break;
-#endif
- case S_IFIFO:
- nod = mknod_fs(fs, this_nod, name, mode|FM_IFIFO, uid, gid, 0, 0, ctime, mtime);
- break;
- case S_IFSOCK:
- nod = mknod_fs(fs, this_nod, name, mode|FM_IFSOCK, uid, gid, 0, 0, ctime, mtime);
- break;
- case S_IFLNK:
- lnk = xreadlink(dent->d_name);
- mklink_fs(fs, this_nod, name, st.st_size, (uint8*)lnk, uid, gid, ctime, mtime);
- free(lnk);
- break;
- case S_IFREG:
- fh = xfopen(dent->d_name, "rb");
- nod = mkfile_fs(fs, this_nod, name, mode, st.st_size, fh, uid, gid, ctime, mtime);
- fclose(fh);
- break;
- case S_IFDIR:
- nod = mkdir_fs(fs, this_nod, name, mode, uid, gid, ctime, mtime);
- if(chdir(dent->d_name) < 0)
- perror_msg_and_die(name);
- add2fs_from_dir(fs, nod, squash_uids, squash_perms, fs_timestamp, stats);
- chdir("..");
- break;
- default:
- error_msg("ignoring entry %s", name);
- }
- if (save_nod) {
- if (hdlinks.count == hdlink_cnt) {
- if ((hdlinks.hdl =
- realloc (hdlinks.hdl, (hdlink_cnt + HDLINK_CNT) *
- sizeof (struct hdlink_s))) == NULL) {
- error_msg_and_die("Not enough memory");
- }
- hdlink_cnt += HDLINK_CNT;
- }
- hdlinks.hdl[hdlinks.count].src_inode = st.st_ino;
- hdlinks.hdl[hdlinks.count].dst_nod = nod;
- hdlinks.count++;
- }
- }
- }
- closedir(dh);
-}
-
-// endianness swap of x-indirect blocks
-static void
-swap_goodblocks(filesystem *fs, inode *nod)
-{
- uint32 i,j;
- int done=0;
- uint32 *b,*b2;
-
- uint32 nblk = nod->i_blocks / INOBLK;
- if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
- nod->i_block[i] = swab32(nod->i_block[i]);
- if(nblk <= EXT2_IND_BLOCK)
- return;
- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
- if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4)
- return;
- /* Currently this will fail b'cos the number of blocks as stored
- in i_blocks also includes the indirection blocks (see
- walk_bw). But this function assumes that i_blocks only
- stores the count of data blocks ( Actually according to
- "Understanding the Linux Kernel" (Table 17-3 p502 1st Ed)
- i_blocks IS supposed to store the count of data blocks). so
- with a file of size 268K nblk would be 269.The above check
- will be false even though double indirection hasn't been
- started.This is benign as 0 means block 0 which has been
- zeroed out and therefore points back to itself from any offset
- */
- // FIXME: I have fixed that, but I have the feeling the rest of
- // ths function needs to be fixed for the same reasons - Xav
- assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
- for(i = 0; i < BLOCKSIZE/4; i++)
- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
- if (((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i])
- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
- return;
- /* Adding support for triple indirection */
- b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
- for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
- b2 = (uint32*)get_blk(fs,b[i]);
- for(j=0; j<BLOCKSIZE/4;j++) {
- if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
- (BLOCKSIZE/4)*(BLOCKSIZE/4) +
- i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
- j*(BLOCKSIZE/4)) )
- if (b2[j])
- swap_block(get_blk(fs,b2[j]));
- else {
- done = 1;
- break;
- }
- }
- swap_block((uint8 *)b2);
- }
- swap_block((uint8 *)b);
- return;
-}
-
-static void
-swap_badblocks(filesystem *fs, inode *nod)
-{
- uint32 i,j;
- int done=0;
- uint32 *b,*b2;
-
- uint32 nblk = nod->i_blocks / INOBLK;
- if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
- nod->i_block[i] = swab32(nod->i_block[i]);
- if(nblk <= EXT2_IND_BLOCK)
- return;
- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
- if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4)
- return;
- /* See comment in swap_goodblocks */
- assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
- for(i = 0; i < BLOCKSIZE/4; i++)
- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
- if (((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i])
- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
- return;
- /* Adding support for triple indirection */
- b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
- swap_block((uint8 *)b);
- for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
- b2 = (uint32*)get_blk(fs,b[i]);
- swap_block((uint8 *)b2);
- for(j=0; j<BLOCKSIZE/4;j++) {
- if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
- (BLOCKSIZE/4)*(BLOCKSIZE/4) +
- i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
- j*(BLOCKSIZE/4)) )
- if (b2[j])
- swap_block(get_blk(fs,b2[j]));
- else {
- done = 1;
- break;
- }
- }
- }
- return;
-}
-
-// endianness swap of the whole filesystem
-static void
-swap_goodfs(filesystem *fs)
-{
- uint32 i;
- for(i = 1; i < fs->sb.s_inodes_count; i++)
- {
- inode *nod = get_nod(fs, i);
- if(nod->i_mode & FM_IFDIR)
- {
- blockwalker bw;
- uint32 bk;
- init_bw(&bw);
- while((bk = walk_bw(fs, i, &bw, 0, 0)) != WALK_END)
- {
- directory *d;
- uint8 *b;
- b = get_blk(fs, bk);
- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + swab16(d->d_rec_len)))
- swap_dir(d);
- }
- }
- swap_goodblocks(fs, nod);
- swap_nod(nod);
- }
- for(i=0;i<GRP_NBGROUPS(fs);i++)
- swap_gd(get_gd(fs, i));
- swap_sb(&fs->sb);
-}
-
-static void
-swap_badfs(filesystem *fs)
-{
- uint32 i;
- swap_sb(&fs->sb);
- for(i=0;i<GRP_NBGROUPS(fs);i++)
- swap_gd(get_gd(fs, i));
- for(i = 1; i < fs->sb.s_inodes_count; i++)
- {
- inode *nod = get_nod(fs, i);
- swap_nod(nod);
- swap_badblocks(fs, nod);
- if(nod->i_mode & FM_IFDIR)
- {
- blockwalker bw;
- uint32 bk;
- init_bw(&bw);
- while((bk = walk_bw(fs, i, &bw, 0, 0)) != WALK_END)
- {
- directory *d;
- uint8 *b;
- b = get_blk(fs, bk);
- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
- swap_dir(d);
- }
- }
- }
-}
-
-// initialize an empty filesystem
-static filesystem *
-init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes,
- uint32 fs_timestamp, uint32 creator_os)
-{
- uint32 i;
- filesystem *fs;
- directory *d;
- uint8 * b;
- uint32 nod, first_block;
- uint32 nbgroups,nbinodes_per_group,overhead_per_group,free_blocks,
- free_blocks_per_group,nbblocks_per_group,min_nbgroups;
- uint32 gdsz,itblsz,bbmpos,ibmpos,itblpos;
- uint32 j;
- uint8 *bbm,*ibm;
- inode *itab0;
-
- if(nbresrvd < 0)
- error_msg_and_die("reserved blocks value is invalid. Note: options have changed, see --help or the man page.");
- if(nbinodes < EXT2_FIRST_INO - 1 + (nbresrvd ? 1 : 0))
- error_msg_and_die("too few inodes. Note: options have changed, see --help or the man page.");
- if(nbblocks < 8)
- error_msg_and_die("too few blocks. Note: options have changed, see --help or the man page.");
-
- /* nbinodes is the total number of inodes in the system.
- * a block group can have no more than 8192 inodes.
- */
- min_nbgroups = (nbinodes + INODES_PER_GROUP - 1) / INODES_PER_GROUP;
-
- /* On filesystems with 1k block size, the bootloader area uses a full
- * block. For 2048 and up, the superblock can be fitted into block 0.
- */
- first_block = (BLOCKSIZE == 1024);
-
- /* nbblocks is the total number of blocks in the filesystem.
- * a block group can have no more than 8192 blocks.
- */
- nbgroups = (nbblocks - first_block + BLOCKS_PER_GROUP - 1) / BLOCKS_PER_GROUP;
- if(nbgroups < min_nbgroups) nbgroups = min_nbgroups;
- nbblocks_per_group = rndup((nbblocks - first_block + nbgroups - 1)/nbgroups, 8);
- nbinodes_per_group = rndup((nbinodes + nbgroups - 1)/nbgroups,
- (BLOCKSIZE/sizeof(inode)));
- if (nbinodes_per_group < 16)
- nbinodes_per_group = 16; //minimum number b'cos the first 10 are reserved
-
- gdsz = rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
- itblsz = nbinodes_per_group * sizeof(inode)/BLOCKSIZE;
- overhead_per_group = 3 /*sb,bbm,ibm*/ + gdsz + itblsz;
- free_blocks = nbblocks - overhead_per_group*nbgroups - first_block;
- free_blocks_per_group = nbblocks_per_group - overhead_per_group;
- if(free_blocks < 0)
- error_msg_and_die("too much overhead, try fewer inodes or more blocks. Note: options have changed, see --help or the man page.");
-
- if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE)))
- error_msg_and_die("not enough memory for filesystem");
-
- // create the superblock for an empty filesystem
- fs->sb.s_inodes_count = nbinodes_per_group * nbgroups;
- fs->sb.s_blocks_count = nbblocks;
- fs->sb.s_r_blocks_count = nbresrvd;
- fs->sb.s_free_blocks_count = free_blocks;
- fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1;
- fs->sb.s_first_data_block = first_block;
- fs->sb.s_log_block_size = BLOCKSIZE >> 11;
- fs->sb.s_log_frag_size = BLOCKSIZE >> 11;
- fs->sb.s_blocks_per_group = nbblocks_per_group;
- fs->sb.s_frags_per_group = nbblocks_per_group;
- fs->sb.s_inodes_per_group = nbinodes_per_group;
- fs->sb.s_wtime = fs_timestamp;
- fs->sb.s_magic = EXT2_MAGIC_NUMBER;
- fs->sb.s_lastcheck = fs_timestamp;
- fs->sb.s_creator_os = creator_os;
-
- // set up groupdescriptors
- for(i=0, bbmpos=first_block+1+gdsz, ibmpos=bbmpos+1, itblpos=ibmpos+1;
- i<nbgroups;
- i++, bbmpos+=nbblocks_per_group, ibmpos+=nbblocks_per_group, itblpos+=nbblocks_per_group)
- {
- groupdescriptor *gd = get_gd(fs, i);
-
- if(free_blocks > free_blocks_per_group) {
- gd->bg_free_blocks_count = free_blocks_per_group;
- free_blocks -= free_blocks_per_group;
- } else {
- gd->bg_free_blocks_count = free_blocks;
- free_blocks = 0; // this is the last block group
- }
- if(i)
- gd->bg_free_inodes_count = nbinodes_per_group;
- else
- gd->bg_free_inodes_count = nbinodes_per_group -
- EXT2_FIRST_INO + 2;
- gd->bg_used_dirs_count = 0;
- gd->bg_block_bitmap = bbmpos;
- gd->bg_inode_bitmap = ibmpos;
- gd->bg_inode_table = itblpos;
- }
-
- /* Mark non-filesystem blocks and inodes as allocated */
- /* Mark system blocks and inodes as allocated */
- for(i = 0; i<nbgroups;i++) {
-
- /* Block bitmap */
- bbm = GRP_GET_GROUP_BBM(fs, i);
- //non-filesystem blocks
- for(j = get_gd(fs, i)->bg_free_blocks_count
- + overhead_per_group + 1; j <= BLOCKSIZE * 8; j++)
- allocate(bbm, j);
- //system blocks
- for(j = 1; j <= overhead_per_group; j++)
- allocate(bbm, j);
-
- /* Inode bitmap */
- ibm = GRP_GET_GROUP_IBM(fs, i);
- //non-filesystem inodes
- for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
- allocate(ibm, j);
-
- //system inodes
- if(i == 0)
- for(j = 1; j < EXT2_FIRST_INO; j++)
- allocate(ibm, j);
- }
-
- // make root inode and directory
- /* We have groups now. Add the root filesystem in group 0 */
- /* Also increment the directory count for group 0 */
- get_gd(fs, 0)->bg_free_inodes_count--;
- get_gd(fs, 0)->bg_used_dirs_count = 1;
- itab0 = (inode *)get_blk(fs, get_gd(fs,0)->bg_inode_table);
- itab0[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRGRP | FM_IROTH | FM_IXGRP | FM_IXOTH;
- itab0[EXT2_ROOT_INO-1].i_ctime = fs_timestamp;
- itab0[EXT2_ROOT_INO-1].i_mtime = fs_timestamp;
- itab0[EXT2_ROOT_INO-1].i_atime = fs_timestamp;
- itab0[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
- itab0[EXT2_ROOT_INO-1].i_links_count = 2;
-
- if(!(b = get_workblk()))
- error_msg_and_die("get_workblk() failed.");
- d = (directory*)b;
- d->d_inode = EXT2_ROOT_INO;
- d->d_rec_len = sizeof(directory)+4;
- d->d_name_len = 1;
- strcpy(d->d_name, ".");
- d = (directory*)(b + d->d_rec_len);
- d->d_inode = EXT2_ROOT_INO;
- d->d_rec_len = BLOCKSIZE - (sizeof(directory)+4);
- d->d_name_len = 2;
- strcpy(d->d_name, "..");
- extend_blk(fs, EXT2_ROOT_INO, b, 1);
-
- // make lost+found directory and reserve blocks
- if(fs->sb.s_r_blocks_count)
- {
- nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU, 0, 0, fs_timestamp, fs_timestamp);
- memset(b, 0, BLOCKSIZE);
- ((directory*)b)->d_rec_len = BLOCKSIZE;
- /* We run into problems with e2fsck if directory lost+found grows
- * bigger than this. Need to find out why this happens - sundar
- */
- if (fs->sb.s_r_blocks_count > fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS )
- fs->sb.s_r_blocks_count = fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS;
- for(i = 1; i < fs->sb.s_r_blocks_count; i++)
- extend_blk(fs, nod, b, 1);
- get_nod(fs, nod)->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE;
- }
- free_workblk(b);
-
- // administrative info
- fs->sb.s_state = 1;
- fs->sb.s_max_mnt_count = 20;
-
- // options for me
- if(holes)
- fs->sb.s_reserved[200] |= OP_HOLES;
-
- return fs;
-}
-
-// loads a filesystem from disk
-static filesystem *
-load_fs(FILE * fh, int swapit)
-{
- size_t fssize;
- filesystem *fs;
- if((fseek(fh, 0, SEEK_END) < 0) || ((ssize_t)(fssize = ftell(fh)) == -1))
- perror_msg_and_die("input filesystem image");
- rewind(fh);
- fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE;
- if(fssize < 16) // totally arbitrary
- error_msg_and_die("too small filesystem");
- if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE)))
- error_msg_and_die("not enough memory for filesystem");
- if(fread(fs, BLOCKSIZE, fssize, fh) != fssize)
- perror_msg_and_die("input filesystem image");
- if(swapit)
- swap_badfs(fs);
- if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER))
- error_msg_and_die("not a suitable ext2 filesystem");
- return fs;
-}
-
-static void
-free_fs(filesystem *fs)
-{
- free(fs);
-}
-
-// just walk through blocks list
-static void
-flist_blocks(filesystem *fs, uint32 nod, FILE *fh)
-{
- blockwalker bw;
- uint32 bk;
- init_bw(&bw);
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- fprintf(fh, " %d", bk);
- fprintf(fh, "\n");
-}
-
-// walk through blocks list
-static void
-list_blocks(filesystem *fs, uint32 nod)
-{
- int bn = 0;
- blockwalker bw;
- uint32 bk;
- init_bw(&bw);
- printf("blocks in inode %d:", nod);
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- printf(" %d", bk), bn++;
- printf("\n%d blocks (%d bytes)\n", bn, bn * BLOCKSIZE);
-}
-
-// saves blocks to FILE*
-static void
-write_blocks(filesystem *fs, uint32 nod, FILE* f)
-{
- blockwalker bw;
- uint32 bk;
- int32 fsize = get_nod(fs, nod)->i_size;
- init_bw(&bw);
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- if(fsize <= 0)
- error_msg_and_die("wrong size while saving inode %d", nod);
- if(fwrite(get_blk(fs, bk), (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
- error_msg_and_die("error while saving inode %d", nod);
- fsize -= BLOCKSIZE;
- }
-}
-
-
-// print block/char device minor and major
-static void
-print_dev(filesystem *fs, uint32 nod)
-{
- int minor, major;
- minor = ((uint8*)get_nod(fs, nod)->i_block)[0];
- major = ((uint8*)get_nod(fs, nod)->i_block)[1];
- printf("major: %d, minor: %d\n", major, minor);
-}
-
-// print an inode as a directory
-static void
-print_dir(filesystem *fs, uint32 nod)
-{
- blockwalker bw;
- uint32 bk;
- init_bw(&bw);
- printf("directory for inode %d:\n", nod);
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- directory *d;
- uint8 *b;
- b = get_blk(fs, bk);
- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
- if(d->d_inode)
- {
- int i;
- printf("entry '");
- for(i = 0; i < d->d_name_len; i++)
- putchar(d->d_name[i]);
- printf("' (inode %d): rec_len: %d (name_len: %d)\n", d->d_inode, d->d_rec_len, d->d_name_len);
- }
- }
-}
-
-// print a symbolic link
-static void
-print_link(filesystem *fs, uint32 nod)
-{
- if(!get_nod(fs, nod)->i_blocks)
- printf("links to '%s'\n", (char*)get_nod(fs, nod)->i_block);
- else
- {
- printf("links to '");
- write_blocks(fs, nod, stdout);
- printf("'\n");
- }
-}
-
-// make a ls-like printout of permissions
-static void
-make_perms(uint32 mode, char perms[11])
-{
- strcpy(perms, "----------");
- if(mode & FM_IRUSR)
- perms[1] = 'r';
- if(mode & FM_IWUSR)
- perms[2] = 'w';
- if(mode & FM_IXUSR)
- perms[3] = 'x';
- if(mode & FM_IRGRP)
- perms[4] = 'r';
- if(mode & FM_IWGRP)
- perms[5] = 'w';
- if(mode & FM_IXGRP)
- perms[6] = 'x';
- if(mode & FM_IROTH)
- perms[7] = 'r';
- if(mode & FM_IWOTH)
- perms[8] = 'w';
- if(mode & FM_IXOTH)
- perms[9] = 'x';
- if(mode & FM_ISUID)
- perms[3] = 's';
- if(mode & FM_ISGID)
- perms[6] = 's';
- if(mode & FM_ISVTX)
- perms[9] = 't';
- switch(mode & FM_IFMT)
- {
- case 0:
- *perms = '0';
- break;
- case FM_IFSOCK:
- *perms = 's';
- break;
- case FM_IFLNK:
- *perms = 'l';
- break;
- case FM_IFREG:
- *perms = '-';
- break;
- case FM_IFBLK:
- *perms = 'b';
- break;
- case FM_IFDIR:
- *perms = 'd';
- break;
- case FM_IFCHR:
- *perms = 'c';
- break;
- case FM_IFIFO:
- *perms = 'p';
- break;
- default:
- *perms = '?';
- }
-}
-
-// print an inode
-static void
-print_inode(filesystem *fs, uint32 nod)
-{
- char *s;
- char perms[11];
- if(!get_nod(fs, nod)->i_mode)
- return;
- switch(nod)
- {
- case EXT2_BAD_INO:
- s = "bad blocks";
- break;
- case EXT2_ROOT_INO:
- s = "root";
- break;
- case EXT2_ACL_IDX_INO:
- case EXT2_ACL_DATA_INO:
- s = "ACL";
- break;
- case EXT2_BOOT_LOADER_INO:
- s = "boot loader";
- break;
- case EXT2_UNDEL_DIR_INO:
- s = "undelete directory";
- break;
- default:
- s = (nod >= EXT2_FIRST_INO) ? "normal" : "unknown reserved";
- }
- printf("inode %d (%s, %d links): ", nod, s, get_nod(fs, nod)->i_links_count);
- if(!allocated(GRP_GET_INODE_BITMAP(fs,nod), GRP_IBM_OFFSET(fs,nod)))
- {
- printf("unallocated\n");
- return;
- }
- make_perms(get_nod(fs, nod)->i_mode, perms);
- printf("%s, size: %d byte%s (%d block%s)\n", perms, plural(get_nod(fs, nod)->i_size), plural(get_nod(fs, nod)->i_blocks / INOBLK));
- switch(get_nod(fs, nod)->i_mode & FM_IFMT)
- {
- case FM_IFSOCK:
- list_blocks(fs, nod);
- break;
- case FM_IFLNK:
- print_link(fs, nod);
- break;
- case FM_IFREG:
- list_blocks(fs, nod);
- break;
- case FM_IFBLK:
- print_dev(fs, nod);
- break;
- case FM_IFDIR:
- list_blocks(fs, nod);
- print_dir(fs, nod);
- break;
- case FM_IFCHR:
- print_dev(fs, nod);
- break;
- case FM_IFIFO:
- list_blocks(fs, nod);
- break;
- default:
- list_blocks(fs, nod);
- }
- printf("Done with inode %d\n",nod);
-}
-
-// describes various fields in a filesystem
-static void
-print_fs(filesystem *fs)
-{
- uint32 i;
- uint8 *ibm;
-
- printf("%d blocks (%d free, %d reserved), first data block: %d\n",
- fs->sb.s_blocks_count, fs->sb.s_free_blocks_count,
- fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count,
- fs->sb.s_free_inodes_count);
- printf("block size = %d, frag size = %d\n",
- fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024,
- fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
- printf("number of groups: %d\n",GRP_NBGROUPS(fs));
- printf("%d blocks per group,%d frags per group,%d inodes per group\n",
- fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group,
- fs->sb.s_inodes_per_group);
- printf("Size of inode table: %d blocks\n",
- (int)(fs->sb.s_inodes_per_group * sizeof(inode) / BLOCKSIZE));
- for (i = 0; i < GRP_NBGROUPS(fs); i++) {
- printf("Group No: %d\n", i+1);
- printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n",
- get_gd(fs, i)->bg_block_bitmap,
- get_gd(fs, i)->bg_inode_bitmap,
- get_gd(fs, i)->bg_inode_table);
- printf("block bitmap allocation:\n");
- print_bm(GRP_GET_GROUP_BBM(fs, i),fs->sb.s_blocks_per_group);
- printf("inode bitmap allocation:\n");
- ibm = GRP_GET_GROUP_IBM(fs, i);
- print_bm(ibm, fs->sb.s_inodes_per_group);
- for (i = 1; i <= fs->sb.s_inodes_per_group; i++)
- if (allocated(ibm, i))
- print_inode(fs, i);
- }
-}
-
-static void
-dump_fs(filesystem *fs, FILE * fh, int swapit)
-{
- uint32 nbblocks = fs->sb.s_blocks_count;
- fs->sb.s_reserved[200] = 0;
- if(swapit)
- swap_goodfs(fs);
- if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks)
- perror_msg_and_die("output filesystem image");
- if(swapit)
- swap_badfs(fs);
-}
-
-static void
-populate_fs(filesystem *fs, char **dopt, int didx, int squash_uids, int squash_perms, uint32 fs_timestamp, struct stats *stats)
-{
- int i;
- for(i = 0; i < didx; i++)
- {
- struct stat st;
- FILE *fh;
- int pdir;
- char *pdest;
- uint32 nod = EXT2_ROOT_INO;
- if(fs)
- if((pdest = strchr(dopt[i], ':')))
- {
- *(pdest++) = 0;
- if(!(nod = find_path(fs, EXT2_ROOT_INO, pdest)))
- error_msg_and_die("path %s not found in filesystem", pdest);
- }
- stat(dopt[i], &st);
- switch(st.st_mode & S_IFMT)
- {
- case S_IFREG:
- fh = xfopen(dopt[i], "rb");
- add2fs_from_file(fs, nod, fh, fs_timestamp, stats);
- fclose(fh);
- break;
- case S_IFDIR:
- if((pdir = open(".", O_RDONLY)) < 0)
- perror_msg_and_die(".");
- if(chdir(dopt[i]) < 0)
- perror_msg_and_die(dopt[i]);
- add2fs_from_dir(fs, nod, squash_uids, squash_perms, fs_timestamp, stats);
- if(fchdir(pdir) < 0)
- perror_msg_and_die("fchdir");
- if(close(pdir) < 0)
- perror_msg_and_die("close");
- break;
- default:
- error_msg_and_die("%s is neither a file nor a directory", dopt[i]);
- }
- }
-}
-
-static void
-showversion(void)
-{
- printf("genext2fs " VERSION "\n");
-}
-
-static void
-showhelp(void)
-{
- fprintf(stderr, "Usage: %s [options] image\n"
- "Create an ext2 filesystem image from directories/files\n\n"
- " -x, --starting-image <image>\n"
- " -d, --root <directory>\n"
- " -D, --devtable <file>\n"
- " -B, --block-size <bytes>\n"
- " -b, --size-in-blocks <blocks>\n"
- " -i, --bytes-per-inode <bytes per inode>\n"
- " -N, --number-of-inodes <number of inodes>\n"
- " -m, --reserved-percentage <percentage of blocks to reserve>\n"
- " -o, --creator-os <os> 'linux', 'hurd', 'freebsd' or a numerical value.\n"
- " -g, --block-map <path> Generate a block map file for this path.\n"
- " -e, --fill-value <value> Fill unallocated blocks with value.\n"
- " -z, --allow-holes Allow files with holes.\n"
- " -f, --faketime Set filesystem timestamps to 0 (for testing).\n"
- " -q, --squash Same as \"-U -P\".\n"
- " -U, --squash-uids Squash owners making all files be owned by root.\n"
- " -P, --squash-perms Squash permissions on all files.\n"
- " -h, --help\n"
- " -V, --version\n"
- " -v, --verbose\n\n"
- "Report bugs to genext2fs-devel@lists.sourceforge.net\n", app_name);
-}
-
-#define MAX_DOPT 128
-#define MAX_GOPT 128
-
-#define MAX_FILENAME 255
-
-extern char* optarg;
-extern int optind, opterr, optopt;
-
-// parse the value for -o <os>
-int
-lookup_creator_os(const char *name)
-{
- static const char *const creators[] =
- {"linux", "hurd", "2", "freebsd", NULL};
- char *endptr;
- int i;
-
- // numerical value ?
- i = strtol(name, &endptr, 0);
- if(name[0] && *endptr == '\0')
- return i;
-
- // symbolic name ?
- for(i=0; creators[i]; i++)
- if(strcasecmp(creators[i], name) == 0)
- return i;
-
- // whatever ?
- return -1;
-}
-
-int
-main(int argc, char **argv)
-{
- int nbblocks = -1;
- int nbinodes = -1;
- int nbresrvd = -1;
- float bytes_per_inode = -1;
- float reserved_frac = -1;
- int fs_timestamp = -1;
- int creator_os = CREATOR_OS;
- char * fsout = "-";
- char * fsin = 0;
- char * dopt[MAX_DOPT];
- int didx = 0;
- char * gopt[MAX_GOPT];
- int gidx = 0;
- int verbose = 0;
- int holes = 0;
- int emptyval = 0;
- int squash_uids = 0;
- int squash_perms = 0;
- uint16 endian = 1;
- int bigendian = !*(char*)&endian;
- filesystem *fs;
- int i;
- int c;
- struct stats stats;
-
-#if HAVE_GETOPT_LONG
- struct option longopts[] = {
- { "starting-image", required_argument, NULL, 'x' },
- { "root", required_argument, NULL, 'd' },
- { "devtable", required_argument, NULL, 'D' },
- { "block-size", required_argument, NULL, 'B' },
- { "size-in-blocks", required_argument, NULL, 'b' },
- { "bytes-per-inode", required_argument, NULL, 'i' },
- { "number-of-inodes", required_argument, NULL, 'N' },
- { "reserved-percentage", required_argument, NULL, 'm' },
- { "creator-os", required_argument, NULL, 'o' },
- { "block-map", required_argument, NULL, 'g' },
- { "fill-value", required_argument, NULL, 'e' },
- { "allow-holes", no_argument, NULL, 'z' },
- { "faketime", no_argument, NULL, 'f' },
- { "squash", no_argument, NULL, 'q' },
- { "squash-uids", no_argument, NULL, 'U' },
- { "squash-perms", no_argument, NULL, 'P' },
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
- { "verbose", no_argument, NULL, 'v' },
- { 0, 0, 0, 0}
- } ;
-
- app_name = argv[0];
-
- while((c = getopt_long(argc, argv, "x:d:D:B:b:i:N:m:o:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
-#else
- app_name = argv[0];
-
- while((c = getopt(argc, argv, "x:d:D:B:b:i:N:m:o:g:e:zfqUPhVv")) != EOF) {
-#endif /* HAVE_GETOPT_LONG */
- switch(c)
- {
- case 'x':
- fsin = optarg;
- break;
- case 'd':
- case 'D':
- dopt[didx++] = optarg;
- break;
- case 'B':
- blocksize = SI_atof(optarg);
- break;
- case 'b':
- nbblocks = SI_atof(optarg);
- break;
- case 'i':
- bytes_per_inode = SI_atof(optarg);
- break;
- case 'N':
- nbinodes = SI_atof(optarg);
- break;
- case 'm':
- reserved_frac = SI_atof(optarg) / 100;
- break;
- case 'o':
- creator_os = lookup_creator_os(optarg);
- break;
- case 'g':
- gopt[gidx++] = optarg;
- break;
- case 'e':
- emptyval = atoi(optarg);
- break;
- case 'z':
- holes = 1;
- break;
- case 'f':
- fs_timestamp = 0;
- break;
- case 'q':
- squash_uids = 1;
- squash_perms = 1;
- break;
- case 'U':
- squash_uids = 1;
- break;
- case 'P':
- squash_perms = 1;
- break;
- case 'h':
- showhelp();
- exit(0);
- case 'V':
- showversion();
- exit(0);
- case 'v':
- verbose = 1;
- showversion();
- break;
- default:
- error_msg_and_die("Note: options have changed, see --help or the man page.");
- }
- }
-
- if(optind < (argc - 1))
- error_msg_and_die("Too many arguments. Try --help or else see the man page.");
- if(optind > (argc - 1))
- error_msg_and_die("Not enough arguments. Try --help or else see the man page.");
- fsout = argv[optind];
-
- if(blocksize != 1024 && blocksize != 2048 && blocksize != 4096)
- error_msg_and_die("Valid block sizes: 1024, 2048 or 4096.");
- if(creator_os < 0)
- error_msg_and_die("Creator OS unknown.");
-
- hdlinks.hdl = (struct hdlink_s *)malloc(hdlink_cnt * sizeof(struct hdlink_s));
- if (!hdlinks.hdl)
- error_msg_and_die("Not enough memory");
- hdlinks.count = 0 ;
-
- if(fsin)
- {
- if(strcmp(fsin, "-"))
- {
- FILE * fh = xfopen(fsin, "rb");
- fs = load_fs(fh, bigendian);
- fclose(fh);
- }
- else
- fs = load_fs(stdin, bigendian);
- }
- else
- {
- if(reserved_frac == -1)
- nbresrvd = nbblocks * RESERVED_BLOCKS;
- else
- nbresrvd = nbblocks * reserved_frac;
-
- stats.ninodes = EXT2_FIRST_INO - 1 + (nbresrvd ? 1 : 0);
- stats.nblocks = 0;
-
- populate_fs(NULL, dopt, didx, squash_uids, squash_perms, fs_timestamp, &stats);
-
- if(nbinodes == -1)
- nbinodes = stats.ninodes;
- else
- if(stats.ninodes > (unsigned long)nbinodes)
- {
- fprintf(stderr, "number of inodes too low, increasing to %ld\n", stats.ninodes);
- nbinodes = stats.ninodes;
- }
-
- if(bytes_per_inode != -1) {
- int tmp_nbinodes = nbblocks * BLOCKSIZE / bytes_per_inode;
- if(tmp_nbinodes > nbinodes)
- nbinodes = tmp_nbinodes;
- }
- if(fs_timestamp == -1)
- fs_timestamp = time(NULL);
- fs = init_fs(nbblocks, nbinodes, nbresrvd, holes,
- fs_timestamp, creator_os);
- }
-
- populate_fs(fs, dopt, didx, squash_uids, squash_perms, fs_timestamp, NULL);
-
- if(emptyval) {
- uint32 b;
- for(b = 1; b < fs->sb.s_blocks_count; b++)
- if(!allocated(GRP_GET_BLOCK_BITMAP(fs,b),GRP_BBM_OFFSET(fs,b)))
- memset(get_blk(fs, b), emptyval, BLOCKSIZE);
- }
- if(verbose)
- print_fs(fs);
- for(i = 0; i < gidx; i++)
- {
- uint32 nod;
- char fname[MAX_FILENAME];
- char *p;
- FILE *fh;
- if(!(nod = find_path(fs, EXT2_ROOT_INO, gopt[i])))
- error_msg_and_die("path %s not found in filesystem", gopt[i]);
- while((p = strchr(gopt[i], '/')))
- *p = '_';
- SNPRINTF(fname, MAX_FILENAME-1, "%s.blk", gopt[i]);
- fh = xfopen(fname, "wb");
- fprintf(fh, "%d:", get_nod(fs, nod)->i_size);
- flist_blocks(fs, nod, fh);
- fclose(fh);
- }
- if(strcmp(fsout, "-"))
- {
- FILE * fh = xfopen(fsout, "wb");
- dump_fs(fs, fh, bigendian);
- fclose(fh);
- }
- else
- dump_fs(fs, stdout, bigendian);
- free_fs(fs);
- return 0;
-}
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test.sh (nonexistent)
@@ -1,72 +0,0 @@
-#!/bin/sh
-
-# This script generates a variety of filesystems and checks that they
-# are identical to ones that are known to be mountable, and pass fsck
-# and various other sanity checks.
-
-# Passing these tests is preferable to passing test-mount.sh because
-# this script doesn't require root, and because passing these tests
-# guarantees byte-for-byte agreement with other builds, ports,
-# architectures, times of day etc.
-
-set -e
-
-. ./test-gen.lib
-
-# md5cmp - Calculate MD5 digest and compare it to an expected value.
-# Usage: md5cmp expected-digest
-md5cmp () {
- checksum=$1
- md5=`calc_digest`
- if [ x$md5 = x$checksum ] ; then
- echo PASSED
- else
- echo FAILED
- exit 1
- fi
-}
-
-# dtest - Exercises the -d directory option of genext2fs
-# Creates an image with a file of given size and verifies it
-# Usage: dtest file-size number-of-blocks correct-checksum
-dtest () {
- size=$1; blocks=$2; blocksz=$3; checksum=$4
- echo Testing with file of size $size
- dgen $size $blocks $blocksz
- md5cmp $checksum
- gen_cleanup
-}
-
-# ftest - Exercises the -f spec-file option of genext2fs
-# Creates an image with the devices mentioned in the given spec
-# file and verifies it
-# Usage: ftest spec-file number-of-blocks correct-checksum
-ftest () {
- fname=$1; blocks=$2; checksum=$3
- echo Testing with devices file $fname
- fgen $fname $blocks
- md5cmp $checksum
- gen_cleanup
-}
-
-# NB: to regenerate these values, always use test-mount.sh, that is,
-# replace the following lines with the output of
-# sudo sh test-mount.sh|grep test
-
-dtest 0 4096 1024 3bc6424b8fcd51a0de34ee59d91d5f16
-dtest 0 2048 2048 230afa16496df019878cc2370c661cdc
-dtest 0 1024 4096 ebff5eeb38b70f3f1cd081e60eb44561
-dtest 0 8193 1024 f174804f6b433b552706cbbfc60c416d
-dtest 0 8194 1024 4855a55d0cbdc44584634df49ebd5711
-dtest 0 8193 4096 c493679698418ec7e6552005e2d2a6d8
-dtest 0 8194 2048 ec13f328fa7543563f35f494bddc059c
-dtest 1 4096 1024 09c569b6bfb45222c729c42d04d5451f
-dtest 1 1024 4096 d318a326fdc907810ae9e6b0a20e9b06
-dtest 12288 4096 1024 61febcbfbf32024ef99103fcdc282c39
-dtest 274432 4096 1024 0c517803552c55c1806e4220b0a0164f
-dtest 8388608 9000 1024 e0e5ea15bced10ab486d8135584b5d8e
-dtest 8388608 4500 2048 39f4d537a72f5053fd6891721c59680d
-dtest 8388608 2250 4096 1d697fa4bc2cfffe02ac91edfadc40bf
-dtest 16777216 20000 1024 fdf636eb905ab4dc1bf76dce5ac5d209
-dtest 16777216 10000 2048 f9824a81ea5e74fdf469c097927c292b
-ftest device_table.txt 4096 a0af06d944b11d2902dfd705484c64cc
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/genext2fs.8
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/genext2fs.8 (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/genext2fs.8 (nonexistent)
@@ -1,178 +0,0 @@
-.\" Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH GENEXT2FS 8 "October 11, 2015"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh disable hyphenation
-.\" .hy enable hyphenation
-.\" .ad l left justify
-.\" .ad b justify to both left and right margins
-.\" .nf disable filling
-.\" .fi enable filling
-.\" .br insert line break
-.\" .sp <n> insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-genext2fs \- ext2 filesystem generator for embedded systems
-.SH SYNOPSIS
-.B genext2fs
-.RI "[ options ] [ output\-image ]"
-.SH DESCRIPTION
-\fBgenext2fs\fP generates an ext2 filesystem
-as a normal (non-root) user. It does not require you to mount
-the image file to copy files on it, nor does it require that
-you become the superuser to make device nodes.
-
-The filesystem image is created in the file \fIoutput-image\fP. If not
-specified, it is sent to stdout.
-
-By default, the maximum number of inodes in the filesystem is the minimum
-number required to accommodate the initial contents.
-In this way, a minimal filesystem (typically read-only) can be created with
-minimal free inodes.
-If required, free inodes can be added by passing the relevant options.
-The filesystem image size in blocks can be minimised by trial and error.
-.SH OPTIONS
-.TP
-.BI "\-x, \-\-starting\-image image"
-Use this image as a starting point.
-.TP
-.BI "\-d, \-\-root directory[:path]"
-Add the given directory and contents at a particular path (by default
-the root).
-.TP
-.BI "\-D, \-\-devtable spec\-file[:path]"
-Use \fBspec-file\fP to specify inodes to be added, at the given
-path (by default the root), including files, directories and
-special files like devices.
-If the specified files are already present in the image, their
-ownership and permission modes will be adjusted accordingly.
-Furthermore, you can use a single table entry to create many devices
-with a range of minor numbers (see examples below).
-All specified inodes receive the mtime of \fBspec-file\fP itself.
-.TP
-.BI "\-B, \-\-block\-size bytes"
-Size of the block (valid block sizes: 1024, 20148 or 4096 bytes).
-.TP
-.BI "\-b, \-\-size\-in\-blocks blocks"
-Size of the image in blocks.
-.TP
-.BI "\-N, \-\-number\-of\-inodes inodes"
-Maximum number of inodes.
-.TP
-.BI "\-i, \-\-bytes\-per\-inode ratio"
-Used to calculate the maximum number of inodes from the available blocks.
-.TP
-.BI "\-m, \-\-reserved\-percentage"
-Number of reserved blocks as a percentage of size. Reserving 0 blocks will prevent creation of the "lost+found" directory.
-.TP
-.BI "\-o, \-\-creator\-os OS"
-The default value for Creator OS ('linux', 'hurd', 'freebsd' or a numerical value: 0, 1, 3).
-.TP
-.BI "\-g, \-\-block\-map path"
-Generate a block map file for this path.
-.TP
-.BI "\-e, \-\-fill\-value value"
-Fill unallocated blocks with value.
-.TP
-.BI "\-z, \-\-allow\-holes"
-Make files with holes.
-.TP
-.BI "\-f, \-\-faketime"
-Use a timestamp of 0 for inode and filesystem creation, instead of the present. Useful for testing.
-.TP
-.BI "\-q, \-\-squash"
-Squash permissions and owners (same as -P -U).
-.TP
-.BI "\-U, \-\-squash\-uids"
-Squash ownership of inodes added using the -d option, making them all
-owned by root:root.
-.TP
-.BI "\-P, \-\-squash\-perms"
-Squash permissions of inodes added using the -d option. Analogous to
-"umask 077".
-.TP
-.BI "\-v, \-\-verbose"
-Print resulting filesystem structure.
-.TP
-.BI "\-V, \-\-version"
-Print genext2fs version.
-.TP
-.BI "\-h, \-\-help"
-Display help.
-.SH EXAMPLES
-
-.EX
-.B
-genext2fs -b 1440 -d src /dev/fd0
-.EE
-
-All files in the
-.I src
-directory will be written to
-.B /dev/fd0
-as a new ext2 filesystem image. You can then mount the floppy as
-usual.
-
-.EX
-.B
-genext2fs -b 1024 -d src -D device_table.txt flashdisk.img
-.EE
-
-This example builds a filesystem from all the files in
-.I src,
-then device nodes are created based on the contents of the file
-.I device_table.txt.
-Entries in the device table take the form of:
-
-<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-
-where name is the file name and type can be one of:
-.RS
-.nf
-f A regular file
-d Directory
-c Character special device file
-b Block special device file
-p Fifo (named pipe)
-.fi
-.RE
-uid is the user id for the target file, gid is the group id for the
-target file. The rest of the entries (major, minor, etc) apply only
-to device special files.
-
-An example device file follows:
-
-.RS
-.nf
-# name type mode uid gid major minor start inc count
-
-/dev d 755 0 0 - - - - -
-/dev/mem c 640 0 0 1 1 0 0 -
-/dev/tty c 666 0 0 5 0 0 0 -
-/dev/tty c 666 0 0 4 0 0 1 6
-/dev/loop b 640 0 0 7 0 0 1 2
-/dev/hda b 640 0 0 3 0 0 0 -
-/dev/hda b 640 0 0 3 1 1 1 16
-/dev/log s 666 0 0 - - - - -
-.fi
-.RE
-
-This device table creates the /dev directory, a character device
-node /dev/mem (major 1, minor 1), and also creates /dev/tty,
-/dev/tty[0-5], /dev/loop[0-1], /dev/hda, /dev/hda1 to /dev/hda15 and
-/dev/log socket.
-
-.SH SEE ALSO
-.BR mkfs(8),
-.BR genromfs(8),
-.BR mkisofs(8),
-.BR mkfs.jffs2(1)
-.br
-.SH AUTHOR
-This manual page was written by David Kimdon <dwhedon@debian.org>,
-for the Debian GNU/Linux system (but may be used by others).
-Examples provided by Erik Andersen <andersen@codepoet.org>.
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-gen.lib
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-gen.lib (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-gen.lib (nonexistent)
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-# These routines contain the filesystem generation code.
-# This code is sourced by the other scripts so that digest
-# generation is consistent.
-
-# dgen - Exercises the -d directory option of genext2fs
-# Creates an image with a file of given size
-# Usage: dgen file-size number-of-blocks
-dgen () {
- size=$1; blocks=$2; blocksz=$3;
- rm -rf test
- mkdir -p test
- cd test
- if [ x$size = x0 ]; then
- > file.$1
- else
- dd if=/dev/zero of=file.$1 bs=$size count=1 2>/dev/null
- fi
- chmod 777 file.$1
- TZ=UTC-11 touch -t 200502070321.43 file.$1 .
- cd ..
- ./genext2fs -B $blocksz -N 17 -b $blocks -d test -f -o Linux -q ext2.img
-}
-
-# fgen - Exercises the -f spec-file option of genext2fs
-# Creates an image with the devices mentioned in the given spec file
-# Usage: fgen spec-file number-of-blocks
-fgen () {
- fname=$1; blocks=$2;
- mkdir -p test
- cp $fname test
- TZ=UTC-11 touch -t 200502070321.43 test/$fname
- ./genext2fs -N 92 -b $blocks -D test/$fname -f -o Linux ext2.img
-}
-
-# gen_cleanup - Remove the files generated by the above functions
-# Usage: gen_cleanup
-gen_cleanup () {
- rm -rf ext2.img test
-}
-
-# calc_digest - Return the MD5 digest of the test image
-# Usage: calc_digest
-calc_digest () {
- digest=`md5sum ext2.img 2>/dev/null | cut -f 1 -d " "`
- if [ x$digest != x ] ; then
- echo $digest
- else
- digest=`md5 ext2.img 2>/dev/null | cut -f 4 -d " "`
- echo $digest
- fi
-}
-
-LC_ALL=C
-export LC_ALL
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-mount.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-mount.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-mount.sh (nonexistent)
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# Use this script if you need to regenerate the digest values
-# in test.sh, or if you don't care about digests and you just
-# want to see some fsck results. Should be run as root.
-
-set -e
-
-. ./test-gen.lib
-
-test_cleanup () {
- umount mnt 2>/dev/null || true
- rm -rf mnt fout lsout
-}
-
-fail () {
- echo FAILED
- test_cleanup
- gen_cleanup
- exit 1
-}
-
-pass () {
- md5=`calc_digest`
- echo PASSED
- echo $@ $md5
- test_cleanup
- gen_cleanup
-}
-
-# dtest-mount - Exercise the -d directory option of genext2fs
-# Creates an image with a file of given size, verifies it
-# and returns the command line with which to invoke dtest()
-# Usage: dtest-mount file-size number-of-blocks
-dtest_mount () {
- size=$1; blocks=$2; blocksz=$3;
- echo Testing $blocks blocks of $blocksz bytes with file of size $size
- dgen $size $blocks $blocksz
- /sbin/e2fsck -fn ext2.img || fail
- mkdir -p mnt
- mount -t ext2 -o ro,loop ext2.img mnt || fail
- if (! [ -f mnt/file.$size ]) || \
- [ $size != "`ls -al mnt | grep file.$size |
- awk '{print $5}'`" ] ; then
- fail
- fi
- pass dtest $size $blocks $blocksz
-}
-
-# ftest-mount - Exercise the -f spec-file option of genext2fs
-# Creates an image with the devices mentioned in the given spec
-# file, verifies it, and returns the command line with which to
-# invoke ftest()
-# Usage: ftest-mount spec-file number-of-blocks
-ftest_mount () {
- fname=$1; blocks=$2
- echo Testing with devices file $fname
- fgen $fname $blocks
- /sbin/e2fsck -fn ext2.img || fail
- mkdir -p mnt
- mount -t ext2 -o ro,loop ext2.img mnt || fail
- [ -d mnt/dev ] || fail
- # Exclude those devices that have interpolated
- # minor numbers, as being too hard to match.
- egrep -v "(hda|hdb|tty|loop|ram|ubda)" $fname | \
- grep '^[^ #]* [bc]' | \
- awk '{print $1,$4,$5,$6","$7}'| \
- sort -d -k3.6 > fout
- ls -aln mnt/dev | \
- egrep -v "(hda|hdb|tty|loop|ram|ubda)" | \
- grep ^[bc] | \
- awk '{ print "/dev/"$10,$3,$4,$5$6}' | \
- sort -d -k3.6 > lsout
- diff fout lsout || fail
- pass ftest $fname $blocks
-}
-
-dtest_mount 0 4096 1024
-dtest_mount 0 2048 2048
-dtest_mount 0 1024 4096
-dtest_mount 0 8193 1024
-dtest_mount 0 8194 1024
-dtest_mount 0 8193 4096
-dtest_mount 0 8194 2048
-dtest_mount 1 4096 1024
-dtest_mount 1 1024 4096
-dtest_mount 12288 4096 1024
-dtest_mount 274432 4096 1024
-dtest_mount 8388608 9000 1024
-dtest_mount 8388608 4500 2048
-dtest_mount 8388608 2250 4096
-dtest_mount 16777216 20000 1024
-dtest_mount 16777216 10000 2048
-
-ftest_mount device_table.txt 4096
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new/test-mount.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/genext2fs-1.4.1-new
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/file.list
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/file.list (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/file.list (nonexistent)
@@ -1,5 +0,0 @@
-genext2fs-1.4.1/genext2fs.8
-genext2fs-1.4.1/genext2fs.c
-genext2fs-1.4.1/test-gen.lib
-genext2fs-1.4.1/test-mount.sh
-genext2fs-1.4.1/test.sh
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/create.patch.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/create.patch.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=1.4.1
-
-tar --files-from=file.list -xJvf ../genext2fs-$VERSION.tar.xz
-mv genext2fs-$VERSION genext2fs-$VERSION-orig
-
-cp -rf ./genext2fs-$VERSION-new ./genext2fs-$VERSION
-
-diff -b --unified -Nr genext2fs-$VERSION-orig genext2fs-$VERSION > genext2fs-$VERSION-blocksize.patch
-
-mv genext2fs-$VERSION-blocksize.patch ../patches
-
-rm -rf ./genext2fs-$VERSION
-rm -rf ./genext2fs-$VERSION-orig
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-blocksize-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/patches/README
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/patches/README (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/patches/README (nonexistent)
@@ -1,10 +0,0 @@
-
-/* begin *
-
- genext2fs-1.4.1-blocksize.patch - adds the two options to set block size and CREATOR_OS.
- Also the two duncrions swap_goodblocks() [line: 1751]
- and swap_badblocks() [line: 1810] are fixed;
-
- genext2fs-1.4.1-configure.patch - changes according to new version of autotools.
-
- * end */
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/patches
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/patches (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/patches (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/patches
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4/ac_func_scanf_can_malloc.m4
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4/ac_func_scanf_can_malloc.m4 (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4/ac_func_scanf_can_malloc.m4 (nonexistent)
@@ -1,53 +0,0 @@
-dnl AC_FUNC_SCANF_CAN_MALLOC macro
-dnl
-dnl (c) Finn Thain 2006
-dnl Copying and distribution of this file, with or without modification,
-dnl are permitted in any medium without royalty provided the copyright
-dnl notice and this notice are preserved.
-
-# AC_FUNC_SCANF_CAN_MALLOC()
-# --------------------------------------
-AC_DEFUN([AC_FUNC_SCANF_CAN_MALLOC],
- [ AC_CHECK_HEADERS([stdlib.h])
- AC_CACHE_CHECK([whether scanf can malloc], [ac_cv_func_scanf_can_malloc],
- [ AC_RUN_IFELSE(
- [ AC_LANG_PROGRAM(
- [
-#include <stdio.h>
-#if STDC_HEADERS || HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
- ], [
- union { float f; char *p; } u;
- char *p;
- u.f = 0;
- char *scan_this = "56789";
- int matched = sscanf(scan_this, "%as", &u);
- if(matched < 1) return 1; /* shouldn't happens */
- if(u.f == (float)56789) return 2;
-
- p = u.p;
- while(*scan_this && *p == *scan_this) {
- ++p;
- ++scan_this;
- };
- free(u.p);
- if(*scan_this == 0) return 0;
- return 3;
- ])
- ],
- [ac_scanf_can_malloc=yes],
- [ac_scanf_can_malloc=no],
- [
-case $host_alias in
- *-*-linux* ) ac_scanf_can_malloc=yes ;;
- *-*-solaris* ) ac_scanf_can_malloc=no ;;
- *-*-darwin* ) ac_scanf_can_malloc=no ;;
- * ) ac_scanf_can_malloc=no ;;
-esac
- ])
- ])
-if test x$ac_scanf_can_malloc = "xyes"; then
- AC_DEFINE([SCANF_CAN_MALLOC], 1, [Define to 1 if the scanf %a conversion format mallocs a buffer. Undefine if %a format denotes a float.])
-fi
- ])
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4 (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4 (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/m4
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/configure.ac
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/configure.ac (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new/configure.ac (nonexistent)
@@ -1,41 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.59)
-AC_INIT([genext2fs],[1.4.1])
-
-builtin(include, [m4/ac_func_snprintf.m4])dnl
-builtin(include, [m4/ac_func_scanf_can_malloc.m4])dnl
-
-AM_INIT_AUTOMAKE([subdir-objects no-dist-gzip dist-xz])
-AC_CONFIG_HEADERS([config.h])
-
-AC_GNU_SOURCE
-
-# Checks for programs.
-AC_PROG_CC
-AC_PROG_INSTALL
-
-# Checks for header files.
-AC_HEADER_DIRENT
-AC_HEADER_STDC
-AC_HEADER_MAJOR
-AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h memory.h stddef.h stdint.h stdlib.h string.h strings.h unistd.h])
-AC_CHECK_HEADERS([libgen.h getopt.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_TYPE_UID_T
-AC_C_INLINE
-AC_CHECK_TYPE(size_t, unsigned)
-AC_CHECK_TYPE(ssize_t, signed)
-AC_CHECK_MEMBERS([struct stat.st_rdev])
-
-# Checks for library functions.
-AC_CHECK_FUNCS([getopt_long getline strtof])
-AC_FUNC_SNPRINTF
-AC_FUNC_SCANF_CAN_MALLOC
-
-AC_OUTPUT([Makefile],[
-chmod a+x $ac_top_srcdir/test-mount.sh $ac_top_srcdir/test.sh
-])
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/genext2fs-1.4.1-new
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/file.list
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/file.list (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/file.list (nonexistent)
@@ -1,2 +0,0 @@
-genext2fs-1.4.1/configure.in
-genext2fs-1.4.1/m4/ac_func_scanf_can_malloc.m4
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/create.patch.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/create.patch.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=1.4.1
-
-tar --files-from=file.list -xJvf ../genext2fs-$VERSION.tar.xz
-mv genext2fs-$VERSION genext2fs-$VERSION-orig
-
-cp -rf ./genext2fs-$VERSION-new ./genext2fs-$VERSION
-
-diff -b --unified -Nr genext2fs-$VERSION-orig genext2fs-$VERSION > genext2fs-$VERSION-configure.patch
-
-mv genext2fs-$VERSION-configure.patch ../patches
-
-rm -rf ./genext2fs-$VERSION
-rm -rf ./genext2fs-$VERSION-orig
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs/create-1.4.1-configure-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/genext2fs/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs/Makefile (nonexistent)
@@ -1,56 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/genext2fs
-
-versions = 1.4.1
-
-tarballs = $(addsuffix .tar.xz, $(addprefix genext2fs-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-patches = $(CURDIR)/patches/genext2fs-1.4.1-blocksize.patch
-patches += $(CURDIR)/patches/genext2fs-1.4.1-configure.patch
-
-.NOTPARALLEL: $(patches)
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-$(patches): $(sha1s)
- @echo -e "\n======= Create Patches =======\n" ; \
- ( cd create-1.4.1-blocksize-patch ; ./create.patch.sh ) ; \
- ( cd create-1.4.1-configure-patch ; ./create.patch.sh ) ; \
- echo -e "\n"
-
-download_clean:
- @rm -f $(tarballs) $(sha1s) $(patches)
Index: build-system-1.10.x/3pp/sources/packages/genext2fs
===================================================================
--- build-system-1.10.x/3pp/sources/packages/genext2fs (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/genext2fs (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/genext2fs
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/ruby/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/ruby/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/ruby/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/ruby
-
-
-versions = 3.2.0
-pkgname = ruby
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/ruby
===================================================================
--- build-system-1.10.x/3pp/sources/packages/ruby (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/ruby (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/ruby
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/fakeroot/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/fakeroot/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/fakeroot/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/fakeroot
-
-
-versions = 1.31
-pkgname = fakeroot
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/fakeroot
===================================================================
--- build-system-1.10.x/3pp/sources/packages/fakeroot (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/fakeroot (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/fakeroot
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/file.list
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/file.list (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/file.list (nonexistent)
@@ -1 +0,0 @@
-populatefs-1.1/src/mod_path.c
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src/mod_path.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src/mod_path.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src/mod_path.c (nonexistent)
@@ -1,203 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/sysmacros.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <ext2fs/ext2fs.h>
-
-#include "linklist.h"
-#include "log.h"
-#include "debugfs.h"
-#include "mod_path.h"
-
-static int modPath_path_len = 0;
-
-void modPath_set_pathLen(int pathLen)
-{
- modPath_path_len = pathLen;
-}
-
-void addPath(const char *path, int squash_uids, int squash_perms)
-{
- size_t len;
- char *full_name = NULL, *lnk = NULL;
- struct dirent *file = NULL;
- DIR *direc = NULL;
- struct stat st;
- int overWrite;
- __u16 inodeType;
-
- direc = opendir(path);
-
- if ( !direc )
- log_error("[Local fs opendir] Cannot open directory %s", path);
-
- while (( file = readdir(direc)) != NULL ) {
-
- if (( !strcmp(file->d_name, "." )) || ( !strcmp(file->d_name, ".." )))
- continue;
-
- len = strlen(path) + strlen( file->d_name ) + 3;
-
- if ( full_name ) {
- free( full_name );
- full_name = NULL;
- }
-
- full_name = (char*)malloc(len + 2);
- if ( !full_name )
- log_error("[Local fs stat] Memory allocation error ( full_name --> %s/%s )", path, file->d_name);
-
- memset(full_name, 0, len + 2);
- snprintf(full_name, len, "%s/%s", path, file->d_name);
-
- lstat(full_name, &st);
- mode_t fmt = st.st_mode & S_IFMT;
-
- if ( squash_uids )
- st.st_uid = st.st_gid = 0;
-
- if ( squash_perms )
- st.st_mode &= ~( LINUX_S_IRWXG | LINUX_S_IRWXO );
-
- overWrite = name_to_inode( file->d_name );
-
- if ( st.st_nlink > 1 ) {
- if (( lnk = linklist_add(st.st_dev, st.st_ino, full_name + modPath_path_len))) {
-
- if ( overWrite ) {
- log_action(ACT_RM, file->d_name, NULL, 0, 0, 0, 0, 0, 0, overWrite);
- if ( !do_rm(file->d_name))
- log_error("[Filesystem error] cannot rm %s/%s", log_cwd(), file->d_name);
- }
-
- log_action(ACT_HARDLINK, file->d_name, lnk, 0, 0, 0, 0, 0, 0, overWrite);
- do_hardlink(lnk, file->d_name);
- continue;
- }
- }
-
- if ( overWrite )
- inodeType = inode_mode( file->d_name );
-
- if (( fmt == S_IFDIR ) && ( overWrite ) && ( !LINUX_S_ISDIR(inodeType)))
- log_error("[Remote fs mismatch] %s/%s exists but isn't a directory when it should be.", log_cwd(), file->d_name);
- else if (( fmt != S_IFDIR) && ( overWrite )) {
- if ( LINUX_S_ISDIR(inodeType))
- log_error("[Remote fs mismatch] %s/%s exists but is a directory when it shouldn't be.", log_cwd(), file->d_name);
-
- if ((!LINUX_S_ISREG(inodeType)) && (!LINUX_S_ISLNK(inodeType)) &&
- (!LINUX_S_ISBLK(inodeType)) && (!LINUX_S_ISCHR(inodeType)) &&
- (!LINUX_S_ISFIFO(inodeType)) && (!LINUX_S_ISSOCK(inodeType)))
- log_error("[Remote fs mismatch] Existing file %s/%s has unknown/unsupported type [0x%x].", log_cwd(), file->d_name);
- }
-
- switch ( fmt ) {
- case S_IFDIR: // Directory
- log_action(ACT_MKDIR, file->d_name, NULL, 0, 0, 0, 0, 0, 0, overWrite);
-
- if ( !overWrite )
- if ( !do_mkdir( file->d_name ))
- log_error("[Filesystem error] cannot mkdir %s/%s", log_cwd(), file->d_name);
-
- log_action(ACT_CHMODE, file->d_name, NULL, st.st_mode, 0, 0, 0, 0, 0, overWrite);
- if ( !do_chmode(file->d_name, st.st_mode))
- log_error("[Filesystem error] Failed to chmode 0x%x for directory %s/%s", st.st_mode, log_cwd(), file->d_name);
- log_action(ACT_CHOWN, file->d_name, NULL, 0, st.st_uid, st.st_gid, 0, 0, 0, 0);
- if ( !do_chown(file->d_name, st.st_uid, st.st_gid))
- log_error("[Filesystem error] Failed to chown %ld, %ld for directory %s/%s", st.st_uid, st.st_gid, log_cwd(), file->d_name);
-
- log_action(ACT_CHDIR, file->d_name, NULL, 0, 0, 0, 0, 0, 0, 0);
- if ( !do_chdir( file->d_name ))
- log_error("[Filesystem error] cannot chdir to newly created %s/%s", log_cwd(), file->d_name);
-
- addPath(full_name, squash_uids, squash_perms);
-
- log_action(ACT_CHDIR, "..", NULL, 0, 0, 0, 0, 0, 0, 0);
- if ( !do_chdir(".."))
- log_error("[Filesystem error] cannot chdir to parent directory");
- break;
-
- case S_IFREG: // Regular file
-
- if ( overWrite ) {
- log_action(ACT_RM, file->d_name, NULL, 0, 0, 0, 0, 0, 0, overWrite);
- if ( !do_rm(file->d_name))
- log_error("[Filesystem error] cannot rm %s/%s", log_cwd(), file->d_name);
- }
-
- log_action(ACT_WRITE, file->d_name, NULL, 0, 0, 0, 0, 0, 0, overWrite);
- if ( !do_write(full_name, file->d_name))
- log_error("[Filesystem error] cannot write %s/%s", log_cwd(), file->d_name);
- break;
-
- case S_IFLNK: // Symbolic link
-
- lnk = (char*)malloc(MAX_PATHSIZE + 2);
- if ( !lnk )
- log_error("[symlink] Memory allocation error (lnk)");
- int len = readlink(full_name, lnk, MAX_PATHSIZE);
- if ( len == -1 ) {
- free(lnk);
- log_error("[Local filesystem error] Cannot read destination for link %s/%s", log_cwd(), file->d_name);
- } else lnk[len] = '\0';
-
- if ( overWrite ) {
- log_action(ACT_RM, file->d_name, NULL, 0, 0, 0, 0, 0, 0, overWrite);
- if ( !do_rm(file->d_name))
- log_error("[Filesystem error] cannot rm %s/%s", log_cwd(), file->d_name);
- }
-
- log_action(ACT_SYMLINK, file->d_name, lnk, 0, 0, 0, 0, 0, 0, overWrite);
- if ( !do_symlink(lnk, file->d_name))
- log_error("[Filesystem error] cannot symlink %s/%s --> %s", log_cwd(), file->d_name, lnk);
-
- free(lnk);
- break;
-
- case S_IFBLK: // Block device node
- case S_IFCHR: // Character device node
- case S_IFSOCK: // socket
- case S_IFIFO: // fifo
-
- if ( overWrite ) {
- log_action(ACT_RM, file->d_name, NULL, 0, 0, 0, 0, 0, 0, overWrite);
- if ( !do_rm(file->d_name))
- log_error("[Filesystem error] cannot rm %s/%s", log_cwd(), file->d_name);
- }
-
- char nodetype = ( fmt == S_IFBLK ? 'b' : ( fmt == S_IFCHR ? 'c' : ( fmt == S_IFSOCK ? 's' : 'p' )));
- unsigned long major = 0, minor = 0;
-
- if (( nodetype == 'b' ) || ( nodetype == 'c' )) {
- major = (long)major(st.st_rdev);
- minor = (long)minor(st.st_rdev);
- }
-
- log_action(ACT_MKNOD, file->d_name, NULL, 0, 0, 0, nodetype, major, minor, overWrite);
- if ( !do_mknod(file->d_name, nodetype, major, minor))
- log_error("[Filesystem error] cannot mknod %c %ld,%ld %s/%s", log_cwd(), nodetype, major, minor, log_cwd(), file->d_name);
- break;
- }
-
- if ( fmt != S_IFDIR ) { // Not dir ?
- log_action(ACT_CHMODE, file->d_name, NULL, st.st_mode, 0, 0, 0, 0, 0, overWrite);
- if ( !do_chmode(file->d_name, st.st_mode))
- log_error("[Filesystem error] Failed to chmode 0x%x for file %s/%s", st.st_mode, log_cwd(), file->d_name);
- log_action(ACT_CHOWN, file->d_name, NULL, 0, st.st_uid, st.st_gid, 0, 0, 0, 0);
- if ( !do_chown(file->d_name, st.st_uid, st.st_gid))
- log_error("[Filesystem error] Failed to chown %ld, %ld for file %s/%s", st.st_uid, st.st_gid, log_cwd(), file->d_name);
- }
-
- if ( full_name ) {
- free( full_name );
- full_name = NULL;
- }
- }
-
- closedir(direc);
-
-}
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new/src
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/populatefs-1.1-new
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/create.patch.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/create.patch.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=1.1
-
-tar --files-from=file.list -xJvf ../populatefs-$VERSION.tar.xz
-mv populatefs-$VERSION populatefs-$VERSION-orig
-
-cp -rf ./populatefs-$VERSION-new ./populatefs-$VERSION
-
-diff -b --unified -Nr populatefs-$VERSION-orig populatefs-$VERSION > populatefs-$VERSION-sys-macros.patch
-
-mv populatefs-$VERSION-sys-macros.patch ../patches
-
-rm -rf ./populatefs-$VERSION
-rm -rf ./populatefs-$VERSION-orig
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-sys-macros-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/file.list
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/file.list (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/file.list (nonexistent)
@@ -1 +0,0 @@
-populatefs-1.1/Makefile
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new/Makefile (nonexistent)
@@ -1,108 +0,0 @@
-DESTDIR?=
-prefix?=/usr
-bindir?=${prefix}/bin
-libdir?=${prefix}/lib
-includedir?=${prefix}/include
-CC?=gcc
-AR?=ar
-RANLIB?=ranlib
-CP=cp
-LN_S?=ln -s
-RM?=rm -f
-MKDIR?=mkdir
-RMDIR?=rmdir
-INSTALL?=install
-STRIP?=strip -s
-CFLAGS?= -fPIC -Wall
-EXTRA_CFLAGS?= -DHAVE_GETOPT_H=1
-INCLUDES?=
-LDFLAGS?= -L/usr/lib
-EXTRA_LDFLAGS?=
-LIBS= -lext2fs -lm
-EXTRA_LIBS?=
-EXTRAVERSION?=
-
-##################################################
-# #
-# Don't go changing stuff further this point.. #
-# Unless, you really know what you are doing.. #
-# #
-##################################################
-
-VERSION_MAJOR=1
-VERSION_MINOR=1
-VERSION=$(VERSION_MAJOR).$(VERSION_MINOR)
-LIBPOPULATEFS=libpopulatefs
-LIBPOPULATEFS_DEPENDS=src/debugfs.o src/util.o src/linklist.o src/mod_file.o src/mod_path.o src/log.o
-LDADD_LIBPOPULATEFS= -lpopulatefs
-OBJS=src/util.o src/log.o src/linklist.o src/debugfs.o src/mod_path.o src/mod_file.o
-HDRS=src/log.h src/util.h src/linklist.h src/debugfs.h src/mod_path.h src/mod_file.h
-
-all: $(HDRS) $(OBJS) src/main.o src/$(LIBPOPULATEFS).a src/$(LIBPOPULATEFS).so.$(VERSION) src/populatefs
-
-src/populatefs: src/main.o src/$(LIBPOPULATEFS).a $(HDRS)
- $(CC) $< -o $@ -L./src $(LDFLAGS) $(EXTRA_LDFLAGS) -Wl,-Bstatic $(LDADD_LIBPOPULATEFS) -Wl,-Bdynamic $(LIBS) $(EXTRA_LIBS)
-
-src/%.o: src/%.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DPOPULATEFS_VERSION="\"$(VERSION)\"" -DPOPULATEFS_EXTRAVERSION="\"$(EXTRAVERSION)\"" $(INCLUDES) -c $< -o $@
-
-src/$(LIBPOPULATEFS).a: $(LIBPOPULATEFS_DEPENDS)
- $(AR) rcsv $@ $(LIBPOPULATEFS_DEPENDS)
- $(RANLIB) $@
-
-src/$(LIBPOPULATEFS).so.$(VERSION): $(LIBPOPULATEFS_DEPENDS)
- $(CC) -shared -Wl,-soname,$(LIBPOPULATEFS).so -Wl,-soname,$(LIBPOPULATEFS).so.$(VERSION_MAJOR) -o $@ $(LIBPOPULATEFS_DEPENDS)
-
-install-bin: src/populatefs
- $(MKDIR) -p $(DESTDIR)/$(bindir)
- $(INSTALL) src/populatefs $(DESTDIR)/$(bindir)/
- $(STRIP) $(DESTDIR)/$(bindir)/populatefs
-
-install-headers: $(HDRS)
- $(MKDIR) -p $(DESTDIR)/$(includedir)/populatefs
- $(CP) src/log.h $(DESTDIR)/$(includedir)/populatefs/
- $(CP) src/util.h $(DESTDIR)/$(includedir)/populatefs/
- $(CP) src/linklist.h $(DESTDIR)/$(includedir)/populatefs/
- $(CP) src/debugfs.h $(DESTDIR)/$(includedir)/populatefs/
- $(CP) src/mod_path.h $(DESTDIR)/$(includedir)/populatefs/
- $(CP) src/mod_file.h $(DESTDIR)/$(includedir)/populatefs/
-
-install-libs: src/$(LIBPOPULATEFS).so.$(VERSION)
- $(MKDIR) -p $(DESTDIR)/$(libdir)
- $(RM) $(DESTDIR)/$(libdir)/$(LIBPOPULATEFS).so.$(VERSION_MAJOR) \
- $(DESTDIR)/$(libdir)//$(LIBPOPULATEFS).so
- $(INSTALL) src/$(LIBPOPULATEFS).so.$(VERSION) $(DESTDIR)/$(libdir)/
- $(STRIP) $(DESTDIR)/$(libdir)/$(LIBPOPULATEFS).so.$(VERSION)
- $(LN_S) $(LIBPOPULATEFS).so.$(VERSION) $(DESTDIR)/$(libdir)/$(LIBPOPULATEFS).so.$(VERSION_MAJOR)
- $(LN_S) $(LIBPOPULATEFS).so.$(VERSION) $(DESTDIR)/$(libdir)/$(LIBPOPULATEFS).so
-
-install-static-libs: src/$(LIBPOPULATEFS).a
- $(MKDIR) -p $(DESTDIR)/$(libdir)
- $(CP) src/$(LIBPOPULATEFS).a $(DESTDIR)/$(libdir)/
-
-uninstall-bin:
- $(RM) $(DESTDIR)/$(bindir)/populatefs
-
-uninstall-headers:
- $(RM) $(DESTDIR)/$(includedir)/populatefs/log.h
- $(RM) $(DESTDIR)/$(includedir)/populatefs/util.h
- $(RM) $(DESTDIR)/$(includedir)/populatefs/linklist.h
- $(RM) $(DESTDIR)/$(includedir)/populatefs/debugfs.h
- $(RM) $(DESTDIR)/$(includedir)/populatefs/mod_path.h
- $(RM) $(DESTDIR)/$(includedir)/populatefs/mod_file.h
- $(RMDIR) --ignore-fail-on-non-empty $(DESTDIR)/$(includedir)/populatefs
-
-uninstall-libs:
- $(RM) $(DESTDIR)/$(libdir)/$(LIBPOPULATEFS).so*
- $(RMDIR) --ignore-fail-on-non-empty $(DESTDIR)/$(libdir)/populatefs
-
-uninstall-static-libs:
- $(RM) $(DESTDIR)/$(libdir)/populatefs/$(LIBPOPULATEFS).a
- $(RMDIR) --ignore-fail-on-non-empty $(DESTDIR)/$(libdir)/populatefs
-
-install: all install-bin install-headers install-libs
-
-uninstall: uninstall-bin uninstall-libs
-
-clean:
- $(RM) src/*.o src/*.a src/*.so* src/populatefs
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/populatefs-1.1-new
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/create.patch.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/create.patch.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=1.1
-
-tar --files-from=file.list -xJvf ../populatefs-$VERSION.tar.xz
-mv populatefs-$VERSION populatefs-$VERSION-orig
-
-cp -rf ./populatefs-$VERSION-new ./populatefs-$VERSION
-
-diff -b --unified -Nr populatefs-$VERSION-orig populatefs-$VERSION > populatefs-$VERSION-version.patch
-
-mv populatefs-$VERSION-version.patch ../patches
-
-rm -rf ./populatefs-$VERSION
-rm -rf ./populatefs-$VERSION-orig
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/create-1.1-version-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/patches/README
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/patches/README (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/patches/README (nonexistent)
@@ -1,6 +0,0 @@
-
-/* begin *
-
- populatefs-1.1-version.patch - Set version according to the latest snapshot of source code.
-
- * end */
Index: build-system-1.10.x/3pp/sources/packages/populatefs/patches
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/patches (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/patches (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs/patches
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/populatefs/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs/Makefile (nonexistent)
@@ -1,59 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/populatefs
-
-
-versions = 1.1
-pkgname = populatefs
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-patches = $(CURDIR)/patches/populatefs-1.1-sys-macros.patch
-patches += $(CURDIR)/patches/populatefs-1.1-version.patch
-
-.NOTPARALLEL: $(patches)
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-$(patches): $(sha1s)
- @echo -e "\n======= Create Patches =======\n" ; \
- ( cd create-1.1-sys-macros-patch ; ./create.patch.sh ) ; \
- ( cd create-1.1-version-patch ; ./create.patch.sh ) ; \
- echo -e "\n"
-
-download_clean:
- @rm -f $(tarballs) $(sha1s) $(patches)
Index: build-system-1.10.x/3pp/sources/packages/populatefs
===================================================================
--- build-system-1.10.x/3pp/sources/packages/populatefs (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/populatefs (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/populatefs
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/qemu/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/qemu/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/qemu/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/qemu
-
-
-versions = 8.0.2
-pkgname = qemu
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/qemu
===================================================================
--- build-system-1.10.x/3pp/sources/packages/qemu (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/qemu (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/qemu
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/pkgtools/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/pkgtools/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/pkgtools/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/pkgtools
-
-
-versions = 0.2.2
-pkgname = pkgtools
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/pkgtools
===================================================================
--- build-system-1.10.x/3pp/sources/packages/pkgtools (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/pkgtools (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/pkgtools
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/perl/patches/README
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/patches/README (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/patches/README (nonexistent)
@@ -1,6 +0,0 @@
-
-/* begin *
-
- perl-5.36.0-multilib.patch - Install to lib32, lib64 depends on ARCH.
-
- * end */
Index: build-system-1.10.x/3pp/sources/packages/perl/patches
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/patches (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/patches (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/perl/patches
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/perl/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/Makefile (nonexistent)
@@ -1,57 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/perl
-
-
-versions = 5.36.0
-pkgname = perl
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-patches = $(CURDIR)/patches/perl-5.36.0-multilib.patch
-
-.NOTPARALLEL: $(patches)
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-$(patches): $(sha1s)
- @echo -e "\n======= Create Patches =======\n" ; \
- ( cd create-5.36.0-multilib-patch ; ./create.patch.sh ) ; \
- echo -e "\n"
-
-download_clean:
- @rm -f $(tarballs) $(sha1s) $(patches)
Index: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/file.list
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/file.list (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/file.list (nonexistent)
@@ -1 +0,0 @@
-perl-5.36.0/Configure
Index: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new/Configure
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new/Configure (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new/Configure (nonexistent)
@@ -1,25808 +0,0 @@
-#! /bin/sh
-#
-# If these # comments don't work, trim them. Don't worry about any other
-# shell scripts, Configure will trim # comments from them for you.
-#
-# (If you are trying to port this package to a machine without sh,
-# I would suggest you have a look at the prototypical config_h.SH file
-# and edit it to reflect your system. Some packages may include samples
-# of config.h for certain machines, so you might look for one of those.)
-#
-# Yes, you may rip this off to use in other distribution packages. This
-# script belongs to the public domain and cannot be copyrighted.
-#
-# Note: this Configure script was generated automatically by the tool
-# called "metaconfig". Rather than working with this copy of Configure,
-# you should use metaconfig. Perl uses a modified version of this
-# tool, and this, together with the metaconfig units, are available
-# in the git repository:
-# $ git clone https://github.com/Perl/metaconfig metaconfig
-# The original dist package (including metaconfig) is available on github:
-# $ git clone https://github.com/rmanfredi/dist.git dist-git
-#
-# Though this script was generated by metaconfig from metaunits, it is
-# OK to send patches against Configure itself (but not to commit them
-# to blead). It's up to
-# the Configure maintainers to backport the patch to the metaunits if it
-# is accepted. Exceptions to this rule, and more information, is in
-# Porting/pumpkin.pod.
-
-# Generated using [metaconfig 3.5 PL0]
-# with additional metaconfig patches from https://github.com/Perl/metaconfig
-
-cat >c1$$ <<EOF
-ARGGGHHHH!!!!!
-
-SCO csh still thinks true is false. Write to SCO today and tell them that next
-year Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-)
-
-(Actually, Configure ought to just patch csh in place. Hmm. Hmmmmm. All
-we'd have to do is go in and swap the && and || tokens, wherever they are.)
-
-[End of diatribe. We now return you to your regularly scheduled programming...]
-EOF
-cat >c2$$ <<EOF
-
-OOPS! You naughty creature! You didn't run Configure with sh!
-I will attempt to remedy the situation by running sh for you...
-EOF
-
-true || cat c1$$ c2$$
-true || exec sh $0 $argv:q
-
-(exit $?0) || cat c2$$
-(exit $?0) || exec sh $0 $argv:q
-rm -f c1$$ c2$$
-
-if test -f /dev/cputype -a -f /dev/drivers -a -f /dev/osversion; then
- cat <<EOF
-***
-*** I'm sorry but this system looks like Plan 9 and Plan 9 doesn't do
-*** Configure that well. (Plan 9 is close to UNIX but not close enough.)
-*** Please read the README.plan9 for further instructions.
-*** Cannot continue, aborting.
-***
-EOF
- exit 1
-fi
-
-if test -f /sys/utilities/MultiView ; then
- # AmigaOS, test -c for /dev/null is not useful
- :
-elif test ! -c /dev/null ; then
- cat <<EOF
-***
-*** I'm sorry, but /dev/null appears to be a file rather than a device.
-*** Please consult your operating sytem's notes for making a device
-*** in /dev.
-*** Cannot continue, aborting.
-***
-EOF
- exit 1
-fi
-
-: compute my invocation name
-me=$0
-case "$0" in
-*/*)
- me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null`
- test "$me" || me=$0
- ;;
-esac
-
-: Proper separator for the PATH environment variable
-p_=:
-: On OS/2 this directory should exist if this is not floppy only system ":-]"
-if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' 2>&1 ) 2>&1 >/dev/null ; then
- if test -n "$OS2_SHELL"; then
- p_=\;
- PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
- OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
- is_os2=yes
- elif test -n "$DJGPP"; then
- case "X${MACHTYPE:-nonesuchmach}" in
- *cygwin|*msys) ;;
- *) p_=\; ;;
- esac
- fi
-fi
-
-: Proper PATH setting
-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
-paths="$paths /sbin /usr/sbin /usr/libexec"
-paths="$paths /system/gnu_library/bin"
-
-for p in $paths
-do
- case "$p_$PATH$p_" in
- *$p_$p$p_*) ;;
- *) test -d $p && PATH=$PATH$p_$p ;;
- esac
-done
-
-PATH=.$p_$PATH
-export PATH
-
-: shall we be using ksh?
-inksh=''
-needksh=''
-avoidksh=''
-newsh=/bin/ksh
-changesh=''
-if (PATH=.; alias -x) >/dev/null 2>&1; then
- inksh=true
-fi
-if test -f /hp-ux -a -f /bin/ksh; then
- needksh='to avoid sh bug in "here document" expansion'
-fi
-if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then
- if test X`/usr/bin/uname -v` = X4; then
- avoidksh="to avoid AIX 4's /bin/sh"
- newsh=/usr/bin/bsh
- fi
-fi
-if test -f /osf_boot -a -f /usr/sbin/setld; then
- if test X`/usr/bin/uname -s` = XOSF1; then
- avoidksh="to avoid Digital UNIX' ksh"
- newsh=/bin/sh
- unset BIN_SH
- fi
-fi
-case "$inksh/$needksh" in
-/[a-z]*)
- ENV=''
- changesh=true
- reason="$needksh"
- ;;
-esac
-case "$inksh/$avoidksh" in
-true/[a-z]*)
- changesh=true
- reason="$avoidksh"
- ;;
-esac
-case "$inksh/$needksh-$avoidksh-" in
-true/--)
- cat <<EOM
-(I see you are using the Korn shell. Some ksh's blow up on $me,
-mainly on older exotic systems. If yours does, try the Bourne shell instead.)
-EOM
- ;;
-esac
-case "$changesh" in
-true)
- export newsh
- echo "(Feeding myself to $newsh $reason.)"
- case "$0" in
- Configure|*/Configure) exec $newsh $0 "$@";;
- *) exec $newsh Configure "$@";;
- esac
- ;;
-esac
-test -x "${newsh}" || unset newsh
-
-: if needed, set CDPATH to a harmless value that is not chatty
-: avoid bash 2.02 problems with empty CDPATH.
-case "$CDPATH" in
-'') ;;
-*) case "$SHELL" in
- *bash*) CDPATH='.' ;;
- *) CDPATH='' ;;
- esac
- ;;
-esac
-
-: Configure runs within the UU subdirectory
-test -d UU || mkdir UU
-cd UU && rm -f ./*
-
-ccname=''
-ccversion=''
-ccsymbols=''
-cppccsymbols=''
-cppsymbols=''
-from=''
-hostgenerate=''
-hostosname=''
-hostperl=''
-run=''
-targetarch=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-to=''
-usecrosscompile=''
-extern_C=''
-mistrustnm=''
-usedevel=''
-perllibs=''
-dynamic_ext=''
-extensions=''
-known_extensions=''
-nonxs_ext=''
-static_ext=''
-uselanginfo=''
-useopcode=''
-useposix=''
-extras=''
-d_bsd=''
-d_eunice=''
-d_xenix=''
-eunicefix=''
-ar=''
-awk=''
-bash=''
-bison=''
-byacc=''
-cat=''
-chgrp=''
-chmod=''
-chown=''
-comm=''
-compress=''
-cp=''
-cpio=''
-cpp=''
-csh=''
-date=''
-echo=''
-egrep=''
-emacs=''
-expr=''
-find=''
-flex=''
-gmake=''
-grep=''
-gzip=''
-inews=''
-ksh=''
-less=''
-line=''
-lint=''
-ln=''
-lp=''
-lpr=''
-ls=''
-mail=''
-mailx=''
-make=''
-mkdir=''
-more=''
-mv=''
-nm=''
-nroff=''
-perl=''
-pg=''
-pmake=''
-pr=''
-rm=''
-rmail=''
-sed=''
-sendmail=''
-shar=''
-sleep=''
-smail=''
-sort=''
-submit=''
-tail=''
-tar=''
-tbl=''
-tee=''
-test=''
-touch=''
-tr=''
-troff=''
-uname=''
-uniq=''
-uuname=''
-vi=''
-zcat=''
-zip=''
-full_ar=''
-full_sed=''
-libswanted=''
-hint=''
-myuname=''
-osname=''
-osvers=''
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-sysroot=''
-_a=''
-_exe=''
-_o=''
-archobjs=''
-exe_ext=''
-firstmakefile=''
-lib_ext=''
-obj_ext=''
-path_sep=''
-rm_try=''
-afs=''
-afsroot=''
-alignbytes=''
-archlib=''
-archlibexp=''
-d_archlib=''
-installarchlib=''
-archname=''
-myarchname=''
-useversionedarchname=''
-d_atolf=''
-d_atoll=''
-baserev=''
-bin=''
-binexp=''
-initialinstalllocation=''
-installbin=''
-userelocatableinc=''
-byteorder=''
-cc=''
-ccflags=''
-cppflags=''
-ldflags=''
-lkflags=''
-locincpth=''
-optimize=''
-cf_email=''
-cf_by=''
-cf_time=''
-charbits=''
-charsize=''
-compiler_warning=''
-contains=''
-cpp_stuff=''
-cpplast=''
-cppminus=''
-cpprun=''
-cppstdin=''
-d__fwalk=''
-d_accept4=''
-d_access=''
-d_accessx=''
-d_acosh=''
-d_aintl=''
-d_alarm=''
-asctime_r_proto=''
-d_asctime_r=''
-d_asinh=''
-d_atanh=''
-d_attribute_always_inline=''
-d_attribute_deprecated=''
-d_attribute_format=''
-d_attribute_malloc=''
-d_attribute_nonnull=''
-d_attribute_noreturn=''
-d_attribute_pure=''
-d_attribute_unused=''
-d_attribute_warn_unused_result=''
-d_printf_format_null=''
-d_backtrace=''
-d_non_int_bitfields=''
-d_builtin_choose_expr=''
-d_builtin_expect=''
-d_builtin_add_overflow=''
-d_builtin_mul_overflow=''
-d_builtin_sub_overflow=''
-d_c99_variadic_macros=''
-d_casti32=''
-castflags=''
-d_castneg=''
-d_cbrt=''
-d_chown=''
-d_chroot=''
-d_chsize=''
-d_class=''
-d_clearenv=''
-d_closedir=''
-d_void_closedir=''
-d_cmsghdr_s=''
-d_copysign=''
-d_copysignl=''
-d_cplusplus=''
-cryptlib=''
-d_crypt=''
-crypt_r_proto=''
-d_crypt_r=''
-d_csh=''
-full_csh=''
-d_ctermid=''
-ctermid_r_proto=''
-d_ctermid_r=''
-ctime_r_proto=''
-d_ctime_r=''
-d_cuserid=''
-d_dbminitproto=''
-d_difftime=''
-d_dir_dd_fd=''
-d_dirfd=''
-d_dladdr=''
-d_dlerror=''
-d_dlopen=''
-d_dlsymun=''
-d_dosuid=''
-d_suidsafe=''
-d_drand48_r=''
-drand48_r_proto=''
-d_drand48proto=''
-d_dup2=''
-d_dup3=''
-d_eaccess=''
-d_endgrent=''
-d_endgrent_r=''
-endgrent_r_proto=''
-d_endhent=''
-d_endhostent_r=''
-endhostent_r_proto=''
-d_endnent=''
-d_endnetent_r=''
-endnetent_r_proto=''
-d_endpent=''
-d_endprotoent_r=''
-endprotoent_r_proto=''
-d_endpwent=''
-d_endpwent_r=''
-endpwent_r_proto=''
-d_endsent=''
-d_endservent_r=''
-endservent_r_proto=''
-d_erf=''
-d_erfc=''
-d_exp2=''
-d_expm1=''
-d_faststdio=''
-d_fchdir=''
-d_fchmod=''
-d_fchown=''
-d_fcntl=''
-d_fcntl_can_lock=''
-d_fd_macros=''
-d_fd_set=''
-d_fds_bits=''
-d_fdclose=''
-d_fdim=''
-d_fegetround=''
-d_ffs=''
-d_ffsl=''
-d_fgetpos=''
-d_finite=''
-d_finitel=''
-d_flexfnam=''
-d_flock=''
-d_flockproto=''
-d_fma=''
-d_fmax=''
-d_fmin=''
-d_fork=''
-d_fp_class=''
-d_fp_classl=''
-d_fpclass=''
-d_fp_classify=''
-d_fpclassify=''
-d_fpclassl=''
-d_fpgetround=''
-d_fpos64_t=''
-d_frexpl=''
-d_fs_data_s=''
-d_fchmodat=''
-d_linkat=''
-d_openat=''
-d_renameat=''
-d_unlinkat=''
-d_fseeko=''
-d_fsetpos=''
-d_fstatfs=''
-d_fsync=''
-d_ftello=''
-d_ftime=''
-d_gettimeod=''
-d_futimes=''
-d_gai_strerror=''
-d_Gconvert=''
-d_getaddrinfo=''
-d_getcwd=''
-d_getenv_preserves_other_thread=''
-d_getespwnam=''
-d_getfsstat=''
-d_getgrent=''
-d_getgrent_r=''
-getgrent_r_proto=''
-d_getgrgid_r=''
-getgrgid_r_proto=''
-d_getgrnam_r=''
-getgrnam_r_proto=''
-d_getgrps=''
-d_gethbyaddr=''
-d_gethbyname=''
-d_gethent=''
-aphostname=''
-d_gethname=''
-d_phostname=''
-d_uname=''
-d_gethostbyaddr_r=''
-gethostbyaddr_r_proto=''
-d_gethostbyname_r=''
-gethostbyname_r_proto=''
-d_gethostent_r=''
-gethostent_r_proto=''
-d_gethostprotos=''
-d_getitimer=''
-d_getlogin=''
-d_getlogin_r=''
-getlogin_r_proto=''
-d_getmnt=''
-d_getmntent=''
-d_getnameinfo=''
-d_getnbyaddr=''
-d_getnbyname=''
-d_getnent=''
-d_getnetbyaddr_r=''
-getnetbyaddr_r_proto=''
-d_getnetbyname_r=''
-getnetbyname_r_proto=''
-d_getnetent_r=''
-getnetent_r_proto=''
-d_getnetprotos=''
-d_getpagsz=''
-d_getpent=''
-d_getpgid=''
-d_getpgrp2=''
-d_bsdgetpgrp=''
-d_getpgrp=''
-d_getppid=''
-d_getprior=''
-d_getpbyname=''
-d_getpbynumber=''
-d_getprotobyname_r=''
-getprotobyname_r_proto=''
-d_getprotobynumber_r=''
-getprotobynumber_r_proto=''
-d_getprotoent_r=''
-getprotoent_r_proto=''
-d_getprotoprotos=''
-d_getprpwnam=''
-d_getpwent=''
-d_getpwent_r=''
-getpwent_r_proto=''
-d_getpwnam_r=''
-getpwnam_r_proto=''
-d_getpwuid_r=''
-getpwuid_r_proto=''
-d_getsent=''
-d_getservbyname_r=''
-getservbyname_r_proto=''
-d_getservbyport_r=''
-getservbyport_r_proto=''
-d_getservent_r=''
-getservent_r_proto=''
-d_getservprotos=''
-d_getspnam=''
-d_getspnam_r=''
-getspnam_r_proto=''
-d_getsbyname=''
-d_getsbyport=''
-d_gmtime_r=''
-gmtime_r_proto=''
-d_gnulibc=''
-gnulibc_version=''
-d_hasmntopt=''
-d_htonl=''
-d_hypot=''
-d_ilogb=''
-d_ilogbl=''
-d_inetaton=''
-d_inetntop=''
-d_inetpton=''
-d_int64_t=''
-d_isascii=''
-d_isblank=''
-d_isfinite=''
-d_isfinitel=''
-d_isinf=''
-d_isinfl=''
-d_isless=''
-d_isnan=''
-d_isnanl=''
-d_isnormal=''
-d_j0=''
-d_j0l=''
-d_killpg=''
-d_lc_monetary_2008=''
-d_lchown=''
-d_ldbl_dig=''
-d_lgamma=''
-d_lgamma_r=''
-d_libm_lib_version=''
-d_link=''
-d_llrint=''
-d_llrintl=''
-d_llround=''
-d_llroundl=''
-d_localeconv_l=''
-d_localtime_r=''
-d_localtime_r_needs_tzset=''
-localtime_r_proto=''
-d_locconv=''
-d_lockf=''
-d_log1p=''
-d_log2=''
-d_logb=''
-d_ldexpl=''
-d_long_double_style_ieee=''
-d_long_double_style_ieee_doubledouble=''
-d_long_double_style_ieee_extended=''
-d_long_double_style_ieee_std=''
-d_long_double_style_vax=''
-d_longdbl=''
-longdblkind=''
-longdblsize=''
-d_longlong=''
-longlongsize=''
-d_lrint=''
-d_lrintl=''
-d_lround=''
-d_lroundl=''
-d_lseekproto=''
-d_lstat=''
-d_madvise=''
-d_malloc_good_size=''
-d_malloc_size=''
-d_malloc_usable_size=''
-d_mblen=''
-d_mbrlen=''
-d_mbrtowc=''
-d_mbstowcs=''
-d_mbtowc=''
-d_memmem=''
-d_memrchr=''
-d_mkdir=''
-d_mkdtemp=''
-d_mkfifo=''
-d_mkostemp=''
-d_mkstemp=''
-d_mkstemps=''
-d_mktime=''
-d_mmap=''
-mmaptype=''
-d_modfl=''
-d_modflproto=''
-d_mprotect=''
-d_msg=''
-d_msgctl=''
-d_msgget=''
-d_msghdr_s=''
-d_msgrcv=''
-d_msgsnd=''
-d_msync=''
-d_munmap=''
-d_nan=''
-d_nanosleep=''
-d_nearbyint=''
-d_duplocale=''
-d_freelocale=''
-d_newlocale=''
-d_querylocale=''
-d_uselocale=''
-i_xlocale=''
-xlocale_needed=''
-d_nextafter=''
-d_nexttoward=''
-d_nice=''
-d_nl_langinfo=''
-d_nl_langinfo_l=''
-d_thread_safe_nl_langinfo_l=''
-d_off64_t=''
-d_open3=''
-d_fpathconf=''
-d_pathconf=''
-d_pause=''
-d_pipe2=''
-d_pipe=''
-d_poll=''
-d_portable=''
-d_prctl=''
-d_prctl_set_name=''
-d_procselfexe=''
-procselfexe=''
-d_old_pthread_create_joinable=''
-old_pthread_create_joinable=''
-d_pthread_atfork=''
-d_pthread_attr_setscope=''
-d_pthread_yield=''
-d_sched_yield=''
-sched_yield=''
-d_ptrdiff_t=''
-d_qgcvt=''
-d_random_r=''
-random_r_proto=''
-d_readdir64_r=''
-readdir64_r_proto=''
-d_readdir=''
-d_rewinddir=''
-d_seekdir=''
-d_telldir=''
-d_readdir_r=''
-readdir_r_proto=''
-d_readlink=''
-d_readv=''
-d_recvmsg=''
-d_re_comp=''
-d_regcmp=''
-d_regcomp=''
-d_remainder=''
-d_remquo=''
-d_rename=''
-d_rint=''
-d_rmdir=''
-d_round=''
-d_sbrkproto=''
-d_scalbn=''
-d_scalbnl=''
-d_select=''
-d_sem=''
-d_semctl=''
-d_semget=''
-d_semop=''
-d_sendmsg=''
-d_setegid=''
-d_seteuid=''
-d_setgrent=''
-d_setgrent_r=''
-setgrent_r_proto=''
-d_setgrps=''
-d_sethent=''
-d_sethostent_r=''
-sethostent_r_proto=''
-d_setitimer=''
-d_setlinebuf=''
-d_has_C_UTF8=''
-d_setlocale=''
-d_setlocale_accepts_any_locale_name=''
-d_setlocale_r=''
-setlocale_r_proto=''
-d_setnent=''
-d_setnetent_r=''
-setnetent_r_proto=''
-d_setpent=''
-d_setpgid=''
-d_setpgrp2=''
-d_bsdsetpgrp=''
-d_setpgrp=''
-d_setprior=''
-d_setproctitle=''
-d_setprotoent_r=''
-setprotoent_r_proto=''
-d_setpwent=''
-d_setpwent_r=''
-setpwent_r_proto=''
-d_setregid=''
-d_setresgid=''
-d_setresuid=''
-d_setreuid=''
-d_setrgid=''
-d_setruid=''
-d_setsent=''
-d_setservent_r=''
-setservent_r_proto=''
-d_setsid=''
-d_setvbuf=''
-d_shm=''
-d_shmat=''
-d_shmatprototype=''
-shmattype=''
-d_shmctl=''
-d_shmdt=''
-d_shmget=''
-d_sigaction=''
-d_siginfo_si_addr=''
-d_siginfo_si_band=''
-d_siginfo_si_errno=''
-d_siginfo_si_fd=''
-d_siginfo_si_pid=''
-d_siginfo_si_status=''
-d_siginfo_si_uid=''
-d_siginfo_si_value=''
-d_signbit=''
-d_sigprocmask=''
-d_sigsetjmp=''
-usesitecustomize=''
-d_snprintf=''
-d_vsnprintf=''
-d_sockatmark=''
-d_sockatmarkproto=''
-d_ip_mreq=''
-d_ip_mreq_source=''
-d_ipv6_mreq=''
-d_ipv6_mreq_source=''
-d_msg_ctrunc=''
-d_msg_dontroute=''
-d_msg_oob=''
-d_msg_peek=''
-d_msg_proxy=''
-d_oldsock=''
-d_scm_rights=''
-d_sin6_scope_id=''
-d_sockaddr_in6=''
-d_sockaddr_sa_len=''
-d_sockaddr_storage=''
-d_socket=''
-d_sockpair=''
-sockethdr=''
-socketlib=''
-d_socklen_t=''
-d_socks5_init=''
-d_sqrtl=''
-d_srand48_r=''
-srand48_r_proto=''
-d_srandom_r=''
-srandom_r_proto=''
-d_sresgproto=''
-d_sresuproto=''
-d_stat=''
-d_statblks=''
-d_statfs_f_flags=''
-d_statfs_s=''
-d_static_inline=''
-perl_static_inline=''
-d_fstatvfs=''
-d_statvfs=''
-d_stdio_cnt_lval=''
-d_stdio_ptr_lval=''
-d_stdio_ptr_lval_nochange_cnt=''
-d_stdio_ptr_lval_sets_cnt=''
-d_stdiobase=''
-d_stdstdio=''
-stdio_base=''
-stdio_bufsiz=''
-stdio_cnt=''
-stdio_filbuf=''
-stdio_ptr=''
-d_strcoll=''
-d_sysernlst=''
-d_syserrlst=''
-d_strerror_l=''
-d_strerror_r=''
-strerror_r_proto=''
-d_strftime=''
-d_strlcat=''
-d_strlcpy=''
-d_strnlen=''
-d_strtod=''
-d_strtod_l=''
-d_strtol=''
-d_strtold=''
-d_strtold_l=''
-d_strtoll=''
-d_strtoq=''
-d_strtoul=''
-d_strtoull=''
-d_strtouq=''
-d_strxfrm=''
-d_strxfrm_l=''
-d_symlink=''
-d_syscall=''
-d_syscallproto=''
-d_sysconf=''
-d_system=''
-d_tcgetpgrp=''
-d_tcsetpgrp=''
-d_telldirproto=''
-d_tgamma=''
-d_thread_local=''
-perl_thread_local=''
-d_time=''
-timetype=''
-d_asctime64=''
-d_ctime64=''
-d_difftime64=''
-d_gmtime64=''
-d_localtime64=''
-d_mktime64=''
-d_timegm=''
-clocktype=''
-d_times=''
-d_tmpnam_r=''
-tmpnam_r_proto=''
-d_towlower=''
-d_towupper=''
-d_trunc=''
-d_truncate=''
-d_truncl=''
-d_ttyname_r=''
-ttyname_r_proto=''
-d_tzname=''
-d_u32align=''
-d_ualarm=''
-d_umask=''
-d_semctl_semid_ds=''
-d_semctl_semun=''
-d_union_semun=''
-d_unordered=''
-d_unsetenv=''
-d_usleep=''
-d_usleepproto=''
-d_ustat=''
-d_pseudofork=''
-d_vfork=''
-usevfork=''
-d_voidsig=''
-signal_t=''
-d_wait4=''
-d_waitpid=''
-d_wcrtomb=''
-d_wcscmp=''
-d_wcstombs=''
-d_wcsxfrm=''
-d_wctomb=''
-d_writev=''
-default_inc_excludes_dot=''
-dlext=''
-bin_ELF=''
-cccdlflags=''
-ccdlflags=''
-dlsrc=''
-ld=''
-ld_can_script=''
-lddlflags=''
-usedl=''
-doublesize=''
-dtraceobject=''
-dtracexnolibs=''
-ebcdic=''
-fflushNULL=''
-fflushall=''
-fpossize=''
-fpostype=''
-gccansipedantic=''
-gccosandvers=''
-gccversion=''
-gidformat=''
-gidsign=''
-gidsize=''
-gidtype=''
-groupstype=''
-h_fcntl=''
-h_sysfile=''
-html1dir=''
-html1direxp=''
-installhtml1dir=''
-html3dir=''
-html3direxp=''
-installhtml3dir=''
-i_arpainet=''
-i_bfd=''
-i_crypt=''
-db_hashtype=''
-db_prefixtype=''
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-i_db=''
-i_dbm=''
-i_rpcsvcdbm=''
-d_dirnamlen=''
-direntrytype=''
-i_dirent=''
-i_dlfcn=''
-i_execinfo=''
-i_fcntl=''
-i_fenv=''
-i_fp=''
-i_fp_class=''
-i_gdbm=''
-d_grpasswd=''
-i_grp=''
-i_ieeefp=''
-i_inttypes=''
-i_langinfo=''
-i_libutil=''
-i_locale=''
-i_machcthr=''
-i_malloc=''
-i_mallocmalloc=''
-i_mntent=''
-d_gdbm_ndbm_h_uses_prototypes=''
-d_gdbmndbm_h_uses_prototypes=''
-d_ndbm=''
-d_ndbm_h_uses_prototypes=''
-i_gdbm_ndbm=''
-i_gdbmndbm=''
-i_ndbm=''
-i_netdb=''
-i_neterrno=''
-i_netinettcp=''
-i_niin=''
-i_sysin=''
-i_poll=''
-i_prot=''
-i_pthread=''
-d_pwage=''
-d_pwchange=''
-d_pwclass=''
-d_pwcomment=''
-d_pwexpire=''
-d_pwgecos=''
-d_pwpasswd=''
-d_pwquota=''
-i_pwd=''
-i_quadmath=''
-i_shadow=''
-i_socks=''
-i_stdbool=''
-i_stdint=''
-i_stdlib=''
-i_sunmath=''
-i_sysaccess=''
-i_sysdir=''
-i_sysfile=''
-d_voidtty=''
-i_bsdioctl=''
-i_sysfilio=''
-i_sysioctl=''
-i_syssockio=''
-i_syslog=''
-i_sysmman=''
-i_sysmode=''
-i_sysmount=''
-i_sysndir=''
-i_sysparam=''
-i_syspoll=''
-i_sysresrc=''
-i_syssecrt=''
-i_sysselct=''
-i_sysstat=''
-i_sysstatfs=''
-i_sysstatvfs=''
-i_systimes=''
-i_systypes=''
-i_sysuio=''
-i_sysun=''
-i_sysutsname=''
-i_sysvfs=''
-i_syswait=''
-i_sgtty=''
-i_termio=''
-i_termios=''
-d_tm_tm_gmtoff=''
-d_tm_tm_zone=''
-i_systime=''
-i_systimek=''
-i_time=''
-timeincl=''
-i_unistd=''
-i_ustat=''
-i_utime=''
-i_vfork=''
-i_wchar=''
-i_wctype=''
-d_inc_version_list=''
-inc_version_list=''
-inc_version_list_init=''
-doubleinfbytes=''
-doublenanbytes=''
-longdblinfbytes=''
-longdblnanbytes=''
-installprefix=''
-installprefixexp=''
-installstyle=''
-installusrbinperl=''
-intsize=''
-longsize=''
-shortsize=''
-issymlink=''
-libc=''
-ldlibpthname=''
-libperl=''
-shrpenv=''
-useshrplib=''
-glibpth=''
-incpth=''
-libpth=''
-loclibpth=''
-plibpth=''
-xlibpth=''
-ignore_versioned_solibs=''
-libs=''
-libsdirs=''
-libsfiles=''
-libsfound=''
-libspath=''
-lns=''
-d_PRIEUldbl=''
-d_PRIFUldbl=''
-d_PRIGUldbl=''
-d_PRIeldbl=''
-d_PRIfldbl=''
-d_PRIgldbl=''
-d_SCNfldbl=''
-d_double_has_inf=''
-d_double_has_nan=''
-d_double_has_negative_zero=''
-d_double_has_subnormals=''
-d_double_style_cray=''
-d_double_style_ibm=''
-d_double_style_ieee=''
-d_double_style_vax=''
-doublekind=''
-sPRIEUldbl=''
-sPRIFUldbl=''
-sPRIGUldbl=''
-sPRIeldbl=''
-sPRIfldbl=''
-sPRIgldbl=''
-sSCNfldbl=''
-lseeksize=''
-lseektype=''
-make_set_make=''
-d_mymalloc=''
-freetype=''
-mallocobj=''
-mallocsrc=''
-malloctype=''
-usemallocwrap=''
-usemymalloc=''
-installman1dir=''
-man1dir=''
-man1direxp=''
-man1ext=''
-installman3dir=''
-man3dir=''
-man3direxp=''
-man3ext=''
-doublemantbits=''
-longdblmantbits=''
-nvmantbits=''
-modetype=''
-multiarch=''
-mydomain=''
-myhostname=''
-phostname=''
-c=''
-n=''
-d_eofnblk=''
-eagain=''
-o_nonblock=''
-rd_nodata=''
-need_va_copy=''
-netdb_hlen_type=''
-netdb_host_type=''
-netdb_name_type=''
-netdb_net_type=''
-groupcat=''
-hostcat=''
-passcat=''
-orderlib=''
-ranlib=''
-d_perl_otherlibdirs=''
-otherlibdirs=''
-package=''
-spackage=''
-pager=''
-api_revision=''
-api_subversion=''
-api_version=''
-api_versionstring=''
-patchlevel=''
-perl_patchlevel=''
-revision=''
-subversion=''
-version=''
-version_patchlevel_string=''
-perl5=''
-perladmin=''
-perlpath=''
-d_nv_preserves_uv=''
-d_nv_zero_is_allbits_zero=''
-i16size=''
-i16type=''
-i32size=''
-i32type=''
-i64size=''
-i64type=''
-i8size=''
-i8type=''
-ivsize=''
-ivtype=''
-nv_overflows_integers_at=''
-nv_preserves_uv_bits=''
-nvsize=''
-nvtype=''
-u16size=''
-u16type=''
-u32size=''
-u32type=''
-u64size=''
-u64type=''
-u8size=''
-u8type=''
-uvsize=''
-uvtype=''
-ivdformat=''
-nvEUformat=''
-nvFUformat=''
-nvGUformat=''
-nveformat=''
-nvfformat=''
-nvgformat=''
-uvXUformat=''
-uvoformat=''
-uvuformat=''
-uvxformat=''
-pidtype=''
-prefix=''
-prefixexp=''
-installprivlib=''
-privlib=''
-privlibexp=''
-ptrsize=''
-d_PRIXU64=''
-d_PRId64=''
-d_PRIi64=''
-d_PRIo64=''
-d_PRIu64=''
-d_PRIx64=''
-sPRIXU64=''
-sPRId64=''
-sPRIi64=''
-sPRIo64=''
-sPRIu64=''
-sPRIx64=''
-d_quad=''
-quadkind=''
-quadtype=''
-uquadtype=''
-drand01=''
-randbits=''
-randfunc=''
-randseedtype=''
-seedfunc=''
-installscript=''
-scriptdir=''
-scriptdirexp=''
-selectminbits=''
-selecttype=''
-sh=''
-targetsh=''
-sig_count=''
-sig_name=''
-sig_name_init=''
-sig_num=''
-sig_num_init=''
-sig_size=''
-d_sitearch=''
-installsitearch=''
-sitearch=''
-sitearchexp=''
-installsitebin=''
-sitebin=''
-sitebinexp=''
-installsitehtml1dir=''
-sitehtml1dir=''
-sitehtml1direxp=''
-installsitehtml3dir=''
-sitehtml3dir=''
-sitehtml3direxp=''
-installsitelib=''
-sitelib=''
-sitelib_stem=''
-sitelibexp=''
-installsiteman1dir=''
-siteman1dir=''
-siteman1direxp=''
-installsiteman3dir=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix=''
-siteprefixexp=''
-installsitescript=''
-sitescript=''
-sitescriptexp=''
-sizesize=''
-sizetype=''
-d_libname_unique=''
-so=''
-socksizetype=''
-sharpbang=''
-shsharp=''
-spitshell=''
-src=''
-ssizetype=''
-st_dev_sign=''
-st_dev_size=''
-st_ino_sign=''
-st_ino_size=''
-startperl=''
-startsh=''
-stdchar=''
-d_stdio_stream_array=''
-stdio_stream_array=''
-sysman=''
-sGMTIME_max=''
-sGMTIME_min=''
-sLOCALTIME_max=''
-sLOCALTIME_min=''
-trnl=''
-uidformat=''
-uidsign=''
-uidsize=''
-uidtype=''
-archname64=''
-use64bitall=''
-use64bitint=''
-usecbacktrace=''
-usedefaultstrict=''
-dtrace=''
-usedtrace=''
-usefaststdio=''
-usekernprocpathname=''
-ccflags_uselargefiles=''
-ldflags_uselargefiles=''
-libswanted_uselargefiles=''
-uselargefiles=''
-uselongdouble=''
-usemorebits=''
-usemultiplicity=''
-nm_opt=''
-nm_so_opt=''
-runnm=''
-usenm=''
-usensgetexecutablepath=''
-useperlio=''
-usequadmath=''
-usesocks=''
-d_oldpthreads=''
-useithreads=''
-usereentrant=''
-usethreads=''
-incpath=''
-mips_type=''
-usrinc=''
-d_vendorarch=''
-installvendorarch=''
-vendorarch=''
-vendorarchexp=''
-d_vendorbin=''
-installvendorbin=''
-vendorbin=''
-vendorbinexp=''
-installvendorhtml1dir=''
-vendorhtml1dir=''
-vendorhtml1direxp=''
-installvendorhtml3dir=''
-vendorhtml3dir=''
-vendorhtml3direxp=''
-d_vendorlib=''
-installvendorlib=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-installvendorman1dir=''
-vendorman1dir=''
-vendorman1direxp=''
-installvendorman3dir=''
-vendorman3dir=''
-vendorman3direxp=''
-usevendorprefix=''
-vendorprefix=''
-vendorprefixexp=''
-d_vendorscript=''
-installvendorscript=''
-vendorscript=''
-vendorscriptexp=''
-versiononly=''
-yacc=''
-yaccflags=''
-CONFIG=''
-
-: Detect odd OSs
-define='define'
-undef='undef'
-smallmach='pdp11 i8086 z8000 i80286 iAPX286'
-rmlist=''
-
-: We must find out about Eunice early
-eunicefix=':'
-if test -f /etc/unixtovms; then
- eunicefix=/etc/unixtovms
-fi
-if test -f /etc/unixtovms.exe; then
- eunicefix=/etc/unixtovms.exe
-fi
-
-: Set executable suffix now -- needed before hints available
-if test -f "/libs/version.library"; then
-: Amiga OS
- _exe=""
-elif test -f "/system/gnu_library/bin/ar.pm"; then
-: Stratus VOS
- _exe=".pm"
-elif test -n "$DJGPP"; then
-: DOS DJGPP
- _exe=".exe"
-elif test -f /kern/cookiejar; then
-: MiNT
- _exe=""
-elif test -d c:/. -o -n "$is_os2" ; then
-: OS/2 or cygwin
- _exe=".exe"
-fi
-
-groupstype=''
-i_whoami=''
-: Possible local include directories to search.
-: Set locincpth to "" in a hint file to defeat local include searches.
-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
-:
-: no include file wanted by default
-inclwanted=''
-
-: Enable -DEBUGGING and -DDEBUGGING from the command line
-EBUGGING=''
-DEBUGGING=''
-
-: Trailing extension. Override this in a hint file, if needed.
-: Extra object files, if any, needed on this platform.
-archobjs=''
-libnames=''
-: change the next line if compiling for Xenix/286 on Xenix/386
-xlibpth='/usr/lib/386 /lib/386'
-: Possible local library directories to search.
-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
-
-: general looking path for locating libraries
-glibpth="/lib /usr/lib $xlibpth"
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
-test -f /shlib/libc.so && glibpth="/shlib $glibpth"
-test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
-
-: Private path used by Configure to find libraries. Its value
-: is prepended to libpth. This variable takes care of special
-: machines, like the mips. Usually, it should be empty.
-plibpth=''
-
-: default library list
-libswanted=''
-: some systems want to use only the non-versioned libso:s
-ignore_versioned_solibs=''
-ccname=''
-ccversion=''
-perllibs=''
-: set useposix=false in your hint file to disable the POSIX extension.
-useposix=true
-: set useopcode=false in your hint file to disable the Opcode extension.
-useopcode=true
-: set uselanginfo=false in your hint file to disable the I18N::Langinfo extension.
-uselanginfo=true
-archname64=''
-ccflags_uselargefiles=''
-ldflags_uselargefiles=''
-libswanted_uselargefiles=''
-: set usemultiplicity on the Configure command line to enable multiplicity.
-: set usesocks on the Configure command line to enable socks.
-archname=''
-: set usethreads on the Configure command line to enable threads.
-usereentrant='undef'
-: List of libraries we want.
-: If anyone needs extra -lxxx, put those in a hint file.
-libswanted="cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld"
-libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD"
-: We probably want to search /usr/shlib before most other libraries.
-: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
-glibpth="/usr/shlib $glibpth"
-: Do not use vfork unless overridden by a hint file.
-usevfork=false
-
-: Find the basic shell for Bourne shell scripts
-case "$sh" in
-'')
- case "$SYSTYPE" in
- *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
- *) xxx='/bin/sh';;
- esac
- if test -f "$xxx"; then
- sh="$xxx"
- else
- : Build up a list and do a single loop so we can 'break' out.
- pth=`echo $PATH | sed -e "s/$p_/ /g"`
- for xxx in sh bash ksh pdksh ash; do
- for p in $pth; do
- try="$try ${p}/${xxx}"
- done
- done
- for xxx in $try; do
- if test -f "$xxx"; then
- sh="$xxx";
- break
- elif test "X$_exe" != X -a -f "$xxx$_exe"; then
- sh="$xxx";
- break
- elif test -f "$xxx.exe"; then
- sh="$xxx";
- break
- fi
- done
- fi
- ;;
-esac
-
-case "$sh" in
-'') cat >&2 <<EOM
-$me: Fatal Error: I can't find a Bourne Shell anywhere.
-
-Usually it's in /bin/sh. How did you even get this far?
-Please report this issue at https://github.com/Perl/perl5/issues
-and we'll try to straighten this all out.
-EOM
- exit 1
- ;;
-esac
-
-: When cross-compiling we need to separate the sh-to-run-Configure-with from the sh-to-use-in-Perl
-: default both to the same thing, cross-compilers can then set targetsh differently if they like
-targetsh=$sh
-
-: see if sh knows # comments
-if `$sh -c '#' >/dev/null 2>&1`; then
- shsharp=true
- spitshell=cat
- xcat=/bin/cat
- test -f $xcat$_exe || xcat=/usr/bin/cat
- if test ! -f $xcat$_exe; then
- for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do
- if test -f $p/cat$_exe; then
- xcat=$p/cat
- break
- fi
- done
- if test ! -f $xcat$_exe; then
- echo "Can't find cat anywhere!"
- exit 1
- fi
- fi
- echo "#!$xcat" >sharp
- $eunicefix sharp
- chmod +x sharp
- ./sharp > today 2>/dev/null
- if test -s today; then
- sharpbang='#!'
- else
- echo "#! $xcat" > sharp
- $eunicefix sharp
- chmod +x sharp
- ./sharp > today 2>/dev/null
- if test -s today; then
- sharpbang='#! '
- else
- sharpbang=': use '
- fi
- fi
-else
- echo " "
- echo "Your $sh doesn't grok # comments--I will strip them later on."
- shsharp=false
- cd ..
- echo "exec grep -v '^[ ]*#'" >spitshell
- chmod +x spitshell
- $eunicefix spitshell
- spitshell=`pwd`/spitshell
- cd UU
- echo "I presume that if # doesn't work, #! won't work either!"
- sharpbang=': use '
-fi
-rm -f sharp today
-
-: figure out how to guarantee sh startup
-case "$startsh" in
-'') startsh=${sharpbang}${sh} ;;
-*)
-esac
-cat >sharp <<EOSS
-$startsh
-set abc
-test "$?abc" != 1
-EOSS
-
-chmod +x sharp
-$eunicefix sharp
-if ./sharp; then
- : echo "Yup, it does."
-else
- echo "Hmm... '$startsh' does not guarantee sh startup..."
- echo "You may have to fix up the shell scripts to make sure $sh runs them."
-fi
-rm -f sharp
-
-: Save command line options in file UU/cmdline.opt for later use in
-: generating config.sh.
-cat > cmdline.opt <<EOSH
-: Configure command line arguments.
-config_arg0='$0'
-config_args='$*'
-config_argc=$#
-EOSH
-argn=1
-args_exp=''
-args_sep=''
-for arg in "$@"; do
- cat >>cmdline.opt <<EOSH
-config_arg$argn='$arg'
-EOSH
- cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
-$arg
-EOC
- arg_exp=`cat cmdl.opt`
- args_exp="$args_exp$args_sep'$arg_exp'"
- argn=`expr $argn + 1`
- args_sep=' '
-done
-rm -f cmdl.opt
-
-: produce awk script to parse command line options
-cat >options.awk <<'EOF'
-BEGIN {
- optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
-
- len = length(optstr);
- for (i = 1; i <= len; i++) {
- c = substr(optstr, i, 1);
- if (i < len) a = substr(optstr, i + 1, 1); else a = "";
- if (a == ":") {
- arg[c] = 1;
- i++;
- }
- opt[c] = 1;
- }
-}
-{
- expect = 0;
- str = $0;
- if (substr(str, 1, 1) != "-") {
- printf("'%s'\n", str);
- next;
- }
- len = length($0);
- for (i = 2; i <= len; i++) {
- c = substr(str, i, 1);
- if (!opt[c]) {
- printf("-%s\n", substr(str, i));
- next;
- }
- printf("-%s\n", c);
- if (arg[c]) {
- if (i < len)
- printf("'%s'\n", substr(str, i + 1));
- else
- expect = 1;
- next;
- }
- }
-}
-END {
- if (expect)
- print "?";
-}
-EOF
-
-: process the command line options
-set X `for arg in "$@"; do echo "X$arg"; done |
- sed -e s/X// | awk -f options.awk`
-eval "set $*"
-shift
-rm -f options.awk
-
-: set up default values
-fastread=''
-reuseval=false
-config_sh=''
-alldone=''
-error=''
-silent=''
-extractsh=''
-knowitall=''
-rm -f optdef.sh posthint.sh
-cat >optdef.sh <<EOS
-$startsh
-EOS
-
-
-: option parsing
-while test $# -gt 0; do
- case "$1" in
- -d) shift; fastread=yes;;
- -e) shift; alldone=cont;;
- -f)
- shift
- cd ..
- if test -r "$1"; then
- config_sh="$1"
- else
- echo "$me: cannot read config file $1." >&2
- error=true
- fi
- cd UU
- shift;;
- --help|\
- -h) shift; error=true;;
- -r) shift; reuseval=true;;
- -s) shift; silent=true; realsilent=true;;
- -E) shift; alldone=exit;;
- -K) shift; knowitall=true;;
- -O) shift;;
- -S) shift; silent=true; extractsh=true;;
- -D)
- shift
- case "$1" in
- *=)
- echo "$me: use '-U symbol=', not '-D symbol='." >&2
- echo "$me: ignoring -D $1" >&2
- ;;
- *=*) echo "$1" | \
- sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
- *) echo "$1='define'" >> optdef.sh;;
- esac
- shift
- ;;
- -U)
- shift
- case "$1" in
- *=) echo "$1" >> optdef.sh;;
- *=*)
- echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
- echo "$me: ignoring -U $1" >&2
- ;;
- *) echo "$1='undef'" >> optdef.sh;;
- esac
- shift
- ;;
- -A)
- shift
- xxx=''
- yyy="$1"
- zzz=''
- uuu=undef
- case "$yyy" in
- *=*) zzz=`echo "$yyy"|sed 's!=.*!!'`
- case "$zzz" in
- *:*) zzz='' ;;
- *) xxx=append
- zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'`
- yyy=`echo "$yyy"|sed 's!=.*!!'` ;;
- esac
- ;;
- esac
- case "$xxx" in
- '') case "$yyy" in
- *:*) xxx=`echo "$yyy"|sed 's!:.*!!'`
- yyy=`echo "$yyy"|sed 's!^[^:]*:!!'`
- zzz=`echo "$yyy"|sed 's!^[^=]*=!!'`
- yyy=`echo "$yyy"|sed 's!=.*!!'` ;;
- *) xxx=`echo "$yyy"|sed 's!:.*!!'`
- yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;;
- esac
- ;;
- esac
- case "$xxx" in
- append)
- echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
- clear)
- echo "$yyy=''" >> posthint.sh ;;
- define)
- case "$zzz" in
- '') zzz=define ;;
- esac
- echo "$yyy='$zzz'" >> posthint.sh ;;
- eval)
- echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
- prepend)
- echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
- undef)
- case "$zzz" in
- '') zzz="$uuu" ;;
- esac
- echo "$yyy=$zzz" >> posthint.sh ;;
- *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
- esac
- shift
- ;;
- -V) echo "$me generated by metaconfig 3.5 PL0." >&2
- exit 0;;
- --) break;;
- -*) echo "$me: unknown option $1" >&2; shift; error=true;;
- *) break;;
- esac
-done
-
-case "$error" in
-true)
- cat >&2 <<EOM
-Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
- [-U symbol] [-U symbol=] [-A command:symbol...]
- -d : use defaults for all answers.
- -e : go on without questioning past the production of config.sh.
- -f : specify an alternate default configuration file.
- -h : print this help message and exit (with an error status).
- -r : reuse C symbols value if possible (skips costly nm extraction).
- -s : silent mode, only echoes questions and essential information.
- -D : define symbol to have some value:
- -D symbol symbol gets the value 'define'
- -D symbol='some value' symbol is set to 'some value'
- common used examples (see INSTALL for more info):
- -Duse64bitint use 64bit integers
- -Duse64bitall use 64bit integers and pointers
- -Dusethreads use thread support
- -Dinc_version_list=none do not include older perl trees in @INC
- -DEBUGGING=none DEBUGGING options
- -Dcc=gcc choose your compiler
- -Dprefix=/opt/perl5 choose your destination
- -E : stop at the end of questions, after having produced config.sh.
- -K : do not use unless you know what you are doing.
- -O : ignored for backward compatibility
- -S : perform variable substitutions on all .SH files (can mix with -f)
- -U : undefine symbol:
- -U symbol symbol gets the value 'undef'
- -U symbol= symbol gets completely empty
- e.g.: -Uversiononly
- -A : manipulate symbol after the platform specific hints have been applied:
- -A append:symbol=value append value to symbol
- -A symbol=value like append:, but with a separating space
- -A define:symbol=value define symbol to have value
- -A clear:symbol define symbol to be ''
- -A define:symbol define symbol to be 'define'
- -A eval:symbol=value define symbol to be eval of value
- -A prepend:symbol=value prepend value to symbol
- -A undef:symbol define symbol to be 'undef'
- -A undef:symbol= define symbol to be ''
- e.g.: -A prepend:libswanted='cl pthread '
- -A ccflags=-DSOME_MACRO
- -V : print version number and exit (with a zero status).
-EOM
- exit 1
- ;;
-esac
-
-: Sanity checks
-case "$fastread$alldone" in
-yescont|yesexit) ;;
-*)
- case "$extractsh" in
- true) ;;
- *)
- if test ! -t 0; then
- echo "Say 'sh Configure', not 'sh <Configure'"
- exit 1
- fi
- ;;
- esac
- ;;
-esac
-
-exec 4>&1
-case "$silent" in
-true) exec 1>/dev/null;;
-esac
-
-: run the defines and the undefines, if any, but leave the file out there...
-touch optdef.sh
-grep '\\' optdef.sh >/dev/null 2>&1
-if test $? = 0; then
- echo "Configure does not support \\ in -D arguments"
- exit 1
-fi
-. ./optdef.sh
-: create the posthint manipulation script and leave the file out there...
-touch posthint.sh
-
-: set package name
-package='perl5'
-first=`echo $package | sed -e 's/^\(.\).*/\1/'`
-last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
-case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`"-"`echo AbyZ | tr '[:upper:]' '[:lower:]' 2>/dev/null`" in
-ABYZ-abyz) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
-*) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
-esac
-
-: Some greps do not return status, grrr.
-echo "grimblepritz" >grimble
-if grep blurfldyick grimble >/dev/null 2>&1 ; then
- contains=contains
-elif grep grimblepritz grimble >/dev/null 2>&1 ; then
- contains=grep
-else
- contains=contains
-fi
-rm -f grimble
-: the following should work in any shell
-case "$contains" in
-contains*)
- echo " " >&4
- echo "AGH! Grep doesn't return a status. Attempting remedial action." >&4
- cat >contains <<'EOSS'
-grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
-EOSS
-contains=./contains
-chmod +x $contains
-esac
-
-: Find the path to the source tree
-case "$src" in
-'') case "$0" in
- */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
- case "$src" in
- /*) ;;
- .) ;;
- *) src=`cd ../$src && pwd` ;;
- esac
- ;;
- *) src='.';;
- esac;;
-esac
-case "$src" in
-'') src=/
- rsrc=/
- ;;
-/*) rsrc="$src";;
-*) rsrc="../$src";;
-esac
-if test -f $rsrc/Configure && \
- $contains "^package='$package'\$" $rsrc/Configure >/dev/null 2>&1
-then
- : found it, so we are ok.
-else
- rsrc=''
- for src in . .. ../.. ../../.. ../../../..; do
- if test -f ../$src/Configure && \
- $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
- then
- rsrc=../$src
- break
- fi
- done
-fi
-case "$rsrc" in
-'')
- cat <<EOM >&4
-
-Sorry, I can't seem to locate the source dir for $package. Please start
-Configure with an explicit path -- i.e. /some/path/Configure.
-
-EOM
- exit 1
- ;;
-../.) rsrc='..';;
-*)
- echo " "
- echo "Sources for $package found in \"$src\"." >&4
- ;;
-esac
-
-: script used to extract .SH files with variable substitutions
-cat >extract <<'EOS'
-PERL_CONFIG_SH=true
-echo "Doing variable substitutions on .SH files..."
-if test -f MANIFEST; then
- set x `awk '{print $1}' < MANIFEST | grep '\.SH$'`
-else
- echo "(Looking for .SH files under the source directory.)"
- set x `(cd "$src"; find . -name "*.SH" -print)`
-fi
-shift
-case $# in
-0) set x `(cd "$src"; echo *.SH)`; shift;;
-esac
-if test ! -f "$src/$1"; then
- shift
-fi
-mkdir_p='
-name=$1;
-create="";
-while test $name; do
- if test ! -d "$name"; then
- create="$name $create";
- name=`echo $name | sed -e "s|^[^/]*$||"`;
- name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
- else
- name="";
- fi;
-done;
-for file in $create; do
- mkdir $file;
-done
-'
-for file in $*; do
- case "$src" in
- ".")
- case "$file" in
- */*)
- dir=`expr X$file : 'X\(.*\)/'`
- file=`expr X$file : 'X.*/\(.*\)'`
- (cd "$dir" && . ./$file)
- ;;
- *)
- . ./$file
- ;;
- esac
- ;;
- *)
- case "$file" in
- */*)
- dir=`expr X$file : 'X\(.*\)/'`
- file=`expr X$file : 'X.*/\(.*\)'`
- (set x $dir; shift; eval $mkdir_p)
- sh <"$src/$dir/$file"
- ;;
- *)
- sh <"$src/$file"
- ;;
- esac
- ;;
- esac
-done
-if test -f "$src/config_h.SH"; then
- if test ! -f config.h; then
- : oops, they left it out of MANIFEST, probably, so do it anyway.
- . "$src/config_h.SH"
- fi
-fi
-EOS
-
-: extract files and exit if asked to do so
-case "$extractsh" in
-true)
- case "$realsilent" in
- true) ;;
- *) exec 1>&4;;
- esac
- case "$config_sh" in
- '') config_sh='config.sh';;
- esac
- echo " "
- echo "Fetching answers from $config_sh..."
- cd ..
- . $config_sh
- . UU/optdef.sh
- echo " "
- . UU/extract
- rm -rf UU
- echo "Extraction done."
- exit 0
- ;;
-esac
-
-: Eunice requires " " instead of "", can you believe it
-echo " "
-: Here we go...
-echo "Beginning of configuration questions for $package."
-
-trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
-
-: first determine how to suppress newline on echo command
-echo " "
-echo "Checking echo to see how to suppress newlines..."
-(echo "hi there\c" ; echo " ") >.echotmp
-if $contains c .echotmp >/dev/null 2>&1 ; then
- echo "...using -n."
- n='-n'
- c=''
-else
- cat <<'EOM'
-...using \c
-EOM
- n=''
- c='\c'
-fi
-echo $n "The star should be here-->$c"
-echo '*'
-rm -f .echotmp
-
-: Now test for existence of everything in MANIFEST
-echo " "
-if test -f "$rsrc/MANIFEST"; then
- echo "First let's make sure your kit is complete. Checking..." >&4
- awk '$1 !~ /PACK[A-Z]+/ {print $1}' "$rsrc/MANIFEST" | \
- (split -l 50 2>/dev/null || split -50)
- rm -f missing
- tmppwd=`pwd`
- for filelist in x??; do
- (cd "$rsrc"; ls `cat "$tmppwd/$filelist"` \
- >/dev/null 2>>"$tmppwd/missing")
- done
- if test -s missing; then
- cat missing >&4
- cat >&4 <<'EOM'
-
-THIS PACKAGE SEEMS TO BE INCOMPLETE.
-
-You have the option of continuing the configuration process, despite the
-distinct possibility that your kit is damaged, by typing 'y'es. If you
-do, don't blame me if something goes wrong. I advise you to type 'n'o
-and contact the author (https://github.com/Perl/perl5/issues).
-
-EOM
- echo $n "Continue? [n] $c" >&4
- read ans
- case "$ans" in
- y*)
- echo "Continuing..." >&4
- rm -f missing
- ;;
- *)
- echo "ABORTING..." >&4
- kill $$
- ;;
- esac
- else
- echo "Looks good..."
- fi
-else
- echo "There is no MANIFEST file. I hope your kit is complete !"
-fi
-rm -f missing x??
-
-: Find the appropriate value for a newline for tr
-if test -n "$DJGPP"; then
- trnl='\012'
-fi
-if test X"$trnl" = X; then
- case "`echo foo | tr '\n' x 2>/dev/null`" in
- foox) trnl='\n' ;;
- esac
-fi
-if test X"$trnl" = X; then
- case "`echo foo | tr '\012' x 2>/dev/null`" in
- foox) trnl='\012' ;;
- esac
-fi
-if test X"$trnl" = X; then
- case "`echo foo | tr '\r\n' xy 2>/dev/null`" in
- fooxy) trnl='\n\r' ;;
- esac
-fi
-if test X"$trnl" = X; then
- cat <<EOM >&2
-
-$me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
-
-EOM
- exit 1
-fi
-
-: compute the number of columns on the terminal for proper question formatting
-case "$COLUMNS" in
-'') COLUMNS='80';;
-esac
-
-: set up the echo used in my read
-myecho="case \"\$xxxm\" in
-'') echo $n \"\$rp $c\" >&4;;
-*) case \"\$rp\" in
- '') echo $n \"[\$xxxm] $c\";;
- *)
- if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
- echo \"\$rp\" >&4
- echo $n \"[\$xxxm] $c\" >&4
- else
- echo $n \"\$rp [\$xxxm] $c\" >&4
- fi
- ;;
- esac;;
-esac"
-
-: now set up to do reads with possible shell escape and default assignment
-cat <<EOSC >myread
-$startsh
-xxxm=\$dflt
-$myecho
-ans='!'
-case "\$fastread" in
-yes) case "\$dflt" in
- '') ;;
- *) ans='';
- case "\$silent-\$rp" in
- true-) ;;
- *) echo " " >&4;;
- esac;;
- esac;;
-*) case "\$silent" in
- true) case "\$rp" in
- '') ans='';;
- esac;;
- esac;;
-esac
-while expr "X\$ans" : "X!" >/dev/null; do
- read answ
- set x \$xxxm
- shift
- aok=''; eval "ans=\\"\$answ\\"" && aok=y
- case "\$answ" in
- "!")
- sh 1>&4
- echo " "
- $myecho
- ;;
- !*)
- set x \`expr "X\$ans" : "X!\(.*\)\$"\`
- shift
- sh 1>&4 -c "\$*"
- echo " "
- $myecho
- ;;
- "\$ans")
- case "\$ans" in
- \\&*)
- set x \`expr "X\$ans" : "X&\(.*\)\$"\`
- shift
- case "\$1" in
- -d)
- fastread=yes
- echo "(OK, I'll run with -d after this question.)" >&4
- ;;
- -*)
- echo "*** Sorry, \$1 not supported yet." >&4
- ;;
- esac
- $myecho
- ans=!
- ;;
- esac;;
- *)
- case "\$aok" in
- y)
- echo "*** Substitution done -- please confirm."
- xxxm="\$ans"
- ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
- xxxm="\$ans"
- ans=!
- ;;
- *)
- echo "*** Error -- try again."
- ans=!
- ;;
- esac
- $myecho
- ;;
- esac
- case "\$ans\$xxxm\$nostick" in
- '')
- ans=!
- $myecho
- ;;
- esac
-done
-case "\$ans" in
-'') ans="\$xxxm";;
-esac
-EOSC
-
-: create .config dir to save info across Configure sessions
-test -d ../.config || mkdir ../.config
-cat >../.config/README <<EOF
-This directory created by Configure to save information that should
-persist across sessions for $package.
-
-You may safely delete it if you wish.
-EOF
-
-: See if we are using a devel version and want that
-xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
-case "$usedevel" in
-$define|true|[yY]*)
- usedevel="$define" ;;
-*) case "$xversion" in
- *[13579])
- cat >&4 <<EOH
-*** WHOA THERE!!! ***
-
- This is an UNSTABLE DEVELOPMENT release.
- The version of this $package distribution is $xversion, that is, odd,
- (as opposed to even) and that signifies a development release.
- If you want a maintenance release, you want an even-numbered version.
-
- Do ***NOT*** install this into production use.
- Data corruption and crashes are possible.
-
- It is most seriously suggested that you do not continue any further
- unless you want to help in developing and debugging Perl.
-
- If you *still* want to build perl, you can answer 'y' now,
- or pass -Dusedevel to Configure.
-
-EOH
- rp='Do you really want to continue?'
- dflt='n'
- . ./myread
- case "$ans" in
- [yY]) echo >&4 "Okay, continuing."
- usedevel="$define" ;;
- *) echo >&4 "Okay, bye."
- exit 1
- ;;
- esac
- ;;
- esac
- usedevel="$undef"
- ;;
-esac
-case "$usedevel" in
-$define|true|[yY]*)
- case "$versiononly" in
- '') versiononly="$define" ;;
- esac
- case "$installusrbinperl" in
- '') installusrbinperl="$undef" ;;
- esac
- ;;
-esac
-
-: general instructions
-needman=true
-firsttime=true
-user=`(logname) 2>/dev/null`
-case "$user" in
-'') user=`whoami 2>&1`;;
-esac
-if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
- firsttime=false
- echo " "
- rp='Would you like to see the instructions?'
- dflt=n
- . ./myread
- case "$ans" in
- [yY]*) ;;
- *) needman=false;;
- esac
-fi
-if $needman; then
- cat <<EOH
-
-This installation shell script will examine your system and ask you questions
-to determine how the perl5 package should be installed. If you get
-stuck on a question, you may use a ! shell escape to start a subshell or
-execute a command. Many of the questions will have default answers in square
-brackets; typing carriage return will give you the default.
-
-On some of the questions which ask for file or directory names you are allowed
-to use the ~name construct to specify the login directory belonging to "name",
-even if you don't have a shell which knows about that. Questions where this is
-allowed will be marked "(~name ok)".
-
-EOH
- rp=''
- dflt='Type carriage return to continue'
- . ./myread
- cat <<'EOH'
-
-The prompter used in this script allows you to use shell variables and
-backticks in your answers. You may use $1, $2, etc... to refer to the words
-in the default answer, as if the default line was a set of arguments given to a
-script shell. This means you may also use $* to repeat the whole default line,
-so you do not have to re-type everything to add something to the default.
-
-Every time there is a substitution, you will have to confirm. If there is an
-error (e.g. an unmatched backtick), the default answer will remain unchanged
-and you will be prompted again.
-
-If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
-the questions and use the computed defaults (or the previous answers if there
-was already a config.sh file). Type 'Configure -h' for a list of options.
-You may also start interactively and then answer '& -d' at any prompt to turn
-on the non-interactive behaviour for the remainder of the execution.
-
-EOH
- . ./myread
- cat <<EOH
-
-Much effort has been expended to ensure that this shell script will run on any
-Unix system. If despite that it blows up on yours, your best bet is to edit
-Configure and run it again. If you can't run Configure for some reason,
-you'll have to generate a config.sh file by hand. Whatever problems you
-have, let me (https://github.com/Perl/perl5/issues) know how I blew it.
-
-This installation script affects things in two ways:
-
-1) it may do direct variable substitutions on some of the files included
- in this kit.
-2) it builds a config.h file for inclusion in C programs. You may edit
- any of these files as the need arises after running this script.
-
-If you make a mistake on a question, there is no easy way to back up to it
-currently. The easiest thing to do is to edit config.sh and rerun all the SH
-files. Configure will offer to let you do this before it runs the SH files.
-
-EOH
- dflt='Type carriage return to continue'
- . ./myread
- case "$firsttime" in
- true) echo $user >>../.config/instruct;;
- esac
-fi
-
-: Set 'sysroot' to change the logical root directory to your headers and libraries see man gcc
-: This is primarily meant for cross-compile environments, and may fail to be useful in other cases
-if test "X$sysroot" = X; then
- sysroot=""
-else
- case "$cc" in
- *gcc*|*g++*)
- echo "Using $sysroot to find your headers and libraries, adding to ccflags"
- # _sysroot is used in places where we need --sysroot=foo
- # but using the rest of the flags could cause issues.
- _sysroot="--sysroot=$sysroot";
- case "$ccflags" in
- *sysroot*) ;;
- 'undef'|*)
- ccflags="$ccflags $_sysroot"
- esac
- case "$ldflags" in
- *sysroot*) ;;
- 'undef'|*)
- ldflags="$ldflags $_sysroot"
- esac
- case "$cppflags" in
- *sysroot*) ;;
- 'undef'|*)
- cppflags="$cppflags $_sysroot"
- esac
- # lddlflags updated below in lddlflags section;
- # same with cccdlflags
- ;;
- esac
-
- # Adjust some defaults to also use $sysroot
- for var in xlibpth loclibpth locincpth glibpth; do
- eval xxx=\$$var
- eval $var=''
- for path in $xxx; do
- eval $var=\"\$$var $sysroot$path\"
- done
- done
-
-fi
-
-: find out where common programs are
-echo " "
-echo "Locating common programs..." >&4
-cat <<EOSC >loc
-$startsh
-case \$# in
-0) exit 1;;
-esac
-thing=\$1
-shift
-dflt=\$1
-shift
-for dir in \$*; do
- case "\$thing" in
- .)
- if test -d \$dir/\$thing; then
- echo \$dir
- exit 0
- fi
- ;;
- *)
- for thisthing in \$dir/\$thing; do
- : just loop through to pick last item
- done
- if test -f \$thisthing; then
- echo \$thisthing
- exit 0
- elif test "X$_exe" != X -a -f \$thisthing$_exe; then
- echo \$thisthing
- exit 0
- elif test -f \$dir/\$thing.exe; then
- if test -n "$DJGPP"; then
- echo \$dir/\$thing.exe
- elif test "$eunicefix" != ":"; then
- : on Eunice apparently
- echo \$dir/\$thing
- fi
- exit 0
- fi
- ;;
- esac
-done
-echo \$dflt
-exit 1
-EOSC
-chmod +x loc
-$eunicefix loc
-loclist="
-awk
-cat
-chmod
-comm
-cp
-echo
-expr
-grep
-ls
-mkdir
-rm
-sed
-sort
-touch
-tr
-uniq
-"
-trylist="
-ar
-bison
-byacc
-cpp
-csh
-date
-egrep
-gmake
-gzip
-less
-ln
-make
-more
-nm
-nroff
-perl
-pg
-test
-uname
-zip
-"
-pth=`echo $PATH | sed -e "s/$p_/ /g"`
-pth="$pth $sysroot/lib $sysroot/usr/lib"
-for file in $loclist; do
- eval xxx=\$$file
- case "$xxx" in
- /*|?:[\\/]*)
- if test -f "$xxx"; then
- : ok
- else
- echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
- xxx=`./loc $file $file $pth`
- fi
- ;;
- '') xxx=`./loc $file $file $pth`;;
- *) xxx=`./loc $xxx $xxx $pth`;;
- esac
- eval $file=$xxx$_exe
- eval _$file=$xxx
- case "$xxx" in
- /*)
- echo $file is in $xxx.
- ;;
- ?:[\\/]*)
- echo $file is in $xxx.
- ;;
- *)
- echo "I don't know where '$file' is, and my life depends on it." >&4
- echo "Go find a public domain implementation or fix your PATH setting!" >&4
- exit 1
- ;;
- esac
-done
-echo " "
-echo "Don't worry if any of the following aren't found..."
-say=offhand
-for file in $trylist; do
- eval xxx=\$$file
- case "$xxx" in
- /*|?:[\\/]*)
- if test -f "$xxx"; then
- : ok
- else
- echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
- xxx=`./loc $file $file $pth`
- fi
- ;;
- '') xxx=`./loc $file $file $pth`;;
- *) xxx=`./loc $xxx $xxx $pth`;;
- esac
- eval $file=$xxx$_exe
- eval _$file=$xxx
- case "$xxx" in
- /*)
- echo $file is in $xxx.
- ;;
- ?:[\\/]*)
- echo $file is in $xxx.
- ;;
- *)
- echo "I don't see $file out there, $say."
- say=either
- ;;
- esac
-done
-case "$egrep" in
-egrep)
- echo "Substituting grep for egrep."
- egrep=$grep
- _egrep=$grep
- ;;
-esac
-case "$less" in
-'') ;;
-*) if $less -R </dev/null >/dev/null 2>&1; then
- echo "Substituting less -R for less."
- less="$less -R"
- _less=$less
- fi
- ;;
-esac
-case "$ln" in
-ln)
- echo "Substituting cp for ln."
- ln=$cp
- _ln=$cp
- ;;
-esac
-case "$make" in
-make)
- case "$gmake" in
- gmake)
- echo "I can't find make or gmake, and my life depends on it." >&4
- echo "Go find a public domain implementation or fix your PATH setting!" >&4
- exit 1
- ;;
- esac
- ;;
-esac
-case "$gmake" in
-gmake) ;;
-*) # We can't have osname yet.
- if test -f "/system/gnu_library/bin/ar.pm"; then # Stratus VOS
- # Assume that gmake, if found, is definitely GNU make
- # and prefer it over the system make.
- echo "Substituting gmake for make."
- make=$gmake
- _make=$gmake
- fi
- ;;
-esac
-case "$test" in
-test)
- echo "Hopefully test is built into your sh."
- ;;
-*)
- if `sh -c "PATH= test true" >/dev/null 2>&1`; then
- echo "Using the test built into your sh."
- test=test
- _test=test
- fi
- ;;
-esac
-case "$echo" in
-echo)
- echo "Hopefully echo is built into your sh."
- ;;
-'') ;;
-*)
- echo " "
-echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
- $echo $n "hi there$c" >foo1
- echo $n "hi there$c" >foo2
- if cmp foo1 foo2 >/dev/null 2>&1; then
- echo "They are compatible. In fact, they may be identical."
- else
- case "$n" in
- '-n') n='' c='\c';;
- *) n='-n' c='';;
- esac
- cat <<FOO
-They are not compatible! You are probably running ksh on a non-USG system.
-I'll have to use $echo instead of the builtin, since Bourne shell doesn't
-have echo built in and we may have to run some Bourne shell scripts. That
-means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
-
-FOO
- $echo $n "The star should be here-->$c"
- $echo "*"
- fi
- $rm -f foo1 foo2
- ;;
-esac
-
-# This question was auctioned at YAPC::Europe-2007 in Vienna
-# I never promised you could answer it. I only auctioned the question.
-cat <<FOO
-The following message is sponsored by
-
- Dresden.pm<--The stars should be here.
-
-Dear Perl user, system administrator or package
-maintainer, the Perl community sends greetings to
-you. Do you (emblematical) greet back [Y/n]? n
-
-FOO
-
-: Check what type of C compiler we use
-cat <<EOS >trygcc
-$startsh
-EOS
-cat <<'EOSC' >>trygcc
-case "$cc" in
-'') ;;
-*) $rm -f try try.*
- $cat >try.c <<EOM
-int main(int argc, char *argv[]) {
- return 0;
-}
-EOM
- if $cc -o try $ccflags $ldflags try.c; then
- :
- else
- echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
- despair=yes
- trygcc=yes
- case "$cc" in
- *gcc*) trygcc=no ;;
- esac
- # Skip this test because it gives a false match on output like:
- # ./trygcc: line 23: cc: command not found
- # case "`$cc -v -c try.c 2>&1`" in
- # *gcc*) trygcc=no ;;
- # esac
- if $test X"$trygcc" = Xyes; then
- if gcc -o try -c try.c; then
- echo " "
- echo "You seem to have a working gcc, though." >&4
- # Switching compilers may undo the work of hints files.
- # The most common problem is -D_REENTRANT for threads.
- # This heuristic catches that case, but gets false positives
- # if -Dusethreads was not actually specified. Better to
- # bail out here with a useful message than fail
- # mysteriously later. Should we perhaps just try to
- # re-invoke Configure -Dcc=gcc config_args ?
- if $test -f usethreads.cbu; then
- $cat >&4 <<EOM
-
-*** However, any setting of the C compiler flags (e.g. for thread support)
-*** will be lost. It may be necessary for you to restart Configure and
-*** add -Dcc=gcc to your Configure command line.
-
-EOM
- rp="Would you like to go ahead and try gcc anyway?"
- dflt=n
- else
- rp="Would you like to use it?"
- dflt=y
- fi
- if $test -f myread; then
- . ./myread
- else
- if $test -f UU/myread; then
- . ./UU/myread
- else
- echo "Cannot find myread, sorry. Aborting." >&4
- exit 1
- fi
- fi
- case "$ans" in
- [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no;
- esac
- fi
- fi
- fi
- $rm -f try try.*
- ;;
-esac
-EOSC
-
-cat <<EOS >checkcc
-$startsh
-EOS
-cat <<'EOSC' >>checkcc
-case "$cc" in
-'') ;;
-*) $rm -f try try.*
- $cat >try.c <<EOM
-int main(int argc, char *argv[]) {
- return 0;
-}
-EOM
- if $cc -o try $ccflags $ldflags try.c; then
- :
- else
- if $test X"$despair" = Xyes; then
- echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
- fi
- $cat >&4 <<EOM
-You need to find a working C compiler.
-Either (purchase and) install the C compiler supplied by your OS vendor,
-or for a free C compiler try http://gcc.gnu.org/
-I cannot continue any further, aborting.
-EOM
- exit 1
- fi
- $rm -f try try.*
- ;;
-esac
-EOSC
-
-: determine whether symbolic links are supported
-echo " "
-$touch blurfl
-if $ln -s blurfl sym > /dev/null 2>&1 ; then
- echo "Symbolic links are supported." >&4
- lns="$ln -s"
-else
- echo "Symbolic links are NOT supported." >&4
- lns="$ln"
-fi
-$rm -f blurfl sym
-
-: determine whether symbolic links are supported
-echo " "
-case "$lns" in
-*"ln"*" -s")
- echo "Checking how to test for symbolic links..." >&4
- $lns blurfl sym
- if $test "X$issymlink" = X; then
- case "$newsh" in
- '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
- *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
- esac
- if test $? = 0; then
- issymlink="test -h"
- else
- echo "Your builtin 'test -h' may be broken." >&4
- case "$test" in
- /*) ;;
- *) pth=`echo $PATH | sed -e "s/$p_/ /g"`
- for p in $pth
- do
- if test -f "$p/$test"; then
- test="$p/$test"
- break
- fi
- done
- ;;
- esac
- case "$test" in
- /*)
- echo "Trying external '$test -h'." >&4
- issymlink="$test -h"
- if $test ! -h sym >/dev/null 2>&1; then
- echo "External '$test -h' is broken, too." >&4
- issymlink=''
- fi
- ;;
- *) issymlink='' ;;
- esac
- fi
- fi
- if $test "X$issymlink" = X; then
- if $test -L sym 2>/dev/null; then
- issymlink="$test -L"
- echo "The builtin '$test -L' worked." >&4
- fi
- fi
- if $test "X$issymlink" != X; then
- echo "You can test for symbolic links with '$issymlink'." >&4
- else
- echo "I do not know how you can test for symbolic links." >&4
- fi
- $rm -f blurfl sym
- ;;
-*) echo "No symbolic links, so not testing for their testing..." >&4
- ;;
-esac
-
-: Make symlinks util
-case "$mksymlinks" in
-$define|true|[yY]*)
- case "$src" in
- ''|'.') echo "Cannot create symlinks in the original directory." >&4
- exit 1
- ;;
- *) case "$lns:$issymlink" in
- *"ln"*" -s:"*"test -"?)
- echo "Creating the symbolic links..." >&4
- cd ..
- awk '{print $1}' $src/MANIFEST | sed -e 's:/\([^/]*\)$: \1:' |
- awk 'NF == 1 {
- dir=".";
- file=$1 "";
- }
- NF == 2 {
- dir=$1 "";
- file=$2 "";
- }
- {
- print "# dir = ", dir, "file = ", file
- mf[dir] = mf[dir]" "source"/"dir"/"file;
- } END {
- for (d in mf) {
- if (d != ".") { print("mkdir -p "d) }
- print("ln -sf "mf[d]" "d);
- }
- }' source="$src" > UU/mksymlinks.$$
- sh UU/mksymlinks.$$
- rm UU/mksymlinks.$$
- # Sanity check 1.
- if test ! -d t/base; then
- echo "Failed to create the subdirectories. Aborting." >&4
- exit 1
- fi
- # Sanity check 2.
- if test ! -f t/base/lex.t; then
- echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
- exit 1
- fi
- if test ! -f win32/win32.c; then
- echo "Failed to create the symlinks (win32/win32.c missing). Aborting." >&4
- exit 1
- fi
- cd UU
- ;;
- *) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4
- ;;
- esac
- ;;
- esac
- ;;
-esac
-
-: Check for Cross-Compilation
-if $test "X$targethost" = "X"; then
- targethost=""
-fi
-if $test "X$targetenv" = "X"; then
- targetenv=""
-fi
-case "$usecrosscompile" in
-$define|true|[yY]*)
- $echo "Cross-compiling..."
- croak=''
- case "$cc" in
- *-gcc*|*-g++*) # A cross-compiling gcc, probably.
- # arm-linux-androideabi-gcc -> arm-linux-androideabi
- # x86_64-w64-mingw32-gcc.exe -> x86_64-w64-mingw32
- targetarch=`$echo $cc|$sed 's/-g[c\+][c\+].*$//'`
- ar=`$echo $cc|$sed 's/-g[c\+][c\+]/-ar/'`
- # leave out ld, choosing it is more complex
- nm=`$echo $cc|$sed 's/-g[c\+][c\+]/-nm/'`
- ranlib=`$echo $cc|$sed 's/-g[c\+][c\+]/-ranlib/'`
- # We are in a weird spot. Just before us, some values
- # were 'saved', to be restored after the hints are
- # run. This means that the changes we made to ar,
- # nm and ranlib will get reverted.
- # To avoid that, we hijack the saving mechanism and
- # have it save our new values.
- for file in ar nm ranlib; do
- eval xxx=\$$file
- eval $file=$xxx$_exe
- eval _$file=$xxx
- done
- ;;
- esac
- case "$targetarch" in
- '') echo "Targetarch not defined." >&4; croak=y ;;
- *) echo "Using targetarch $targetarch." >&4 ;;
- esac
- case "$targethost" in
- '') echo "Targethost not defined." >&4; croak=n ;;
- *) echo "Using targethost $targethost." >&4
- esac
- locincpth=' '
- loclibpth=' '
- case "$croak" in
- y) echo "Cannot continue, aborting." >&4; exit 1 ;;
- esac
- : compile a host miniperl and generate_uudmap, unless we got passed them
- if $test "X$hostperl" = X; then
- echo "Building host miniperl and generate_uudmap binaries" >&4
- before_host=`pwd`
- cd ..
- cd $src
- src=`pwd`
- rm -rf $src/host
- mkdir $src/host
- cd $src/host
- $src/Configure -des -Dusedevel -Dmksymlinks
- $make miniperl
- case "$hostgenerate" in
- '') $make generate_uudmap
- hostgenerate=$src/host/generate_uudmap
- ;;
- "$undef") hostgenerate=''
- ;;
- esac
- hostperl=$src/host/miniperl
- cd $before_host
- fi
- hostosname=`$hostperl -le 'print $^O'`
- ;;
-*)
- usecrosscompile="$undef"
- ;;
-esac
-
-: Define -Dtargethost=somecomputer to run compiled tests on another machine
-case "$targethost" in
- '') echo "Checking for cross-compile" >&4
- case "$usecrosscompile$multiarch" in
- *$define*) echo "Skipping the try tests in the rest of Configure as no targethost was defined when cross-compiling" >&4
- if [ -f Makefile ]; then
- echo " "
- echo "Now you must ensure config.sh, config.h and the generated headers exist and run a $make."
- else
- echo "Configure done."
- fi
- exit 0
- ;;
- *) echo "No targethost for running compiler tests against defined, running locally" >&4
- run=''
- to=:
- from=:
- ;;
- esac
- ;;
- *) echo "Using targethost $targethost." >&4
- case "$src" in
- /*) run=$src/Cross/run
- targetmkdir=$src/Cross/mkdir
- to=$src/Cross/to
- from=$src/Cross/from
- ;;
- *) pwd=`$test -f ../Configure & cd ..; pwd`
- run=$pwd/Cross/run
- targetmkdir=$pwd/Cross/mkdir
- to=$pwd/Cross/to
- from=$pwd/Cross/from
- ;;
- esac
- case "$targetrun" in
- '') targetrun=ssh ;;
- esac
- case "$targetto" in
- '') targetto=scp ;;
- esac
- case "$targetfrom" in
- '') targetfrom=scp ;;
- esac
- run=$run-$targetrun
- to=$to-$targetto
- from=$from-$targetfrom
- case "$targetdir" in
- '') targetdir=/tmp
- echo "Guessing targetdir $targetdir." >&4
- ;;
- esac
- case "$targetuser" in
- '') targetuser=root
- echo "Guessing targetuser $targetuser." >&4
- ;;
- esac
- case "$targetport" in
- '') targetport=22
- echo "Guessing targetport $targetport." >&4
- ;;
- esac
- case "$targetfrom" in
- scp) q=-q ;;
- *) q='' ;;
- esac
- case "$targetrun" in
- ssh|rsh)
- cat >$run <<EOF
-#!/bin/sh
-env=''
-case "\$1" in
--cwd)
- shift
- cwd=\$1
- shift
- ;;
-esac
-case "\$1" in
--env)
- shift
- env=\$1
- shift
- ;;
-esac
-case "\$cwd" in
-'') cwd=$targetdir ;;
-esac
-exe=\$1
-shift
-$to \$exe
-$targetrun -p $targetport -l $targetuser $targethost "cd \$cwd && \$env \$exe \$@"
-EOF
- ;;
- adb)
- $touch $run
- ;;
- *) echo "Unknown targetrun '$targetrun'" >&4
- exit 1
- ;;
- esac
- case "$targetmkdir" in
- */Cross/mkdir)
- cat >$targetmkdir <<EOF
-#!/bin/sh
-$targetrun -p $targetport -l $targetuser $targethost "mkdir -p \$@"
-EOF
- $chmod a+rx $targetmkdir
- ;;
- *) echo "Unknown targetmkdir '$targetmkdir'" >&4
- exit 1
- ;;
- esac
- case "$targetto" in
- scp|rcp)
- cat >$to <<EOF
-#!/bin/sh
-for f in \$@
-do
- case "\$f" in
- /*)
- $targetmkdir \`dirname \$f\`
- $targetto -P $targetport -r $q \$f $targetuser@$targethost:\$f 2>/dev/null || exit 1
- ;;
- *)
- $targetmkdir $targetdir/\`dirname \$f\`
- $targetto -P $targetport -r $q \$f $targetuser@$targethost:$targetdir/\$f 2>/dev/null || exit 1
- ;;
- esac
-done
-exit 0
-EOF
- ;;
- cp) cat >$to <<EOF
-#!/bin/sh
-for f in \$@
-do
- case "\$f" in
- /*)
- $mkdir -p $targetdir/\`dirname \$f\`
- $cp \$f $targetdir/\$f || exit 1
- ;;
- *)
- $targetmkdir $targetdir/\`dirname \$f\`
- $cp \$f $targetdir/\$f || exit 1
- ;;
- esac
-done
-exit 0
-EOF
- ;;
- *) echo "Unknown targetto '$targetto'" >&4
- exit 1
- ;;
- esac
- case "$targetfrom" in
- scp|rcp)
- cat >$from <<EOF
-#!/bin/sh
-for f in \$@
-do
- $rm -f \$f
- $targetfrom -P $targetport $q $targetuser@$targethost:$targetdir/\$f . || exit 1
-done
-exit 0
-EOF
- ;;
- cp) cat >$from <<EOF
-#!/bin/sh
-for f in \$@
-do
- $rm -f \$f
- cp $targetdir/\$f . || exit 1
-done
-exit 0
-EOF
- ;;
- *) echo "Unknown targetfrom '$targetfrom'" >&4
- exit 1
- ;;
- esac
- if $test ! -f $run; then
- echo "Target 'run' script '$run' not found." >&4
- else
- $chmod a+rx $run
- fi
- if $test ! -f $to; then
- echo "Target 'to' script '$to' not found." >&4
- else
- $chmod a+rx $to
- fi
- if $test ! -f $from; then
- echo "Target 'from' script '$from' not found." >&4
- else
- $chmod a+rx $from
- fi
- if $test ! -f $run -o ! -f $to -o ! -f $from; then
- exit 1
- fi
- cat >&4 <<EOF
-Using '$run' for remote execution,
-and '$from' and '$to'
-for remote file transfer.
-EOF
- ;;
-*) run=''
- to=:
- from=:
- usecrosscompile="$undef"
- targetarch=''
- ;;
-esac
-
-: see whether [:lower:] and [:upper:] are supported character classes
-echo " "
-case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`"-"`echo AbyZ | $tr '[:upper:]' '[:lower:]' 2>/dev/null`" in
-ABYZ-abyz)
- echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
- up='[:upper:]'
- low='[:lower:]'
- ;;
-*) # There is a discontinuity in EBCDIC between 'R' and 'S'
- # (0xd9 and 0xe2), therefore that is a nice testing point.
- if test "X$up" = X -o "X$low" = X; then
- case "`echo RS | $tr '[R-S]' '[r-s]' 2>/dev/null`" in
- rs) up='[A-Z]'
- low='[a-z]'
- ;;
- esac
- fi
- if test "X$up" = X -o "X$low" = X; then
- case "`echo RS | $tr R-S r-s 2>/dev/null`" in
- rs) up='A-Z'
- low='a-z'
- ;;
- esac
- fi
- if test "X$up" = X -o "X$low" = X; then
- case "`echo RS | od -x 2>/dev/null`" in
- *D9E2*|*d9e2*)
- echo "Hey, this might be EBCDIC." >&4
- if test "X$up" = X -o "X$low" = X; then
- case "`echo RS | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
- rs) up='[A-IJ-RS-Z]'
- low='[a-ij-rs-z]'
- ;;
- esac
- fi
- if test "X$up" = X -o "X$low" = X; then
- case "`echo RS | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
- rs) up='A-IJ-RS-Z'
- low='a-ij-rs-z'
- ;;
- esac
- fi
- ;;
- esac
- fi
-esac
-case "`echo RS | $tr \"$up\" \"$low\" 2>/dev/null`" in
-rs)
- echo "Using $up and $low to convert case." >&4
- ;;
-*)
- echo "I don't know how to translate letters from upper to lower case." >&4
- echo "Your tr is not acting any way I know of." >&4
- exit 1
- ;;
-esac
-: set up the translation script tr, must be called with ./tr of course
-cat >tr <<EOSC
-$startsh
-case "\$1\$2" in
-'[A-Z][a-z]') exec $tr '$up' '$low';;
-'[a-z][A-Z]') exec $tr '$low' '$up';;
-esac
-exec $tr "\$@"
-EOSC
-chmod +x tr
-$eunicefix tr
-
-: Try to determine whether config.sh was made on this system
-case "$config_sh" in
-'')
-myuname=`$uname -a 2>/dev/null`
-$test -z "$myuname" && myuname=`hostname 2>/dev/null`
-# Downcase everything to avoid ambiguity.
-# Remove slashes and single quotes so we can use parts of this in
-# directory and file names.
-# Remove newlines so myuname is sane to use elsewhere.
-# tr '[A-Z]' '[a-z]' would not work in EBCDIC
-# because the A-Z/a-z are not consecutive.
-myuname=`echo $myuname | $sed -e "s,['/],,g" | \
- ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
-newmyuname="$myuname"
-dflt=n
-case "$knowitall" in
-'')
- if test -f ../config.sh; then
- if $contains myuname= ../config.sh >/dev/null 2>&1; then
- eval "`grep myuname= ../config.sh`"
- fi
- if test "X$myuname" = "X$newmyuname"; then
- dflt=y
- fi
- fi
- ;;
-*) dflt=y;;
-esac
-
-: Get old answers from old config file if Configure was run on the
-: same system, otherwise use the hints.
-hint=default
-cd ..
-if test -f config.sh; then
- echo " "
- rp="I see a config.sh file. Shall I use it to set the defaults?"
- . UU/myread
- case "$ans" in
- n*|N*) echo "OK, I'll ignore it."
- mv config.sh config.sh.old
- myuname="$newmyuname"
- ;;
- *) echo "Fetching default answers from your old config.sh file..." >&4
- tmp_n="$n"
- tmp_c="$c"
- tmp_sh="$sh"
- . ./config.sh
- cp config.sh UU
- n="$tmp_n"
- c="$tmp_c"
- : Older versions did not always set $sh. Catch re-use of such
- : an old config.sh.
- case "$sh" in
- '') sh="$tmp_sh" ;;
- esac
- hint=previous
- ;;
- esac
-fi
-. ./UU/checkcc
-if test ! -f config.sh; then
- $cat <<EOM
-
-First time through, eh? I have some defaults handy for some systems
-that need some extra help getting the Configure answers right:
-
-EOM
- (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
- dflt=''
- : Half the following guesses are probably wrong... If you have better
- : tests or hints, please send them to https://github.com/Perl/perl5/issues
- : The metaconfig authors would also appreciate a copy...
- $test -f /irix && osname=irix
- $test -f /xenix && osname=sco_xenix
- $test -f /dynix && osname=dynix
- $test -f /dnix && osname=dnix
- $test -f /lynx.os && osname=lynxos
- $test -f /unicos && osname=unicos && osvers=`$uname -r`
- $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
- $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
- $test -f /bin/mips && /bin/mips && osname=mips
- $test -d /usr/apollo/bin && osname=apollo
- $test -f /etc/saf/_sactab && osname=svr4
- $test -d /usr/include/minix && osname=minix && osvers=`$uname -r`
- $test -f /system/gnu_library/bin/ar.pm && osname=vos
- $test -f /sys/utilities/MultiView && osname=amigaos
- if $test -d /MachTen -o -d /MachTen_Folder; then
- osname=machten
- if $test -x /sbin/version; then
- osvers=`/sbin/version | $awk '{print $2}' |
- $sed -e 's/[A-Za-z]$//'`
- elif $test -x /usr/etc/version; then
- osvers=`/usr/etc/version | $awk '{print $2}' |
- $sed -e 's/[A-Za-z]$//'`
- else
- osvers="$2.$3"
- fi
- fi
-
- $test -f /sys/posix.dll &&
- $test -f /usr/bin/what &&
- set X `/usr/bin/what /sys/posix.dll` &&
- $test "$3" = UWIN &&
- osname=uwin &&
- osvers="$5"
-
- if $test -f $uname; then
- set X $myuname
- shift
-
- case "$5" in
- fps*) osname=fps ;;
- mips*)
- case "$4" in
- umips) osname=umips ;;
- *) osname=mips ;;
- esac;;
- [23]100) osname=mips ;;
- i386*)
- tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
- if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
- osname='sco'
- osvers=$tmp
- elif $test -f /etc/kconfig; then
- osname=isc
- if test "$lns" = "$ln -s"; then
- osvers=4
- elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
- osvers=3
- elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
- osvers=2
- fi
- fi
- tmp=''
- ;;
- pc*)
- if test -n "$DJGPP"; then
- osname=dos
- osvers=djgpp
- fi
- ;;
- esac
-
- case "$1" in
- aix) osname=aix
- tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
- case "$tmp" in
- # oslevel can fail with:
- # oslevel: Unable to acquire lock.
- *not\ found) osvers="$4"."$3" ;;
- '<3240'|'<>3240') osvers=3.2.0 ;;
- '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
- '=3250'|'>3250') osvers=3.2.5 ;;
- *) osvers=$tmp;;
- esac
- ;;
- bitrig) osname=bitrig
- osvers="$3"
- ;;
- bsd386) osname=bsd386
- osvers=`$uname -r`
- ;;
- cygwin*) osname=cygwin
- osvers="$3"
- ;;
- *dc.osx) osname=dcosx
- osvers="$3"
- ;;
- dnix) osname=dnix
- osvers="$3"
- ;;
- domainos) osname=apollo
- osvers="$3"
- ;;
- dgux) osname=dgux
- osvers="$3"
- ;;
- dragonfly) osname=dragonfly
- osvers="$3"
- ;;
- dynixptx*) osname=dynixptx
- osvers=`echo "$4"|sed 's/^v//'`
- ;;
- freebsd) osname=freebsd
- osvers="$3" ;;
- genix) osname=genix ;;
- gnu) osname=gnu
- osvers="$3" ;;
- hp*) osname=hpux
- osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
- ;;
- irix*) osname=irix
- case "$3" in
- 4*) osvers=4 ;;
- 5*) osvers=5 ;;
- *) osvers="$3" ;;
- esac
- ;;
- linux) osname=linux
- case "$3" in
- *) osvers="$3" ;;
- esac
- $test -f /system/lib/libandroid.so && osname=linux-android
- ;;
- MiNT) osname=mint
- ;;
- minix) osname=minix
- osvers=`$uname -r`
- ;;
- netbsd*) osname=netbsd
- osvers="$3"
- ;;
- news-os) osvers="$3"
- case "$3" in
- 4*) osname=newsos4 ;;
- *) osname=newsos ;;
- esac
- ;;
- nonstop-ux) osname=nonstopux ;;
- openbsd) osname=openbsd
- osvers="$3"
- ;;
- os2) osname=os2
- osvers="$4"
- ;;
- POSIX-BC | posix-bc ) osname=posix-bc
- osvers="$3"
- ;;
- powerux | power_ux | powermax_os | powermaxos | \
- powerunix | power_unix) osname=powerux
- osvers="$3"
- ;;
- qnx) osname=qnx
- osvers="$4"
- ;;
- solaris) osname=solaris
- case "$3" in
- 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
- *) osvers="$3" ;;
- esac
- ;;
- sunos) osname=sunos
- case "$3" in
- 5*) osname=solaris
- osvers=`echo $3 | $sed 's/^5/2/g'` ;;
- *) osvers="$3" ;;
- esac
- ;;
- titanos) osname=titanos
- case "$3" in
- 1*) osvers=1 ;;
- 2*) osvers=2 ;;
- 3*) osvers=3 ;;
- 4*) osvers=4 ;;
- *) osvers="$3" ;;
- esac
- ;;
- ultrix) osname=ultrix
- osvers="$3"
- ;;
- osf1|mls+) case "$5" in
- alpha)
- osname=dec_osf
- osvers=`sizer -v | awk -FUNIX '{print $2}' | awk '{print $1}' | tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
- case "$osvers" in
- [1-9].[0-9]*) ;;
- *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
- esac
- ;;
- hp*) osname=hp_osf1 ;;
- mips) osname=mips_osf1 ;;
- esac
- ;;
- # UnixWare 7.1.2 is known as Open UNIX 8
- openunix|unixware) osname=svr5
- osvers="$4"
- ;;
- uts) osname=uts
- osvers="$3"
- ;;
- vos) osvers="$3"
- ;;
- $2) case "$osname" in
- *isc*) ;;
- *freebsd*) ;;
- svr*)
- : svr4.x or possibly later
- case "svr$3" in
- ${osname}*)
- osname=svr$3
- osvers=$4
- ;;
- esac
- case "$osname" in
- svr4.0)
- : Check for ESIX
- if test -f /stand/boot ; then
- eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
- if test -n "$INITPROG" -a -f "$INITPROG"; then
- isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
- if test -n "$isesix"; then
- osname=esix4
- fi
- fi
- fi
- ;;
- esac
- ;;
- *) if test -f /etc/systemid; then
- osname=sco
- set `echo $3 | $sed 's/\./ /g'` $4
- if $test -f $src/hints/sco_$1_$2_$3.sh; then
- osvers=$1.$2.$3
- elif $test -f $src/hints/sco_$1_$2.sh; then
- osvers=$1.$2
- elif $test -f $src/hints/sco_$1.sh; then
- osvers=$1
- fi
- else
- case "$osname" in
- '') : Still unknown. Probably a generic Sys V.
- osname="sysv"
- osvers="$3"
- ;;
- esac
- fi
- ;;
- esac
- ;;
- *) case "$osname" in
- '') : Still unknown. Probably a generic BSD.
- osname="$1"
- osvers="$3"
- ;;
- esac
- ;;
- esac
- else
- if test -f /vmunix -a -f $src/hints/news_os.sh; then
- (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
- if $contains news-os UU/kernel.what >/dev/null 2>&1; then
- osname=news_os
- fi
- $rm -f UU/kernel.what
- elif test -d c:/. -o -n "$is_os2" ; then
- set X $myuname
- osname=os2
- osvers="$5"
- fi
- fi
-
- case "$targetarch" in
- '') ;;
- *) hostarch=$osname
- case "$targetarch" in
- nto*|*-nto-*)
- # Will load qnx.sh, which should change osname to nto
- osname=qnx
- osvers=''
- ;;
- *linux-android*)
- # Catch arm-linux-androideabi, mipsel-linux-android,
- # and i686-linux-android
- osname=linux-android
- osvers=''
- ;;
- *linux*)
- # Something like arm-linux-gnueabihf is really just
- # plain linux.
- osname=linux
- osvers=''
- ;;
- *solaris*|*sunos*)
- osname=solaris
- # XXX perhaps we should just assume
- # osvers to be 2, or maybe take the value
- # from targetarch. Using $run before the
- # hints are run is somewhat icky.
- set X `$run $uname -a 2>/dev/null`
- shift
- case "$3" in
- 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
- *) osvers="$3" ;;
- esac
- ;;
- *)
- osname=`echo $targetarch|sed 's,^[^-]*-,,'`
- osvers=''
- ;;
- esac
- ;;
- esac
-
- : Now look for a hint file osname_osvers, unless one has been
- : specified already.
- case "$hintfile" in
- ''|' ')
- file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
- : Also try without trailing minor version numbers.
- xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
- xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
- xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
- xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
- case "$file" in
- '') dflt=none ;;
- *) case "$osvers" in
- '') dflt=$file
- ;;
- *) if $test -f $src/hints/$file.sh ; then
- dflt=$file
- elif $test -f $src/hints/$xfile.sh ; then
- dflt=$xfile
- elif $test -f $src/hints/$xxfile.sh ; then
- dflt=$xxfile
- elif $test -f $src/hints/$xxxfile.sh ; then
- dflt=$xxxfile
- elif $test -f $src/hints/$xxxxfile.sh ; then
- dflt=$xxxxfile
- elif $test -f "$src/hints/${osname}.sh" ; then
- dflt="${osname}"
- else
- dflt=none
- fi
- ;;
- esac
- ;;
- esac
- if $test -f Policy.sh ; then
- case "$dflt" in
- *Policy*) ;;
- none) dflt="Policy" ;;
- *) dflt="Policy $dflt" ;;
- esac
- fi
- ;;
- *)
- dflt=`echo $hintfile | $sed 's/\.sh$//'`
- ;;
- esac
-
- if $test -f Policy.sh ; then
- $cat <<EOM
-
-There's also a Policy hint file available, which should make the
-site-specific (policy) questions easier to answer.
-EOM
-
- fi
-
- $cat <<EOM
-
-You may give one or more space-separated answers, or "none" if appropriate.
-If you have a handcrafted Policy.sh file or a Policy.sh file generated by a
-previous run of Configure, you may specify it as well as or instead of
-OS-specific hints. If hints are provided for your OS, you should use them:
-although Perl can probably be built without hints on many platforms, using
-hints often improve performance and may enable features that Configure can't
-set up on its own. If there are no hints that match your OS, specify "none";
-DO NOT give a wrong version or a wrong OS.
-
-EOM
-
- rp="Which of these apply, if any?"
- . UU/myread
- tans=$ans
- for file in $tans; do
- if $test X$file = XPolicy -a -f Policy.sh; then
- . Policy.sh
- $cat Policy.sh >> UU/config.sh
- elif $test -f $src/hints/$file.sh; then
- . $src/hints/$file.sh
- $cat $src/hints/$file.sh >> UU/config.sh
- elif $test X"$tans" = X -o X"$tans" = Xnone ; then
- : nothing
- else
- : Give one chance to correct a possible typo.
- echo "$file.sh does not exist"
- dflt=$file
- rp="hint to use instead?"
- . UU/myread
- for file in $ans; do
- if $test -f "$src/hints/$file.sh"; then
- . $src/hints/$file.sh
- $cat $src/hints/$file.sh >> UU/config.sh
- elif $test X$ans = X -o X$ans = Xnone ; then
- : nothing
- else
- echo "$file.sh does not exist -- ignored."
- fi
- done
- fi
- done
-
- hint=recommended
- : Remember our hint file for later.
- if $test -f "$src/hints/$file.sh" ; then
- hintfile="$file"
- else
- hintfile=''
- fi
-fi
-cd UU
-;;
-*)
- echo " "
- echo "Fetching default answers from $config_sh..." >&4
- tmp_n="$n"
- tmp_c="$c"
- cd ..
- cp $config_sh config.sh 2>/dev/null
- chmod +w config.sh
- . ./config.sh
- cd UU
- cp ../config.sh .
- n="$tmp_n"
- c="$tmp_c"
- hint=previous
- ;;
-esac
-. ./optdef.sh
-
-: Restore computed paths
-for file in $loclist $trylist; do
- eval $file="\$_$file"
-done
-
-cat << EOM
-
-Configure uses the operating system name and version to set some defaults.
-The default value is probably right if the name rings a bell. Otherwise,
-since spelling matters for me, either accept the default or answer "none"
-to leave it blank.
-
-EOM
-case "$osname" in
- ''|' ')
- case "$hintfile" in
- ''|' '|none) dflt=none ;;
- *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
- esac
- ;;
- *) dflt="$osname" ;;
-esac
-rp="Operating system name?"
-. ./myread
-case "$ans" in
-none) osname='' ;;
-*) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
-esac
-echo " "
-case "$osvers" in
- ''|' ')
- case "$hintfile" in
- ''|' '|none) dflt=none ;;
- *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
- dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
- case "$dflt" in
- ''|' ') dflt=none ;;
- esac
- ;;
- esac
- ;;
- *) dflt="$osvers" ;;
-esac
-rp="Operating system version?"
-. ./myread
-case "$ans" in
-none) osvers='' ;;
-*) osvers="$ans" ;;
-esac
-
-
-. ./posthint.sh
-
-: who configured the system
-cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
-case "$cf_by" in
-"")
- cf_by=`(logname) 2>/dev/null`
- case "$cf_by" in
- "")
- cf_by=`(whoami) 2>/dev/null`
- case "$cf_by" in
- "") cf_by=unknown ;;
- esac ;;
- esac ;;
-esac
-
-: decide how portable to be. Allow command line overrides.
-case "$d_portable" in
-"$undef") ;;
-*) d_portable="$define" ;;
-esac
-
-: set up shell script to do ~ expansion
-cat >filexp <<EOSS
-$startsh
-: expand filename
-case "\$1" in
- \~/*|\~)
- echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
- ;;
- \~*)
- if $test -f /bin/csh; then
- /bin/csh -f -c "glob \$1"
- failed=\$?
- echo ""
- exit \$failed
- else
- name=\`$expr x\$1 : '..\([^/]*\)'\`
- dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
- if $test ! -d "\$dir"; then
- me=\`basename \$0\`
- echo "\$me: can't locate home directory for: \$name" >&2
- exit 1
- fi
- case "\$1" in
- */*)
- echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
- ;;
- *)
- echo \$dir
- ;;
- esac
- fi
- ;;
-*)
- echo \$1
- ;;
-esac
-EOSS
-chmod +x filexp
-$eunicefix filexp
-
-: now set up to get a file name
-cat <<EOS >getfile
-$startsh
-EOS
-cat <<'EOSC' >>getfile
-tilde=''
-fullpath=''
-already=''
-skip=''
-none_ok=''
-exp_file=''
-nopath_ok=''
-orig_rp="$rp"
-orig_dflt="$dflt"
-case "$gfpth" in
-'') gfpth='.' ;;
-esac
-
-case "$fn" in
-*\(*)
- : getfile will accept an answer from the comma-separated list
- : enclosed in parentheses even if it does not meet other criteria.
- expr "$fn" : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
- fn=`echo $fn | sed 's/(.*)//'`
- ;;
-esac
-
-case "$fn" in
-*:*)
- loc_file=`expr $fn : '.*:\(.*\)'`
- fn=`expr $fn : '\(.*\):.*'`
- ;;
-esac
-
-case "$fn" in
-*~*) tilde=true;;
-esac
-case "$fn" in
-*/*) fullpath=true;;
-esac
-case "$fn" in
-*+*) skip=true;;
-esac
-case "$fn" in
-*n*) none_ok=true;;
-esac
-case "$fn" in
-*e*) exp_file=true;;
-esac
-case "$fn" in
-*p*) nopath_ok=true;;
-esac
-
-case "$fn" in
-*f*) type='File';;
-*d*) type='Directory';;
-*l*) type='Locate';;
-esac
-
-what="$type"
-case "$what" in
-Locate) what='File';;
-esac
-
-case "$exp_file" in
-'')
- case "$d_portable" in
- "$define") ;;
- *) exp_file=true;;
- esac
- ;;
-esac
-
-cd ..
-while test "$type"; do
- redo=''
- rp="$orig_rp"
- dflt="$orig_dflt"
- case "$tilde" in
- true) rp="$rp (~name ok)";;
- esac
- . UU/myread
- if test -f UU/getfile.ok && \
- $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
- then
- value="$ans"
- ansexp="$ans"
- break
- fi
- case "$ans" in
- none)
- value=''
- ansexp=''
- case "$none_ok" in
- true) type='';;
- esac
- ;;
- *)
- case "$tilde" in
- '') value="$ans"
- ansexp="$ans";;
- *)
- value=`UU/filexp $ans`
- case $? in
- 0)
- if test "$ans" != "$value"; then
- echo "(That expands to $value on this system.)"
- fi
- ;;
- *) value="$ans";;
- esac
- ansexp="$value"
- case "$exp_file" in
- '') value="$ans";;
- esac
- ;;
- esac
- case "$fullpath" in
- true)
- case "$ansexp" in
- /*) value="$ansexp" ;;
- [a-zA-Z]:/*) value="$ansexp" ;;
- *)
- redo=true
- case "$already" in
- true)
- echo "I shall only accept a full path name, as in /bin/ls." >&4
- echo "Use a ! shell escape if you wish to check pathnames." >&4
- ;;
- *)
- echo "Please give a full path name, starting with slash." >&4
- case "$tilde" in
- true)
- echo "Note that using ~name is ok provided it expands well." >&4
- already=true
- ;;
- esac
- esac
- ;;
- esac
- ;;
- esac
- case "$redo" in
- '')
- case "$type" in
- File)
- for fp in $gfpth; do
- if test "X$fp" = X.; then
- pf="$ansexp"
- else
- pf="$fp/$ansexp"
- fi
- if test -f "$pf"; then
- type=''
- elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
- then
- echo "($value is not a plain file, but that's ok.)"
- type=''
- fi
- if test X"$type" = X; then
- value="$pf"
- break
- fi
- done
- ;;
- Directory)
- for fp in $gfpth; do
- if test "X$fp" = X.; then
- dir="$ans"
- direxp="$ansexp"
- else
- dir="$fp/$ansexp"
- direxp="$fp/$ansexp"
- fi
- if test -d "$direxp"; then
- type=''
- value="$dir"
- break
- fi
- done
- ;;
- Locate)
- if test -d "$ansexp"; then
- echo "(Looking for $loc_file in directory $value.)"
- value="$value/$loc_file"
- ansexp="$ansexp/$loc_file"
- fi
- if test -f "$ansexp"; then
- type=''
- fi
- case "$nopath_ok" in
- true) case "$value" in
- */*) ;;
- *) echo "Assuming $value will be in people's path."
- type=''
- ;;
- esac
- ;;
- esac
- ;;
- esac
-
- case "$skip" in
- true) type='';
- esac
-
- case "$type" in
- '') ;;
- *)
- if test "$fastread" = yes; then
- dflt=y
- else
- dflt=n
- fi
- rp="$what $value doesn't exist. Use that name anyway?"
- . UU/myread
- dflt=''
- case "$ans" in
- y*) type='';;
- *) echo " ";;
- esac
- ;;
- esac
- ;;
- esac
- ;;
- esac
-done
-cd UU
-ans="$value"
-rp="$orig_rp"
-dflt="$orig_dflt"
-rm -f getfile.ok
-test "X$gfpthkeep" != Xy && gfpth=""
-EOSC
-
-: determine root of directory hierarchy where package will be installed.
-case "$prefix" in
-'') dflt=`./loc . /usr/local /usr/local /local /opt /usr`
- ;;
-*) dflt="$prefix"
- ;;
-esac
-$cat <<EOM
-
-By default, $package will be installed in $dflt/bin, manual pages
-under $dflt/man, etc..., i.e. with $dflt as prefix for all
-installation directories. Typically this is something like /usr/local.
-If you wish to have binaries under /usr/bin but other parts of the
-installation under /usr/local, that's ok: you will be prompted
-separately for each of the installation directories, the prefix being
-only used to set the defaults.
-
-EOM
-fn=d~
-rp='Installation prefix to use?'
-. ./getfile
-oldprefix=''
-case "$prefix" in
-'') ;;
-*) case "$ans" in
- "$prefix") ;;
- *) oldprefix="$prefix";;
- esac
- ;;
-esac
-
-case "$ans" in
-*?/) prefix=`echo "$ans" | sed 's/.$//'`
- ;;
-*) prefix="$ans"
-esac
-
-case "$ansexp" in
-*?/) prefixexp=`echo "$ansexp" | sed 's/.$//'`
- ;;
-*) prefixexp="$ansexp"
-esac
-
-: allow them to override the AFS root
-case "$afsroot" in
-'') afsroot=/afs ;;
-*) afsroot=$afsroot ;;
-esac
-
-: is AFS running?
-echo " "
-case "$afs" in
-$define|true) afs=true ;;
-$undef|false) afs=false ;;
-*) if $test -d $afsroot; then
- afs=true
- else
- afs=false
- fi
- ;;
-esac
-if $afs; then
- echo "AFS may be running... I'll be extra cautious then..." >&4
-else
- echo "AFS does not seem to be running..." >&4
-fi
-
-: determine installation prefix for where package is to be installed.
-if $afs; then
-$cat <<EOM
-
-Since you are running AFS, I need to distinguish the directory in which
-files will reside from the directory in which they are installed (and from
-which they are presumably copied to the former directory by occult means).
-
-EOM
- case "$installprefix" in
- '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
- *) dflt="$installprefix";;
- esac
-else
-$cat <<EOM
-
-In some special cases, particularly when building $package for distribution,
-it is convenient to distinguish the directory in which files should be
-installed from the directory ($prefix) in which they will
-eventually reside. For most users, these two directories are the same.
-
-EOM
- case "$installprefix" in
- '') dflt=$prefix ;;
- *) dflt=$installprefix;;
- esac
-fi
-fn=d~
-rp='What installation prefix should I use for installing files?'
-. ./getfile
-installprefix="$ans"
-installprefixexp="$ansexp"
-
-: Perform the prefixexp/installprefixexp correction if necessary
-cat <<EOS >installprefix
-$startsh
-EOS
-cat <<'EOSC' >>installprefix
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
- eval "install${prefixvar}=\`echo \$${prefixvar}exp | sed \"s#^\$prefixexp#\$installprefixexp#\"\`"
-else
- eval "install${prefixvar}=\"\$${prefixvar}exp\""
-fi
-EOSC
-chmod +x installprefix
-$eunicefix installprefix
-
-: Set variables such as privlib and privlibexp from the output of ./getfile
-: performing the prefixexp/installprefixexp correction if necessary.
-cat <<EOS >setprefixvar
-$startsh
-EOS
-cat <<'EOSC' >>setprefixvar
-eval "${prefixvar}=\"\$ans\""
-eval "${prefixvar}exp=\"\$ansexp\""
-. ./installprefix
-EOSC
-chmod +x setprefixvar
-$eunicefix setprefixvar
-
-: set up the script used to warn in case of inconsistency
-cat <<EOS >whoa
-$startsh
-EOS
-cat <<'EOSC' >>whoa
-dflt=y
-case "$hint" in
- recommended)
- case "$hintfile" in
- '') echo "The $hint value for \$$var on this machine was \"$was\"!" >&4
- ;;
- *) echo "Hmm. Based on the hints in hints/$hintfile.sh, " >&4
- echo "the $hint value for \$$var on this machine was \"$was\"!" >&4
- ;;
- esac
- ;;
- *) echo " "
- echo "*** WHOA THERE!!! ***" >&4
- echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
- ;;
-esac
-rp=" Keep the $hint value?"
-. ./myread
-case "$ans" in
-y) td=$was; tu=$was;;
-esac
-EOSC
-
-: function used to set '$1' to '$val'
-setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
-case "$val$was" in
-$define$undef) . ./whoa; eval "$var=\$td";;
-$undef$define) . ./whoa; eval "$var=\$tu";;
-*) eval "$var=$val";;
-esac'
-
-: Do we want threads support and if so, what type
-case "$usethreads" in
-$define|true|[yY]*) dflt='y';;
-*) # Catch case where user specified ithreads but
- # forgot -Dusethreads (A.D. 4/2002)
- case "$useithreads" in
- *$define*) dflt='y';;
- *) dflt='n';;
- esac
- ;;
-esac
-cat <<EOM
-
-Perl can be built to offer a form of threading support on some systems
-To do so, Configure can be run with -Dusethreads.
-
-Note that Perl built with threading support runs slightly slower
-and uses slightly more memory than plain Perl.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Build a threading Perl?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set usethreads
-eval $setvar
-
-useithreads="$usethreads"
-
-case "$d_oldpthreads" in
-'') : Configure tests would be welcome here. For now, assume undef.
- val="$undef" ;;
-*) val="$d_oldpthreads" ;;
-esac
-set d_oldpthreads
-eval $setvar
-
-
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that a threading perl is to be built,
-: we may need to set or change some other defaults.
-if $test -f usethreads.cbu; then
- echo "Your platform has some specific hints regarding threaded builds, using them..."
- . ./usethreads.cbu
-else
- case "$usethreads" in
- "$define"|true|[yY]*)
- $cat <<EOM
-(Your platform does not have any specific hints for threaded builds.
- Assuming POSIX threads, then.)
-EOM
- ;;
- esac
-fi
-
-: Check if multiplicity is required
-cat <<EOM
-
-Perl can be built so that multiple Perl interpreters can coexist
-within the same Perl executable.
-EOM
-
-case "$useithreads" in
-$define)
- cat <<EOM
-This multiple interpreter support is required for interpreter-based threads.
-EOM
- val="$define"
- ;;
-*) case "$usemultiplicity" in
- $define|true|[yY]*) dflt='y';;
- *) dflt='n';;
- esac
- echo " "
- echo "If this doesn't make any sense to you, just accept the default '$dflt'."
- rp='Build Perl for multiplicity?'
- . ./myread
- case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
- esac
- ;;
-esac
-set usemultiplicity
-eval $setvar
-
-: Check if morebits is requested
-case "$usemorebits" in
-"$define"|true|[yY]*)
- use64bitint="$define"
- uselongdouble="$define"
- usemorebits="$define"
- ;;
-*) usemorebits="$undef"
- ;;
-esac
-
-: Determine the C compiler to be used
-echo " "
-case "$cc" in
-'') dflt=cc;;
-*) dflt="$cc";;
-esac
-rp="Use which C compiler?"
-. ./myread
-cc="$ans"
-
-: See whether they have no cc but they do have gcc
-. ./trygcc
-if $test -f cc.cbu; then
- . ./cc.cbu
-fi
-. ./checkcc
-
-: make some quick guesses about what we are up against
-echo " "
-$echo $n "Hmm... $c"
-echo exit 1 >bsd
-echo exit 1 >usg
-echo exit 1 >v7
-echo exit 1 >osf1
-echo exit 1 >eunice
-echo exit 1 >xenix
-echo exit 1 >venix
-echo exit 1 >os2
-d_bsd="$undef"
-$cat $sysroot/usr/include/signal.h $sysroot/usr/include/sys/signal.h >foo 2>/dev/null
-if test -f /osf_boot || $contains 'OSF/1' $sysroot/usr/include/ctype.h >/dev/null 2>&1
-then
- echo "Looks kind of like an OSF/1 system, but we'll see..."
- echo exit 0 >osf1
-elif test `echo abc | $tr a-z A-Z` = Abc ; then
- xxx=`./loc addbib blurfl $pth`
- if $test -f $xxx; then
- echo "Looks kind of like a USG system with BSD features, but we'll see..."
- echo exit 0 >bsd
- echo exit 0 >usg
- else
- if $contains SIGTSTP foo >/dev/null 2>&1 ; then
- echo "Looks kind of like an extended USG system, but we'll see..."
- else
- echo "Looks kind of like a USG system, but we'll see..."
- fi
- echo exit 0 >usg
- fi
-elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
- echo "Looks kind of like a BSD system, but we'll see..."
- d_bsd="$define"
- echo exit 0 >bsd
-else
- echo "Looks kind of like a Version 7 system, but we'll see..."
- echo exit 0 >v7
-fi
-case "$eunicefix" in
-*unixtovms*)
- $cat <<'EOI'
-There is, however, a strange, musty smell in the air that reminds me of
-something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
-EOI
- echo exit 0 >eunice
- d_eunice="$define"
-: it so happens the Eunice I know will not run shell scripts in Unix format
- ;;
-*)
- echo " "
- echo "Congratulations. You aren't running Eunice."
- d_eunice="$undef"
- ;;
-esac
-: Detect OS2. The p_ variable is set above in the Head.U unit.
-: Note that this also -- wrongly -- detects e.g. dos-djgpp, which also uses
-: semicolon as a patch separator
-case "$p_" in
-:) ;;
-*)
- $cat <<'EOI'
-I have the feeling something is not exactly right, however...don't tell me...
-lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
-(Or you may be running DOS with DJGPP.)
-EOI
- echo exit 0 >os2
- ;;
-esac
-if test -f /xenix; then
- echo "Actually, this looks more like a XENIX system..."
- echo exit 0 >xenix
- d_xenix="$define"
-else
- echo " "
- echo "It's not Xenix..."
- d_xenix="$undef"
-fi
-chmod +x xenix
-$eunicefix xenix
-if test -f /venix; then
- echo "Actually, this looks more like a VENIX system..."
- echo exit 0 >venix
-else
- echo " "
- if ./xenix; then
- : null
- else
- echo "Nor is it Venix..."
- fi
-fi
-chmod +x bsd usg v7 osf1 eunice xenix venix os2
-$eunicefix bsd usg v7 osf1 eunice xenix venix os2
-$rm -f foo
-
-: Check if we are using GNU gcc and what its version is
-echo " "
-echo "Checking for GNU cc in disguise and/or its version number..." >&4
-$cat >try.c <<EOM
-#include <stdio.h>
-int main() {
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
-#ifdef __VERSION__
- printf("%s\n", __VERSION__);
-#else
- printf("%s\n", "1");
-#endif
-#endif
- return(0);
-}
-EOM
-if $cc -o try $ccflags $ldflags try.c; then
- gccversion=`$run ./try`
- case "$gccversion" in
- '') echo "You are not using GNU cc." ;;
- *) echo "You are using GNU cc $gccversion."
- ccname=gcc
- ;;
- esac
-else
- echo " "
- echo "*** WHOA THERE!!! ***" >&4
- echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
- case "$knowitall" in
- '')
- echo " You'd better start hunting for one and let me know about it." >&4
- exit 1
- ;;
- esac
-fi
-$rm -f try try.*
-case "$gccversion" in
-1.*) cpp=`./loc gcc-cpp $cpp $pth` ;;
-esac
-case "$gccversion" in
-'') gccosandvers='' ;;
-*) gccshortvers=`echo "$gccversion"|sed 's/ .*//'`
- gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"`
- gccshortvers=''
- case "$gccosandvers" in
- $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr
- $osname$osvers) ;; # looking good
- $osname*) cat <<EOM >&4
-
-*** WHOA THERE!!! ***
-
- Your gcc has not been compiled for the exact release of
- your operating system ($gccosandvers versus $osname$osvers).
-
- In general it is a good idea to keep gcc synchronized with
- the operating system because otherwise serious problems
- may ensue when trying to compile software, like Perl.
-
- I'm trying to be optimistic here, though, and will continue.
- If later during the configuration and build icky compilation
- problems appear (headerfile conflicts being the most common
- manifestation), I suggest reinstalling the gcc to match
- your operating system release.
-
-EOM
- ;;
- *) gccosandvers='' ;; # failed to parse, better be silent
- esac
- ;;
-esac
-case "$ccname" in
-'') ccname="$cc" ;;
-esac
-
-# gcc 3.* complain about adding -Idirectories that they already know about,
-# so we will take those off from locincpth.
-case "$gccversion" in
-3.*)
- echo "main(){}">try.c
- for incdir in $locincpth; do
- warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \
- grep '^c[cp]p*[01]: warning: changing search order '`
- if test "X$warn" != X; then
- locincpth=`echo " $locincpth " | sed "s! $incdir ! !"`
- fi
- done
- $rm -f try try.*
-esac
-
-# gcc 4.9 by default does some optimizations that break perl.
-# see ticket 121505.
-#
-# The -fwrapv disables those optimizations (and probably others,) so
-# for gcc 4.9 (and later, since the optimizations probably won't go
-# away), add -fwrapv unless the user requests -fno-wrapv, which
-# disables -fwrapv, or if the user requests -fsanitize=undefined,
-# which turns the overflows -fwrapv ignores into runtime errors.
-case "$gccversion" in
-4.[3-9].*|4.[1-9][0-9]*|[5-9].*|[1-9][0-9]*)
- case "$ccflags" in
- *-fno-wrapv*|*-fsanitize=undefined*|*-fwrapv*) ;;
- *) ccflags="$ccflags -fwrapv" ;;
- esac
-esac
-
-# Really old versions of gcc default to C89 and will error for this code.
-# See if the compiler (gcc or otherwise) needs a flag to compile C99 code
-# Initialisations in for loops seem to be the particular problem
-# (Does this syntax conflict with something else that was valid C89?)
-# We also add a declaration after a statement to detect whether the compiler
-# (or the user supplied -Accflags) consider such declarations to be errors.
-# This causes 'Configure with -Accflags="-Werror=declaration-after-statement"'
-# to fail hard and early.
-#
-# Annoyingly -std=c99 will cause gcc to tell glibc not to define prototypes for
-# syscall, drand48 etc when including <unistd.h>, which messes up our build.
-# I guess we *could* loop round trying -std=c99 first with checks both for the
-# prototype found and the code compiling (because -std=gnu99 might do other
-# things we don't want, particularly on non-GCC compilers) but
-# 1) We would need to check for the prototype first (without any flags)
-# 2) We would still end up with most Linux systems either being -std=gnu99
-# or "" (no flag), and so both common options would not rigorously check our
-# portability to other platforms.
-# So it doesn't seem worth the complexity and chance of different failure.
-$cat >try.c <<'EOCP'
-int main(int argc, char **argv) {
- argc = argc + 1;
- /* This is deliberately a declaration after a statement. */
- unsigned long long count = 0;
- for (char **p = argv; *p; ++p) {
- ++count;
- }
- return count == 1 ? 0 : argc;
-}
-EOCP
-c99_for=no
-for flag in '' '-std=gnu99' '-std=c99'; do
- if $cc -o try $flag $ccflags $ldflags try.c 2>/dev/null && ./try; then
- c99_for="$flag"
- break;
- fi
-done
-case "$c99_for" in
-'') echo "Your C compiler doesn't need any special flags to compile C99 code"
- ;;
-no) echo >&4 "Your C compiler doesn't seem to be able to compile C99 code"
- rp='Do you really want to continue?'
- dflt='n'
- . ./myread
- case "$ans" in
- [yY]) echo >&4 "Okay, continuing." ;;
- *) exit 1 ;;
- esac
- ;;
-*) echo "Your C compiler needs $c99_for to compile C99 code"
- ccflags="$c99_for $ccflags"
- ;;
-esac
-$rm -f try try.*
-
-: What should the include directory be ?
-: Use sysroot if set, so findhdr looks in the right place.
-echo " "
-$echo $n "Hmm... $c"
-dflt="$sysroot/usr/include"
-incpath=''
-mips_type=''
-if $test -f /bin/mips && /bin/mips; then
- echo "Looks like a MIPS system..."
- $cat >usr.c <<'EOCP'
-#ifdef SYSTYPE_BSD43
-/bsd43
-#endif
-EOCP
- if $cc $cppflags -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
- dflt='/bsd43/usr/include'
- incpath='/bsd43'
- mips_type='BSD 4.3'
- else
- mips_type='System V'
- fi
- $rm -f usr.c usr.out
- echo "and you're compiling with the $mips_type compiler and libraries."
- xxx_prompt=y
- echo "exit 0" >mips
-else
- echo "Doesn't look like a MIPS system."
- xxx_prompt=n
- echo "exit 1" >mips
-fi
-chmod +x mips
-$eunicefix mips
-case "$usrinc" in
-'') ;;
-*) dflt="$usrinc";;
-esac
-case "$xxx_prompt" in
-y) fn=d/
- echo " "
- rp='Where are the include files you want to use?'
- . ./getfile
- usrinc="$ans"
- ;;
-*) usrinc="$dflt"
- ;;
-esac
-
-: see how we invoke the C preprocessor
-echo " "
-echo "Now, how can we feed standard input to your C preprocessor..." >&4
-cat <<'EOT' >testcpp.c
-#define ABC abc
-#define XYZ xyz
-ABC.XYZ
-EOT
-cd ..
-if test ! -f cppstdin; then
- if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
- # AIX cc -E doesn't show the absolute headerfile
- # locations but we'll cheat by using the -M flag.
- echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
- else
- echo 'cat >.$$.c; '"$cc $cppflags"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
- fi
-else
- echo "Keeping your $hint cppstdin wrapper."
-fi
-chmod 755 cppstdin
-wrapper=`pwd`/cppstdin
-ok='false'
-cd UU
-
-if $test "X$cppstdin" != "X" && \
- $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
-then
- echo "You used to use $cppstdin $cppminus so we'll use that again."
- case "$cpprun" in
- '') echo "But let's see if we can live without a wrapper..." ;;
- *)
- if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
- then
- echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
- ok='true'
- else
- echo "(However, $cpprun $cpplast does not work, let's see...)"
- fi
- ;;
- esac
-else
- case "$cppstdin" in
- '') ;;
- *)
- echo "Good old $cppstdin $cppminus does not seem to be of any help..."
- ;;
- esac
-fi
-
-if $ok; then
- : nothing
-elif echo 'Maybe "'"$cc"' -E" will work...'; \
- $cc -E <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yup, it does."
- x_cpp="$cc $cppflags -E"
- x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
- $cc -E - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yup, it does."
- x_cpp="$cc $cppflags -E"
- x_minus='-';
-elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
- $cc -P <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yipee, that works!"
- x_cpp="$cc $cppflags -P"
- x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
- $cc -P - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "At long last!"
- x_cpp="$cc $cppflags -P"
- x_minus='-';
-elif echo 'No such luck, maybe "'$cpp'" will work...'; \
- $cpp <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "It works!"
- x_cpp="$cpp $cppflags"
- x_minus='';
-elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
- $cpp - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Hooray, it works! I was beginning to wonder."
- x_cpp="$cpp $cppflags"
- x_minus='-';
-elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
- $wrapper <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- x_cpp="$wrapper"
- x_minus=''
- echo "Eureka!"
-else
- dflt=''
- rp="No dice. I can't find a C preprocessor. Name one:"
- . ./myread
- x_cpp="$ans"
- x_minus=''
- $x_cpp <testcpp.c >testcpp.out 2>&1
- if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "OK, that will do." >&4
- else
-echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
- exit 1
- fi
-fi
-
-case "$ok" in
-false)
- cppstdin="$x_cpp"
- cppminus="$x_minus"
- cpprun="$x_cpp"
- cpplast="$x_minus"
- set X $x_cpp
- shift
- case "$1" in
- "$cpp")
- echo "Perhaps can we force $cc -E using a wrapper..."
- if $wrapper <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
- then
- echo "Yup, we can."
- cppstdin="$wrapper"
- cppminus='';
- else
- echo "Nope, we'll have to live without it..."
- fi
- ;;
- esac
- case "$cpprun" in
- "$wrapper")
- cpprun=''
- cpplast=''
- ;;
- esac
- ;;
-esac
-
-case "$cppstdin" in
-"$wrapper"|'cppstdin') ;;
-*) $rm -f $wrapper;;
-esac
-$rm -f testcpp.c testcpp.out
-
-: Adjust cppfilter for path component separator
-case "$osname" in
-vos) cppfilter="tr '\\\\>' '/' |" ;; # path component separator is >
-os2) cppfilter="sed -e 's|\\\\\\\\|/|g' |" ;; # path component separator is \
-*) cppfilter='' ;;
-esac
-
-: Use gcc to determine libpth and incpth
-# If using gcc or clang, we can get better values for libpth, incpth
-# and usrinc directly from the compiler.
-# Note that ccname for clang is also gcc.
-case "$ccname" in
- gcc)
- realpath=`which realpath 2>/dev/null | sed 's/no realpath in.*//'`
- $echo 'extern int foo;' > try.c
- set X `$cppstdin -v try.c 2>&1 | $awk '/^#include </,/^End of search /'|$cppfilter $grep '/include'`
- shift
- inclibpth=""
- if $test $# -gt 0; then
- for i in $*; do
- case $realpath in
- */realpath) i=`$realpath $i` ;;
- esac
- incpth="$incpth $i"
- j="`$echo $i | $sed 's,/include[^/]*,/lib,'`"
- if $test -d $j; then
- inclibpth="$inclibpth $j"
- fi
- done
- incpth="`$echo $incpth | $sed 's/^ //'`"
- for xxx in $inclibpth $loclibpth $plibpth $glibpth; do
- if $test -d $xxx; then
- case $realpath in
- */realpath) xxx=`$realpath $xxx` ;;
- esac
- case " $libpth " in
- *" $xxx "*) ;;
- *) libpth="$libpth $xxx";;
- esac
- fi
- done
- libpth="`$echo $libpth | $sed 's/^ //'`"
- fi
- $rm -f try.c
- case "$usrinc" in
- '') for i in $incpth; do
- if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
- usrinc="$i"
- break
- fi
- done
- ;;
- esac
-
- case "$usecrosscompile" in
- $define|true|[yY]*)
- case "$incpth" in
- '') echo "Incpth not defined." >&4; croak=y ;;
- *) echo "Using incpth '$incpth'." >&4 ;;
- esac
- case "$libpth" in
- '') echo "Libpth not defined." >&4; croak=y ;;
- *) echo "Using libpth '$libpth'." >&4 ;;
- esac
- case "$usrinc" in
- '') echo "Usrinc not defined." >&4; croak=y ;;
- *) echo "Using usrinc $usrinc." >&4 ;;
- esac
- case "$croak" in
- y)
- if test "X$sysroot" = X; then
- echo "Cannot continue, aborting." >&4; exit 1
- else
- echo "Cross-compiling using sysroot $sysroot, failing to guess inc/lib paths is not fatal" >&4
- fi
- ;;
- esac
- ;;
- esac
- ;;
-esac
-
-: Default value for incpth is just usrinc
-case "$incpth" in
-'') incpth="$usrinc";;
-esac
-
-: Set private lib path
-case "$plibpth" in
-'') if ./mips; then
- plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
- fi;;
-esac
-case "$libpth" in
-' ') dlist='';;
-'') dlist="$loclibpth $plibpth $glibpth";;
-*) dlist="$libpth";;
-esac
-
-: Now check and see which directories actually exist, avoiding duplicates
-for xxx in $dlist
-do
- if $test -d $xxx; then
- case " $libpth " in
- *" $xxx "*) ;;
- *) libpth="$libpth $xxx";;
- esac
- fi
-done
-$cat <<'EOM'
-
-Some systems have incompatible or broken versions of libraries. Among
-the directories listed in the question below, please remove any you
-know not to be holding relevant libraries, and add any that are needed.
-Say "none" for none.
-
-EOM
-
-if test "X$sysroot" != X; then
- $cat <<EOM
-You have set sysroot to $sysroot, please supply the directories excluding sysroot
-
-EOM
-fi
-
-case "$libpth" in
-'') dflt='none';;
-*)
- set X $libpth
- shift
- dflt=${1+"$@"}
- ;;
-esac
-rp="Directories to use for library searches?"
-. ./myread
-case "$ans" in
-none) libpth=' ';;
-*) libpth="$ans";;
-esac
-
-: compute shared library extension
-case "$so" in
-'')
- if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
- dflt='sl'
- else
- dflt='so'
- fi
- ;;
-*) dflt="$so";;
-esac
-$cat <<EOM
-
-On some systems, shared libraries may be available. Answer 'none' if
-you want to suppress searching of shared libraries for the remainder
-of this configuration.
-
-EOM
-rp='What is the file extension used for shared libraries?'
-. ./myread
-so="$ans"
-
-: Does target system insist that shared library basenames are unique
-$cat << EOM
-
-Some dynamic loaders assume that the *basename* of shared library filenames
-are globally unique. We'll default this to undef as we assume your system
-is not this weird. Set to defined if you're on one of them.
-
-EOM
-
-dflt='n'
-rp='Make shared library basenames unique?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set d_libname_unique
-eval $setvar
-
-: Define several unixisms.
-: Hints files or command line option can be used to override them.
-: The convoluted testing is in case hints files set either the old
-: or the new name.
-case "$_exe" in
-'') case "$exe_ext" in
- '') ;;
- *) _exe="$exe_ext" ;;
- esac
- ;;
-esac
-case "$_a" in
-'') case "$lib_ext" in
- '') _a='.a';;
- *) _a="$lib_ext" ;;
- esac
- ;;
-esac
-case "$_o" in
-'') case "$obj_ext" in
- '') _o='.o';;
- *) _o="$obj_ext";;
- esac
- ;;
-esac
-case "$p_" in
-'') case "$path_sep" in
- '') p_=':';;
- *) p_="$path_sep";;
- esac
- ;;
-esac
-exe_ext=$_exe
-lib_ext=$_a
-obj_ext=$_o
-path_sep=$p_
-
-rm_try="$rm -f try try$_exe a.out .out try.[cho] try.$_o core core.try* try.core*"
-
-: Which makefile gets called first. This is used by make depend.
-case "$firstmakefile" in
-'') firstmakefile='makefile';;
-esac
-
-: Check is we will use socks
-case "$usesocks" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to use the SOCKS proxy protocol library. To do so,
-Configure must be run with -Dusesocks. If you use SOCKS you also need
-to use the PerlIO abstraction layer, this will be implicitly selected.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Build Perl for SOCKS?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set usesocks
-eval $setvar
-
-: Check for uselongdouble support
-case "$ccflags" in
-*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
-esac
-
-case "$uselongdouble" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to take advantage of long doubles which
-(if available) may give more accuracy and range for floating point numbers.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Try to use long doubles if available?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set uselongdouble
-eval $setvar
-
-case "$uselongdouble" in
-true|[yY]*) uselongdouble="$define" ;;
-esac
-
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that long doubles should be used,
-: we may need to set or change some other defaults.
-if $test -f uselongdouble.cbu; then
- echo "Your platform has some specific hints regarding long doubles, using them..."
- . ./uselongdouble.cbu
-else
- case "$uselongdouble" in
- $define)
- $cat <<EOM
-(Your platform does not have any specific hints for long doubles.)
-EOM
- ;;
- esac
-fi
-
-: Check if quadmath is requested
-case "$usequadmath" in
-"$define"|true|[yY]*) usequadmath="$define" ;;
-*) usequadmath="$undef" ;;
-esac
-
-: Fail if both uselongdouble and usequadmath are requested
-case "$usequadmath:$uselongdouble" in
-define:define)
- $cat <<EOM >&4
-
-*** You requested the use of the quadmath library and use
-*** of long doubles.
-***
-*** Please select one or the other.
-EOM
- exit 1
- ;;
-esac
-
-: Looking for optional libraries
-echo " "
-echo "Checking for optional libraries..." >&4
-case "$libs" in
-' '|'') dflt='';;
-*) dflt="$libs";;
-esac
-case "$libswanted" in
-'') libswanted='c_s';;
-esac
-case "$usesocks" in
-"$define") libswanted="$libswanted socks5 socks5_sh" ;;
-esac
-case "$usecbacktrace" in
-"$define") libswanted="$libswanted bfd" ;;
-esac
-case "$usequadmath" in
-"$define") libswanted="$libswanted quadmath" ;;
-esac
-libsfound=''
-libsfiles=''
-libsdirs=''
-libspath=''
-for thisdir in $libpth $xlibpth; do
- test -d $thisdir && libspath="$libspath $thisdir"
-done
-for thislib in $libswanted; do
- for thisdir in $libspath; do
- xxx=''
- if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
- xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|sed -n '$p'`
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=shared
- xxx=`ls $thisdir/lib$thislib.[0-9].$so 2>/dev/null|sed -n '$p'`
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=shared
- fi
- if test ! -f "$xxx"; then
- xxx=$thisdir/lib$thislib.$so
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=shared
- fi
- if test ! -f "$xxx"; then
- xxx=$thisdir/lib$thislib$_a
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=static
- fi
- if test ! -f "$xxx"; then
- xxx=$thisdir/$thislib$_a
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=static
- fi
- if test ! -f "$xxx"; then
- xxx=$thisdir/lib${thislib}_s$_a
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=static
- $test -f "$xxx" && thislib=${thislib}_s
- fi
- if test ! -f "$xxx"; then
- xxx=$thisdir/Slib$thislib$_a
- $test -f "$xxx" && eval $libscheck
- $test -f "$xxx" && libstyle=static
- fi
- if $test -f "$xxx"; then
- case "$libstyle" in
- shared) echo "Found -l$thislib (shared)." ;;
- static) echo "Found -l$thislib." ;;
- *) echo "Found -l$thislib ($libstyle)." ;;
- esac
- case " $dflt " in
- *"-l$thislib "*);;
- *) dflt="$dflt -l$thislib"
- libsfound="$libsfound $xxx"
- yyy=`basename $xxx`
- libsfiles="$libsfiles $yyy"
- yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
- case " $libsdirs " in
- *" $yyy "*) ;;
- *) libsdirs="$libsdirs $yyy" ;;
- esac
- ;;
- esac
- break
- fi
- done
- if $test ! -f "$xxx"; then
- echo "No -l$thislib."
- fi
-done
-set X $dflt
-shift
-dflt="$*"
-case "$libs" in
-'') dflt="$dflt";;
-*) dflt="$libs";;
-esac
-case "$dflt" in
-' '|'') dflt='none';;
-esac
-
-$cat <<EOM
-
-In order to compile $package on your machine, a number of libraries
-are usually needed. Include any other special libraries here as well.
-Say "none" for none. The default list is almost always right.
-EOM
-
-echo " "
-rp="What libraries to use?"
-. ./myread
-case "$ans" in
-none) libs=' ';;
-*) libs="$ans";;
-esac
-
-: determine optimization, if desired, or use for debug flag also
-case "$optimize" in
-' '|$undef) dflt='none';;
-'') dflt='-O';;
-*) dflt="$optimize";;
-esac
-$cat <<EOH
-
-By default, $package compiles with the -O flag to use the optimizer.
-Alternately, you might want to use the symbolic debugger, which uses
-the -g flag (on traditional Unix systems). Either flag can be
-specified here. To use neither flag, specify the word "none".
-
-EOH
-rp="What optimizer/debugger flag should be used?"
-. ./myread
-optimize="$ans"
-case "$optimize" in
-'none') optimize=" ";;
-esac
-
-: Check what DEBUGGING is required from the command line
-: -DEBUGGING or -DDEBUGGING or
-: -DEBUGGING=both = -g + -DDEBUGGING
-: -DEBUGGING=-g or -Doptimize=-g = -g
-: -DEBUGGING=none or -UDEBUGGING =
-: -DEBUGGING=old or -DEBUGGING=default = ? $optimize
-case "$EBUGGING" in
-'') ;;
-*) DEBUGGING=$EBUGGING ;;
-esac
-
-case "$DEBUGGING" in
--g|both|$define)
- case "$optimize" in
- *-g*) ;;
- *) optimize="$optimize -g" ;;
- esac ;;
-none|$undef)
- case "$optimize" in
- *-g*) set `echo "X $optimize " | sed 's/ -g / /'`
- shift
- optimize="$*"
- ;;
- esac ;;
-esac
-
-dflt=''
-case "$DEBUGGING" in
-both|$define) dflt='-DDEBUGGING'
-esac
-
-: argument order is deliberate, as the flag will start with - which set could
-: think is an option
-checkccflag='check=$1; flag=$2; callback=$3;
-echo " ";
-echo "Checking if your compiler accepts $flag" >&4;
-[ "X$sysroot" != "X" ] && echo "For sysroot = $sysroot";
-echo "int main(void) { return 0; }" > gcctest.c;
-if $cc $_sysroot -O2 $flag -o gcctest gcctest.c 2>gcctest.out && $run ./gcctest; then
- echo "Yes, it does." >&4;
- if $test -s gcctest.out ; then
- echo "But your platform does not like it:";
- cat gcctest.out;
- else
- case "$ccflags" in
- *$check*)
- echo "Leaving current flags $ccflags alone." >&4
- ;;
- *) dflt="$dflt $flag";
- eval $callback
- ;;
- esac
- fi
-else
- echo "Nope, it does not, but that is ok." >&4;
-fi
-'
-
-: We will not override a previous value, but we might want to
-: augment a hint file
-case "$hint" in
-default|recommended)
- case "$gccversion" in
- 1.*) dflt="$dflt -fpcc-struct-return" ;;
- esac
- case "$optimize:$DEBUGGING" in
- *-g*:old) dflt="$dflt -DDEBUGGING";;
- esac
- case "$gccversion" in
- 2.*) if $test -d /etc/conf/kconfig.d &&
- $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
- then
- # Interactive Systems (ISC) POSIX mode.
- dflt="$dflt -posix"
- fi
- ;;
- esac
- case "$gccversion" in
- 1.*) ;;
- 2.[0-8]*) ;;
- ?*) set strict-aliasing -fno-strict-aliasing
- eval $checkccflag
- ;;
- esac
- # For gcc, adding -pipe speeds up compilations for some, but apparently
- # some assemblers can't read from stdin. (It also slows down compilations
- # in other cases, but those are apparently rarer these days.) AD 5/2004.
- case "$gccversion" in
- ?*) set pipe -pipe
- eval $checkccflag
- ;;
- esac
-
- # on x86_64 (at least) we require an extra library (libssp) in the
- # link command line. This library is not named, so I infer that it is
- # an implementation detail that may change. Hence the safest approach
- # is to add the flag to the flags passed to the compiler at link time,
- # as that way the compiler can do the right implementation dependant
- # thing. (NWC)
- case "$ccflags" in
- *-fno-stack-protector*)
- echo "Do not add -fstack-protector nor -fstack-protector-strong" 2>&1
- ;;
- *) case "$gccversion" in
- ?*) set stack-protector-strong -fstack-protector-strong
- eval $checkccflag
- case "$dflt" in
- *-fstack-protector-strong*) ;; # It got added.
- *) # Try the plain/older -fstack-protector.
- set stack-protector -fstack-protector
- eval $checkccflag
- ;;
- esac
- ;;
- esac
- ;;
- esac
-esac
-
-case "$mips_type" in
-*BSD*|'') inclwanted="$locincpth $usrinc";;
-*) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
-esac
-for thisincl in $inclwanted; do
- if $test -d $thisincl; then
- if $test x$thisincl != x$usrinc; then
- case "$dflt" in
- *" -I$thisincl "*);;
- *) dflt="$dflt -I$thisincl ";;
- esac
- fi
- fi
-done
-
-inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
- xxx=true;
-elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
- xxx=true;
-else
- xxx=false;
-fi;
-if $xxx; then
- case "$dflt" in
- *$2*);;
- *) dflt="$dflt -D$2";;
- esac;
-fi'
-
-set signal.h LANGUAGE_C; eval $inctest
-
-case "$usesocks" in
-$define)
- ccflags="$ccflags -DSOCKS"
- ;;
-esac
-
-case "$hint" in
-default|recommended) dflt="$ccflags $dflt" ;;
-*) dflt="$ccflags";;
-esac
-
-case "$dflt" in
-''|' ') dflt=none;;
-esac
-
-$cat <<EOH
-
-Your C compiler may want other flags. For this question you should include
--I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
-but you should NOT include libraries or ld flags like -lwhatever. If you
-want $package to honor its debug switch, you should include -DDEBUGGING here.
-Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
-
-To use no flags, specify the word "none".
-
-EOH
-set X $dflt
-shift
-dflt=${1+"$@"}
-rp="Any additional cc flags?"
-. ./myread
-case "$ans" in
-none) ccflags='';;
-*) ccflags="$ans";;
-esac
-
-: the following weeds options from ccflags that are of no interest to cpp
-case "$cppflags" in
-'') cppflags="$ccflags" ;;
-*) set X $ccflags; shift
- case " $cppflags " in
- *" $1 "*) ;; # Try to avoid doubling the cppflags.
- *) cppflags="$cppflags $ccflags" ;;
- esac
- ;;
-esac
-case "$gccversion" in
-1.*) cppflags="$cppflags -D__GNUC__"
-esac
-case "$mips_type" in
-'');;
-*BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
-esac
-case "$cppflags" in
-'');;
-*)
- echo " "
- echo "Let me guess what the preprocessor flags are..." >&4
- set X $cppflags
- shift
- cppflags=''
- $cat >cpp.c <<'EOM'
-#define BLURFL foo
-
-BLURFL xx LFRULB
-EOM
- previous=''
- for flag in $*
- do
- case "$flag" in
- -*) ftry="$flag";;
- *) ftry="$previous $flag";;
- esac
- if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
- >cpp1.out 2>/dev/null && \
- $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
- >cpp2.out 2>/dev/null && \
- $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
- $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
- then
- cppflags="$cppflags $ftry"
- previous=''
- else
- previous="$flag"
- fi
- done
- set X $cppflags
- shift
- cppflags=${1+"$@"}
- case "$cppflags" in
- *-*) echo "They appear to be: $cppflags";;
- esac
- $rm -f cpp.c cpp?.out
- ;;
-esac
-
-: flags used in final linking phase
-case "$ldflags" in
-'') if ./venix; then
- dflt='-i -z'
- else
- dflt=''
- fi
- case "$ccflags" in
- *-posix*) dflt="$dflt -posix" ;;
- esac
- ;;
-*) dflt="$ldflags";;
-esac
-# See note above about -fstack-protector
-case "$ccflags" in
-*-fstack-protector-strong*)
- case "$dflt" in
- *-fstack-protector-strong*) ;; # Don't add it again
- *) dflt="$dflt -fstack-protector-strong" ;;
- esac
- ;;
-*-fstack-protector*)
- case "$dflt" in
- *-fstack-protector*) ;; # Don't add it again
- *) dflt="$dflt -fstack-protector" ;;
- esac
- ;;
-esac
-
-: Try to guess additional flags to pick up local libraries.
-for thislibdir in $libpth; do
- case " $loclibpth " in
- *" $thislibdir "*)
- case "$dflt " in
- *"-L$thislibdir "*) ;;
- *) dflt="$dflt -L$thislibdir" ;;
- esac
- ;;
- esac
-done
-
-case "$dflt" in
-'') dflt='none' ;;
-esac
-
-$cat <<EOH
-
-Your C linker may need flags. For this question you should
-include -L/whatever and any other flags used by the C linker, but you
-should NOT include libraries like -lwhatever.
-
-Make sure you include the appropriate -L/path flags if your C linker
-does not normally search all of the directories you specified above,
-namely
- $libpth
-To use no flags, specify the word "none".
-
-EOH
-
-rp="Any additional ld flags (NOT including libraries)?"
-. ./myread
-case "$ans" in
-none) ldflags='';;
-*) ldflags="$ans";;
-esac
-rmlist="$rmlist pdp11"
-
-: coherency check
-echo " "
-echo "Checking your choice of C compiler and flags for coherency..." >&4
-$cat > try.c <<'EOF'
-#include <stdio.h>
-int main() { printf("Ok\n"); return(0); }
-EOF
-set X $cc -o try $optimize $ccflags $ldflags try.c $libs
-shift
-$cat >try.msg <<'EOM'
-I've tried to compile and run the following simple program:
-
-EOM
-$cat try.c >> try.msg
-
-$cat >> try.msg <<EOM
-
-I used the command:
-
- $*
- $run ./try
-
-and I got the following output:
-
-EOM
-dflt=y
-if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
- if $sh -c "$run ./try " >>try.msg 2>&1; then
- xxx=`$run ./try`
- case "$xxx" in
- "Ok") dflt=n ;;
- *) echo 'The program compiled OK, but produced no output.' >> try.msg ;;
- esac
- else
- echo "The program compiled OK, but exited with status $?." >>try.msg
- rp="You have a problem. Shall I abort Configure"
- dflt=y
- fi
-else
- echo "I can't compile the test program." >>try.msg
- rp="You have a BIG problem. Shall I abort Configure"
- dflt=y
-fi
-case "$dflt" in
-y)
- $cat try.msg >&4
- case "$knowitall" in
- '')
- echo "(The supplied flags or libraries might be incorrect.)"
- ;;
- *) dflt=n;;
- esac
- echo " "
- . ./myread
- case "$ans" in
- n*|N*) ;;
- *) echo "Ok. Stopping Configure." >&4
- exit 1
- ;;
- esac
- ;;
-n) echo "OK, that should do.";;
-esac
-$rm_try gcctest gcctest.out
-
-: define a shorthand compile call
-compile='
-mc_file=$1;
-shift;
-case "$usedevel" in $define|true|[yY]*) if $test ! -f "${mc_file}.c"; then
-echo "Internal Configure script bug - compiler test file ${mc_file}.c is missing. Please report this to https://github.com/Perl/perl5/issues" >&4;
-exit 1;
-fi;
-esac;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
-: define a shorthand compile call for compilations that should be ok.
-compile_ok='
-mc_file=$1;
-shift;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
-
-: stub, used only to satisfy other units
-i_stdlib='define'
-
-: check for lengths of integral types
-echo " "
-case "$intsize" in
-'')
- echo "Checking to see how big your integers are..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- printf("intsize=%d;\n", (int)sizeof(int));
- printf("longsize=%d;\n", (int)sizeof(long));
- printf("shortsize=%d;\n", (int)sizeof(short));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok && $run ./try > /dev/null; then
- eval `$run ./try`
- echo "Your integers are $intsize bytes long."
- echo "Your long integers are $longsize bytes long."
- echo "Your short integers are $shortsize bytes long."
- else
- $cat >&4 <<EOM
-!
-Help! I can't compile and run the intsize test program: please enlighten me!
-(This is probably a misconfiguration in your system or libraries, and
-you really ought to fix it. Still, I'll try anyway.)
-!
-EOM
- dflt=4
- rp="What is the size of an integer (in bytes)?"
- . ./myread
- intsize="$ans"
- dflt=$intsize
- rp="What is the size of a long integer (in bytes)?"
- . ./myread
- longsize="$ans"
- dflt=2
- rp="What is the size of a short integer (in bytes)?"
- . ./myread
- shortsize="$ans"
- fi
- ;;
-esac
-$rm_try
-
-: check for long long
-echo " "
-echo "Checking to see if you have long long..." >&4
-echo 'int main() { long long x = 7; return 0; }' > try.c
-set try
-if eval $compile; then
- val="$define"
- echo "You have long long."
-else
- val="$undef"
- echo "You do not have long long."
-fi
-$rm_try
-set d_longlong
-eval $setvar
-
-: check for length of long long
-case "${d_longlong}${longlongsize}" in
-$define)
- echo " "
- echo "Checking to see how big your long longs are..." >&4
- $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof(long long));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- longlongsize=`$run ./try`
- echo "Your long longs are $longlongsize bytes long."
- else
- dflt='8'
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of a long long (in bytes)?"
- . ./myread
- longlongsize="$ans"
- fi
- if $test "X$longsize" = "X$longlongsize"; then
- echo "(That isn't any different from an ordinary long.)"
- fi
- ;;
-esac
-$rm_try
-
-: determine filename position in cpp output
-echo " "
-echo "Computing filename position in cpp output for #include directives..." >&4
-case "$osname" in
-amigaos) fieldn=3 ;; # Workaround for a bug in abc (pdksh).
-esac
-case "$fieldn" in
-'')
-case "$osname" in
-vos) testaccess=-e ;;
-*) testaccess=-r ;;
-esac
-echo '#include <stdio.h>' > foo.c
-$cat >fieldn <<EOF
-$startsh
-$cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
-$grep '^[ ]*#.*stdio\.h' | \
-while read cline; do
- pos=1
- set \$cline
- while $test \$# -gt 0; do
- if $test $testaccess \`echo \$1 | $tr -d '"'\`; then
- echo "\$pos"
- exit 0
- fi
- shift
- pos=\`expr \$pos + 1\`
- done
-done
-EOF
-chmod +x fieldn
-fieldn=`./fieldn`
-$rm -f foo.c fieldn
-;;
-esac
-case $fieldn in
-'') pos='???';;
-1) pos=first;;
-2) pos=second;;
-3) pos=third;;
-*) pos="${fieldn}th";;
-esac
-echo "Your cpp writes the filename in the $pos field of the line."
-
-: locate header file
-$cat >findhdr <<EOF
-$startsh
-wanted=\$1
-name=''
-for usrincdir in $incpth
-do
- if test -f \$usrincdir/\$wanted; then
- echo "\$usrincdir/\$wanted"
- exit 0
- fi
-done
-awkprg='{ print \$$fieldn }'
-echo "#include <\$wanted>" > foo\$\$.c
-$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
-$cppfilter $grep "^[ ]*#.*\$wanted" | \
-while read cline; do
- name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
- case "\$name" in
- *[/\\\\]\$wanted) echo "\$name"; exit 1;;
- *[\\\\/]\$wanted) echo "\$name"; exit 1;;
- *) exit 2;;
- esac;
-done;
-#
-# status = 0: grep returned 0 lines, case statement not executed
-# status = 1: headerfile found
-# status = 2: while loop executed, no headerfile found
-#
-status=\$?
-$rm -f foo\$\$.c;
-if test \$status -eq 1; then
- exit 0;
-fi
-exit 1
-EOF
-chmod +x findhdr
-
-: define an alternate in-header-list? function
-inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
-cont=true; xxf="echo \"<\$1> found.\" >&4";
-case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
-*) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
-esac;
-case $# in 4) instead=instead;; *) instead="at last";; esac;
-while $test "$cont"; do
- xxx=`./findhdr $1`
- var=$2; eval "was=\$$2";
- if $test "$xxx" && $test -r "$xxx";
- then eval $xxf;
- eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
- cont="";
- else eval $xxnf;
- eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
- set $yyy; shift; shift; yyy=$@;
- case $# in 0) cont="";;
- 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
- xxnf="echo \"and I did not find <\$1> either.\" >&4";;
- *) xxf="echo \"but I found <\$1\> instead.\" >&4";
- xxnf="echo \"there is no <\$1>, ...\" >&4";;
- esac;
-done;
-while $test "$yyy";
-do set $yyy; var=$2; eval "was=\$$2";
- eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu";
- set $yyy; shift; shift; yyy=$@;
-done'
-
-: see if inttypes.h is available
-: we want a real compile instead of Inhdr because some systems
-: have an inttypes.h which includes non-existent headers
-echo " "
-$cat >try.c <<EOCP
-#include <inttypes.h>
-int main() {
- static int32_t foo32 = 0x12345678;
-}
-EOCP
-set try
-if eval $compile; then
- echo "<inttypes.h> found." >&4
- val="$define"
-else
- echo "<inttypes.h> NOT found." >&4
- val="$undef"
-fi
-$rm_try
-set i_inttypes
-eval $setvar
-
-: check for int64_t
-echo " "
-echo "Checking to see if you have int64_t..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#$i_inttypes I_INTTYPES
-#ifdef I_INTTYPES
-#include <inttypes.h>
-#endif
-int main() { int64_t x = 7; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have int64_t."
-else
- val="$undef"
- echo "You do not have int64_t."
-fi
-$rm_try
-set d_int64_t
-eval $setvar
-
-: Check if 64bit ints have a quad type
-echo " "
-echo "Checking which 64-bit integer type we could use..." >&4
-
-case "$intsize" in
-8) val=int
- set quadtype
- eval $setvar
- val='"unsigned int"'
- set uquadtype
- eval $setvar
- quadkind=1
- ;;
-*) case "$longsize" in
- 8) val=long
- set quadtype
- eval $setvar
- val='"unsigned long"'
- set uquadtype
- eval $setvar
- quadkind=2
- ;;
- *) case "$d_longlong:$longlongsize" in
- define:8)
- val='"long long"'
- set quadtype
- eval $setvar
- val='"unsigned long long"'
- set uquadtype
- eval $setvar
- quadkind=3
- ;;
- *) case "$d_int64_t" in
- define)
- val=int64_t
- set quadtype
- eval $setvar
- val=uint64_t
- set uquadtype
- eval $setvar
- quadkind=4
- ;;
- esac
- ;;
- esac
- ;;
- esac
- ;;
-esac
-
-case "$quadtype" in
-'') echo "Alas, no 64-bit integer types in sight." >&4
- d_quad="$undef"
- ;;
-*) echo "We could use '$quadtype' for 64-bit integers." >&4
- d_quad="$define"
- ;;
-esac
-
-: Do we want 64bit support
-case "$uselonglong" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
-EOM
- use64bitint="$define"
- ;;
-esac
-case "$use64bits" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
-EOM
- use64bitint="$define"
- ;;
-esac
-case "$use64bitints" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** There is no Configure -Duse64bitints, using -Duse64bitint instead.
-EOM
- use64bitint="$define"
- ;;
-esac
-case "$use64bitsint" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
-EOM
- use64bitint="$define"
- ;;
-esac
-case "$uselonglongs" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** There is no Configure -Duselonglongs, using -Duse64bitint instead.
-EOM
- use64bitint="$define"
- ;;
-esac
-case "$use64bitsall" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
-EOM
- use64bitall="$define"
- ;;
-esac
-
-case "$ccflags" in
-*-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
-esac
-case "$use64bitall" in
-"$define"|true|[yY]*) use64bitint="$define" ;;
-esac
-
-case "$longsize" in
-8) cat <<EOM
-
-You have natively 64-bit long integers.
-EOM
- val="$define"
- ;;
-*) case "$use64bitint" in
- "$define"|true|[yY]*) dflt='y';;
- *) dflt='n';;
- esac
- case "$d_quad" in
- "$define") ;;
- *) dflt='n' ;;
- esac
- cat <<EOM
-
-Perl can be built to take advantage of 64-bit integer types
-on some systems. To do so, Configure can be run with -Duse64bitint.
-Choosing this option will most probably introduce binary incompatibilities.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-(The default has been chosen based on your configuration.)
-EOM
- rp='Try to use 64-bit integers, if available?'
- . ./myread
- case "$ans" in
- [yY]*) val="$define" ;;
- *) val="$undef" ;;
- esac
- ;;
-esac
-set use64bitint
-eval $setvar
-
-case "$use64bitall" in
-"$define"|true|[yY]*) dflt='y' ;;
-*) case "$longsize" in
- 8) dflt='y' ;;
- *) dflt='n' ;;
- esac
- ;;
-esac
-cat <<EOM
-
-You may also choose to try maximal 64-bitness. It means using as much
-64-bitness as possible on the platform. This in turn means even more
-binary incompatibilities. On the other hand, your platform may not
-have any more 64-bitness available than what you already have chosen.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-(The default has been chosen based on your configuration.)
-EOM
-rp='Try to use maximal 64-bit support, if available?'
-. ./myread
-case "$ans" in
-[yY]*) val="$define" ;;
-*) val="$undef" ;;
-esac
-set use64bitall
-eval $setvar
-case "$use64bitall" in
-"$define")
- case "$use64bitint" in
- "$undef")
- cat <<EOM
-
-Since you have chosen a maximally 64-bit build, I'm also turning on
-the use of 64-bit integers.
-EOM
- use64bitint="$define" ;;
- esac
- ;;
-esac
-
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that a 64-bit perl is to be built,
-: we may need to set or change some other defaults.
-if $test -f use64bitint.cbu; then
- echo "Your platform has some specific hints regarding 64-bit integers, using them..."
- . ./use64bitint.cbu
-fi
-case "$use64bitint" in
-"$define"|true|[yY]*)
- : This test was common to all the OpenBSD forks, and seems harmless for
- : other platforms:
- echo " "
- echo "Checking if your C library has broken 64-bit functions..." >&4
- cat >try.c <<EOCP
-#include <stdio.h>
-typedef $uquadtype myULL;
-int main (void)
-{
- struct {
- double d;
- myULL u;
- } *p, test[] = {
- {4294967303.15, 4294967303ULL},
- {4294967294.2, 4294967294ULL},
- {4294967295.7, 4294967295ULL},
- {0.0, 0ULL}
- };
- for (p = test; p->u; p++) {
- myULL x = (myULL)p->d;
- if (x != p->u) {
- printf("buggy\n");
- return 0;
- }
- }
- printf("ok\n");
- return 0;
-}
-EOCP
- set try
- if eval $compile_ok; then
- libcquad=`$run ./try`
- echo "Your C library's 64-bit functions are $libcquad."
- else
- echo "(I can't seem to compile the test program.)"
- echo "Assuming that your C library's 64-bit functions are ok."
- libcquad="ok"
- fi
- $rm_try
-
- case "$libcquad" in
- buggy*)
- cat >&4 <<EOM
-
-*** You have a C library with broken 64-bit functions.
-*** 64-bit support does not work reliably in this configuration.
-*** Please rerun Configure without -Duse64bitint and/or -Dusemorebits.
-*** Cannot continue, aborting.
-
-EOM
- exit 1
- ;;
- esac
- case "$longsize" in
- 4) case "$archname64" in
- '') archname64=64int ;;
- esac
- ;;
- esac
- ;;
-esac
-
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that a maximally 64-bit perl is to be built,
-: we may need to set or change some other defaults.
-if $test -f use64bitall.cbu; then
- echo "Your platform has some specific hints regarding 64-bit builds, using them..."
- . ./use64bitall.cbu
-fi
-case "$use64bitall" in
-"$define"|true|[yY]*)
- case "$longsize" in
- 4) case "$archname64" in
- ''|64int) archname64=64all ;;
- esac
- ;;
- esac
- ;;
-esac
-
-case "$d_quad:$use64bitint" in
-$undef:$define)
- cat >&4 <<EOF
-
-*** You have chosen to use 64-bit integers,
-*** but none can be found.
-*** Please rerun Configure without -Duse64bitint and/or -Dusemorebits.
-*** Cannot continue, aborting.
-
-EOF
- exit 1
- ;;
-esac
-
-: Check if we are using the GNU C library
-echo " "
-echo "Checking for GNU C Library..." >&4
-cat >try.c <<'EOCP'
-/* Find out version of GNU C library. __GLIBC__ and __GLIBC_MINOR__
- alone are insufficient to distinguish different versions, such as
- 2.0.6 and 2.0.7. The function gnu_get_libc_version() appeared in
- libc version 2.1.0. A. Dougherty, June 3, 2002.
-*/
-#include <stdio.h>
-int main(void)
-{
-#ifdef __GLIBC__
-# ifdef __GLIBC_MINOR__
-# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 && !defined(__cplusplus)
-# include <gnu/libc-version.h>
- printf("%s\n", gnu_get_libc_version());
-# else
- printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__);
-# endif
-# else
- printf("%d\n", __GLIBC__);
-# endif
- return 0;
-#else
- return 1;
-#endif
-}
-EOCP
-set try
-if eval $compile_ok && $run ./try > glibc.ver; then
- val="$define"
- gnulibc_version=`$cat glibc.ver`
- echo "You are using the GNU C Library version $gnulibc_version"
-else
- val="$undef"
- gnulibc_version=''
- echo "You are not using the GNU C Library"
-fi
-$rm_try glibc.ver
-set d_gnulibc
-eval $setvar
-
-: see if nm is to be used to determine whether a symbol is defined or not
-case "$usenm" in
-'')
- dflt=''
- case "$d_gnulibc" in
- "$define")
- echo " "
- echo "nm probably won't work on the GNU C Library." >&4
- dflt=n
- ;;
- esac
- case "$dflt" in
- '')
- if $test "$osname" = aix -a "X$PASE" != "Xdefine" -a ! -f /lib/syscalls.exp; then
- echo " "
- echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4
- echo "'nm' won't be sufficient on this system." >&4
- dflt=n
- fi
- ;;
- esac
- case "$dflt" in
- '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null`
- if $test $dflt -gt 20; then
- dflt=y
- else
- dflt=n
- fi
- ;;
- esac
- ;;
-*)
- case "$usenm" in
- true|$define) dflt=y;;
- *) dflt=n;;
- esac
- ;;
-esac
-$cat <<EOM
-
-I can use $nm to extract the symbols from your C libraries. This
-is a time consuming task which may generate huge output on the disk (up
-to 3 megabytes) but that should make the symbols extraction faster. The
-alternative is to skip the 'nm' extraction part and to compile a small
-test program instead to determine whether each symbol is present. If
-you have a fast C compiler and/or if your 'nm' output cannot be parsed,
-this may be the best solution.
-
-You probably shouldn't let me use 'nm' if you are using the GNU C Library.
-
-EOM
-rp="Shall I use $nm to extract C symbols from the libraries?"
-. ./myread
-case "$ans" in
-[Nn]*) usenm=false;;
-*) usenm=true;;
-esac
-
-runnm=$usenm
-case "$reuseval" in
-true) runnm=false;;
-esac
-
-: nm options which may be necessary
-case "$nm_opt" in
-'') if $test -f /mach_boot; then
- nm_opt='' # Mach
- elif $test -d /usr/ccs/lib; then
- nm_opt='-p' # Solaris (and SunOS?)
- elif $test -f /dgux; then
- nm_opt='-p' # DG-UX
- elif $test -f /lib64/rld; then
- nm_opt='-p' # 64-bit Irix
- else
- nm_opt=''
- fi;;
-esac
-
-: nm options which may be necessary for shared libraries but illegal
-: for archive libraries. Thank you, Linux.
-case "$nm_so_opt" in
-'') case "$myuname" in
- *linux*|gnu*)
- if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
- nm_so_opt='--dynamic'
- fi
- ;;
- esac
- ;;
-esac
-
-: Figure out where the libc is located
-case "$runnm" in
-true)
-: get list of predefined functions in a handy place
-echo " "
-case "$libc" in
-'') libc=unknown
- case "$libs" in
- *-lc_s*) libc=`./loc libc_s$_a $libc $libpth`
- esac
- ;;
-esac
-case "$libs" in
-'') ;;
-*) for thislib in $libs; do
- case "$thislib" in
- -lc|-lc_s)
- : Handle C library specially below.
- ;;
- -l*)
- thislib=`echo $thislib | $sed -e 's/^-l//'`
- if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
- :
- elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
- :
- elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then
- :
- elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then
- :
- elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
- :
- elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
- :
- elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then
- :
- else
- try=''
- fi
- libnames="$libnames $try"
- ;;
- *) libnames="$libnames $thislib" ;;
- esac
- done
- ;;
-esac
-xxx=normal
-case "$libc" in
-unknown)
- set /lib/libc.$so
- for xxx in $libpth; do
- $test -r $1 || set $xxx/libc.$so
- : The messy sed command sorts on library version numbers.
- $test -r $1 || \
- set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \
- tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e '
- h
- s/[0-9][0-9]*/0000&/g
- s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g
- G
- s/\n/ /' | \
- $sort | $sed -e 's/^.* //'`
- eval set \$$#
- done
- $test -r $1 || set $sysroot/usr/ccs/lib/libc.$so
- $test -r $1 || set $sysroot/lib/libsys_s$_a
- ;;
-*)
- set blurfl
- ;;
-esac
-if $test -r "$1"; then
- echo "Your (shared) C library seems to be in $1."
- libc="$1"
-elif $test -r /lib/libc && $test -r /lib/clib; then
- echo "Your C library seems to be in both /lib/clib and /lib/libc."
- xxx=apollo
- libc='/lib/clib /lib/libc'
- if $test -r /lib/syslib; then
- echo "(Your math library is in /lib/syslib.)"
- libc="$libc /lib/syslib"
- fi
-elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
- echo "Your C library seems to be in $libc, as you said before."
-elif $test -r $incpath/usr/lib/libc$_a; then
- libc=$incpath/usr/lib/libc$_a;
- echo "Your C library seems to be in $libc. That's fine."
-elif $test -r /lib/libc$_a; then
- libc=/lib/libc$_a;
- echo "Your C library seems to be in $libc. You're normal."
-else
- if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then
- :
- elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
- libnames="$libnames "`./loc clib blurfl/dyick $libpth`
- elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
- :
- elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
- :
- elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
- :
- else
- tans=`./loc Llibc$_a blurfl/dyick $xlibpth`
- fi
- if $test -r "$tans"; then
- echo "Your C library seems to be in $tans, of all places."
- libc=$tans
- else
- libc='blurfl'
- fi
-fi
-if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
- dflt="$libc"
- cat <<EOM
-
-If the guess above is wrong (which it might be if you're using a strange
-compiler, or your machine supports multiple models), you can override it here.
-
-EOM
-else
- dflt=''
- echo $libpth | $tr ' ' $trnl | $sort | $uniq > libpath
- cat >&4 <<EOM
-I can't seem to find your C library. I've looked in the following places:
-
-EOM
- $sed 's/^/ /' libpath
- cat <<EOM
-
-None of these seems to contain your C library. I need to get its name...
-
-EOM
-fi
-fn=f
-rp='Where is your C library?'
-. ./getfile
-libc="$ans"
-
-echo " "
-echo $libc $libnames | $tr ' ' $trnl | $sort | $uniq > libnames
-set X `cat libnames`
-shift
-xxx=files
-case $# in 1) xxx=file; esac
-echo "Extracting names from the following $xxx for later perusal:" >&4
-echo " "
-$sed 's/^/ /' libnames >&4
-echo " "
-$echo $n "This may take a while...$c" >&4
-
-for file in $*; do
- case $file in
- *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
- *) $nm $nm_opt $file 2>/dev/null;;
- esac
-done >libc.tmp
-
-$echo $n ".$c"
-$grep fprintf libc.tmp > libc.ptf
-xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
-xrun='eval "<libc.tmp $com >libc.list"; echo "done." >&4'
-xxx='[ADTSIWi]'
-if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
- -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
-else
- $nm -p $* 2>/dev/null >libc.tmp
- $grep fprintf libc.tmp > libc.ptf
- if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
- eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
- then
- nm_opt='-p'
- eval $xrun
- else
- echo " "
- echo "$nm didn't seem to work right. Trying $ar instead..." >&4
- com=''
- if $ar t $libc > libc.tmp && \
- $contains '^fprintf$' libc.tmp >/dev/null 2>&1
- then
- for thisname in $libnames $libc; do
- $ar t $thisname >>libc.tmp
- done
- $sed -e "s/\\$_o\$//" < libc.tmp > libc.list
- echo "Ok." >&4
- elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then
- for thisname in $libnames $libc; do
- $ar tv $thisname >>libc.tmp
- emximp -o tmp.imp $thisname \
- 2>/dev/null && \
- $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
- < tmp.imp >>libc.tmp
- $rm -f tmp.imp
- done
- $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list
- echo "Ok." >&4
- else
- echo "$ar didn't seem to work right." >&4
- echo "Maybe this is a Cray...trying bld instead..." >&4
- if bld t $libc | \
- $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list &&
- $test -s libc.list
- then
- for thisname in $libnames; do
- bld t $libnames | \
- $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
- $ar t $thisname >>libc.tmp
- done
- echo "Ok." >&4
- else
- echo "That didn't work either. Giving up." >&4
- exit 1
- fi
- fi
- fi
-fi
-nm_extract="$com"
-case "$PASE" in
-define)
- echo " "
- echo "Since you are compiling for PASE, extracting more symbols from libc.a ...">&4
- dump -Tv /lib/libc.a | awk '$7 == "/unix" {print $5 " " $8}' | grep "^SV" | awk '{print $2}' >> libc.list
- ;;
-*) if $test -f /lib/syscalls.exp; then
- echo " "
- echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
- $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' \
- /lib/syscalls.exp >>libc.list
- fi
- ;;
-esac
-;;
-esac
-$rm -f libnames libpath
-
-: Check if we are using C++
-echo " "
-echo "Checking for C++..." >&4
-$cat >try.c <<'EOCP'
-#include <stdio.h>
-int main(void)
-{
-#ifdef __cplusplus
- return 0;
-#else
- return 1;
-#endif
-}
-EOCP
-set try
-if eval $compile_ok && $run ./try; then
- val="$define"
- echo "You are using a C++ compiler."
-else
- val="$undef"
- echo "You are not using a C++ compiler."
-fi
-$rm_try cplusplus$$
-set d_cplusplus
-eval $setvar
-
-: is a C symbol defined?
-csym='tlook=$1;
-case "$3" in
--v) tf=libc.tmp; tdc="";;
--a) tf=libc.tmp; tdc="[]";;
-*) tlook="^$1\$"; tf=libc.list; tdc="()";;
-esac;
-case "$d_cplusplus" in
- $define) extern_C="extern \"C\"" ;;
- *) extern_C="extern" ;;
-esac;
-tx=yes;
-case "$reuseval-$4" in
-true-) ;;
-true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
-esac;
-case "$tx" in
-yes)
- tval=false;
- if $test "$runnm" = true; then
- if $contains $tlook $tf >/dev/null 2>&1; then
- tval=true;
- elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then
- echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main(int argc, char **argv) { if(p() && p() != (void *)argv[0]) return(0); else return(1); }"> try.c;
- $cc -o try $optimize $ccflags $ldflags try.c >/dev/null 2>&1 $libs && tval=true;
- $test "$mistrustnm" = run -a -x try && { $run ./try$_exe >/dev/null 2>&1 || tval=false; };
- $rm_try;
- fi;
- else
- echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main(int argc, char **argv) { if(p() && p() != (void *)argv[0]) return(0); else return(1); }"> try.c;
- $cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true;
- $rm_try;
- fi;
- ;;
-*)
- case "$tval" in
- $define) tval=true;;
- *) tval=false;;
- esac;
- ;;
-esac;
-eval "$2=$tval"'
-
-: define an is-in-libc? function
-inlibc='echo " "; td=$define; tu=$undef;
-sym=$1; var=$2; eval "was=\$$2";
-tx=yes;
-case "$reuseval$was" in
-true) ;;
-true*) tx=no;;
-esac;
-case "$tx" in
-yes)
- set $sym tres -f;
- eval $csym;
- case "$tres" in
- true)
- echo "$sym() found." >&4;
- case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";;
- *)
- echo "$sym() NOT found." >&4;
- case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";;
- esac;;
-*)
- case "$was" in
- $define) echo "$sym() found." >&4;;
- *) echo "$sym() NOT found." >&4;;
- esac;;
-esac'
-
-: check for length of double
-echo " "
-case "$doublesize" in
-'')
- echo "Checking to see how big your double precision numbers are..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- printf("%d\n", (int)sizeof(double));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- doublesize=`$run ./try`
- echo "Your double is $doublesize bytes long."
- else
- dflt='8'
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of a double precision number (in bytes)?"
- . ./myread
- doublesize="$ans"
- fi
- ;;
-esac
-$rm_try
-
-: check for long doubles
-echo " " >&4
-echo "Checking to see if you have long double..." >&4
-echo 'int main() { long double x = 7.0; }' > try.c
-set try
-if eval $compile; then
- val="$define"
- echo "You have long double." >&4
-else
- val="$undef"
- echo "You do not have long double." >&4
-fi
-$rm_try
-set d_longdbl
-eval $setvar
-
-: see if ldexpl exists
-set ldexpl d_ldexpl
-eval $inlibc
-
-: check for length of long double
-case "${d_longdbl}${longdblsize}" in
-$define)
- echo " " >&4
- echo "Checking to see how big your long doubles are..." >&4
- $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- printf("%d\n", sizeof(long double));
-}
-EOCP
- set try
- set try
- if eval $compile; then
- longdblsize=`$run ./try`
- echo "Your long doubles are $longdblsize bytes long." >&4
- else
- dflt='8'
- echo " " >&4
- echo "(I can't seem to compile the test program. Guessing...)" >&4
- rp="What is the size of a long double (in bytes)?"
- . ./myread
- longdblsize="$ans"
- fi
- if $test "X$doublesize" = "X$longdblsize"; then
- echo "That isn't any different from an ordinary double." >&4
- echo "I'll keep your setting anyway, but you may see some" >&4
- echo "harmless compilation warnings." >&4
- fi
- ;;
-esac
-$rm_try
-
-$echo "Checking the kind of long doubles you have..." >&4
-case "$d_longdbl" in
-define)
-$cat <<EOP >try.c
-#$i_stdlib I_STDLIB
-#define LONGDBLSIZE $longdblsize
-#define DOUBLESIZE $doublesize
-#include <float.h>
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-static const long double d = -0.1L;
-int main() {
- unsigned const char* b = (unsigned const char*)(&d);
-#if DOUBLESIZE == LONGDBLSIZE
- printf("0\n"); /* if it floats like double */
- exit(0);
-#endif
-#if (LDBL_MANT_DIG == 113 || FLT128_MANT_DIG == 113) && LONGDBLSIZE == 16
- if (b[0] == 0x9A && b[1] == 0x99 && b[15] == 0xBF) {
- /* IEEE 754 128-bit little-endian */
- printf("1\n");
- exit(0);
- }
- if (b[0] == 0xBF && b[14] == 0x99 && b[15] == 0x9A) {
- /* IEEE 128-bit big-endian, e.g. solaris sparc */
- printf("2\n");
- exit(0);
- }
-#endif
-/* For alignment 32-bit platforms have the 80 bits in 12 bytes,
- * while 64-bits platforms have it in 16 bytes. The trailing bytes
- * cannot be trusted. */
-#if LDBL_MANT_DIG == 64 && (LONGDBLSIZE == 16 || LONGDBLSIZE == 12)
- if (b[0] == 0xCD && b[9] == 0xBF) {
- /* x86 80-bit little-endian, sizeof 12 (ILP32, Solaris x86)
- * or 16 (LP64, Linux and OS X), 4 or 6 bytes of padding.
- * Also known as "extended precision". */
- printf("3\n");
- exit(0);
- }
- if (b[0] == 0xBF && b[9] == 0xCD) {
- /* Is there ever big-endian 80-bit, really?
- *
- * The Motorola 68881 had another "extended precision" format:
- * sign:1 exp:15 zero:16 integer:1 mantissa:63
- * for total of 96 bits of bytes. The zero bits were unused.
- * See "M68000 FAMILY PROGRAMMER'S REFERENCE MANUAL" for more details.
- * If it ever becomes relevant, this format should be allocated a
- * new doublekind code since it is quite different from the Intel x87.
- */
- printf("4\n");
- exit(0);
- }
-#endif
-#if (LDBL_MANT_DIG == 106 || LDBL_MANT_DIG == 107) && LONGDBLSIZE == 16
- /* software "double double", the 106 is 53+53.
- * but irix thinks it is 107. */
- if (b[0] == 0x9A && b[7] == 0x3C && b[8] == 0x9A && b[15] == 0xBF) {
- /* double double 128-bit fully little-endian,
- * little-endian doubles in little-endian order,
- * 9a 99 99 99 99 99 59 3c 9a 99 99 99 99 99 b9 bf */
- printf("5\n");
- exit(0);
- }
- if (b[0] == 0xBF && b[7] == 0x9A && b[8] == 0x3C && b[15] == 0x9A) {
- /* double double 128-bit fully big-endian,
- * big-endian doubles in big-endian order,
- * e.g. PPC/Power and MIPS:
- * bf b9 99 99 99 99 99 9a 3c 59 99 99 99 99 99 9a */
- printf("6\n");
- exit(0);
- }
- if (b[0] == 0x9A && b[7] == 0xBF && b[8] == 0x9A && b[15] == 0x3C) {
- /* double double 128-bit mixed endian.
- * little-endian doubles in big-endian order,
- * e.g. ppc64el,
- * 9a 99 99 99 99 99 b9 bf 9a 99 99 99 99 99 59 3c */
- printf("7\n");
- exit(0);
- }
- if (b[0] == 0x3C && b[7] == 0x9A && b[8] == 0xBF && b[15] == 0x9A) {
- /* double double 128-bit mixed endian,
- * big-endian doubles in little-endian order,
- * 3c 59 99 99 99 99 99 9a bf b9 99 99 99 99 99 9a */
- printf("8\n");
- exit(0);
- }
-#endif
-/* We are largely making this up because it may well be
- * that the VAX format H was never made available to C,
- * only to Fortran. */
-#if LONGDBLSIZE == 16 && defined(__vax__)
- if (b[0] == 0xFD && b[15] == 0x99) {
- /* VAX format H, PDP-11 mixed endian. */
- printf("9\n");
- exit(0);
- }
-#endif
- printf("-1\n"); /* unknown */
- exit(0);
-}
-EOP
-set try
-if eval $compile; then
- longdblkind=`$run ./try`
-else
- longdblkind=-1
-fi
-;;
-*) longdblkind=0 ;;
-esac
-case "$longdblkind" in
-0) echo "Your long doubles are doubles." >&4 ;;
-1) echo "You have IEEE 754 128-bit little endian long doubles." >&4 ;;
-2) echo "You have IEEE 754 128-bit big endian long doubles." >&4 ;;
-3) echo "You have x86 80-bit little endian long doubles." >&4 ;;
-4) echo "You have x86 80-bit big endian long doubles." >&4 ;;
-5) echo "You have 128-bit fully little-endian double-double long doubles (64-bit LEs in LE)." >&4 ;;
-6) echo "You have 128-bit fully big-endian double-double long doubles (64-bit BEs in BE)." >&4 ;;
-7) echo "You have 128-bit mixed-endian double-double long doubles (64-bit LEs in BE)." >&4 ;;
-8) echo "You have 128-bit mixed-endian double-double long doubles (64-bit BEs in LE)." >&4 ;;
-9) echo "You have 128-bit PDP-style mixed-endian long doubles (VAX format H)." >&4 ;;
-*) echo "Cannot figure out your long double." >&4 ;;
-esac
-d_long_double_style_ieee=$undef
-d_long_double_style_ieee_std=$undef
-d_long_double_style_ieee_extended=$undef
-d_long_double_style_ieee_doubledouble=$undef
-d_long_double_style_vax=$undef
-case "$longdblkind" in
-1|2|3|4|5|6|7|8) d_long_double_style_ieee=$define ;;
-esac
-case "$longdblkind" in
-1|2) d_long_double_style_ieee_std=$define ;;
-esac
-case "$longdblkind" in
-3|4) d_long_double_style_ieee_extended=$define ;;
-esac
-case "$longdblkind" in
-5|6|7|8) d_long_double_style_ieee_doubledouble=$define ;;
-esac
-case "$longdblkind" in
-9) d_long_double_style_vax=$define ;;
-esac
-$rm_try
-
-: get the patchlevel
-echo " "
-echo "Getting the current patchlevel..." >&4
-if $test -r $rsrc/patchlevel.h;then
- revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
- patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
- subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
- api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
- api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
- api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
- perl_patchlevel=`egrep ',"(MAINT|SMOKE)[0-9][0-9]*"' $rsrc/patchlevel.h|tail -1|sed 's/[^0-9]//g'`
-else
- revision=0
- patchlevel=0
- subversion=0
- api_revision=0
- api_version=0
- api_subversion=0
- perl_patchlevel=0
- $echo "(You do not have patchlevel.h. Eek.)"
-fi
-: Define a handy string here to avoid duplication in myconfig.SH and configpm.
-version_patchlevel_string="version $patchlevel subversion $subversion"
-case "$perl_patchlevel" in
-0|'') ;;
-*) perl_patchlevel=`echo $perl_patchlevel | sed 's/.* //'`
- version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel"
- ;;
-esac
-
-$echo "(You have $package $version_patchlevel_string.)"
-
-case "$osname" in
-dos|vms)
- : XXX Should be a Configure test for double-dots in filenames.
- version=`echo $revision $patchlevel $subversion | \
- $awk '{ printf "%d_%d_%d", $1, $2, $3 }'`
- api_versionstring=`echo $api_revision $api_version $api_subversion | \
- $awk '{ printf "%d_%d_%d", $1, $2, $3 }'`
- ;;
-*)
- version=`echo $revision $patchlevel $subversion | \
- $awk '{ printf "%d.%d.%d", $1, $2, $3 }'`
- api_versionstring=`echo $api_revision $api_version $api_subversion | \
- $awk '{ printf "%d.%d.%d", $1, $2, $3 }'`
- ;;
-esac
-: Special case the 5.005_xx maintenance series, which used 5.005
-: without any subversion label as a subdirectory in $sitelib
-if test "${api_revision}${api_version}${api_subversion}" = "550"; then
- api_versionstring='5.005'
-fi
-
-: determine the architecture name
-echo " "
-if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
- tarch=`arch`"-$osname"
-elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
- if uname -m > tmparch 2>&1 ; then
- tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
- -e 's/$/'"-$osname/" tmparch`
- else
- tarch="$osname"
- fi
- $rm -f tmparch
-else
- tarch="$osname"
-fi
-case "$myarchname" in
-''|"$tarch") ;;
-*)
- echo "(Your architecture name used to be $myarchname.)"
- archname=''
- ;;
-esac
-case "$targetarch" in
-'') ;;
-*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
-esac
-myarchname="$tarch"
-case "$archname" in
-'') dflt="$tarch";;
-*) dflt="$archname";;
-esac
-rp='What is your architecture name'
-. ./myread
-archname="$ans"
-
-: optionally add API version to the architecture for versioned archlibs
-case "$useversionedarchname" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
-rp='Add the Perl API version to your archname?'
-. ./myread
-case "$ans" in
-y|Y) useversionedarchname="$define" ;;
-*) useversionedarchname="$undef" ;;
-esac
-case "$useversionedarchname" in
-$define)
- case "$archname" in
- *-$api_versionstring)
- echo "...and architecture name already has -$api_versionstring" >&4
- ;;
- *)
- archname="$archname-$api_versionstring"
- echo "...setting architecture name to $archname." >&4
- ;;
- esac
- ;;
-esac
-
-case "$usethreads" in
-$define)
- echo "Threads selected." >&4
- case "$archname" in
- *-thread*) echo "...and architecture name already has -thread." >&4
- ;;
- *) archname="$archname-thread"
- echo "...setting architecture name to $archname." >&4
- ;;
- esac
- ;;
-esac
-case "$usemultiplicity" in
-$define)
- echo "Multiplicity selected." >&4
- case "$archname" in
- *-multi*) echo "...and architecture name already has -multi." >&4
- ;;
- *) archname="$archname-multi"
- echo "...setting architecture name to $archname." >&4
- ;;
- esac
- ;;
-esac
-case "$use64bitint$use64bitall" in
-*"$define"*)
- case "$archname64" in
- '')
- echo "This architecture is naturally 64-bit, not changing architecture name." >&4
- ;;
- *)
- case "$use64bitint" in
- "$define") echo "64 bit integers selected." >&4 ;;
- esac
- case "$use64bitall" in
- "$define") echo "Maximal 64 bitness selected." >&4 ;;
- esac
- case "$archname" in
- *-$archname64*) echo "...and architecture name already has $archname64." >&4
- ;;
- *) archname="$archname-$archname64"
- echo "...setting architecture name to $archname." >&4
- ;;
- esac
- ;;
- esac
-esac
-case "$uselongdouble" in
-$define)
- echo "Long doubles selected." >&4
- case "$longdblsize" in
- $doublesize)
- echo "...but long doubles are equal to doubles, not changing architecture name." >&4
- ;;
- *)
- case "$archname" in
- *-ld*) echo "...and architecture name already has -ld." >&4
- ;;
- *) archname="$archname-ld"
- echo "...setting architecture name to $archname." >&4
- ;;
- esac
- ;;
- esac
- ;;
-esac
-case "$usequadmath" in
-$define)
- echo "quadmath selected." >&4
- case "$archname" in
- *-quadmath*) echo "...and architecture name already has -quadmath." >&4
- ;;
- *) archname="$archname-quadmath"
- echo "...setting architecture name to $archname." >&4
- ;;
- esac
- ;;
-esac
-if $test -f archname.cbu; then
- echo "Your platform has some specific hints for architecture name, using them..."
- . ./archname.cbu
-fi
-
-: set the prefixit variable, to compute a suitable default value
-prefixit='case "$3" in
-""|none)
- case "$oldprefix" in
- "") eval "$1=\"\$$2\"";;
- *)
- case "$3" in
- "") eval "$1=";;
- none)
- eval "tp=\"\$$2\"";
- case "$tp" in
- ""|" "|none) eval "$1=\"\$$2\"";;
- *) eval "$1=";;
- esac;;
- esac;;
- esac;;
-*)
- eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
- case "$tp" in
- --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
- /*-$oldprefix/*|\~*-$oldprefix/*)
- eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
- *) eval "$1=\"\$$2\"";;
- esac;;
-esac'
-
-: determine installation style
-: For now, try to deduce it from prefix unless it is already set.
-: Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
-case "$installstyle" in
-'') case "$prefix" in
- *perl*) dflt='lib';;
- *) dflt='lib/perl5' ;;
- esac
- ;;
-*) dflt="$installstyle" ;;
-esac
-: Probably not worth prompting for this since we prompt for all
-: the directories individually, and the prompt would be too long and
-: confusing anyway.
-installstyle=$dflt
-
-: determine where public executables go
-echo " "
-set dflt bin bin
-eval $prefixit
-fn=d~
-rp='Pathname where the public executables will reside?'
-. ./getfile
-if $test "X$ansexp" != "X$binexp"; then
- installbin=''
-fi
-prefixvar=bin
-: XXX Bug? -- ignores Configure -Dinstallprefix setting.
-: XXX If this is fixed, also fix the "start perl" hunk below, which relies on
-: this via initialinstalllocation
-. ./setprefixvar
-
-case "$userelocatableinc" in
-$define|true|[yY]*) dflt='y' ;;
-*) dflt='n' ;;
-esac
-cat <<EOM
-
-Would you like to build Perl so that the installation is relocatable, so that
-library paths in @INC are determined relative to the path of the perl binary?
-This is not advised for system Perl installs, or if you need to run setid
-scripts or scripts under taint mode.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Use relocatable @INC?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set userelocatableinc
-eval $setvar
-
-initialinstalllocation="$binexp"
-: Default prefix is now "up one level from where the binaries are"
-case "$userelocatableinc" in
-$define|true|[yY]*)
- bin=".../"
- binexp=".../"
- prefix=".../.."
- prefixexp=".../.."
- installprefixexp=".../.."
- ;;
-esac
-
-: determine where private library files go
-: Usual default is /usr/local/lib/perl5/$version.
-: Also allow things like /opt/perl/lib/$version, since
-: /opt/perl/lib/perl5... would be redundant.
-: The default "style" setting is made in installstyle.U
-case "$installstyle" in
-*lib/perl5*) set dflt privlib lib/$package/$version ;;
-*lib32/perl5*) set dflt privlib lib32/$package/$version ;;
-*lib64/perl5*) set dflt privlib lib64/$package/$version ;;
-*) set dflt privlib lib/$version ;;
-esac
-eval $prefixit
-$cat <<EOM
-
-There are some auxiliary files for $package that need to be put into a
-private library directory that is accessible by everyone.
-
-EOM
-fn=$binexp
-fn=d~+
-rp='Pathname where the private library files will reside?'
-. ./getfile
-prefixvar=privlib
-. ./setprefixvar
-
-: set the prefixup variable, to restore leading tilda escape
-prefixup='case "$prefixexp" in
-"$prefix") ;;
-*) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";;
-esac'
-
-: determine where public architecture dependent libraries go
-set archlib archlib
-eval $prefixit
-: privlib default is /usr/local/lib/$package/$version
-: archlib default is /usr/local/lib/$package/$version/$archname
-: privlib may have an optional trailing /share.
-tdflt=`echo $privlib | $sed 's,/share$,,'`
-tdflt=$tdflt/$archname
-case "$archlib" in
-'') dflt=$tdflt
- ;;
-*) dflt="$archlib"
- ;;
-esac
-$cat <<EOM
-
-$spackage contains architecture-dependent library files. If you are
-sharing libraries in a heterogeneous environment, you might store
-these files in a separate location. Otherwise, you can just include
-them with the rest of the public library files.
-
-EOM
-fn=$binexp
-fn=d+~
-rp='Where do you want to put the public architecture-dependent libraries?'
-. ./getfile
-prefixvar=archlib
-. ./setprefixvar
-if $test X"$archlib" = X"$privlib"; then
- d_archlib="$undef"
-else
- d_archlib="$define"
-fi
-
-: see if setuid scripts can be secure
-$cat <<EOM
-
-Some kernels have a bug that prevents setuid #! scripts from being
-secure. Some sites have disabled setuid #! scripts because of this.
-
-First let's decide if your kernel supports secure setuid #! scripts.
-(If setuid #! scripts would be secure but have been disabled anyway,
-don't say that they are secure if asked.)
-
-EOM
-
-val="$undef"
-if $test -d /dev/fd; then
- echo "#!$ls" >reflect
- chmod +x,u+s reflect
- ./reflect >flect 2>&1
- if $contains "/dev/fd" flect >/dev/null; then
- echo "Congratulations, your kernel has secure setuid scripts!" >&4
- val="$define"
- else
- $cat <<EOM
-If you are not sure if they are secure, I can check but I'll need a
-username and password different from the one you are using right now.
-If you don't have such a username or don't want me to test, simply
-enter 'none'.
-
-EOM
- rp='Other username to test security of setuid scripts with?'
- dflt='none'
- . ./myread
- case "$ans" in
- n|none)
- case "$d_suidsafe" in
- '') echo "I'll assume setuid scripts are *not* secure." >&4
- dflt=n;;
- "$undef")
- echo "Well, the $hint value is *not* secure." >&4
- dflt=n;;
- *) echo "Well, the $hint value *is* secure." >&4
- dflt=y;;
- esac
- ;;
- *)
- $rm -f reflect flect
- echo "#!$ls" >reflect
- chmod +x,u+s reflect
- echo >flect
- chmod a+w flect
- echo '"su" will (probably) prompt you for '"$ans's password."
- su $ans -c './reflect >flect'
- if $contains "/dev/fd" flect >/dev/null; then
- echo "Okay, it looks like setuid scripts are secure." >&4
- dflt=y
- else
- echo "I don't think setuid scripts are secure." >&4
- dflt=n
- fi
- ;;
- esac
- rp='Does your kernel have *secure* setuid scripts?'
- . ./myread
- case "$ans" in
- [yY]*) val="$define";;
- *) val="$undef";;
- esac
- fi
-else
- echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
- echo "(That's for file descriptors, not floppy disks.)"
- val="$undef"
-fi
-set d_suidsafe
-eval $setvar
-
-$rm -f reflect flect
-
-: now see if they want to do setuid emulation
-if $test $patchlevel -lt 11; then
-echo " "
-val="$undef"
-case "$d_suidsafe" in
-"$define")
- val="$undef"
- echo "No need to emulate SUID scripts since they are secure here." >&4
- ;;
-*)
- $cat <<EOM
-Some systems have disabled setuid scripts, especially systems where
-setuid scripts cannot be secure. On systems where setuid scripts have
-been disabled, the setuid/setgid bits on scripts are currently
-useless. It is possible for $package to detect those bits and emulate
-setuid/setgid in a secure fashion. This emulation will only work if
-setuid scripts have been disabled in your kernel.
-
-EOM
- case "$d_dosuid" in
- "$define") dflt=y ;;
- *) dflt=n ;;
- esac
- rp="Do you want to do setuid/setgid emulation?"
- . ./myread
- case "$ans" in
- [yY]*) val="$define";;
- *) val="$undef";;
- esac
- ;;
-esac
-set d_dosuid
-eval $setvar
-else
- case "$d_dosuid" in
- "$define")
- cat >&4 <<EOH
-
-SUID emulation has been removed for 5.12
-Please re-run Configure without -Dd_dosuid
-
-EOH
- exit 1;
- ;;
- esac
- d_dosuid=undef
-fi
-
-: Find perl5.005 or later.
-echo "Looking for a previously installed perl5.005 or later... "
-case "$perl5" in
-'') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do
- : Check if this perl is recent and can load a simple module
- if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
- perl5=$tdir/perl
- break;
- elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
- perl5=$tdir/perl5
- break;
- fi
- done
- ;;
-*) perl5="$perl5"
- ;;
-esac
-case "$perl5" in
-'') echo "None found. That's ok.";;
-*) echo "Using $perl5." ;;
-esac
-
-: Set the siteprefix variables
-$cat <<EOM
-
-After $package is installed, you may wish to install various
-add-on modules and utilities. Typically, these add-ons will
-be installed under $prefix with the rest
-of this package. However, you may wish to install such add-ons
-elsewhere under a different prefix.
-
-If you do not wish to put everything under a single prefix, that's
-ok. You will be prompted for the individual locations; this siteprefix
-is only used to suggest the defaults.
-
-The default should be fine for most people.
-
-EOM
-fn=d~+
-rp='Installation prefix to use for add-on modules and utilities?'
-: XXX Here might be another good place for an installstyle setting.
-case "$siteprefix" in
-'') dflt=$prefix ;;
-*) dflt=$siteprefix ;;
-esac
-. ./getfile
-: XXX Prefixit unit does not yet support siteprefix and vendorprefix
-oldsiteprefix=''
-case "$siteprefix" in
-'') ;;
-*) case "$ans" in
- "$prefix") ;;
- *) oldsiteprefix="$prefix";;
- esac
- ;;
-esac
-siteprefix="$ans"
-siteprefixexp="$ansexp"
-
-: determine where site specific libraries go.
-: Usual default is /usr/local/lib/perl5/site_perl/$version
-: The default "style" setting is made in installstyle.U
-: XXX No longer works with Prefixit stuff.
-prog=`echo $package | $sed 's/-*[0-9.]*$//'`
-case "$sitelib" in
-'') case "$installstyle" in
- *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
- *lib32/perl5*) dflt=$siteprefix/lib32/$package/site_$prog/$version ;;
- *lib64/perl5*) dflt=$siteprefix/lib64/$package/site_$prog/$version ;;
- *) dflt=$siteprefix/lib/site_$prog/$version ;;
- esac
- ;;
-*) dflt="$sitelib"
- ;;
-esac
-$cat <<EOM
-
-The installation process will create a directory for
-site-specific extensions and modules. Most users find it convenient
-to place all site-specific files in this directory rather than in the
-main distribution directory.
-
-EOM
-fn=d~+
-rp='Pathname for the site-specific library files?'
-. ./getfile
-prefixvar=sitelib
-. ./setprefixvar
-sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
-
-: Determine list of previous versions to include in @INC
-$cat > getverlist <<EOPL
-#!$perl5
-use strict;
-use warnings;
-use File::Basename;
-my \$api_versionstring = "$api_versionstring";
-my \$version = "$version";
-my \$stem = "$sitelib_stem";
-my \$archname = "$archname";
-EOPL
- $cat >> getverlist <<'EOPL'
-# The list found is stored twice for each entry: the original name, and
-# the binary broken down version into pack "s>s>s>", so sorting is easy
-# and unambiguous. This will work for all versions that have a maximum
-# of three digit per group separate by '.'s or '_'s. Names are extended
-# with ".0.0" to ensure at least three elements for the pack.
-# -- H.Merijn Brand (m)'06 23-10-2006
-
-my @inc_version_list;
-my @candidates;
-# XXX Redo to do opendir/readdir?
-if (-d $stem) {
- chdir($stem);
- ;@candidates = map {
- [ $_, pack "s>s>s>", split m/[._]/, "$_.0.0" ] } glob("5.*");
- ;@candidates = sort { $a->[1] cmp $b->[1]} @candidates;
-}
-else {
- ;@candidates = ();
-}
-
-my ($pversion, $aversion, $vsn5005) = map {
- pack "s>s>s>", split m/[._]/, "$_.0.0" } $version, $api_versionstring, "5.005";
-foreach my $d (@candidates) {
- if ($d->[1] lt $pversion) {
- if ($d->[1] ge $aversion) {
- unshift(@inc_version_list, grep { -d } $d->[0]."/$archname", $d->[0]);
- }
- elsif ($d->[1] ge $vsn5005) {
- unshift(@inc_version_list, grep { -d } $d->[0]);
- }
- }
- else {
- # Skip newer version. I.e. don't look in
- # 5.7.0 if we're installing 5.6.1.
- }
-}
-
-if (@inc_version_list) {
- print join(' ', @inc_version_list);
-}
-else {
- # Blank space to preserve value for next Configure run.
- print " ";
-}
-EOPL
-chmod +x getverlist
-case "$inc_version_list" in
-'') if test -x "$perl5$exe_ext"; then
- dflt=`$perl5 getverlist`
- else
- dflt='none'
- fi
- ;;
-$undef) dflt='none' ;;
-*) eval dflt=\"$inc_version_list\" ;;
-esac
-case "$dflt" in
-''|' ') dflt=none ;;
-esac
-case "$dflt" in
-5.005) dflt=none ;;
-esac
-$cat <<EOM
-
-In order to ease the process of upgrading, this version of perl
-can be configured to use modules built and installed with earlier
-versions of perl that were installed under $prefix. Specify here
-the list of earlier versions that this version of perl should check.
-If Configure detected no earlier versions of perl installed under
-$prefix, then the list will be empty. Answer 'none' to tell perl
-to not search earlier versions.
-
-The default should almost always be sensible, so if you're not sure,
-just accept the default.
-EOM
-
-rp='List of earlier versions to include in @INC?'
-. ./myread
-case "$ans" in
-[Nn]one|''|' '|$undef) inc_version_list=' ' ;;
-*) inc_version_list="$ans" ;;
-esac
-case "$inc_version_list" in
-''|' ')
- inc_version_list_init='0'
- d_inc_version_list="$undef"
- ;;
-*) inc_version_list_init=`echo $inc_version_list |
- $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'`
- d_inc_version_list="$define"
- ;;
-esac
-$rm -f getverlist
-
-: see if malloc/malloc.h has to be included
-set malloc/malloc.h i_mallocmalloc
-eval $inhdr
-
-: see if this is a malloc.h system
-: we want a real compile instead of Inhdr because some systems have a
-: malloc.h that just gives a compile error saying to use stdlib.h instead
-echo " "
-$cat >try.c <<EOCP
-#include <stdlib.h>
-#include <malloc.h>
-#$i_mallocmalloc I_MALLOCMALLOC
-#ifdef I_MALLOCMALLOC
-# include <malloc/malloc.h>
-#endif
-
-int main () { return 0; }
-EOCP
-set try
-if eval $compile; then
- echo "<malloc.h> found." >&4
- val="$define"
-else
- echo "<malloc.h> NOT found." >&4
- val="$undef"
-fi
-$rm_try
-set i_malloc
-eval $setvar
-
-: check for length of pointer
-echo " "
-case "$ptrsize" in
-'')
- echo "Checking to see how big your pointers are..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- printf("%d\n", (int)sizeof(void *));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- ptrsize=`$run ./try`
- echo "Your pointers are $ptrsize bytes long."
- else
- dflt='4'
- echo "(I can't seem to compile the test program. Guessing...)" >&4
- rp="What is the size of a pointer (in bytes)?"
- . ./myread
- ptrsize="$ans"
- fi
- ;;
-esac
-$rm_try
-case "$use64bitall" in
-"$define"|true|[yY]*)
- case "$ptrsize" in
- 4) cat <<EOM >&4
-
-*** You have chosen a maximally 64-bit build,
-*** but your pointers are only 4 bytes wide.
-*** Please rerun Configure without -Duse64bitall.
-EOM
- case "$d_quad" in
- define)
- cat <<EOM >&4
-*** Since you have quads, you could possibly try with -Duse64bitint.
-EOM
- ;;
- esac
- cat <<EOM >&4
-*** Cannot continue, aborting.
-
-EOM
-
- exit 1
- ;;
- esac
- ;;
-esac
-
-: determine whether to use malloc wrapping
-echo " "
-case "$usemallocwrap" in
-[yY]*|true|$define) dflt='y' ;;
-[nN]*|false|$undef) dflt='n' ;;
-*) case "$usedevel" in
- [yY]*|true|$define) dflt='y' ;;
- *) dflt='n' ;;
- esac
- ;;
-esac
-rp="Do you wish to wrap malloc calls to protect against potential overflows?"
-. ./myread
-usemallocwrap="$ans"
-case "$ans" in
-y*|true)
- usemallocwrap="$define" ;;
-*)
- usemallocwrap="$undef" ;;
-esac
-
-: determine which malloc to compile in
-echo " "
-case "$usemymalloc" in
-[yY]*|true|$define) dflt='y' ;;
-[nN]*|false|$undef) dflt='n' ;;
-*) case "$ptrsize" in
- 4) dflt='y' ;;
- *) dflt='n' ;;
- esac
- if test "$useithreads" = "$define"; then dflt='n'; fi
- ;;
-esac
-rp="Do you wish to attempt to use the malloc that comes with $package?"
-. ./myread
-usemymalloc="$ans"
-case "$ans" in
-y*|true)
- usemymalloc='y'
- mallocsrc='malloc.c'
- mallocobj="malloc$_o"
- d_mymalloc="$define"
- case "$libs" in
- *-lmalloc*)
- : Remove malloc from list of libraries to use
- echo "Removing unneeded -lmalloc from library list" >&4
- set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
- shift
- libs="$*"
- echo "libs = $libs" >&4
- ;;
- esac
- ;;
-*)
- usemymalloc='n'
- mallocsrc=''
- mallocobj=''
- d_mymalloc="$undef"
- ;;
-esac
-
-: compute the return types of malloc and free
-echo " "
-$cat >malloc.c <<END
-#$i_malloc I_MALLOC
-#$i_stdlib I_STDLIB
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef I_MALLOC
-#include <malloc.h>
-#endif
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#ifdef TRY_MALLOC
-void *malloc();
-#endif
-#ifdef TRY_FREE
-void free();
-#endif
-END
-case "$malloctype" in
-'')
- if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then
- malloctype='void *'
- else
- malloctype='char *'
- fi
- ;;
-esac
-echo "Your system wants malloc to return '$malloctype', it would seem." >&4
-
-case "$freetype" in
-'')
- if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then
- freetype='void'
- else
- freetype='int'
- fi
- ;;
-esac
-echo "Your system uses $freetype free(), it would seem." >&4
-$rm -f malloc.[co]
-: determine where site specific architecture-dependent libraries go.
-: sitelib default is /usr/local/lib/perl5/site_perl/$version
-: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
-: sitelib may have an optional trailing /share.
-case "$sitearch" in
-'') dflt=`echo $sitelib | $sed 's,/share$,,'`
- dflt="$dflt/$archname"
- ;;
-*) dflt="$sitearch"
- ;;
-esac
-set sitearch sitearch none
-eval $prefixit
-$cat <<EOM
-
-The installation process will also create a directory for
-architecture-dependent site-specific extensions and modules.
-
-EOM
-fn=d~+
-rp='Pathname for the site-specific architecture-dependent library files?'
-. ./getfile
-prefixvar=sitearch
-. ./setprefixvar
-if $test X"$sitearch" = X"$sitelib"; then
- d_sitearch="$undef"
-else
- d_sitearch="$define"
-fi
-
-: Set the vendorprefix variables
-$cat <<EOM
-
-The installation process will also create a directory for
-vendor-supplied add-ons. Vendors who supply perl with their system
-may find it convenient to place all vendor-supplied files in this
-directory rather than in the main distribution directory. This will
-ease upgrades between binary-compatible maintenance versions of perl.
-
-Of course you may also use these directories in whatever way you see
-fit. For example, you might use them to access modules shared over a
-company-wide network.
-
-The default answer should be fine for most people.
-This causes further questions about vendor add-ons to be skipped
-and no vendor-specific directories will be configured for perl.
-
-EOM
-rp='Do you want to configure vendor-specific add-on directories?'
-case "$usevendorprefix" in
-define|true|[yY]*) dflt=y ;;
-*) : User may have set vendorprefix directly on Configure command line.
- case "$vendorprefix" in
- ''|' ') dflt=n ;;
- *) dflt=y ;;
- esac
- ;;
-esac
-. ./myread
-case "$ans" in
-[yY]*) fn=d~+
- rp='Installation prefix to use for vendor-supplied add-ons?'
- case "$vendorprefix" in
- '') dflt="$prefix" ;;
- *) dflt=$vendorprefix ;;
- esac
- . ./getfile
- : XXX Prefixit unit does not yet support siteprefix and vendorprefix
- oldvendorprefix=''
- case "$vendorprefix" in
- '') ;;
- *) case "$ans" in
- "$prefix") ;;
- *) oldvendorprefix="$prefix";;
- esac
- ;;
- esac
- usevendorprefix="$define"
- vendorprefix="$ans"
- vendorprefixexp="$ansexp"
- ;;
-*) usevendorprefix="$undef"
- vendorprefix=''
- vendorprefixexp=''
- ;;
-esac
-
-: Set the vendorlib variables
-case "$vendorprefix" in
-'') d_vendorlib="$undef"
- vendorlib=''
- vendorlibexp=''
- ;;
-*) d_vendorlib="$define"
- : determine where vendor-supplied modules go.
- : Usual default is /usr/local/lib/perl5/vendor_perl/$version
- case "$vendorlib" in
- '')
- prog=`echo $package | $sed 's/-*[0-9.]*$//'`
- case "$installstyle" in
- *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
- *lib32/perl5*) dflt=$vendorprefix/lib32/$package/vendor_$prog/$version ;;
- *lib64/perl5*) dflt=$vendorprefix/lib64/$package/vendor_$prog/$version ;;
- *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
- esac
- ;;
- *) dflt="$vendorlib"
- ;;
- esac
- fn=d~+
- rp='Pathname for the vendor-supplied library files?'
- . ./getfile
- vendorlib="$ans"
- vendorlibexp="$ansexp"
- ;;
-esac
-vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"`
-prefixvar=vendorlib
-. ./installprefix
-
-: Set the vendorarch variables
-case "$vendorprefix" in
-'') d_vendorarch="$undef"
- vendorarch=''
- vendorarchexp=''
- ;;
-*) d_vendorarch="$define"
- : determine where vendor-supplied architecture-dependent libraries go.
- : vendorlib default is /usr/local/lib/perl5/vendor_perl/$version
- : vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname
- : vendorlib may have an optional trailing /share.
- case "$vendorarch" in
- '') dflt=`echo $vendorlib | $sed 's,/share$,,'`
- dflt="$dflt/$archname"
- ;;
- *) dflt="$vendorarch" ;;
- esac
- fn=d~+
- rp='Pathname for vendor-supplied architecture-dependent files?'
- . ./getfile
- vendorarch="$ans"
- vendorarchexp="$ansexp"
- ;;
-esac
-prefixvar=vendorarch
-. ./installprefix
-if $test X"$vendorarch" = X"$vendorlib"; then
- d_vendorarch="$undef"
-else
- d_vendorarch="$define"
-fi
-
-: Final catch-all directories to search
-$cat <<EOM
-
-Lastly, you can have perl look in other directories for extensions and
-modules in addition to those already specified.
-These directories will be searched after
- $sitearch
- $sitelib
-EOM
-test X"$vendorlib" != "X" && echo ' ' $vendorlib
-test X"$vendorarch" != "X" && echo ' ' $vendorarch
-echo ' '
-case "$otherlibdirs" in
-''|' ') dflt='none' ;;
-*) dflt="$otherlibdirs" ;;
-esac
-$cat <<EOM
-Enter a colon-separated set of extra paths to include in perl's @INC
-search path, or enter 'none' for no extra paths.
-
-EOM
-
-rp='Colon-separated list of additional directories for perl to search?'
-. ./myread
-case "$ans" in
-' '|''|none) otherlibdirs=' ' ;;
-*) otherlibdirs="$ans" ;;
-esac
-case "$otherlibdirs" in
-' ') val=$undef ;;
-*) val=$define ;;
-esac
-set d_perl_otherlibdirs
-eval $setvar
-
-: DTrace support
-dflt_dtrace='/usr/sbin/dtrace'
-$test -x /usr/bin/dtrace && dflt_dtrace='/usr/bin/dtrace'
-
-cat <<EOM
-
-Perl can be built to support DTrace on platforms that support it.
-DTrace is a diagnosis and performance analysis tool from Sun.
-
-If this doesn't make any sense to you, just accept the default.
-EOM
-
-while $test 1 ; do
- case "$usedtrace" in
- $define|true|[yY]*)
- dflt='y'
- ;;
- $undef|false|[nN]*)
- dflt='n'
- dflt_dtrace=""
- ;;
- ?*)
- dflt='y'
- dflt_dtrace=$usedtrace
- ;;
- *)
- dflt='n'
- ;;
- esac
-
- rp='Support DTrace if available?'
- . ./myread
- case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
- esac
- set usedtrace
- eval $setvar
-
- test "X$usedtrace" != "X$define" && break
-
- echo " "
- rp='Where is the dtrace executable?'
- dflt=$dflt_dtrace
- . ./getfile
- val="$ans"
- set dtrace
- eval $setvar
-
- if $test -f $dtrace
- then
- if $dtrace -h -s ../perldtrace.d \
- -o perldtrace.tmp >/dev/null 2>&1 \
- && rm -f perldtrace.tmp
- then
- echo " "
- echo "Good: your $dtrace knows about the -h flag."
- else
- cat >&2 <<EOM
-
-*** $me: Fatal Error: $dtrace doesn't support -h flag
-***
-*** Your installed dtrace doesn't support the -h switch to compile a D
-*** program into a C header. Can't continue.
-
-EOM
- exit 1
- fi
- break;
- fi
-
- case "$fastread" in
- yes)
- cat >&2 <<EOM
-
-*** $me: Fatal Error: $dtrace not found.
-*** Can't continue.
-
-EOM
- exit 1
- ;;
- *)
- echo "*** $dtrace was not found."
- echo " "
- ;;
- esac
-done
-
-: See if we want extra modules installed
-echo " "
-case "$extras" in
-'') dflt='n';;
-*) dflt='y';;
-esac
-cat <<EOM
-Perl can be built with extra modules or bundles of modules which
-will be fetched from the CPAN and installed alongside Perl.
-
-Notice that you will need access to the CPAN; either via the Internet,
-or a local copy, for example a CD-ROM or a local CPAN mirror. (You will
-be asked later to configure the CPAN.pm module which will in turn do
-the installation of the rest of the extra modules or bundles.)
-
-Notice also that if the modules require any external software such as
-libraries and headers (the libz library and the zlib.h header for the
-Compress::Zlib module, for example) you MUST have any such software
-already installed, this configuration process will NOT install such
-things for you.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Install any extra modules (y or n)?'
-. ./myread
-case "$ans" in
-y|Y)
- cat <<EOM
-
-Please list any extra modules or bundles to be installed from CPAN,
-with spaces between the names. The names can be in any format the
-'install' command of CPAN.pm will understand. (Answer 'none',
-without the quotes, to install no extra modules or bundles.)
-EOM
- rp='Extras?'
- dflt="$extras"
- . ./myread
- extras="$ans"
-esac
-case "$extras" in
-''|'none')
- val=''
- $rm -f ../extras.lst
- ;;
-*) echo "(Saving the list of extras for later...)"
- echo "$extras" > ../extras.lst
- val="'$extras'"
- ;;
-esac
-set extras
-eval $setvar
-echo " "
-
-: determine where html pages for programs go
-set html1dir html1dir none
-eval $prefixit
-$cat <<EOM
-
-If you wish to install html files for programs in $spackage, indicate
-the appropriate directory here. To skip installing html files,
-answer "none".
-EOM
-case "$html1dir" in
-''|none|$undef|' ') dflt=none ;;
-*) dflt=$html1dir ;;
-esac
-fn=dn+~
-rp="Directory for the main $spackage html pages?"
-. ./getfile
-prefixvar=html1dir
-. ./setprefixvar
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$html1dir" = "X" && html1dir=' '
-
-: determine where html pages for libraries and modules go
-set html3dir html3dir none
-eval $prefixit
-$cat <<EOM
-
-If you wish to install html files for modules associated with $spackage,
-indicate the appropriate directory here. To skip installing html files,
-answer "none".
-EOM
-: There is no obvious default. If they have specified html1dir, then
-: try to key off that, possibly changing .../html1 into .../html3.
-case "$html3dir" in
-'') html3dir=`echo "$html1dir" | $sed 's/1$/3$/'` ;;
-*) dflt=$html3dir ;;
-esac
-fn=dn+~
-rp="Directory for the $spackage module html pages?"
-. ./getfile
-prefixvar=html3dir
-. ./setprefixvar
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$html3dir" = "X" && html3dir=' '
-
-: determine whether to install perl also as /usr/bin/perl
-
-echo " "
-if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
- $cat <<EOM
-Many scripts expect perl to be installed as /usr/bin/perl.
-
-If you want to, I can install the perl you are about to compile
-as /usr/bin/perl (in addition to $bin/perl).
-EOM
- if test -f /usr/bin/perl; then
- $cat <<EOM
-
-However, please note that because you already have a /usr/bin/perl,
-overwriting that with a new Perl would very probably cause problems.
-Therefore I'm assuming you don't want to do that (unless you insist).
-
-EOM
- case "$installusrbinperl" in
- "$define"|[yY]*) dflt='y';;
- *) dflt='n';;
- esac
- else
- $cat <<EOM
-
-Since you don't have a /usr/bin/perl I'm assuming creating one is okay.
-
-EOM
- case "$installusrbinperl" in
- "$undef"|[nN]*) dflt='n';;
- *) dflt='y';;
- esac
- fi
- rp="Do you want to install perl as /usr/bin/perl?"
- . ./myread
- case "$ans" in
- [yY]*) val="$define";;
- *) val="$undef" ;;
- esac
-else
- val="$undef"
-fi
-set installusrbinperl
-eval $setvar
-
-: see if dlopen exists
-xxx_runnm="$runnm"
-xxx_ccflags="$ccflags"
-runnm=false
-: with g++ one needs -shared to get is-in-libc to work for dlopen
-case "$gccversion" in
-'') ;;
-*Clang*) ;;
-*) case "$d_cplusplus" in
- "$define") ccflags="$ccflags -shared" ;;
- esac
- ;;
-esac
-set dlopen d_dlopen
-eval $inlibc
-runnm="$xxx_runnm"
-ccflags="$xxx_ccflags"
-
-: see if this is a unistd.h system
-set unistd.h i_unistd
-eval $inhdr
-
-: determine which dynamic loading, if any, to compile in
-echo " "
-dldir="ext/DynaLoader"
-case "$usedl" in
- $define|y|true)
- dflt='y'
- usedl="$define"
- ;;
- $undef|n|false)
- dflt='n'
- usedl="$undef"
- ;;
- *)
- dflt='n'
- case "$d_dlopen" in
- $define) dflt='y' ;;
- esac
- : Does a dl_xxx.xs file exist for this operating system
- $test -f $rsrc/$dldir/dl_${osname}.xs && dflt='y'
- ;;
-esac
-rp="Do you wish to use dynamic loading?"
-. ./myread
-usedl="$ans"
-bin_ELF="$undef"
-case "$ans" in
- y*) usedl="$define"
- case "$dlsrc" in
- '') if $test -f $rsrc/$dldir/dl_${osname}.xs ; then
- dflt="$dldir/dl_${osname}.xs"
- elif $test "$d_dlopen" = "$define" ; then
- dflt="$dldir/dl_dlopen.xs"
- else
- dflt=''
- fi
- ;;
- *) dflt="$dldir/$dlsrc"
- ;;
- esac
- echo "The following dynamic loading files are available:"
- : Can not go over to $dldir because getfile has path hard-coded in.
- tdir=`pwd`; cd "$rsrc"; $ls -C $dldir/dl*.xs; cd "$tdir"
- rp="Source file to use for dynamic loading"
- fn="fne"
- gfpth="$src"
- . ./getfile
- usedl="$define"
- : emulate basename
- dlsrc=`echo $ans | $sed -e 's%.*/\([^/]*\)$%\1%'`
-
- $cat << EOM
-
-Some systems may require passing special flags to $cc -c to
-compile modules that will be used to create a shared library.
-To use no flags, say "none".
-
-EOM
- case "$cccdlflags" in
- '') case "$gccversion" in
- '') case "$osname" in
- hpux) dflt='+z' ;;
- irix*) dflt='-KPIC' ;;
- svr4*|esix*|solaris|nonstopux) dflt='-KPIC' ;;
- sunos) dflt='-pic' ;;
- *) dflt='none' ;;
- esac
- ;;
- *) case "$osname" in
- darwin) dflt='none' ;;
- *linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
- *) dflt='-fpic' ;;
- esac ;;
- esac ;;
- ' ') dflt='none' ;;
- *) dflt="$cccdlflags" ;;
- esac
-
- case "$dflt" in
- none) dflt='' ;;
- esac
-
- # If -Dsysroot was specified, now's the time to add it
- # to cccdlflags
- if test "X$sysroot" != X; then
- case "$gccversion" in
- '') ;;
- *) case "$dflt" in
- *sysroot*) ;;
- 'undef'|*)
- dflt="$dflt --sysroot=$sysroot" ;;
- esac
- ;;
- esac
- fi
-
- case "$dflt" in
- '') dflt='none';;
- esac
-
- rp="Any special flags to pass to $cc -c to compile shared library modules?"
- . ./myread
- case "$ans" in
- none) cccdlflags=' ' ;;
- *) cccdlflags="$ans" ;;
- esac
-
- cat << EOM
-
-Some systems use ld to create libraries that can be dynamically loaded,
-while other systems (such as those using ELF) use $cc.
-
-EOM
-
-: Determine if this is ELF
- $cat >try.c <<EOM
-/* Test for whether ELF binaries are produced */
-#include <fcntl.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_unistd I_UNISTD
-#ifdef I_UNISTD
-#include <unistd.h>
-#endif
-int main() {
- char b[4];
- int i = open("a.out",O_RDONLY);
- if(i == -1)
- exit(1); /* fail */
- if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
- exit(0); /* succeed (yes, it is ELF) */
- exit(1); /* fail */
-}
-EOM
- if $cc $ccflags $ldflags -o a.out try.c >/dev/null 2>&1 && $run ./a.out; then
- bin_ELF="$define"
- fi
- $rm_try
-
- case "$ld" in
- '') if $test $bin_ELF = "$define"; then
- cat <<EOM
-You appear to have ELF support. I'll use $cc to build dynamic libraries.
-EOM
- dflt="$cc"
- else
- echo "I'll use ld to build dynamic libraries."
- dflt='ld'
- fi
- ;;
- *) dflt="$ld"
- ;;
- esac
-
- rp="What command should be used to create dynamic libraries?"
- . ./myread
- ld="$ans"
-
- cat << EOM
-
-Some systems may require passing special flags to $ld to create a
-library that can be dynamically loaded. If your ld flags include
--L/other/path options to locate libraries outside your loader's normal
-search path, you may need to specify those -L options here as well. To
-use no flags, say "none".
-
-EOM
- case "$lddlflags" in
- '') case "$osname" in
- haiku) dflt='-shared' ;;
- hpux) dflt='-b';
- case "$gccversion" in
- '') dflt="$dflt +vnocompatwarnings" ;;
- esac
- ;;
- *linux*|irix*|gnu*) dflt="-shared $optimize" ;;
- solaris) # See [perl #66604].
- # On Solaris 11, gcc -m64 on amd64
- # appears not to understand -G. gcc versions at
- # least as old as 3.4.3 support -shared, so just
- # use that with Solaris 11 and later, but keep
- # the old behavior for older Solaris versions.
- case "$gccversion" in
- '') dflt='-G' ;;
- *) case "$osvers" in
- 2.?|2.10) dflt='-G' ;;
- *) dflt='-shared' ;;
- esac
- ;;
- esac
- ;;
- sunos) dflt='-assert nodefinitions' ;;
- svr4*|esix*|nonstopux) dflt="-G $ldflags" ;;
- *) dflt='none' ;;
- esac
- ;;
- *) dflt="$lddlflags" ;;
- esac
-
- : Only do this for gcc, since, for example, qcc has no concept
- : of --sysroot.
- if $test "X$sysroot" != X; then
- case "$gccversion" in
- '') ;;
- *) dflt="$dflt --sysroot=$sysroot" ;;
- esac
- fi
-
- : Try to guess additional flags to pick up local libraries.
- : Be careful not to append to a plain 'none'
- case "$dflt" in
- none) dflt='' ;;
- esac
- for thisflag in $ldflags; do
- case "$thisflag" in
- -L*|-R*|-Wl,-R*)
- case " $dflt " in
- *" $thisflag "*) ;;
- *) dflt="$dflt $thisflag" ;;
- esac
- ;;
- esac
- done
-
- case "$dflt" in
- ''|' ') dflt='none' ;;
- esac
-
- case "$ldflags" in
- *-fstack-protector-strong*)
- case "$dflt" in
- *-fstack-protector-strong*) ;; # Don't add it again
- *) dflt="$dflt -fstack-protector-strong" ;;
- esac
- ;;
- *-fstack-protector*)
- case "$dflt" in
- *-fstack-protector*) ;; # Don't add it again
- *) dflt="$dflt -fstack-protector" ;;
- esac
- ;;
- esac
-
- rp="Any special flags to pass to $ld to create a dynamically loaded library?"
- . ./myread
- case "$ans" in
- none) lddlflags=' ' ;;
- *) lddlflags="$ans" ;;
- esac
-
- cat <<EOM
-
-Some systems may require passing special flags to $cc to indicate that
-the resulting executable will use dynamic linking. To use no flags,
-say "none".
-
-EOM
- case "$ccdlflags" in
- '') case "$osname" in
- *linux*|hpux|gnu*) dflt='-Wl,-E' ;;
- sunos) dflt='none' ;;
- *) dflt='none' ;;
- esac ;;
- ' ') dflt='none' ;;
- *) dflt="$ccdlflags" ;;
- esac
- rp="Any special flags to pass to $cc to use dynamic linking?"
- . ./myread
- case "$ans" in
- none) ccdlflags=' ' ;;
- *) ccdlflags="$ans" ;;
- esac
- ;;
-
- *) usedl="$undef"
- ld='ld'
- dlsrc='dl_none.xs'
- lddlflags=''
- ccdlflags=''
- ;;
-esac
-
-ld_can_script="$undef"
-case "$bin_ELF$usedl" in
- $define$define)
- # Abuse try.h and a.out names for neat cleanup
- $cat >try.c <<EOM
-void foo() {}
-void bar() {}
-EOM
- $cat >try.h <<EOM
-LIBTEST_42 {
- global:
- foo;
- local: *;
- };
-EOM
- if $cc $cccdlflags $ccdlflags $ccflags \
- $ldflags $lddlflags -o a.out try.c \
- -Wl,--version-script=try.h >/dev/null 2>&1 \
- && $test -s a.out ; then
- echo "ld supports scripting" >&4
- ld_can_script="$define"
- else
- echo "ld does not support scripting" >&4
- fi
- $rm_try
- ;;
-esac
-
-: Do we want a shared libperl?
-also=''
-case "$usedl" in
-$undef)
- # No dynamic loading being used, so don't bother even to prompt.
- useshrplib='false'
- ;;
-*) case "$useshrplib" in
- '') case "$osname" in
- svr4*|nonstopux|dgux|dynixptx|esix|powerux|haiku|cygwin*)
- dflt=y
- also='Building a shared libperl is required for dynamic loading to work on your system.'
- ;;
- *) dflt=n
- ;;
- esac
- ;;
- $define|true|[Yy]*)
- dflt=y
- ;;
- *) dflt=n
- ;;
- esac
- $cat << EOM
-
-The perl executable is normally obtained by linking perlmain.c with
-libperl${_a}, any static extensions (usually just DynaLoader), and
-any other libraries needed on this system (such as -lm, etc.). Since
-your system supports dynamic loading, it is probably possible to build
-a shared libperl.$so. If you will have more than one executable linked
-to libperl.$so, this will significantly reduce the size of each
-executable, but it may have a noticeable effect on performance. The
-default is probably sensible for your system.
-$also
-
-EOM
- rp="Build a shared libperl.$so (y/n)"
- . ./myread
- case "$ans" in
- true|$define|[Yy]*)
- useshrplib='true' ;;
- *) useshrplib='false' ;;
- esac
- ;;
-esac
-
-case "$useshrplib" in
-true)
- case "$userelocatableinc" in
- true|define)
- echo "Cannot build with both -Duserelocatableinc and -Duseshrplib" >&4
- echo "See INSTALL for an explanation why that won't work." >&4
- exit 4
- ;;
- esac
- case "$libperl" in
- '')
- # Figure out a good name for libperl.so. Since it gets stored in
- # a version-specific architecture-dependent library, the version
- # number isn't really that important, except for making cc/ld happy.
- #
- # A name such as libperl.so.10.1
- majmin="libperl.$so.$patchlevel.$subversion"
- # A name such as libperl.so.100
- majonly=`echo $patchlevel $subversion |
- $awk '{printf "%d%02d", $1, $2}'`
- majonly=libperl.$so.$majonly
- # I'd prefer to keep the os-specific stuff here to a minimum, and
- # rely on figuring it out from the naming of libc.
- case "${osname}${osvers}" in
- *linux*|gnu*) # ld won't link with a bare -lperl otherwise.
- dflt=libperl.$so
- ;;
- cygwin*) # ld links now against the dll directly
- majmin="cygperl5_${patchlevel}_${subversion}.${so}"
- majonly=`echo $patchlevel $subversion |
- $awk '{printf "%03d%03d", $1, $2}'`
- majonly=cygperl5.$majonly.$so
- dflt=$majmin
- ;;
- *) # Try to guess based on whether libc has major.minor.
- case "$libc" in
- *libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;;
- *libc.$so.[0-9]*) dflt=$majonly ;;
- *) dflt=libperl.$so ;;
- esac
- ;;
- esac
- ;;
- *) dflt=$libperl
- ;;
- esac
- cat << EOM
-
-I need to select a good name for the shared libperl. If your system uses
-library names with major and minor numbers, then you might want something
-like $majmin. Alternatively, if your system uses a single version
-number for shared libraries, then you might want to use $majonly.
-Or, your system might be quite happy with a simple libperl.$so.
-
-Since the shared libperl will get installed into a version-specific
-architecture-dependent directory, the version number of the shared perl
-library probably isn't important, so the default should be o.k.
-
-EOM
- rp='What name do you want to give to the shared libperl?'
- . ./myread
- libperl=$ans
- echo "Ok, I'll use $libperl"
- ;;
-*)
- libperl="libperl${_a}"
- ;;
-esac
-
-# Detect old use of shrpdir via undocumented Configure -Dshrpdir
-case "$shrpdir" in
-'') ;;
-*) $cat >&4 <<EOM
-WARNING: Use of the shrpdir variable for the installation location of
-the shared $libperl is not supported. It was never documented and
-will not work in this version. Let me (https://github.com/Perl/perl5/issues)
-know of any problems this may cause.
-
-EOM
- case "$shrpdir" in
- "$archlibexp/CORE")
- $cat >&4 <<EOM
-But your current setting of $shrpdir is
-the default anyway, so it's harmless.
-EOM
- ;;
- *)
- $cat >&4 <<EOM
-Further, your current attempted setting of $shrpdir
-conflicts with the value of $archlibexp/CORE
-that installperl will use.
-EOM
- ;;
- esac
- ;;
-esac
-
-# How will the perl executable find the installed shared $libperl?
-# Add $xxx to ccdlflags.
-# If we can't figure out a command-line option, use $shrpenv to
-# set env LD_RUN_PATH. The main perl makefile uses this.
-shrpdir=$archlibexp/CORE
-xxx=''
-tmp_shrpenv=''
-if "$useshrplib"; then
- case "$osname" in
- aix)
- # We'll set it in Makefile.SH...
- ;;
- solaris)
- xxx="-R $shrpdir"
- ;;
- freebsd|minix|mirbsd|netbsd|openbsd|interix|dragonfly|bitrig)
- xxx="-Wl,-R$shrpdir"
- ;;
- bsdos|linux|irix*|dec_osf|gnu*|haiku)
- xxx="-Wl,-rpath,$shrpdir"
- ;;
- hpux*)
- # hpux doesn't like the default, either.
- tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
- ;;
- cygwin)
- # cygwin needs only ldlibpth
- ;;
- *)
- tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
- ;;
- esac
- case "$xxx" in
- '') ;;
- *)
- # Only add $xxx if it isn't already in ccdlflags.
- case " $ccdlflags " in
- *" $xxx "*) ;;
- *) ccdlflags="$ccdlflags $xxx"
- cat <<EOM >&4
-
-Adding $xxx to the flags
-passed to $ld so that the perl executable will find the
-installed shared $libperl.
-
-EOM
- ;;
- esac
- ;;
- esac
-fi
-# Fix ccdlflags in AIX for building external extensions.
-# (For building Perl itself bare -bE:perl.exp is needed,
-# Makefile.SH takes care of this.)
-case "$osname" in
-aix) ccdlflags="$ccdlflags -bE:$installarchlib/CORE/perl.exp" ;;
-esac
-# Respect a hint or command-line value.
-case "$shrpenv" in
-'') shrpenv="$tmp_shrpenv" ;;
-esac
-case "$ldlibpthname" in
-'') ldlibpthname=LD_LIBRARY_PATH ;;
-none) ldlibpthname='' ;;
-esac
-
-: determine where manual pages are on this system
-echo " "
-case "$sysman" in
-'')
- syspath='/usr/share/man/man1 /usr/man/man1'
- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
- syspath="$syspath /usr/man/u_man/man1"
- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
- sysman=`./loc . /usr/man/man1 $syspath`
- ;;
-esac
-if $test -d "$sysman"; then
- echo "System manual is in $sysman." >&4
-else
- echo "Could not find manual pages in source form." >&4
-fi
-
-: determine where manual pages go
-set man1dir man1dir none
-eval $prefixit
-$cat <<EOM
-
-$spackage has manual pages available in source form.
-EOM
-case "$nroff" in
-nroff)
- echo "However, you don't have nroff, so they're probably useless to you."
- case "$man1dir" in
- '') man1dir="none";;
- esac;;
-esac
-echo "If you don't want the manual sources installed, answer 'none'."
-case "$man1dir" in
-' ') dflt=none
- ;;
-'')
- lookpath="$prefixexp/share/man/man1"
- lookpath="$lookpath $prefixexp/man/man1 $prefixexp/man/l_man/man1"
- lookpath="$lookpath $prefixexp/man/p_man/man1"
- lookpath="$lookpath $prefixexp/man/u_man/man1"
- lookpath="$lookpath $prefixexp/man/man.1"
- case "$sysman" in
- */?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;;
- *) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;;
- esac
- set dflt
- eval $prefixup
- ;;
-*) dflt="$man1dir"
- ;;
-esac
-echo " "
-fn=dn+~
-rp="Where do the main $spackage manual pages (source) go?"
-. ./getfile
-if $test "X$man1direxp" != "X$ansexp"; then
- installman1dir=''
-fi
-prefixvar=man1dir
-. ./setprefixvar
-
-case "$man1dir" in
-'') man1dir=' '
- installman1dir='';;
-esac
-
-: What suffix to use on installed man pages
-
-case "$man1dir" in
-' ')
- man1ext='0'
- ;;
-*)
- rp="What suffix should be used for the main $spackage man pages?"
- case "$man1ext" in
- '') case "$man1dir" in
- *1) dflt=1 ;;
- *1p) dflt=1p ;;
- *1pm) dflt=1pm ;;
- *l) dflt=l;;
- *n) dflt=n;;
- *o) dflt=o;;
- *p) dflt=p;;
- *C) dflt=C;;
- *L) dflt=L;;
- *L1) dflt=L1;;
- *) dflt=1;;
- esac
- ;;
- *) dflt="$man1ext";;
- esac
- . ./myread
- man1ext="$ans"
- ;;
-esac
-
-: see if we can have long filenames
-echo " "
-first=123456789abcdef
-$rm -f $first
-if (echo hi >$first) 2>/dev/null; then
- if $test -f 123456789abcde; then
- echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4
- val="$undef"
- else
- echo 'You can have filenames longer than 14 characters.'>&4
- val="$define"
- fi
-else
- $cat <<'EOM'
-You can't have filenames longer than 14 chars.
-You can't even think about them!
-EOM
- val="$undef"
-fi
-set d_flexfnam
-eval $setvar
-$rm -rf 123456789abcde*
-
-: determine where library module manual pages go
-set man3dir man3dir none
-eval $prefixit
-$cat <<EOM
-
-$spackage has manual pages for many of the library modules.
-EOM
-
-case "$nroff" in
-nroff)
- $cat <<'EOM'
-However, you don't have nroff, so they're probably useless to you.
-EOM
- case "$man3dir" in
- '') man3dir="none";;
- esac;;
-esac
-
-case "$d_flexfnam" in
-undef)
- $cat <<'EOM'
-However, your system can't handle the long file names like File::Basename.3.
-EOM
- case "$man3dir" in
- '') man3dir="none";;
- esac;;
-esac
-
-echo "If you don't want the manual sources installed, answer 'none'."
-prog=`echo $package | $sed 's/-*[0-9.]*$//'`
-case "$man3dir" in
-'') dflt=`echo "$man1dir" | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
- if $test -d "$privlib/man/man3"; then
- cat <<EOM >&4
-
-WARNING: Previous versions of perl installed man3 pages into
-$privlib/man/man3. This version will suggest a
-new default of $dflt.
-EOM
- tdflt=$dflt
- dflt='n'
- rp='Do you wish to preserve the old behavior?(y/n)'
- . ./myread
- case "$ans" in
- y*) dflt="$privlib/man/man3" ;;
- *) dflt=$tdflt ;;
- esac
- fi
- ;;
-*) dflt="$man3dir" ;;
-esac
-case "$dflt" in
-' ') dflt=none ;;
-esac
-echo " "
-fn=dn+~
-rp="Where do the $package library man pages (source) go?"
-. ./getfile
-prefixvar=man3dir
-. ./setprefixvar
-
-case "$man3dir" in
-'') man3dir=' '
- installman3dir='';;
-esac
-
-: What suffix to use on installed man pages
-case "$man3dir" in
-' ')
- man3ext='0'
- ;;
-*)
- rp="What suffix should be used for the $package library man pages?"
- case "$man3ext" in
- '') case "$man3dir" in
- *3) dflt=3 ;;
- *3p) dflt=3p ;;
- *3pm) dflt=3pm ;;
- *l) dflt=l;;
- *n) dflt=n;;
- *o) dflt=o;;
- *p) dflt=p;;
- *C) dflt=C;;
- *L) dflt=L;;
- *L3) dflt=L3;;
- *) dflt=3;;
- esac
- ;;
- *) dflt="$man3ext";;
- esac
- . ./myread
- man3ext="$ans"
- ;;
-esac
-
-: see if we have to deal with yellow pages, now NIS.
-if $test -d /usr/etc/yp || $test -d /etc/yp || $test -d /usr/lib/yp; then
- case "$hostcat" in
- nidump*) ;;
- *)
- case "$hostcat" in
- *ypcat*) dflt=y;;
- '') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then
- dflt=y
- else
- dflt=n
- fi;;
- *) dflt=n;;
- esac
- echo " "
- rp='Are you getting the hosts file via yellow pages?'
- . ./myread
- case "$ans" in
- y*) hostcat='ypcat hosts';;
- *) hostcat='cat /etc/hosts';;
- esac
- ;;
- esac
-fi
-case "$hostcat" in
-'') test -f /etc/hosts && hostcat='cat /etc/hosts';;
-esac
-case "$groupcat" in
-'') test -f /etc/group && groupcat='cat /etc/group';;
-esac
-case "$passcat" in
-'') test -f /etc/passwd && passcat='cat /etc/passwd';;
-esac
-
-: now get the host name
-echo " "
-echo "Figuring out host name..." >&4
-case "$myhostname" in
-'') cont=true
- echo 'Maybe "hostname" will work...'
- if tans=`sh -c hostname 2>&1` ; then
- myhostname=$tans
- phostname=hostname
- cont=''
- fi
- ;;
-*) cont='';;
-esac
-if $test "$cont"; then
- if ./xenix; then
- echo 'Oh, dear. Maybe "/etc/systemid" is the key...'
- if tans=`cat /etc/systemid 2>&1` ; then
- myhostname=$tans
- phostname='cat /etc/systemid'
- echo "Whadyaknow. Xenix always was a bit strange..."
- cont=''
- fi
- elif $test -r /etc/systemid; then
- echo "(What is a non-Xenix system doing with /etc/systemid?)"
- fi
-fi
-if $test "$cont"; then
- echo 'No, maybe "uuname -l" will work...'
- if tans=`sh -c 'uuname -l' 2>&1` ; then
- myhostname=$tans
- phostname='uuname -l'
- else
- echo 'Strange. Maybe "uname -n" will work...'
- if tans=`sh -c 'uname -n' 2>&1` ; then
- myhostname=$tans
- phostname='uname -n'
- else
- echo 'Oh well, maybe I can mine it out of whoami.h...'
- if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then
- myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'`
- phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h"
- else
- case "$myhostname" in
- '') echo "Does this machine have an identity crisis or something?"
- phostname='';;
- *)
- echo "Well, you said $myhostname before..."
- phostname='echo $myhostname';;
- esac
- fi
- fi
- fi
-fi
-case "$myhostname" in
-'') myhostname=noname ;;
-esac
-: you do not want to know about this
-set $myhostname
-myhostname=$1
-
-: verify guess
-if $test "$myhostname" ; then
- dflt=y
- rp='Your host name appears to be "'$myhostname'".'" Right?"
- . ./myread
- case "$ans" in
- y*) ;;
- *) myhostname='';;
- esac
-fi
-
-: bad guess or no guess
-while $test "X$myhostname" = X ; do
- dflt=''
- rp="Please type the (one word) name of your host:"
- . ./myread
- myhostname="$ans"
-done
-
-: translate upper to lower if necessary
-case "$myhostname" in
-*[A-Z]*)
- echo "(Normalizing case in your host name)"
- myhostname=`echo $myhostname | ./tr '[A-Z]' '[a-z]'`
- ;;
-esac
-
-case "$myhostname" in
-*.*)
- dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"`
- myhostname=`expr "X$myhostname" : "X\([^.]*\)\."`
- echo "(Trimming domain name from host name--host name is now $myhostname)"
- ;;
-*) case "$mydomain" in
- '')
- {
- test "X$hostcat" = "Xypcat hosts" &&
- ypmatch "$myhostname" hosts 2>/dev/null |\
- $sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \
- $test -s hosts
- } || {
- test "X$hostcat" != "X" &&
- $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
- /[ ]$myhostname[ . ]/p" > hosts
- }
- tmp_re="[ . ]"
- if $test -f hosts; then
- $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ }
- END { print sum }" hosts` = x1 || tmp_re="[ ]"
- dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
- hosts | $sort | $uniq | \
- $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
- case `$echo X$dflt` in
- X*\ *) echo "(Several hosts in the database matched hostname)"
- dflt=.
- ;;
- X.) echo "(You do not have fully-qualified names in the hosts database)"
- ;;
- esac
- else
- echo "(I cannot locate a hosts database anywhere)"
- dflt=.
- fi
- case "$dflt" in
- .)
- tans=`./loc resolv.conf X /etc /usr/etc`
- if $test -f "$tans"; then
- echo "(Attempting domain name extraction from $tans)"
- dflt=.`$sed -n -e 's/ / /g' \
- -e 's/^search *\([^ ]*\).*/\1/p' $tans \
- -e 1q 2>/dev/null`
- case "$dflt" in
- .) dflt=.`$sed -n -e 's/ / /g' \
- -e 's/^domain *\([^ ]*\).*/\1/p' $tans \
- -e 1q 2>/dev/null`
- ;;
- esac
- fi
- ;;
- esac
- case "$dflt" in
- .) echo "(No help from resolv.conf either -- attempting clever guess)"
- dflt=.`sh -c domainname 2>/dev/null`
- case "$dflt" in
- '') dflt='.';;
- .nis.*|.yp.*|.main.*) dflt=`echo $dflt | $sed -e 's/^\.[^.]*//'`;;
- esac
- ;;
- esac
- case "$dflt$osname" in
- .os390) echo "(Attempting domain name extraction from //'SYS1.TCPPARMS(TCPDATA)')"
- dflt=.`awk '/^DOMAINORIGIN/ {print $2}' "//'SYS1.TCPPARMS(TCPDATA)'" 2>/dev/null`
- ;;
- esac
- case "$dflt" in
- .) echo "(Lost all hope -- silly guess then)"
- dflt='.nonet'
- ;;
- esac
- $rm -f hosts
- ;;
- *) dflt="$mydomain";;
- esac;;
-esac
-echo " "
-rp="What is your domain name?"
-. ./myread
-tans="$ans"
-case "$ans" in
-'') ;;
-.*) ;;
-*) tans=".$tans";;
-esac
-mydomain="$tans"
-
-: translate upper to lower if necessary
-case "$mydomain" in
-*[A-Z]*)
- echo "(Normalizing case in your domain name)"
- mydomain=`echo $mydomain | ./tr '[A-Z]' '[a-z]'`
- ;;
-esac
-
-: a little sanity check here
-case "$phostname" in
-'') ;;
-*)
- case `$phostname | ./tr '[A-Z]' '[a-z]'` in
- $myhostname$mydomain|$myhostname) ;;
- *)
- case "$phostname" in
- sed*)
- echo "(That doesn't agree with your whoami.h file, by the way.)"
- ;;
- *)
- echo "(That doesn't agree with your $phostname command, by the way.)"
- ;;
- esac
- ;;
- esac
- ;;
-esac
-
-: determine the e-mail address of the user who is running us
-$cat <<EOM
-
-I need to get your e-mail address in Internet format if possible, i.e.
-something like user@host.domain. Please answer accurately since I have
-no easy means to double check it. The default value provided below
-is most probably close to reality but may not be valid from outside
-your organization...
-
-EOM
-cont=x
-while test "$cont"; do
- case "$MAILDOMAIN" in
- '')
- if $test -s /etc/mailname; then
- maildomain=`$cat /etc/mailname`
- else
- maildomain="$myhostname$mydomain"
- fi
- ;;
- *) maildomain="$MAILDOMAIN";;
- esac
- case "$cf_email" in
- '') dflt="$cf_by@$maildomain";;
- *) dflt="$cf_email";;
- esac
- rp='What is your e-mail address?'
- . ./myread
- cf_email="$ans"
- case "$cf_email" in
- *@*.*) cont='' ;;
- *)
- rp='Address does not look like an Internet one. Use it anyway?'
- case "$fastread" in
- yes) dflt=y ;;
- *) dflt=n ;;
- esac
- . ./myread
- case "$ans" in
- y*) cont='' ;;
- *) echo " " ;;
- esac
- ;;
- esac
-done
-
-: Ask e-mail of administrator
-$cat <<EOM
-
-If you or somebody else will be maintaining perl at your site, please
-fill in the correct e-mail address here so that they may be contacted
-if necessary. You may enter "none" for no administrator.
-
-EOM
-case "$perladmin" in
-'') dflt="$cf_email";;
-*) dflt="$perladmin";;
-esac
-rp='Perl administrator e-mail address'
-. ./myread
-perladmin="$ans"
-
-: determine whether to use a version number suffix for installed binaries
-echo " "
-$cat <<EOM
-Do you want to use a version number suffix for installed binaries? This
-will install 'perl$version' instead of 'perl', and likewise for other
-binaries like 'perldoc' and 'cpan'. This allows many versions of perl
-to be installed side-by-side. Unless you are a developer, you probably
-do *not* want to do this.
-EOM
-case "$versiononly" in
-"$define"|[Yy]*|true) dflt='y' ;;
-*) dflt='n';
-esac
-rp="Do you want to use a version number suffix for installed binaries?"
-. ./myread
-case "$ans" in
-[yY]*) val="$define";;
-*) val="$undef" ;;
-esac
-set versiononly
-eval $setvar
-
-case "$versiononly" in
-"$define") inc_version_list=''
- inc_version_list_init=0
- ;;
-esac
-
-: figure out how to guarantee perl startup
-: XXX Note that this currently takes advantage of the bug that binexp ignores
-: the Configure -Dinstallprefix setting, which in turn means that under
-: relocatable @INC, initialinstalllocation is what binexp started as.
-case "$startperl" in
-'')
- case "$sharpbang" in
- *!)
- $cat <<EOH
-
-I can use the #! construct to start perl on your system. This will
-make startup of perl scripts faster, but may cause problems if you
-want to share those scripts and perl is not in a standard place
-($initialinstalllocation/perl) on all your platforms. The alternative
-is to force a shell by starting the script with a single ':' character.
-
-EOH
- case "$versiononly" in
- "$define") dflt="$initialinstalllocation/perl$version";;
- *) dflt="$initialinstalllocation/perl";;
- esac
- rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
- . ./myread
- case "$ans" in
- none) startperl=": # use perl";;
- *) startperl="#!$ans"
- if $test 30 -lt `echo "$ans" | wc -c`; then
- $cat >&4 <<EOM
-
-WARNING: Some systems limit the #! command to 32 characters.
-If you experience difficulty running Perl scripts with #!, try
-installing Perl in a directory with a shorter pathname.
-
-EOM
- fi ;;
- esac
- ;;
- *) startperl=": # use perl"
- ;;
- esac
- ;;
-esac
-echo "I'll use $startperl to start perl scripts."
-
-: figure best path for perl in scripts
-case "$perlpath" in
-'')
- case "$versiononly" in
- "$define") perlpath="$initialinstalllocation/perl$version";;
- *) perlpath="$initialinstalllocation/perl";;
- esac
- case "$startperl" in
- *!*) ;;
- *)
- $cat <<EOH
-
-I will use the "eval 'exec'" idiom to start Perl on your system.
-I can use the full path of your Perl binary for this purpose, but
-doing so may cause problems if you want to share those scripts and
-Perl is not always in a standard place ($initialinstalllocation/perl).
-
-EOH
- dflt="$initialinstalllocation/perl"
- rp="What path shall I use in \"eval 'exec'\"?"
- . ./myread
- perlpath="$ans"
- ;;
- esac
- ;;
-esac
-case "$startperl" in
-*!*) ;;
-*) echo "I'll use $perlpath in \"eval 'exec'\"" ;;
-esac
-
-: determine where public executable scripts go
-set scriptdir scriptdir
-eval $prefixit
-case "$scriptdir" in
-'')
- dflt="$bin"
- : guess some guesses
- $test -d /usr/share/scripts && dflt=/usr/share/scripts
- $test -d /usr/share/bin && dflt=/usr/share/bin
- $test -d /usr/local/script && dflt=/usr/local/script
- $test -d /usr/local/scripts && dflt=/usr/local/scripts
- $test -d $prefixexp/script && dflt=$prefixexp/script
- set dflt
- eval $prefixup
- ;;
-*) dflt="$scriptdir"
- ;;
-esac
-$cat <<EOM
-
-Some installations have a separate directory just for executable scripts so
-that they can mount it across multiple architectures but keep the scripts in
-one spot. You might, for example, have a subdirectory of /usr/share for this.
-Or you might just lump your scripts in with all your other executables.
-
-EOM
-fn=d~
-rp='Where do you keep publicly executable scripts?'
-. ./getfile
-if $test "X$ansexp" != "X$scriptdirexp"; then
- installscript=''
-fi
-installscriptdir=''
-prefixvar=scriptdir
-. ./setprefixvar
-: A little fix up for an irregularly named variable.
-installscript="$installscriptdir"
-
-: determine where add-on public executables go
-case "$sitebin" in
-'') dflt=$siteprefix/bin ;;
-*) dflt=$sitebin ;;
-esac
-fn=d~
-rp='Pathname where the add-on public executables should be installed?'
-. ./getfile
-prefixvar=sitebin
-. ./setprefixvar
-
-: determine where add-on html pages go
-: There is no standard location, so try to copy the previously-selected
-: directory structure for the core html pages.
-case "$sitehtml1dir" in
-'') dflt=`echo "$html1dir" | $sed "s#^$prefix#$siteprefix#"` ;;
-*) dflt=$sitehtml1dir ;;
-esac
-case "$dflt" in
-''|' ') dflt=none ;;
-esac
-fn=dn+~
-rp='Pathname where the site-specific html pages should be installed?'
-. ./getfile
-prefixvar=sitehtml1dir
-. ./setprefixvar
-
-: determine where add-on library html pages go
-: There is no standard location, so try to copy the previously-selected
-: directory structure for the core html pages.
-case "$sitehtml3dir" in
-'') dflt=`echo "$html3dir" | $sed "s#^$prefix#$siteprefix#"` ;;
-*) dflt=$sitehtml3dir ;;
-esac
-case "$dflt" in
-''|' ') dflt=none ;;
-esac
-fn=dn+~
-rp='Pathname where the site-specific library html pages should be installed?'
-. ./getfile
-prefixvar=sitehtml3dir
-. ./setprefixvar
-
-: determine where add-on manual pages go
-case "$siteman1dir" in
-'') dflt=`echo $man1dir | $sed "s#^$prefix#$siteprefix#"` ;;
-*) dflt=$siteman1dir ;;
-esac
-case "$dflt" in
-''|' ') dflt=none ;;
-esac
-fn=dn+~
-rp='Pathname where the site-specific manual pages should be installed?'
-. ./getfile
-prefixvar=siteman1dir
-. ./setprefixvar
-
-: determine where add-on library man pages go
-case "$siteman3dir" in
-'') dflt=`echo $man3dir | $sed "s#^$prefix#$siteprefix#"` ;;
-*) dflt=$siteman3dir ;;
-esac
-case "$dflt" in
-''|' ') dflt=none ;;
-esac
-fn=dn+~
-rp='Pathname where the site-specific library manual pages should be installed?'
-. ./getfile
-prefixvar=siteman3dir
-. ./setprefixvar
-
-: determine where add-on public executable scripts go
-case "$sitescript" in
-'') dflt=$siteprefix/script
- $test -d $dflt || dflt=$sitebin ;;
-*) dflt="$sitescript" ;;
-esac
-fn=d~+
-rp='Pathname where add-on public executable scripts should be installed?'
-. ./getfile
-prefixvar=sitescript
-. ./setprefixvar
-
-: see if backtrace exists
-set backtrace d_backtrace
-eval $inlibc
-
-: Check if C backtrace is actually supported.
-case "$usecbacktrace" in
- "") usecbacktrace=$undef ;;
- [yY]*|true|$define)
- case "$d_backtrace" in
- [yY]*|true|$define)
- ;;
- *)
- echo "This system does not support backtrace" >&4
- usecbacktrace=$undef
- ;;
- esac
- ;;
- esac
-
-: Check if faststdio is requested and available
-case "$usefaststdio" in
-$define|true|[yY]*|'')
- xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
- case "$xversion" in
- [68]) dflt='y' ;;
- *) dflt='n' ;;
- esac
- ;;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to use 'fast stdio', which means using the stdio
-library but also directly manipulating the stdio buffers to enable
-faster I/O. Using stdio is better for backward compatibility (especially
-for Perl extensions), but on the other hand since Perl 5.8 the 'perlio'
-interface has been preferred instead of stdio.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Use the "fast stdio" if available?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set usefaststdio
-eval $setvar
-
-: define an is-a-typedef? function
-typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
- $rm -f temp.c;
- for inc in $inclist; do
- echo "#include <$inc>" >>temp.c;
- done;
- echo "#ifdef $type" >> temp.c;
- echo "printf(\"We have $type\");" >> temp.c;
- echo "#endif" >> temp.c;
- $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- if $contains $type temp.E >/dev/null 2>&1; then
- eval "$var=\$type";
- else
- eval "$var=\$def";
- fi;
- $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define an is-a-typedef? function that prompts if the type is not available.
-typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
- $rm -f temp.c;
- for inc in $inclist; do
- echo "#include <$inc>" >>temp.c;
- done;
- echo "#ifdef $type" >> temp.c;
- echo "printf(\"We have $type\");" >> temp.c;
- echo "#endif" >> temp.c;
- $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- echo " " ;
- echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
- if $contains $type temp.E >/dev/null 2>&1; then
- echo "$type found." >&4;
- eval "$var=\$type";
- else
- echo "$type NOT found." >&4;
- dflt="$def";
- . ./myread ;
- eval "$var=\$ans";
- fi;
- $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: see what type lseek is declared as in the kernel
-rp="What is the type used for lseek's offset on this system?"
-set off_t lseektype long stdio.h sys/types.h
-eval $typedef_ask
-
-echo " "
-echo "Checking to see how big your file offsets are..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof($lseektype));
- return(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- lseeksize=`$run ./try`
- echo "Your file offsets are $lseeksize bytes long."
-else
- dflt=$longsize
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of your file offsets (in bytes)?"
- . ./myread
- lseeksize="$ans"
-fi
-$rm_try
-
-: see what type file positions are declared as in the library
-rp="What is the type for file position used by fsetpos()?"
-set fpos_t fpostype long stdio.h sys/types.h
-eval $typedef_ask
-
-: Check size for Fpos_t
-echo " "
-case "$fpostype" in
-*_t) zzz="$fpostype" ;;
-*) zzz="fpos_t" ;;
-esac
-echo "Checking the size of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- printf("%d\n", (int)sizeof($fpostype));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- yyy=`$run ./try`
- case "$yyy" in
- '') fpossize=4
- echo "(I can't execute the test program--guessing $fpossize.)" >&4
- ;;
- *) fpossize=$yyy
- echo "Your $zzz is $fpossize bytes long."
- ;;
- esac
-else
- dflt="$longsize"
- echo " " >&4
- echo "(I can't compile the test program. Guessing...)" >&4
- rp="What is the size of your file positions (in bytes)?"
- . ./myread
- fpossize="$ans"
-fi
-
-: Check for large file support
-# Backward compatibility (uselfs is deprecated).
-case "$uselfs" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
-EOM
- uselargefiles="$define"
- ;;
-esac
-
-case "$lseeksize:$fpossize" in
-8:8) cat <<EOM
-
-You can have files larger than 2 gigabytes.
-EOM
- val="$define" ;;
-*) case "$uselargefiles" in
- "$undef"|false|[nN]*) dflt='n' ;;
- *) dflt='y' ;;
- esac
- cat <<EOM
-
-Perl can be built to understand large files (files larger than 2 gigabytes)
-on some systems. To do so, Configure can be run with -Duselargefiles.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
- rp='Try to understand large files, if available?'
- . ./myread
- case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
- esac
- ;;
-esac
-set uselargefiles
-eval $setvar
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that a large files perl is to be built,
-: we may need to set or change some other defaults.
-if $test -f uselargefiles.cbu; then
- echo "Your platform has some specific hints regarding large file builds, using them..."
- . ./uselargefiles.cbu
-fi
-case "$uselargefiles" in
-"$define")
- if $test -f uselargefiles.cbu; then
- echo " "
- echo "Rechecking to see how big your file offsets are..." >&4
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof($lseektype));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- lseeksize=`$run ./try`
- $echo "Your file offsets are now $lseeksize bytes long."
- else
- dflt="$lseeksize"
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of your file offsets (in bytes)?"
- . ./myread
- lseeksize="$ans"
- fi
- case "$fpostype" in
- *_t) zzz="$fpostype" ;;
- *) zzz="fpos_t" ;;
- esac
- $echo $n "Rechecking the size of $zzz...$c" >&4
- $cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- printf("%d\n", (int)sizeof($fpostype));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- yyy=`$run ./try`
- dflt="$lseeksize"
- case "$yyy" in
- '') echo " "
- echo "(I can't execute the test program--guessing $fpossize.)" >&4
- ;;
- *) fpossize=$yyy
- echo " $fpossize bytes." >&4
- ;;
- esac
- else
- dflt="$fpossize"
- echo " "
- echo "(I can't compile the test program. Guessing...)" >&4
- rp="What is the size of your file positions (in bytes)?"
- . ./myread
- fpossize="$ans"
- fi
- $rm_try
- fi
- ;;
-esac
-
-: Check if we want perlio
-useperlio="$define"
-
-: Set the vendorbin variables
-case "$vendorprefix" in
-'') d_vendorbin="$undef"
- vendorbin=''
- vendorbinexp=''
- ;;
-*) d_vendorbin="$define"
- : determine where vendor-supplied executables go.
- case "$vendorbin" in
- '') dflt=$vendorprefix/bin ;;
- *) dflt="$vendorbin" ;;
- esac
- fn=d~+
- rp='Pathname for the vendor-supplied executables directory?'
- . ./getfile
- vendorbin="$ans"
- vendorbinexp="$ansexp"
- ;;
-esac
-prefixvar=vendorbin
-. ./installprefix
-
-: Set the vendorhtml1dir variables
-case "$vendorprefix" in
-'') vendorhtml1dir=''
- vendorhtml1direxp=''
- ;;
-*) : determine where vendor-supplied html pages go.
- : There is no standard location, so try to copy the previously-selected
- : directory structure for the core html pages.
- : XXX Better default suggestions would be welcome.
- case "$vendorhtml1dir" in
- '') dflt=`echo "$html1dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
- *) dflt=$vendorhtml1dir ;;
- esac
- case "$dflt" in
- ''|' ') dflt=none ;;
- esac
- fn=dn+~
- rp='Pathname for the vendor-supplied html pages?'
- . ./getfile
- vendorhtml1dir="$ans"
- vendorhtml1direxp="$ansexp"
- ;;
-esac
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$vendorhtml1dir" = "X" && vendorhtml1dir=' '
-prefixvar=vendorhtml1dir
-. ./installprefix
-
-: Set the vendorhtml3dir variables
-case "$vendorprefix" in
-'') vendorhtml3dir=''
- vendorhtml3direxp=''
- ;;
-*) : determine where vendor-supplied module html pages go.
- : There is no standard location, so try to copy the previously-selected
- : directory structure for the core html pages.
- : XXX Better default suggestions would be welcome.
- case "$vendorhtml3dir" in
- '') dflt=`echo "$html3dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
- *) dflt=$vendorhtml3dir ;;
- esac
- case "$dflt" in
- ''|' ') dflt=none ;;
- esac
- fn=dn+~
- rp='Pathname for the vendor-supplied html pages?'
- . ./getfile
- vendorhtml3dir="$ans"
- vendorhtml3direxp="$ansexp"
- ;;
-esac
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$vendorhtml3dir" = "X" && vendorhtml3dir=' '
-prefixvar=vendorhtml3dir
-. ./installprefix
-
-: Set the vendorman1dir variables
-case "$vendorprefix" in
-'') vendorman1dir=''
- vendorman1direxp=''
- ;;
-*) : determine where vendor-supplied manual pages go.
- case "$vendorman1dir" in
- '') dflt=`echo "$man1dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
- *) dflt=$vendorman1dir ;;
- esac
- case "$dflt" in
- ''|' ') dflt=none ;;
- esac
- fn=nd~+
- rp='Pathname for the vendor-supplied manual section 1 pages?'
- . ./getfile
- vendorman1dir="$ans"
- vendorman1direxp="$ansexp"
- ;;
-esac
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$vendorman1dir" = "X" && vendorman1dir=' '
-prefixvar=vendorman1dir
-. ./installprefix
-
-: Set the vendorman3dir variables
-case "$vendorprefix" in
-'') vendorman3dir=''
- vendorman3direxp=''
- ;;
-*) : determine where vendor-supplied module manual pages go.
- case "$vendorman3dir" in
- '') dflt=`echo "$man3dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
- *) dflt=$vendorman3dir ;;
- esac
- case "$dflt" in
- ''|' ') dflt=none ;;
- esac
- fn=nd~+
- rp='Pathname for the vendor-supplied manual section 3 pages?'
- . ./getfile
- vendorman3dir="$ans"
- vendorman3direxp="$ansexp"
- ;;
-esac
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$vendorman3dir" = "X" && vendorman3dir=' '
-prefixvar=vendorman3dir
-. ./installprefix
-
-: Set the vendorscript variables
-case "$vendorprefix" in
-'') d_vendorscript="$undef"
- vendorscript=''
- vendorscriptexp=''
- ;;
-*) d_vendorscript="$define"
- : determine where vendor-supplied scripts go.
- case "$vendorscript" in
- '') dflt=$vendorprefix/script
- $test -d $dflt || dflt=$vendorbin ;;
- *) dflt="$vendorscript" ;;
- esac
- $cat <<EOM
-
-The installation process will create a directory for
-vendor-supplied scripts.
-
-EOM
- fn=d~+
- rp='Pathname for the vendor-supplied scripts directory?'
- . ./getfile
- vendorscript="$ans"
- vendorscriptexp="$ansexp"
- ;;
-esac
-prefixvar=vendorscript
-. ./installprefix
-
-: see if qgcvt exists
-set qgcvt d_qgcvt
-eval $inlibc
-
-: Check what kind of doubles your system has
-$echo "Checking the kind of doubles you have..." >&4
-$cat >try.c <<EOP
-#$i_stdlib I_STDLIB
-#define DOUBLESIZE $doublesize
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-static const double d = -0.1;
-int main() {
- unsigned const char* b = (unsigned const char*)(&d);
-#if DOUBLESIZE == 4
- if (b[0] == 0xCD && b[3] == 0xBD) {
- /* IEEE 754 32-bit little-endian */
- printf("1\n");
- exit(0);
- }
- if (b[0] == 0xBD && b[3] == 0xCD) {
- /* IEEE 754 32-bit big-endian */
- printf("2\n");
- exit(0);
- }
- if (b[0] == 0xCC && b[3] == 0xCC) {
- /* VAX format F, 32-bit PDP-style mixed endian. */
- printf("9\n");
- exit(0);
- }
- if (b[0] == 0xC0 && b[3] == 0x9A) {
- /* IBM single 32-bit */
- printf("12\n");
- exit(0);
- }
-#endif
-#if DOUBLESIZE == 8
- if (b[0] == 0x9A && b[7] == 0xBF) {
- /* IEEE 754 64-bit little-endian */
- printf("3\n");
- exit(0);
- }
- if (b[0] == 0xBF && b[7] == 0x9A) {
- /* IEEE 754 64-bit big-endian */
- printf("4\n");
- exit(0);
- }
- if (b[0] == 0x99 && b[3] == 0xBF && b[4] == 0x9A && b[7] == 0x99) {
- /* ARM mixed endian: two little-endian 32-bit floats, in big endian order:
- * 4 5 6 7 0 1 2 3 (MSB = 7, LSB = 0)
- * 99 99 b9 bf 9a 99 99 99 */
- printf("7\n");
- exit(0);
- }
- if (b[0] == 0x99 && b[3] == 0x9A && b[4] == 0xBF && b[7] == 0x99) {
- /* The opposite of case 7, mixed endian: two big-endian 32-bit floats,
- * in little endian order: 3 2 1 0 7 6 5 4 (MSB = 7, LSB = 0)
- * 99 99 99 9a bf b9 99 99 */
- printf("8\n");
- exit(0);
- }
- if (b[0] == 0xCC && b[7] == 0xCC) {
- /* VAX format D, 64-bit PDP-style mixed endian. */
- printf("10\n");
- exit(0);
- }
- if (b[0] == 0xD9 && b[7] == 0x99) {
- /* VAX format G, 64-bit PDP-style mixed endian. */
- printf("11\n");
- exit(0);
- }
- if (b[0] == 0xC0 && b[7] == 0x9A) {
- /* IBM double 64-bit */
- printf("13\n");
- exit(0);
- }
- if (b[0] == 0xBF && b[7] == 0xCD) {
- /* CRAY single 64-bit */
- printf("14\n");
- exit(0);
- }
-#endif
-#if DOUBLESIZE == 16
- if (b[0] == 0x9A && b[15] == 0xBF) {
- /* IEEE 754 128-bit little-endian */
- printf("5\n");
- exit(0);
- }
- if (b[0] == 0xBF && b[15] == 0x9A) {
- /* IEEE 754 128-bit big-endian */
- printf("6\n");
- exit(0);
- }
-#endif
- /* Then there are old mainframe/miniframe formats like IBM and CRAY.
- * Whether those environments can still build Perl is debatable. */
- printf("-1\n"); /* unknown */
- exit(0);
-}
-EOP
-set try
-if eval $compile; then
- doublekind=`$run ./try`
-else
- doublekind=-1
-fi
-case "$doublekind" in
-1) echo "You have IEEE 754 32-bit little endian doubles." >&4 ;;
-2) echo "You have IEEE 754 32-bit big endian doubles." >&4 ;;
-3) echo "You have IEEE 754 64-bit little endian doubles." >&4 ;;
-4) echo "You have IEEE 754 64-bit big endian doubles." >&4 ;;
-5) echo "You have IEEE 754 128-bit little endian doubles." >&4 ;;
-6) echo "You have IEEE 754 128-bit big endian doubles." >&4 ;;
-7) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit LEs in BE)." >&4 ;;
-8) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit BEs in LE)." >&4 ;;
-9) echo "You have VAX format F 32-bit PDP-style mixed endian doubles." >&4 ;;
-10) echo "You have VAX format D 64-bit PDP-style mixed endian doubles." >&4 ;;
-11) echo "You have VAX format G 64-bit PDP-style mixed endian doubles." >&4 ;;
-12) echo "You have IBM short 32-bit doubles." >&4 ;;
-13) echo "You have IBM long 64-bit doubles." >&4 ;;
-14) echo "You have Cray single 64-bit doubles." >&4 ;;
-*) echo "Cannot figure out your double. You Cyber, or something?" >&4 ;;
-esac
-d_double_style_ieee=$undef
-d_double_style_vax=$undef
-d_double_style_ibm=$undef
-d_double_style_cray=$undef
-case "$doublekind" in
-1|2|3|4|5|6|7|8) d_double_style_ieee=$define ;;
-9|10|11) d_double_style_vax=$define ;;
-12|13) d_double_style_ibm=$define ;;
-14) d_double_style_cray=$define ;;
-esac
-case "$d_double_style_ieee" in
-$define)
- d_double_has_inf=$define
- d_double_has_nan=$define
- d_double_has_negative_zero=$define
- d_double_has_subnormals=$define
- ;;
-*)
- d_double_has_inf=$undef
- d_double_has_nan=$undef
- d_double_has_negative_zero=$undef
- d_double_has_subnormals=$undef
- ;;
-esac
-$rm_try
-
-: Check print/scan long double stuff
-echo " "
-
-if $test X"$d_longdbl" = X"$define"; then
-
-echo "Checking how to print long doubles..." >&4
-
-if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- double d = 123.456;
- printf("%.3f\n", d);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
- sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
- echo "We will use %f."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRIfldbl" = X; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- long double d = 123.456;
- printf("%.3Lf\n", d);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
- sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
- echo "We will use %Lf."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRIfldbl" = X; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- long double d = 123.456;
- printf("%.3llf\n", d);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
- sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
- echo "We will use %llf."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRIfldbl" = X; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- long double d = 123.456;
- printf("%.3lf\n", d);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
- sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
- echo "We will use %lf."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRIfldbl" = X; then
- echo "Cannot figure out how to print long doubles." >&4
-else
- sSCNfldbl=$sPRIfldbl # expect consistency
-fi
-
-$rm_try
-
-fi # d_longdbl
-
-case "$sPRIfldbl" in
-'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
- d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
- d_SCNfldbl="$undef";
- ;;
-*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
- d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
- d_SCNfldbl="$define";
- ;;
-esac
-
-: Before committing on uselongdouble, see whether that looks sane.
-if $test "$uselongdouble" = "$define"; then
- message=""
- echo " "
- echo "Checking if your long double math functions work right..." >&4
- $cat > try.c <<EOF
-#include <math.h>
-#include <stdio.h>
-int main() {
- printf("%"$sPRIgldbl"\n", sqrtl(logl(expl(cosl(sinl(0.0L))))+powl(2.0L, 3.0L)));
-}
-EOF
- case "$osname:$gccversion" in
- aix:) saveccflags="$ccflags"
- ccflags="$ccflags -qlongdouble" ;; # to avoid core dump
- esac
- set try
- if eval $compile_ok; then
- yyy=`$run ./try`
- fi
- case "$yyy" in
- 3) echo "Your long double math functions are working correctly." >&4 ;;
- *) echo "Your long double math functions are broken, not using long doubles." >&4
- uselongdouble=$undef
- ;;
- esac
- $rm_try
- case "$osname:$gccversion" in
- aix:) ccflags="$saveccflags" ;; # restore
- esac
-fi
-
-: Check how to convert floats to strings.
-
-if test "X$d_Gconvert" = X; then
-
-echo " "
-echo "Checking for an efficient way to convert floats to strings."
-echo " " > try.c
-case "$uselongdouble" in
-"$define") echo "#define USE_LONG_DOUBLE" >>try.c ;;
-esac
-case "$d_longdbl" in
-"$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;;
-esac
-case "$d_PRIgldbl" in
-"$define") echo "#define HAS_PRIgldbl" >>try.c ;;
-esac
-$cat >>try.c <<EOP
-#ifdef TRY_gconvert
-#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
-const char *myname = "gconvert";
-#endif
-#ifdef TRY_gcvt
-#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
-const char *myname = "gcvt";
-#endif
-#ifdef TRY_qgcvt
-#define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
-const char *myname = "qgcvt";
-#define DOUBLETYPE long double
-#endif
-#ifdef TRY_sprintf
-#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-#ifdef HAS_PRIgldbl
-#define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x))
-#else
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(double)(x))
-#endif
-#else
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
-#endif
-const char *myname = "sprintf";
-#endif
-
-#ifndef DOUBLETYPE
-#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-#define DOUBLETYPE long double
-#else
-#define DOUBLETYPE double
-#endif
-#endif
-
-#include <stdio.h>
-
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <string.h>
-
-void checkit(const char *expect, char *got)
-{
- if (strcmp(expect, got)) {
- printf("%s oddity: Expected %s, got %s\n",
- myname, expect, got);
- exit(1);
- }
-}
-
-void lencheck(int expect, int got)
-{
- if (expect != got) {
- printf("%s length mismatch: Expected %d, got %d\n",
- myname, expect, got);
- exit(1);
- }
-}
-
-int main()
-{
- char buf[64];
- buf[63] = '\0';
-
- /* This must be 1st test on (which?) platform */
- /* Alan Burlison <AlanBurlsin@unn.unisys.com> */
- Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
- checkit("0.1", buf);
-
- Gconvert((DOUBLETYPE)0.01, 8, 0, buf);
- checkit("0.01", buf);
-
- Gconvert((DOUBLETYPE)0.001, 8, 0, buf);
- checkit("0.001", buf);
-
- Gconvert((DOUBLETYPE)0.0001, 8, 0, buf);
- checkit("0.0001", buf);
-
- Gconvert((DOUBLETYPE)0.00009, 8, 0, buf);
- if (strlen(buf) > 5)
- checkit("9e-005", buf); /* for Microsoft ?? */
- else
- checkit("9e-05", buf);
-
- Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
- checkit("1", buf);
-
- Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
- checkit("1.1", buf);
-
- Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
- checkit("1.01", buf);
-
- Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
- checkit("1.001", buf);
-
- Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
- checkit("1.0001", buf);
-
- Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
- checkit("1.00001", buf);
-
- Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
- checkit("1.000001", buf);
-
- Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
- checkit("0", buf);
-
- Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
- checkit("-1", buf);
-
- /* Some Linux gcvt's give 1.e+5 here. */
- Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
- checkit("100000", buf);
-
- /* Some Linux gcvt's give -1.e+5 here. */
- Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
- checkit("-100000", buf);
-
- Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
- checkit("123.456", buf);
-
- /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
- Gconvert((DOUBLETYPE)1e34, 8, 0, buf);
- /* 34 should be enough to scare even long double
- * places into using the e notation. */
- if (strlen(buf) > 5)
- checkit("1e+034", buf); /* for Microsoft */
- else
- checkit("1e+34", buf);
-
- /* Test for an Ubuntu/Debian bug in gcvt and qgcvt. See: *
- * https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1899553 */
-
- Gconvert((DOUBLETYPE)0.4, 53, 0, buf);
- lencheck(55, (int)strlen(buf));
-
- /* For Perl, if you add additional tests here, also add them to
- * t/base/num.t for benefit of platforms not using Configure or
- * overriding d_Gconvert */
-
- exit(0);
-}
-EOP
-: first add preferred functions to our list
-xxx_list=""
-for xxx_convert in $gconvert_preference; do
- case $xxx_convert in
- gcvt|gconvert|sprintf) xxx_list="$xxx_list $xxx_convert" ;;
- *) echo "Discarding unrecognized gconvert_preference $xxx_convert" >&4 ;;
- esac
-done
-: then add any others
-for xxx_convert in gconvert gcvt sprintf; do
- case "$xxx_list" in
- *$xxx_convert*) ;;
- *) xxx_list="$xxx_list $xxx_convert" ;;
- esac
-done
-
-case "$d_longdbl$uselongdouble" in
-"$define$define")
- : again, add preferred functions to our list first
- xxx_ld_list=""
- for xxx_convert in $gconvert_ld_preference; do
- case $xxx_convert in
- qgcvt|gcvt|gconvert|sprintf) xxx_ld_list="$xxx_ld_list $xxx_convert" ;;
- *) echo "Discarding unrecognized gconvert_ld_preference $xxx_convert" ;;
- esac
- done
- : then add qgcvt, sprintf--then, in xxx_list order, gconvert and gcvt
- for xxx_convert in qgcvt sprintf $xxx_list; do
- case "$xxx_ld_list" in
- $xxx_convert*|*" $xxx_convert"*) ;;
- *) xxx_ld_list="$xxx_ld_list $xxx_convert" ;;
- esac
- done
- : if sprintf cannot do long doubles, move it to the end
- if test "$d_PRIgldbl" != "$define"; then
- xxx_ld_list="`echo $xxx_ld_list|sed s/sprintf//` sprintf"
- fi
- : if no qgcvt, remove it
- if test "$d_qgcvt" != "$define"; then
- xxx_ld_list="`echo $xxx_ld_list|sed s/qgcvt//`"
- fi
- : use the ld_list
- xxx_list="$xxx_ld_list"
- ;;
-esac
-
-for xxx_convert in $xxx_list; do
- echo "Trying $xxx_convert..."
- $rm -f try try$_o core
- set try -DTRY_$xxx_convert
- if eval $compile; then
- echo "$xxx_convert() found." >&4
- if $run ./try; then
- echo "I'll use $xxx_convert to convert floats into a string." >&4
- break;
- else
- echo "...But $xxx_convert didn't work as I expected."
- xxx_convert=''
- fi
- else
- echo "$xxx_convert NOT found." >&4
- xxx_convert=''
- fi
-done
-
-if test X$xxx_convert = X; then
- echo "*** WHOA THERE!!! ***" >&4
- echo "None of ($xxx_list) seemed to work properly. I'll use sprintf." >&4
- xxx_convert=sprintf
-fi
-
-case "$xxx_convert" in
-gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
-gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
-qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
-*) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
- "$define$define$define")
- d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;;
- "$define$define$undef")
- d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;;
- *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
- esac
- ;;
-esac
-
-fi
-$rm_try
-
-: see if _fwalk exists
-set fwalk d__fwalk
-eval $inlibc
-
-: see if accept4 exists
-set accept4 d_accept4
-eval $inlibc
-
-: Initialize h_fcntl
-h_fcntl=false
-
-: Initialize h_sysfile
-h_sysfile=false
-
-: access call always available on UNIX
-set access d_access
-eval $inlibc
-
-: locate the flags for 'access()'
-case "$d_access" in
-"$define")
- echo " "
- $cat >access.c <<EOCP
-#include <sys/types.h>
-#ifdef I_FCNTL
-#include <fcntl.h>
-#endif
-#ifdef I_SYS_FILE
-#include <sys/file.h>
-#endif
-#ifdef I_UNISTD
-#include <unistd.h>
-#endif
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- exit(R_OK);
-}
-EOCP
- : check sys/file.h first, no particular reason here
- if $test `./findhdr sys/file.h` && \
- $cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then
- h_sysfile=true;
- echo "<sys/file.h> defines the *_OK access constants." >&4
- elif $test `./findhdr fcntl.h` && \
- $cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then
- h_fcntl=true;
- echo "<fcntl.h> defines the *_OK access constants." >&4
- elif $test `./findhdr unistd.h` && \
- $cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then
- echo "<unistd.h> defines the *_OK access constants." >&4
- else
- echo "I can't find the four *_OK access constants--I'll use mine." >&4
- fi
- ;;
-esac
-$rm -f access*
-
-: see if accessx exists
-set accessx d_accessx
-eval $inlibc
-
-: see if acosh exists
-set acosh d_acosh
-eval $inlibc
-
-: see if aintl exists
-set aintl d_aintl
-eval $inlibc
-
-: see if alarm exists
-set alarm d_alarm
-eval $inlibc
-
-: see if 64bit time functions exists
-
-set ctime64 d_ctime64
-eval $inlibc
-
-set localtime64 d_localtime64
-eval $inlibc
-
-set gmtime64 d_gmtime64
-eval $inlibc
-
-set mktime64 d_mktime64
-eval $inlibc
-
-set difftime64 d_difftime64
-eval $inlibc
-
-set asctime64 d_asctime64
-eval $inlibc
-
-: see if POSIX threads are available
-set pthread.h i_pthread
-eval $inhdr
-
-: define a function to check prototypes
-$cat > protochk <<EOSH
-$startsh
-cc="$cc"
-optimize="$optimize"
-ccflags="$ccflags"
-define="$define"
-rm_try="$rm_try"
-usethreads=$usethreads
-i_pthread=$i_pthread
-pthread_h_first=$pthread_h_first
-EOSH
-
-$cat >> protochk <<'EOSH'
-
-$rm_try
-foo="$1"
-shift
-while test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>" >> try.c ;;
- literal) echo "$2" >> try.c ;;
- esac
- # Extra magic for the benefit of systems that need pthread.h
- # to be included early to correctly detect threadsafe functions.
- # Such functions must guarantee themselves, though, that the usethreads
- # and i_pthread have been defined, before calling protochk.
- if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then
- echo "#include <pthread.h>" >> try.c
- pthread_h_done=yes
- fi
- shift 2
-done
-cat >> try.c <<'EOCP'
-#define _(args) args
-EOCP
-echo "$foo" >> try.c
-echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
-$cc $optimize $ccflags -c try.c > /dev/null 2>&1
-status=$?
-$rm_try
-exit $status
-EOSH
-chmod +x protochk
-$eunicefix protochk
-
-: Define hasproto macro for Configure internal use
-hasproto='varname=$1; func=$2; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- literal) echo "$2" ;;
- esac ;
- shift 2;
-done > try.c;
-$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
-if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
- echo "$func() prototype found.";
- val="$define";
-else
- echo "$func() prototype NOT found.";
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm_try tryout.c'
-
-: see if sys/types.h has to be included
-set sys/types.h i_systypes
-eval $inhdr
-
-: see if sys/select.h has to be included
-set sys/select.h i_sysselct
-eval $inhdr
-
-: Define hasfield macro for Configure internal use
-hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
-set try;
-if eval $compile; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm_try'
-
-: see if we should include sys/time.h
-echo " "
-i_time='define'
-if test "X$timeincl" = X; then
- echo "Testing to see if we should include <sys/time.h>." >&4
- $echo $n "I'm now running the test program...$c"
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <time.h>
-#ifdef I_SYSTIME
-#ifdef SYSTIMEKERNEL
-#define KERNEL
-#endif
-#include <sys/time.h>
-#endif
-#ifdef I_SYSSELECT
-#include <sys/select.h>
-#endif
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- struct tm foo;
-#ifdef S_TIMEVAL
- struct timeval bar;
-#endif
-#ifdef S_TIMEZONE
- struct timezone tzp;
-#endif
- if (foo.tm_sec == foo.tm_sec)
- exit(0);
-#ifdef S_TIMEVAL
- if (bar.tv_sec == bar.tv_sec)
- exit(0);
-#endif
- exit(1);
-}
-EOCP
- flags=''
- for s_timezone in '-DS_TIMEZONE' ''; do
- sysselect=''
- for s_timeval in '-DS_TIMEVAL' ''; do
- for i_systimek in '' '-DSYSTIMEKERNEL'; do
- for i_systime in '-DI_SYSTIME' ''; do
- case "$flags" in
- '') $echo $n ".$c"
- set try $i_systime $i_systimek $sysselect $s_timeval $s_timezone
- if eval $compile; then
- set X $i_systime $i_systimek $sysselect $s_timeval
- shift
- flags="$*"
- echo " "
- $echo $n "Succeeded with $flags$c"
- fi
- ;;
- esac
- done
- done
- done
- done
- timeincl=''
- echo " "
- case "$flags" in
- *SYSTIMEKERNEL*) i_systimek="$define"
- timeincl=`./findhdr sys/time.h`
- echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
- *) i_systimek="$undef";;
- esac
- case "$flags" in
- *I_SYSTIME*) i_systime="$define"
- timeincl=`./findhdr sys/time.h`" $timeincl"
- echo "We'll include <sys/time.h>." >&4;;
- *) i_systime="$undef";;
- esac
- $rm_try
-fi
-: see if struct tm knows about tm_zone
-case "$i_systime$i_time" in
-*$define*)
- echo " "
- echo "Checking to see if your struct tm has tm_zone field..." >&4
- set d_tm_tm_zone tm tm_zone $i_systime sys/time.h $i_time time.h
- eval $hasfield
- ;;
-*) val="$undef"
- set d_tm_tm_zone
- eval $setvar
- ;;
-esac
-case "$d_tm_tm_zone" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-: see if struct tm knows about tm_gmtoff
-case "$i_systime$i_time" in
-*$define*)
- echo " "
- echo "Checking to see if your struct tm has tm_gmtoff field..." >&4
- set d_tm_tm_gmtoff tm tm_gmtoff $i_systime sys/time.h $i_time time.h
- eval $hasfield
- ;;
-*) val="$undef"
- set d_tm_tm_gmtoff
- eval $setvar
- ;;
-esac
-case "$d_tm_tm_gmtoff" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-
-: see if asctime_r exists
-set asctime_r d_asctime_r
-eval $inlibc
-case "$d_asctime_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
- case "$d_asctime_r_proto:$usethreads" in
- ":define") d_asctime_r_proto=define
- set d_asctime_r_proto asctime_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_asctime_r_proto" in
- define)
- case "$asctime_r_proto" in
- ''|0) try='char* asctime_r(const struct tm*, char*);'
- ./protochk "$extern_C $try" $hdrs && asctime_r_proto=B_SB ;;
- esac
- case "$asctime_r_proto" in
- ''|0) try='char* asctime_r(const struct tm*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && asctime_r_proto=B_SBI ;;
- esac
- case "$asctime_r_proto" in
- ''|0) try='int asctime_r(const struct tm*, char*);'
- ./protochk "$extern_C $try" $hdrs && asctime_r_proto=I_SB ;;
- esac
- case "$asctime_r_proto" in
- ''|0) try='int asctime_r(const struct tm*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && asctime_r_proto=I_SBI ;;
- esac
- case "$asctime_r_proto" in
- ''|0) d_asctime_r=undef
- asctime_r_proto=0
- echo "Disabling asctime_r, cannot determine prototype." >&4 ;;
- * ) case "$asctime_r_proto" in
- REENTRANT_PROTO*) ;;
- *) asctime_r_proto="REENTRANT_PROTO_$asctime_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "asctime_r has no prototype, not using it." >&4 ;;
- esac
- d_asctime_r=undef
- asctime_r_proto=0
- ;;
- esac
- ;;
-*) asctime_r_proto=0
- ;;
-esac
-
-: see if asinh exists
-set asinh d_asinh
-eval $inlibc
-
-: see if atanh exists
-set atanh d_atanh
-eval $inlibc
-
-: see if atolf exists
-set atolf d_atolf
-eval $inlibc
-
-: see if atoll exists
-set atoll d_atoll
-eval $inlibc
-
-: See if a file contains compiler warnings
-: See if a file contains compiler warnings
-case "$osname" in
- 'aix')
- cat >compiler_warning <<EOSS
-# Sample for aix ('.5' indicates the column number in the line):
-# "op.h", line 203.5: 1506-159 (E) Bit field type specified for op_type
-# Since the word 'warning' isn't present, use a fairly rigorous match of what
-# warning messages look like
-# " o p . h ", line 203 . 5 : 1506 - 159 ( E )
-$grep -E "^\\"[A-Za-z][A-Za-z0-9_]*\.[ch]\\", line [1-9][0-9]*[.][1-9][0-9]*: [1-9][0-9]*-[1-9][0-9]* \([EW][)] " "\$1"
-EOSS
- compiler_warning=./compiler_warning
- chmod +x $compiler_warning
- ;;
- # Maybe a colon after the 'warning' would be appropriate
- *) compiler_warning="$contains -i warning"
- ;;
-esac
-
-: Look for GCC-style attribute format
-case "$d_attribute_format" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((format)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-void my_special_printf(char* pat,...) __attribute__((__format__(__printf__,1,2)));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((format))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((format))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_format" ;;
-esac
-set d_attribute_format
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute format with null format allowed
-case "$d_printf_format_null" in
-'') case "$d_attribute_format" in
- $define)
- echo " "
- echo "Checking whether your compiler allows __printf__ format to be null ..." >&4
-$cat >attrib.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_inttypes I_INTTYPES
-#ifdef I_INTTYPES
-#include <inttypes.h>
-#endif
-#ifndef INTPTR_MAX
-#define intptr_t int
-#endif
-int null_printf (char* pat,...) __attribute__((__format__(__printf__,1,2)));
-int null_printf (char* pat,...) { return (int)(intptr_t)pat; }
-int main () { exit(null_printf(NULL)); }
-EOCP
- if $cc $ccflags -o attrib attrib.c >attrib.out 2>&1 ; then
- : run the executable in case it produces a run-time warning
- if $run ./attrib >>attrib.out 2>&1; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't allow __printf__ format to be null."
- val="$undef"
- else
- echo "Your C compiler allows __printf__ format to be null."
- val="$define"
- fi
- else
- echo "Your C compiler executable failed with __printf__ format null."
- val="$undef"
- fi
- else
- echo "Your C compiler fails with __printf__ format null."
- val="$undef"
- fi
- ;;
- *) val="$undef" ;;
- esac
-;;
-*) val="$d_printf_format_null" ;;
-esac
-set d_printf_format_null
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute malloc
-case "$d_attribute_malloc" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((malloc)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-char *go_get_some_memory( int how_many_bytes ) __attribute__((malloc));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((malloc))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((malloc))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_malloc" ;;
-esac
-set d_attribute_malloc
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute nonnull
-case "$d_attribute_nonnull" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((nonnull(1))) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-void do_something (char *some_pointer,...) __attribute__((nonnull(1)));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((nonnull))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((nonnull))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_nonnull" ;;
-esac
-set d_attribute_nonnull
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute noreturn
-case "$d_attribute_noreturn" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((noreturn)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-void fall_over_dead( void ) __attribute__((noreturn));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((noreturn))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((noreturn))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_noreturn" ;;
-esac
-set d_attribute_noreturn
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute pure
-case "$d_attribute_pure" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((pure)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-int square( int n ) __attribute__((pure));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((pure))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((pure))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_pure" ;;
-esac
-set d_attribute_pure
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute unused
-case "$d_attribute_unused" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((unused)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-int do_something( int dummy __attribute__((unused)), int n );
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((unused))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((unused))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_unused" ;;
-esac
-set d_attribute_unused
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute deprecated
-case "$d_attribute_deprecated" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((deprecated)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-int I_am_deprecated(void) __attribute__((deprecated));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((deprecated))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((deprecated))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_deprecated" ;;
-esac
-set d_attribute_deprecated
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute warn_unused_result
-case "$d_attribute_warn_unused_result" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((warn_unused_result)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-int I_will_not_be_ignored(void) __attribute__((warn_unused_result));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((warn_unused_result))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((warn_unused_result))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_warn_unused_result" ;;
-esac
-set d_attribute_warn_unused_result
-eval $setvar
-$rm -f attrib*
-
-: Look for GCC-style attribute always_inline
-case "$d_attribute_always_inline" in
-'')
-echo " "
-echo "Checking whether your compiler can handle __attribute__((always_inline)) ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-static __inline__ __attribute__((always_inline)) int I_will_always_be_inlined(void);
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
- if $compiler_warning attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support __attribute__((always_inline))."
- val="$undef"
- else
- echo "Your C compiler supports __attribute__((always_inline))."
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand __attribute__ at all."
- val="$undef"
-fi
-;;
-*) val="$d_attribute_always_inline" ;;
-esac
-set d_attribute_always_inline
-eval $setvar
-$rm -f attrib*
-
-: see if getpgrp exists
-set getpgrp d_getpgrp
-eval $inlibc
-
-case "$d_getpgrp" in
-"$define")
- echo " "
- echo "Checking to see which flavor of getpgrp is in use..."
- $cat >try.c <<EOP
-#include <stdio.h>
-#$i_unistd I_UNISTD
-#include <sys/types.h>
-#ifdef I_UNISTD
-# include <unistd.h>
-#endif
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- if (getuid() == 0) {
- printf("(I see you are running Configure as super-user...)\n");
- setuid(1);
- }
-#ifdef TRY_BSD_PGRP
- if (getpgrp(1) == 0)
- exit(0);
-#else
- if (getpgrp() > 0)
- exit(0);
-#endif
- exit(1);
-}
-EOP
- if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
- echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
- val="$define"
- elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
- echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
- val="$undef"
- else
- echo "I can't seem to compile and run the test program."
- if ./usg; then
- xxx="a USG one, i.e. you use getpgrp()."
- else
- # SVR4 systems can appear rather BSD-ish.
- case "$i_unistd" in
- $undef)
- xxx="a BSD one, i.e. you use getpgrp(pid)."
- val="$define"
- ;;
- $define)
- xxx="probably a USG one, i.e. you use getpgrp()."
- val="$undef"
- ;;
- esac
- fi
- echo "Assuming your getpgrp is $xxx" >&4
- fi
- ;;
-*) val="$undef";;
-esac
-set d_bsdgetpgrp
-eval $setvar
-$rm_try
-
-: see if setpgrp exists
-set setpgrp d_setpgrp
-eval $inlibc
-
-case "$d_setpgrp" in
-"$define")
- echo " "
- echo "Checking to see which flavor of setpgrp is in use..."
- $cat >try.c <<EOP
-#include <stdio.h>
-#$i_unistd I_UNISTD
-#include <sys/types.h>
-#ifdef I_UNISTD
-# include <unistd.h>
-#endif
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- if (getuid() == 0) {
- printf("(I see you are running Configure as super-user...)\n");
- setuid(1);
- }
-#ifdef TRY_BSD_PGRP
- if (-1 == setpgrp(1, 1))
- exit(0);
-#else
- if (setpgrp() != -1)
- exit(0);
-#endif
- exit(1);
-}
-EOP
- if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
- echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
- val="$define"
- elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
- echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
- val="$undef"
- else
- echo "(I can't seem to compile and run the test program.)"
- if ./usg; then
- xxx="a USG one, i.e. you use setpgrp()."
- else
- # SVR4 systems can appear rather BSD-ish.
- case "$i_unistd" in
- $undef)
- xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)."
- val="$define"
- ;;
- $define)
- xxx="probably a USG one, i.e. you use setpgrp()."
- val="$undef"
- ;;
- esac
- fi
- echo "Assuming your setpgrp is $xxx" >&4
- fi
- ;;
-*) val="$undef";;
-esac
-set d_bsdsetpgrp
-eval $setvar
-$rm_try
-
-: Look for GCC-style __builtin_add_overflow
-case "$d_builtin_add_overflow" in
-'')
- echo " "
- echo "Checking whether your compiler can handle __builtin_add_overflow ..." >&4
- $cat >try.c <<'EOCP'
-int main(void) {
- const unsigned int uint_max = ~0u;
- int target_int = 0;
- if (__builtin_add_overflow(1, 2, &target_int) || target_int != 3) {
- return 1;
- }
- if (!__builtin_add_overflow((int)(uint_max >> 1), 1, &target_int)) {
- return 1;
- }
- if (!__builtin_add_overflow(uint_max, -1, &target_int)) {
- return 1;
- }
- return 0;
-}
-EOCP
- set try
- if eval $compile && $run ./try; then
- echo "Your C compiler supports __builtin_add_overflow."
- val="$define"
- else
- echo "Your C compiler doesn't seem to understand __builtin_add_overflow."
- val="$undef"
- fi
- ;;
-*) val="$d_builtin_add_overflow" ;;
-esac
-
-set d_builtin_add_overflow
-eval $setvar
-$rm_try
-
-: Look for GCC-style __builtin_sub_overflow
-case "$d_builtin_sub_overflow" in
-'')
- echo " "
- echo "Checking whether your compiler can handle __builtin_sub_overflow ..." >&4
- $cat >try.c <<'EOCP'
-int main(void) {
- const unsigned int uint_max = ~0u;
- int target_int = 0;
- if (__builtin_sub_overflow(1, -2, &target_int) || target_int != 3) {
- return 1;
- }
- if (!__builtin_sub_overflow(-(int)(uint_max >> 1), 2, &target_int)) {
- return 1;
- }
- if (!__builtin_sub_overflow(uint_max, 1, &target_int)) {
- return 1;
- }
- return 0;
-}
-EOCP
- set try
- if eval $compile && $run ./try; then
- echo "Your C compiler supports __builtin_sub_overflow."
- val="$define"
- else
- echo "Your C compiler doesn't seem to understand __builtin_sub_overflow."
- val="$undef"
- fi
- ;;
-*) val="$d_builtin_sub_overflow" ;;
-esac
-
-set d_builtin_sub_overflow
-eval $setvar
-$rm_try
-
-: Look for GCC-style __builtin_mul_overflow
-case "$d_builtin_mul_overflow" in
-'')
- echo " "
- echo "Checking whether your compiler can handle __builtin_mul_overflow ..." >&4
- $cat >try.c <<'EOCP'
-int main(void) {
- const unsigned int uint_max = ~0u;
- int target_int = 0;
- if (__builtin_mul_overflow(2, 3, &target_int) || target_int != 6) {
- return 1;
- }
- if (!__builtin_mul_overflow((int)(uint_max >> 1), 2, &target_int)) {
- return 1;
- }
- if (!__builtin_mul_overflow(uint_max, 1, &target_int)) {
- return 1;
- }
- return 0;
-}
-EOCP
- set try
- if eval $compile && $run ./try; then
- echo "Your C compiler supports __builtin_mul_overflow."
- val="$define"
- else
- echo "Your C compiler doesn't seem to understand __builtin_mul_overflow."
- val="$undef"
- fi
- ;;
-*) val="$d_builtin_mul_overflow" ;;
-esac
-
-set d_builtin_mul_overflow
-eval $setvar
-$rm_try
-
-: Look for GCC-style __builtin_choose_expr
-case "$d_builtin_choose_expr" in
-'')
- echo " "
- echo "Checking whether your compiler can handle __builtin_choose_expr ..." >&4
- $cat >try.c <<'EOCP'
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#define SYRINX(x) __builtin_choose_expr( x, (1056*2), (103*50) )
-
-int main(void) {
- assert( SYRINX(1) == 2112 );
- assert( SYRINX(1) != 5150 );
- assert( SYRINX(0) == 5150 );
- assert( SYRINX(0) != 2112 );
- puts( "All good!" );
- exit(0);
-}
-
-EOCP
- set try
- if eval $compile && $run ./try; then
- echo "Your C compiler supports __builtin_choose_expr."
- val="$define"
- else
- echo "Your C compiler doesn't seem to understand __builtin_choose_expr."
- val="$undef"
- fi
-;;
-*) val="$d_builtin_choose_expr" ;;
-esac
-
-set d_builtin_choose_expr
-eval $setvar
-$rm_try
-
-: Look for GCC-style __builtin_expect
-case "$d_builtin_expect" in
-'')
- echo " "
- echo "Checking whether your compiler can handle __builtin_expect ..." >&4
- $cat >try.c <<'EOCP'
-int main(void) {
- int n = 50;
- if ( __builtin_expect(n, 0) ) n = 1;
- /* Remember shell exit code truth is 0, C truth is non-zero */
- return !(n == 1);
-}
-EOCP
- set try
- if eval $compile && $run ./try; then
- echo "Your C compiler supports __builtin_expect."
- val="$define"
- else
- echo "Your C compiler doesn't seem to understand __builtin_expect."
- val="$undef"
- fi
- ;;
-*) val="$d_builtin_expect" ;;
-esac
-
-set d_builtin_expect
-eval $setvar
-$rm_try
-
-: see if the Compiler supports C99 variadic macros
-echo "Checking for C99 variadic macros." >&4
-$cat >try.c <<EOCP
-#include <stdio.h>
-#include <stdarg.h>
-
-#define foo(buffer, format, ...) sprintf(buffer, format, __VA_ARGS__)
-
-int main() {
- char buf[20];
- foo(buf, "%d %g %.*s", 123, 456.0, (int)3, "789fail");
- puts(buf);
- return 0;
-}
-EOCP
-set try
-if eval $compile && $run ./try 2>&1 >/dev/null; then
- case "`$run ./try`" in
- "123 456 789")
- echo "You have C99 variadic macros." >&4
- d_c99_variadic_macros="$define"
- ;;
- *)
- echo "You don't have functional C99 variadic macros." >&4
- d_c99_variadic_macros="$undef"
- ;;
- esac
-else
- echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4
- d_c99_variadic_macros="$undef"
-fi
-$rm_try
-
-: see if signal is declared as pointer to function returning int or void
-echo " "
-xxx=`./findhdr signal.h`
-$test "$xxx" && $cppstdin $cppminus $cppflags < $xxx >$$.tmp 2>/dev/null
-if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
- echo "You have int (*signal())() instead of void." >&4
- val="$undef"
-elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
- echo "You have void (*signal())()." >&4
- val="$define"
-elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then
- echo "You have int (*signal())() instead of void." >&4
- val="$undef"
-elif $contains 'void.*\*.*sig' $$.tmp >/dev/null 2>&1 ; then
- echo "You have void (*signal())()." >&4
- val="$define"
-else
- case "$d_voidsig" in
- '')
- echo "I can't determine whether signal handler returns void or int..." >&4
- dflt=void
- rp="What type does your signal handler return?"
- . ./myread
- case "$ans" in
- v*) val="$define";;
- *) val="$undef";;
- esac;;
- "$define")
- echo "As you already told me, signal handler returns void." >&4
- val="$define"
- ;;
- *) echo "As you already told me, signal handler returns int." >&4
- val="$undef"
- ;;
- esac
-fi
-set d_voidsig
-eval $setvar
-case "$d_voidsig" in
-"$define") signal_t="void";;
-*) signal_t="int";;
-esac
-$rm -f $$.tmp
-
-: check for ability to cast large floats to 32-bit ints.
-echo " "
-echo 'Checking whether your C compiler can cast large floats to int32.' >&4
-if $test "$intsize" -ge 4; then
- xxx=int
-else
- xxx=long
-fi
-$cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-$signal_t blech(int s) { exit(3); }
-int main()
-{
- $xxx i32;
- double f, g;
- int result = 0;
- char str[16];
- signal(SIGFPE, blech);
-
- /* Don't let compiler optimize the test away. Store the number
- in a writable string for gcc to pass to sscanf under HP-UX.
- */
- sprintf(str, "2147483647");
- sscanf(str, "%lf", &f); /* f = (double) 0x7fffffff; */
- g = 10 * f;
- i32 = ($xxx) g;
-
- /* x86 processors will probably give 0x8000 0000, which is a
- sign change. We don't want that. We want to mimic SPARC
- behavior here, which is to preserve the sign and give
- back 0x7fff ffff.
- */
- if (i32 != ($xxx) f)
- result |= 1;
- exit(result);
-}
-EOCP
-set try
-if eval $compile_ok; then
- $run ./try 2>/dev/null
- yyy=$?
-else
- echo "(I can't seem to compile the test program--assuming it can't)"
- yyy=1
-fi
-case "$yyy" in
-0) val="$define"
- echo "Yup, it can."
- ;;
-*) val="$undef"
- echo "Nope, it can't."
- ;;
-esac
-set d_casti32
-eval $setvar
-$rm_try
-
-: check for ability to cast negative floats to unsigned
-echo " "
-echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
-$cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-$signal_t blech(int s) { exit(7); }
-$signal_t blech_in_list(int s) { exit(4); }
-unsigned long dummy_long(unsigned long p) { return p; }
-unsigned int dummy_int(unsigned int p) { return p; }
-unsigned short dummy_short(unsigned short p) { return p; }
-int main()
-{
- double f;
- unsigned long along;
- unsigned int aint;
- unsigned short ashort;
- int result = 0;
- char str[16];
-
- /* Frustrate gcc-2.7.2's optimizer which failed this test with
- a direct f = -123. assignment. gcc-2.8.0 reportedly
- optimized the whole file away
- */
- /* Store the number in a writable string for gcc to pass to
- sscanf under HP-UX.
- */
- sprintf(str, "-123");
- sscanf(str, "%lf", &f); /* f = -123.; */
-
- signal(SIGFPE, blech);
- along = (unsigned long)f;
- aint = (unsigned int)f;
- ashort = (unsigned short)f;
- if (along != (unsigned long)-123)
- result |= 1;
- if (aint != (unsigned int)-123)
- result |= 1;
- if (ashort != (unsigned short)-123)
- result |= 1;
- sprintf(str, "1073741824.");
- sscanf(str, "%lf", &f); /* f = (double)0x40000000; */
- f = f + f;
- along = 0;
- along = (unsigned long)f;
- if (along != 0x80000000)
- result |= 2;
- f -= 1.;
- along = 0;
- along = (unsigned long)f;
- if (along != 0x7fffffff)
- result |= 1;
- f += 2.;
- along = 0;
- along = (unsigned long)f;
- if (along != 0x80000001)
- result |= 2;
- if (result)
- exit(result);
- signal(SIGFPE, blech_in_list);
- sprintf(str, "123.");
- sscanf(str, "%lf", &f); /* f = 123.; */
- along = dummy_long((unsigned long)f);
- aint = dummy_int((unsigned int)f);
- ashort = dummy_short((unsigned short)f);
- if (along != (unsigned long)123)
- result |= 4;
- if (aint != (unsigned int)123)
- result |= 4;
- if (ashort != (unsigned short)123)
- result |= 4;
- exit(result);
-
-}
-EOCP
-set try
-if eval $compile_ok; then
- $run ./try 2>/dev/null
- castflags=$?
-else
- echo "(I can't seem to compile the test program--assuming it can't)"
- castflags=7
-fi
-case "$castflags" in
-0) val="$define"
- echo "Yup, it can."
- ;;
-*) val="$undef"
- echo "Nope, it can't."
- ;;
-esac
-set d_castneg
-eval $setvar
-$rm_try
-
-: see if cbrt exists
-set cbrt d_cbrt
-eval $inlibc
-
-: see if chown exists
-set chown d_chown
-eval $inlibc
-
-: see if chroot exists
-set chroot d_chroot
-eval $inlibc
-
-: see if chsize exists
-set chsize d_chsize
-eval $inlibc
-
-: see if class exists
-set class d_class
-eval $inlibc
-
-: see if clearenv exists
-set clearenv d_clearenv
-eval $inlibc
-
-: Define hasstruct macro for Configure internal use
-hasstruct='varname=$1; struct=$2; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { struct $struct foo; }" >> try.c;
-set try;
-if eval $compile; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm_try'
-
-: see whether socket exists
-socketlib=''
-sockethdr=''
-echo " "
-$echo $n "Hmm... $c" >&4
-if set socket val -f d_socket; eval $csym; $val; then
- echo "Looks like you have Berkeley networking support." >&4
- d_socket="$define"
- if set setsockopt val -f; eval $csym; $val; then
- d_oldsock="$undef"
- else
- echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
- d_oldsock="$define"
- fi
-else
- if $contains socklib libc.list >/dev/null 2>&1; then
- echo "Looks like you have Berkeley networking support." >&4
- d_socket="$define"
- : we will have to assume that it supports the 4.2 BSD interface
- d_oldsock="$undef"
- else
- echo "You don't have Berkeley networking in libc$_a..." >&4
- if test "X$d_socket" = "X$define"; then
- echo "...but you seem to believe that you have sockets." >&4
- else
- for net in net socket
- do
- if test -f $sysroot/usr/lib/lib$net$_a; then
- ( ($nm $nm_opt $sysroot/usr/lib/lib$net$_a | eval $nm_extract) || \
- $ar t $sysroot/usr/lib/lib$net$_a) 2>/dev/null >> libc.list
- if $contains socket libc.list >/dev/null 2>&1; then
- d_socket="$define"
- socketlib="-l$net"
- case "$net" in
- net)
- echo "...but the Wollongong group seems to have hacked it in." >&4
- sockethdr="-I$sysroot/usr/netinclude"
- ;;
- esac
- echo "Found Berkeley sockets interface in lib$net." >&4
- if $contains setsockopt libc.list >/dev/null 2>&1; then
- d_oldsock="$undef"
- else
- echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
- d_oldsock="$define"
- fi
- break
- fi
- fi
- done
- if test "X$d_socket" != "X$define"; then
- echo "or anywhere else I see." >&4
- d_socket="$undef"
- d_oldsock="$undef"
- fi
- fi
- fi
-fi
-
-: see if socketpair exists
-set socketpair d_sockpair
-eval $inlibc
-
-
-echo "Checking the availability sa_len in the sock struct ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
-struct sockaddr sa;
-return (sa.sa_len);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_sockaddr_sa_len; eval $setvar
-$rm_try
-
-echo "Checking the availability struct sockaddr_in6 ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct sockaddr_in6 sin6;
-return (sin6.sin6_family);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_sockaddr_in6; eval $setvar
-$rm_try
-
-echo "Checking the availability struct sockaddr_storage ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct sockaddr_storage sastor;
-return (sastor.ss_family);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_sockaddr_storage; eval $setvar
-$rm_try
-
-echo "Checking the availability sin6_scope_id in struct sockaddr_in6 ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct sockaddr_in6 sin6;
-return (sin6.sin6_scope_id);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_sin6_scope_id; eval $setvar
-$rm_try
-
-echo "Checking the availability struct ip_mreq ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct ip_mreq mreq;
-return (mreq.imr_multiaddr.s_addr);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_ip_mreq; eval $setvar
-$rm_try
-
-echo "Checking the availability struct ip_mreq_source ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct ip_mreq_source mreq;
-return (mreq.imr_multiaddr.s_addr);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_ip_mreq_source; eval $setvar
-$rm_try
-
-echo "Checking the availability struct ipv6_mreq ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct ipv6_mreq mreq;
-return (mreq.ipv6mr_interface);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_ipv6_mreq; eval $setvar
-$rm_try
-
-echo "Checking the availability struct ipv6_mreq_source ..." >&4
-$cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-struct ipv6_mreq_source mreq;
-return (mreq.imr_multiaddr.s_addr);
-}
-EOF
-val="$undef"
-set try; if eval $compile; then
- val="$define"
-fi
-set d_ipv6_mreq_source; eval $setvar
-$rm_try
-
-echo "Checking the availability of certain socket constants..." >&4
-for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
- enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
- $cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
- int i = $ENUM;
-}
-EOF
- val="$undef"
- set try; if eval $compile; then
- val="$define"
- fi
- set d_${enum}; eval $setvar
- $rm_try
-done
-
-: see if this is a sys/uio.h system
-set sys/uio.h i_sysuio
-eval $inhdr
-
-: Check for cmsghdr support
-echo " "
-echo "Checking to see if your system supports struct cmsghdr..." >&4
-set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
-eval $hasstruct
-case "$d_cmsghdr_s" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-
-: see if copysign exists
-set copysign d_copysign
-eval $inlibc
-
-: see if copysignl exists
-set copysignl d_copysignl
-eval $inlibc
-
-: see if crypt exists
-echo " "
-set crypt d_crypt
-eval $inlibc
-case "$d_crypt" in
-$define) cryptlib='' ;;
-*) if set crypt val -f d_crypt; eval $csym; $val; then
- echo 'crypt() found.' >&4
- val="$define"
- cryptlib=''
- else
- cryptlib=`./loc Slibcrypt$_a "" $xlibpth`
- if $test -z "$cryptlib"; then
- cryptlib=`./loc Mlibcrypt$_a "" $xlibpth`
- else
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- cryptlib=`./loc Llibcrypt$_a "" $xlibpth`
- else
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- cryptlib=`./loc libcrypt$_a "" $libpth`
- else
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- echo 'crypt() NOT found.' >&4
- val="$undef"
- else
- val="$define"
- fi
- fi
- set d_crypt
- eval $setvar
- ;;
-esac
-
-: see if this is a crypt.h system
-set crypt.h i_crypt
-eval $inhdr
-
-: see if crypt_r exists
-set crypt_r d_crypt_r
-eval $inlibc
-case "$d_crypt_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_crypt crypt.h"
- case "$d_crypt_r_proto:$usethreads" in
- ":define") d_crypt_r_proto=define
- set d_crypt_r_proto crypt_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_crypt_r_proto" in
- define)
- case "$crypt_r_proto" in
- ''|0) try='char* crypt_r(const char*, const char*, struct crypt_data*);'
- ./protochk "$extern_C $try" $hdrs && crypt_r_proto=B_CCS ;;
- esac
- case "$crypt_r_proto" in
- ''|0) try='char* crypt_r(const char*, const char*, CRYPTD*);'
- ./protochk "$extern_C $try" $hdrs && crypt_r_proto=B_CCD ;;
- esac
- case "$crypt_r_proto" in
- ''|0) d_crypt_r=undef
- crypt_r_proto=0
- echo "Disabling crypt_r, cannot determine prototype." >&4 ;;
- * ) case "$crypt_r_proto" in
- REENTRANT_PROTO*) ;;
- *) crypt_r_proto="REENTRANT_PROTO_$crypt_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "crypt_r has no prototype, not using it." >&4 ;;
- esac
- d_crypt_r=undef
- crypt_r_proto=0
- ;;
- esac
- ;;
-*) crypt_r_proto=0
- ;;
-esac
-
-: get csh whereabouts
-case "$csh" in
-'csh') val="$undef" ;;
-*) val="$define" ;;
-esac
-set d_csh
-eval $setvar
-: Respect a hint or command line value for full_csh.
-case "$full_csh" in
-'') full_csh=$csh ;;
-esac
-
-: see if ctermid exists
-set ctermid d_ctermid
-eval $inlibc
-
-: see if ctermid_r exists
-set ctermid_r d_ctermid_r
-eval $inlibc
-case "$d_ctermid_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h "
- case "$d_ctermid_r_proto:$usethreads" in
- ":define") d_ctermid_r_proto=define
- set d_ctermid_r_proto ctermid_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_ctermid_r_proto" in
- define)
- case "$ctermid_r_proto" in
- ''|0) try='char* ctermid_r(char*);'
- ./protochk "$extern_C $try" $hdrs && ctermid_r_proto=B_B ;;
- esac
- case "$ctermid_r_proto" in
- ''|0) d_ctermid_r=undef
- ctermid_r_proto=0
- echo "Disabling ctermid_r, cannot determine prototype." >&4 ;;
- * ) case "$ctermid_r_proto" in
- REENTRANT_PROTO*) ;;
- *) ctermid_r_proto="REENTRANT_PROTO_$ctermid_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "ctermid_r has no prototype, not using it." >&4 ;;
- esac
- d_ctermid_r=undef
- ctermid_r_proto=0
- ;;
- esac
- ;;
-*) ctermid_r_proto=0
- ;;
-esac
-
-: see if ctime_r exists
-set ctime_r d_ctime_r
-eval $inlibc
-case "$d_ctime_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
- case "$d_ctime_r_proto:$usethreads" in
- ":define") d_ctime_r_proto=define
- set d_ctime_r_proto ctime_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_ctime_r_proto" in
- define)
- case "$ctime_r_proto" in
- ''|0) try='char* ctime_r(const time_t*, char*);'
- ./protochk "$extern_C $try" $hdrs && ctime_r_proto=B_SB ;;
- esac
- case "$ctime_r_proto" in
- ''|0) try='char* ctime_r(const time_t*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && ctime_r_proto=B_SBI ;;
- esac
- case "$ctime_r_proto" in
- ''|0) try='int ctime_r(const time_t*, char*);'
- ./protochk "$extern_C $try" $hdrs && ctime_r_proto=I_SB ;;
- esac
- case "$ctime_r_proto" in
- ''|0) try='int ctime_r(const time_t*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && ctime_r_proto=I_SBI ;;
- esac
- case "$ctime_r_proto" in
- ''|0) d_ctime_r=undef
- ctime_r_proto=0
- echo "Disabling ctime_r, cannot determine prototype." >&4 ;;
- * ) case "$ctime_r_proto" in
- REENTRANT_PROTO*) ;;
- *) ctime_r_proto="REENTRANT_PROTO_$ctime_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "ctime_r has no prototype, not using it." >&4 ;;
- esac
- d_ctime_r=undef
- ctime_r_proto=0
- ;;
- esac
- ;;
-*) ctime_r_proto=0
- ;;
-esac
-
-: see if cuserid exists
-set cuserid d_cuserid
-eval $inlibc
-
-: see if dbm.h is available
-: see if dbmclose exists
-set dbmclose d_dbmclose
-eval $inlibc
-
-case "$d_dbmclose" in
-$define)
- set dbm.h i_dbm
- eval $inhdr
- case "$i_dbm" in
- $define)
- val="$undef"
- set i_rpcsvcdbm
- eval $setvar
- ;;
- *) set rpcsvc/dbm.h i_rpcsvcdbm
- eval $inhdr
- ;;
- esac
- ;;
-*) echo "We won't be including <dbm.h>"
- val="$undef"
- set i_dbm
- eval $setvar
- val="$undef"
- set i_rpcsvcdbm
- eval $setvar
- ;;
-esac
-
-: see if prototype for dbminit is available
-echo " "
-set d_dbminitproto dbminit $i_dbm dbm.h
-eval $hasproto
-
-: see if difftime exists
-set difftime d_difftime
-eval $inlibc
-
-: see if this is a dirent system
-echo " "
-if xinc=`./findhdr dirent.h`; $test "$xinc"; then
- val="$define"
- echo "<dirent.h> found." >&4
-else
- val="$undef"
- if xinc=`./findhdr sys/dir.h`; $test "$xinc"; then
- echo "<sys/dir.h> found." >&4
- echo " "
- else
- xinc=`./findhdr sys/ndir.h`
- fi
- echo "<dirent.h> NOT found." >&4
-fi
-set i_dirent
-eval $setvar
-
-: Look for type of directory structure.
-echo " "
-$cppstdin $cppflags $cppminus < "$xinc" > try.c
-
-case "$direntrytype" in
-''|' ')
- case "$i_dirent" in
- $define) guess1='struct dirent' ;;
- *) guess1='struct direct' ;;
- esac
- ;;
-*) guess1="$direntrytype"
- ;;
-esac
-
-case "$guess1" in
-'struct dirent') guess2='struct direct' ;;
-*) guess2='struct dirent' ;;
-esac
-
-if $contains "$guess1" try.c >/dev/null 2>&1; then
- direntrytype="$guess1"
- echo "Your directory entries are $direntrytype." >&4
-elif $contains "$guess2" try.c >/dev/null 2>&1; then
- direntrytype="$guess2"
- echo "Your directory entries seem to be $direntrytype." >&4
-else
- echo "I don't recognize your system's directory entries." >&4
- rp="What type is used for directory entries on this system?"
- dflt="$guess1"
- . ./myread
- direntrytype="$ans"
-fi
-$rm_try
-
-: see if the directory entry stores field length
-echo " "
-$cppstdin $cppflags $cppminus < "$xinc" > try.c
-if $contains 'd_namlen' try.c >/dev/null 2>&1; then
- echo "Good, your directory entry keeps length information in d_namlen." >&4
- val="$define"
-else
- echo "Your directory entry does not know about the d_namlen field." >&4
- val="$undef"
-fi
-set d_dirnamlen
-eval $setvar
-$rm_try
-
-: Look for DIR.dd_fd
-case "$i_dirent" in
-"$define")
- echo "Checking to see if DIR has a dd_fd member variable" >&4
- $cat >try.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <dirent.h>
-
-int main() {
- DIR dir;
- dir.dd_fd = 1;
- return 0;
-}
-EOCP
- val=$undef
- set try
- if eval $compile; then
- echo "Yes, it does."
- val="$define"
- else
- echo "No, it does not."
- val="$undef"
- fi
- ;;
-*)
- echo "You don't have a <dirent.h>, so not checking for dd_fd." >&4
- val="$undef"
- ;;
-esac
-set d_dir_dd_fd
-eval $setvar
-$rm_try
-
-: see if this is an sysdir system
-set sys/dir.h i_sysdir
-eval $inhdr
-
-: see if this is an sysndir system
-set sys/ndir.h i_sysndir
-eval $inhdr
-
-: Look for dirfd
-echo " "
-$cat >dirfd.c <<EOM
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_dirent I_DIRENT /**/
-#$i_sysdir I_SYS_DIR /**/
-#$i_sysndir I_SYS_NDIR /**/
-#$i_systypes I_SYS_TYPES /**/
-#if defined(I_SYS_TYPES)
-#include <sys/types.h>
-#endif
-#if defined(I_DIRENT)
-#include <dirent.h>
-#else
-#ifdef I_SYS_NDIR
-#include <sys/ndir.h>
-#else
-#ifdef I_SYS_DIR
-#include <sys/dir.h>
-#endif
-#endif
-#endif
-int main() {
- DIR *dirp = opendir(".");
- if (dirfd(dirp) >= 0)
- exit(0);
- else
- exit(1);
-}
-EOM
-val=$undef
-set dirfd
-if eval $compile; then
- val="$define"
-fi
-case "$val" in
-$define) echo "dirfd() found." >&4 ;;
-*) echo "dirfd() NOT found." >&4 ;;
-esac
-set d_dirfd
-eval $setvar
-$rm -f dirfd*
-
-: see if dladdr exists
-set dladdr d_dladdr
-eval $inlibc
-
-: see if dlerror exists
-xxx_runnm="$runnm"
-runnm=false
-set dlerror d_dlerror
-eval $inlibc
-runnm="$xxx_runnm"
-
-: see if dlfcn is available
-set dlfcn.h i_dlfcn
-eval $inhdr
-
-: Check what extension to use for shared libs
-case "$usedl" in
-$define|y|true)
- $cat << EOM
-
-On a few systems, the dynamically loaded modules that perl generates and uses
-will need a different extension than shared libs. The default will probably
-be appropriate.
-
-EOM
- case "$dlext" in
- '') dflt="$so" ;;
- *) dflt="$dlext" ;;
- esac
- rp='What is the extension of dynamically loaded modules'
- . ./myread
- dlext="$ans"
- ;;
-*)
- dlext="none"
- ;;
-esac
-
-: Check if dlsym need a leading underscore
-echo " "
-val="$undef"
-
-case "$dlsrc" in
-dl_dlopen.xs)
- echo "Checking whether your dlsym() needs a leading underscore ..." >&4
- $cat >dyna.c <<'EOM'
-fred () { }
-EOM
-
-$cat >fred.c<<EOM
-
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_dlfcn I_DLFCN
-#ifdef I_DLFCN
-#include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */
-#else
-#include <sys/types.h>
-#include <nlist.h>
-#include <link.h>
-#endif
-
-extern int fred() ;
-
-int main()
-{
- void * handle ;
- void * symbol ;
-#ifndef RTLD_LAZY
- int mode = 1 ;
-#else
- int mode = RTLD_LAZY ;
-#endif
- handle = dlopen("./dyna.$dlext", mode) ;
- if (handle == NULL) {
- printf ("1\n") ;
- fflush (stdout) ;
- exit(0);
- }
- symbol = dlsym(handle, "fred") ;
- if (symbol == NULL) {
- /* try putting a leading underscore */
- symbol = dlsym(handle, "_fred") ;
- if (symbol == NULL) {
- printf ("2\n") ;
- fflush (stdout) ;
- exit(0);
- }
- printf ("3\n") ;
- }
- else
- printf ("4\n") ;
- fflush (stdout) ;
- exit(0);
-}
-EOM
- : Call the object file tmp-dyna.o in case dlext=o.
- if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
- mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
- $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
- $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
- xxx=`$run ./fred`
- case $xxx in
- 1) echo "Test program failed using dlopen." >&4
- echo "Perhaps you should not use dynamic loading." >&4;;
- 2) echo "Test program failed using dlsym." >&4
- echo "Perhaps you should not use dynamic loading." >&4;;
- 3) echo "dlsym needs a leading underscore" >&4
- val="$define" ;;
- 4) echo "dlsym doesn't need a leading underscore." >&4;;
- esac
- else
- echo "I can't compile and run the test program." >&4
- echo "I'm guessing that dlsym doesn't need a leading underscore." >&4
- fi
- ;;
-esac
-
-$rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.*
-
-set d_dlsymun
-eval $setvar
-
-: see if drand48_r exists
-set drand48_r d_drand48_r
-eval $inlibc
-case "$d_drand48_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
- case "$d_drand48_r_proto:$usethreads" in
- ":define") d_drand48_r_proto=define
- set d_drand48_r_proto drand48_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_drand48_r_proto" in
- define)
- case "$drand48_r_proto" in
- ''|0) try='int drand48_r(struct drand48_data*, double*);'
- ./protochk "$extern_C $try" $hdrs && drand48_r_proto=I_ST ;;
- esac
- case "$drand48_r_proto" in
- ''|0) d_drand48_r=undef
- drand48_r_proto=0
- echo "Disabling drand48_r, cannot determine prototype." >&4 ;;
- * ) case "$drand48_r_proto" in
- REENTRANT_PROTO*) ;;
- *) drand48_r_proto="REENTRANT_PROTO_$drand48_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "drand48_r has no prototype, not using it." >&4 ;;
- esac
- d_drand48_r=undef
- drand48_r_proto=0
- ;;
- esac
- ;;
-*) drand48_r_proto=0
- ;;
-esac
-
-: see if prototype for drand48 is available
-echo " "
-set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h
-eval $hasproto
-
-: see if dup2 exists
-set dup2 d_dup2
-eval $inlibc
-
-: see if dup3 exists
-set dup3 d_dup3
-eval $inlibc
-
-: see if localeconv_l exists
-set localeconv_l d_localeconv_l
-eval $inlibc
-
-: see if this is an xlocale.h system
-set xlocale.h i_xlocale
-eval $inhdr
-
-: see if newlocale exists
-set newlocale d_newlocale
-eval $inlibc
-
-: see if freelocale exists
-set freelocale d_freelocale
-eval $inlibc
-
-: see if uselocale exists
-set uselocale d_uselocale
-eval $inlibc
-
-: see if duplocale exists
-set duplocale d_duplocale
-eval $inlibc
-
-: see if querylocale exists
-set querylocale d_querylocale
-eval $inlibc
-
-: if we have xlocale.h, check whether it is needed
-case "$i_xlocale$d_newlocale$xlocale_needed" in
-"$define$define")
- echo "Checking if xlocale.h is needed..." >&4
- $cat >try.c <<EOF
-#include <locale.h>
-#include <stdio.h>
-#ifdef TRY_XLOCALE
-#include <xlocale.h>
-#endif
-#$d_localeconv_l HAVE_LOCALECONV_L
-
-#ifdef HAVE_LOCALECONV_L
-struct lconv *(*lcptr)(locale_t) = localeconv_l;
-#endif
-
-int main(void) {
- locale_t lc = newlocale(LC_ALL_MASK, "C", (locale_t)0);
-
-#ifdef HAVE_LOCALECONV_L
- /* FreeBSD hides only localeconv_l() in xlocale.h */
- struct lconv *lcbuf = localeconv_l(lc);
- printf("decimal: %s\n", lcbuf->decimal_point);
-#endif
-
- freelocale(lc);
- return 0;
-}
-EOF
- set try
- if eval $compile && $run ./try > /dev/null 2>&1 ; then
- echo "xlocale.h isn't needed" >&4
- xlocale_needed=$undef
- else
- set try -DTRY_XLOCALE
- if eval $compile && $run ./try > /dev/null 2>&1 ; then
- xlocale_needed=$define
- echo "xlocale.h is needed" >&4
- else
- echo "I can't build my test either way" >&4
- xlocale_needed=$undef
- fi
- fi
- $rm_try
- ;;
-*) xlocale_needed=$undef ;;
-esac
-
-: see if eaccess exists
-set eaccess d_eaccess
-eval $inlibc
-
-: see if endgrent exists
-set endgrent d_endgrent
-eval $inlibc
-
-: see if this is an grp system
-set grp.h i_grp
-eval $inhdr
-
-case "$i_grp" in
-$define)
- xxx=`./findhdr grp.h`
- $cppstdin $cppflags $cppminus < $xxx >$$.h
-
- if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_grpasswd
- eval $setvar
-
- $rm -f $$.h
- ;;
-*)
- val="$undef";
- set d_grpasswd; eval $setvar
- ;;
-esac
-
-: see if endgrent_r exists
-set endgrent_r d_endgrent_r
-eval $inlibc
-case "$d_endgrent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
- case "$d_endgrent_r_proto:$usethreads" in
- ":define") d_endgrent_r_proto=define
- set d_endgrent_r_proto endgrent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_endgrent_r_proto" in
- define)
- case "$endgrent_r_proto" in
- ''|0) try='int endgrent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && endgrent_r_proto=I_H ;;
- esac
- case "$endgrent_r_proto" in
- ''|0) try='void endgrent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && endgrent_r_proto=V_H ;;
- esac
- case "$endgrent_r_proto" in
- ''|0) d_endgrent_r=undef
- endgrent_r_proto=0
- echo "Disabling endgrent_r, cannot determine prototype." >&4 ;;
- * ) case "$endgrent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) endgrent_r_proto="REENTRANT_PROTO_$endgrent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "endgrent_r has no prototype, not using it." >&4 ;;
- esac
- d_endgrent_r=undef
- endgrent_r_proto=0
- ;;
- esac
- ;;
-*) endgrent_r_proto=0
- ;;
-esac
-
-: see if endhostent exists
-set endhostent d_endhent
-eval $inlibc
-
-: see if this is a netdb.h system
-set netdb.h i_netdb
-eval $inhdr
-
-: see if endhostent_r exists
-set endhostent_r d_endhostent_r
-eval $inlibc
-case "$d_endhostent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_endhostent_r_proto:$usethreads" in
- ":define") d_endhostent_r_proto=define
- set d_endhostent_r_proto endhostent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_endhostent_r_proto" in
- define)
- case "$endhostent_r_proto" in
- ''|0) try='int endhostent_r(struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && endhostent_r_proto=I_D ;;
- esac
- case "$endhostent_r_proto" in
- ''|0) try='void endhostent_r(struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && endhostent_r_proto=V_D ;;
- esac
- case "$endhostent_r_proto" in
- ''|0) d_endhostent_r=undef
- endhostent_r_proto=0
- echo "Disabling endhostent_r, cannot determine prototype." >&4 ;;
- * ) case "$endhostent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) endhostent_r_proto="REENTRANT_PROTO_$endhostent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "endhostent_r has no prototype, not using it." >&4 ;;
- esac
- d_endhostent_r=undef
- endhostent_r_proto=0
- ;;
- esac
- ;;
-*) endhostent_r_proto=0
- ;;
-esac
-
-: see if endnetent exists
-set endnetent d_endnent
-eval $inlibc
-
-: see if endnetent_r exists
-set endnetent_r d_endnetent_r
-eval $inlibc
-case "$d_endnetent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_endnetent_r_proto:$usethreads" in
- ":define") d_endnetent_r_proto=define
- set d_endnetent_r_proto endnetent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_endnetent_r_proto" in
- define)
- case "$endnetent_r_proto" in
- ''|0) try='int endnetent_r(struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && endnetent_r_proto=I_D ;;
- esac
- case "$endnetent_r_proto" in
- ''|0) try='void endnetent_r(struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && endnetent_r_proto=V_D ;;
- esac
- case "$endnetent_r_proto" in
- ''|0) d_endnetent_r=undef
- endnetent_r_proto=0
- echo "Disabling endnetent_r, cannot determine prototype." >&4 ;;
- * ) case "$endnetent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) endnetent_r_proto="REENTRANT_PROTO_$endnetent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "endnetent_r has no prototype, not using it." >&4 ;;
- esac
- d_endnetent_r=undef
- endnetent_r_proto=0
- ;;
- esac
- ;;
-*) endnetent_r_proto=0
- ;;
-esac
-
-: see if endprotoent exists
-set endprotoent d_endpent
-eval $inlibc
-
-: see if endprotoent_r exists
-set endprotoent_r d_endprotoent_r
-eval $inlibc
-case "$d_endprotoent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_endprotoent_r_proto:$usethreads" in
- ":define") d_endprotoent_r_proto=define
- set d_endprotoent_r_proto endprotoent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_endprotoent_r_proto" in
- define)
- case "$endprotoent_r_proto" in
- ''|0) try='int endprotoent_r(struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && endprotoent_r_proto=I_D ;;
- esac
- case "$endprotoent_r_proto" in
- ''|0) try='void endprotoent_r(struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && endprotoent_r_proto=V_D ;;
- esac
- case "$endprotoent_r_proto" in
- ''|0) d_endprotoent_r=undef
- endprotoent_r_proto=0
- echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;;
- * ) case "$endprotoent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) endprotoent_r_proto="REENTRANT_PROTO_$endprotoent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "endprotoent_r has no prototype, not using it." >&4 ;;
- esac
- d_endprotoent_r=undef
- endprotoent_r_proto=0
- ;;
- esac
- ;;
-*) endprotoent_r_proto=0
- ;;
-esac
-
-: see if endpwent exists
-set endpwent d_endpwent
-eval $inlibc
-
-: see if this is a pwd.h system
-set pwd.h i_pwd
-eval $inhdr
-
-case "$i_pwd" in
-$define)
- xxx=`./findhdr pwd.h`
- $cppstdin $cppflags $cppminus < $xxx >$$.h
-
- if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwquota
- eval $setvar
-
- if $contains 'pw_age' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwage
- eval $setvar
-
- if $contains 'pw_change' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwchange
- eval $setvar
-
- if $contains 'pw_class' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwclass
- eval $setvar
-
- if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwexpire
- eval $setvar
-
- if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwcomment
- eval $setvar
-
- if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwgecos
- eval $setvar
-
- if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwpasswd
- eval $setvar
-
- $rm -f $$.h
- ;;
-*)
- val="$undef";
- set d_pwquota; eval $setvar
- set d_pwage; eval $setvar
- set d_pwchange; eval $setvar
- set d_pwclass; eval $setvar
- set d_pwexpire; eval $setvar
- set d_pwcomment; eval $setvar
- set d_pwgecos; eval $setvar
- set d_pwpasswd; eval $setvar
- ;;
-esac
-
-: see if endpwent_r exists
-set endpwent_r d_endpwent_r
-eval $inlibc
-case "$d_endpwent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
- case "$d_endpwent_r_proto:$usethreads" in
- ":define") d_endpwent_r_proto=define
- set d_endpwent_r_proto endpwent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_endpwent_r_proto" in
- define)
- case "$endpwent_r_proto" in
- ''|0) try='int endpwent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && endpwent_r_proto=I_H ;;
- esac
- case "$endpwent_r_proto" in
- ''|0) try='void endpwent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && endpwent_r_proto=V_H ;;
- esac
- case "$endpwent_r_proto" in
- ''|0) d_endpwent_r=undef
- endpwent_r_proto=0
- echo "Disabling endpwent_r, cannot determine prototype." >&4 ;;
- * ) case "$endpwent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) endpwent_r_proto="REENTRANT_PROTO_$endpwent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "endpwent_r has no prototype, not using it." >&4 ;;
- esac
- d_endpwent_r=undef
- endpwent_r_proto=0
- ;;
- esac
- ;;
-*) endpwent_r_proto=0
- ;;
-esac
-
-: see if endservent exists
-set endservent d_endsent
-eval $inlibc
-
-: see if endservent_r exists
-set endservent_r d_endservent_r
-eval $inlibc
-case "$d_endservent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_endservent_r_proto:$usethreads" in
- ":define") d_endservent_r_proto=define
- set d_endservent_r_proto endservent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_endservent_r_proto" in
- define)
- case "$endservent_r_proto" in
- ''|0) try='int endservent_r(struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && endservent_r_proto=I_D ;;
- esac
- case "$endservent_r_proto" in
- ''|0) try='void endservent_r(struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && endservent_r_proto=V_D ;;
- esac
- case "$endservent_r_proto" in
- ''|0) d_endservent_r=undef
- endservent_r_proto=0
- echo "Disabling endservent_r, cannot determine prototype." >&4 ;;
- * ) case "$endservent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) endservent_r_proto="REENTRANT_PROTO_$endservent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "endservent_r has no prototype, not using it." >&4 ;;
- esac
- d_endservent_r=undef
- endservent_r_proto=0
- ;;
- esac
- ;;
-*) endservent_r_proto=0
- ;;
-esac
-
-: Locate the flags for 'open()'
-echo " "
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#ifdef I_FCNTL
-#include <fcntl.h>
-#endif
-#ifdef I_SYS_FILE
-#include <sys/file.h>
-#endif
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- if(O_RDONLY);
-#ifdef O_TRUNC
- exit(0);
-#else
- exit(1);
-#endif
-}
-EOCP
-: check sys/file.h first to get FREAD on Sun
-if $test `./findhdr sys/file.h` && \
- set try -DI_SYS_FILE && eval $compile; then
- h_sysfile=true;
- echo "<sys/file.h> defines the O_* constants..." >&4
- if $run ./try; then
- echo "and you have the 3 argument form of open()." >&4
- val="$define"
- else
- echo "but not the 3 argument form of open(). Oh, well." >&4
- val="$undef"
- fi
-elif $test `./findhdr fcntl.h` && \
- set try -DI_FCNTL && eval $compile; then
- h_fcntl=true;
- echo "<fcntl.h> defines the O_* constants..." >&4
- if $run ./try; then
- echo "and you have the 3 argument form of open()." >&4
- val="$define"
- else
- echo "but not the 3 argument form of open(). Oh, well." >&4
- val="$undef"
- fi
-else
- val="$undef"
- echo "I can't find the O_* constant definitions! You got problems." >&4
-fi
-set d_open3
-eval $setvar
-$rm_try
-
-: see if this is a sys/file.h system
-val=''
-set sys/file.h val
-eval $inhdr
-
-: do we need to include sys/file.h ?
-case "$val" in
-"$define")
- echo " "
- if $h_sysfile; then
- val="$define"
- echo "We'll be including <sys/file.h>." >&4
- else
- val="$undef"
- echo "We won't be including <sys/file.h>." >&4
- fi
- ;;
-*)
- h_sysfile=false
- ;;
-esac
-set i_sysfile
-eval $setvar
-
-: see if fcntl.h is there
-val=''
-set fcntl.h val
-eval $inhdr
-
-: see if we can include fcntl.h
-case "$val" in
-"$define")
- echo " "
- if $h_fcntl; then
- val="$define"
- echo "We'll be including <fcntl.h>." >&4
- else
- val="$undef"
- if $h_sysfile; then
- echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
- else
- echo "We won't be including <fcntl.h>." >&4
- fi
- fi
- ;;
-*)
- h_fcntl=false
- val="$undef"
- ;;
-esac
-set i_fcntl
-eval $setvar
-
-: see if fork exists
-set fork d_fork
-eval $inlibc
-
-: see if pipe exists
-set pipe d_pipe
-eval $inlibc
-
-: check for non-blocking I/O stuff
-case "$h_sysfile" in
-true) echo "#include <sys/file.h>" > head.c;;
-*)
- case "$h_fcntl" in
- true) echo "#include <fcntl.h>" > head.c;;
- *) echo "#include <sys/fcntl.h>" > head.c;;
- esac
- ;;
-esac
-echo " "
-echo "Figuring out the flag used by open() for non-blocking I/O..." >&4
-case "$o_nonblock" in
-'')
- $cat head.c > try.c
- $cat >>try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_fcntl I_FCNTL
-#ifdef I_FCNTL
-#include <fcntl.h>
-#endif
-int main() {
-#ifdef O_NONBLOCK
- printf("O_NONBLOCK\n");
- exit(0);
-#endif
-#ifdef O_NDELAY
- printf("O_NDELAY\n");
- exit(0);
-#endif
-#ifdef FNDELAY
- printf("FNDELAY\n");
- exit(0);
-#endif
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- o_nonblock=`$run ./try`
- case "$o_nonblock" in
- '') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
- *) echo "Seems like we can use $o_nonblock.";;
- esac
- else
- echo "(I can't compile the test program; pray O_NONBLOCK is right!)"
- fi
- ;;
-*) echo "Using $hint value $o_nonblock.";;
-esac
-$rm_try
-
-echo " "
-echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4
-case "$eagain" in
-'')
- case "$d_fork:$d_pipe:$d_alarm" in
- define:define:define)
- $cat head.c > try.c
- $cat >>try.c <<EOCP
-#include <errno.h>
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_fcntl I_FCNTL
-#ifdef I_FCNTL
-#include <fcntl.h>
-#endif
-#define MY_O_NONBLOCK $o_nonblock
-#ifndef errno /* XXX need better Configure test */
-extern int errno;
-#endif
-#$i_unistd I_UNISTD
-#ifdef I_UNISTD
-#include <unistd.h>
-#endif
-#include <string.h>
-$signal_t blech(int x) { exit(3); }
-EOCP
- $cat >> try.c <<'EOCP'
-int main()
-{
- int pd[2];
- int pu[2];
- char buf[1];
- char string[100];
- int ret;
-
- ret = pipe(pd); /* Down: child -> parent */
- if (ret != 0)
- exit(3);
- ret = pipe(pu); /* Up: parent -> child */
- if (ret != 0)
- exit(3);
- if (0 != fork()) {
- close(pd[1]); /* Parent reads from pd[0] */
- close(pu[0]); /* Parent writes (blocking) to pu[1] */
-#ifdef F_SETFL
- if (-1 == fcntl(pd[0], F_SETFL, MY_O_NONBLOCK))
- exit(1);
-#else
- exit(4);
-#endif
- signal(SIGALRM, blech);
- alarm(5);
- if ((ret = read(pd[0], buf, 1)) > 0) /* Nothing to read! */
- exit(2);
- sprintf(string, "%d\n", ret);
- ret = write(2, string, strlen(string));
- if (ret != strlen(string))
- exit(3);
- alarm(0);
-#ifdef EAGAIN
- if (errno == EAGAIN) {
- printf("EAGAIN\n");
- goto ok;
- }
-#endif
-#ifdef EWOULDBLOCK
- if (errno == EWOULDBLOCK)
- printf("EWOULDBLOCK\n");
-#endif
- ok:
- ret = write(pu[1], buf, 1); /* Unblocks child, tell it to close our pipe */
- if (ret != 1)
- exit(3);
- sleep(2); /* Give it time to close our pipe */
- alarm(5);
- ret = read(pd[0], buf, 1); /* Should read EOF */
- alarm(0);
- sprintf(string, "%d\n", ret);
- ret = write(4, string, strlen(string));
- if (ret != strlen(string))
- exit(3);
- exit(0);
- }
-
- close(pd[0]); /* We write to pd[1] */
- close(pu[1]); /* We read from pu[0] */
- ret = read(pu[0], buf, 1); /* Wait for parent to signal us we may continue */
- if (ret != 1)
- exit(3);
- close(pd[1]); /* Pipe pd is now fully closed! */
- exit(0); /* Bye bye, thank you for playing! */
-}
-EOCP
- set try
- if eval $compile_ok; then
- echo "$startsh" >mtry
- echo "$run ./try >try.out 2>try.ret 4>try.err || exit 4" >>mtry
- chmod +x mtry
- $run ./mtry >/dev/null 2>&1
- case $? in
- 0) eagain=`$cat try.out`;;
- 1) echo "Could not perform non-blocking setting!";;
- 2) echo "I did a successful read() for something that was not there!";;
- 3) echo "Hmm... non-blocking I/O does not seem to be working!";;
- 4) echo "Could not find F_SETFL!";;
- *) echo "Something terribly wrong happened during testing.";;
- esac
- rd_nodata=`$cat try.ret`
- echo "A read() system call with no data present returns $rd_nodata."
- case "$rd_nodata" in
- 0|-1) ;;
- *)
- echo "(That's peculiar, fixing that to be -1.)"
- rd_nodata=-1
- ;;
- esac
- case "$eagain" in
- '')
- echo "Forcing errno EAGAIN on read() with no data available."
- eagain=EAGAIN
- ;;
- *)
- echo "Your read() sets errno to $eagain when no data is available."
- ;;
- esac
- status=`$cat try.err`
- case "$status" in
- 0) echo "And it correctly returns 0 to signal EOF.";;
- -1) echo "But it also returns -1 to signal EOF, so be careful!";;
- *) echo "However, your read() returns '$status' on EOF??";;
- esac
- val="$define"
- if test "$status" = "$rd_nodata"; then
- echo "WARNING: you can't distinguish between EOF and no data!"
- val="$undef"
- fi
- else
- echo "I can't compile the test program--assuming errno EAGAIN will do."
- eagain=EAGAIN
- fi
- ;;
- *) echo "Can't figure out how to test this--assuming errno EAGAIN will do."
- eagain=EAGAIN
- val="$define"
- ;;
- esac
- set d_eofnblk
- eval $setvar
- ;;
-*)
- echo "Using $hint value $eagain."
- echo "Your read() returns $rd_nodata when no data is present."
- case "$d_eofnblk" in
- "$define") echo "And you can see EOF because read() returns 0.";;
- "$undef") echo "But you can't see EOF status from read() returned value.";;
- *)
- echo "(Assuming you can't see EOF status from read anyway.)"
- d_eofnblk=$undef
- ;;
- esac
- ;;
-esac
-$rm_try head.c mtry
-
-: see if erf exists
-set erf d_erf
-eval $inlibc
-
-: see if erfc exists
-set erfc d_erfc
-eval $inlibc
-
-: see if exp2 exists
-set exp2 d_exp2
-eval $inlibc
-
-: see if expm1 exists
-set expm1 d_expm1
-eval $inlibc
-
-: see if _ptr and _cnt from stdio act std
-echo " "
-
-if $contains '_lbfsize' `./findhdr stdio.h` >/dev/null 2>&1 ; then
- echo "(Looks like you have stdio.h from BSD.)"
- case "$stdio_ptr" in
- '') stdio_ptr='((fp)->_p)'
- ptr_lval=$define
- ;;
- *) ptr_lval=$d_stdio_ptr_lval;;
- esac
- case "$stdio_cnt" in
- '') stdio_cnt='((fp)->_r)'
- cnt_lval=$define
- ;;
- *) cnt_lval=$d_stdio_cnt_lval;;
- esac
- case "$stdio_base" in
- '') stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)';;
- esac
- case "$stdio_bufsiz" in
- '') stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)';;
- esac
-elif $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then
- echo "(Looks like you have stdio.h from Linux.)"
- case "$stdio_ptr" in
- '') stdio_ptr='((fp)->_IO_read_ptr)'
- ptr_lval=$define
- ;;
- *) ptr_lval=$d_stdio_ptr_lval;;
- esac
- case "$stdio_cnt" in
- '') stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
- cnt_lval=$undef
- ;;
- *) cnt_lval=$d_stdio_cnt_lval;;
- esac
- case "$stdio_base" in
- '') stdio_base='((fp)->_IO_read_base)';;
- esac
- case "$stdio_bufsiz" in
- '') stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)';;
- esac
-else
- case "$stdio_ptr" in
- '') stdio_ptr='((fp)->_ptr)'
- ptr_lval=$define
- ;;
- *) ptr_lval=$d_stdio_ptr_lval;;
- esac
- case "$stdio_cnt" in
- '') stdio_cnt='((fp)->_cnt)'
- cnt_lval=$define
- ;;
- *) cnt_lval=$d_stdio_cnt_lval;;
- esac
- case "$stdio_base" in
- '') stdio_base='((fp)->_base)';;
- esac
- case "$stdio_bufsiz" in
- '') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';;
- esac
-fi
-
-: test whether _ptr and _cnt really work
-echo "Checking how std your stdio is..." >&4
-$cat >try.c <<EOP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#define FILE_ptr(fp) $stdio_ptr
-#define FILE_cnt(fp) $stdio_cnt
-int main() {
- FILE *fp = fopen("try.c", "r");
- char c = getc(fp);
- if (
- 18 <= FILE_cnt(fp) &&
- strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
- )
- exit(0);
- exit(1);
-}
-EOP
-val="$undef"
-set try
-if eval $compile && $to try.c; then
- if $run ./try; then
- echo "Your stdio acts pretty std."
- val="$define"
- else
- echo "Your stdio isn't very std."
- fi
-else
- echo "Your stdio doesn't appear very std."
-fi
-$rm_try
-
-# glibc 2.2.90 and above apparently change stdio streams so Perl's
-# direct buffer manipulation no longer works. The Configure tests
-# should be changed to correctly detect this, but until then,
-# the following check should at least let perl compile and run.
-# (This quick fix should be updated before 5.8.1.)
-# To be defensive, reject all unknown versions, and all versions > 2.2.9.
-# A. Dougherty, June 3, 2002.
-case "$d_gnulibc" in
-$define)
- case "$gnulibc_version" in
- 2.[01]*) ;;
- 2.2) ;;
- 2.2.[0-9]) ;;
- *) echo "But I will not snoop inside glibc $gnulibc_version stdio buffers."
- val="$undef"
- ;;
- esac
- ;;
-esac
-set d_stdstdio
-eval $setvar
-
-: Can _ptr be used as an lvalue?
-case "$d_stdstdio$ptr_lval" in
-$define$define) val=$define ;;
-*) val=$undef ;;
-esac
-set d_stdio_ptr_lval
-eval $setvar
-
-: Can _cnt be used as an lvalue?
-case "$d_stdstdio$cnt_lval" in
-$define$define) val=$define ;;
-*) val=$undef ;;
-esac
-set d_stdio_cnt_lval
-eval $setvar
-
-
-: test whether setting _ptr sets _cnt as a side effect
-d_stdio_ptr_lval_sets_cnt="$undef"
-d_stdio_ptr_lval_nochange_cnt="$undef"
-case "$d_stdio_ptr_lval$d_stdstdio" in
-$define$define)
- echo "Checking to see what happens if we set the stdio ptr..." >&4
-$cat >try.c <<EOP
-#include <stdio.h>
-/* Can we scream? */
-/* Eat dust sed :-) */
-/* In the buffer space, no one can hear you scream. */
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#define FILE_ptr(fp) $stdio_ptr
-#define FILE_cnt(fp) $stdio_cnt
-#include <sys/types.h>
-int main() {
- FILE *fp = fopen("try.c", "r");
- int c;
- char *ptr;
- size_t cnt;
- if (!fp) {
- puts("Fail even to read");
- exit(1);
- }
- c = getc(fp); /* Read away the first # */
- if (c == EOF) {
- puts("Fail even to read");
- exit(1);
- }
- if (!(
- 18 <= FILE_cnt(fp) &&
- strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
- )) {
- puts("Fail even to read");
- exit (1);
- }
- ptr = (char*) FILE_ptr(fp);
- cnt = (size_t)FILE_cnt(fp);
-
- FILE_ptr(fp) += 42;
-
- if ((char*)FILE_ptr(fp) != (ptr + 42)) {
- printf("Fail ptr check %p != %p", FILE_ptr(fp), (ptr + 42));
- exit (1);
- }
- if (FILE_cnt(fp) <= 20) {
- printf ("Fail (<20 chars to test)");
- exit (1);
- }
- if (strncmp(FILE_ptr(fp), "Eat dust sed :-) */\n", 20) != 0) {
- puts("Fail compare");
- exit (1);
- }
- if (cnt == FILE_cnt(fp)) {
- puts("Pass_unchanged");
- exit (0);
- }
- if (FILE_cnt(fp) == (cnt - 42)) {
- puts("Pass_changed");
- exit (0);
- }
- printf("Fail count was %d now %d\n", cnt, FILE_cnt(fp));
- return 1;
-
-}
-EOP
- set try
- if eval $compile && $to try.c; then
- case `$run ./try` in
- Pass_changed)
- echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
- d_stdio_ptr_lval_sets_cnt="$define" ;;
- Pass_unchanged)
- echo "Increasing ptr in your stdio leaves cnt unchanged. Good." >&4
- d_stdio_ptr_lval_nochange_cnt="$define" ;;
- Fail*)
- echo "Increasing ptr in your stdio didn't do exactly what I expected. We'll not be doing that then." >&4 ;;
- *)
- echo "It appears attempting to set ptr in your stdio is a bad plan." >&4 ;;
- esac
- else
- echo "It seems we can't set ptr in your stdio. Nevermind." >&4
- fi
- $rm_try
- ;;
-esac
-
-: see if _base is also standard
-val="$undef"
-case "$d_stdstdio" in
-$define)
- $cat >try.c <<EOP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#define FILE_base(fp) $stdio_base
-#define FILE_bufsiz(fp) $stdio_bufsiz
-int main() {
- FILE *fp = fopen("try.c", "r");
- char c = getc(fp);
- if (
- 19 <= FILE_bufsiz(fp) &&
- strncmp(FILE_base(fp), "#include <stdio.h>\n", 19) == 0
- )
- exit(0);
- exit(1);
-}
-EOP
- set try
- if eval $compile && $to try.c; then
- if $run ./try; then
- echo "And its _base field acts std."
- val="$define"
- else
- echo "But its _base field isn't std."
- fi
- else
- echo "However, it seems to be lacking the _base field."
- fi
- $rm_try
- ;;
-esac
-set d_stdiobase
-eval $setvar
-
-: see if fast_stdio exists
-val="$undef"
-case "$d_stdstdio:$d_stdio_ptr_lval" in
-"$define:$define")
- case "$d_stdio_cnt_lval$d_stdio_ptr_lval_sets_cnt" in
- *$define*)
- echo "You seem to have 'fast stdio' to directly manipulate the stdio buffers." >&4
- val="$define"
- ;;
- esac
- ;;
-esac
-set d_faststdio
-eval $setvar
-
-: see if fchdir exists
-set fchdir d_fchdir
-eval $inlibc
-
-: see if fchmod exists
-set fchmod d_fchmod
-eval $inlibc
-
-: check for openat, unlinkat, renameat, linkat, fchmodat
-set openat d_openat
-eval $inlibc
-
-set unlinkat d_unlinkat
-eval $inlibc
-
-set renameat d_renameat
-eval $inlibc
-
-set linkat d_linkat
-eval $inlibc
-
-set fchmodat d_fchmodat
-eval $inlibc
-
-: see if fchown exists
-set fchown d_fchown
-eval $inlibc
-
-: see if this is an fcntl system
-set fcntl d_fcntl
-eval $inlibc
-
-: See if fcntl-based locking works.
-echo " "
-$cat >try.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <unistd.h>
-#include <fcntl.h>
-#include <signal.h>
-$signal_t blech(int x) { exit(3); }
-int main() {
-#if defined(F_SETLK) && defined(F_SETLKW)
- struct flock flock;
- int retval, fd;
- fd = open("try.c", O_RDONLY);
- flock.l_type = F_RDLCK;
- flock.l_whence = SEEK_SET;
- flock.l_start = flock.l_len = 0;
- signal(SIGALRM, blech);
- alarm(10);
- retval = fcntl(fd, F_SETLK, &flock);
- close(fd);
- (retval < 0 ? exit(2) : exit(0));
-#else
- exit(2);
-#endif
-}
-EOCP
-echo "Checking if fcntl-based file locking works... "
-case "$d_fcntl" in
-"$define")
- set try
- if eval $compile_ok; then
- if $run ./try; then
- echo "Yes, it seems to work."
- val="$define"
- else
- echo "Nope, it didn't work."
- val="$undef"
- case "$?" in
- 3) $cat >&4 <<EOM
-***
-*** I had to forcibly timeout from fcntl(..., F_SETLK, ...).
-*** This is (almost) impossible.
-*** If your NFS lock daemons are not feeling well, something like
-*** this may happen, please investigate. Cannot continue, aborting.
-***
-EOM
- exit 1
- ;;
- esac
- fi
- else
- echo "I'm unable to compile the test program, so I'll assume not."
- val="$undef"
- fi
- ;;
-*) val="$undef";
- echo "Nope, since you don't even have fcntl()."
- ;;
-esac
-set d_fcntl_can_lock
-eval $setvar
-$rm_try
-
-: check for fd_set items
-$cat <<EOM
-
-Checking to see how well your C compiler handles fd_set and friends ...
-EOM
-$cat >try.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_systime I_SYS_TIME
-#$i_sysselct I_SYS_SELECT
-#$d_socket HAS_SOCKET
-#include <sys/types.h>
-#ifdef HAS_SOCKET
-#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
-#endif
-#ifdef I_SYS_TIME
-#include <sys/time.h>
-#endif
-#ifdef I_SYS_SELECT
-#include <sys/select.h>
-#endif
-int main() {
- fd_set fds;
-
-#ifdef TRYBITS
- if(fds.fds_bits);
-#endif
-
-#if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
- exit(0);
-#else
- exit(1);
-#endif
-}
-EOCP
-set try -DTRYBITS
-if eval $compile; then
- d_fds_bits="$define"
- d_fd_set="$define"
- echo "Well, your system knows about the normal fd_set typedef..." >&4
- if $run ./try; then
- echo "and you have the normal fd_set macros (just as I'd expect)." >&4
- d_fd_macros="$define"
- else
- $cat >&4 <<'EOM'
-but not the normal fd_set macros! Gaaack! I'll have to cover for you.
-EOM
- d_fd_macros="$undef"
- fi
-else
- $cat <<'EOM'
-Hmm, your compiler has some difficulty with fd_set. Checking further...
-EOM
- set try
- if eval $compile; then
- d_fds_bits="$undef"
- d_fd_set="$define"
- echo "Well, your system has some sort of fd_set available..." >&4
- if $run ./try; then
- echo "and you have the normal fd_set macros." >&4
- d_fd_macros="$define"
- else
- $cat <<'EOM'
-but not the normal fd_set macros! Gross! More work for me...
-EOM
- d_fd_macros="$undef"
- fi
- else
- echo "Well, you got zip. That's OK, I can roll my own fd_set stuff." >&4
- d_fd_set="$undef"
- d_fds_bits="$undef"
- d_fd_macros="$undef"
- fi
-fi
-$rm_try
-
-: see if fdclose exists
-set fdclose d_fdclose
-eval $inlibc
-
-: see if fdim exists
-set fdim d_fdim
-eval $inlibc
-
-: see if fegetround exists
-set fegetround d_fegetround
-eval $inlibc
-
-: see if ffs exists
-set ffs d_ffs
-eval $inlibc
-: see if ffsl exists
-set ffsl d_ffsl
-eval $inlibc
-
-: see if fgetpos exists
-set fgetpos d_fgetpos
-eval $inlibc
-
-: see if finite exists
-set finite d_finite
-eval $inlibc
-
-: see if finitel exists
-set finitel d_finitel
-eval $inlibc
-
-: see if flock exists
-set flock d_flock
-eval $inlibc
-
-: see if prototype for flock is available
-echo " "
-set d_flockproto flock $i_sysfile sys/file.h
-eval $hasproto
-
-: see if fma exists
-set fma d_fma
-eval $inlibc
-
-: see if fmax exists
-set fmax d_fmax
-eval $inlibc
-
-: see if fmin exists
-set fmin d_fmin
-eval $inlibc
-
-: see if fp_class exists
-set fp_class d_fp_class
-eval $inlibc
-
-: check for fpclassify
-echo "Checking to see if you have fpclassify..." >&4
-$cat >try.c <<EOCP
-#include <math.h>
-int main() { return fpclassify(1.0) == FP_NORMAL ? 0 : 1; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have fpclassify."
-else
- val="$undef"
- echo "You do not have fpclassify."
-fi
-$rm_try
-set d_fpclassify
-eval $setvar
-
-: see if fp_classify exists
-set fp_classify d_fp_classify
-eval $inlibc
-
-: see if fp_classl exists
-set fp_classl d_fp_classl
-eval $inlibc
-
-: see if pathconf exists
-set pathconf d_pathconf
-eval $inlibc
-
-: see if fpathconf exists
-set fpathconf d_fpathconf
-eval $inlibc
-
-: see if fpclass exists
-set fpclass d_fpclass
-eval $inlibc
-
-: see if fpclassl exists
-set fpclassl d_fpclassl
-eval $inlibc
-
-: see if fpgetround exists
-set fpgetround d_fpgetround
-eval $inlibc
-
-: check for fpos64_t
-echo " "
-echo "Checking to see if you have fpos64_t..." >&4
-$cat >try.c <<EOCP
-#include <stdio.h>
-int main() { fpos64_t x = 7; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have fpos64_t."
-else
- val="$undef"
- echo "You do not have fpos64_t."
- case "$fpossize" in
- 8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
- esac
-fi
-$rm_try
-set d_fpos64_t
-eval $setvar
-
-: see if frexpl exists
-set frexpl d_frexpl
-eval $inlibc
-
-: see if this is a sys/param system
-set sys/param.h i_sysparam
-eval $inhdr
-
-: see if this is a sys/mount.h system
-set sys/mount.h i_sysmount
-eval $inhdr
-
-: Check for fs_data_s
-echo " "
-echo "Checking to see if your system supports struct fs_data..." >&4
-set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
-eval $hasstruct
-case "$d_fs_data_s" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-
-: see if fseeko exists
-set fseeko d_fseeko
-eval $inlibc
-case "$longsize" in
-8) echo "(Your long is 64 bits, so you could use fseek.)" ;;
-esac
-
-: see if fsetpos exists
-set fsetpos d_fsetpos
-eval $inlibc
-
-: see if fstatfs exists
-set fstatfs d_fstatfs
-eval $inlibc
-
-: see if statvfs exists
-set statvfs d_statvfs
-eval $inlibc
-
-: see if fstatvfs exists
-set fstatvfs d_fstatvfs
-eval $inlibc
-
-: see if fsync exists
-set fsync d_fsync
-eval $inlibc
-
-: see if ftello exists
-set ftello d_ftello
-eval $inlibc
-case "$longsize" in
-8) echo "(Your long is 64 bits, so you could use ftell.)" ;;
-esac
-
-: check for a working futimes
-d_futimes="$undef"
-echo " "
-echo "Checking if you have a working futimes()" >&4
-$cat >try.c <<EOCP
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-
-int main ()
-{
- int fd, rv;
- fd = open ("try.c", O_RDWR);
- if (-1 == fd) exit (1);
- rv = futimes (fd, NULL);
- exit (rv == -1 ? errno : 0);
-}
-EOCP
-set try
-if eval $compile; then
- `$run ./try`
- rc=$?
- case "$rc" in
- 0) echo "Yes, you have" >&4
- d_futimes="$define"
- ;;
- *) echo "No, you have futimes, but it isn't working ($rc) (probably harmless)" >&4
- ;;
- esac
-else
- echo "No, it does not (probably harmless)" >&4
-fi
-$rm_try
-
-: look for gai_strerror
-echo " "
-$cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-int main ()
-{
- return (gai_strerror (0) ? 0 : 1);
- }
-EOCP
-set try
-val="$undef"
-if eval $compile; then
- `$run ./try`
- case "$?" in
- 0) echo "A working gai_strerror() found." >&4
- val="$define" ;;
- *) echo "gai_strerror() found, but it doesn't work" >&4
- ;;
- esac
-else
- echo "gai_strerror() NOT found." >&4
- fi
-set d_gai_strerror
-eval $setvar
-$rm_try
-
-: see if ndbm.h is available
-set ndbm.h i_ndbm
-eval $inhdr
-: Compatibility location for RedHat 7.1
-set gdbm/ndbm.h i_gdbmndbm
-eval $inhdr
-: Compatibility location for Debian 4.0
-set gdbm-ndbm.h i_gdbm_ndbm
-eval $inhdr
-
-val="$undef"
-if $test "$i_ndbm" = "$define" -o "$i_gdbmndbm" = "$define" -o "$i_gdbm_ndbm" = "$define"; then
- : see if dbm_open exists
- set dbm_open d_dbm_open
- eval $inlibc
- case "$d_dbm_open" in
- $undef)
- i_ndbm="$undef"
- i_gdbmndbm="$undef"
- i_gdbm_ndbm="$undef"
- echo "We won't be including <ndbm.h>"
- val="$undef"
- ;;
- *) val="$define"
- ;;
- esac
-fi
-set d_ndbm
-eval $setvar
-
-ndbm_hdr_protochk='name=$1; hdr=$2;
-eval "ihdr=\$""i_$name";
-val="$undef";
-if $test "$ihdr" = "$define"; then
- $echo "Checking if your <$hdr> uses prototypes..." >&4;
- case "$d_cplusplus" in
- $define) ./protochk "$extern_C void dbm_close(DBM *);" literal "extern \"C\" {" $ihdr $hdr literal "}" && val="$define" ;;
- *) ./protochk "$extern_C void dbm_close(int, int);" $ihdr $hdr || val="$define" ;;
- esac;
- case "$val" in
- $define) $echo "Your <$hdr> seems to have prototypes";;
- *) $echo "Your <$hdr> does not seem to have prototypes";;
- esac;
-fi;
-set "d_${name}_h_uses_prototypes";
-eval $setvar'
-
-set ndbm ndbm.h
-eval $ndbm_hdr_protochk
-set gdbmndbm gdbm/ndbm.h
-eval $ndbm_hdr_protochk
-set gdbm_ndbm gdbm-ndbm.h
-eval $ndbm_hdr_protochk
-
-: see if getaddrinfo exists
-set getaddrinfo d_getaddrinfo
-eval $inlibc
-
-: see if getcwd exists
-set getcwd d_getcwd
-eval $inlibc
-
-: check for getenv behavior
-case "$d_getenv_preserves_other_thread" in
-'')
-$echo "Checking to see if getenv() preserves a different thread's results" >&4
-$cat >try.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-# include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <string.h>
-#$i_pthread I_PTHREAD
-#ifdef I_PTHREAD
-# include <pthread.h>
-#endif
-
-void *
-thread_start(void * arg)
-{
- return (void *) getenv("HOME");
-}
-
-int main() {
- char * main_buffer;
- char save_main_buffer[1000];
- pthread_t subthread;
- pthread_attr_t attr;
-
- main_buffer = getenv("PATH");
-
- /* If too large for our generous allowance, return we couldn't figure it
- * out. */
- if (strlen(main_buffer) >= sizeof(save_main_buffer)) {
- exit(2);
- }
-
- strcpy(save_main_buffer, main_buffer);
-
- if (pthread_attr_init(&attr) != 0) {
- exit(2);
- }
-
- if (pthread_create(&subthread, &attr, thread_start, NULL) != 0) {
- exit(2);
- }
-
- if (pthread_join(subthread, NULL) != 0) {
- exit(2);
- }
-
- exit(! (strcmp(main_buffer, save_main_buffer) == 0));
-}
-EOCP
-val=
-set try
-if eval $compile_ok; then
- $run ./try
- rc=$?
- case "$rc" in
- 0) echo "getenv() didn't destroy another thread's buffer" >&4
- val=$define
- ;;
- 1) echo "getenv() does destroy another thread's buffer" >&4
- val=$undef
- ;;
- *) echo "Couldn't determine if getenv() destroys another thread's return value (code=$rc); assuming it does" >&4
- val=$undef
- ;;
- esac
-else
- echo "(I can't seem to compile the test program.)" >&4
- echo "Assuming that your C library's getenv destroys another thread's return value." >&4
- val=$undef
-fi
-set d_getenv_preserves_other_thread
-eval $setvar
-$rm_try
-;;
-esac
-
-: see if getespwnam exists
-set getespwnam d_getespwnam
-eval $inlibc
-
-: see if getfsstat exists
-set getfsstat d_getfsstat
-eval $inlibc
-
-: see if getgrent exists
-set getgrent d_getgrent
-eval $inlibc
-
-: see if getgrent_r exists
-set getgrent_r d_getgrent_r
-eval $inlibc
-case "$d_getgrent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
- case "$d_getgrent_r_proto:$usethreads" in
- ":define") d_getgrent_r_proto=define
- set d_getgrent_r_proto getgrent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getgrent_r_proto" in
- define)
- case "$getgrent_r_proto" in
- ''|0) try='int getgrent_r(struct group*, char*, size_t, struct group**);'
- ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBWR ;;
- esac
- case "$getgrent_r_proto" in
- ''|0) try='int getgrent_r(struct group*, char*, int, struct group**);'
- ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBIR ;;
- esac
- case "$getgrent_r_proto" in
- ''|0) try='struct group* getgrent_r(struct group*, char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=S_SBW ;;
- esac
- case "$getgrent_r_proto" in
- ''|0) try='struct group* getgrent_r(struct group*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=S_SBI ;;
- esac
- case "$getgrent_r_proto" in
- ''|0) try='int getgrent_r(struct group*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBI ;;
- esac
- case "$getgrent_r_proto" in
- ''|0) try='int getgrent_r(struct group*, char*, int, FILE**);'
- ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBIH ;;
- esac
- case "$getgrent_r_proto" in
- ''|0) d_getgrent_r=undef
- getgrent_r_proto=0
- echo "Disabling getgrent_r, cannot determine prototype." >&4 ;;
- * ) case "$getgrent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getgrent_r_proto="REENTRANT_PROTO_$getgrent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getgrent_r has no prototype, not using it." >&4 ;;
- esac
- d_getgrent_r=undef
- getgrent_r_proto=0
- ;;
- esac
- ;;
-*) getgrent_r_proto=0
- ;;
-esac
-
-: see if getgrgid_r exists
-set getgrgid_r d_getgrgid_r
-eval $inlibc
-case "$d_getgrgid_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
- case "$d_getgrgid_r_proto:$usethreads" in
- ":define") d_getgrgid_r_proto=define
- set d_getgrgid_r_proto getgrgid_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getgrgid_r_proto" in
- define)
- case "$getgrgid_r_proto" in
- ''|0) try='int getgrgid_r(gid_t, struct group*, char*, size_t, struct group**);'
- ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=I_TSBWR ;;
- esac
- case "$getgrgid_r_proto" in
- ''|0) try='int getgrgid_r(gid_t, struct group*, char*, int, struct group**);'
- ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=I_TSBIR ;;
- esac
- case "$getgrgid_r_proto" in
- ''|0) try='int getgrgid_r(gid_t, struct group*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=I_TSBI ;;
- esac
- case "$getgrgid_r_proto" in
- ''|0) try='struct group* getgrgid_r(gid_t, struct group*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=S_TSBI ;;
- esac
- case "$getgrgid_r_proto" in
- ''|0) d_getgrgid_r=undef
- getgrgid_r_proto=0
- echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;;
- * ) case "$getgrgid_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getgrgid_r_proto="REENTRANT_PROTO_$getgrgid_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getgrgid_r has no prototype, not using it." >&4 ;;
- esac
- d_getgrgid_r=undef
- getgrgid_r_proto=0
- ;;
- esac
- ;;
-*) getgrgid_r_proto=0
- ;;
-esac
-
-: see if getgrnam_r exists
-set getgrnam_r d_getgrnam_r
-eval $inlibc
-case "$d_getgrnam_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
- case "$d_getgrnam_r_proto:$usethreads" in
- ":define") d_getgrnam_r_proto=define
- set d_getgrnam_r_proto getgrnam_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getgrnam_r_proto" in
- define)
- case "$getgrnam_r_proto" in
- ''|0) try='int getgrnam_r(const char*, struct group*, char*, size_t, struct group**);'
- ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=I_CSBWR ;;
- esac
- case "$getgrnam_r_proto" in
- ''|0) try='int getgrnam_r(const char*, struct group*, char*, int, struct group**);'
- ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=I_CSBIR ;;
- esac
- case "$getgrnam_r_proto" in
- ''|0) try='struct group* getgrnam_r(const char*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=S_CBI ;;
- esac
- case "$getgrnam_r_proto" in
- ''|0) try='int getgrnam_r(const char*, struct group*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=I_CSBI ;;
- esac
- case "$getgrnam_r_proto" in
- ''|0) try='struct group* getgrnam_r(const char*, struct group*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=S_CSBI ;;
- esac
- case "$getgrnam_r_proto" in
- ''|0) d_getgrnam_r=undef
- getgrnam_r_proto=0
- echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;;
- * ) case "$getgrnam_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getgrnam_r_proto="REENTRANT_PROTO_$getgrnam_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getgrnam_r has no prototype, not using it." >&4 ;;
- esac
- d_getgrnam_r=undef
- getgrnam_r_proto=0
- ;;
- esac
- ;;
-*) getgrnam_r_proto=0
- ;;
-esac
-
-: see if gethostbyaddr exists
-set gethostbyaddr d_gethbyaddr
-eval $inlibc
-
-: see if gethostbyname exists
-set gethostbyname d_gethbyname
-eval $inlibc
-
-: see if gethostent exists
-set gethostent d_gethent
-eval $inlibc
-
-: see how we will look up host name
-echo " "
-call=''
-if set gethostname val -f d_gethname; eval $csym; $val; then
- echo 'gethostname() found.' >&4
- d_gethname="$define"
- call=gethostname
-fi
-if set uname val -f d_uname; eval $csym; $val; then
- if ./xenix; then
- $cat <<'EOM'
-uname() was found, but you're running xenix, and older versions of xenix
-have a broken uname(). If you don't really know whether your xenix is old
-enough to have a broken system call, use the default answer.
-
-EOM
- dflt=y
- case "$d_uname" in
- "$define") dflt=n;;
- esac
- rp='Is your uname() broken?'
- . ./myread
- case "$ans" in
- n*) d_uname="$define"; call=uname;;
- esac
- else
- echo 'uname() found.' >&4
- d_uname="$define"
- case "$call" in
- '') call=uname ;;
- esac
- fi
-fi
-case "$d_gethname" in
-'') d_gethname="$undef";;
-esac
-case "$d_uname" in
-'') d_uname="$undef";;
-esac
-case "$d_uname$d_gethname" in
-*define*)
- dflt=n
- cat <<EOM
-
-Every now and then someone has a $call() that lies about the hostname
-but can't be fixed for political or economic reasons. If you wish, I can
-pretend $call() isn't there and maybe compute hostname at run-time
-thanks to the '$phostname' command.
-
-EOM
- rp="Shall I ignore $call() from now on?"
- . ./myread
- case "$ans" in
- y*) d_uname="$undef" d_gethname="$undef"; $echo $n "Okay...$c";;
- esac;;
-esac
-case "$phostname" in
-'') aphostname='';;
-*) case "$aphostname" in
- /*) ;;
- *) set X $phostname
- shift
- file=$1
- shift
- file=`./loc $file $file $pth`
- aphostname=`echo $file $*`
- ;;
- esac
- ;;
-esac
-case "$d_uname$d_gethname" in
-*define*) ;;
-*)
- case "$phostname" in
- '')
- echo "There will be no way for $package to get your hostname." >&4;;
- *)
- echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
- ;;
- esac;;
-esac
-case "$d_phostname" in
-'') d_phostname="$undef";;
-esac
-
-: see if gethostbyaddr_r exists
-set gethostbyaddr_r d_gethostbyaddr_r
-eval $inlibc
-case "$d_gethostbyaddr_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_gethostbyaddr_r_proto:$usethreads" in
- ":define") d_gethostbyaddr_r_proto=define
- set d_gethostbyaddr_r_proto gethostbyaddr_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_gethostbyaddr_r_proto" in
- define)
- case "$gethostbyaddr_r_proto" in
- ''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, struct hostent**, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=I_CWISBWRE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=S_CWISBWIE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=S_CWISBIE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='struct hostent* gethostbyaddr_r(const void*, size_t, int, struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=S_TWISBIE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='struct hostent* gethostbyaddr_r(const char*, int, int, struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=S_CIISBIE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='struct hostent* gethostbyaddr_r(const char*, struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=S_CSBIE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='struct hostent* gethostbyaddr_r(const void*, struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=S_TSBIE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=I_CWISD ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='int gethostbyaddr_r(const char*, int, int, struct hostent*, struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=I_CIISD ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='int gethostbyaddr_r(const char*, int, int);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=I_CII ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) try='int gethostbyaddr_r(const void*, socklen_t, int, struct hostent*, char*, size_t, struct hostent**, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyaddr_r_proto=I_TsISBWRE ;;
- esac
- case "$gethostbyaddr_r_proto" in
- ''|0) d_gethostbyaddr_r=undef
- gethostbyaddr_r_proto=0
- echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;;
- * ) case "$gethostbyaddr_r_proto" in
- REENTRANT_PROTO*) ;;
- *) gethostbyaddr_r_proto="REENTRANT_PROTO_$gethostbyaddr_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "gethostbyaddr_r has no prototype, not using it." >&4 ;;
- esac
- d_gethostbyaddr_r=undef
- gethostbyaddr_r_proto=0
- ;;
- esac
- ;;
-*) gethostbyaddr_r_proto=0
- ;;
-esac
-
-: see if gethostbyname_r exists
-set gethostbyname_r d_gethostbyname_r
-eval $inlibc
-case "$d_gethostbyname_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_gethostbyname_r_proto:$usethreads" in
- ":define") d_gethostbyname_r_proto=define
- set d_gethostbyname_r_proto gethostbyname_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_gethostbyname_r_proto" in
- define)
- case "$gethostbyname_r_proto" in
- ''|0) try='int gethostbyname_r(const char*, struct hostent*, char*, size_t, struct hostent**, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyname_r_proto=I_CSBWRE ;;
- esac
- case "$gethostbyname_r_proto" in
- ''|0) try='struct hostent* gethostbyname_r(const char*, struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyname_r_proto=S_CSBIE ;;
- esac
- case "$gethostbyname_r_proto" in
- ''|0) try='int gethostbyname_r(const char*, struct hostent*, struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && gethostbyname_r_proto=I_CSD ;;
- esac
- case "$gethostbyname_r_proto" in
- ''|0) d_gethostbyname_r=undef
- gethostbyname_r_proto=0
- echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;;
- * ) case "$gethostbyname_r_proto" in
- REENTRANT_PROTO*) ;;
- *) gethostbyname_r_proto="REENTRANT_PROTO_$gethostbyname_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "gethostbyname_r has no prototype, not using it." >&4 ;;
- esac
- d_gethostbyname_r=undef
- gethostbyname_r_proto=0
- ;;
- esac
- ;;
-*) gethostbyname_r_proto=0
- ;;
-esac
-
-: see if gethostent_r exists
-set gethostent_r d_gethostent_r
-eval $inlibc
-case "$d_gethostent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_gethostent_r_proto:$usethreads" in
- ":define") d_gethostent_r_proto=define
- set d_gethostent_r_proto gethostent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_gethostent_r_proto" in
- define)
- case "$gethostent_r_proto" in
- ''|0) try='int gethostent_r(struct hostent*, char*, size_t, struct hostent**, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostent_r_proto=I_SBWRE ;;
- esac
- case "$gethostent_r_proto" in
- ''|0) try='int gethostent_r(struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostent_r_proto=I_SBIE ;;
- esac
- case "$gethostent_r_proto" in
- ''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && gethostent_r_proto=S_SBIE ;;
- esac
- case "$gethostent_r_proto" in
- ''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && gethostent_r_proto=S_SBI ;;
- esac
- case "$gethostent_r_proto" in
- ''|0) try='int gethostent_r(struct hostent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && gethostent_r_proto=I_SBI ;;
- esac
- case "$gethostent_r_proto" in
- ''|0) try='int gethostent_r(struct hostent*, struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && gethostent_r_proto=I_SD ;;
- esac
- case "$gethostent_r_proto" in
- ''|0) d_gethostent_r=undef
- gethostent_r_proto=0
- echo "Disabling gethostent_r, cannot determine prototype." >&4 ;;
- * ) case "$gethostent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) gethostent_r_proto="REENTRANT_PROTO_$gethostent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "gethostent_r has no prototype, not using it." >&4 ;;
- esac
- d_gethostent_r=undef
- gethostent_r_proto=0
- ;;
- esac
- ;;
-*) gethostent_r_proto=0
- ;;
-esac
-
-: see if prototypes for various gethostxxx netdb.h functions are available
-echo " "
-set d_gethostprotos gethostent $i_netdb netdb.h
-eval $hasproto
-
-: see if getitimer exists
-set getitimer d_getitimer
-eval $inlibc
-
-: see if getlogin exists
-set getlogin d_getlogin
-eval $inlibc
-
-: see if getlogin_r exists
-set getlogin_r d_getlogin_r
-eval $inlibc
-case "$d_getlogin_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h"
- case "$d_getlogin_r_proto:$usethreads" in
- ":define") d_getlogin_r_proto=define
- set d_getlogin_r_proto getlogin_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getlogin_r_proto" in
- define)
- case "$getlogin_r_proto" in
- ''|0) try='int getlogin_r(char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && getlogin_r_proto=I_BW ;;
- esac
- case "$getlogin_r_proto" in
- ''|0) try='int getlogin_r(char*, int);'
- ./protochk "$extern_C $try" $hdrs && getlogin_r_proto=I_BI ;;
- esac
- case "$getlogin_r_proto" in
- ''|0) try='char* getlogin_r(char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && getlogin_r_proto=B_BW ;;
- esac
- case "$getlogin_r_proto" in
- ''|0) try='char* getlogin_r(char*, int);'
- ./protochk "$extern_C $try" $hdrs && getlogin_r_proto=B_BI ;;
- esac
- case "$getlogin_r_proto" in
- ''|0) d_getlogin_r=undef
- getlogin_r_proto=0
- echo "Disabling getlogin_r, cannot determine prototype." >&4 ;;
- * ) case "$getlogin_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getlogin_r_proto="REENTRANT_PROTO_$getlogin_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getlogin_r has no prototype, not using it." >&4 ;;
- esac
- d_getlogin_r=undef
- getlogin_r_proto=0
- ;;
- esac
- ;;
-*) getlogin_r_proto=0
- ;;
-esac
-
-: see if getmnt exists
-set getmnt d_getmnt
-eval $inlibc
-
-: see if getmntent exists
-set getmntent d_getmntent
-eval $inlibc
-
-: see if getnameinfo exists
-set getnameinfo d_getnameinfo
-eval $inlibc
-
-: see if getnetbyaddr exists
-set getnetbyaddr d_getnbyaddr
-eval $inlibc
-
-: see if getnetbyname exists
-set getnetbyname d_getnbyname
-eval $inlibc
-
-: see if getnetent exists
-set getnetent d_getnent
-eval $inlibc
-
-: see if getnetbyaddr_r exists
-set getnetbyaddr_r d_getnetbyaddr_r
-eval $inlibc
-case "$d_getnetbyaddr_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getnetbyaddr_r_proto:$usethreads" in
- ":define") d_getnetbyaddr_r_proto=define
- set d_getnetbyaddr_r_proto getnetbyaddr_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getnetbyaddr_r_proto" in
- define)
- case "$getnetbyaddr_r_proto" in
- ''|0) try='int getnetbyaddr_r(unsigned long, int, struct netent*, char*, size_t, struct netent**, int*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=I_UISBWRE ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='int getnetbyaddr_r(long, int, struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=I_LISBI ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='struct netent* getnetbyaddr_r(in_addr_t, int, struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=S_TISBI ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='struct netent* getnetbyaddr_r(long, int, struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=S_LISBI ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='int getnetbyaddr_r(in_addr_t, int, struct netent*, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=I_TISD ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='int getnetbyaddr_r(long, int, struct netent*, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=I_LISD ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='int getnetbyaddr_r(int, int, struct netent*, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=I_IISD ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) try='int getnetbyaddr_r(uint32_t, int, struct netent*, char*, size_t, struct netent**, int*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyaddr_r_proto=I_uISBWRE ;;
- esac
- case "$getnetbyaddr_r_proto" in
- ''|0) d_getnetbyaddr_r=undef
- getnetbyaddr_r_proto=0
- echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;;
- * ) case "$getnetbyaddr_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getnetbyaddr_r_proto="REENTRANT_PROTO_$getnetbyaddr_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getnetbyaddr_r has no prototype, not using it." >&4 ;;
- esac
- d_getnetbyaddr_r=undef
- getnetbyaddr_r_proto=0
- ;;
- esac
- ;;
-*) getnetbyaddr_r_proto=0
- ;;
-esac
-
-: see if getnetbyname_r exists
-set getnetbyname_r d_getnetbyname_r
-eval $inlibc
-case "$d_getnetbyname_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getnetbyname_r_proto:$usethreads" in
- ":define") d_getnetbyname_r_proto=define
- set d_getnetbyname_r_proto getnetbyname_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getnetbyname_r_proto" in
- define)
- case "$getnetbyname_r_proto" in
- ''|0) try='int getnetbyname_r(const char*, struct netent*, char*, size_t, struct netent**, int*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyname_r_proto=I_CSBWRE ;;
- esac
- case "$getnetbyname_r_proto" in
- ''|0) try='int getnetbyname_r(const char*, struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetbyname_r_proto=I_CSBI ;;
- esac
- case "$getnetbyname_r_proto" in
- ''|0) try='struct netent* getnetbyname_r(const char*, struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetbyname_r_proto=S_CSBI ;;
- esac
- case "$getnetbyname_r_proto" in
- ''|0) try='int getnetbyname_r(const char*, struct netent*, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && getnetbyname_r_proto=I_CSD ;;
- esac
- case "$getnetbyname_r_proto" in
- ''|0) d_getnetbyname_r=undef
- getnetbyname_r_proto=0
- echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;;
- * ) case "$getnetbyname_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getnetbyname_r_proto="REENTRANT_PROTO_$getnetbyname_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getnetbyname_r has no prototype, not using it." >&4 ;;
- esac
- d_getnetbyname_r=undef
- getnetbyname_r_proto=0
- ;;
- esac
- ;;
-*) getnetbyname_r_proto=0
- ;;
-esac
-
-: see if getnetent_r exists
-set getnetent_r d_getnetent_r
-eval $inlibc
-case "$d_getnetent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getnetent_r_proto:$usethreads" in
- ":define") d_getnetent_r_proto=define
- set d_getnetent_r_proto getnetent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getnetent_r_proto" in
- define)
- case "$getnetent_r_proto" in
- ''|0) try='int getnetent_r(struct netent*, char*, size_t, struct netent**, int*);'
- ./protochk "$extern_C $try" $hdrs && getnetent_r_proto=I_SBWRE ;;
- esac
- case "$getnetent_r_proto" in
- ''|0) try='int getnetent_r(struct netent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && getnetent_r_proto=I_SBIE ;;
- esac
- case "$getnetent_r_proto" in
- ''|0) try='struct netent* getnetent_r(struct netent*, char*, int, int*);'
- ./protochk "$extern_C $try" $hdrs && getnetent_r_proto=S_SBIE ;;
- esac
- case "$getnetent_r_proto" in
- ''|0) try='struct netent* getnetent_r(struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetent_r_proto=S_SBI ;;
- esac
- case "$getnetent_r_proto" in
- ''|0) try='int getnetent_r(struct netent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getnetent_r_proto=I_SBI ;;
- esac
- case "$getnetent_r_proto" in
- ''|0) try='int getnetent_r(struct netent*, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && getnetent_r_proto=I_SD ;;
- esac
- case "$getnetent_r_proto" in
- ''|0) d_getnetent_r=undef
- getnetent_r_proto=0
- echo "Disabling getnetent_r, cannot determine prototype." >&4 ;;
- * ) case "$getnetent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getnetent_r_proto="REENTRANT_PROTO_$getnetent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getnetent_r has no prototype, not using it." >&4 ;;
- esac
- d_getnetent_r=undef
- getnetent_r_proto=0
- ;;
- esac
- ;;
-*) getnetent_r_proto=0
- ;;
-esac
-
-: see if prototypes for various getnetxxx netdb.h functions are available
-echo " "
-set d_getnetprotos getnetent $i_netdb netdb.h
-eval $hasproto
-
-: see if getpagesize exists
-set getpagesize d_getpagsz
-eval $inlibc
-
-: Optional checks for getprotobyname and getprotobynumber
-
-: see if getprotobyname exists
-set getprotobyname d_getpbyname
-eval $inlibc
-
-: see if getprotobynumber exists
-set getprotobynumber d_getpbynumber
-eval $inlibc
-
-: see if getprotoent exists
-set getprotoent d_getpent
-eval $inlibc
-
-: see if getpgid exists
-set getpgid d_getpgid
-eval $inlibc
-
-: see if getpgrp2 exists
-set getpgrp2 d_getpgrp2
-eval $inlibc
-
-: see if getppid exists
-set getppid d_getppid
-eval $inlibc
-
-: see if getpriority exists
-set getpriority d_getprior
-eval $inlibc
-
-: see if getprotobyname_r exists
-set getprotobyname_r d_getprotobyname_r
-eval $inlibc
-case "$d_getprotobyname_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getprotobyname_r_proto:$usethreads" in
- ":define") d_getprotobyname_r_proto=define
- set d_getprotobyname_r_proto getprotobyname_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getprotobyname_r_proto" in
- define)
- case "$getprotobyname_r_proto" in
- ''|0) try='int getprotobyname_r(const char*, struct protoent*, char*, size_t, struct protoent**);'
- ./protochk "$extern_C $try" $hdrs && getprotobyname_r_proto=I_CSBWR ;;
- esac
- case "$getprotobyname_r_proto" in
- ''|0) try='struct protoent* getprotobyname_r(const char*, struct protoent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getprotobyname_r_proto=S_CSBI ;;
- esac
- case "$getprotobyname_r_proto" in
- ''|0) try='int getprotobyname_r(const char*, struct protoent*, struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && getprotobyname_r_proto=I_CSD ;;
- esac
- case "$getprotobyname_r_proto" in
- ''|0) d_getprotobyname_r=undef
- getprotobyname_r_proto=0
- echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;;
- * ) case "$getprotobyname_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getprotobyname_r_proto="REENTRANT_PROTO_$getprotobyname_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getprotobyname_r has no prototype, not using it." >&4 ;;
- esac
- d_getprotobyname_r=undef
- getprotobyname_r_proto=0
- ;;
- esac
- ;;
-*) getprotobyname_r_proto=0
- ;;
-esac
-
-: see if getprotobynumber_r exists
-set getprotobynumber_r d_getprotobynumber_r
-eval $inlibc
-case "$d_getprotobynumber_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getprotobynumber_r_proto:$usethreads" in
- ":define") d_getprotobynumber_r_proto=define
- set d_getprotobynumber_r_proto getprotobynumber_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getprotobynumber_r_proto" in
- define)
- case "$getprotobynumber_r_proto" in
- ''|0) try='int getprotobynumber_r(int, struct protoent*, char*, size_t, struct protoent**);'
- ./protochk "$extern_C $try" $hdrs && getprotobynumber_r_proto=I_ISBWR ;;
- esac
- case "$getprotobynumber_r_proto" in
- ''|0) try='struct protoent* getprotobynumber_r(int, struct protoent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getprotobynumber_r_proto=S_ISBI ;;
- esac
- case "$getprotobynumber_r_proto" in
- ''|0) try='int getprotobynumber_r(int, struct protoent*, struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && getprotobynumber_r_proto=I_ISD ;;
- esac
- case "$getprotobynumber_r_proto" in
- ''|0) d_getprotobynumber_r=undef
- getprotobynumber_r_proto=0
- echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;;
- * ) case "$getprotobynumber_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getprotobynumber_r_proto="REENTRANT_PROTO_$getprotobynumber_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getprotobynumber_r has no prototype, not using it." >&4 ;;
- esac
- d_getprotobynumber_r=undef
- getprotobynumber_r_proto=0
- ;;
- esac
- ;;
-*) getprotobynumber_r_proto=0
- ;;
-esac
-
-: see if getprotoent_r exists
-set getprotoent_r d_getprotoent_r
-eval $inlibc
-case "$d_getprotoent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getprotoent_r_proto:$usethreads" in
- ":define") d_getprotoent_r_proto=define
- set d_getprotoent_r_proto getprotoent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getprotoent_r_proto" in
- define)
- case "$getprotoent_r_proto" in
- ''|0) try='int getprotoent_r(struct protoent*, char*, size_t, struct protoent**);'
- ./protochk "$extern_C $try" $hdrs && getprotoent_r_proto=I_SBWR ;;
- esac
- case "$getprotoent_r_proto" in
- ''|0) try='int getprotoent_r(struct protoent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getprotoent_r_proto=I_SBI ;;
- esac
- case "$getprotoent_r_proto" in
- ''|0) try='struct protoent* getprotoent_r(struct protoent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getprotoent_r_proto=S_SBI ;;
- esac
- case "$getprotoent_r_proto" in
- ''|0) try='int getprotoent_r(struct protoent*, struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && getprotoent_r_proto=I_SD ;;
- esac
- case "$getprotoent_r_proto" in
- ''|0) d_getprotoent_r=undef
- getprotoent_r_proto=0
- echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;;
- * ) case "$getprotoent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getprotoent_r_proto="REENTRANT_PROTO_$getprotoent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getprotoent_r has no prototype, not using it." >&4 ;;
- esac
- d_getprotoent_r=undef
- getprotoent_r_proto=0
- ;;
- esac
- ;;
-*) getprotoent_r_proto=0
- ;;
-esac
-
-: see if prototypes for various getprotoxxx netdb.h functions are available
-echo " "
-set d_getprotoprotos getprotoent $i_netdb netdb.h
-eval $hasproto
-
-: see if getprpwnam exists
-set getprpwnam d_getprpwnam
-eval $inlibc
-
-: see if getpwent exists
-set getpwent d_getpwent
-eval $inlibc
-
-: see if getpwent_r exists
-set getpwent_r d_getpwent_r
-eval $inlibc
-case "$d_getpwent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
- case "$d_getpwent_r_proto:$usethreads" in
- ":define") d_getpwent_r_proto=define
- set d_getpwent_r_proto getpwent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getpwent_r_proto" in
- define)
- case "$getpwent_r_proto" in
- ''|0) try='int getpwent_r(struct passwd*, char*, size_t, struct passwd**);'
- ./protochk "$extern_C $try" $hdrs && getpwent_r_proto=I_SBWR ;;
- esac
- case "$getpwent_r_proto" in
- ''|0) try='int getpwent_r(struct passwd*, char*, int, struct passwd**);'
- ./protochk "$extern_C $try" $hdrs && getpwent_r_proto=I_SBIR ;;
- esac
- case "$getpwent_r_proto" in
- ''|0) try='struct passwd* getpwent_r(struct passwd*, char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && getpwent_r_proto=S_SBW ;;
- esac
- case "$getpwent_r_proto" in
- ''|0) try='struct passwd* getpwent_r(struct passwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getpwent_r_proto=S_SBI ;;
- esac
- case "$getpwent_r_proto" in
- ''|0) try='int getpwent_r(struct passwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getpwent_r_proto=I_SBI ;;
- esac
- case "$getpwent_r_proto" in
- ''|0) try='int getpwent_r(struct passwd*, char*, int, FILE**);'
- ./protochk "$extern_C $try" $hdrs && getpwent_r_proto=I_SBIH ;;
- esac
- case "$getpwent_r_proto" in
- ''|0) d_getpwent_r=undef
- getpwent_r_proto=0
- echo "Disabling getpwent_r, cannot determine prototype." >&4 ;;
- * ) case "$getpwent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getpwent_r_proto="REENTRANT_PROTO_$getpwent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getpwent_r has no prototype, not using it." >&4 ;;
- esac
- d_getpwent_r=undef
- getpwent_r_proto=0
- ;;
- esac
- ;;
-*) getpwent_r_proto=0
- ;;
-esac
-
-: see if getpwnam_r exists
-set getpwnam_r d_getpwnam_r
-eval $inlibc
-case "$d_getpwnam_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
- case "$d_getpwnam_r_proto:$usethreads" in
- ":define") d_getpwnam_r_proto=define
- set d_getpwnam_r_proto getpwnam_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getpwnam_r_proto" in
- define)
- case "$getpwnam_r_proto" in
- ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**);'
- ./protochk "$extern_C $try" $hdrs && getpwnam_r_proto=I_CSBWR ;;
- esac
- case "$getpwnam_r_proto" in
- ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int, struct passwd**);'
- ./protochk "$extern_C $try" $hdrs && getpwnam_r_proto=I_CSBIR ;;
- esac
- case "$getpwnam_r_proto" in
- ''|0) try='struct passwd* getpwnam_r(const char*, struct passwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getpwnam_r_proto=S_CSBI ;;
- esac
- case "$getpwnam_r_proto" in
- ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getpwnam_r_proto=I_CSBI ;;
- esac
- case "$getpwnam_r_proto" in
- ''|0) d_getpwnam_r=undef
- getpwnam_r_proto=0
- echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;;
- * ) case "$getpwnam_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getpwnam_r_proto="REENTRANT_PROTO_$getpwnam_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getpwnam_r has no prototype, not using it." >&4 ;;
- esac
- d_getpwnam_r=undef
- getpwnam_r_proto=0
- ;;
- esac
- ;;
-*) getpwnam_r_proto=0
- ;;
-esac
-
-: see if getpwuid_r exists
-set getpwuid_r d_getpwuid_r
-eval $inlibc
-case "$d_getpwuid_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
- case "$d_getpwuid_r_proto:$usethreads" in
- ":define") d_getpwuid_r_proto=define
- set d_getpwuid_r_proto getpwuid_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getpwuid_r_proto" in
- define)
- case "$getpwuid_r_proto" in
- ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**);'
- ./protochk "$extern_C $try" $hdrs && getpwuid_r_proto=I_TSBWR ;;
- esac
- case "$getpwuid_r_proto" in
- ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int, struct passwd**);'
- ./protochk "$extern_C $try" $hdrs && getpwuid_r_proto=I_TSBIR ;;
- esac
- case "$getpwuid_r_proto" in
- ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getpwuid_r_proto=I_TSBI ;;
- esac
- case "$getpwuid_r_proto" in
- ''|0) try='struct passwd* getpwuid_r(uid_t, struct passwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getpwuid_r_proto=S_TSBI ;;
- esac
- case "$getpwuid_r_proto" in
- ''|0) d_getpwuid_r=undef
- getpwuid_r_proto=0
- echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;;
- * ) case "$getpwuid_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getpwuid_r_proto="REENTRANT_PROTO_$getpwuid_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getpwuid_r has no prototype, not using it." >&4 ;;
- esac
- d_getpwuid_r=undef
- getpwuid_r_proto=0
- ;;
- esac
- ;;
-*) getpwuid_r_proto=0
- ;;
-esac
-
-: Optional checks for getsbyname and getsbyport
-
-: see if getservbyname exists
-set getservbyname d_getsbyname
-eval $inlibc
-
-: see if getservbyport exists
-set getservbyport d_getsbyport
-eval $inlibc
-
-: see if getservent exists
-set getservent d_getsent
-eval $inlibc
-
-: see if getservbyname_r exists
-set getservbyname_r d_getservbyname_r
-eval $inlibc
-case "$d_getservbyname_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getservbyname_r_proto:$usethreads" in
- ":define") d_getservbyname_r_proto=define
- set d_getservbyname_r_proto getservbyname_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getservbyname_r_proto" in
- define)
- case "$getservbyname_r_proto" in
- ''|0) try='int getservbyname_r(const char*, const char*, struct servent*, char*, size_t, struct servent**);'
- ./protochk "$extern_C $try" $hdrs && getservbyname_r_proto=I_CCSBWR ;;
- esac
- case "$getservbyname_r_proto" in
- ''|0) try='struct servent* getservbyname_r(const char*, const char*, struct servent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getservbyname_r_proto=S_CCSBI ;;
- esac
- case "$getservbyname_r_proto" in
- ''|0) try='int getservbyname_r(const char*, const char*, struct servent*, struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && getservbyname_r_proto=I_CCSD ;;
- esac
- case "$getservbyname_r_proto" in
- ''|0) d_getservbyname_r=undef
- getservbyname_r_proto=0
- echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;;
- * ) case "$getservbyname_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getservbyname_r_proto="REENTRANT_PROTO_$getservbyname_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getservbyname_r has no prototype, not using it." >&4 ;;
- esac
- d_getservbyname_r=undef
- getservbyname_r_proto=0
- ;;
- esac
- ;;
-*) getservbyname_r_proto=0
- ;;
-esac
-
-: see if getservbyport_r exists
-set getservbyport_r d_getservbyport_r
-eval $inlibc
-case "$d_getservbyport_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getservbyport_r_proto:$usethreads" in
- ":define") d_getservbyport_r_proto=define
- set d_getservbyport_r_proto getservbyport_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getservbyport_r_proto" in
- define)
- case "$getservbyport_r_proto" in
- ''|0) try='int getservbyport_r(int, const char*, struct servent*, char*, size_t, struct servent**);'
- ./protochk "$extern_C $try" $hdrs && getservbyport_r_proto=I_ICSBWR ;;
- esac
- case "$getservbyport_r_proto" in
- ''|0) try='struct servent* getservbyport_r(int, const char*, struct servent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getservbyport_r_proto=S_ICSBI ;;
- esac
- case "$getservbyport_r_proto" in
- ''|0) try='int getservbyport_r(int, const char*, struct servent*, struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && getservbyport_r_proto=I_ICSD ;;
- esac
- case "$getservbyport_r_proto" in
- ''|0) d_getservbyport_r=undef
- getservbyport_r_proto=0
- echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;;
- * ) case "$getservbyport_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getservbyport_r_proto="REENTRANT_PROTO_$getservbyport_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getservbyport_r has no prototype, not using it." >&4 ;;
- esac
- d_getservbyport_r=undef
- getservbyport_r_proto=0
- ;;
- esac
- ;;
-*) getservbyport_r_proto=0
- ;;
-esac
-
-: see if getservent_r exists
-set getservent_r d_getservent_r
-eval $inlibc
-case "$d_getservent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_getservent_r_proto:$usethreads" in
- ":define") d_getservent_r_proto=define
- set d_getservent_r_proto getservent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getservent_r_proto" in
- define)
- case "$getservent_r_proto" in
- ''|0) try='int getservent_r(struct servent*, char*, size_t, struct servent**);'
- ./protochk "$extern_C $try" $hdrs && getservent_r_proto=I_SBWR ;;
- esac
- case "$getservent_r_proto" in
- ''|0) try='int getservent_r(struct servent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getservent_r_proto=I_SBI ;;
- esac
- case "$getservent_r_proto" in
- ''|0) try='struct servent* getservent_r(struct servent*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getservent_r_proto=S_SBI ;;
- esac
- case "$getservent_r_proto" in
- ''|0) try='int getservent_r(struct servent*, struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && getservent_r_proto=I_SD ;;
- esac
- case "$getservent_r_proto" in
- ''|0) d_getservent_r=undef
- getservent_r_proto=0
- echo "Disabling getservent_r, cannot determine prototype." >&4 ;;
- * ) case "$getservent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getservent_r_proto="REENTRANT_PROTO_$getservent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getservent_r has no prototype, not using it." >&4 ;;
- esac
- d_getservent_r=undef
- getservent_r_proto=0
- ;;
- esac
- ;;
-*) getservent_r_proto=0
- ;;
-esac
-
-: see if prototypes for various getservxxx netdb.h functions are available
-echo " "
-set d_getservprotos getservent $i_netdb netdb.h
-eval $hasproto
-
-: see if getspnam exists
-set getspnam d_getspnam
-eval $inlibc
-
-: see if this is a shadow.h system
-set shadow.h i_shadow
-eval $inhdr
-
-: see if getspnam_r exists
-set getspnam_r d_getspnam_r
-eval $inlibc
-case "$d_getspnam_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_shadow shadow.h"
- case "$d_getspnam_r_proto:$usethreads" in
- ":define") d_getspnam_r_proto=define
- set d_getspnam_r_proto getspnam_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_getspnam_r_proto" in
- define)
- case "$getspnam_r_proto" in
- ''|0) try='int getspnam_r(const char*, struct spwd*, char*, size_t, struct spwd**);'
- ./protochk "$extern_C $try" $hdrs && getspnam_r_proto=I_CSBWR ;;
- esac
- case "$getspnam_r_proto" in
- ''|0) try='struct spwd* getspnam_r(const char*, struct spwd*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && getspnam_r_proto=S_CSBI ;;
- esac
- case "$getspnam_r_proto" in
- ''|0) d_getspnam_r=undef
- getspnam_r_proto=0
- echo "Disabling getspnam_r, cannot determine prototype." >&4 ;;
- * ) case "$getspnam_r_proto" in
- REENTRANT_PROTO*) ;;
- *) getspnam_r_proto="REENTRANT_PROTO_$getspnam_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "getspnam_r has no prototype, not using it." >&4 ;;
- esac
- d_getspnam_r=undef
- getspnam_r_proto=0
- ;;
- esac
- ;;
-*) getspnam_r_proto=0
- ;;
-esac
-
-: see if gettimeofday or ftime exists
-set gettimeofday d_gettimeod
-eval $inlibc
-case "$d_gettimeod" in
-"$undef")
- set ftime d_ftime
- eval $inlibc
- ;;
-*)
- val="$undef"; set d_ftime; eval $setvar
- ;;
-esac
-case "$d_gettimeod$d_ftime" in
-"$undef$undef")
- echo " "
- echo 'No ftime() nor gettimeofday() -- timing may be less accurate.' >&4
- ;;
-esac
-
-: see if gmtime_r exists
-set gmtime_r d_gmtime_r
-eval $inlibc
-case "$d_gmtime_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
- case "$d_gmtime_r_proto:$usethreads" in
- ":define") d_gmtime_r_proto=define
- set d_gmtime_r_proto gmtime_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_gmtime_r_proto" in
- define)
- case "$gmtime_r_proto" in
- ''|0) try='struct tm* gmtime_r(const time_t*, struct tm*);'
- ./protochk "$extern_C $try" $hdrs && gmtime_r_proto=S_TS ;;
- esac
- case "$gmtime_r_proto" in
- ''|0) try='int gmtime_r(const time_t*, struct tm*);'
- ./protochk "$extern_C $try" $hdrs && gmtime_r_proto=I_TS ;;
- esac
- case "$gmtime_r_proto" in
- ''|0) d_gmtime_r=undef
- gmtime_r_proto=0
- echo "Disabling gmtime_r, cannot determine prototype." >&4 ;;
- * ) case "$gmtime_r_proto" in
- REENTRANT_PROTO*) ;;
- *) gmtime_r_proto="REENTRANT_PROTO_$gmtime_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "gmtime_r has no prototype, not using it." >&4 ;;
- esac
- d_gmtime_r=undef
- gmtime_r_proto=0
- ;;
- esac
- ;;
-*) gmtime_r_proto=0
- ;;
-esac
-
-: see if hasmntopt exists
-set hasmntopt d_hasmntopt
-eval $inlibc
-
-: see if this is a netinet/in.h or sys/in.h system
-set netinet/in.h i_niin sys/in.h i_sysin
-eval $inhdr
-
-: see if arpa/inet.h has to be included
-set arpa/inet.h i_arpainet
-eval $inhdr
-
-: see if htonl --and friends-- exists
-val=''
-set htonl val
-eval $inlibc
-
-: Maybe they are macros.
-case "$val" in
-$undef)
- $cat >htonl.c <<EOM
-#include <stdio.h>
-#include <sys/types.h>
-#$i_niin I_NETINET_IN
-#$i_sysin I_SYS_IN
-#$i_arpainet I_ARPA_INET
-#ifdef I_NETINET_IN
-#include <netinet/in.h>
-#endif
-#ifdef I_SYS_IN
-#include <sys/in.h>
-#endif
-#ifdef I_ARPA_INET
-#include <arpa/inet.h>
-#endif
-#ifdef htonl
-printf("Defined as a macro.");
-#endif
-EOM
- $cppstdin $cppflags $cppminus < htonl.c >htonl.E 2>/dev/null
- if $contains 'Defined as a macro' htonl.E >/dev/null 2>&1; then
- val="$define"
- echo "But it seems to be defined as a macro." >&4
- fi
- $rm -f htonl.?
- ;;
-esac
-set d_htonl
-eval $setvar
-
-: see if hypot exists
-set hypot d_hypot
-eval $inlibc
-
-: see if ilogb exists
-set ilogb d_ilogb
-eval $inlibc
-
-: see if ilogbl exists
-set ilogbl d_ilogbl
-eval $inlibc
-
-: check whether inet_aton exists
-set inet_aton d_inetaton
-eval $inlibc
-
-: see if inet_ntop exists
-set inet_ntop d_inetntop
-eval $inlibc
-
-: see if inet_pton exists
-set inet_pton d_inetpton
-eval $inlibc
-
-: Look for isascii
-echo " "
-$cat >isascii.c <<EOCP
-#include <stdio.h>
-#include <ctype.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- int c = 'A';
- if (isascii(c))
- exit(0);
- else
- exit(1);
-}
-EOCP
-set isascii
-if eval $compile; then
- echo "isascii() found." >&4
- val="$define"
-else
- echo "isascii() NOT found." >&4
- val="$undef"
-fi
-set d_isascii
-eval $setvar
-$rm -f isascii*
-
-: Look for isblank
-echo " "
-$cat >isblank.c <<'EOCP'
-#include <stdio.h>
-#include <ctype.h>
-int main() {
- int c = ' ';
- if (isblank(c))
- return 0 ;
- else
- return 1 ;
-}
-EOCP
-if $cc $ccflags $ldflags -o isblank isblank.c $libs >/dev/null 2>&1 ; then
- echo "isblank() found." >&4
- val="$define"
-else
- echo "isblank() NOT found." >&4
- val="$undef"
-fi
-set d_isblank
-eval $setvar
-$rm -f isblank*
-
-: check for isfinite
-echo "Checking to see if you have isfinite..." >&4
-$cat >try.c <<EOCP
-#include <math.h>
-int main() { return isfinite(0.0); }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have isfinite."
-else
- val="$undef"
- echo "You do not have isfinite."
-fi
-$rm_try
-set d_isfinite
-eval $setvar
-
-: see if isfinitel exists
-set isfinitel d_isfinitel
-eval $inlibc
-
-: check for isinf
-echo "Checking to see if you have isinf..." >&4
-$cat >try.c <<EOCP
-#include <math.h>
-int main() { return isinf(0.0); }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have isinf."
-else
- val="$undef"
- echo "You do not have isinf."
-fi
-$rm_try
-set d_isinf
-eval $setvar
-
-: see if isinfl exists
-set isinfl d_isinfl
-eval $inlibc
-
-: check for isless
-echo "Checking to see if you have isless..." >&4
-$cat >try.c <<EOCP
-#include <math.h>
-int main() { return isless(2.0, 1.0); }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have isless."
-else
- val="$undef"
- echo "You do not have isless."
-fi
-$rm_try
-set d_isless
-eval $setvar
-
-: check for isnan
-echo "Checking to see if you have isnan..." >&4
-$cat >try.c <<EOCP
-#include <math.h>
-int main() { return isnan(0.0); }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have isnan."
-else
- val="$undef"
- echo "You do not have isnan."
-fi
-$rm_try
-set d_isnan
-eval $setvar
-
-: see if isnanl exists
-set isnanl d_isnanl
-eval $inlibc
-
-: check for isnormal
-echo "Checking to see if you have isnormal..." >&4
-$cat >try.c <<EOCP
-#include <math.h>
-int main() { return isnormal(0.0); }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have isnormal."
-else
- val="$undef"
- echo "You do not have isnormal."
-fi
-$rm_try
-set d_isnormal
-eval $setvar
-
-: see if j0 exists
-set j0 d_j0
-eval $inlibc
-
-: see if j0l exists
-set j0l d_j0l
-eval $inlibc
-
-: see if killpg exists
-set killpg d_killpg
-eval $inlibc
-
-: see if localeconv exists
-set localeconv d_locconv
-eval $inlibc
-
-: see if libc has the POSIX.1-2008 currency locale rules
-case "$d_locconv:$d_lc_monetary_2008" in
-$define:)
- $cat >try.c <<EOCP
-#include <locale.h>
-int main() {
- struct lconv *lc = localeconv();
- char int_p_cs_precedes = lc->int_p_cs_precedes;
- return 0;
-}
-EOCP
- set try
- if eval $compile; then
- d_lc_monetary_2008="$define"
- else
- d_lc_monetary_2008="$undef"
- fi;
- $rm_try
- ;;
-esac
-
-: see if lchown exists
-echo " "
-$cat > try.c <<EOCP
-#include <pwd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#$i_unistd I_UNISTD
-#ifdef I_UNISTD
-# include <unistd.h>
-#endif
-int main(int argc, char *argv[])
-{
- if (lchown("./try.c", -1, getgid()) == -1) {
- exit(EXIT_FAILURE);
- }
- exit(EXIT_SUCCESS);
-}
-EOCP
-set try
-if eval $compile && ./try; then
- $echo "lchown() found." >&4
- val="$define"
-else
- $echo "lchown() NOT found." >&4
- val="$undef"
-fi
-set d_lchown
-eval $setvar
-$rm_try
-
-: See if number of significant digits in a double precision number is known
-echo " "
-$cat >ldbl_dig.c <<EOM
-#include <limits.h>
-#include <float.h>
-#ifdef LDBL_DIG
-printf("Contains LDBL_DIG");
-#endif
-EOM
-$cppstdin $cppflags $cppminus < ldbl_dig.c >ldbl_dig.E 2>/dev/null
-if $contains 'LDBL_DIG' ldbl_dig.E >/dev/null 2>&1; then
- echo "LDBL_DIG found." >&4
- val="$define"
-else
- echo "LDBL_DIG NOT found." >&4
- val="$undef"
-fi
-$rm -f ldbl_dig.?
-set d_ldbl_dig
-eval $setvar
-
-: see if lgamma exists
-set lgamma d_lgamma
-eval $inlibc
-
-: see if lgamma_r exists
-set lgamma_r d_lgamma_r
-eval $inlibc
-
-: check to see if math.h defines _LIB_VERSION
-d_libm_lib_version="$undef"
-echo " "
-echo "Checking to see if your libm supports _LIB_VERSION..." >&4
-$cat >try.c <<EOCP
-#include <unistd.h>
-#include <math.h>
-int main (int argc, char *argv[])
-{
- printf ("%d\n", _LIB_VERSION);
- return (0);
- } /* main */
-EOCP
-set try
-if eval $compile; then
- foo=`$run ./try`
- echo "Yes, it does ($foo)" >&4
- d_libm_lib_version="$define"
-else
- echo "No, it does not (probably harmless)" >&4
- fi
-$rm_try
-
-: see if link exists
-set link d_link
-eval $inlibc
-
-: see if llrint exists
-set llrint d_llrint
-eval $inlibc
-
-: see if llrintl exists
-set llrintl d_llrintl
-eval $inlibc
-
-: see if llround exists
-set llround d_llround
-eval $inlibc
-
-: see if llroundl exists
-set llroundl d_llroundl
-eval $inlibc
-
-: see if localtime_r exists
-set localtime_r d_localtime_r
-eval $inlibc
-case "$d_localtime_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
- case "$d_localtime_r_proto:$usethreads" in
- ":define") d_localtime_r_proto=define
- set d_localtime_r_proto localtime_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_localtime_r_proto" in
- define)
- case "$localtime_r_proto" in
- ''|0) try='struct tm* localtime_r(const time_t*, struct tm*);'
- ./protochk "$extern_C $try" $hdrs && localtime_r_proto=S_TS ;;
- esac
- case "$localtime_r_proto" in
- ''|0) try='int localtime_r(const time_t*, struct tm*);'
- ./protochk "$extern_C $try" $hdrs && localtime_r_proto=I_TS ;;
- esac
- case "$localtime_r_proto" in
- ''|0) d_localtime_r=undef
- localtime_r_proto=0
- echo "Disabling localtime_r, cannot determine prototype." >&4 ;;
- * ) case "$localtime_r_proto" in
- REENTRANT_PROTO*) ;;
- *) localtime_r_proto="REENTRANT_PROTO_$localtime_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "localtime_r has no prototype, not using it." >&4 ;;
- esac
- d_localtime_r=undef
- localtime_r_proto=0
- ;;
- esac
- ;;
-*) localtime_r_proto=0
- ;;
-esac
-
-: see if localtime_r calls tzset
-case "$localtime_r_proto" in
-REENTRANT_PROTO*)
- $cat >try.c <<EOCP
-/* Does our libc's localtime_r call tzset ?
- * return 0 if so, 1 otherwise.
- */
-#$i_systypes I_SYS_TYPES
-#$i_unistd I_UNISTD
-#$i_time I_TIME
-#$i_stdlib I_STDLIB
-#$i_malloc I_MALLOC
-#ifdef I_SYS_TYPES
-# include <sys/types.h>
-#endif
-#ifdef I_UNISTD
-# include <unistd.h>
-#endif
-#ifdef I_TIME
-# include <time.h>
-#endif
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <string.h>
-#ifdef I_MALLOC
-# include <malloc.h>
-#endif
-int main()
-{
- int result = 0;
- time_t t = time(0L);
- char w_tz[]="TZ" "=GMT+5",
- e_tz[]="TZ" "=GMT-5",
- *tz_e = (char*)malloc(16),
- *tz_w = (char*)malloc(16);
- struct tm tm_e, tm_w;
- memset(&tm_e,'\0',sizeof(struct tm));
- memset(&tm_w,'\0',sizeof(struct tm));
- strcpy(tz_e,e_tz);
- strcpy(tz_w,w_tz);
-
- putenv(tz_e);
- localtime_r(&t, &tm_e);
-
- putenv(tz_w);
- localtime_r(&t, &tm_w);
-
- if( memcmp(&tm_e, &tm_w, sizeof(struct tm)) == 0 )
- result = 1;
-
- free(tz_e);free(tz_w);
- return result;
-}
-EOCP
- set try
- if eval $compile; then
- if $run ./try; then
- d_localtime_r_needs_tzset=undef;
- else
- d_localtime_r_needs_tzset=define;
- fi;
- else
- d_localtime_r_needs_tzset=undef;
- fi;
- ;;
- *)
- d_localtime_r_needs_tzset=undef;
- ;;
-esac
-$rm_try
-
-: see if lockf exists
-set lockf d_lockf
-eval $inlibc
-
-: see if log1p exists
-set log1p d_log1p
-eval $inlibc
-
-: see if log2 exists
-set log2 d_log2
-eval $inlibc
-
-: see if logb exists
-set logb d_logb
-eval $inlibc
-
-: see if lrint exists
-set lrint d_lrint
-eval $inlibc
-
-: see if lrintl exists
-set lrintl d_lrintl
-eval $inlibc
-
-: see if lround exists
-set lround d_lround
-eval $inlibc
-
-: see if lroundl exists
-set lroundl d_lroundl
-eval $inlibc
-
-: see if prototype for lseek is available
-echo " "
-set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h
-eval $hasproto
-
-: see if lstat exists
-set lstat d_lstat
-eval $inlibc
-
-: see if madvise exists
-set madvise d_madvise
-eval $inlibc
-
-: see if malloc_size exists
-set malloc_size d_malloc_size
-eval $inlibc
-
-: see if malloc_size_good exists
-set malloc_good_size d_malloc_good_size
-eval $inlibc
-
-: see if malloc_usable_size exists
-set malloc_usable_size d_malloc_usable_size
-eval $inlibc
-
-: see if mblen exists
-set mblen d_mblen
-eval $inlibc
-
-: see if mbrlen exists
-set mbrlen d_mbrlen
-eval $inlibc
-
-: see if mbrtowc exists
-set mbrtowc d_mbrtowc
-eval $inlibc
-
-: see if mbstowcs exists
-set mbstowcs d_mbstowcs
-eval $inlibc
-
-: see if mbtowc exists
-set mbtowc d_mbtowc
-eval $inlibc
-
-: see if memmem exists
-: We need both a prototype in string.h and the symbol in libc.
-echo " "
-d_memmem_proto=''
-xx1="#$d_gnulibc HAS_GNULIBC"
-xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
-xx3='# define _GNU_SOURCE'
-xx4='#endif'
-set d_memmem_proto memmem literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
-eval $hasproto
-case "$d_memmem_proto" in
- define) # see if memmem exists
- set memmem d_memmem
- eval $inlibc
- ;;
- *) val=$undef
- set d_memmem
- eval $setvar
- ;;
-esac
-
-: see if memrchr exists
-: We need both a prototype in string.h and the symbol in libc.
-echo " "
-d_memrchr_proto=''
-xx1="#$d_gnulibc HAS_GNULIBC"
-xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
-xx3='# define _GNU_SOURCE'
-xx4='#endif'
-set d_memrchr_proto memrchr literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
-eval $hasproto
-case "$d_memrchr_proto" in
- define) # see if memrchr exists
- set memrchr d_memrchr
- eval $inlibc
- ;;
- *) val=$undef
- set d_memrchr
- eval $setvar
- ;;
-esac
-
-: see if mkdir exists
-set mkdir d_mkdir
-eval $inlibc
-
-: see if mkdtemp exists
-set mkdtemp d_mkdtemp
-eval $inlibc
-
-: see if mkfifo exists
-set mkfifo d_mkfifo
-eval $inlibc
-
-: see if mkostemp exists
-set mkostemp d_mkostemp
-eval $inlibc
-
-: see if mkstemp exists
-set mkstemp d_mkstemp
-eval $inlibc
-
-: see if mkstemps exists
-set mkstemps d_mkstemps
-eval $inlibc
-
-: see if mktime exists
-set mktime d_mktime
-eval $inlibc
-
-: see if sys/mman.h has to be included
-set sys/mman.h i_sysmman
-eval $inhdr
-
-: see if mmap exists
-set mmap d_mmap
-eval $inlibc
-: see what shmat returns
-: default to something harmless
-mmaptype='void *'
-case "$i_sysmman$d_mmap" in
-"$define$define")
- $cat >mmap.c <<'END'
-#include <sys/mman.h>
-void *mmap();
-END
- if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
- mmaptype='void *'
- else
- mmaptype='caddr_t'
- fi
- echo "and it returns ($mmaptype)." >&4
- ;;
-esac
-
-: see if sqrtl exists
-set sqrtl d_sqrtl
-eval $inlibc
-
-: see if scalbnl exists
-set scalbnl d_scalbnl
-eval $inlibc
-
-: see if truncl exists
-set truncl d_truncl
-eval $inlibc
-
-: see if modfl exists
-set modfl d_modfl
-eval $inlibc
-
-: see if prototype for modfl is available
-echo " "
-set d_modflproto modfl define math.h
-eval $hasproto
-
-if $test "$uselongdouble" = "$define"; then
- message=""
- if $test "$d_sqrtl" != "$define"; then
- message="$message sqrtl"
- fi
- if $test "$d_modfl" != "$define"; then
- if $test "$d_truncl:$d_copysignl" = "$define:$define"; then
- echo "You have both truncl and copysignl, so I can emulate modfl."
- else
- if $test "$d_aintl:$d_copysignl" = "$define:$define"; then
- echo "You have both aintl and copysignl, so I can emulate modfl."
- else
- message="$message modfl"
- fi
- fi
- fi
- if $test "$d_frexpl" != "$define"; then
- if $test "$d_ilogbl:$d_scalbnl" = "$define:$define"; then
- echo "You have both ilogbl and scalbnl, so I can emulate frexpl."
- else
- message="$message frexpl"
- fi
- fi
- if $test "$d_ldexpl" != "$define"; then
- message="$message ldexpl"
- fi
-
- if $test "$message" != ""; then
- $cat <<EOM >&4
-
-*** You requested the use of long doubles but you do not seem to have
-*** the following mathematical functions needed for long double support:
-*** $message
-*** Please rerun Configure without -Duselongdouble and/or -Dusemorebits.
-*** Cannot continue, aborting.
-
-EOM
-
- exit 1
- fi
-fi
-
-: see if mprotect exists
-set mprotect d_mprotect
-eval $inlibc
-
-: see if msgctl exists
-set msgctl d_msgctl
-eval $inlibc
-
-: see if msgget exists
-set msgget d_msgget
-eval $inlibc
-
-: see if msgsnd exists
-set msgsnd d_msgsnd
-eval $inlibc
-
-: see if msgrcv exists
-set msgrcv d_msgrcv
-eval $inlibc
-
-: see how much of the 'msg*(2)' library is present.
-h_msg=true
-echo " "
-case "$d_msgctl$d_msgget$d_msgsnd$d_msgrcv" in
-*"$undef"*) h_msg=false;;
-esac
-case "$osname" in
-freebsd)
- case "`ipcs 2>&1`" in
- "SVID messages"*"not configured"*)
- echo "Your $osname does not have the msg*(2) configured." >&4
- h_msg=false
- val="$undef"
- set msgctl d_msgctl
- eval $setvar
- set msgget d_msgget
- eval $setvar
- set msgsnd d_msgsnd
- eval $setvar
- set msgrcv d_msgrcv
- eval $setvar
- ;;
- esac
- ;;
-esac
-: we could also check for sys/ipc.h ...
-if $h_msg && $test `./findhdr sys/msg.h`; then
- echo "You have the full msg*(2) library." >&4
- val="$define"
-else
- echo "You don't have the full msg*(2) library." >&4
- val="$undef"
-fi
-set d_msg
-eval $setvar
-
-: Check for msghdr_s
-echo " "
-echo "Checking to see if your system supports struct msghdr..." >&4
-set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
-eval $hasstruct
-case "$d_msghdr_s" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-
-: see if msync exists
-set msync d_msync
-eval $inlibc
-
-: see if munmap exists
-set munmap d_munmap
-eval $inlibc
-
-: see if nan exists
-set nan d_nan
-eval $inlibc
-
-: see if nanosleep exists
-set nanosleep d_nanosleep
-eval $inlibc
-
-: see if nearbyint exists
-set nearbyint d_nearbyint
-eval $inlibc
-
-: see if nextafter exists
-set nextafter d_nextafter
-eval $inlibc
-
-: see if nexttoward exists
-set nexttoward d_nexttoward
-eval $inlibc
-
-: see if nice exists
-set nice d_nice
-eval $inlibc
-
-: see if this is a langinfo.h system
-set langinfo.h i_langinfo
-eval $inhdr
-
-: see if nl_langinfo exists
-set nl_langinfo d_nl_langinfo
-eval $inlibc
-
-: see if locale.h is available
-set locale.h i_locale
-eval $inhdr
-
-: check for nl_langinfo_l item
-$cat <<EOM
-
-Checking to see if you have nl_langinfo_l(), and that it is thread-safe
-EOM
-$cat >try.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-# include <stdlib.h>
-#endif
-#include <string.h>
-#$i_langinfo I_LANGINFO
-#ifdef I_LANGINFO
-# include <langinfo.h>
-#endif
-#$i_pthread I_PTHREAD
-#ifdef I_PTHREAD
-# include <pthread.h>
-#endif
-#$i_locale I_LOCALE
-#ifdef I_LOCALE
-# include <locale.h>
-#endif
-
-void *
-thread_start(void * arg)
-{
- nl_langinfo(RADIXCHAR);
-}
-
-int main() {
- char * main_buffer;
- char save_main_buffer[1000];
- pthread_t subthread;
- pthread_attr_t attr;
-
- main_buffer = nl_langinfo_l(CODESET, newlocale(LC_ALL_MASK, "C", 0));
-
- /* If too large for our generous allowance, just assume we don't have
- * it. */
- if (strlen(main_buffer) >= sizeof(save_main_buffer)) {
- exit(1);
- }
-
- strcpy(save_main_buffer, main_buffer);
-
- if (pthread_attr_init(&attr) != 0) {
- exit(1);
- }
-
- if (pthread_create(&subthread, &attr, thread_start, NULL) != 0) {
- exit(1);
- }
-
- if (pthread_join(subthread, NULL) != 0) {
- exit(1);
- }
-
- exit(! (strcmp(main_buffer, save_main_buffer) == 0));
-}
-EOCP
-case "$usethreads" in
- define)
- set try
- if eval $compile; then
- echo "Your system has nl_langinfo_l()..." >&4
- d_nl_langinfo_l="$define"
- echo "$d_nl_langinfo_l" >&4
- if $run ./try; then
- echo "and it is thread-safe (just as I'd hoped)." >&4
- d_thread_safe_nl_langinfo_l="$define"
- echo "$d_thread_safe_nl_langinfo_l" >&4
- else
- echo "but it isn't thread-safe." >&4
- fi
- else
- echo "your system does not have nl_langinfo_l()" >&4
- fi
- ;;
- *) echo "Since threads aren't selected, we won't bother looking for nl_langinfo_l()" >&4
-esac
-if test X"$d_nl_langinfo_l" = X; then
- d_nl_langinfo_l="$undef"
-fi
-if test X"$d_thread_safe_nl_langinfo_l" = X; then
- d_thread_safe_nl_langinfo_l="$undef"
-fi
-$rm_try
-
-: Look for non 'int'-sized bitfields
-case "$d_non_int_bitfields" in
-'')
-echo " " >&4
-echo "Checking whether your compiler can handle struct bitfields that aren't 'int' or 'unsigned int' ..." >&4
-$cat >try.c <<'EOCP'
-#include <stdio.h>
-struct foo {
- unsigned char byte:1;
- unsigned short halfword:1;
-} bar;
-EOCP
-if $cc $ccflags -c try.c >try.out 2>&1 ; then
- if $compiler_warning try.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't support struct bitfields that aren't 'int' or 'unsigned int'." >&4
- val="$undef"
- else
- echo "Your C compiler supports struct bitfields besides 'int' and 'unsigned int'." >&4
- val="$define"
- fi
-else
- echo "Your C compiler doesn't seem to understand struct bitfields that aren't 'int' or 'unsigned int' at all." >&4
- val="$undef"
-fi
-;;
-*) val="$d_non_int_bitfields" ;;
-esac
-set d_non_int_bitfields
-eval $setvar
-$rm_try
-
-: see if this is a quadmath.h system
-set quadmath.h i_quadmath
-eval $inhdr
-
-: Check basic sizes
-echo " "
-$echo "Choosing the C types to be used for Perl's internal types..." >&4
-
-case "$use64bitint:$d_quad:$quadtype" in
-define:define:?*)
- ivtype="$quadtype"
- uvtype="$uquadtype"
- ivsize=8
- uvsize=8
- ;;
-*) ivtype="long"
- uvtype="unsigned long"
- ivsize=$longsize
- uvsize=$longsize
- ;;
-esac
-
-case "$uselongdouble:$d_longdbl" in
-define:define)
- nvtype="long double"
- nvsize=$longdblsize
- ;;
-*) nvtype=double
- nvsize=$doublesize
- ;;
-esac
-
-case "$usequadmath:$i_quadmath" in
-define:define)
- nvtype="__float128"
- nvsize=16
- case "$libs" in
- *quadmath*) ;;
- *) $cat <<EOM >&4
-
-*** You requested the use of the quadmath library, but you
-*** do not seem to have the quadmath library installed.
-*** Cannot continue, aborting.
-EOM
- exit 1
- ;;
- esac
- ;;
-define:*) $cat <<EOM >&4
-
-*** You requested the use of the quadmath library, but you
-*** do not seem to have the required header, <quadmath.h>.
-EOM
- case "$gccversion" in
- [23].*|4.[0-5]*)
- $cat <<EOM >&4
-*** Your gcc looks a bit old:
-*** $gccversion
-EOM
- ;;
- '')
- $cat <<EOM >&4
-*** You are not running a gcc.
-EOM
- ;;
- esac
- $cat <<EOM >&4
-*** For the quadmath library you need at least gcc 4.6.
-*** Cannot continue, aborting.
-EOM
- exit 1
- ;;
-esac
-
-$echo "(IV will be "$ivtype", $ivsize bytes)"
-$echo "(UV will be "$uvtype", $uvsize bytes)"
-$echo "(NV will be "$nvtype", $nvsize bytes)"
-
-$cat >try.c <<EOCP
-#$i_inttypes I_INTTYPES
-#ifdef I_INTTYPES
-#include <inttypes.h>
-#endif
-#include <stdio.h>
-int main() {
-#ifdef INT8
- int8_t i = INT8_MAX;
- uint8_t u = UINT8_MAX;
- printf("int8_t\n");
-#endif
-#ifdef INT16
- int16_t i = INT16_MAX;
- uint16_t u = UINT16_MAX;
- printf("int16_t\n");
-#endif
-#ifdef INT32
- int32_t i = INT32_MAX;
- uint32_t u = UINT32_MAX;
- printf("int32_t\n");
-#endif
-}
-EOCP
-
-i8type="signed char"
-u8type="unsigned char"
-i8size=1
-u8size=1
-
-case "$i16type" in
-'') case "$shortsize" in
- 2) i16type=short
- u16type="unsigned short"
- i16size=$shortsize
- u16size=$shortsize
- ;;
- esac
- ;;
-esac
-case "$i16type" in
-'') set try -DINT16
- if eval $compile; then
- case "`$run ./try`" in
- int16_t)
- i16type=int16_t
- u16type=uint16_t
- i16size=2
- u16size=2
- ;;
- esac
- fi
- ;;
-esac
-case "$i16type" in
-'') if $test $shortsize -ge 2; then
- i16type=short
- u16type="unsigned short"
- i16size=$shortsize
- u16size=$shortsize
- fi
- ;;
-esac
-
-case "$i32type" in
-'') case "$longsize" in
- 4) i32type=long
- u32type="unsigned long"
- i32size=$longsize
- u32size=$longsize
- ;;
- *) case "$intsize" in
- 4) i32type=int
- u32type="unsigned int"
- i32size=$intsize
- u32size=$intsize
- ;;
- esac
- ;;
- esac
- ;;
-esac
-case "$i32type" in
-'') set try -DINT32
- if eval $compile; then
- case "`$run ./try`" in
- int32_t)
- i32type=int32_t
- u32type=uint32_t
- i32size=4
- u32size=4
- ;;
- esac
- fi
- ;;
-esac
-case "$i32type" in
-'') if $test $intsize -ge 4; then
- i32type=int
- u32type="unsigned int"
- i32size=$intsize
- u32size=$intsize
- fi
- ;;
-esac
-
-case "$i64type" in
-'') case "$d_quad:$quadtype" in
- define:?*)
- i64type="$quadtype"
- u64type="$uquadtype"
- i64size=8
- u64size=8
- ;;
- esac
- ;;
-esac
-
-$echo "Checking how many bits of your UVs your NVs can preserve..." >&4
-$cat <<EOP >try.c
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#ifdef SIGFPE
-/* volatile so that the compiler has to store it out to memory */
-volatile int bletched = 0;
-$signal_t blech(int s) { bletched = 1; }
-#endif
-int main() {
- $uvtype u = 0;
- $nvtype d;
- int n = 8 * $uvsize;
- int i;
-#ifdef SIGFPE
- signal(SIGFPE, blech);
-#endif
-
- for (i = 0; i < n; i++) {
- u = u << 1 | ($uvtype)1;
- d = ($nvtype)u;
- if (($uvtype)d != u)
- break;
- if (d <= 0)
- break;
- d = ($nvtype)(u - 1);
- if (($uvtype)d != (u - 1))
- break;
-#ifdef SIGFPE
- if (bletched)
- break;
-#endif
- }
- printf("%d\n", ((i == n) ? -n : i));
- exit(0);
-}
-EOP
-set try
-
-d_nv_preserves_uv="$undef"
-if eval $compile; then
- nv_preserves_uv_bits="`$run ./try`"
-fi
-case "$nv_preserves_uv_bits" in
-\-[1-9]*)
- nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits`
- $echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs." >&4
- d_nv_preserves_uv="$define"
- ;;
-[1-9]*) $echo "Your NVs can preserve only $nv_preserves_uv_bits bits of your UVs." >&4
- d_nv_preserves_uv="$undef" ;;
-*) $echo "Can't figure out how many bits your NVs preserve." >&4
- nv_preserves_uv_bits="0" ;;
-esac
-$rm_try
-
-$echo "Checking to find the largest integer value your NVs can hold..." >&4
-$cat <<EOP >try.c
-#include <stdio.h>
-
-typedef $nvtype NV;
-
-int
-main() {
- NV value = 2;
- int count = 1;
-
- while(count < 256) {
- /* volatile so that the compiler has to store it out to memory */
- volatile NV up = value + 1.0;
- volatile NV negated = -value;
- volatile NV down = negated - 1.0;
- volatile NV got_up = up - value;
- int up_good = got_up == 1.0;
- int got_down = down - negated;
- int down_good = got_down == -1.0;
-
- if (down_good != up_good) {
- fprintf(stderr,
- "Inconsistency - up %d %f; down %d %f; for 2**%d (%.20f)\n",
- up_good, (double) got_up, down_good, (double) got_down,
- count, (double) value);
- return 1;
- }
- if (!up_good) {
- while (1) {
- if (count > 8) {
- count -= 8;
- fputs("256.0", stdout);
- } else {
- count--;
- fputs("2.0", stdout);
- }
- if (!count) {
- puts("");
- return 0;
- }
- fputs("*", stdout);
- }
- }
- value *= 2;
- ++count;
- }
- fprintf(stderr, "Cannot overflow integer range, even at 2**%d (%.20f)\n",
- count, (double) value);
- return 1;
-}
-EOP
-set try
-
-nv_overflows_integers_at='0'
-if eval $compile; then
- xxx="`$run ./try`"
- case "$?" in
- 0)
- case "$xxx" in
- 2*) cat >&4 <<EOM
-The largest integer your NVs can preserve is equal to $xxx
-EOM
- nv_overflows_integers_at="$xxx"
- ;;
- *) cat >&4 <<EOM
-Cannot determine the largest integer value your NVs can hold, unexpected output
-'$xxx'
-EOM
- ;;
- esac
- ;;
- *) cat >&4 <<EOM
-Cannot determine the largest integer value your NVs can hold
-EOM
- ;;
- esac
-fi
-$rm_try
-
-$echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
-$cat <<EOP >try.c
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <string.h>
-#include <sys/types.h>
-#include <signal.h>
-#ifdef SIGFPE
-/* volatile so that the compiler has to store it out to memory */
-volatile int bletched = 0;
-$signal_t blech(int s) { bletched = 1; }
-#endif
-
-int checkit($nvtype d, const char *where) {
- void *v = &d;
- unsigned char *p = (unsigned char *)v;
- unsigned char *end = p + sizeof(d);
- int fail = 0;
-
- while (p < end)
- fail += *p++;
-
- if (!fail)
- return 0;
-
- p = (unsigned char *)v;
- printf("No - %s: 0x", where);
- while (p < end)
- printf ("%02X", *p++);
- printf("\n");
- return 1;
-}
-
-int main(int argc, char **argv) {
- $nvtype d = 0.0;
- int fail = 0;
- fail += checkit(d, "0.0");
-
- /* The compiler shouldn't be assuming that bletched is 0 */
- d = bletched;
-
- fail += checkit(d, "bleched");
-
-#ifdef SIGFPE
- signal(SIGFPE, blech);
-#endif
-
- /* Paranoia - the compiler should have no way of knowing that ANSI says
- that argv[argc] will always be NULL. Actually, if it did assume this it
- would be buggy, as this is C and main() can be called from elsewhere in
- the program. */
- d = argv[argc] ? 1 : 0;
-
- if (d) {
- printf("Odd argv[argc]=%p, d=%g\n", argv[argc], d);
- }
-
- fail += checkit(d, "ternary");
-
- memset(&d, sizeof(d), argv[argc] ? 1 : 0);
-
- if (d != 0.0) {
- printf("No - memset doesn't give 0.0\n");
- /* This might just blow up: */
- printf("(gives %g)\n", d);
- return 1;
- }
-
-#ifdef SIGFPE
- if (bletched) {
- printf("No - something bleched\n");
- return 1;
- }
-#endif
- if (fail) {
- printf("No - %d fail(s)\n", fail);
- return 1;
- }
- printf("Yes\n");
- return 0;
-}
-EOP
-set try
-
-d_nv_zero_is_allbits_zero="$undef"
-if eval $compile; then
- xxx="`$run ./try`"
- case "$?" in
- 0)
- case "$xxx" in
- Yes) cat >&4 <<EOM
-0.0 is represented as all bits zero in memory
-EOM
- d_nv_zero_is_allbits_zero="$define"
- ;;
- *) cat >&4 <<EOM
-0.0 is not represented as all bits zero in memory
-EOM
- d_nv_zero_is_allbits_zero="$undef"
- ;;
- esac
- ;;
- *) cat >&4 <<EOM
-0.0 is not represented as all bits zero in memory
-EOM
- d_nv_zero_is_allbits_zero="$undef"
- ;;
- esac
-fi
-$rm_try
-
-: check for off64_t
-echo " "
-echo "Checking to see if you have off64_t..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#include <unistd.h>
-int main() { off64_t x = 7; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have off64_t."
-else
- val="$undef"
- echo "You do not have off64_t."
- case "$lseeksize" in
- 8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
- esac
-fi
-$rm_try
-set d_off64_t
-eval $setvar
-
-: how to create joinable pthreads
-if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
- echo " "
- echo "Checking what constant to use for creating joinable pthreads..." >&4
- $cat >try.c <<'EOCP'
-#include <pthread.h>
-int main() {
- int detachstate = JOINABLE;
-}
-EOCP
- set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
- if eval $compile; then
- echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
- val="$undef" # Yes, undef.
- set d_old_pthread_create_joinable
- eval $setvar
- val=""
- set old_pthread_create_joinable
- eval $setvar
- else
- set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
- if eval $compile; then
- echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
- val="$define"
- set d_old_pthread_create_joinable
- eval $setvar
- val=PTHREAD_CREATE_UNDETACHED
- set old_pthread_create_joinable
- eval $setvar
- else
- set try -DJOINABLE=__UNDETACHED
- if eval $compile; then
- echo "You seem to use __UNDETACHED." >&4
- val="$define"
- set d_old_pthread_create_joinable
- eval $setvar
- val=__UNDETACHED
- set old_pthread_create_joinable
- eval $setvar
- else
- echo "Egads, nothing obvious found. Guessing that you use 0." >&4
- val="$define"
- set d_old_pthread_create_joinable
- eval $setvar
- val=0
- set old_pthread_create_joinable
- eval $setvar
- fi
- fi
- fi
- $rm_try
-else
- d_old_pthread_create_joinable="$undef"
- old_pthread_create_joinable=""
-fi
-
-: see if pause exists
-set pause d_pause
-eval $inlibc
-
-: see if pipe2 exists
-set pipe2 d_pipe2
-eval $inlibc
-
-: see if poll exists
-set poll d_poll
-eval $inlibc
-
-: see if prctl exists
-set prctl d_prctl
-eval $inlibc
-
-: see if prctl supports PR_SET_NAME
-d_prctl_set_name=$undef
-case $d_prctl in
- $define)
- $cat >try.c <<EOM
-#ifdef __ANDROID__
-#include <unistd.h>
-#endif
-#include <sys/prctl.h>
-
-int main (int argc, char *argv[])
-{
- return (prctl (PR_SET_NAME, "Test"));
- } /* main */
-EOM
- set try
- if eval $compile_ok && $run ./try; then
- echo "Your prctl (PR_SET_NAME, ...) works"
- d_prctl_set_name=$define
- fi
- $rm_try
- ;;
- esac
-
-: see if readlink exists
-set readlink d_readlink
-eval $inlibc
-
-: Check if there is a /proc symlink to the abs path of
-: the executing program. We will honor hints of d_procselfexe=$undef
-: or procselfexe being non-empty, otherwise will try to determine both
-: if we have readlink.
-: AmigaOS will attempt to mount proc: aka /proc, if /proc/... is
-: referenced, and AmigaOS does not have a proc filesystem anyway.
-echo " "
-val="$undef"
-if $test "X$d_procselfexe" = Xundef; then
- procselfexe=''
-elif $test "X$procselfexe" != X -a "X$procselfexe" != 'X '; then
- val="$define"
-elif $test "X$d_readlink" = Xdefine; then
- : NetBSD first as /proc/self is a symlink to /proc/curproc,
- : and it feels more tidy to avoid an extra level of symlink
- set NetBSD /proc/curproc/exe Linux /proc/self/exe FreeBSD /proc/curproc/file Solaris /proc/self/path/a.out
- while test $# -gt 0; do
- type=$1; try=$2
- shift; shift
- if $issymlink $try; then
- $ls -l $try > reflect
- if $contains /`basename $ls` reflect >/dev/null 2>&1; then
- echo "You have $type-like $try."
- procselfexe='"'$try'"'
- val="$define"
- : This will break out of the loop
- set X; shift
- fi
- fi
- done
-fi
-$rm -f reflect
-set d_procselfexe
-eval $setvar
-
-: backward compatibility for d_hvfork
-if test X$d_hvfork != X; then
- d_vfork="$d_hvfork"
- d_hvfork=''
-fi
-: see if there is a vfork
-val=''
-set vfork val
-eval $inlibc
-
-d_pseudofork=$undef
-
-: Ok, but do we want to use it. vfork is reportedly unreliable in
-: perl on Solaris 2.x, and probably elsewhere.
-case "$val" in
-$define)
- echo " "
- case "$usevfork" in
- false) dflt='n';;
- *) dflt='y';;
- esac
- cat <<'EOM'
-
-Perl can only use a vfork() that doesn't suffer from strict
-restrictions on calling functions or modifying global data in
-the child. For example, glibc-2.1 contains such a vfork()
-that is unsuitable. If your system provides a proper fork()
-call, chances are that you do NOT want perl to use vfork().
-
-EOM
- rp="Do you still want to use vfork()?"
- . ./myread
- case "$ans" in
- y|Y) ;;
- *)
- echo "Ok, we won't use vfork()."
- val="$undef"
- ;;
- esac
- ;;
-esac
-set d_vfork
-eval $setvar
-case "$d_vfork" in
-$define) usevfork='true';;
-*) usevfork='false';;
-esac
-
-: see whether the pthread_atfork exists
-$cat >try.c <<EOP
-#include <pthread.h>
-#include <stdio.h>
-int main() {
-#ifdef PTHREAD_ATFORK
- pthread_atfork(NULL,NULL,NULL);
-#endif
-}
-EOP
-
-: see if pthread_atfork exists
-set try -DPTHREAD_ATFORK
-if eval $compile; then
- val="$define"
-else
- val="$undef"
-fi
-case "$usethreads" in
-$define)
- case "$val" in
- $define) echo 'pthread_atfork found.' >&4 ;;
- *) echo 'pthread_atfork NOT found.' >&4 ;;
- esac
-esac
-set d_pthread_atfork
-eval $setvar
-
-: see if pthread_attr_setscope exists
-set pthread_attr_setscope d_pthread_attr_setscope
-eval $inlibc
-
-: see whether the various POSIXish _yields exist
-$cat >try.c <<EOP
-#include <pthread.h>
-#include <stdio.h>
-int main() {
-#ifdef SCHED_YIELD
- sched_yield();
-#else
-#ifdef PTHREAD_YIELD
- pthread_yield();
-#else
-#ifdef PTHREAD_YIELD_NULL
- pthread_yield(NULL);
-#endif
-#endif
-#endif
-}
-EOP
-: see if sched_yield exists
-set try -DSCHED_YIELD
-if eval $compile; then
- val="$define"
- sched_yield='sched_yield()'
-else
- val="$undef"
-fi
-case "$usethreads" in
-$define)
- case "$val" in
- $define) echo 'sched_yield() found.' >&4 ;;
- *) echo 'sched_yield() NOT found.' >&4 ;;
- esac
-esac
-set d_sched_yield
-eval $setvar
-
-: see if pthread_yield exists
-set try -DPTHREAD_YIELD
-if eval $compile; then
- val="$define"
- case "$sched_yield" in
- '') sched_yield='pthread_yield()' ;;
- esac
-else
- set try -DPTHREAD_YIELD_NULL
- if eval $compile; then
- val="$define"
- case "$sched_yield" in
- '') sched_yield='pthread_yield(NULL)' ;;
- esac
- else
- val="$undef"
- fi
-fi
-case "$usethreads" in
-$define)
- case "$val" in
- $define) echo 'pthread_yield() found.' >&4 ;;
- *) echo 'pthread_yield() NOT found.' >&4 ;;
- esac
- ;;
-esac
-set d_pthread_yield
-eval $setvar
-case "$sched_yield" in
-'') sched_yield=undef ;;
-esac
-$rm_try
-
-: check for ptrdiff_t
-echo " "
-echo "Checking to see if you have ptrdiff_t..." >&4
-$cat >try.c <<EOCP
-#include <stddef.h>
-int main() { ptrdiff_t x = 7; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have ptrdiff_t."
-else
- val="$undef"
- echo "You do not have ptrdiff_t."
-fi
-$rm_try
-set d_ptrdiff_t
-eval $setvar
-
-: see if random_r exists
-set random_r d_random_r
-eval $inlibc
-case "$d_random_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
- case "$d_random_r_proto:$usethreads" in
- ":define") d_random_r_proto=define
- set d_random_r_proto random_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_random_r_proto" in
- define)
- case "$random_r_proto" in
- ''|0) try='int random_r(int*, struct random_data*);'
- ./protochk "$extern_C $try" $hdrs && random_r_proto=I_iS ;;
- esac
- case "$random_r_proto" in
- ''|0) try='int random_r(long*, struct random_data*);'
- ./protochk "$extern_C $try" $hdrs && random_r_proto=I_lS ;;
- esac
- case "$random_r_proto" in
- ''|0) try='int random_r(struct random_data*, int32_t*);'
- ./protochk "$extern_C $try" $hdrs && random_r_proto=I_St ;;
- esac
- case "$random_r_proto" in
- ''|0) d_random_r=undef
- random_r_proto=0
- echo "Disabling random_r, cannot determine prototype." >&4 ;;
- * ) case "$random_r_proto" in
- REENTRANT_PROTO*) ;;
- *) random_r_proto="REENTRANT_PROTO_$random_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "random_r has no prototype, not using it." >&4 ;;
- esac
- d_random_r=undef
- random_r_proto=0
- ;;
- esac
- ;;
-*) random_r_proto=0
- ;;
-esac
-
-: see if readdir and friends exist
-set readdir d_readdir
-eval $inlibc
-set seekdir d_seekdir
-eval $inlibc
-set telldir d_telldir
-eval $inlibc
-set rewinddir d_rewinddir
-eval $inlibc
-
-: see if readdir64_r exists
-set readdir64_r d_readdir64_r
-eval $inlibc
-case "$d_readdir64_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
- case "$d_readdir64_r_proto:$usethreads" in
- ":define") d_readdir64_r_proto=define
- set d_readdir64_r_proto readdir64_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_readdir64_r_proto" in
- define)
- case "$readdir64_r_proto" in
- ''|0) try='int readdir64_r(DIR*, struct dirent64*, struct dirent64**);'
- ./protochk "$extern_C $try" $hdrs && readdir64_r_proto=I_TSR ;;
- esac
- case "$readdir64_r_proto" in
- ''|0) try='int readdir64_r(DIR*, struct dirent64*);'
- ./protochk "$extern_C $try" $hdrs && readdir64_r_proto=I_TS ;;
- esac
- case "$readdir64_r_proto" in
- ''|0) d_readdir64_r=undef
- readdir64_r_proto=0
- echo "Disabling readdir64_r, cannot determine prototype." >&4 ;;
- * ) case "$readdir64_r_proto" in
- REENTRANT_PROTO*) ;;
- *) readdir64_r_proto="REENTRANT_PROTO_$readdir64_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "readdir64_r has no prototype, not using it." >&4 ;;
- esac
- d_readdir64_r=undef
- readdir64_r_proto=0
- ;;
- esac
- ;;
-*) readdir64_r_proto=0
- ;;
-esac
-
-: see if readdir_r exists
-set readdir_r d_readdir_r
-eval $inlibc
-case "$d_readdir_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
- case "$d_readdir_r_proto:$usethreads" in
- ":define") d_readdir_r_proto=define
- set d_readdir_r_proto readdir_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_readdir_r_proto" in
- define)
- case "$readdir_r_proto" in
- ''|0) try='int readdir_r(DIR*, struct dirent*, struct dirent**);'
- ./protochk "$extern_C $try" $hdrs && readdir_r_proto=I_TSR ;;
- esac
- case "$readdir_r_proto" in
- ''|0) try='int readdir_r(DIR*, struct dirent*);'
- ./protochk "$extern_C $try" $hdrs && readdir_r_proto=I_TS ;;
- esac
- case "$readdir_r_proto" in
- ''|0) d_readdir_r=undef
- readdir_r_proto=0
- echo "Disabling readdir_r, cannot determine prototype." >&4 ;;
- * ) case "$readdir_r_proto" in
- REENTRANT_PROTO*) ;;
- *) readdir_r_proto="REENTRANT_PROTO_$readdir_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "readdir_r has no prototype, not using it." >&4 ;;
- esac
- d_readdir_r=undef
- readdir_r_proto=0
- ;;
- esac
- ;;
-*) readdir_r_proto=0
- ;;
-esac
-
-: see if readv exists
-set readv d_readv
-eval $inlibc
-
-: see if recvmsg exists
-set recvmsg d_recvmsg
-eval $inlibc
-
-: see if regcomp, regcmp, or re_comp exist, for regular pattern matching
-echo " "
-if set regcomp val -f d_regcomp; eval $csym; $val; then
- echo 'regcomp() found.' >&4
- d_regcomp="$define"
- d_regcmp="$undef"
- d_re_comp="$undef"
-elif set regcmp val -f d_regcmp; eval $csym; $val; then
- echo 'regcmp() found.' >&4
- d_regcmp="$define"
- d_regcomp="$undef"
- d_re_comp="$undef"
-elif set re_comp val -f d_re_comp; eval $csym; $val; then
- echo 're_comp() found, assuming re_exec() also exists.' >&4
- d_re_comp="$define"
- d_regcomp="$undef"
- d_regcmp="$undef"
-else
- $cat >&4 <<EOM
-No regcomp(), regcmp() nor re_comp() found !! No regular pattern matching.
-EOM
- d_regcmp="$undef"
- d_re_comp="$undef"
- d_regcomp="$undef"
-fi
-
-: see if remainder exists
-set remainder d_remainder
-eval $inlibc
-
-: see if remquo exists
-set remquo d_remquo
-eval $inlibc
-
-: see if rename exists
-set rename d_rename
-eval $inlibc
-
-: see if rint exists
-set rint d_rint
-eval $inlibc
-
-: see if rmdir exists
-set rmdir d_rmdir
-eval $inlibc
-
-: see if round exists
-set round d_round
-eval $inlibc
-
-: see if prototype for sbrk is available
-echo " "
-set d_sbrkproto sbrk $i_unistd unistd.h
-eval $hasproto
-
-: see if scalbn exists
-set scalbn d_scalbn
-eval $inlibc
-
-: see if select exists
-set select d_select
-eval $inlibc
-
-: see if semctl exists
-set semctl d_semctl
-eval $inlibc
-
-: see if semget exists
-set semget d_semget
-eval $inlibc
-
-: see if semop exists
-set semop d_semop
-eval $inlibc
-
-: see how much of the 'sem*(2)' library is present.
-h_sem=true
-echo " "
-case "$d_semctl$d_semget$d_semop" in
-*"$undef"*) h_sem=false;;
-esac
-case "$osname" in
-freebsd)
- case "`ipcs 2>&1`" in
- "SVID messages"*"not configured"*)
- echo "Your $osname does not have the sem*(2) configured." >&4
- h_sem=false
- val="$undef"
- set semctl d_semctl
- eval $setvar
- set semget d_semget
- eval $setvar
- set semop d_semop
- eval $setvar
- ;;
- esac
- ;;
-esac
-: we could also check for sys/ipc.h ...
-if $h_sem && $test `./findhdr sys/sem.h`; then
- echo "You have the full sem*(2) library." >&4
- val="$define"
-else
- echo "You don't have the full sem*(2) library." >&4
- val="$undef"
-fi
-set d_sem
-eval $setvar
-
-: see whether sys/sem.h defines union semun
-echo " "
-$cat > try.c <<'END'
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-int main () { union semun semun; semun.buf = 0; }
-END
-set try
-if eval $compile; then
- echo "You have union semun in <sys/sem.h>." >&4
- val="$define"
-else
- echo "You do not have union semun in <sys/sem.h>." >&4
- val="$undef"
-fi
-$rm_try
-set d_union_semun
-eval $setvar
-
-: see how to do semctl IPC_STAT
-case "$d_sem" in
-$define)
- echo " "
- $cat > tryh.h <<END
-#ifndef S_IRUSR
-# ifdef S_IREAD
-# define S_IRUSR S_IREAD
-# define S_IWUSR S_IWRITE
-# define S_IXUSR S_IEXEC
-# else
-# define S_IRUSR 0400
-# define S_IWUSR 0200
-# define S_IXUSR 0100
-# endif
-# define S_IRGRP (S_IRUSR>>3)
-# define S_IWGRP (S_IWUSR>>3)
-# define S_IXGRP (S_IXUSR>>3)
-# define S_IROTH (S_IRUSR>>6)
-# define S_IWOTH (S_IWUSR>>6)
-# define S_IXOTH (S_IXUSR>>6)
-#endif
-#ifndef S_IRWXU
-# define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
-# define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
-# define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
-#endif
-END
- : see whether semctl IPC_STAT can use union semun
- case "$d_semctl_semun" in
- '')
- val="$undef"
- $cat > try.c <<END
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <errno.h>
-#include "tryh.h"
-#ifndef errno
-extern int errno;
-#endif
-#$d_union_semun HAS_UNION_SEMUN
-int main() {
- union semun
-#ifndef HAS_UNION_SEMUN
- {
- int val;
- struct semid_ds *buf;
- unsigned short *array;
- }
-#endif
- arg;
- int sem, st;
-
-#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
- sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
- if (sem > -1) {
- struct semid_ds argbuf;
- arg.buf = &argbuf;
-# ifdef IPC_STAT
- st = semctl(sem, 0, IPC_STAT, arg);
- if (st == 0)
- printf("semun\n");
- else
-# endif /* IPC_STAT */
- printf("semctl IPC_STAT failed: errno = %d\n", errno);
-# ifdef IPC_RMID
- if (semctl(sem, 0, IPC_RMID, arg) != 0)
-# endif /* IPC_RMID */
- printf("semctl IPC_RMID failed: errno = %d\n", errno);
- } else
-#endif /* IPC_PRIVATE && ... */
- printf("semget failed: errno = %d\n", errno);
- return 0;
-}
-END
- set try
- if eval $compile; then
- xxx=`$run ./try`
- case "$xxx" in
- semun) val="$define" ;;
- esac
- fi
- $rm_try
- set d_semctl_semun
- eval $setvar
- ;;
- esac
- case "$d_semctl_semun" in
- $define)
- echo "You can use union semun for semctl IPC_STAT." >&4
- also='also'
- ;;
- *) echo "You cannot use union semun for semctl IPC_STAT." >&4
- also=''
- ;;
- esac
-
- : see whether semctl IPC_STAT can use struct semid_ds pointer
- case "$d_semctl_semid_ds" in
- '')
- val="$undef"
- $cat > try.c <<'END'
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-#include <sys/stat.h>
-#include "tryh.h"
-#include <stdio.h>
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-int main() {
- union semun
-#ifndef HAS_UNION_SEMUN
- {
- int val;
- struct semid_ds *buf;
- unsigned short *array;
- }
-#endif
- arg;
- struct semid_ds argbuf;
- int sem, st;
-
-#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
- sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
- if (sem > -1) {
- arg.buf = &argbuf;
-# ifdef IPC_STAT
- st = semctl(sem, 0, IPC_STAT, arg);
- if (st == 0)
- printf("semid_ds\n");
- else
-# endif /* IPC_STAT */
- printf("semctl IPC_STAT failed: errno = %d\n", errno);
-# ifdef IPC_RMID
- if (semctl(sem, 0, IPC_RMID, arg) != 0)
-# endif /* IPC_RMID */
- printf("semctl IPC_RMID failed: errno = %d\n", errno);
- } else
-#endif /* IPC_PRIVATE && ... */
- printf("semget failed: errno = %d\n", errno);
-
- return 0;
-}
-END
- set try
- if eval $compile; then
- xxx=`$run ./try`
- case "$xxx" in
- semid_ds) val="$define" ;;
- esac
- fi
- $rm_try
- set d_semctl_semid_ds
- eval $setvar
- ;;
- esac
- case "$d_semctl_semid_ds" in
- $define)
- echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4
- ;;
- *) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
- ;;
- esac
- ;;
-*) val="$undef"
-
- # We do not have the full sem*(2) library, so assume we can not
- # use either.
-
- set d_semctl_semun
- eval $setvar
-
- set d_semctl_semid_ds
- eval $setvar
- ;;
-esac
-$rm_try tryh.h
-
-: see if sendmsg exists
-set sendmsg d_sendmsg
-eval $inlibc
-
-: see if setegid exists
-set setegid d_setegid
-eval $inlibc
-
-: see if seteuid exists
-set seteuid d_seteuid
-eval $inlibc
-
-: see if setgrent exists
-set setgrent d_setgrent
-eval $inlibc
-
-: see if setgrent_r exists
-set setgrent_r d_setgrent_r
-eval $inlibc
-case "$d_setgrent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
- case "$d_setgrent_r_proto:$usethreads" in
- ":define") d_setgrent_r_proto=define
- set d_setgrent_r_proto setgrent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_setgrent_r_proto" in
- define)
- case "$setgrent_r_proto" in
- ''|0) try='int setgrent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && setgrent_r_proto=I_H ;;
- esac
- case "$setgrent_r_proto" in
- ''|0) try='void setgrent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && setgrent_r_proto=V_H ;;
- esac
- case "$setgrent_r_proto" in
- ''|0) d_setgrent_r=undef
- setgrent_r_proto=0
- echo "Disabling setgrent_r, cannot determine prototype." >&4 ;;
- * ) case "$setgrent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) setgrent_r_proto="REENTRANT_PROTO_$setgrent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "setgrent_r has no prototype, not using it." >&4 ;;
- esac
- d_setgrent_r=undef
- setgrent_r_proto=0
- ;;
- esac
- ;;
-*) setgrent_r_proto=0
- ;;
-esac
-
-: see if sethostent exists
-set sethostent d_sethent
-eval $inlibc
-
-: see if sethostent_r exists
-set sethostent_r d_sethostent_r
-eval $inlibc
-case "$d_sethostent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_sethostent_r_proto:$usethreads" in
- ":define") d_sethostent_r_proto=define
- set d_sethostent_r_proto sethostent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_sethostent_r_proto" in
- define)
- case "$sethostent_r_proto" in
- ''|0) try='int sethostent_r(int, struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && sethostent_r_proto=I_ID ;;
- esac
- case "$sethostent_r_proto" in
- ''|0) try='void sethostent_r(int, struct hostent_data*);'
- ./protochk "$extern_C $try" $hdrs && sethostent_r_proto=V_ID ;;
- esac
- case "$sethostent_r_proto" in
- ''|0) d_sethostent_r=undef
- sethostent_r_proto=0
- echo "Disabling sethostent_r, cannot determine prototype." >&4 ;;
- * ) case "$sethostent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) sethostent_r_proto="REENTRANT_PROTO_$sethostent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "sethostent_r has no prototype, not using it." >&4 ;;
- esac
- d_sethostent_r=undef
- sethostent_r_proto=0
- ;;
- esac
- ;;
-*) sethostent_r_proto=0
- ;;
-esac
-
-: see if setitimer exists
-set setitimer d_setitimer
-eval $inlibc
-
-: see if setlinebuf exists
-set setlinebuf d_setlinebuf
-eval $inlibc
-
-: see if this system has wctype.h
-set wctype.h i_wctype
-eval $inhdr
-
-: see if towupper exists
-set towupper d_towupper
-eval $inlibc
-
-: check for setlocale function and behavior
-case "$d_setlocale" in
-'')
-$cat >&4 <<EOM
-
-Checking to see if you have setlocale() and its behavior
-EOM
-$cat >try.c <<EOCP
-#include <stdlib.h>
-#include <string.h>
-#$i_locale I_LOCALE
-#ifdef I_LOCALE
-# include <locale.h>
-#endif
-#$i_wctype I_WCTYPE
-#ifdef I_WCTYPE
-# include <wctype.h>
-#endif
-
-int main() {
- const char * invalid_name = "\a"; /* This is really invalid! */
- int accepts_any_locale_name = 0;
- int has_C_UTF8 = 0;
- unsigned char bad_setlocale = 255;
-
- /* If LC_CTYPE isn't defined the compilation will fail, and locales will be
- * disabled. It's hard to imagine an instance where meaningful locale
- * handling could be done without LC_CTYPE */
- const char * name = setlocale(LC_CTYPE, "C");
-
- if (name == NULL || strcmp(name, "C") != 0) {
- exit(bad_setlocale);
- }
-
- name = setlocale(LC_CTYPE, invalid_name);
- if (name != NULL) {
-
- /* Let it pass if it accepts the name but gives back one of the C
- * locales */
- if (strcmp(name, "C") != 0 && strcmp(name, "C.UTF-8") != 0) {
- accepts_any_locale_name = 1;
- }
- }
-
- name = setlocale(LC_CTYPE, "C.UTF-8");
- if (name != NULL) {
- unsigned char y_with_diaeresis = ('A' == 193) ? 0xDF : 0xFF;
-
-#$d_towupper HAS_TOWUPPER
-#ifdef HAS_TOWUPPER
-
- /* We assume that if the machine doesn't have the C99 towupper, it
- * doesn't have C.UTF-8, even if we successfully changed locales to
- * include it. This seems safer even on platforms that didn't accept
- * the really invalid name */
-
- if (towupper(y_with_diaeresis) == 0x178) {
- has_C_UTF8 = 1;
- }
-
-#endif
-
- }
-
-#if 0
-
- /* Currently unused code to determine if LC_ALL with disparate values uses
- * category = value pairs or positional, and to determine the separator
- * between the categories. We could add code so that if the separator were
- * > '9', we subtract 10; similarly for 'Z' and 'z', and then just about
- * every possible ASCII separator would fit in the 5 bits available in the
- * exit code. This would not be true in EBCDIC. And then if LC_ALL is
- * positional, we probably would want to know the order of the categories.
- * Using a file between the C program and the shell script would really be
- * require to do that */
-#ifdef LC_ALL
-
- unsigned char min_separator = ' ' - 1;
- unsigned char separator = min_separator;
- int uses_name_value_pair_names = 0;
-
- name = setlocale(LC_ALL, "C");
- if (name == NULL || strcmp(name, "C") != 0) {
- exit(bad_setlocale);
- }
-
- if (has_C_UTF8) {
- char * pos;
-
- name = setlocale(LC_CTYPE, "C.UTF-8");
- if (name == NULL) {
- exit(bad_setlocale);
- }
- name = setlocale(LC_ALL, NULL);
- if (name == NULL) {
- exit(bad_setlocale);
- }
-
- pos = strstr(name, "LC_CTYPE" "=C.UTF-8");
- if (pos != NULL) {
- uses_name_value_pair_names = 1;
- if (pos == name) {
- separator = name[sizeof("LC_CTYPE=C.UTF-8") - 1];
- }
- else {
- separator = *(pos - 1);
- }
- }
- else {
- pos = strstr(name, "C.UTF-8");
- if (pos == NULL) {
- /* bad */
- }
- else if (pos == name) {
- separator = name[sizeof("C.UTF-8") - 1];
- }
- else {
- separator = *(pos - 1);
- }
- }
- }
-
-#endif
-#endif
-
- exit( 0 /* (separator - min_separator) << 3
- | uses_name_value_pair_names << 2
- */
- | has_C_UTF8 << 1
- | accepts_any_locale_name);
-
-}
-EOCP
-val=
-set d_setlocale
-eval $setvar
-case $d_setlocale in
- $undef) d_setlocale_accepts_any_locale_name="$undef"
- d_has_C_UTF8="false"
- ;;
- *) set try
- if eval $compile; then
- echo "Your system has setlocale()..." >&4
- $run ./try
- case $? in
- 0) echo "and it seems sane; you don't have a C.UTF-8 locale" >&4
- d_setlocale="$define"
- d_setlocale_accepts_any_locale_name="$undef"
- d_has_C_UTF8="false"
- ;;
- 1) echo "and it seems sane, but accepts any locale name as valid" >&4
- d_setlocale="$define"
- d_setlocale_accepts_any_locale_name="$define"
- d_has_C_UTF8="false"
- ;;
- 2) echo "and it seems sane; you have a C.UTF-8 locale" >&4
- d_setlocale="$define"
- d_setlocale_accepts_any_locale_name="$undef"
- d_has_C_UTF8="true"
- ;;
- 3) echo "and it seems sane, but accepts any locale name as valid" >&4
- d_setlocale="$define"
- d_setlocale_accepts_any_locale_name="$define"
- d_has_C_UTF8="true"
- ;;
- *) echo "but it doesn't seem to work, so we won't use it." >&4
- d_setlocale="$undef"
- d_setlocale_accepts_any_locale_name="$undef"
- d_has_C_UTF8="false"
- ;;
- esac
- else
- echo "your system does not have setlocale()" >&4
- d_setlocale="$undef"
- d_setlocale_accepts_any_locale_name="$undef"
- d_has_C_UTF8="false"
- fi
-esac
-$rm_try
-;;
-*) val="$d_setlocale"
- set d_setlocale
- eval $setvar
- case "$d_setlocale" in
- $undef) echo "There may be other ways to set the locale on your system, so we need to ask:" >&4
- ;;
- esac
- rp="Does your system have the C.UTF-8 locale?"
- dflt=n
- . ./myread
- case "$ans" in
- [Yy]*) d_has_C_UTF8="true"
- c_utf8_locale=" or C.UTF-8"
- ;;
- *) d_has_C_UTF8="false"
- c_utf8_locale=""
- ;;
- esac
- case "$d_setlocale" in
- $define)
- rp="When you set your locale to something besides C$c_utf8_locale, does it do so, or just pretend to?" >&4
- dflt=n
- . ./myread
- case "$ans" in
- true|[Yy]*)
- d_setlocale_accepts_any_locale_name="$undef"
- ;;
- *) d_setlocale_accepts_any_locale_name="$define"
- ;;
- esac
- ;;
- *) d_setlocale_accepts_any_locale_name="$undef"
- ;;
- esac
-esac
-
-: see if setlocale_r exists
-set setlocale_r d_setlocale_r
-eval $inlibc
-case "$d_setlocale_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_locale locale.h"
- case "$d_setlocale_r_proto:$usethreads" in
- ":define") d_setlocale_r_proto=define
- set d_setlocale_r_proto setlocale_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_setlocale_r_proto" in
- define)
- case "$setlocale_r_proto" in
- ''|0) try='int setlocale_r(int, const char*, char*, int);'
- ./protochk "$extern_C $try" $hdrs && setlocale_r_proto=I_ICBI ;;
- esac
- case "$setlocale_r_proto" in
- ''|0) d_setlocale_r=undef
- setlocale_r_proto=0
- echo "Disabling setlocale_r, cannot determine prototype." >&4 ;;
- * ) case "$setlocale_r_proto" in
- REENTRANT_PROTO*) ;;
- *) setlocale_r_proto="REENTRANT_PROTO_$setlocale_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "setlocale_r has no prototype, not using it." >&4 ;;
- esac
- d_setlocale_r=undef
- setlocale_r_proto=0
- ;;
- esac
- ;;
-*) setlocale_r_proto=0
- ;;
-esac
-
-: see if setnetent exists
-set setnetent d_setnent
-eval $inlibc
-
-: see if setnetent_r exists
-set setnetent_r d_setnetent_r
-eval $inlibc
-case "$d_setnetent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_setnetent_r_proto:$usethreads" in
- ":define") d_setnetent_r_proto=define
- set d_setnetent_r_proto setnetent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_setnetent_r_proto" in
- define)
- case "$setnetent_r_proto" in
- ''|0) try='int setnetent_r(int, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && setnetent_r_proto=I_ID ;;
- esac
- case "$setnetent_r_proto" in
- ''|0) try='void setnetent_r(int, struct netent_data*);'
- ./protochk "$extern_C $try" $hdrs && setnetent_r_proto=V_ID ;;
- esac
- case "$setnetent_r_proto" in
- ''|0) d_setnetent_r=undef
- setnetent_r_proto=0
- echo "Disabling setnetent_r, cannot determine prototype." >&4 ;;
- * ) case "$setnetent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) setnetent_r_proto="REENTRANT_PROTO_$setnetent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "setnetent_r has no prototype, not using it." >&4 ;;
- esac
- d_setnetent_r=undef
- setnetent_r_proto=0
- ;;
- esac
- ;;
-*) setnetent_r_proto=0
- ;;
-esac
-
-: see if setprotoent exists
-set setprotoent d_setpent
-eval $inlibc
-
-: see if setpgid exists
-set setpgid d_setpgid
-eval $inlibc
-
-: see if setpgrp2 exists
-set setpgrp2 d_setpgrp2
-eval $inlibc
-
-: see if setpriority exists
-set setpriority d_setprior
-eval $inlibc
-
-: see if setproctitle exists
-set setproctitle d_setproctitle
-eval $inlibc
-
-: see if setprotoent_r exists
-set setprotoent_r d_setprotoent_r
-eval $inlibc
-case "$d_setprotoent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_setprotoent_r_proto:$usethreads" in
- ":define") d_setprotoent_r_proto=define
- set d_setprotoent_r_proto setprotoent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_setprotoent_r_proto" in
- define)
- case "$setprotoent_r_proto" in
- ''|0) try='int setprotoent_r(int, struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && setprotoent_r_proto=I_ID ;;
- esac
- case "$setprotoent_r_proto" in
- ''|0) try='void setprotoent_r(int, struct protoent_data*);'
- ./protochk "$extern_C $try" $hdrs && setprotoent_r_proto=V_ID ;;
- esac
- case "$setprotoent_r_proto" in
- ''|0) d_setprotoent_r=undef
- setprotoent_r_proto=0
- echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;;
- * ) case "$setprotoent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) setprotoent_r_proto="REENTRANT_PROTO_$setprotoent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "setprotoent_r has no prototype, not using it." >&4 ;;
- esac
- d_setprotoent_r=undef
- setprotoent_r_proto=0
- ;;
- esac
- ;;
-*) setprotoent_r_proto=0
- ;;
-esac
-
-: see if setpwent exists
-set setpwent d_setpwent
-eval $inlibc
-
-: see if setpwent_r exists
-set setpwent_r d_setpwent_r
-eval $inlibc
-case "$d_setpwent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
- case "$d_setpwent_r_proto:$usethreads" in
- ":define") d_setpwent_r_proto=define
- set d_setpwent_r_proto setpwent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_setpwent_r_proto" in
- define)
- case "$setpwent_r_proto" in
- ''|0) try='int setpwent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && setpwent_r_proto=I_H ;;
- esac
- case "$setpwent_r_proto" in
- ''|0) try='void setpwent_r(FILE**);'
- ./protochk "$extern_C $try" $hdrs && setpwent_r_proto=V_H ;;
- esac
- case "$setpwent_r_proto" in
- ''|0) d_setpwent_r=undef
- setpwent_r_proto=0
- echo "Disabling setpwent_r, cannot determine prototype." >&4 ;;
- * ) case "$setpwent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) setpwent_r_proto="REENTRANT_PROTO_$setpwent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "setpwent_r has no prototype, not using it." >&4 ;;
- esac
- d_setpwent_r=undef
- setpwent_r_proto=0
- ;;
- esac
- ;;
-*) setpwent_r_proto=0
- ;;
-esac
-
-: see if setregid exists
-set setregid d_setregid
-eval $inlibc
-set setresgid d_setresgid
-eval $inlibc
-
-: see if setreuid exists
-set setreuid d_setreuid
-eval $inlibc
-set setresuid d_setresuid
-eval $inlibc
-
-: see if setrgid exists
-set setrgid d_setrgid
-eval $inlibc
-
-: see if setruid exists
-set setruid d_setruid
-eval $inlibc
-
-: see if setservent exists
-set setservent d_setsent
-eval $inlibc
-
-: see if setservent_r exists
-set setservent_r d_setservent_r
-eval $inlibc
-case "$d_setservent_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
- case "$d_setservent_r_proto:$usethreads" in
- ":define") d_setservent_r_proto=define
- set d_setservent_r_proto setservent_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_setservent_r_proto" in
- define)
- case "$setservent_r_proto" in
- ''|0) try='int setservent_r(int, struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && setservent_r_proto=I_ID ;;
- esac
- case "$setservent_r_proto" in
- ''|0) try='void setservent_r(int, struct servent_data*);'
- ./protochk "$extern_C $try" $hdrs && setservent_r_proto=V_ID ;;
- esac
- case "$setservent_r_proto" in
- ''|0) d_setservent_r=undef
- setservent_r_proto=0
- echo "Disabling setservent_r, cannot determine prototype." >&4 ;;
- * ) case "$setservent_r_proto" in
- REENTRANT_PROTO*) ;;
- *) setservent_r_proto="REENTRANT_PROTO_$setservent_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "setservent_r has no prototype, not using it." >&4 ;;
- esac
- d_setservent_r=undef
- setservent_r_proto=0
- ;;
- esac
- ;;
-*) setservent_r_proto=0
- ;;
-esac
-
-: see if setsid exists
-set setsid d_setsid
-eval $inlibc
-
-: see if setvbuf exists
-set setvbuf d_setvbuf
-eval $inlibc
-
-: see if shmctl exists
-set shmctl d_shmctl
-eval $inlibc
-
-: see if shmget exists
-set shmget d_shmget
-eval $inlibc
-
-: see if shmat exists
-set shmat d_shmat
-eval $inlibc
-: see what shmat returns
-case "$d_shmat" in
-"$define")
- $cat >shmat.c <<'END'
-#include <sys/shm.h>
-void *shmat();
-END
- if $cc $ccflags -c shmat.c >/dev/null 2>&1; then
- shmattype='void *'
- else
- shmattype='char *'
- fi
- echo "and it returns ($shmattype)." >&4
- : see if a prototype for shmat is available
- xxx=`./findhdr sys/shm.h`
- $cppstdin $cppflags $cppminus < $xxx > shmat.c 2>/dev/null
- if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- $rm -f shmat.[co]
- ;;
-*)
- val="$undef"
- ;;
-esac
-set d_shmatprototype
-eval $setvar
-
-: see if shmdt exists
-set shmdt d_shmdt
-eval $inlibc
-
-: see how much of the 'shm*(2)' library is present.
-h_shm=true
-echo " "
-case "$d_shmctl$d_shmget$d_shmat$d_shmdt" in
-*"$undef"*) h_shm=false;;
-esac
-case "$osname" in
-freebsd)
- case "`ipcs 2>&1`" in
- "SVID shared memory"*"not configured"*)
- echo "Your $osname does not have the shm*(2) configured." >&4
- h_shm=false
- val="$undef"
- set shmctl d_shmctl
- eval $setvar
- set shmget d_shmget
- eval $setvar
- set shmat d_shmat
- eval $setvar
- set shmdt d_shmdt
- eval $setvar
- ;;
- esac
- ;;
-esac
-: we could also check for sys/ipc.h ...
-if $h_shm && $test `./findhdr sys/shm.h`; then
- echo "You have the full shm*(2) library." >&4
- val="$define"
-else
- echo "You don't have the full shm*(2) library." >&4
- val="$undef"
-fi
-set d_shm
-eval $setvar
-
-: see if we have sigaction
-echo " "
-if set sigaction val -f d_sigaction; eval $csym; $val; then
- echo 'sigaction() found.' >&4
- $cat > try.c <<EOP
-#include <stdio.h>
-#include <sys/types.h>
-#include <signal.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- struct sigaction act, oact;
- act.sa_flags = 0;
- oact.sa_handler = 0;
- /* so that act and oact are used */
- exit(act.sa_flags == 0 && oact.sa_handler == 0);
-}
-EOP
- set try
- if eval $compile_ok; then
- val="$define"
- else
- echo "But you don't seem to have a usable struct sigaction." >&4
- val="$undef"
- fi
-else
- echo 'sigaction NOT found.' >&4
- val="$undef"
-fi
-set d_sigaction; eval $setvar
-$rm_try
-
-: see what type pids are declared as in the kernel
-rp="What is the type of process ids on this system?"
-set pid_t pidtype int stdio.h sys/types.h
-eval $typedef_ask
-
-: see what type uids are declared as in the kernel
-echo " "
-echo "Looking for the type for user ids returned by getuid()."
-set uid_t uidtype xxx stdio.h sys/types.h
-eval $typedef
-case "$uidtype" in
-xxx)
- xxx=`./findhdr sys/user.h`
- set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
- case $1 in
- unsigned) dflt="$1 $2" ;;
- *) dflt="$1" ;;
- esac
- ;;
-*) dflt="$uidtype";;
-esac
-case "$uidtype" in
-uid_t) echo "uid_t found." ;;
-*) rp="What is the type for user ids returned by getuid()?"
- . ./myread
- uidtype="$ans"
- ;;
-esac
-
-: Define hasfield_t macro for Configure internal use
-hasfield_t='varname=$1; struct=$2; type=$3; field=$4; shift; shift; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { $struct foo; $type bar = foo.$field; }" >> try.c;
-set try;
-if eval $compile; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm_try'
-
-: see what siginfo fields we have
-case "$d_sigaction" in
-"$define")
- echo "Checking if your siginfo_t has si_errno field...">&4
- set d_siginfo_si_errno siginfo_t int si_errno $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_pid field...">&4
- set d_siginfo_si_pid siginfo_t $pidtype si_pid $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_uid field...">&4
- set d_siginfo_si_uid siginfo_t $uidtype si_uid $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_addr field...">&4
- set d_siginfo_si_addr siginfo_t "void *" si_addr $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_status field...">&4
- set d_siginfo_si_status siginfo_t int si_status $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_band field...">&4
- set d_siginfo_si_band siginfo_t long si_band $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_value field...">&4
- set d_siginfo_si_value siginfo_t "union sigval" si_value $d_sigaction signal.h
- eval $hasfield_t;
-
- echo "Checking if your siginfo_t has si_fd field...">&4
- set d_siginfo_si_fd siginfo_t int si_fd $d_sigaction signal.h
- eval $hasfield_t;
-
- ;;
-*)
- d_siginfo_si_errno="$undef"
- d_siginfo_si_pid="$undef"
- d_siginfo_si_uid="$undef"
- d_siginfo_si_addr="$undef"
- d_siginfo_si_status="$undef"
- d_siginfo_si_band="$undef"
- d_siginfo_si_value="$undef"
- d_siginfo_si_fd="$undef"
- ;;
-esac
-
-: see if this is a sunmath.h system
-set sunmath.h i_sunmath
-eval $inhdr
-
-: see if signbit exists
-$echo $n "Checking to see if you have signbit() available to work on $nvtype... $c" >&4
-$cat >try.c <<EOCP
-#$i_sunmath I_SUNMATH
-#include <math.h>
-#ifdef I_SUNMATH /* Solaris special math library */
-# include <sunmath.h>
-#endif
-#define NV $nvtype
-int main(int argc, char **argv)
-{
- NV x = 0.0;
- NV y = -1.0;
- if ((signbit(x) == 0) && (signbit(y) != 0))
- return 0;
- else
- return 1;
-}
-EOCP
-val="$undef"
-set try
-if eval $compile; then
- if $run ./try; then
- $echo "Yes." >&4
- val="$define"
- else
- $echo "Signbit seems to be available, but doesn't work as I expected."
- $echo "I won't use it." >&4
- val="$undef"
- fi
-else
- $echo "Nope." >&4
- dflt="$undef"
-fi
-set d_signbit
-eval $setvar
-$rm_try
-
-: see if sigprocmask exists
-set sigprocmask d_sigprocmask
-eval $inlibc
-
-: see if sigsetjmp exists
-echo " "
-case "$d_sigsetjmp" in
-'')
- $cat >try.c <<EOP
-#include <setjmp.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-sigjmp_buf env;
-int set = 1;
-int main()
-{
- if (sigsetjmp(env,1))
- exit(set);
- set = 0;
- siglongjmp(env, 1);
- exit(1);
-}
-EOP
- set try
- if eval $compile; then
- if $run ./try >/dev/null 2>&1; then
- echo "POSIX sigsetjmp found." >&4
- val="$define"
- else
- $cat >&4 <<EOM
-Uh-Oh! You have POSIX sigsetjmp and siglongjmp, but they do not work properly!!
-I'll ignore them.
-EOM
- val="$undef"
- fi
- else
- echo "sigsetjmp not found." >&4
- val="$undef"
- fi
- ;;
-*) val="$d_sigsetjmp"
- case "$d_sigsetjmp" in
- $define) echo "POSIX sigsetjmp found." >&4;;
- $undef) echo "sigsetjmp not found." >&4;;
- esac
- ;;
-esac
-set d_sigsetjmp
-eval $setvar
-$rm_try
-
-: see if snprintf exists
-set snprintf d_snprintf
-eval $inlibc
-
-: see if vsnprintf exists
-set vsnprintf d_vsnprintf
-eval $inlibc
-
-case "$d_snprintf-$d_vsnprintf" in
-"$define-$define")
- $cat <<EOM
-Checking whether your snprintf() and vsnprintf() work okay...
-EOM
- $cat >try.c <<'EOCP'
-/* v?snprintf testing logic courtesy of Russ Allbery.
- * According to C99:
- * - if the buffer is too short it still must be \0-terminated
- * - if the buffer is too short the potentially required length
- * must be returned and not -1
- * - if the buffer is NULL the potentially required length
- * must be returned and not -1 or core dump
- */
-#include <stdio.h>
-#include <stdarg.h>
-
-char buf[2];
-
-int test (char *format, ...)
-{
- va_list args;
- int count;
-
- va_start (args, format);
- count = vsnprintf (buf, sizeof buf, format, args);
- va_end (args);
- return count;
-}
-
-int main ()
-{
- return ((test ("%s", "abcd") == 4 && buf[0] == 'a' && buf[1] == '\0'
- && snprintf (NULL, 0, "%s", "abcd") == 4) ? 0 : 1);
-}
-EOCP
- set try
- if eval $compile; then
- `$run ./try`
- case "$?" in
- 0) echo "Your snprintf() and vsnprintf() seem to be working okay." ;;
- *) cat <<EOM >&4
-Your snprintf() and snprintf() don't seem to be working okay.
-EOM
- d_snprintf="$undef"
- d_vsnprintf="$undef"
- ;;
- esac
- else
- echo "(I can't seem to compile the test program--assuming they don't)"
- d_snprintf="$undef"
- d_vsnprintf="$undef"
- fi
- $rm_try
- ;;
-esac
-
-: see if sockatmark exists
-set sockatmark d_sockatmark
-eval $inlibc
-
-: see if prototype for sockatmark is available
-echo " "
-set d_sockatmarkproto sockatmark $d_socket sys/socket.h
-eval $hasproto
-
-: see if socks5_init exists
-set socks5_init d_socks5_init
-eval $inlibc
-
-: see if srand48_r exists
-set srand48_r d_srand48_r
-eval $inlibc
-case "$d_srand48_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
- case "$d_srand48_r_proto:$usethreads" in
- ":define") d_srand48_r_proto=define
- set d_srand48_r_proto srand48_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_srand48_r_proto" in
- define)
- case "$srand48_r_proto" in
- ''|0) try='int srand48_r(long, struct drand48_data*);'
- ./protochk "$extern_C $try" $hdrs && srand48_r_proto=I_LS ;;
- esac
- case "$srand48_r_proto" in
- ''|0) d_srand48_r=undef
- srand48_r_proto=0
- echo "Disabling srand48_r, cannot determine prototype." >&4 ;;
- * ) case "$srand48_r_proto" in
- REENTRANT_PROTO*) ;;
- *) srand48_r_proto="REENTRANT_PROTO_$srand48_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "srand48_r has no prototype, not using it." >&4 ;;
- esac
- d_srand48_r=undef
- srand48_r_proto=0
- ;;
- esac
- ;;
-*) srand48_r_proto=0
- ;;
-esac
-
-: see if srandom_r exists
-set srandom_r d_srandom_r
-eval $inlibc
-case "$d_srandom_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
- case "$d_srandom_r_proto:$usethreads" in
- ":define") d_srandom_r_proto=define
- set d_srandom_r_proto srandom_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_srandom_r_proto" in
- define)
- case "$srandom_r_proto" in
- ''|0) try='int srandom_r(unsigned int, struct random_data*);'
- ./protochk "$extern_C $try" $hdrs && srandom_r_proto=I_TS ;;
- esac
- case "$srandom_r_proto" in
- ''|0) d_srandom_r=undef
- srandom_r_proto=0
- echo "Disabling srandom_r, cannot determine prototype." >&4 ;;
- * ) case "$srandom_r_proto" in
- REENTRANT_PROTO*) ;;
- *) srandom_r_proto="REENTRANT_PROTO_$srandom_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "srandom_r has no prototype, not using it." >&4 ;;
- esac
- d_srandom_r=undef
- srandom_r_proto=0
- ;;
- esac
- ;;
-*) srandom_r_proto=0
- ;;
-esac
-
-: see if prototype for setresgid is available
-echo " "
-set d_sresgproto setresgid $i_unistd unistd.h
-eval $hasproto
-
-: see if prototype for setresuid is available
-echo " "
-set d_sresuproto setresuid $i_unistd unistd.h
-eval $hasproto
-
-: see if stat exists
-set stat d_stat
-eval $inlibc
-
-: see if sys/stat.h is available
-set sys/stat.h i_sysstat
-eval $inhdr
-
-: see if stat knows about block sizes
-echo " "
-echo "Checking to see if your struct stat has st_blocks field..." >&4
-set d_statblks stat st_blocks $i_sysstat sys/stat.h
-eval $hasfield
-
-: see if this is a sys/vfs.h system
-set sys/vfs.h i_sysvfs
-eval $inhdr
-
-: see if this is a sys/statfs.h system
-set sys/statfs.h i_sysstatfs
-eval $inhdr
-
-: Check for statfs_s
-echo " "
-echo "Checking to see if your system supports struct statfs..." >&4
-set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
-eval $hasstruct
-case "$d_statfs_s" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-
-: see if struct statfs knows about f_flags
-case "$d_statfs_s" in
-define)
- echo " "
- echo "Checking to see if your struct statfs has f_flags field..." >&4
- set d_statfs_f_flags statfs f_flags $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
- eval $hasfield
- ;;
-*) val="$undef"
- set d_statfs_f_flags
- eval $setvar
- ;;
-esac
-case "$d_statfs_f_flags" in
-"$define") echo "Yes, it does." ;;
-*) echo "No, it doesn't." ;;
-esac
-
-: see what flavor, if any, of static inline is supported
-echo " "
-echo "Checking to see if your system supports static inline..."
-$cat > try.c <<'EOCP'
-#include <stdlib.h>
-extern int f_via_a(int x);
-extern int f_via_b(int x);
-int main(int argc, char **argv)
-{
- int y;
-
- y = f_via_a(0);
-#ifdef USE_B
- y = f_via_b(0);
-#endif
- if (y == 42) {
- return EXIT_SUCCESS;
- }
- else {
- return EXIT_FAILURE;
- }
-}
-EOCP
-$cat > a.c <<'EOCP'
-static INLINE int f(int x) {
- int y;
- y = x + 42;
- return y;
-}
-
-int f_via_a(int x)
-{
- return f(x);
-}
-EOCP
-$cat > b.c <<'EOCP'
-extern int f(int x);
-
-int f_via_b(int x)
-{
- return f(x);
-}
-EOCP
-
-# Respect a hint (or previous) value for perl_static_inline, if there is one.
-case "$perl_static_inline" in
-'') # Check the various possibilities, and break out on success.
- # For gcc, prefer __inline__, which will still permit
- # cflags.SH to add in -ansi.
- case "$gccversion" in
- '') xxx="inline __inline__ __inline _inline";;
- *) xxx="__inline__ inline __inline _inline";;
- esac
- for inline in $xxx; do
- set try -DINLINE=$inline a.c
- if eval $compile && $run ./try; then
- # Now make sure there is no external linkage of static
- # functions
- set try -DINLINE=$inline -DUSE_B a.c b.c
- if eval $compile && $run ./try; then
- $echo "Your compiler supports static $inline, " >&4
- $echo "but it also creates an external definition," >&4
- $echo "so I won't use it." >&4
- val=$undef
- else
- $echo "Your compiler supports static $inline." >&4
- val=$define
- perl_static_inline="static $inline";
- break;
- fi
- else
- $echo "Your compiler does NOT support static $inline." >&4
- val="$undef"
- fi
- done
- ;;
-*inline*) # Some variant of inline exists.
- echo "Keeping your $hint value of $perl_static_inline."
- val=$define
- ;;
-static) # No inline capabilities
- echo "Keeping your $hint value of $perl_static_inline."
- val=$undef
- ;;
-*) # Unrecognized previous value -- blindly trust the supplied
- # value and hope it makes sense. Use old value for
- # d_static_inline, if there is one.
- echo "Keeping your $hint value of $perl_static_inline."
- case "$d_static_inline" in
- '') val=$define ;;
- *) val=$d_static_inline ;;
- esac
- ;;
-esac
-# Fallback to plain 'static' if nothing worked.
-case "$perl_static_inline" in
-'')
- perl_static_inline="static"
- val=$undef
- ;;
-esac
-set d_static_inline
-eval $setvar
-$rm -f a.[co] b.[co]
-$rm_try
-
-: Check stream access
-$cat >&4 <<EOM
-Checking how to access stdio streams by file descriptor number...
-EOM
-case "$stdio_stream_array" in
-'') $cat >try.c <<EOCP
-#include <stdio.h>
-int main() {
- if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
- printf("yes\n");
-}
-EOCP
- for s in _iob __iob __sF
- do
- set try -DSTDIO_STREAM_ARRAY=$s
- if eval $compile; then
- case "`$run ./try`" in
- yes) stdio_stream_array=$s; break ;;
- esac
- fi
- done
- $rm_try
-esac
-case "$stdio_stream_array" in
-'') $cat >&4 <<EOM
-I can't figure out how to access stdio streams by file descriptor number.
-EOM
- d_stdio_stream_array="$undef"
- ;;
-*) $cat >&4 <<EOM
-You can access stdio streams by file descriptor number by the $stdio_stream_array array.
-EOM
- d_stdio_stream_array="$define"
- ;;
-esac
-
-: see if strcoll exists
-set strcoll d_strcoll
-eval $inlibc
-
-: see if strerror_l exists
-set strerror_l d_strerror_l
-eval $inlibc
-
-: see if strerror_r exists
-set strerror_r d_strerror_r
-eval $inlibc
-case "$d_strerror_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h define string.h"
- case "$d_strerror_r_proto:$usethreads" in
- ":define") d_strerror_r_proto=define
- set d_strerror_r_proto strerror_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_strerror_r_proto" in
- define)
- case "$strerror_r_proto" in
- ''|0) try='int strerror_r(int, char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && strerror_r_proto=I_IBW ;;
- esac
- case "$strerror_r_proto" in
- ''|0) try='int strerror_r(int, char*, int);'
- ./protochk "$extern_C $try" $hdrs && strerror_r_proto=I_IBI ;;
- esac
- case "$strerror_r_proto" in
- ''|0) try='char* strerror_r(int, char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && strerror_r_proto=B_IBW ;;
- esac
- case "$strerror_r_proto" in
- ''|0) d_strerror_r=undef
- strerror_r_proto=0
- echo "Disabling strerror_r, cannot determine prototype." >&4 ;;
- * ) case "$strerror_r_proto" in
- REENTRANT_PROTO*) ;;
- *) strerror_r_proto="REENTRANT_PROTO_$strerror_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "strerror_r has no prototype, not using it." >&4 ;;
- esac
- d_strerror_r=undef
- strerror_r_proto=0
- ;;
- esac
- ;;
-*) strerror_r_proto=0
- ;;
-esac
-
-: see if strftime exists
-set strftime d_strftime
-eval $inlibc
-
-: see if strlcat exists
-: We need both a prototype in string.h and the symbol in libc.
-echo " "
-d_strlcat_proto=''
-xx1="#$d_gnulibc HAS_GNULIBC"
-xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
-xx3='# define _GNU_SOURCE'
-xx4='#endif'
-set d_strlcat_proto strlcat literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
-eval $hasproto
-case "$d_strlcat_proto" in
- define) # see if strlcat exists
- set strlcat d_strlcat
- eval $inlibc
- ;;
- *) val=$undef
- set d_strlcat
- eval $setvar
- ;;
-esac
-
-: see if strlcpy exists
-: We need both a prototype in string.h and the symbol in libc.
-echo " "
-d_strlcpy_proto=''
-xx1="#$d_gnulibc HAS_GNULIBC"
-xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
-xx3='# define _GNU_SOURCE'
-xx4='#endif'
-set d_strlcpy_proto strlcpy literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
-eval $hasproto
-case "$d_strlcpy_proto" in
- define) # see if strlcpy exists
- set strlcpy d_strlcpy
- eval $inlibc
- ;;
- *) val=$undef
- set d_strlcpy
- eval $setvar
- ;;
-esac
-
-: see if strnlen exists
-set strnlen d_strnlen
-eval $inlibc
-
-: see if strtod exists
-set strtod d_strtod
-eval $inlibc
-
-: see if strtod_l exists
-set strtod_l d_strtod_l
-eval $inlibc
-
-: see if strtol exists
-set strtol d_strtol
-eval $inlibc
-
-: see if strtold exists
-set strtold d_strtold
-eval $inlibc
-
-: see if strtold_l exists
-set strtold_l d_strtold_l
-eval $inlibc
-
-: see if strtoll exists
-set strtoll d_strtoll
-eval $inlibc
-
-case "$d_longlong-$d_strtoll" in
-"$define-$define")
- $cat <<EOM
-Checking whether your strtoll() works okay...
-EOM
- $cat >try.c <<'EOCP'
-#include <errno.h>
-#ifdef __hpux
-#define strtoll __strtoll
-#endif
-#ifdef __EMX__
-#define strtoll _strtoll
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-static int bad = 0;
-void check(const char *s, long long ell, int een) {
- long long gll;
- errno = 0;
- gll = strtoll(s, 0, 10);
- if (!((gll == ell) && (errno == een)))
- bad++;
-}
-int main() {
- check(" 1", 1LL, 0);
- check(" 0", 0LL, 0);
- check("-1", -1LL, 0);
- check("-9223372036854775808", -9223372036854775808LL, 0);
- check("-9223372036854775808", -9223372036854775808LL, 0);
- check(" 9223372036854775807", 9223372036854775807LL, 0);
- check("-9223372036854775808", -9223372036854775808LL, 0);
- check(" 9223372036854775808", 9223372036854775807LL, ERANGE);
- check("-9223372036854775809", -9223372036854775808LL, ERANGE);
- if (!bad)
- printf("ok\n");
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- ok) echo "Your strtoll() seems to be working okay." ;;
- *) cat <<EOM >&4
-Your strtoll() doesn't seem to be working okay.
-EOM
- d_strtoll="$undef"
- ;;
- esac
- else
- echo "(I can't seem to compile the test program--assuming it doesn't)"
- d_strtoll="$undef"
- fi
- ;;
-esac
-
-: see if strtoq exists
-set strtoq d_strtoq
-eval $inlibc
-
-: see if strtoul exists
-set strtoul d_strtoul
-eval $inlibc
-
-case "$d_strtoul" in
-"$define")
- $cat <<EOM
-Checking whether your strtoul() works okay...
-EOM
- $cat >try.c <<'EOCP'
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h>
-static int bad = 0;
-void check(const char *s, unsigned long eul, int een) {
- unsigned long gul;
- errno = 0;
- gul = strtoul(s, 0, 10);
- if (!((gul == eul) && (errno == een)))
- bad++;
-}
-int main() {
- check(" 1", 1L, 0);
- check(" 0", 0L, 0);
-EOCP
- case "$longsize" in
- 8)
- $cat >>try.c <<'EOCP'
- check("18446744073709551615", 18446744073709551615UL, 0);
- check("18446744073709551616", 18446744073709551615UL, ERANGE);
-#if 0 /* strtoul() for /^-/ strings is undefined. */
- check("-1", 18446744073709551615UL, 0);
- check("-18446744073709551614", 2, 0);
- check("-18446744073709551615", 1, 0);
- check("-18446744073709551616", 18446744073709551615UL, ERANGE);
- check("-18446744073709551617", 18446744073709551615UL, ERANGE);
-#endif
-EOCP
- ;;
- 4)
- $cat >>try.c <<'EOCP'
- check("4294967295", 4294967295UL, 0);
- check("4294967296", 4294967295UL, ERANGE);
-#if 0 /* strtoul() for /^-/ strings is undefined. */
- check("-1", 4294967295UL, 0);
- check("-4294967294", 2, 0);
- check("-4294967295", 1, 0);
- check("-4294967296", 4294967295UL, ERANGE);
- check("-4294967297", 4294967295UL, ERANGE);
-#endif
-EOCP
- ;;
- *)
-: Should we write these tests to be more portable by sprintf-ing
-: ~0 and then manipulating that char string as input for strtol?
- ;;
- esac
- $cat >>try.c <<'EOCP'
- if (!bad)
- printf("ok\n");
- return 0;
-}
-EOCP
- set try
- if eval $compile; then
- case "`$run ./try`" in
- ok) echo "Your strtoul() seems to be working okay." ;;
- *) cat <<EOM >&4
-Your strtoul() doesn't seem to be working okay.
-EOM
- d_strtoul="$undef"
- ;;
- esac
- else
- echo "(I can't seem to compile the test program--assuming it doesn't)"
- d_strtoul="$undef"
- fi
- ;;
-esac
-
-: see if strtoull exists
-set strtoull d_strtoull
-eval $inlibc
-
-case "$d_longlong-$d_strtoull" in
-"$define-$define")
- $cat <<EOM
-Checking whether your strtoull() works okay...
-EOM
- $cat >try.c <<'EOCP'
-#include <stdlib.h>
-#include <errno.h>
-#ifdef __hpux
-#define strtoull __strtoull
-#endif
-#include <stdio.h>
-static int bad = 0;
-void check(const char *s, long long eull, int een) {
- long long gull;
- errno = 0;
- gull = strtoull(s, 0, 10);
- if (!((gull == eull) && (errno == een)))
- bad++;
-}
-int main() {
- check(" 1", 1LL, 0);
- check(" 0", 0LL, 0);
- check("18446744073709551615", 18446744073709551615ULL, 0);
- check("18446744073709551616", 18446744073709551615ULL, ERANGE);
-#if 0 /* strtoull() for /^-/ strings is undefined. */
- check("-1", 18446744073709551615ULL, 0);
- check("-18446744073709551614", 2LL, 0);
- check("-18446744073709551615", 1LL, 0);
- check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
- check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
-#endif
- if (!bad)
- printf("ok\n");
-}
-EOCP
- set try
- if eval $compile; then
- case "`$run ./try`" in
- ok) echo "Your strtoull() seems to be working okay." ;;
- *) cat <<EOM >&4
-Your strtoull() doesn't seem to be working okay.
-EOM
- d_strtoull="$undef"
- ;;
- esac
- else
- echo "(I can't seem to compile the test program--assuming it doesn't)"
- d_strtoull="$undef"
- fi
- ;;
-esac
-
-: see if strtouq exists
-set strtouq d_strtouq
-eval $inlibc
-
-case "$d_strtouq" in
-"$define")
- $cat <<EOM
-Checking whether your strtouq() works okay...
-EOM
- $cat >try.c <<'EOCP'
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h>
-static int bad = 0;
-void check(const char *s, unsigned long long eull, int een) {
- unsigned long long gull;
- errno = 0;
- gull = strtouq(s, 0, 10);
- if (!((gull == eull) && (errno == een)))
- bad++;
-}
-int main() {
- check(" 1", 1LL, 0);
- check(" 0", 0LL, 0);
- check("18446744073709551615", 18446744073709551615ULL, 0);
- check("18446744073709551616", 18446744073709551615ULL, ERANGE);
-#if 0 /* strtouq() for /^-/ strings is undefined. */
- check("-1", 18446744073709551615ULL, 0);
- check("-18446744073709551614", 2LL, 0);
- check("-18446744073709551615", 1LL, 0);
- check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
- check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
-#endif
- if (!bad)
- printf("ok\n");
- return 0;
-}
-EOCP
- set try
- if eval $compile; then
- case "`$run ./try`" in
- ok) echo "Your strtouq() seems to be working okay." ;;
- *) cat <<EOM >&4
-Your strtouq() doesn't seem to be working okay.
-EOM
- d_strtouq="$undef"
- ;;
- esac
- else
- echo "(I can't seem to compile the test program--assuming it doesn't)"
- d_strtouq="$undef"
- fi
- ;;
-esac
-
-: see if strxfrm exists
-set strxfrm d_strxfrm
-eval $inlibc
-
-: see if strxfrm_l exists
-set strxfrm_l d_strxfrm_l
-eval $inlibc
-
-: see if symlink exists
-set symlink d_symlink
-eval $inlibc
-
-: see if syscall exists
-set syscall d_syscall
-eval $inlibc
-
-: see if prototype for syscall is available
-echo " "
-set d_syscallproto syscall $i_unistd unistd.h
-eval $hasproto
-
-: see if sysconf exists
-set sysconf d_sysconf
-eval $inlibc
-
-: see if sys_errlist[] exists
-echo " "
-if test "X$d_syserrlst" = X; then
- if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
- echo "You have sys_errlist[], so we could roll our own strerror."
- d_syserrlst="$define"
- else
- echo "You don't have sys_errlist[], so strerror() is welcome."
- d_syserrlst="$undef"
- fi
-fi
-
-: see if system exists
-set system d_system
-eval $inlibc
-
-: see if tcgetpgrp exists
-set tcgetpgrp d_tcgetpgrp
-eval $inlibc
-
-: see if tcsetpgrp exists
-set tcsetpgrp d_tcsetpgrp
-eval $inlibc
-
-: see if prototype for telldir is available
-echo " "
-set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
-eval $hasproto
-
-: see if tgamma exists
-set tgamma d_tgamma
-eval $inlibc
-
-: see what flavor, if any, of thread local storage is supported
-echo " "
-echo "Checking to see if your system supports C11 thread local storage..."
-$cat > try.c <<'EOCP'
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-
-static int plus_one = 1;
-static int minus_one = -1;
-
-PROBE_MACRO int *minion;
-
-int callback (const void *a, const void *b) {
- int val_a = *minion * *(const int *)a;
- int val_b = *minion * *(const int *)b;
- return val_a < val_b ? -1 : val_a > val_b;
-}
-
-#define SIZE 8
-
-void *thread_function(void *arg) {
- /* thread local variables should start zeroed in each thread. */
- if (minion != NULL) {
- fprintf(stderr, "__thread variable started with %p, should be NULL\n",
- minion);
- exit(2);
- }
- minion = &minus_one;
-
- int array[SIZE];
- unsigned int i;
- for (i = 0; i < SIZE; ++i) {
- /* "Hash randomisation" - this array isn't in sorted order: */
- array[i ^ 5] = i * i;
- }
-
- qsort(array, SIZE, sizeof(int), callback);
-
- int bad = 0;
- for (i = 0; i < SIZE; ++i) {
- int want = (SIZE - 1 - i) * (SIZE - 1 - i);
- int have = array[i];
- if (want != have) {
- ++bad;
- fprintf(stderr, "array[%u] - want %i, have %i\n", i, want, have);
- }
- }
- if (bad)
- exit(3);
-
- return NULL;
-}
-
-int main(int argc, char **argv) {
- if (minion != NULL) {
- fprintf(stderr, "__thread variable started with %p, should be NULL\n",
- minion);
- exit(4);
- }
-
- minion = &plus_one;
-
- pthread_t tid;
- int result = pthread_create(&tid, NULL, thread_function, NULL);
- if (result) {
- fprintf(stderr, "pthread_create failed (%d)\n", result);
- exit(5);
- }
-
- result = pthread_join(tid, NULL);
- if (result) {
- fprintf(stderr, "pthread_join failed (%d)\n", result);
- exit(6);
- }
-
- if (minion == NULL) {
- fprintf(stderr, "__thread variable should not be NULL\n");
- exit(7);
- }
- if (!(minion == &plus_one && *minion == 1)) {
- fprintf(stderr, "__thread variable should be %d @ %p, not %d @ %p\n",
- 1, &plus_one, *minion, minion);
- exit(8);
- }
-
- return 0;
-}
-EOCP
-
-# Respect a hint (or previous) value for perl_thread_local, if there is one.
-case "$perl_thread_local" in
-'') # Check the various possibilities, and break out on success.
- for thread_local in _Thread_local __thread; do
- set try -DPROBE_MACRO=$thread_local
- if eval $compile && $run ./try; then
- $echo "Your compiler supports $thread_local." >&4
- val=$define
- perl_thread_local="$thread_local";
- break;
- fi
- $echo "Your compiler does NOT support $thread_local." >&4
- val="$undef"
- done
- ;;
-*thread*|*Thread*) # Some variant of thread local exists.
- echo "Keeping your $hint value of $perl_thread_local."
- val=$define
- ;;
-*) # Unrecognized previous value -- blindly trust the supplied
- # value and hope it makes sense. Use old value for
- # d_thread_local, if there is one.
- echo "Keeping your $hint value of $perl_thread_local."
- case "$d_thread_local" in
- '') val=$define ;;
- *) val=$d_thread_local ;;
- esac
- ;;
-esac
-set d_thread_local
-eval $setvar
-$rm_try
-
-: see if time exists
-echo " "
-if test "X$d_time" = X -o X"$timetype" = X; then
- if set time val -f d_time; eval $csym; $val; then
- echo 'time() found.' >&4
- val="$define"
- rp="What is the type returned by time() on this system?"
- set time_t timetype long stdio.h sys/types.h
- eval $typedef_ask
- else
- echo 'time() not found, hope that will do.' >&4
- val="$undef"
- timetype='int';
- fi
- set d_time
- eval $setvar
-fi
-
-: see if timegm exists
-set timegm d_timegm
-eval $inlibc
-
-: see if this is a sys/times.h system
-set sys/times.h i_systimes
-eval $inhdr
-
-: see if times exists
-echo " "
-if set times val -f d_times; eval $csym; $val; then
- echo 'times() found.' >&4
- d_times="$define"
- inc=''
- case "$i_systimes" in
- "$define") inc='sys/times.h';;
- esac
- rp="What is the type returned by times() on this system?"
- set clock_t clocktype long stdio.h sys/types.h $inc
- eval $typedef_ask
-else
- echo 'times() NOT found, hope that will do.' >&4
- d_times="$undef"
- clocktype='int'
-fi
-
-: see if tmpnam_r exists
-set tmpnam_r d_tmpnam_r
-eval $inlibc
-case "$d_tmpnam_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h "
- case "$d_tmpnam_r_proto:$usethreads" in
- ":define") d_tmpnam_r_proto=define
- set d_tmpnam_r_proto tmpnam_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_tmpnam_r_proto" in
- define)
- case "$tmpnam_r_proto" in
- ''|0) try='char* tmpnam_r(char*);'
- ./protochk "$extern_C $try" $hdrs && tmpnam_r_proto=B_B ;;
- esac
- case "$tmpnam_r_proto" in
- ''|0) d_tmpnam_r=undef
- tmpnam_r_proto=0
- echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;;
- * ) case "$tmpnam_r_proto" in
- REENTRANT_PROTO*) ;;
- *) tmpnam_r_proto="REENTRANT_PROTO_$tmpnam_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "tmpnam_r has no prototype, not using it." >&4 ;;
- esac
- d_tmpnam_r=undef
- tmpnam_r_proto=0
- ;;
- esac
- ;;
-*) tmpnam_r_proto=0
- ;;
-esac
-
-: see if towlower exists
-set towlower d_towlower
-eval $inlibc
-
-: see if trunc exists
-set trunc d_trunc
-eval $inlibc
-
-: see if truncate exists
-set truncate d_truncate
-eval $inlibc
-
-: see if ttyname_r exists
-set ttyname_r d_ttyname_r
-eval $inlibc
-case "$d_ttyname_r" in
-"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h"
- case "$d_ttyname_r_proto:$usethreads" in
- ":define") d_ttyname_r_proto=define
- set d_ttyname_r_proto ttyname_r $hdrs
- eval $hasproto ;;
- *) ;;
- esac
- case "$d_ttyname_r_proto" in
- define)
- case "$ttyname_r_proto" in
- ''|0) try='int ttyname_r(int, char*, size_t);'
- ./protochk "$extern_C $try" $hdrs && ttyname_r_proto=I_IBW ;;
- esac
- case "$ttyname_r_proto" in
- ''|0) try='int ttyname_r(int, char*, int);'
- ./protochk "$extern_C $try" $hdrs && ttyname_r_proto=I_IBI ;;
- esac
- case "$ttyname_r_proto" in
- ''|0) try='char* ttyname_r(int, char*, int);'
- ./protochk "$extern_C $try" $hdrs && ttyname_r_proto=B_IBI ;;
- esac
- case "$ttyname_r_proto" in
- ''|0) d_ttyname_r=undef
- ttyname_r_proto=0
- echo "Disabling ttyname_r, cannot determine prototype." >&4 ;;
- * ) case "$ttyname_r_proto" in
- REENTRANT_PROTO*) ;;
- *) ttyname_r_proto="REENTRANT_PROTO_$ttyname_r_proto" ;;
- esac
- echo "Prototype: $try" ;;
- esac
- ;;
- *) case "$usethreads" in
- define) echo "ttyname_r has no prototype, not using it." >&4 ;;
- esac
- d_ttyname_r=undef
- ttyname_r_proto=0
- ;;
- esac
- ;;
-*) ttyname_r_proto=0
- ;;
-esac
-
-: see if tzname[] exists
-echo " "
-if set tzname val -a d_tzname; eval $csym; $val; then
- val="$define"
- echo 'tzname[] found.' >&4
-else
- val="$undef"
- echo 'tzname[] NOT found.' >&4
-fi
-set d_tzname
-eval $setvar
-
-: Check if is a multiplatform env
-case "$osname" in
-darwin) multiarch="$define" ;;
-esac
-case "$multiarch" in
-''|[nN]*) multiarch="$undef" ;;
-esac
-
-: check for ordering of bytes in a UV
-echo " "
-case "$multiarch" in
-*$define*)
- $cat <<EOM
-You seem to be doing a multiarchitecture build,
-skipping the byteorder check.
-
-EOM
- byteorder='ffff'
- ;;
-*)
- case "$byteorder" in
- '')
- $cat <<'EOM'
-In the following, larger digits indicate more significance. A big-endian
-machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
-little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
-machines may have weird orders like 3412. A Cray will report 87654321,
-an Alpha will report 12345678. If the test program works the default is
-probably right.
-I'm now running the test program...
-EOM
- $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <sys/types.h>
-typedef $uvtype UV;
-int main()
-{
- int i;
- union {
- UV l;
- char c[$uvsize];
- } u;
-
- if ($uvsize > 4)
- u.l = (((UV)0x08070605) << 32) | (UV)0x04030201;
- else
- u.l = (UV)0x04030201;
- for (i = 0; i < $uvsize; i++)
- printf("%c", u.c[i]+'0');
- printf("\n");
- exit(0);
-}
-EOCP
- xxx_prompt=y
- set try
- if eval $compile && $run ./try > /dev/null; then
- dflt=`$run ./try`
- case "$dflt" in
- [1-4][1-4][1-4][1-4]|12345678|87654321)
- echo "(The test program ran ok.)"
- echo "byteorder=$dflt"
- xxx_prompt=n
- ;;
- ????|????????) echo "(The test program ran ok.)" ;;
- *) echo "(The test program didn't run right for some reason.)" ;;
- esac
- else
- dflt='4321'
- cat <<'EOM'
-(I can't seem to compile the test program. Guessing big-endian...)
-EOM
- fi
- case "$xxx_prompt" in
- y)
- rp="What is the order of bytes in $uvtype?"
- . ./myread
- byteorder="$ans"
- ;;
- *) byteorder=$dflt
- ;;
- esac
- ;;
- esac
- $rm_try
- ;;
-esac
-
-: Checking 32bit alignedness
-$cat <<EOM
-
-Checking to see whether you can access character data unalignedly...
-EOM
-case "$d_u32align" in
-'') $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#define U32 $u32type
-#define BYTEORDER 0x$byteorder
-#define U8 $u8type
-#include <signal.h>
-#ifdef SIGBUS
-$signal_t bletch(int s) { exit(4); }
-#endif
-int main() {
-#if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
- volatile U8 buf[8];
- volatile U32 *up;
- int i;
-
- if (sizeof(U32) != 4) {
- printf("sizeof(U32) is not 4, but %d\n", sizeof(U32));
- exit(1);
- }
-
- fflush(stdout);
-
-#ifdef SIGBUS
- signal(SIGBUS, bletch);
-#endif
-
- buf[0] = 0;
- buf[1] = 0;
- buf[2] = 0;
- buf[3] = 1;
- buf[4] = 0;
- buf[5] = 0;
- buf[6] = 0;
- buf[7] = 1;
-
- for (i = 0; i < 4; i++) {
- up = (U32*)(buf + i);
- if (! ((*up == 1 << (8*i)) || /* big-endian */
- (*up == 1 << (8*(3-i))) /* little-endian */
- )
- )
- {
- printf("read failed (%x)\n", *up);
- exit(2);
- }
- }
-
- /* write test */
- for (i = 0; i < 4; i++) {
- up = (U32*)(buf + i);
- *up = 0xBeef;
- if (*up != 0xBeef) {
- printf("write failed (%x)\n", *up);
- exit(3);
- }
- }
-
- exit(0);
-#else
- printf("1\n");
- exit(1);
-#endif
- return 0;
-}
-EOCP
-set try
-if eval $compile_ok; then
- echo "(Testing for character data alignment may crash the test. That's okay.)" >&4
- $run ./try 2>&1 >/dev/null
- case "$?" in
- 0) cat >&4 <<EOM
-You can access character data pretty unalignedly.
-EOM
- d_u32align="$undef"
- ;;
- *) cat >&4 <<EOM
-It seems that you must access character data in an aligned manner.
-EOM
- d_u32align="$define"
- ;;
- esac
-else
- rp='Can you access character data at unaligned addresses?'
- dflt='n'
- . ./myread
- case "$ans" in
- [yY]*) d_u32align="$undef" ;;
- *) d_u32align="$define" ;;
- esac
-fi
-$rm_try
-;;
-esac
-
-: see if ualarm exists
-set ualarm d_ualarm
-eval $inlibc
-
-: see if umask exists
-set umask d_umask
-eval $inlibc
-
-: see if unordered exists
-set unordered d_unordered
-eval $inlibc
-
-: see if unsetenv exists
-set unsetenv d_unsetenv
-eval $inlibc
-
-: see if usleep exists
-set usleep d_usleep
-eval $inlibc
-
-: see if prototype for usleep is available
-echo " "
-set d_usleepproto usleep $i_unistd unistd.h
-eval $hasproto
-
-: see if ustat exists
-set ustat d_ustat
-eval $inlibc
-
-: see if closedir exists
-set closedir d_closedir
-eval $inlibc
-
-case "$d_closedir" in
-"$define")
- echo " "
- echo "Checking whether closedir() returns a status..." >&4
- cat > try.c <<EOM
-#$i_dirent I_DIRENT /**/
-#$i_sysdir I_SYS_DIR /**/
-#$i_sysndir I_SYS_NDIR /**/
-#$i_systypes I_SYS_TYPES /**/
-
-#if defined(I_SYS_TYPES)
-#include <sys/types.h>
-#endif
-#if defined(I_DIRENT)
-#include <dirent.h>
-#else
-#ifdef I_SYS_NDIR
-#include <sys/ndir.h>
-#else
-#ifdef I_SYS_DIR
-#include <sys/dir.h>
-#endif
-#endif
-#endif
-int main() { return closedir(opendir(".")); }
-EOM
- set try
- if eval $compile_ok; then
- if $run ./try > /dev/null 2>&1 ; then
- echo "Yes, it does."
- val="$undef"
- else
- echo "No, it doesn't."
- val="$define"
- fi
- else
- echo "(I can't seem to compile the test program--assuming it doesn't)"
- val="$define"
- fi
- ;;
-*)
- val="$undef";
- ;;
-esac
-set d_void_closedir
-eval $setvar
-$rm_try
-
-: see if there is a wait4
-set wait4 d_wait4
-eval $inlibc
-
-: see if waitpid exists
-set waitpid d_waitpid
-eval $inlibc
-
-: see if wcrtomb exists
-set wcrtomb d_wcrtomb
-eval $inlibc
-
-: look for wcscmp
-echo " "
-$cat >try.c <<'EOCP'
-#include <stdio.h>
-#include <wchar.h>
-int main ()
-{
- wchar_t *s = L" ";
- return (wcscmp (s, s) ? 1 : 0);
- }
-EOCP
-set try
-val="$undef"
-if eval $compile; then
- `$run ./try`
- case "$?" in
- 0) echo "A working wcscmp() found." >&4
- val="$define" ;;
- *) echo "wcscmp() found, but it doesn't work" >&4
- ;;
- esac
-else
- echo "wcscmp() NOT found." >&4
- fi
-set d_wcscmp
-eval $setvar
-$rm_try
-
-: see if wcstombs exists
-set wcstombs d_wcstombs
-eval $inlibc
-
-: look for wcsxfrm
-echo " "
-$cat >try.c <<'EOCP'
-#include <errno.h>
-#include <wchar.h>
-int main ()
-{
- wchar_t dst[4], *src = L" ";
- errno = 0;
- return (wcsxfrm (dst, src, 1) ? errno ? errno : 0 : 1);
- }
-EOCP
-set try
-val="$undef"
-if eval $compile; then
- `$run ./try`
- case "$?" in
- 0) echo "A working wcsxfrm() found." >&4
- val="$define" ;;
- *) echo "wcsxfrm() found, but it doesn't work" >&4
- ;;
- esac
-else
- echo "wcsxfrm() NOT found." >&4
- fi
-set d_wcsxfrm
-eval $setvar
-$rm_try
-
-: see if wctomb exists
-set wctomb d_wctomb
-eval $inlibc
-
-: see if writev exists
-set writev d_writev
-eval $inlibc
-
-: check for alignment requirements
-echo " "
-case "$alignbytes" in
- '') echo "Checking alignment constraints..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-struct foobar {
- char foo;
- $nvtype bar;
-} try_algn;
-int main()
-{
- printf("%d\n", (int)((char *)&try_algn.bar - (char *)&try_algn.foo));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- dflt=`$run ./try`
- else
- dflt='8'
- echo "(I can't seem to compile the test program...)"
- fi
- case "$multiarch" in
- *$define*)
- : The usual safe value is 8, but Darwin with -Duselongdouble
- : needs 16. Hence, we will take 8 as a minimum, but allow
- : Configure to pick a larger value if needed.
- if $test "$dflt" -lt 8; then
- dflt='8'
- echo "Setting alignment to 8 for multiarch support.">&4
- fi
- ;;
- esac
- ;;
- *) dflt="$alignbytes"
- ;;
-esac
-rp="Doubles must be aligned on a how-many-byte boundary?"
-. ./myread
-alignbytes="$ans"
-$rm_try
-
-: set the base revision
-baserev=5.0
-
-: length of character in bytes. Is always 1, otherwise it is not C
-: This used to be a test using sizeof
-charsize=1
-
-: Check for the number of bits in a character
-case "$charbits" in
-'') echo "Checking how long a character is (in bits)..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-int main ()
-{
- int n;
- unsigned char c;
- for (c = 1, n = 0; c; c <<= 1, n++) ;
- printf ("%d\n", n);
- return (0);
- }
-EOCP
- set try
- if eval $compile_ok; then
- dflt=`$run ./try`
- else
- dflt='8'
- echo "(I can't seem to compile the test program. Guessing...)"
- fi
- ;;
-*)
- dflt="$charbits"
- ;;
-esac
-rp="What is the length of a character (in bits)?"
-. ./myread
-charbits="$ans"
-$rm_try
-case "$charbits" in
-8) ;;
-*) cat >&4 << EOM
-Your system has an unsigned character size of $charbits bits, which
-is rather unusual (normally it is 8 bits). Perl likely will not work
-correctly on your system, with subtle bugs in various places.
-EOM
- rp='Do you really want to continue?'
- dflt='n'
- . ./myread
- case "$ans" in
- [yY]) echo >&4 "Okay, continuing." ;;
- *) exit 1 ;;
- esac
-esac
-
-: how do we concatenate cpp tokens here?
-echo " "
-echo "Checking to see how your cpp does stuff like concatenate tokens..." >&4
-$cat >cpp_stuff.c <<'EOCP'
-#define RCAT(a,b)a/**/b
-#define ACAT(a,b)a ## b
-RCAT(Rei,ser)
-ACAT(Cir,cus)
-EOCP
-$cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
-if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then
- echo "Oh! Smells like ANSI's been here." >&4
- echo "We can catify or stringify, separately or together!"
- cpp_stuff=42
-elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then
- echo "Ah, yes! The good old days!" >&4
- echo "However, in the good old days we don't know how to stringify and"
- echo "catify at the same time."
- cpp_stuff=1
-else
- $cat >&4 <<EOM
-Hmm, I don't seem to be able to concatenate tokens with your cpp.
-You're going to have to edit the values of CAT[2-5] in config.h...
-EOM
- cpp_stuff="/* Help! How do we handle cpp_stuff? */*/"
-fi
-$rm -f cpp_stuff.*
-
-: see if this is a db.h system
-set db.h i_db
-eval $inhdr
-
-case "$i_db" in
-$define)
- : Check db version.
- echo " "
- echo "Checking Berkeley DB version ..." >&4
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <db.h>
-int main(int argc, char *argv[])
-{
-#ifdef DB_VERSION_MAJOR /* DB version >= 2 */
- int Major, Minor, Patch ;
- unsigned long Version ;
- (void)db_version(&Major, &Minor, &Patch) ;
- if (argc == 2) {
- printf("%d %d %d %d %d %d\n",
- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
- Major, Minor, Patch);
- exit(0);
- }
- printf("You have Berkeley DB Version 2 or greater.\n");
-
- printf("db.h is from Berkeley DB Version %d.%d.%d\n",
- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
- printf("libdb is from Berkeley DB Version %d.%d.%d\n",
- Major, Minor, Patch) ;
-
- /* check that db.h & libdb are compatible */
- if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
- printf("db.h and libdb are incompatible.\n") ;
- exit(3);
- }
-
- printf("db.h and libdb are compatible.\n") ;
-
- Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
- + DB_VERSION_PATCH ;
-
- /* needs to be >= 2.3.4 */
- if (Version < 2003004) {
- /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
- printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
- exit(2);
- }
-
- exit(0);
-#else
-#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
- if (argc == 2) {
- printf("1 0 0\n");
- exit(0);
- }
- printf("You have Berkeley DB Version 1.\n");
- exit(0); /* DB version < 2: the coast is clear. */
-#else
- exit(1); /* <db.h> not Berkeley DB? */
-#endif
-#endif
-}
-EOCP
- set try
- if eval $compile_ok && $run ./try; then
- echo 'Looks OK.' >&4
- set `$run ./try 1`
- db_version_major=$1
- db_version_minor=$2
- db_version_patch=$3
- else
- echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
- i_db=$undef
- case " $libs " in
- *"-ldb "*)
- : Remove db from list of libraries to use
- echo "Removing unusable -ldb from library list" >&4
- set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'`
- shift
- libs="$*"
- echo "libs = $libs" >&4
- ;;
- esac
- fi
- $rm_try
- ;;
-esac
-
-case "$i_db" in
-define)
- : Check the return type needed for hash
- echo " "
- echo "Checking return type needed for hash for Berkeley DB ..." >&4
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <db.h>
-
-#ifndef DB_VERSION_MAJOR
-u_int32_t hash_cb (const void* ptr, size_t size)
-{
- return 0;
-}
-HASHINFO info;
-int main()
-{
- info.hash = hash_cb;
-}
-#endif
-EOCP
- if $cc $ccflags -c try.c >try.out 2>&1 ; then
- if $compiler_warning try.out >>/dev/null 2>&1 ; then
- db_hashtype='int'
- else
- db_hashtype='u_int32_t'
- fi
- else
- : XXX Maybe we should just give up here.
- db_hashtype=u_int32_t
- $cat try.out >&4
- echo "Help: I can't seem to compile the db test program." >&4
- echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
- fi
- $rm_try
- echo "Your version of Berkeley DB uses $db_hashtype for hash."
- ;;
-*) db_hashtype=u_int32_t
- ;;
-esac
-case "$i_db" in
-define)
- : Check the return type needed for prefix
- echo " "
- echo "Checking return type needed for prefix for Berkeley DB ..." >&4
- cat >try.c <<EOCP
-#include <sys/types.h>
-#include <db.h>
-
-#ifndef DB_VERSION_MAJOR
-size_t prefix_cb (const DBT *key1, const DBT *key2)
-{
- return 0;
-}
-BTREEINFO info;
-int main()
-{
- info.prefix = prefix_cb;
-}
-#endif
-EOCP
- if $cc $ccflags -c try.c >try.out 2>&1 ; then
- if $compiler_warning try.out >>/dev/null 2>&1 ; then
- db_prefixtype='int'
- else
- db_prefixtype='size_t'
- fi
- else
- db_prefixtype='size_t'
- : XXX Maybe we should just give up here.
- $cat try.out >&4
- echo "Help: I can't seem to compile the db test program." >&4
- echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
- fi
- $rm_try
- echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
- ;;
-*) db_prefixtype='size_t'
- ;;
-esac
-
-: Include . in @INC
-$cat <<EOM
-
-Historically Perl has provided a final fallback of the current working
-directory '.' when searching for a library. This, however, can lead to
-problems when a Perl program which loads optional modules is called from
-a shared directory. This can lead to executing unexpected code.
-
-EOM
-
-# When changing to exclude by default:
-case "$default_inc_excludes_dot" in
- $undef|false|[nN]*) dflt="n" ;;
- *) dflt="y" ;;
-esac
-# To turn exclude off by default:
-#case "$default_inc_excludes_dot" in
-# $define|true|[yY]*) dflt="y" ;;
-# *) dflt="n" ;;
-#esac
-
-rp='Exclude '.' from @INC by default? '
-. ./myread
-case "$ans" in
- [nN]|undef) default_inc_excludes_dot="$undef" ;;
- *) default_inc_excludes_dot="$define" ;;
-esac
-
-: Check what kind of inf/nan your system has
-$echo "Checking the kind of infinities and nans you have..." >&4
-$echo "(The following tests may crash. That's okay.)" >&4
-$cat >try.c <<EOP
-#define DOUBLESIZE $doublesize
-#$d_longdbl HAS_LONG_DOUBLE
-#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE $longdblsize
-#define LONG_DOUBLEKIND $longdblkind
-#endif
-#include <math.h>
-#include <string.h>
-#include <stdio.h>
-/* Note that whether the sign bit is on or off
- * for NaN depends on the CPU/FPU, and possibly
- * can be affected by the build toolchain.
- *
- * For example for older MIPS and HP-PA 2.0 the quiet NaN is:
- * 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
- * 0x7f, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- * (respectively) as opposed to the more usual
- * 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- *
- * Pre-IEEE-754 floating point format do not even have inf/nan support
- * at all. They might have a "max" value (DBL_MAX), which may be deadly
- * to even mention, causing immediate SIGFPE or equivalent: this is
- * the case with VAX floating point, for example.
- */
-static void bytes(void *v, unsigned int n) {
- unsigned char *p = (unsigned char *)v;
- int i;
- for (i = 0; i < n; i++) {
- printf("0x%02x%s", p[i], i < n - 1 ? ", " : "\n");
- }
-}
-int main(int argc, char *argv[]) {
- /* We cannot use 1.0/0.0 and 0.0/0.0 (with L suffixes for long double)
- * because some compilers are 'smart' and not only warn but refuse to
- * compile such 'illegal' values. */
- double dinf = exp(1e9);
- double dnan = sqrt(-1.0);
-#ifdef HAS_LONG_DOUBLE
- long double ldinf = (long double)exp(1e9);
- long double ldnan = (long double)sqrt(-1.0);
-# if LONG_DOUBLEKIND == 3 || LONG_DOUBLEKIND == 4
-/* the 80-bit long doubles might have garbage in their excess bytes */
- memset((char *)&ldinf + 10, '\0', LONG_DOUBLESIZE - 10);
- memset((char *)&ldnan + 10, '\0', LONG_DOUBLESIZE - 10);
-# endif
-#endif
- if (argc == 2) {
- switch (argv[1][0]) {
- case '1': bytes(&dinf, sizeof(dinf)); break;
- case '2': bytes(&dnan, sizeof(dnan)); break;
-#ifdef HAS_LONG_DOUBLE
- case '3': bytes(&ldinf, sizeof(ldinf)); break;
- case '4': bytes(&ldnan, sizeof(ldnan)); break;
-#endif
- }
- }
- return 0;
-}
-EOP
-set try
-if eval $compile; then
- doubleinfbytes=`$run ./try 1`
- doublenanbytes=`$run ./try 2`
- case "$d_longdbl" in
- $define)
- longdblinfbytes=`$run ./try 3`
- longdblnanbytes=`$run ./try 4`
- ;;
- esac
-else
- # Defaults in case the above test program failed.
- case "$doublekind" in
- 1) # IEEE 754 32-bit LE
- doubleinfbytes='0x00, 0x00, 0xf0, 0x7f'
- doublenanbytes='0x00, 0x00, 0xf8, 0x7f'
- ;;
- 2) # IEEE 754 32-bit BE
- doubleinfbytes='0x7f, 0xf0, 0x00, 0x00'
- doublenanbytes='0x7f, 0xf8, 0x00, 0x00'
- ;;
- 3) # IEEE 754 64-bit LE
- doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
- doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
- ;;
- 4) # IEEE 754 64-bit BE
- doubleinfbytes='0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- doublenanbytes='0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 5) # IEEE 754 128-bit LE
- doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
- doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
- ;;
- 6) # IEEE 754 128-bit BE
- doubleinfbytes='0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- doublenanbytes='0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 7) # IEEE 754 64-bit mixed: 32-bit LEs in BE
- doubleinfbytes='0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00'
- doublenanbytes='0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00'
- ;;
- 8) # IEEE 754 64-bit mixed: 32-bit BEs in LE
- doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00'
- doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00'
- ;;
- 9|10|11|12|13|14) # VAX/Cray/IBM floating point formats, no inf/nan.
- doubleinfbytes=$undef
- doublenanbytes=$undef
- ;;
- *) # No idea.
- doubleinfbytes=$undef
- doublenanbytes=$undef
- ;;
- esac
- case "$longdblkind" in
- 1) # IEEE 754 128-bit LE
- longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f'
- longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f'
- ;;
- 2) # IEEE 754 128-bit BE
- longdblinfbytes='0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 3) # IEEE 754 80-bit LE, 12 or 16 bytes (x86)
- case "$longdblsize" in
- 12) # x86 32-bit (96 bits, or 4 x 32, or 12 x 8)
- longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00'
- longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00'
- ;;
- 16) # x86_64
- longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- *) # No idea.
- longdblinfbytes=$undef
- longdblnanbytes=$undef
- ;;
- esac
- ;;
- 4) # IEEE 754 80-bit BE, 12 or 16 bytes
- case "$longdblsize" in
- 12) # 32-bit system
- longdblinfbytes='0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 16) # 64-bit system
- longdblinfbytes='0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- *) # No idea.
- longdblinfbytes=$undef
- longdblnanbytes=$undef
- ;;
- esac
- ;;
- 5) # 128-bit LE-LE "double double"
- longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
- longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
- ;;
- 6) # 128-bit BE-BE "double double"
- longdblinfbytes='0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 7) # 128-bit LE-BE "double double"
- longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 8) # 128-bit BE-LE "double double"
- longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
- ;;
- 9|10|11|12|13|14) # VAX/Cray/IBM floating point formats, no inf/nan.
- longdblinfbytes=$undef
- longdblnanbytes=$undef
- ;;
- *) # No idea.
- longdblinfbytes=$undef
- longdblnanbytes=$undef
- ;;
- esac
-fi
-# In case the program crashed the values are empty, turn them undef.
-case "$doubleinfbytes" in
-'') doubleinfbytes=$undef ;;
-esac
-case "$doublenanbytes" in
-'') doublenanbytes=$undef ;;
-esac
-case "$longdblinfbytes" in
-'') longdblinfbytes=$undef ;;
-esac
-case "$longdblnanbytes" in
-'') longdblnanbytes=$undef ;;
-esac
-$rm_try
-
-: Check the length of the double mantissa
-$echo "Checking how many mantissa bits your doubles have..." >&4
-$cat >try.c <<EOP
-#$i_sunmath I_SUNMATH
-#include <float.h>
-#ifdef I_SUNMATH
-# include <sunmath.h>
-#endif
-#ifdef DBL_MANT_DIG
-# define BITS (DBL_MANT_DIG - 1) /* the implicit bit does not count */
-#endif
-#include <stdio.h>
-int main(int argc, char *argv[]) {
-#ifdef BITS
- printf("%d\n", BITS);
-#endif
- return 0;
-}
-EOP
-set try
-if eval $compile; then
- doublemantbits=`$run ./try`
-else
- doublemantbits="$undef"
-fi
-$rm_try
-
-: Check the length of the longdouble mantissa
-$echo "Checking how many mantissa bits your long doubles have..." >&4
-$cat >try.c <<EOP
-#$i_sunmath I_SUNMATH
-#include <float.h>
-#ifdef I_SUNMATH
-# include <sunmath.h>
-#endif
-#$d_longdbl HAS_LONG_DOUBLE
-#if defined(HAS_LONG_DOUBLE) && defined(LDBL_MANT_DIG)
-# if ($longdblkind == 3) || ($longdblkind == 4) /* 80-bit extended precision */
-/* This format has no implicit bit. Beware, however, that for
- * this format the bare LDBL_MANT_DIG is misleading for inf/nan:
- * the top three bits are used for inf (100) / qnan (11x) / snan (101),
- * and the top bit must have been one since 387, zero is plain invalid.
- * For normal fp values, the LDBL_MANT_DIG is fine, though. */
-# define BITS LDBL_MANT_DIG
-# elif ($longdblkind == 5 || $longdblkind == 6 || $longdblkind == 7 || $longdblkind == 8) /* double double */
-/* LDBL_MANT_DIG of 106 (twice 53) would be logical, but for some
- * reason e.g. Irix thinks 107. But in any case, we want only
- * the number of real bits, the implicit bits are of no interest. */
-# define BITS 2 * (DBL_MANT_DIG - 1)
-# else
-# define BITS (LDBL_MANT_DIG - 1) /* the implicit bit does not count */
-# endif
-#endif
-#include <stdio.h>
-int main(int argc, char *argv[]) {
-#ifdef BITS
- printf("%d\n", BITS);
-#endif
- return 0;
-}
-EOP
-set try
-if eval $compile; then
- longdblmantbits=`$run ./try`
-else
- longdblmantbits="$undef"
-fi
-$rm_try
-
-: Check the length of the NV mantissa
-$echo "Checking how many mantissa bits your NVs have..." >&4
-if test "X$usequadmath" = "X$define"; then
- nvmantbits=112 # 128-1-15
-else
- if test "X$nvsize" = "X$doublesize"; then
- nvmantbits="$doublemantbits"
- else
- if test "X$nvsize" = "X$longdblsize"; then
- nvmantbits="$longdblmantbits"
- else
- nvmantbits="$undef"
- fi
- fi
-fi
-
-: How can we generate normalized random numbers ?
-echo " "
-echo "Using our internal random number implementation..." >&4
-
-case "$ccflags" in
-*-Dmy_rand=*|*-Dmy_srand=*)
- echo "Removing obsolete -Dmy_rand, -Dmy_srand, and -Drandbits from ccflags." >&4
- ccflags="`echo $ccflags | sed -e 's/-Dmy_rand=random/ /'`"
- ccflags="`echo $ccflags | sed -e 's/-Dmy_srand=srandom/ /'`"
- ccflags="`echo $ccflags | sed -e 's/-Drandbits=[0-9][0-9]*/ /'`"
- ;;
-esac
-
-randfunc=Perl_drand48
-drand01="Perl_drand48()"
-seedfunc="Perl_drand48_init"
-randbits=48
-randseedtype=U32
-
-: Probe whether dtrace builds an object, as newer Illumos requires an input
-: object file that uses at least one of the probes defined in the .d file
-case "$usedtrace" in
-$define)
- case "$dtracexnolibs" in
- $define|true|[yY]*)
- dtracexnolibs=$define
- $dtrace -h -xnolibs -s ../perldtrace.d -o perldtrace.h
- ;;
- ' '|'')
- if $dtrace -h -xnolibs -s ../perldtrace.d -o perldtrace.h 2>&1 ; then
- dtracexnolibs=$define
- echo "Your dtrace accepts -xnolibs"
- elif $dtrace -h -s ../perldtrace.d -o perldtrace.h 2>&1 ; then
- dtracexnolibs=$undef
- echo "Your dtrace doesn't accept -xnolibs"
- else
- echo "Your dtrace doesn't work at all, try building without dtrace support" >&4
- exit 1
- fi
- ;;
- *)
- dtracexnolibs=$undef
- $dtrace -h -s ../perldtrace.d -o perldtrace.h
- ;;
- esac
- case $dtracexnolibs in
- $define) xnolibs=-xnolibs ;;
- *) xnolibs= ;;
- esac
-
- case "$dtraceobject" in
- $define|true|[yY]*)
- dtraceobject=$define
- ;;
- ' '|'')
- $cat >try.c <<EOM
-#include "perldtrace.h"
-int main(void) {
- PERL_LOADED_FILE("dummy");
- return 0;
-}
-EOM
- dtraceobject=$undef
- if $cc -c -o try.o $optimize $ccflags try.c \
- && $dtrace -G $xnolibs -s ../perldtrace.d try.o >/dev/null 2>&1; then
- dtraceobject=$define
- echo "Your dtrace builds an object file"
- fi
- ;;
- *) dtraceobject=$undef ;;
- esac
- $rm_try perldtrace.o perldtrace.h
-esac
-
-: Determine if this is an EBCDIC system
-echo " "
-echo "Determining whether or not we are on an EBCDIC system..." >&4
-$cat >try.c <<'EOM'
-int main()
-{
- if ('M'==0xd4) return 0;
- return 1;
-}
-EOM
-
-val=$undef
-set try
-if eval $compile_ok; then
- if $run ./try; then
- echo "You seem to speak EBCDIC." >&4
- val="$define"
- else
- echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
- fi
-else
- echo "I'm unable to compile the test program." >&4
- echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
-fi
-$rm_try
-set ebcdic
-eval $setvar
-
-: Check how to flush
-echo " "
-$cat >&4 <<EOM
-Checking how to flush all pending stdio output...
-EOM
-# I only know how to find the first 32 possibly open files on SunOS.
-# See also hints/sunos_4_1.sh and util.c --AD
-case "$osname" in
-sunos) $echo '#define PERL_FFLUSH_ALL_FOPEN_MAX 32' > try.c ;;
-esac
-$cat >>try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_unistd I_UNISTD
-#ifdef I_UNISTD
-# include <unistd.h>
-#endif
-#$d_sysconf HAS_SYSCONF
-#$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY
-#ifdef HAS_STDIO_STREAM_ARRAY
-# define STDIO_STREAM_ARRAY $stdio_stream_array
-#endif
-int main() {
- FILE* p;
- unlink("try.out");
- p = fopen("try.out", "w");
-#ifdef TRY_FPUTC
- fputc('x', p);
-#else
-# ifdef TRY_FPRINTF
- fprintf(p, "x");
-# endif
-#endif
-#ifdef TRY_FFLUSH_NULL
- fflush(NULL);
-#endif
-#ifdef TRY_FFLUSH_ALL
- {
- long open_max = -1;
-# ifdef PERL_FFLUSH_ALL_FOPEN_MAX
- open_max = PERL_FFLUSH_ALL_FOPEN_MAX;
-# else
-# if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
- open_max = sysconf(_SC_OPEN_MAX);
-# else
-# ifdef FOPEN_MAX
- open_max = FOPEN_MAX;
-# else
-# ifdef OPEN_MAX
- open_max = OPEN_MAX;
-# else
-# ifdef _NFILE
- open_max = _NFILE;
-# endif
-# endif
-# endif
-# endif
-# endif
-# ifdef HAS_STDIO_STREAM_ARRAY
- if (open_max > 0) {
- long i;
- for (i = 0; i < open_max; i++)
- if (STDIO_STREAM_ARRAY[i]._file >= 0 &&
- STDIO_STREAM_ARRAY[i]._file < open_max &&
- STDIO_STREAM_ARRAY[i]._flag)
- fflush(&STDIO_STREAM_ARRAY[i]);
- }
- }
-# endif
-#endif
- _exit(42);
-}
-EOCP
-: first we have to find out how _not_ to flush
-$to try.c
-if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
- output=''
- set try -DTRY_FPUTC
- if eval $compile; then
- $run ./try 2>/dev/null
- code="$?"
- $from try.out
- if $test ! -s try.out -a "X$code" = X42; then
- output=-DTRY_FPUTC
- fi
- fi
- case "$output" in
- '')
- set try -DTRY_FPRINTF
- if eval $compile; then
- $run ./try 2>/dev/null
- code="$?"
- $from try.out
- if $test ! -s try.out -a "X$code" = X42; then
- output=-DTRY_FPRINTF
- fi
- fi
- ;;
- esac
-fi
-: check for fflush NULL behavior
-case "$fflushNULL" in
-'') set try -DTRY_FFLUSH_NULL $output
- if eval $compile; then
- $run ./try 2>/dev/null
- code="$?"
- $from try.out
- if $test -s try.out -a "X$code" = X42; then
- fflushNULL="`$cat try.out`"
- else
- if $test "X$code" != X42; then
- $cat >&4 <<EOM
-(If this test failed, don't worry, we'll try another method shortly.)
-EOM
- fi
- fi
- fi
- $rm -f core try.core core.try.*
- case "$fflushNULL" in
- x) $cat >&4 <<EOM
-Your fflush(NULL) works okay for output streams.
-Let's see if it clobbers input pipes...
-EOM
-# As of mid-March 2000 all versions of Solaris appear to have a stdio
-# bug that improperly flushes the input end of pipes. So we avoid the
-# autoflush on fork/system/exec support for now. :-(
-$cat >tryp.c <<EOCP
-#include <stdio.h>
-int
-main(int argc, char **argv)
-{
- char buf[1024];
- int i;
- char *bp = buf;
- while (1) {
- while ((i = getc(stdin)) != -1
- && (*bp++ = i) != '\n'
- && bp < &buf[1024])
- /* DO NOTHING */ ;
- *bp = '\0';
- fprintf(stdout, "%s", buf);
- fflush(NULL);
- if (i == -1)
- return 0;
- bp = buf;
- }
-}
-EOCP
- fflushNULL="$define"
- set tryp
- if eval $compile; then
- $rm -f tryp.out
- # Copy the .c file to the remote host ($to is an ssh-alike if targethost is set)
- if $test "X$targethost" != X; then
- $to tryp.c
- $to tryp
- $run "cat tryp.c | ./tryp " 2>/dev/null > tryp.out
- else
- $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
- fi
- if cmp tryp.c tryp.out >/dev/null 2>&1; then
- $cat >&4 <<EOM
-fflush(NULL) seems to behave okay with input streams.
-EOM
- fflushNULL="$define"
- else
- $cat >&4 <<EOM
-Ouch, fflush(NULL) clobbers input pipes! We will not use it.
-EOM
- fflushNULL="$undef"
- fi
- fi
- $rm -f core tryp.c tryp.core core.tryp.*
- ;;
- '') $cat >&4 <<EOM
-Your fflush(NULL) isn't working (contrary to ANSI C).
-EOM
- fflushNULL="$undef"
- ;;
- *) $cat >&4 <<EOM
-Cannot figure out whether your fflush(NULL) works or not.
-I'm assuming it doesn't (contrary to ANSI C).
-EOM
- fflushNULL="$undef"
- ;;
- esac
- ;;
-$define|true|[yY]*)
- fflushNULL="$define"
- ;;
-*)
- fflushNULL="$undef"
- ;;
-esac
-: check explicit looping only if NULL did not work, and if the pipe
-: bug does not show up on an explicit flush too
-case "$fflushNULL" in
-"$undef")
- $cat >tryp.c <<EOCP
-#include <stdio.h>
-int
-main(int argc, char **argv)
-{
- char buf[1024];
- int i;
- char *bp = buf;
- while (1) {
- while ((i = getc(stdin)) != -1
- && (*bp++ = i) != '\n'
- && bp < &buf[1024])
- /* DO NOTHING */ ;
- *bp = '\0';
- fprintf(stdout, "%s", buf);
- fflush(stdin);
- if (i == -1)
- return 0;
- bp = buf;
- }
-}
-EOCP
- set tryp
- if eval $compile; then
- $rm -f tryp.out
- if $test "X$targethost" != X; then
- $to tryp.c
- $to tryp
- $run "cat tryp.c | ./tryp " 2>/dev/null > tryp.out
- else
- $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
- fi
- if cmp tryp.c tryp.out >/dev/null 2>&1; then
- $cat >&4 <<EOM
-Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
-EOM
- : now check for fflushall behaviour
- case "$fflushall" in
- '') set try -DTRY_FFLUSH_ALL $output
- if eval $compile; then
- $cat >&4 <<EOM
-(Now testing the other method--but note that this also may fail.)
-EOM
- $run ./try 2>/dev/null
- code=$?
- $from try.out
- if $test -s try.out -a "X$code" = X42; then
- fflushall="`$cat try.out`"
- fi
- fi
- $rm_try
- case "$fflushall" in
- x) $cat >&4 <<EOM
-Whew. Flushing explicitly all the stdio streams works.
-EOM
- fflushall="$define"
- ;;
- '') $cat >&4 <<EOM
-Sigh. Flushing explicitly all the stdio streams doesn't work.
-EOM
- fflushall="$undef"
- ;;
- *) $cat >&4 <<EOM
-Cannot figure out whether flushing stdio streams explicitly works or not.
-I'm assuming it doesn't.
-EOM
- fflushall="$undef"
- ;;
- esac
- ;;
- "$define"|true|[yY]*)
- fflushall="$define"
- ;;
- *)
- fflushall="$undef"
- ;;
- esac
- else
- $cat >&4 <<EOM
-All is futile. Even fflush(stdin) clobbers input pipes!
-EOM
- fflushall="$undef"
- fi
- else
- fflushall="$undef"
- fi
- $rm -f core tryp.c tryp.core core.tryp.*
- ;;
-*) fflushall="$undef"
- ;;
-esac
-
-case "$fflushNULL$fflushall" in
-undefundef)
- $cat <<EOM
-OK, I give up. I cannot figure out how to flush pending stdio output.
-We won't be flushing handles at all before fork/exec/popen.
-EOM
- ;;
-esac
-$rm_try tryp
-
-: Store the full pathname to the ar program for use in the C program
-: Respect a hint or command line value for full_ar.
-case "$full_ar" in
-'') full_ar=$ar ;;
-esac
-
-: Store the full pathname to the sed program for use in the C program
-full_sed=$sed
-
-: see what type gids are declared as in the kernel
-echo " "
-echo "Looking for the type for group ids returned by getgid()."
-set gid_t gidtype xxx stdio.h sys/types.h
-eval $typedef
-case "$gidtype" in
-xxx)
- xxx=`./findhdr sys/user.h`
- set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
- case $1 in
- unsigned) dflt="$1 $2" ;;
- *) dflt="$1" ;;
- esac
- ;;
-*) dflt="$gidtype";;
-esac
-case "$gidtype" in
-gid_t) echo "gid_t found." ;;
-*) rp="What is the type for group ids returned by getgid()?"
- . ./myread
- gidtype="$ans"
- ;;
-esac
-
-: Check the size of GID
-echo " "
-case "$gidtype" in
-*_t) zzz="$gidtype" ;;
-*) zzz="gid" ;;
-esac
-echo "Checking the size of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- printf("%d\n", (int)sizeof($gidtype));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- yyy=`$run ./try`
- case "$yyy" in
- '') gidsize=4
- echo "(I can't execute the test program--guessing $gidsize.)" >&4
- ;;
- *) gidsize=$yyy
- echo "Your $zzz is $gidsize bytes long."
- ;;
- esac
-else
- gidsize=4
- echo "(I can't compile the test program--guessing $gidsize.)" >&4
-fi
-
-: Check if GID is signed
-echo " "
-case "$gidtype" in
-*_t) zzz="$gidtype" ;;
-*) zzz="gid" ;;
-esac
-echo "Checking the sign of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- $gidtype foo = -1;
- if (foo < 0)
- printf("-1\n");
- else
- printf("1\n");
-}
-EOCP
-set try
-if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- '') gidsign=1
- echo "(I can't execute the test program--guessing unsigned.)" >&4
- ;;
- *) gidsign=$yyy
- case "$gidsign" in
- 1) echo "Your $zzz is unsigned." ;;
- -1) echo "Your $zzz is signed." ;;
- esac
- ;;
- esac
-else
- gidsign=1
- echo "(I can't compile the test program--guessing unsigned.)" >&4
-fi
-
-: Check 64bit sizes
-echo " "
-
-if $test X"$quadtype" != X; then
-
-echo "Checking how to print 64-bit integers..." >&4
-
-if $test X"$sPRId64" = X -a X"$quadtype" = Xint; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- int q = 12345678901;
- printf("%ld\n", q);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 12345678901)
- sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
- sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
- echo "We will use %d."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRId64" = X -a X"$quadtype" = Xlong; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- long q = 12345678901;
- printf("%ld\n", q);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 12345678901)
- sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
- sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
- echo "We will use %ld."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRId64" = X -a X"$i_inttypes" = X"$define" -a X"$quadtype" = Xint64_t; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-int main() {
- int64_t q = 12345678901;
- printf("%" PRId64 "\n", q);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 12345678901)
- sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
- sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
- echo "We will use the C9X style."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRId64" = X -a X"$quadtype" != X; then
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- $quadtype q = 12345678901;
- printf("%Ld\n", q);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 12345678901)
- sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
- sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
- echo "We will use %Ld."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
- printf("%lld\n", q);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 12345678901)
- sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
- sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
- echo "We will use the %lld style."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRId64" = X -a X"$quadtype" != X; then
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- $quadtype q = 12345678901;
- printf("%qd\n", q);
-}
-EOCP
- set try
- if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- 12345678901)
- sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
- sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
- echo "We will use %qd."
- ;;
- esac
- fi
-fi
-
-if $test X"$sPRId64" = X; then
- echo "Cannot figure out how to print 64-bit integers." >&4
-fi
-$rm_try
-
-fi
-
-case "$sPRId64" in
-'') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
- d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
- ;;
-*) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
- d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
- ;;
-esac
-
-: Check format strings for internal types
-echo " "
-$echo "Checking the format strings to be used for Perl's internal types..." >&4
-
-if $test X"$ivsize" = X8; then
- ivdformat="$sPRId64"
- uvuformat="$sPRIu64"
- uvoformat="$sPRIo64"
- uvxformat="$sPRIx64"
- uvXUformat="$sPRIXU64"
-else
- if $test X"$ivsize" = X"$longsize"; then
- ivdformat='"ld"'
- uvuformat='"lu"'
- uvoformat='"lo"'
- uvxformat='"lx"'
- uvXUformat='"lX"'
- else
- if $test X"$ivsize" = X"$intsize"; then
- ivdformat='"d"'
- uvuformat='"u"'
- uvoformat='"o"'
- uvxformat='"x"'
- uvXUformat='"X"'
- else
- : far out
- if $test X"$ivsize" = X"$shortsize"; then
- ivdformat='"hd"'
- uvuformat='"hu"'
- uvoformat='"ho"'
- uvxformat='"hx"'
- uvXUformat='"hX"'
- fi
- fi
- fi
-fi
-
-if $test X"$usequadmath" = X"$define"; then
- nveformat='"Qe"'
- nvfformat='"Qf"'
- nvgformat='"Qg"'
- nvEUformat='"QE"'
- nvFUformat='"QF"'
- nvGUformat='"QG"'
-else
- if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
- nveformat="$sPRIeldbl"
- nvfformat="$sPRIfldbl"
- nvgformat="$sPRIgldbl"
- nvEUformat="$sPRIEUldbl"
- nvFUformat="$sPRIFUldbl"
- nvGUformat="$sPRIGUldbl"
- else
- nveformat='"e"'
- nvfformat='"f"'
- nvgformat='"g"'
- nvEUformat='"E"'
- nvFUformat='"F"'
- nvGUformat='"G"'
- fi
-fi
-
-case "$ivdformat" in
-'') echo "$0: Fatal: failed to find format strings, cannot continue." >&4
- exit 1
- ;;
-esac
-
-: Check format string for GID
-
-echo " "
-$echo "Checking the format string to be used for gids..." >&4
-
-case "$gidsign" in
--1) if $test X"$gidsize" = X"$ivsize"; then
- gidformat="$ivdformat"
- else
- if $test X"$gidsize" = X"$longsize"; then
- gidformat='"ld"'
- else
- if $test X"$gidsize" = X"$intsize"; then
- gidformat='"d"'
- else
- if $test X"$gidsize" = X"$shortsize"; then
- gidformat='"hd"'
- fi
- fi
- fi
- fi
- ;;
-*) if $test X"$gidsize" = X"$uvsize"; then
- gidformat="$uvuformat"
- else
- if $test X"$gidsize" = X"$longsize"; then
- gidformat='"lu"'
- else
- if $test X"$gidsize" = X"$intsize"; then
- gidformat='"u"'
- else
- if $test X"$gidsize" = X"$shortsize"; then
- gidformat='"hu"'
- fi
- fi
- fi
- fi
- ;;
-esac
-
-: see if getgroups exists
-set getgroups d_getgrps
-eval $inlibc
-
-: see if setgroups exists
-set setgroups d_setgrps
-eval $inlibc
-
-: Find type of 2nd arg to 'getgroups()' and 'setgroups()'
-echo " "
-case "$d_getgrps$d_setgrps" in
-*define*)
- case "$groupstype" in
- '') dflt="$gidtype" ;;
- *) dflt="$groupstype" ;;
- esac
- $cat <<EOM
-What type of pointer is the second argument to getgroups() and setgroups()?
-Usually this is the same as group ids, $gidtype, but not always.
-
-EOM
- rp='What type pointer is the second argument to getgroups() and setgroups()?'
- . ./myread
- groupstype="$ans"
- ;;
-*) groupstype="$gidtype";;
-esac
-
-: check whether make sets MAKE
-echo " "
-echo "Checking if your $make program sets \$(MAKE)..." >&4
-case "$make_set_make" in
-'')
- $sed 's/^X //' > testmake.mak << 'EOF'
-Xall:
-X @echo 'maketemp="$(MAKE)"'
-EOF
- case "`$make -f testmake.mak 2>/dev/null`" in
- *maketemp=*) make_set_make='#' ;;
- *) make_set_make="MAKE=$make" ;;
- esac
- $rm -f testmake.mak
- ;;
-esac
-case "$make_set_make" in
-'#') echo "Yup, it does.";;
-*) echo "Nope, it doesn't.";;
-esac
-
-: see what type is used for mode_t
-rp="What is the type used for file modes for system calls (e.g. fchmod())?"
-set mode_t modetype int stdio.h sys/types.h
-eval $typedef_ask
-
-: see if we need va_copy
-echo " "
-$cat >try.c <<EOCP
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-
-int
-ivfprintf(FILE *f, const char *fmt, va_list *valp)
-{
- return vfprintf(f, fmt, *valp);
-}
-
-int
-myvfprintf(FILE *f, const char *fmt, va_list val)
-{
- return ivfprintf(f, fmt, &val);
-}
-
-int
-myprintf(char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- return myvfprintf(stdout, fmt, val);
-}
-
-int
-main(int ac, char **av)
-{
- signal(SIGSEGV, exit);
-#ifdef SIGBUS
- signal(SIGBUS, exit);
-#endif
-
- myprintf("%s%cs all right, then\n", "that", '\'');
- exit(0);
-}
-EOCP
-set try
-if eval $compile && $run ./try 2>&1 >/dev/null; then
- case "`$run ./try`" in
- "that's all right, then")
- okay=yes
- ;;
- esac
-fi
-case "$okay" in
-yes) echo "It seems that you don't need va_copy()." >&4
- need_va_copy="$undef"
- ;;
-*) echo "It seems that va_copy() or similar will be needed." >&4
- need_va_copy="$define"
- ;;
-esac
-$rm_try
-
-: see what type is used for size_t
-rp="What is the type used for the length parameter for string functions?"
-set size_t sizetype 'unsigned int' stdio.h sys/types.h
-eval $typedef_ask
-
-: check for type of arguments to gethostbyaddr.
-if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
- case "$d_gethbyaddr" in
- $define)
- $cat <<EOM
-
-Checking to see what type of arguments are accepted by gethostbyaddr().
-EOM
- hdrs="$define sys/types.h
- $d_socket sys/socket.h
- $i_niin netinet/in.h
- $i_netdb netdb.h
- $i_unistd unistd.h"
- : The first arg can 'char *' or 'void *'
- : The second arg is some of integral type
- for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do
- for yyy in size_t long int; do
- case "$netdb_host_type" in
- '') try="$extern_C struct hostent *gethostbyaddr($xxx, $yyy, int);"
- if ./protochk "$try" $hdrs; then
- echo "Your system accepts $xxx for the first arg."
- echo "...and $yyy for the second arg."
- netdb_host_type="$xxx"
- netdb_hlen_type="$yyy"
- fi
- ;;
- esac
- done
- done
- : In case none of those worked, prompt the user.
- case "$netdb_host_type" in
- '') rp='What is the type for the 1st argument to gethostbyaddr?'
- dflt='char *'
- . ./myread
- netdb_host_type=$ans
- rp='What is the type for the 2nd argument to gethostbyaddr?'
- dflt="$sizetype"
- . ./myread
- netdb_hlen_type=$ans
- ;;
- esac
- ;;
- *) : no gethostbyaddr, so pick harmless defaults
- netdb_host_type='char *'
- netdb_hlen_type="$sizetype"
- ;;
- esac
- # Remove the "const" if needed. -- but then we'll have a
- # prototype clash!
- # netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'`
-fi
-
-: check for type of argument to gethostbyname.
-if test "X$netdb_name_type" = X ; then
- case "$d_gethbyname" in
- $define)
- $cat <<EOM
-
-Checking to see what type of argument is accepted by gethostbyname().
-EOM
- hdrs="$define sys/types.h
- $d_socket sys/socket.h
- $i_niin netinet/in.h
- $i_netdb netdb.h
- $i_unistd unistd.h"
- for xxx in "const char *" "char *"; do
- case "$netdb_name_type" in
- '') try="$extern_C struct hostent *gethostbyname($xxx);"
- if ./protochk "$try" $hdrs; then
- echo "Your system accepts $xxx."
- netdb_name_type="$xxx"
- fi
- ;;
- esac
- done
- : In case none of those worked, prompt the user.
- case "$netdb_name_type" in
- '') rp='What is the type for the 1st argument to gethostbyname?'
- dflt='char *'
- . ./myread
- netdb_name_type=$ans
- ;;
- esac
- ;;
- *) : no gethostbyname, so pick harmless default
- netdb_name_type='char *'
- ;;
- esac
-fi
-
-: check for type of 1st argument to getnetbyaddr.
-if test "X$netdb_net_type" = X ; then
- case "$d_getnbyaddr" in
- $define)
- $cat <<EOM
-
-Checking to see what type of 1st argument is accepted by getnetbyaddr().
-EOM
- hdrs="$define sys/types.h
- $d_socket sys/socket.h
- $i_niin netinet/in.h
- $i_netdb netdb.h
- $i_unistd unistd.h"
- for xxx in in_addr_t "unsigned long" long "unsigned int" int; do
- case "$netdb_net_type" in
- '') try="$extern_C struct netent *getnetbyaddr($xxx, int);"
- if ./protochk "$try" $hdrs; then
- echo "Your system accepts $xxx."
- netdb_net_type="$xxx"
- fi
- ;;
- esac
- done
- : In case none of those worked, prompt the user.
- case "$netdb_net_type" in
- '') rp='What is the type for the 1st argument to getnetbyaddr?'
- dflt='long'
- . ./myread
- netdb_net_type=$ans
- ;;
- esac
- ;;
- *) : no getnetbyaddr, so pick harmless default
- netdb_net_type='long'
- ;;
- esac
-fi
-: locate the preferred pager for this system
-fn=f/
-case "$pager" in
-'')
- dflt=''
- case "$pg" in
- /*) dflt=$pg;;
- [a-zA-Z]:/*) dflt=$pg;;
- esac
- case "$more" in
- /*) dflt=$more;;
- [a-zA-Z]:/*) dflt=$more;;
- esac
- case "$less" in
- /*) dflt=$less;;
- [a-zA-Z]:/*) dflt=$less;;
- esac
- case "$dflt" in
- '') dflt=/usr/ucb/more;;
- esac
- ;;
-*) dflt="$pager"
- ;;
-esac
-fn="f/($dflt)"
-echo " "
-rp='What pager is used on your system?'
-. ./getfile
-pager="$ans"
-
-: see if ar generates random libraries by itself
-echo " "
-echo "Checking how to generate random libraries on your machine..." >&4
-echo 'int bar1() { return bar2(); }' > bar1.c
-echo 'int bar2() { return 2; }' > bar2.c
-$cat > foo.c <<EOP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() { printf("%d\n", bar1()); exit(0); }
-EOP
-$cc $ccflags -c bar1.c >/dev/null 2>&1
-$cc $ccflags -c bar2.c >/dev/null 2>&1
-$cc $ccflags -c foo.c >/dev/null 2>&1
-$ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
-if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- $run ./foobar >/dev/null 2>&1; then
- echo "$ar appears to generate random libraries itself."
- orderlib=false
- if [ "X$ranlib" = "X" ]; then
- ranlib=":"
- fi
-elif $ar s bar$_a >/dev/null 2>&1 &&
- $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- $run ./foobar >/dev/null 2>&1; then
- echo "a table of contents needs to be added with '$ar s'."
- orderlib=false
- ranlib="$ar s"
-elif $ar ts bar$_a >/dev/null 2>&1 &&
- $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- $run ./foobar >/dev/null 2>&1; then
- echo "a table of contents needs to be added with '$ar ts'."
- orderlib=false
- ranlib="$ar ts"
-else
- case "$ranlib" in
- :) ranlib='';;
- '')
- ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
- $test -f $ranlib || ranlib=''
- ;;
- esac
- if $test -n "$ranlib"; then
- echo "your system has '$ranlib'; we'll use that."
- orderlib=false
- else
- echo "your system doesn't seem to support random libraries"
- echo "so we'll use lorder and tsort to order the libraries."
- orderlib=true
- ranlib=":"
- fi
-fi
-$rm -f foo* bar*
-
-: Check the max offset that gmtime and localtime accept
-echo "Checking max offsets that gmtime () accepts"
-
-case "$sGMTIME_min/$sGMTIME_max" in
- 0/0|/)
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#include <time.h>
-
-int i;
-struct tm *tmp;
-time_t pt;
-
-void gm_check (time_t t, int min_year, int max_year)
-{
- tmp = gmtime (&t);
- if ( tmp == NULL ||
- /* Check tm_year overflow */
- tmp->tm_year < min_year || tmp->tm_year > max_year)
- tmp = NULL;
- else
- pt = t;
- } /* gm_check */
-
-int check_max ()
-{
- tmp = NULL;
- pt = 0;
-#ifdef MAXLONG
- gm_check (MAXLONG, 69, 0x7fffffff);
-#endif
- if (tmp == NULL || tmp->tm_year < 0) {
- for (i = 63; i >= 0; i--) {
- time_t x = pt | ((time_t)1 << i);
- if (x < 0 || x < pt) continue;
- gm_check (x, 69, 0x7fffffff);
- }
- }
- printf ("sGMTIME_max=%ld\n", pt);
- return (0);
- } /* check_max */
-
-int check_min ()
-{
- tmp = NULL;
- pt = 0;
-#ifdef MINLONG
- gm_check (MINLONG, -1900, 70);
-#endif
- if (tmp == NULL) {
- for (i = 36; i >= 0; i--) {
- time_t x = pt - ((time_t)1 << i);
- if (x > 0) continue;
- gm_check (x, -1900, 70);
- }
- }
- printf ("sGMTIME_min=%ld\n", pt);
- return (0);
- } /* check_min */
-
-int main (int argc, char *argv[])
-{
- /* fprintf (stderr, "Sizeof time_t = %ld\n", sizeof (time_t)); */
- check_max ();
- check_min ();
- return (0);
- } /* main */
-EOCP
- set try
- if eval $compile; then
- eval `$run ./try 2>/dev/null`
- else
- echo "Cannot determine sGMTIME_max and sGMTIME_min." >&4
- fi
- $rm_try
- ;;
- esac
-
-echo "Checking max offsets that localtime () accepts"
-
-case "$sLOCALTIME_min/$sLOCALTIME_max" in
- 0/0|/)
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#include <time.h>
-
-int i;
-struct tm *tmp;
-time_t pt;
-
-void local_check (time_t t, int min_year, int max_year)
-{
- if (sizeof (time_t) > 4 && t > 0x7ffffffffffff000LL)
- tmp = NULL;
- else
- tmp = localtime (&t);
- if ( tmp == NULL ||
- /* Check tm_year overflow */
- tmp->tm_year < min_year || tmp->tm_year > max_year)
- tmp = NULL;
- else
- pt = t;
- } /* local_check */
-
-int check_max ()
-{
- tmp = NULL;
- pt = 0;
-#ifdef MAXLONG
- local_check (MAXLONG, 69, 0x7fffffff);
-#endif
- if (tmp == NULL || tmp->tm_year < 0) {
- for (i = 63; i >= 0; i--) {
- time_t x = pt | ((time_t)1 << i);
- if (x < 0 || x < pt) continue;
- local_check (x, 69, 0x7fffffff);
- }
- }
- printf ("sLOCALTIME_max=%ld\n", pt);
- return (0);
- } /* check_max */
-
-int check_min ()
-{
- tmp = NULL;
- pt = 0;
-#ifdef MINLONG
- local_check (MINLONG, -1900, 70);
-#endif
- if (tmp == NULL) {
- for (i = 36; i >= 0; i--) {
- time_t x = pt - ((time_t)1 << i);
- if (x > 0) continue;
- local_check (x, -1900, 70);
- }
- }
- printf ("sLOCALTIME_min=%ld\n", pt);
- return (0);
- } /* check_min */
-
-int main (int argc, char *argv[])
-{
- check_max ();
- check_min ();
- return (0);
- } /* main */
-EOCP
- set try
- if eval $compile; then
- eval `$run ./try 2>/dev/null`
- else
- echo "Cannot determine sLOCALTIME_max and sLOCALTIME_min." >&4
- fi
- $rm_try
- ;;
- esac
-
-: check for type of arguments to select.
-case "$selecttype" in
-'') case "$d_select" in
- $define)
- echo " "
- $cat <<EOM
-Checking to see what type of arguments are accepted by select().
-EOM
- hdrs="$define sys/types.h
- $i_systime sys/time.h
- $i_sysselct sys/select.h
- $d_socket sys/socket.h"
- : The first arg can be int, unsigned, or size_t
- : The last arg may or may not be 'const'
- val=''
- : void pointer has been seen but using that
- : breaks the selectminbits test
- for xxx in 'fd_set *' 'int *'; do
- for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do
- for tmo in 'struct timeval *' 'const struct timeval *'; do
- case "$val" in
- '') try="$extern_C select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
- if ./protochk "$try" $hdrs; then
- echo "Your system accepts $xxx."
- val="$xxx"
- fi
- ;;
- esac
- done
- done
- done
- case "$val" in
- '') rp='What is the type for the 2nd, 3rd, and 4th arguments to select?'
- case "$d_fd_set" in
- $define) dflt="fd_set *" ;;
- *) dflt="int *" ;;
- esac
- . ./myread
- val=$ans
- ;;
- esac
- selecttype="$val"
- ;;
- *) : no select, so pick a harmless default
- selecttype='int *'
- ;;
- esac
- ;;
-esac
-
-: check for the select 'width'
-case "$selectminbits" in
-'') safebits=`expr $ptrsize \* 8`
- case "$d_select" in
- $define)
- $cat <<EOM
-
-Checking to see on how many bits at a time your select() operates...
-EOM
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#$i_time I_TIME
-#$i_systime I_SYS_TIME
-#$i_systimek I_SYS_TIME_KERNEL
-#ifdef I_TIME
-# include <time.h>
-#endif
-#ifdef I_SYS_TIME
-# ifdef I_SYS_TIME_KERNEL
-# define KERNEL
-# endif
-# include <sys/time.h>
-# ifdef I_SYS_TIME_KERNEL
-# undef KERNEL
-# endif
-#endif
-#$i_sysselct I_SYS_SELECT
-#ifdef I_SYS_SELECT
-#include <sys/select.h>
-#endif
-#$d_socket HAS_SOCKET
-#ifdef HAS_SOCKET
-# include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
-#endif
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-$selecttype b;
-#define S sizeof(*(b))
-#define MINBITS 64
-#define NBYTES (S * 8 > MINBITS ? S : MINBITS/8)
-#define NBITS (NBYTES * 8)
-int main() {
- char *s = (char *)malloc(NBYTES);
- struct timeval t;
- int i;
- FILE* fp;
- int fd;
-
- if (!s)
- exit(1);
- fclose(stdin);
- fp = fopen("try.c", "r");
- if (fp == 0)
- exit(2);
- fd = fileno(fp);
- if (fd < 0)
- exit(3);
- b = ($selecttype)s;
- for (i = 0; i < NBITS; i++)
- FD_SET(i, b);
- t.tv_sec = 0;
- t.tv_usec = 0;
- select(fd + 1, b, 0, 0, &t);
- for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--);
- free(s);
- printf("%d\n", i + 1);
- return 0;
-}
-EOCP
- set try
- if eval $compile_ok; then
- selectminbits=`$run ./try 2>/dev/null`
- case "$selectminbits" in
- '') cat >&4 <<EOM
-Cannot figure out on how many bits at a time your select() operates.
-I'll play safe and guess it is $safebits bits.
-EOM
- selectminbits=$safebits
- bits="$safebits bits"
- ;;
- 1) bits="1 bit" ;;
- *) bits="$selectminbits bits" ;;
- esac
- echo "Your select() operates on $bits at a time." >&4
- else
- rp='What is the minimum number of bits your select() operates on?'
- case "$byteorder" in
- 12345678) dflt=64 ;;
- 1234) dflt=32 ;;
- *) dflt=1 ;;
- esac
- . ./myread
- val=$ans
- selectminbits="$val"
- fi
- $rm_try
- ;;
- *) : no select, so pick a harmless default
- selectminbits=$safebits
- ;;
- esac
- ;;
-esac
-
-: Trace out the files included by signal.h, then look for SIGxxx names.
-case "$sig_num_init" in
-'')
-if [ "X$fieldn" = X ]; then
- : Just make some guesses. We check them later.
- xxx="$sysroot/usr/include/signal.h $sysroot/usr/include/sys/signal.h"
-else
- xxx=`echo '#include <signal.h>' |
- $cppstdin $cppminus $cppflags 2>/dev/null |
- $grep '^[ ]*#.*include' |
- $awk "{print \\$$fieldn}" | $sed 's!"!!g' |\
- $sed 's!\\\\\\\\!/!g' | $sort | $uniq`
-fi
-xxxfiles=''
-for xx in $xxx /dev/null ; do
- $test -f "$xx" && xxxfiles="$xxxfiles $xx"
-done
-case "$xxxfiles" in
-'') xxxfiles=`./findhdr signal.h` ;;
-esac
-xxx=`awk '
-$1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ {
- print substr($2, 4, 20)
-}
-$1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ {
- print substr($3, 4, 20)
-}' $xxxfiles`
-: Append some common names just in case the awk scan failed.
-xxx="$xxx ABRT ALRM BUS CANCEL CHLD CLD CONT DIL EMT FPE"
-xxx="$xxx FREEZE HUP ILL INT IO IOT KILL LOST LWP PHONE"
-xxx="$xxx PIPE POLL PROF PWR QUIT RTMAX RTMIN SEGV STKFLT STOP"
-xxx="$xxx SYS TERM THAW TRAP TSTP TTIN TTOU URG USR1 USR2"
-xxx="$xxx USR3 USR4 VTALRM WAITING WINCH WIND WINDOW XCPU XFSZ"
-
-: generate a few handy files for later
-$cat > signal.c <<EOCP
-#include <sys/types.h>
-#include <signal.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-int main() {
-
-/* Strange style to avoid deeply-nested #if/#else/#endif */
-#ifndef NSIG
-# ifdef _NSIG
-# define NSIG (_NSIG)
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef SIGMAX
-# define NSIG (SIGMAX+1)
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef SIG_MAX
-# define NSIG (SIG_MAX+1)
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef _SIG_MAX
-# define NSIG (_SIG_MAX+1)
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef MAXSIG
-# define NSIG (MAXSIG+1)
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef MAX_SIG
-# define NSIG (MAX_SIG+1)
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef SIGARRAYSIZE
-# define NSIG SIGARRAYSIZE /* Assume ary[SIGARRAYSIZE] */
-# endif
-#endif
-
-#ifndef NSIG
-# ifdef _sys_nsig
-# define NSIG (_sys_nsig) /* Solaris 2.5 */
-# endif
-#endif
-
-/* Default to some arbitrary number that's big enough to get most
- of the common signals.
-*/
-#ifndef NSIG
-# define NSIG 50
-#endif
-
-printf("NSIG %d\n", NSIG);
-
-#ifndef JUST_NSIG
-
-EOCP
-
-echo $xxx | $tr ' ' $trnl | $sort | $uniq | $awk '
-{
- printf "#ifdef SIG"; printf $1; printf "\n"
- printf "printf(\""; printf $1; printf " %%d\\n\",SIG";
- printf $1; printf ");\n"
- printf "#endif\n"
-}
-END {
- printf "#endif /* JUST_NSIG */\n";
- printf "exit(0);\n}\n";
-}
-' >>signal.c
-$cat >signal.awk <<'EOP'
-BEGIN { ndups = 0 }
-$1 ~ /^NSIG$/ { nsig = $2 }
-($1 !~ /^NSIG$/) && (NF == 2) && ($2 ~ /^[0-9][0-9]*$/) {
- if ($2 > maxsig) { maxsig = $2 }
- if (sig_name[$2]) {
- dup_name[ndups] = $1
- dup_num[ndups] = $2
- ndups++
- }
- else {
- sig_name[$2] = $1
- sig_num[$2] = $2
- }
-}
-END {
- if (nsig == 0) {
- nsig = maxsig + 1
- }
- printf("NSIG %d\n", nsig);
- for (n = 1; n < nsig; n++) {
- if (sig_name[n]) {
- printf("%s %d\n", sig_name[n], sig_num[n])
- }
- else {
- printf("NUM%d %d\n", n, n)
- }
- }
- for (n = 0; n < ndups; n++) {
- printf("%s %d\n", dup_name[n], dup_num[n])
- }
-}
-EOP
-$cat >signal_cmd <<EOS
-$startsh
-if $test -s signal.lst; then
- echo "Using your existing signal.lst file"
- exit 0
-fi
-xxx="$xxx"
-EOS
-$cat >>signal_cmd <<'EOS'
-
-set signal
-if eval $compile_ok; then
- $run ./signal$_exe | ($sort -n -k 2 2>/dev/null || $sort -n +1) |\
- $uniq | $awk -f signal.awk >signal.lst
-else
- echo "(I can't seem be able to compile the whole test program)" >&4
- echo "(I'll try it in little pieces.)" >&4
- set signal -DJUST_NSIG
- if eval $compile_ok; then
- $run ./signal$_exe > signal.nsg
- $cat signal.nsg
- else
- echo "I can't seem to figure out how many signals you have." >&4
- echo "Guessing 50." >&4
- echo 'NSIG 50' > signal.nsg
- fi
- : Now look at all the signal names, one at a time.
- for xx in `echo $xxx | $tr ' ' $trnl | $sort | $uniq`; do
- $cat > signal.c <<EOCP
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-int main() {
-printf("$xx %d\n", SIG${xx});
-return 0;
-}
-EOCP
- set signal
- if eval $compile; then
- echo "SIG${xx} found."
- $run ./signal$_exe >> signal.ls1
- else
- echo "SIG${xx} NOT found."
- fi
- done
- if $test -s signal.ls1; then
- $cat signal.nsg signal.ls1 |
- $sort -n | $uniq | $awk -f signal.awk >signal.lst
- fi
-
-fi
-if $test -s signal.lst; then
- :
-else
- echo "(AAK! I can't compile the test programs -- Guessing)" >&4
- echo 'kill -l' >signal
- set X `csh -f <signal`
- $rm -f signal
- shift
- case $# in
- 0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;;
- esac
- echo $@ | $tr ' ' $trnl | \
- $awk '{ printf "%s %d\n", $1, ++s; }
- END { printf "NSIG %d\n", ++s }' >signal.lst
-fi
-$rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1
-EOS
-chmod a+x signal_cmd
-$eunicefix signal_cmd
-;;
-esac
-
-: generate list of signal names
-case "$sig_num_init" in
-'')
-echo " "
-case "$sig_name_init" in
-'') doinit=yes ;;
-*) case "$sig_num_init" in
- ''|*,*) doinit=yes ;;
- esac ;;
-esac
-case "$doinit" in
-yes)
- echo "Generating a list of signal names and numbers..." >&4
- . ./signal_cmd
- sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
- sig_name=`$awk 'BEGIN { printf "ZERO " }
- !/^NSIG/ { printf "%s ", $1 }' signal.lst`
- sig_num=`$awk 'BEGIN { printf "0 " }
- !/^NSIG/ { printf "%d ", $2 }' signal.lst`
- sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
- !/^NSIG/ { printf "\"%s\", ", $1 }
- END { printf "0\n" }' signal.lst`
- sig_num_init=`$awk 'BEGIN { printf "0, " }
- !/^NSIG/ { printf "%d, ", $2}
- END { printf "0\n"}' signal.lst`
- ;;
-esac
-echo "The following $sig_count signals are available:"
-echo " "
-echo $sig_name | $awk \
-'BEGIN { linelen = 0 }
-{
- for (i = 1; i <= NF; i++) {
- name = "SIG" $i " "
- linelen = linelen + length(name)
- if (linelen > 70) {
- printf "\n"
- linelen = length(name)
- }
- printf "%s", name
- }
- printf "\n"
-}'
-sig_size=`echo $sig_name | awk '{print NF}'`
-$rm -f signal signal.c signal.awk signal.lst signal_cmd
-;;
-esac
-
-: Check size of size
-echo " "
-case "$sizetype" in
-*_t) zzz="$sizetype" ;;
-*) zzz="filesize" ;;
-esac
-echo "Checking the size of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- printf("%d\n", (int)sizeof($sizetype));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- yyy=`$run ./try`
- case "$yyy" in
- '') sizesize=4
- echo "(I can't execute the test program--guessing $sizesize.)" >&4
- ;;
- *) sizesize=$yyy
- echo "Your $zzz size is $sizesize bytes."
- ;;
- esac
-else
- sizesize=4
- echo "(I can't compile the test program--guessing $sizesize.)" >&4
-fi
-
-: check for socklen_t
-echo " "
-echo "Checking to see if you have socklen_t..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#$d_socket HAS_SOCKET
-#ifdef HAS_SOCKET
-#include <sys/socket.h>
-#endif
-int main() { socklen_t x = 16; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "You have socklen_t."
-else
- val="$undef"
- echo "You do not have socklen_t."
- case "$sizetype" in
- size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
- esac
-fi
-$rm_try
-set d_socklen_t
-eval $setvar
-
-: see if this is a socks.h system
-set socks.h i_socks
-eval $inhdr
-
-: check for type of the size argument to socket calls
-case "$d_socket" in
-"$define")
- $cat <<EOM
-
-Checking to see what type is the last argument of accept().
-EOM
- yyy=''
- case "$d_socklen_t" in
- "$define") yyy="$yyy socklen_t"
- esac
- yyy="$yyy $sizetype int long unsigned"
- for xxx in $yyy; do
- case "$socksizetype" in
- '') try="$extern_C int accept(int, struct sockaddr *, $xxx *);"
- case "$usesocks" in
- "$define")
- if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then
- echo "Your system accepts '$xxx *' for the last argument of accept()."
- socksizetype="$xxx"
- fi
- ;;
- *) if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h; then
- echo "Your system accepts '$xxx *' for the last argument of accept()."
- socksizetype="$xxx"
- fi
- ;;
- esac
- ;;
- esac
- done
-: In case none of those worked, prompt the user.
- case "$socksizetype" in
- '') rp='What is the type for socket address structure sizes?'
- dflt='int'
- . ./myread
- socksizetype=$ans
- ;;
- esac
- ;;
-*) : no sockets, so pick relatively harmless default
- socksizetype='int'
- ;;
-esac
-
-: see what type is used for signed size_t
-set ssize_t ssizetype int stdio.h sys/types.h
-eval $typedef
-dflt="$ssizetype"
-$cat > try.c <<EOM
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <sys/types.h>
-#define Size_t $sizetype
-#define SSize_t $dflt
-int main()
-{
- if (sizeof(Size_t) == sizeof(SSize_t))
- printf("$dflt\n");
- else if (sizeof(Size_t) == sizeof(int))
- printf("int\n");
- else
- printf("long\n");
- exit(0);
-}
-EOM
-echo " "
-set try
-if eval $compile_ok && $run ./try > /dev/null; then
- ssizetype=`$run ./try`
- echo "I'll be using $ssizetype for functions returning a byte count." >&4
-else
- $cat >&4 <<EOM
-Help! I can't compile and run the ssize_t test program: please enlighten me!
-(This is probably a misconfiguration in your system or libraries, and
-you really ought to fix it. Still, I'll try anyway.)
-
-I need a type that is the same size as $sizetype, but is guaranteed to
-be signed. Common values are ssize_t, int and long.
-
-EOM
- rp="What signed type is the same size as $sizetype?"
- . ./myread
- ssizetype="$ans"
-fi
-$rm_try
-
-: Check the size of st_dev
-$echo " "
-$echo "Checking the size of st_dev..." >&4
-$cat > try.c <<EOCP
-#include <sys/stat.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- struct stat st;
- printf("%d\n", (int)sizeof(st.st_dev));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- val=`$run ./try`
- case "$val" in
- '') st_dev_size=4
- $echo "(I can't execute the test program--guessing $st_dev_size.)" >&4
- ;;
- *) st_dev_size=$val
- $echo "Your st_dev is $st_dev_size bytes long."
- ;;
- esac
-else
- st_dev_size=4
- $echo "(I can't compile the test program--guessing $st_dev_size.)" >&4
-fi
-$rm_try
-
-: Check if st_dev is signed
-$echo " "
-$echo "Checking the sign of st_dev..." >&4
-$cat > try.c <<EOCP
-#include <sys/stat.h>
-#include <stdio.h>
-int main() {
- struct stat foo;
- foo.st_dev = -1;
- if (foo.st_dev < 0)
- printf("-1\n");
- else
- printf("1\n");
-}
-EOCP
-set try
-if eval $compile; then
- val=`$run ./try`
- case "$val" in
- '') st_dev_sign=1
- $echo "(I can't execute the test program--guessing unsigned.)" >&4
- ;;
- *) st_dev_sign=$val
- case "$st_dev_sign" in
- 1) $echo "Your st_dev is unsigned." ;;
- -1) $echo "Your st_dev is signed." ;;
- esac
- ;;
- esac
-else
- st_dev_sign=1
- $echo "(I can't compile the test program--guessing unsigned.)" >&4
-fi
-$rm_try
-
-: Check the size of st_ino
-$echo " "
-$echo "Checking the size of st_ino..." >&4
-$cat > try.c <<EOCP
-#include <sys/stat.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- struct stat st;
- printf("%d\n", (int)sizeof(st.st_ino));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- val=`$run ./try`
- case "$val" in
- '') st_ino_size=4
- $echo "(I can't execute the test program--guessing $st_ino_size.)" >&4
- ;;
- *) st_ino_size=$val
- $echo "Your st_ino is $st_ino_size bytes long."
- ;;
- esac
-else
- st_ino_size=4
- $echo "(I can't compile the test program--guessing $st_ino_size.)" >&4
-fi
-$rm_try
-
-: Check if st_ino is signed
-$echo " "
-$echo "Checking the sign of st_ino..." >&4
-$cat > try.c <<EOCP
-#include <sys/stat.h>
-#include <stdio.h>
-int main() {
- struct stat foo;
- foo.st_ino = -1;
- if (foo.st_ino < 0)
- printf("-1\n");
- else
- printf("1\n");
-}
-EOCP
-set try
-if eval $compile; then
- val=`$run ./try`
- case "$val" in
- '') st_ino_sign=1
- $echo "(I can't execute the test program--guessing unsigned.)" >&4
- ;;
- *) st_ino_sign=$val
- case "$st_ino_sign" in
- 1) $echo "Your st_ino is unsigned." ;;
- -1) $echo "Your st_ino is signed." ;;
- esac
- ;;
- esac
-else
- st_ino_sign=1
- $echo "(I can't compile the test program--guessing unsigned.)" >&4
-fi
-$rm_try
-
-: see what type of char stdio uses.
-echo " "
-echo '#include <stdio.h>' | $cppstdin $cppminus > stdioh
-if $contains 'unsigned.*char.*_ptr;' stdioh >/dev/null 2>&1 ; then
- echo "Your stdio uses unsigned chars." >&4
- stdchar="unsigned char"
-else
- echo "Your stdio uses signed chars." >&4
- stdchar="char"
-fi
-$rm -f stdioh
-
-: Check size of UID
-echo " "
-case "$uidtype" in
-*_t) zzz="$uidtype" ;;
-*) zzz="uid" ;;
-esac
-echo "Checking the size of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main() {
- printf("%d\n", (int)sizeof($uidtype));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- yyy=`$run ./try`
- case "$yyy" in
- '') uidsize=4
- echo "(I can't execute the test program--guessing $uidsize.)" >&4
- ;;
- *) uidsize=$yyy
- echo "Your $zzz is $uidsize bytes long."
- ;;
- esac
-else
- uidsize=4
- echo "(I can't compile the test program--guessing $uidsize.)" >&4
-fi
-
-: Check if UID is signed
-echo " "
-case "$uidtype" in
-*_t) zzz="$uidtype" ;;
-*) zzz="uid" ;;
-esac
-echo "Checking the sign of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- $uidtype foo = -1;
- if (foo < 0)
- printf("-1\n");
- else
- printf("1\n");
-}
-EOCP
-set try
-if eval $compile; then
- yyy=`$run ./try`
- case "$yyy" in
- '') uidsign=1
- echo "(I can't execute the test program--guessing unsigned.)" >&4
- ;;
- *) uidsign=$yyy
- case "$uidsign" in
- 1) echo "Your $zzz is unsigned." ;;
- -1) echo "Your $zzz is signed." ;;
- esac
- ;;
- esac
-else
- uidsign=1
- echo "(I can't compile the test program--guessing unsigned.)" >&4
-fi
-
-: Check format string for UID
-echo " "
-$echo "Checking the format string to be used for uids..." >&4
-
-case "$uidsign" in
--1) if $test X"$uidsize" = X"$ivsize"; then
- uidformat="$ivdformat"
- else
- if $test X"$uidsize" = X"$longsize"; then
- uidformat='"ld"'
- else
- if $test X"$uidsize" = X"$intsize"; then
- uidformat='"d"'
- else
- if $test X"$uidsize" = X"$shortsize"; then
- uidformat='"hd"'
- fi
- fi
- fi
- fi
- ;;
-*) if $test X"$uidsize" = X"$uvsize"; then
- uidformat="$uvuformat"
- else
- if $test X"$uidsize" = X"$longsize"; then
- uidformat='"lu"'
- else
- if $test X"$uidsize" = X"$intsize"; then
- uidformat='"u"'
- else
- if $test X"$uidsize" = X"$shortsize"; then
- uidformat='"hu"'
- fi
- fi
- fi
- fi
- ;;
-esac
-
-: Ask about strict by default.
-case "$usedefaultstrict" in
- $define|true|[Yy]*)
- dflt="y"
- ;;
- *)
- dflt="n"
- ;;
- esac
-
-cat <<EOM
-
-EXPERIMENTAL: Perl can now be built with strict on by default when not
-invoked with -e or -E. This is a diagnostic tool for development.
-
-Unless you are familiar with this feature, you should probably answer 'no'.
-
-EOM
-
-rp='Would you like to build perl with strict enabled by default?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set usedefaultstrict
-eval $setvar
-
-: Determine if we can use sysctl with KERN_PROC_PATHNAME to find executing program
-echo " "
-echo "Determining whether we can use sysctl with KERN_PROC_PATHNAME to find executing program..." >&4
-$cat >try.c <<'EOM'
-/* Intentionally a long probe as I'd like to sanity check that the exact
- approach is going to work, as thinking it will work, but only having it
- part working at runtime is worse than not having it. */
-
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <sys/param.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int
-main(int argc, char **argv) {
- char *buffer;
- char *argv_leaf = strrchr(argv[0], '/');
- char *buffer_leaf;
- size_t size = 0;
- int mib[4];
-
- mib[0] = CTL_KERN;
- mib[1] = KERN_PROC;
- mib[2] = KERN_PROC_PATHNAME;
- mib[3] = -1;
-
- if (!argv_leaf) {
- fprintf(stderr, "Can't locate / in '%s'\n", argv[0]);
- return 1;
- }
-
- if (sysctl(mib, 4, NULL, &size, NULL, 0)) {
- perror("sysctl");
- return 2;
- }
-
- if (size < strlen(argv_leaf) + 1) {
- fprintf(stderr, "size %lu is too short for a path\n",
- (unsigned long) size);
- return 3;
- }
-
- if (size > MAXPATHLEN * MAXPATHLEN) {
- fprintf(stderr, "size %lu is too long for a path\n",
- (unsigned long) size);
- return 4;
- }
-
- buffer = (char *)malloc(size);
- if (!buffer) {
- perror("malloc");
- return 5;
- }
-
- if (sysctl(mib, 4, buffer, &size, NULL, 0)) {
- perror("sysctl");
- return 6;
- }
-
- if (strlen(buffer) + 1 != size) {
- fprintf(stderr, "size != strlen(buffer) + 1 (%lu != %lu)\n",
- (unsigned long)size, (unsigned long)strlen(buffer) + 1);
- return 7;
- }
-
-
- if (*buffer != '/') {
- fprintf(stderr, "Not an absolute path: '%s'\n", buffer);
- return 8;
- }
-
- if (strstr(buffer, "/./")) {
- fprintf(stderr, "Contains /./: '%s'\n", buffer);
- return 9;
- }
-
- if (strstr(buffer, "/../")) {
- fprintf(stderr, "Contains /../: '%s'\n", buffer);
- return 10;
- }
-
- buffer_leaf = strrchr(buffer, '/');
- if (strcmp(buffer_leaf, argv_leaf) != 0) {
- fprintf(stderr, "Leafnames differ: '%s' vs '%s'\n", argv[0], buffer);
- return 11;
- }
-
- free(buffer);
-
- return 0;
-}
-EOM
-
-val=$undef
-set try
-if eval $compile; then
- if $run ./try; then
- echo "You can use sysctl with KERN_PROC_PATHNAME to find the executing program." >&4
- val="$define"
- else
- echo "Nope, sysctl with KERN_PROC_PATHNAME doesn't work here." >&4
- val="$undef"
- fi
-else
- echo "I'm unable to compile the test program." >&4
- echo "I'll assume no sysctl with KERN_PROC_PATHNAME here." >&4
- val="$undef"
-fi
-$rm_try
-set usekernprocpathname
-eval $setvar
-
-: Determine if we can use _NSGetExecutablePath to find executing program
-echo " "
-echo "Determining whether we can use _NSGetExecutablePath to find executing program..." >&4
-$cat >try.c <<'EOM'
-/* Intentionally a long probe as I'd like to sanity check that the exact
- approach is going to work, as thinking it will work, but only having it
- part working at runtime is worse than not having it. */
-#include <mach-o/dyld.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/param.h>
-#include <string.h>
-
-int
-main(int argc, char **argv) {
- char buf[1];
- uint32_t size = sizeof(buf);
- int result;
- char *buffer;
- char *tidied;
- char *argv_leaf = strrchr(argv[0], '/');
- char *tidied_leaf;
-
- if (!argv_leaf) {
- fprintf(stderr, "Can't locate / in '%s'\n", argv[0]);
- return 1;
- }
-
- _NSGetExecutablePath(buf, &size);
- if (size > MAXPATHLEN * MAXPATHLEN) {
- fprintf(stderr, "_NSGetExecutablePath size %u is too long for a path\n",
- (unsigned int) size);
- return 2;
- }
-
- buffer = (char *)malloc(size);
- if (!buffer) {
- perror("malloc");
- return 3;
- }
-
- result = _NSGetExecutablePath(buffer, &size);
- if (result != 0) {
- fprintf(stderr, "_NSGetExecutablePath returned %i for a size of %u\n",
- result, (unsigned int) size);
- return 4;
- }
-
- tidied = realpath(buffer, NULL);
- if (!tidied) {
- perror("realpath");
- return 5;
- }
-
- free(buffer);
-
- if (*tidied != '/') {
- fprintf(stderr, "Not an absolute path: '%s'\n", tidied);
- return 6;
- }
-
- if (strstr(tidied, "/./")) {
- fprintf(stderr, "Contains /./: '%s'\n", tidied);
- return 7;
- }
-
- if (strstr(tidied, "/../")) {
- fprintf(stderr, "Contains /../: '%s'\n", tidied);
- return 8;
- }
-
- tidied_leaf = strrchr(tidied, '/');
- if (strcmp(tidied_leaf, argv_leaf) != 0) {
- fprintf(stderr, "Leafnames differ: '%s' vs '%s'\n", argv[0], tidied);
- return 9;
- }
-
- free(tidied);
-
- return 0;
-}
-EOM
-
-val=$undef
-set try
-if eval $compile; then
- if $run ./try; then
- echo "You can use _NSGetExecutablePath to find the executing program." >&4
- val="$define"
- else
- echo "Nope, _NSGetExecutablePath doesn't work here." >&4
- fi
-else
- echo "I'm unable to compile the test program." >&4
- echo "I'll assume no _NSGetExecutablePath here." >&4
-fi
-$rm_try
-set usensgetexecutablepath
-eval $setvar
-
-: Check if site customization support was requested
-case "$usesitecustomize" in
- $define|true|[Yy]*)
- usesitecustomize="$define"
- ;;
- *)
- usesitecustomize="$undef"
- ;;
- esac
-
-: determine compiler compiler
-case "$yacc" in
-'')
- dflt=yacc;;
-*)
- dflt="$yacc";;
-esac
-echo " "
-comp='yacc'
-if $test -f "$byacc$_exe"; then
- dflt="$byacc"
- comp="byacc or $comp"
-fi
-if $test -f "$bison$_exe"; then
- comp="$comp or bison -y"
-fi
-rp="Which compiler compiler ($comp) shall I use?"
-. ./myread
-yacc="$ans"
-case "$yacc" in
-*bis*)
- case "$yacc" in
- *-y*) ;;
- *)
- yacc="$yacc -y"
- echo "(Adding -y option to bison to get yacc-compatible behavior.)"
- ;;
- esac
- ;;
-esac
-
-: see if this is a bfd.h system
-set bfd.h i_bfd
-eval $inhdr
-
-: see if this is an execinfo.h system
-set execinfo.h i_execinfo
-eval $inhdr
-
-: see if this is a fenv.h system
-set fenv.h i_fenv
-eval $inhdr
-
-: see if this is a fp.h system
-set fp.h i_fp
-eval $inhdr
-
-: see if this is a fp_class.h system
-set fp_class.h i_fp_class
-eval $inhdr
-
-: see if gdbm.h is available
-set gdbm.h t_gdbm
-eval $inhdr
-case "$t_gdbm" in
-$define)
- : see if gdbm_open exists
- set gdbm_open d_gdbm_open
- eval $inlibc
- case "$d_gdbm_open" in
- $undef)
- t_gdbm="$undef"
- echo "We won't be including <gdbm.h>"
- ;;
- esac
- ;;
-esac
-val="$t_gdbm"
-set i_gdbm
-eval $setvar
-
-: see if this is a ieeefp.h system
-case "$i_ieeefp" in
-'' ) set ieeefp.h i_ieeefp
- eval $inhdr
- ;;
-esac
-
-: see if this is a libutil.h system
-set libutil.h i_libutil
-eval $inhdr
-
-: see if mach cthreads are available
-if test "X$usethreads" = "X$define"; then
- set mach/cthreads.h i_machcthr
- eval $inhdr
-else
- i_machcthr="$undef"
-fi
-
-: see if this is a mntent.h system
-set mntent.h i_mntent
-eval $inhdr
-
-: see if net/errno.h is available
-val=''
-set net/errno.h val
-eval $inhdr
-
-: Unfortunately, it causes problems on some systems. Arrgh.
-case "$val" in
-$define)
- cat > try.c <<'EOM'
-#include <stdio.h>
-#include <errno.h>
-#include <net/errno.h>
-int func()
-{
- return ENOTSOCK;
-}
-EOM
- if $cc $ccflags -c try.c >/dev/null 2>&1; then
- echo "We'll be including <net/errno.h>." >&4
- else
- echo "We won't be including <net/errno.h>." >&4
- val="$undef"
- fi
- $rm_try
- ;;
-esac
-set i_neterrno
-eval $setvar
-
-: see if netinet/tcp.h is available
-set netinet/tcp.h i_netinettcp
-eval $inhdr
-
-: see if this is a poll.h system
-set poll.h i_poll
-eval $inhdr
-
-: see if this is a prot.h system
-set prot.h i_prot
-eval $inhdr
-
-: Preprocessor symbols
-echo " "
-$echo "Guessing which symbols your C compiler and preprocessor define..." >&4
-$cat <<'EOSH' > Cppsym.know
-a29k aarch64 ABI64 aegis AES_SOURCE AIX AIX32 AIX370 AIX41 AIX42
-AIX43 aixpc AIX_SOURCE alliant ALL_SOURCE alpha AM29000 am29000
-AMD64 amd64 amiga AMIGAOS AMIX ansi ANSI_C_SOURCE apollo arch_ppc
-arch_pwr ardent ARM ARM32 atarist att386 att3b
-BeOS BIG_ENDIAN BIT_MSF BSD bsd bsd43 bsd4_2 BSD4_3 bsd4_3 bsd4_4
-BSDCOMPAT bsdi BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES bull
-byteorder byte_order
-c cadmus clang clipper CMU COFF COMPILER_VERSION concurrent
-convex cpu CRAY cray CRAYMPP ctix CX_UX CYGWIN
-DECC DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO Dynix DynixPTX
-ELF encore EPI EXTENSIONS
-FAVOR_BSD FILE_OFFSET_BITS FORTIFY_SOURCE FreeBSD
-GCC_NEW_VARARGS gcos gcx gimpel GLIBC GLIBC_MINOR GNUC GNUC_MINOR
-GNU_LIBRARY GNU_SOURCE GO32 gould GOULD_PN
-H3050R H3050RX hbullx20 hcx host_mips hp200 hp300 HP700 hp700
-hp800 hp9000 hp9000s200 hp9000s300 hp9000s400
-hp9000s700 hp9000s800 hp9k8 hppa hpux HPUX_SOURCE hp_osf
-i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960 IA32 IA64
-iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
-INLINE_INTRINSICS INT64 INTEL interdata INTRINSICS is68k itanium
-ksr1
-LANGUAGE_C LARGEFILE64_SOURCE LARGEFILE_SOURCE LARGE_FILE_API
-LFS64_LARGEFILE LFS_LARGEFILE LIBCATAMOUNT Linux LITTLE_ENDIAN
-LONG64 LONGDOUBLE LONGLONG LONG_DOUBLE LONG_LONG LP64 luna
-luna88k Lynx
-M68000 m68k m88100 m88k M88KBCS_TARGET MACH machine MachTen
-MATH_HAS_NO_SIDE_EFFECTS mc300 mc500 mc68000 mc68010 mc68020
-mc68030 mc68040 mc68060 mc68k mc68k32 mc700 mc88000 mc88100
-merlin mert MiNT mips MIPSEB MIPSEL MIPS_FPSET MIPS_ISA MIPS_SIM
-MIPS_SZINT MIPS_SZLONG MIPS_SZPTR MODERN_C motorola MSDOS
-MTXINU MULTIMAX MVS mvs M_AMD64 M_ARM M_ARMT M_COFF M_I186 M_I286
-M_I386 M_I8086 M_I86 M_I86SM M_IA64 M_IX86 M_PPC M_SYS3 M_SYS5
-M_SYSIII M_SYSV M_UNIX M_X86 M_XENIX
-n16 ncl_el ncl_mr NetBSD news1500 news1700 news1800 news1900
-news3700 news700 news800 news900 NeXT NLS nonstopux ns16000
-ns32000 ns32016 ns32332 ns32k nsc32000
-OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE
-PARAGON parisc pa_risc PA_RISC1_1 PA_RISC2_0 pc532 pdp11 PGC PIC
-plexus PORTAR posix POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
-POSIX_C_SOURCE POSIX_SOURCE POWER powerpc ppc PROTOTYPES PWB pyr
-QK_USER QNX
-R3000 REENTRANT RES Rhapsody RISC6000 riscix riscos RT
-S390 S390x SA110 SCO scs sequent sgi SGI_SOURCE SH SH3 sinix
-SIZE_INT SIZE_LONG SIZE_PTR SOCKETS_SOURCE SOCKET_SOURCE sony
-sonyrisc sony_news sparc sparclite sparcv8 sparcv9 spectrum
-stardent stdc STDC_EXT stratos sun sun3 sun386 Sun386i svr3 svr4
-SVR4_2 SVR4_SOURCE svr5 SX system SYSTYPE_BSD SYSTYPE_BSD43
-SYSTYPE_BSD44 SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3
-SYSV4 SYSV5 sysV68 sysV88
-Tek4132 Tek4300 thumb thw_370 thw_intel thw_rs6000 titan TM3200
-TM5400 TM5600 tower tower32 tower32_200 tower32_600 tower32_700
-tower32_800 tower32_850 tss
-u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5 ultrix UMAXV UnicomPBB
-UnicomPBD UNICOS UNICOSMK unix UNIX95 UNIX99 unixpc unos USE_BSD
-USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE
-USE_LARGEFILE64 USE_MISC USE_POSIX USE_POSIX199309
-USE_POSIX199506 USE_POSIX2 USE_REENTRANT USE_SVID USE_UNIX98
-USE_XOPEN USE_XOPEN_EXTENDED USGr4 USGr4_2 UTek Utek UTS UWIN
-uxpm uxps
-vax venix VMESA vms
-x86_64 xenix Xenix286 XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2
-XPG2_EXTENDED XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
-z8000 zarch
-EOSH
-# Maybe put other stuff here too.
-./tr '-' '_' <<EOSH >>Cppsym.know
-$osname
-EOSH
-./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
-./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
-$cat Cppsym.know > Cppsym.c
-$cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | $sort | $uniq > Cppsym.know
-$rm -f Cppsym.a Cppsym.b Cppsym.c
-cat <<EOSH > Cppsym
-$startsh
-if $test \$# -gt 0; then
- echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got
- if $test -s Cppsym.got; then
- $rm -f Cppsym.got
- exit 0
- fi
- $rm -f Cppsym.got
- exit 1
-else
- $tr " " "$trnl" | ./Cppsym.try
- exit 0
-fi
-EOSH
-chmod +x Cppsym
-$eunicefix Cppsym
-cat <<EOSH > Cppsym.try
-$startsh
-cat <<'EOCP' > try.c
-#include <stdio.h>
-#if cpp_stuff == 1
-#define STRINGIFY(a) "a"
-#endif
-#if cpp_stuff == 42
-#define StGiFy(a) #a
-#define STRINGIFY(a) StGiFy(a)
-#endif
-#if $cpp_stuff != 1 && $cpp_stuff != 42
-# include "Bletch: How does this C preprocessor stringify macros?"
-#endif
-int main() {
-EOCP
-$awk \\
-EOSH
-cat <<'EOSH' >> Cppsym.try
-'length($1) > 0 {
- printf "#ifdef %s\nprintf(\"%s=%%s\\n\", STRINGIFY(%s));\n#endif\n", $1, $1, $1
- printf "#ifdef _%s\nprintf(\"_%s=%%s\\n\", STRINGIFY(_%s));\n#endif\n", $1, $1, $1
- printf "#ifdef __%s\nprintf(\"__%s=%%s\\n\", STRINGIFY(__%s));\n#endif\n", $1, $1, $1
- printf "#ifdef __%s__\nprintf(\"__%s__=%%s\\n\", STRINGIFY(__%s__));\n#endif\n", $1, $1, $1
-}' >> try.c
-echo 'return 0;}' >> try.c
-EOSH
-cat <<EOSH >> Cppsym.try
-ccflags="$ccflags"
-case "$osname-$gccversion" in
-irix-) ccflags="\$ccflags -woff 1178" ;;
-os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
-esac
-$cc -o try -Dcpp_stuff=$cpp_stuff $optimize \$ccflags $ldflags try.c $libs 2>/dev/null && $run ./try | $sed 's/ /\\\\ /g'
-EOSH
-chmod +x Cppsym.try
-$eunicefix Cppsym.try
-./Cppsym < Cppsym.know | $sort | $uniq > Cppsym.true
-: Add in any Linux cpp "predefined macros":
-case "$osname::$gccversion" in
- *linux*::*.*|*gnukfreebsd*::*.*|gnu::*.*)
- tHdrH=_tmpHdr
- rm -f $tHdrH'.h' $tHdrH
- touch $tHdrH'.h'
- # Filter out macro arguments, such as Linux's __INT8_C(c)
- if $cpp -dM $tHdrH'.h' > $tHdrH'_cppsym.h' && [ -s $tHdrH'_cppsym.h' ]; then
- sed -e 's/#define[\ \ ]*//;s/[\ \ ].*$//' -e 's/(.*//' <$tHdrH'_cppsym.h' >$tHdrH'_cppsym.real'
- if [ -s $tHdrH'_cppsym.real' ]; then
- cat $tHdrH'_cppsym.real' Cppsym.know | sort | uniq | ./Cppsym | sort | uniq > Cppsym.true
- fi
- fi
- rm -f $tHdrH'.h' $tHdrH'_cppsym.h' $tHdrH'_cppsym.real'
- ;;
-esac
-: now check the C compiler for additional symbols
-postprocess_cc_v=''
-case "$osname" in
-aix) postprocess_cc_v="|$tr , ' '" ;;
-esac
-$cat >ccsym <<EOS
-$startsh
-$cat >tmp.c <<EOF
-extern int foo;
-EOF
-for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
-do
- case "\$i" in
- -D*) echo "\$i" | $sed 's/^-D//';;
- -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';;
- esac
-done
-$rm_try
-EOS
-postprocess_cc_v=''
-chmod +x ccsym
-$eunicefix ccsym
-./ccsym > ccsym1.raw
-if $test -s ccsym1.raw; then
- $sort ccsym1.raw | $uniq >ccsym.raw
-else
- mv ccsym1.raw ccsym.raw
-fi
-
-$awk '/\=/ { print $0; next }
- { print $0"=1" }' ccsym.raw >ccsym.list
-$comm -13 Cppsym.true ccsym.list >ccsym.own
-$comm -12 Cppsym.true ccsym.list >ccsym.com
-$comm -23 Cppsym.true ccsym.list >ccsym.cpp
-also=''
-if $test -z ccsym.raw; then
- echo "Your C compiler doesn't seem to define any symbols!" >&4
- echo " "
- echo "However, your C preprocessor defines the following symbols:"
- $cat Cppsym.true
- ccsymbols=''
- cppsymbols=`$cat Cppsym.true`
- cppsymbols=`echo $cppsymbols`
- cppccsymbols="$cppsymbols"
-else
- if $test -s ccsym.com; then
- echo "Your C compiler and pre-processor define these symbols:"
- $sed -e 's/\(..*\)=.*/\1/' ccsym.com
- also='also '
- symbols='ones'
- cppccsymbols=`$cat ccsym.com`
- cppccsymbols=`echo $cppccsymbols`
- $test "$silent" || sleep 1
- fi
- if $test -s ccsym.cpp; then
- $test "$also" && echo " "
- echo "Your C pre-processor ${also}defines the following symbols:"
- $sed -e 's/\(..*\)=.*/\1/' ccsym.cpp
- also='further '
- cppsymbols=`$cat ccsym.cpp`
- cppsymbols=`echo $cppsymbols`
- $test "$silent" || sleep 1
- fi
- if $test -s ccsym.own; then
- $test "$also" && echo " "
- echo "Your C compiler ${also}defines the following cpp symbols:"
- $sed -e 's/\(..*\)=1/\1/' ccsym.own
- $sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
- ccsymbols=`$cat ccsym.own`
- ccsymbols=`echo $ccsymbols`
- $test "$silent" || sleep 1
- fi
-fi
-
-: add -D_FORTIFY_SOURCE if feasible and not already there
-case "$gccversion" in
-[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in
- *-O*) case "$ccflags$cppsymbols" in
- *_FORTIFY_SOURCE=*) # Don't add it again.
- echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4
- ;;
- *) echo "Adding -D_FORTIFY_SOURCE=2 to ccflags..." >&4
- ccflags="$ccflags -D_FORTIFY_SOURCE=2"
- ;;
- esac
- ;;
- *) echo "You have gcc 4.* or later but not optimizing, not adding -D_FORTIFY_SOURCE." >&4
- ;;
- esac
- ;;
-*) echo "You seem not to have gcc 4.* or later, not adding -D_FORTIFY_SOURCE." >&4
- ;;
-esac
-
-: script used to emit important warnings
-cat >warn <<EOS
-$startsh
-if test \$# -gt 0; then
- echo "\$@" >msg
-else
- cat >msg
-fi
-echo "*** WARNING:" >&4
-sed -e 's/^/*** /' <msg >&4
-echo "*** " >&4
-cat msg >>config.msg
-echo " " >>config.msg
-rm -f msg
-EOS
-chmod +x warn
-$eunicefix warn
-
-: see if this is a termio system
-val="$undef"
-val2="$undef"
-val3="$undef"
-if $test `./findhdr termios.h`; then
- set tcsetattr i_termios
- eval $inlibc
- val3="$i_termios"
-fi
-echo " "
-case "$val3" in
- "$define") echo "You have POSIX termios.h... good!" >&4;;
- *) if ./Cppsym pyr; then
- case "`$run /bin/universe`" in
- ucb) if $test `./findhdr sgtty.h`; then
- val2="$define"
- echo "<sgtty.h> found." >&4
- else
- echo "System is pyramid with BSD universe."
- ./warn "<sgtty.h> not found--you could have problems."
- fi;;
- *) if $test `./findhdr termio.h`; then
- val="$define"
- echo "<termio.h> found." >&4
- else
- echo "System is pyramid with USG universe."
- ./warn "<termio.h> not found--you could have problems."
- fi;;
- esac
- elif ./usg; then
- if $test `./findhdr termio.h`; then
- echo "<termio.h> found." >&4
- val="$define"
- elif $test `./findhdr sgtty.h`; then
- echo "<sgtty.h> found." >&4
- val2="$define"
- else
- ./warn "Neither <termio.h> nor <sgtty.h> found--cross fingers!"
- fi
- else
- if $test `./findhdr sgtty.h`; then
- echo "<sgtty.h> found." >&4
- val2="$define"
- elif $test `./findhdr termio.h`; then
- echo "<termio.h> found." >&4
- val="$define"
- else
- ./warn "Neither <sgtty.h> nor <termio.h> found--cross fingers!"
- fi
- fi;;
-esac
-set i_termio; eval $setvar
-val=$val2; set i_sgtty; eval $setvar
-val=$val3; set i_termios; eval $setvar
-
-: see if stdbool is available
-: we want a real compile instead of Inhdr because some Solaris systems
-: have stdbool.h, but it can only be used if the compiler indicates it
-: is sufficiently c99-compliant.
-echo " "
-$cat >try.c <<EOCP
-#include <stdio.h>
-#include <stdbool.h>
-int func(bool x)
-{
- return x ? 1 : 0;
-}
-int main(int argc, char **argv)
-{
- return func(0);
-}
-EOCP
-set try
-if eval $compile; then
- echo "<stdbool.h> found." >&4
- val="$define"
-else
- echo "<stdbool.h> NOT found." >&4
- val="$undef"
-fi
-$rm_try
-set i_stdbool
-eval $setvar
-
-: see if stdint is available
-set stdint.h i_stdint
-eval $inhdr
-
-: see if sys/access.h is available
-set sys/access.h i_sysaccess
-eval $inhdr
-
-: see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl
-set sys/filio.h i_sysfilio
-eval $inhdr
-echo " "
-if $test `./findhdr sys/ioctl.h`; then
- val="$define"
- echo '<sys/ioctl.h> found.' >&4
-else
- val="$undef"
- if $test $i_sysfilio = "$define"; then
- echo '<sys/ioctl.h> NOT found.' >&4
- else
- $test $i_sgtty = "$define" && xxx="sgtty.h"
- $test $i_termio = "$define" && xxx="termio.h"
- $test $i_termios = "$define" && xxx="termios.h"
-echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
- fi
-fi
-set i_sysioctl
-eval $setvar
-
-: see if socket ioctl defs are in sys/sockio.h
-echo " "
-xxx=`./findhdr sys/sockio.h`
-if $test "$xxx"; then
- if $contains SIOCATMARK $xxx >/dev/null 2>&1; then
- val="$define"
- echo "You have socket ioctls defined in <sys/sockio.h>." >&4
- else
- val="$undef"
- echo "No socket ioctls found in <sys/sockio.h>." >&4
- fi
-else
- val="$undef"
- $cat <<EOM
-<sys/sockio.h> not found, assuming socket ioctls are in <sys/ioctl.h>.
-EOM
-fi
-set i_syssockio
-eval $setvar
-
-: see if this is a syslog.h system
-set syslog.h i_syslog
-eval $inhdr
-
-: see if this is a sys/mode.h system
-set sys/mode.h i_sysmode
-eval $inhdr
-
-: see if there is a sys/poll.h file
-set sys/poll.h i_syspoll
-eval $inhdr
-
-: see if sys/resource.h has to be included
-set sys/resource.h i_sysresrc
-eval $inhdr
-
-: see if sys/security.h is available
-set sys/security.h i_syssecrt
-eval $inhdr
-
-: see if this is a sys/statvfs.h system
-set sys/statvfs.h i_sysstatvfs
-eval $inhdr
-
-: see if this is a sys/un.h system
-set sys/un.h i_sysun
-eval $inhdr
-
-: see if this is a sys/utsname.h system
-set sys/utsname.h i_sysutsname
-eval $inhdr
-
-: see if this is a syswait system
-set sys/wait.h i_syswait
-eval $inhdr
-
-: see if this is a ustat.h system
-set ustat.h i_ustat
-eval $inhdr
-
-: see if this is an utime system
-set utime.h i_utime
-eval $inhdr
-
-: see if this is a vfork system
-case "$d_vfork" in
-"$define")
- set vfork.h i_vfork
- eval $inhdr
- ;;
-*)
- i_vfork="$undef"
- ;;
-esac
-
-: see if wchar.h is present
-set wchar.h i_wchar
-eval $inhdr
-
-: Check extensions
-echo " "
-echo "Looking for extensions..." >&4
-: If we are using the old config.sh, nonxs_extensions and xs_extensions may
-: contain old or inaccurate or duplicate values.
-nonxs_extensions=''
-xs_extensions=''
-: We do not use find because it might not be available.
-: We do not just use MANIFEST because the user may have dropped
-: some additional extensions into the source tree and expect them
-: to be built.
-
-: Function to recursively find available extensions, ignoring DynaLoader
-: NOTE: recursion limit of 10 to prevent runaway in case of symlink madness
-: In 5.10.1 and later, extensions are stored in directories
-: like File-Glob instead of the older File/Glob/.
-find_extensions='
- for xxx in *; do
- case "$xxx" in
- DynaLoader|dynaload) ;;
- *)
- this_ext=`echo "$xxx" | $sed -e s/-/\\\//g`;
- case "$this_ext" in
- Scalar/List/Utils) this_ext="List/Util" ;;
- PathTools) this_ext="Cwd" ;;
- esac;
- echo " $xs_extensions $nonxs_extensions" > "$tdir/$$.tmp";
- if $contains " $this_ext " "$tdir/$$.tmp"; then
- echo >&4;
- echo "Duplicate directories detected for extension $xxx" >&4;
- echo "Configure cannot correctly recover from this - shall I abort?" >&4;
- case "$knowitall" in
- "") dflt=y;;
- *) dflt=n;;
- esac;
- . ../UU/myread;
- case "$ans" in
- n*|N*) ;;
- *) echo >&4;
- echo "Ok. Stopping Configure." >&4;
- echo "Please remove the duplicate directory (e.g. using git clean) and then re-run Configure" >&4;
- exit 1;;
- esac;
- echo "Ok. You will need to correct config.sh before running make." >&4;
- fi;
- $ls -1 "$xxx" > "$tdir/$$.tmp";
- if $contains "\.xs$" "$tdir/$$.tmp" > /dev/null 2>&1; then
- xs_extensions="$xs_extensions $this_ext";
- elif $contains "\.c$" "$tdir/$$.tmp" > /dev/null 2>&1; then
- xs_extensions="$xs_extensions $this_ext";
- elif $test -d "$xxx"; then
- nonxs_extensions="$nonxs_extensions $this_ext";
- fi;
- $rm -f "$tdir/$$.tmp";
- ;;
- esac;
- done'
-tdir=`pwd`
-cd "$rsrc/cpan"
-set X
-shift
-eval $find_extensions
-cd "$rsrc/dist"
-set X
-shift
-eval $find_extensions
-cd "$rsrc/ext"
-set X
-shift
-eval $find_extensions
-set X $xs_extensions
-shift
-xs_extensions=`echo "$*" | tr ' ' $trnl | $sort | tr $trnl ' '`
-set X $nonxs_extensions
-shift
-nonxs_extensions=`echo "$*" | tr ' ' $trnl | $sort | tr $trnl ' '`
-cd "$tdir"
-known_extensions=`echo $nonxs_extensions $xs_extensions | tr ' ' $trnl | $sort | tr $trnl ' '`
-
-: Now see which are supported on this system.
-avail_ext=''
-for xxx in $xs_extensions ; do
- case "$xxx" in
- Amiga*)
- case "$osname" in
- amigaos) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- DB_File|db_file)
- case "$i_db" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- GDBM_File|gdbm_fil)
- case "$i_gdbm" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- IPC/SysV|ipc/sysv)
- : XXX Do we need a useipcsysv variable here
- case "${d_msg}${d_sem}${d_shm}" in
- *"${define}"*) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- NDBM_File|ndbm_fil)
- case "$d_ndbm" in
- $define)
- case "$osname-$use64bitint" in
- hpux-define)
- case "$libs" in
- *-lndbm*) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- *) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- esac
- ;;
- ODBM_File|odbm_fil)
- case "${i_dbm}${i_rpcsvcdbm}" in
- *"${define}"*)
- case "$d_cplusplus" in
- define) ;; # delete as a function name will not work
- *) case "$osname-$use64bitint" in
- hpux-define)
- case "$libs" in
- *-ldbm*) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- *) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- esac
- ;;
- esac
- ;;
- Opcode|opcode)
- case "$useopcode" in
- true|define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- POSIX|posix)
- case "$useposix" in
- true|define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- Socket|socket)
- case "$d_socket" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- I18N/Langinfo|langinfo)
- case "$uselanginfo" in
- true|define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- Sys/Syslog|sys/syslog)
- case $osname in
- amigaos) ;; # not really very useful on AmigaOS
- *)
- : XXX syslog requires socket
- case "$d_socket" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- esac
- ;;
- threads|threads/shared)
- # threads and threads::shared are special cases.
- # To stop people from asking "Perl 5.8.0 was supposed
- # to have this new fancy threads implementation but my
- # perl doesn't have it" and from people trying to
- # (re)install the threads module using CPAN.pm and
- # CPAN.pm then offering to reinstall Perl 5.8.0,
- # the threads.pm and threads/shared.pm will always be
- # there, croaking informatively ("you need to rebuild
- # all of Perl with threads, sorry") when threads haven't
- # been compiled in.
- # --jhi
- avail_ext="$avail_ext $xxx"
- ;;
- VMS*)
- ;;
- Win32*)
- case "$osname" in
- cygwin) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- XS/APItest|xs/apitest)
- # This is just for testing. Skip it unless we have dynamic loading.
-
- case "$usedl" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- XS/Typemap|xs/typemap)
- # This is just for testing. Skip it unless we have dynamic loading.
- case "$usedl" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- *) avail_ext="$avail_ext $xxx"
- ;;
- esac
-done
-
-set X $avail_ext
-shift
-avail_ext="$*"
-
-case "$onlyextensions" in
-'') ;;
-*) keepextensions=''
- echo "You have requested that only certain extensions be included..." >&4
- for i in $onlyextensions; do
- case " $avail_ext " in
- *" $i "*)
- echo "Keeping extension $i."
- keepextensions="$keepextensions $i"
- ;;
- *) echo "Ignoring extension $i." ;;
- esac
- done
- avail_ext="$keepextensions"
- ;;
-esac
-
-case "$noextensions" in
-'') ;;
-*) keepextensions=''
- echo "You have requested that certain extensions be ignored..." >&4
- for i in $avail_ext; do
- case " $noextensions " in
- *" $i "*) echo "Ignoring extension $i." ;;
- *) echo "Keeping extension $i.";
- keepextensions="$keepextensions $i"
- ;;
- esac
- done
- avail_ext="$keepextensions"
- ;;
-esac
-
-: Now see which nonxs extensions are supported on this system.
-: For now assume all are.
-nonxs_ext=''
-for xxx in $nonxs_extensions ; do
- case "$xxx" in
- VMS*)
- ;;
- *) nonxs_ext="$nonxs_ext $xxx"
- ;;
- esac
-done
-
-set X $nonxs_ext
-shift
-nonxs_ext="$*"
-
-case $usedl in
-$define)
- $cat <<EOM
-A number of extensions are supplied with $package. You may choose to
-compile these extensions for dynamic loading (the default), compile
-them into the $package executable (static loading), or not include
-them at all. Answer "none" to include no extensions.
-Note that DynaLoader is always built and need not be mentioned here.
-
-EOM
- case "$dynamic_ext" in
- '')
- : Exclude those listed in static_ext
- dflt=''
- for xxx in $avail_ext; do
- case " $static_ext " in
- *" $xxx "*) ;;
- *) dflt="$dflt $xxx" ;;
- esac
- done
- set X $dflt
- shift
- dflt="$*"
- ;;
- *) dflt="$dynamic_ext"
- # Perhaps we are reusing an old out-of-date config.sh.
- case "$hint" in
- previous)
- if test X"$dynamic_ext" != X"$avail_ext"; then
- $cat <<EOM
-NOTICE: Your previous config.sh list may be incorrect.
-The extensions now available to you are
- ${avail_ext}
-but the default list from your previous config.sh is
- ${dynamic_ext}
-
-EOM
- fi
- ;;
- esac
- ;;
- esac
- case "$dflt" in
- '') dflt=none;;
- esac
- rp="What extensions do you wish to load dynamically?"
- . ./myread
- case "$ans" in
- none) dynamic_ext=' ' ;;
- *) dynamic_ext="$ans" ;;
- esac
-
- case "$static_ext" in
- '')
- : Exclude those already listed in dynamic linking
- dflt=''
- for xxx in $avail_ext; do
- case " $dynamic_ext " in
- *" $xxx "*) ;;
- *) dflt="$dflt $xxx" ;;
- esac
- done
- set X $dflt
- shift
- dflt="$*"
- ;;
- *) dflt="$static_ext"
- ;;
- esac
-
- case "$dflt" in
- '') dflt=none;;
- esac
- rp="What extensions do you wish to load statically?"
- . ./myread
- case "$ans" in
- none) static_ext=' ' ;;
- *) static_ext="$ans" ;;
- esac
- ;;
-*)
- $cat <<EOM
-A number of extensions are supplied with $package. Answer "none"
-to include no extensions.
-Note that DynaLoader is always built and need not be mentioned here.
-
-EOM
- case "$static_ext" in
- '') dflt="$avail_ext" ;;
- *) dflt="$static_ext"
- # Perhaps we are reusing an old out-of-date config.sh.
- case "$hint" in
- previous)
- if test X"$static_ext" != X"$avail_ext"; then
- $cat <<EOM
-NOTICE: Your previous config.sh list may be incorrect.
-The extensions now available to you are
- ${avail_ext}
-but the default list from your previous config.sh is
- ${static_ext}
-
-EOM
- fi
- ;;
- esac
- ;;
- esac
- : Exclude those that are not xs extensions
- case "$dflt" in
- '') dflt=none;;
- esac
- rp="What extensions do you wish to include?"
- . ./myread
- case "$ans" in
- none) static_ext=' ' ;;
- *) static_ext="$ans" ;;
- esac
- ;;
-esac
-#
-# Encode is a special case. If we are building Encode as a static
-# extension, we need to explicitly list its subextensions as well.
-# For other nested extensions, this is handled automatically by
-# the appropriate Makefile.PL.
-case " $static_ext " in
- *" Encode "*) # Add the subextensions of Encode
- cd "$rsrc/cpan"
- for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do
- static_ext="$static_ext Encode/$xxx"
- known_extensions="$known_extensions Encode/$xxx"
- done
- cd "$tdir"
- ;;
-esac
-
-set X $dynamic_ext $static_ext $nonxs_ext
-shift
-extensions="$*"
-
-# Sanity check: We require an extension suitable for use with
-# AnyDBM_File, as well as Fcntl and IO. (Failure to have these
-# should show up as failures in the test suite, but it's helpful to
-# catch them now.) The 'extensions' list is normally sorted
-# alphabetically, so we need to accept either
-# DB_File ... Fcntl ... IO ....
-# or something like
-# Fcntl ... NDBM_File ... IO ....
-case " $extensions" in
-*"_File "*" Fcntl "*" IO "*) ;; # DB_File
-*" Fcntl "*"_File "*" IO "*) ;; # GDBM_File
-*" Fcntl "*" IO "*"_File "*) ;; # NDBM_File
-*) echo "WARNING: Extensions DB_File or *DBM_File, Fcntl, and IO not configured." >&4
- echo "WARNING: The Perl you are building will be quite crippled." >& 4
- ;;
-esac
-
-: Remove libraries needed only for extensions
-: The appropriate ext/Foo/Makefile.PL will add them back in, if necessary.
-: The exception is SunOS 4.x, which needs them.
-case "${osname}X${osvers}" in
-sunos*X4*)
- perllibs="$libs"
- ;;
-*) case "$usedl" in
- $define|true|[yY]*)
- set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -lgdbm_compat @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'`
- shift
- perllibs="$*"
- ;;
- *) perllibs="$libs"
- ;;
- esac
- ;;
-esac
-
-: Remove build directory name from cppstdin so it can be used from
-: either the present location or the final installed location.
-echo " "
-: Get out of the UU directory to get correct path name.
-cd ..
-case "$cppstdin" in
-`pwd`/cppstdin)
- echo "Stripping down cppstdin path name"
- cppstdin=cppstdin
- ;;
-esac
-cd UU
-
-: end of configuration questions
-echo " "
-echo "End of configuration questions."
-echo " "
-
-: back to where it started
-if test -d ../UU; then
- cd ..
-fi
-
-: configuration may be unconditionally patched via a 'config.arch' file
-if $test -f config.arch; then
- echo "I see a config.arch file, loading it." >&4
- . ./config.arch
-fi
-
-: configuration may be patched via a 'config.over' file
-if $test -f config.over; then
- echo " "
- dflt=y
- rp='I see a config.over file. Do you wish to load it?'
- . UU/myread
- case "$ans" in
- n*) echo "OK, I'll ignore it.";;
- *) . ./config.over
- echo "Configuration override changes have been loaded."
- ;;
- esac
-fi
-
-: in case they want portability, strip down executable paths
-case "$d_portable" in
-"$define")
- echo " "
- echo "Stripping down executable paths..." >&4
- for file in $loclist $trylist; do
- eval temp=\$$file
- eval $file=`basename $temp`
- done
- ;;
-esac
-
-: create config.sh file
-echo " "
-echo "Creating config.sh..." >&4
-$spitshell <<EOT >config.sh
-$startsh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name : $package
-# Source directory : $src
-# Configuration time: $cf_time
-# Configured by : $cf_by
-# Target system : $myuname
-
-EOT
-: Add in command line options if available
-$test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh
-
-$spitshell <<EOT >>config.sh
-
-Author='$Author'
-Date='$Date'
-Header='$Header'
-Id='$Id'
-Locker='$Locker'
-Log='$Log'
-RCSfile='$RCSfile'
-Revision='$Revision'
-Source='$Source'
-State='$State'
-_a='$_a'
-_exe='$_exe'
-_o='$_o'
-afs='$afs'
-afsroot='$afsroot'
-alignbytes='$alignbytes'
-aphostname='$aphostname'
-api_revision='$api_revision'
-api_subversion='$api_subversion'
-api_version='$api_version'
-api_versionstring='$api_versionstring'
-ar='$ar'
-archlib='$archlib'
-archlibexp='$archlibexp'
-archname64='$archname64'
-archname='$archname'
-archobjs='$archobjs'
-asctime_r_proto='$asctime_r_proto'
-awk='$awk'
-baserev='$baserev'
-bash='$bash'
-bin='$bin'
-bin_ELF='$bin_ELF'
-binexp='$binexp'
-bison='$bison'
-byacc='$byacc'
-byteorder='$byteorder'
-c='$c'
-castflags='$castflags'
-cat='$cat'
-cc='$cc'
-cccdlflags='$cccdlflags'
-ccdlflags='$ccdlflags'
-ccflags='$ccflags'
-ccflags_uselargefiles='$ccflags_uselargefiles'
-ccname='$ccname'
-ccsymbols='$ccsymbols'
-ccversion='$ccversion'
-cf_by='$cf_by'
-cf_email='$cf_email'
-cf_time='$cf_time'
-charbits='$charbits'
-charsize='$charsize'
-chgrp='$chgrp'
-chmod='$chmod'
-chown='$chown'
-clocktype='$clocktype'
-comm='$comm'
-compiler_warning='$compiler_warning'
-compress='$compress'
-contains='$contains'
-cp='$cp'
-cpio='$cpio'
-cpp='$cpp'
-cpp_stuff='$cpp_stuff'
-cppccsymbols='$cppccsymbols'
-cppflags='$cppflags'
-cpplast='$cpplast'
-cppminus='$cppminus'
-cpprun='$cpprun'
-cppstdin='$cppstdin'
-cppsymbols='$cppsymbols'
-crypt_r_proto='$crypt_r_proto'
-cryptlib='$cryptlib'
-csh='$csh'
-ctermid_r_proto='$ctermid_r_proto'
-ctime_r_proto='$ctime_r_proto'
-d_Gconvert='$d_Gconvert'
-d_PRIEUldbl='$d_PRIEUldbl'
-d_PRIFUldbl='$d_PRIFUldbl'
-d_PRIGUldbl='$d_PRIGUldbl'
-d_PRIXU64='$d_PRIXU64'
-d_PRId64='$d_PRId64'
-d_PRIeldbl='$d_PRIeldbl'
-d_PRIfldbl='$d_PRIfldbl'
-d_PRIgldbl='$d_PRIgldbl'
-d_PRIi64='$d_PRIi64'
-d_PRIo64='$d_PRIo64'
-d_PRIu64='$d_PRIu64'
-d_PRIx64='$d_PRIx64'
-d_SCNfldbl='$d_SCNfldbl'
-d__fwalk='$d__fwalk'
-d_accept4='$d_accept4'
-d_access='$d_access'
-d_accessx='$d_accessx'
-d_acosh='$d_acosh'
-d_aintl='$d_aintl'
-d_alarm='$d_alarm'
-d_archlib='$d_archlib'
-d_asctime64='$d_asctime64'
-d_asctime_r='$d_asctime_r'
-d_asinh='$d_asinh'
-d_atanh='$d_atanh'
-d_atolf='$d_atolf'
-d_atoll='$d_atoll'
-d_attribute_always_inline='$d_attribute_always_inline'
-d_attribute_deprecated='$d_attribute_deprecated'
-d_attribute_format='$d_attribute_format'
-d_attribute_malloc='$d_attribute_malloc'
-d_attribute_nonnull='$d_attribute_nonnull'
-d_attribute_noreturn='$d_attribute_noreturn'
-d_attribute_pure='$d_attribute_pure'
-d_attribute_unused='$d_attribute_unused'
-d_attribute_warn_unused_result='$d_attribute_warn_unused_result'
-d_backtrace='$d_backtrace'
-d_bsd='$d_bsd'
-d_bsdgetpgrp='$d_bsdgetpgrp'
-d_bsdsetpgrp='$d_bsdsetpgrp'
-d_builtin_add_overflow='$d_builtin_add_overflow'
-d_builtin_choose_expr='$d_builtin_choose_expr'
-d_builtin_expect='$d_builtin_expect'
-d_builtin_mul_overflow='$d_builtin_mul_overflow'
-d_builtin_sub_overflow='$d_builtin_sub_overflow'
-d_c99_variadic_macros='$d_c99_variadic_macros'
-d_casti32='$d_casti32'
-d_castneg='$d_castneg'
-d_cbrt='$d_cbrt'
-d_chown='$d_chown'
-d_chroot='$d_chroot'
-d_chsize='$d_chsize'
-d_class='$d_class'
-d_clearenv='$d_clearenv'
-d_closedir='$d_closedir'
-d_cmsghdr_s='$d_cmsghdr_s'
-d_copysign='$d_copysign'
-d_copysignl='$d_copysignl'
-d_cplusplus='$d_cplusplus'
-d_crypt='$d_crypt'
-d_crypt_r='$d_crypt_r'
-d_csh='$d_csh'
-d_ctermid='$d_ctermid'
-d_ctermid_r='$d_ctermid_r'
-d_ctime64='$d_ctime64'
-d_ctime_r='$d_ctime_r'
-d_cuserid='$d_cuserid'
-d_dbminitproto='$d_dbminitproto'
-d_difftime64='$d_difftime64'
-d_difftime='$d_difftime'
-d_dir_dd_fd='$d_dir_dd_fd'
-d_dirfd='$d_dirfd'
-d_dirnamlen='$d_dirnamlen'
-d_dladdr='$d_dladdr'
-d_dlerror='$d_dlerror'
-d_dlopen='$d_dlopen'
-d_dlsymun='$d_dlsymun'
-d_dosuid='$d_dosuid'
-d_double_has_inf='$d_double_has_inf'
-d_double_has_nan='$d_double_has_nan'
-d_double_has_negative_zero='$d_double_has_negative_zero'
-d_double_has_subnormals='$d_double_has_subnormals'
-d_double_style_cray='$d_double_style_cray'
-d_double_style_ibm='$d_double_style_ibm'
-d_double_style_ieee='$d_double_style_ieee'
-d_double_style_vax='$d_double_style_vax'
-d_drand48_r='$d_drand48_r'
-d_drand48proto='$d_drand48proto'
-d_dup2='$d_dup2'
-d_dup3='$d_dup3'
-d_duplocale='$d_duplocale'
-d_eaccess='$d_eaccess'
-d_endgrent='$d_endgrent'
-d_endgrent_r='$d_endgrent_r'
-d_endhent='$d_endhent'
-d_endhostent_r='$d_endhostent_r'
-d_endnent='$d_endnent'
-d_endnetent_r='$d_endnetent_r'
-d_endpent='$d_endpent'
-d_endprotoent_r='$d_endprotoent_r'
-d_endpwent='$d_endpwent'
-d_endpwent_r='$d_endpwent_r'
-d_endsent='$d_endsent'
-d_endservent_r='$d_endservent_r'
-d_eofnblk='$d_eofnblk'
-d_erf='$d_erf'
-d_erfc='$d_erfc'
-d_eunice='$d_eunice'
-d_exp2='$d_exp2'
-d_expm1='$d_expm1'
-d_faststdio='$d_faststdio'
-d_fchdir='$d_fchdir'
-d_fchmod='$d_fchmod'
-d_fchmodat='$d_fchmodat'
-d_fchown='$d_fchown'
-d_fcntl='$d_fcntl'
-d_fcntl_can_lock='$d_fcntl_can_lock'
-d_fd_macros='$d_fd_macros'
-d_fd_set='$d_fd_set'
-d_fdclose='$d_fdclose'
-d_fdim='$d_fdim'
-d_fds_bits='$d_fds_bits'
-d_fegetround='$d_fegetround'
-d_ffs='$d_ffs'
-d_ffsl='$d_ffsl'
-d_fgetpos='$d_fgetpos'
-d_finite='$d_finite'
-d_finitel='$d_finitel'
-d_flexfnam='$d_flexfnam'
-d_flock='$d_flock'
-d_flockproto='$d_flockproto'
-d_fma='$d_fma'
-d_fmax='$d_fmax'
-d_fmin='$d_fmin'
-d_fork='$d_fork'
-d_fp_class='$d_fp_class'
-d_fp_classify='$d_fp_classify'
-d_fp_classl='$d_fp_classl'
-d_fpathconf='$d_fpathconf'
-d_fpclass='$d_fpclass'
-d_fpclassify='$d_fpclassify'
-d_fpclassl='$d_fpclassl'
-d_fpgetround='$d_fpgetround'
-d_fpos64_t='$d_fpos64_t'
-d_freelocale='$d_freelocale'
-d_frexpl='$d_frexpl'
-d_fs_data_s='$d_fs_data_s'
-d_fseeko='$d_fseeko'
-d_fsetpos='$d_fsetpos'
-d_fstatfs='$d_fstatfs'
-d_fstatvfs='$d_fstatvfs'
-d_fsync='$d_fsync'
-d_ftello='$d_ftello'
-d_ftime='$d_ftime'
-d_futimes='$d_futimes'
-d_gai_strerror='$d_gai_strerror'
-d_gdbm_ndbm_h_uses_prototypes='$d_gdbm_ndbm_h_uses_prototypes'
-d_gdbmndbm_h_uses_prototypes='$d_gdbmndbm_h_uses_prototypes'
-d_getaddrinfo='$d_getaddrinfo'
-d_getcwd='$d_getcwd'
-d_getenv_preserves_other_thread='$d_getenv_preserves_other_thread'
-d_getespwnam='$d_getespwnam'
-d_getfsstat='$d_getfsstat'
-d_getgrent='$d_getgrent'
-d_getgrent_r='$d_getgrent_r'
-d_getgrgid_r='$d_getgrgid_r'
-d_getgrnam_r='$d_getgrnam_r'
-d_getgrps='$d_getgrps'
-d_gethbyaddr='$d_gethbyaddr'
-d_gethbyname='$d_gethbyname'
-d_gethent='$d_gethent'
-d_gethname='$d_gethname'
-d_gethostbyaddr_r='$d_gethostbyaddr_r'
-d_gethostbyname_r='$d_gethostbyname_r'
-d_gethostent_r='$d_gethostent_r'
-d_gethostprotos='$d_gethostprotos'
-d_getitimer='$d_getitimer'
-d_getlogin='$d_getlogin'
-d_getlogin_r='$d_getlogin_r'
-d_getmnt='$d_getmnt'
-d_getmntent='$d_getmntent'
-d_getnameinfo='$d_getnameinfo'
-d_getnbyaddr='$d_getnbyaddr'
-d_getnbyname='$d_getnbyname'
-d_getnent='$d_getnent'
-d_getnetbyaddr_r='$d_getnetbyaddr_r'
-d_getnetbyname_r='$d_getnetbyname_r'
-d_getnetent_r='$d_getnetent_r'
-d_getnetprotos='$d_getnetprotos'
-d_getpagsz='$d_getpagsz'
-d_getpbyname='$d_getpbyname'
-d_getpbynumber='$d_getpbynumber'
-d_getpent='$d_getpent'
-d_getpgid='$d_getpgid'
-d_getpgrp2='$d_getpgrp2'
-d_getpgrp='$d_getpgrp'
-d_getppid='$d_getppid'
-d_getprior='$d_getprior'
-d_getprotobyname_r='$d_getprotobyname_r'
-d_getprotobynumber_r='$d_getprotobynumber_r'
-d_getprotoent_r='$d_getprotoent_r'
-d_getprotoprotos='$d_getprotoprotos'
-d_getprpwnam='$d_getprpwnam'
-d_getpwent='$d_getpwent'
-d_getpwent_r='$d_getpwent_r'
-d_getpwnam_r='$d_getpwnam_r'
-d_getpwuid_r='$d_getpwuid_r'
-d_getsbyname='$d_getsbyname'
-d_getsbyport='$d_getsbyport'
-d_getsent='$d_getsent'
-d_getservbyname_r='$d_getservbyname_r'
-d_getservbyport_r='$d_getservbyport_r'
-d_getservent_r='$d_getservent_r'
-d_getservprotos='$d_getservprotos'
-d_getspnam='$d_getspnam'
-d_getspnam_r='$d_getspnam_r'
-d_gettimeod='$d_gettimeod'
-d_gmtime64='$d_gmtime64'
-d_gmtime_r='$d_gmtime_r'
-d_gnulibc='$d_gnulibc'
-d_grpasswd='$d_grpasswd'
-d_has_C_UTF8='$d_has_C_UTF8'
-d_hasmntopt='$d_hasmntopt'
-d_htonl='$d_htonl'
-d_hypot='$d_hypot'
-d_ilogb='$d_ilogb'
-d_ilogbl='$d_ilogbl'
-d_inc_version_list='$d_inc_version_list'
-d_inetaton='$d_inetaton'
-d_inetntop='$d_inetntop'
-d_inetpton='$d_inetpton'
-d_int64_t='$d_int64_t'
-d_ip_mreq='$d_ip_mreq'
-d_ip_mreq_source='$d_ip_mreq_source'
-d_ipv6_mreq='$d_ipv6_mreq'
-d_ipv6_mreq_source='$d_ipv6_mreq_source'
-d_isascii='$d_isascii'
-d_isblank='$d_isblank'
-d_isfinite='$d_isfinite'
-d_isfinitel='$d_isfinitel'
-d_isinf='$d_isinf'
-d_isinfl='$d_isinfl'
-d_isless='$d_isless'
-d_isnan='$d_isnan'
-d_isnanl='$d_isnanl'
-d_isnormal='$d_isnormal'
-d_j0='$d_j0'
-d_j0l='$d_j0l'
-d_killpg='$d_killpg'
-d_lc_monetary_2008='$d_lc_monetary_2008'
-d_lchown='$d_lchown'
-d_ldbl_dig='$d_ldbl_dig'
-d_ldexpl='$d_ldexpl'
-d_lgamma='$d_lgamma'
-d_lgamma_r='$d_lgamma_r'
-d_libm_lib_version='$d_libm_lib_version'
-d_libname_unique='$d_libname_unique'
-d_link='$d_link'
-d_linkat='$d_linkat'
-d_llrint='$d_llrint'
-d_llrintl='$d_llrintl'
-d_llround='$d_llround'
-d_llroundl='$d_llroundl'
-d_localeconv_l='$d_localeconv_l'
-d_localtime64='$d_localtime64'
-d_localtime_r='$d_localtime_r'
-d_localtime_r_needs_tzset='$d_localtime_r_needs_tzset'
-d_locconv='$d_locconv'
-d_lockf='$d_lockf'
-d_log1p='$d_log1p'
-d_log2='$d_log2'
-d_logb='$d_logb'
-d_long_double_style_ieee='$d_long_double_style_ieee'
-d_long_double_style_ieee_doubledouble='$d_long_double_style_ieee_doubledouble'
-d_long_double_style_ieee_extended='$d_long_double_style_ieee_extended'
-d_long_double_style_ieee_std='$d_long_double_style_ieee_std'
-d_long_double_style_vax='$d_long_double_style_vax'
-d_longdbl='$d_longdbl'
-d_longlong='$d_longlong'
-d_lrint='$d_lrint'
-d_lrintl='$d_lrintl'
-d_lround='$d_lround'
-d_lroundl='$d_lroundl'
-d_lseekproto='$d_lseekproto'
-d_lstat='$d_lstat'
-d_madvise='$d_madvise'
-d_malloc_good_size='$d_malloc_good_size'
-d_malloc_size='$d_malloc_size'
-d_malloc_usable_size='$d_malloc_usable_size'
-d_mblen='$d_mblen'
-d_mbrlen='$d_mbrlen'
-d_mbrtowc='$d_mbrtowc'
-d_mbstowcs='$d_mbstowcs'
-d_mbtowc='$d_mbtowc'
-d_memmem='$d_memmem'
-d_memrchr='$d_memrchr'
-d_mkdir='$d_mkdir'
-d_mkdtemp='$d_mkdtemp'
-d_mkfifo='$d_mkfifo'
-d_mkostemp='$d_mkostemp'
-d_mkstemp='$d_mkstemp'
-d_mkstemps='$d_mkstemps'
-d_mktime64='$d_mktime64'
-d_mktime='$d_mktime'
-d_mmap='$d_mmap'
-d_modfl='$d_modfl'
-d_modflproto='$d_modflproto'
-d_mprotect='$d_mprotect'
-d_msg='$d_msg'
-d_msg_ctrunc='$d_msg_ctrunc'
-d_msg_dontroute='$d_msg_dontroute'
-d_msg_oob='$d_msg_oob'
-d_msg_peek='$d_msg_peek'
-d_msg_proxy='$d_msg_proxy'
-d_msgctl='$d_msgctl'
-d_msgget='$d_msgget'
-d_msghdr_s='$d_msghdr_s'
-d_msgrcv='$d_msgrcv'
-d_msgsnd='$d_msgsnd'
-d_msync='$d_msync'
-d_munmap='$d_munmap'
-d_mymalloc='$d_mymalloc'
-d_nan='$d_nan'
-d_nanosleep='$d_nanosleep'
-d_ndbm='$d_ndbm'
-d_ndbm_h_uses_prototypes='$d_ndbm_h_uses_prototypes'
-d_nearbyint='$d_nearbyint'
-d_newlocale='$d_newlocale'
-d_nextafter='$d_nextafter'
-d_nexttoward='$d_nexttoward'
-d_nice='$d_nice'
-d_nl_langinfo='$d_nl_langinfo'
-d_nl_langinfo_l='$d_nl_langinfo_l'
-d_non_int_bitfields='$d_non_int_bitfields'
-d_nv_preserves_uv='$d_nv_preserves_uv'
-d_nv_zero_is_allbits_zero='$d_nv_zero_is_allbits_zero'
-d_off64_t='$d_off64_t'
-d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
-d_oldpthreads='$d_oldpthreads'
-d_oldsock='$d_oldsock'
-d_open3='$d_open3'
-d_openat='$d_openat'
-d_pathconf='$d_pathconf'
-d_pause='$d_pause'
-d_perl_otherlibdirs='$d_perl_otherlibdirs'
-d_phostname='$d_phostname'
-d_pipe2='$d_pipe2'
-d_pipe='$d_pipe'
-d_poll='$d_poll'
-d_portable='$d_portable'
-d_prctl='$d_prctl'
-d_prctl_set_name='$d_prctl_set_name'
-d_printf_format_null='$d_printf_format_null'
-d_procselfexe='$d_procselfexe'
-d_pseudofork='$d_pseudofork'
-d_pthread_atfork='$d_pthread_atfork'
-d_pthread_attr_setscope='$d_pthread_attr_setscope'
-d_pthread_yield='$d_pthread_yield'
-d_ptrdiff_t='$d_ptrdiff_t'
-d_pwage='$d_pwage'
-d_pwchange='$d_pwchange'
-d_pwclass='$d_pwclass'
-d_pwcomment='$d_pwcomment'
-d_pwexpire='$d_pwexpire'
-d_pwgecos='$d_pwgecos'
-d_pwpasswd='$d_pwpasswd'
-d_pwquota='$d_pwquota'
-d_qgcvt='$d_qgcvt'
-d_quad='$d_quad'
-d_querylocale='$d_querylocale'
-d_random_r='$d_random_r'
-d_re_comp='$d_re_comp'
-d_readdir64_r='$d_readdir64_r'
-d_readdir='$d_readdir'
-d_readdir_r='$d_readdir_r'
-d_readlink='$d_readlink'
-d_readv='$d_readv'
-d_recvmsg='$d_recvmsg'
-d_regcmp='$d_regcmp'
-d_regcomp='$d_regcomp'
-d_remainder='$d_remainder'
-d_remquo='$d_remquo'
-d_rename='$d_rename'
-d_renameat='$d_renameat'
-d_rewinddir='$d_rewinddir'
-d_rint='$d_rint'
-d_rmdir='$d_rmdir'
-d_round='$d_round'
-d_sbrkproto='$d_sbrkproto'
-d_scalbn='$d_scalbn'
-d_scalbnl='$d_scalbnl'
-d_sched_yield='$d_sched_yield'
-d_scm_rights='$d_scm_rights'
-d_seekdir='$d_seekdir'
-d_select='$d_select'
-d_sem='$d_sem'
-d_semctl='$d_semctl'
-d_semctl_semid_ds='$d_semctl_semid_ds'
-d_semctl_semun='$d_semctl_semun'
-d_semget='$d_semget'
-d_semop='$d_semop'
-d_sendmsg='$d_sendmsg'
-d_setegid='$d_setegid'
-d_seteuid='$d_seteuid'
-d_setgrent='$d_setgrent'
-d_setgrent_r='$d_setgrent_r'
-d_setgrps='$d_setgrps'
-d_sethent='$d_sethent'
-d_sethostent_r='$d_sethostent_r'
-d_setitimer='$d_setitimer'
-d_setlinebuf='$d_setlinebuf'
-d_setlocale='$d_setlocale'
-d_setlocale_accepts_any_locale_name='$d_setlocale_accepts_any_locale_name'
-d_setlocale_r='$d_setlocale_r'
-d_setnent='$d_setnent'
-d_setnetent_r='$d_setnetent_r'
-d_setpent='$d_setpent'
-d_setpgid='$d_setpgid'
-d_setpgrp2='$d_setpgrp2'
-d_setpgrp='$d_setpgrp'
-d_setprior='$d_setprior'
-d_setproctitle='$d_setproctitle'
-d_setprotoent_r='$d_setprotoent_r'
-d_setpwent='$d_setpwent'
-d_setpwent_r='$d_setpwent_r'
-d_setregid='$d_setregid'
-d_setresgid='$d_setresgid'
-d_setresuid='$d_setresuid'
-d_setreuid='$d_setreuid'
-d_setrgid='$d_setrgid'
-d_setruid='$d_setruid'
-d_setsent='$d_setsent'
-d_setservent_r='$d_setservent_r'
-d_setsid='$d_setsid'
-d_setvbuf='$d_setvbuf'
-d_shm='$d_shm'
-d_shmat='$d_shmat'
-d_shmatprototype='$d_shmatprototype'
-d_shmctl='$d_shmctl'
-d_shmdt='$d_shmdt'
-d_shmget='$d_shmget'
-d_sigaction='$d_sigaction'
-d_siginfo_si_addr='$d_siginfo_si_addr'
-d_siginfo_si_band='$d_siginfo_si_band'
-d_siginfo_si_errno='$d_siginfo_si_errno'
-d_siginfo_si_fd='$d_siginfo_si_fd'
-d_siginfo_si_pid='$d_siginfo_si_pid'
-d_siginfo_si_status='$d_siginfo_si_status'
-d_siginfo_si_uid='$d_siginfo_si_uid'
-d_siginfo_si_value='$d_siginfo_si_value'
-d_signbit='$d_signbit'
-d_sigprocmask='$d_sigprocmask'
-d_sigsetjmp='$d_sigsetjmp'
-d_sin6_scope_id='$d_sin6_scope_id'
-d_sitearch='$d_sitearch'
-d_snprintf='$d_snprintf'
-d_sockaddr_in6='$d_sockaddr_in6'
-d_sockaddr_sa_len='$d_sockaddr_sa_len'
-d_sockaddr_storage='$d_sockaddr_storage'
-d_sockatmark='$d_sockatmark'
-d_sockatmarkproto='$d_sockatmarkproto'
-d_socket='$d_socket'
-d_socklen_t='$d_socklen_t'
-d_sockpair='$d_sockpair'
-d_socks5_init='$d_socks5_init'
-d_sqrtl='$d_sqrtl'
-d_srand48_r='$d_srand48_r'
-d_srandom_r='$d_srandom_r'
-d_sresgproto='$d_sresgproto'
-d_sresuproto='$d_sresuproto'
-d_stat='$d_stat'
-d_statblks='$d_statblks'
-d_statfs_f_flags='$d_statfs_f_flags'
-d_statfs_s='$d_statfs_s'
-d_static_inline='$d_static_inline'
-d_statvfs='$d_statvfs'
-d_stdio_cnt_lval='$d_stdio_cnt_lval'
-d_stdio_ptr_lval='$d_stdio_ptr_lval'
-d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt'
-d_stdio_ptr_lval_sets_cnt='$d_stdio_ptr_lval_sets_cnt'
-d_stdio_stream_array='$d_stdio_stream_array'
-d_stdiobase='$d_stdiobase'
-d_stdstdio='$d_stdstdio'
-d_strcoll='$d_strcoll'
-d_strerror_l='$d_strerror_l'
-d_strerror_r='$d_strerror_r'
-d_strftime='$d_strftime'
-d_strlcat='$d_strlcat'
-d_strlcpy='$d_strlcpy'
-d_strnlen='$d_strnlen'
-d_strtod='$d_strtod'
-d_strtod_l='$d_strtod_l'
-d_strtol='$d_strtol'
-d_strtold='$d_strtold'
-d_strtold_l='$d_strtold_l'
-d_strtoll='$d_strtoll'
-d_strtoq='$d_strtoq'
-d_strtoul='$d_strtoul'
-d_strtoull='$d_strtoull'
-d_strtouq='$d_strtouq'
-d_strxfrm='$d_strxfrm'
-d_strxfrm_l='$d_strxfrm_l'
-d_suidsafe='$d_suidsafe'
-d_symlink='$d_symlink'
-d_syscall='$d_syscall'
-d_syscallproto='$d_syscallproto'
-d_sysconf='$d_sysconf'
-d_sysernlst='$d_sysernlst'
-d_syserrlst='$d_syserrlst'
-d_system='$d_system'
-d_tcgetpgrp='$d_tcgetpgrp'
-d_tcsetpgrp='$d_tcsetpgrp'
-d_telldir='$d_telldir'
-d_telldirproto='$d_telldirproto'
-d_tgamma='$d_tgamma'
-d_thread_local='$d_thread_local'
-d_thread_safe_nl_langinfo_l='$d_thread_safe_nl_langinfo_l'
-d_time='$d_time'
-d_timegm='$d_timegm'
-d_times='$d_times'
-d_tm_tm_gmtoff='$d_tm_tm_gmtoff'
-d_tm_tm_zone='$d_tm_tm_zone'
-d_tmpnam_r='$d_tmpnam_r'
-d_towlower='$d_towlower'
-d_towupper='$d_towupper'
-d_trunc='$d_trunc'
-d_truncate='$d_truncate'
-d_truncl='$d_truncl'
-d_ttyname_r='$d_ttyname_r'
-d_tzname='$d_tzname'
-d_u32align='$d_u32align'
-d_ualarm='$d_ualarm'
-d_umask='$d_umask'
-d_uname='$d_uname'
-d_union_semun='$d_union_semun'
-d_unlinkat='$d_unlinkat'
-d_unordered='$d_unordered'
-d_unsetenv='$d_unsetenv'
-d_uselocale='$d_uselocale'
-d_usleep='$d_usleep'
-d_usleepproto='$d_usleepproto'
-d_ustat='$d_ustat'
-d_vendorarch='$d_vendorarch'
-d_vendorbin='$d_vendorbin'
-d_vendorlib='$d_vendorlib'
-d_vendorscript='$d_vendorscript'
-d_vfork='$d_vfork'
-d_void_closedir='$d_void_closedir'
-d_voidsig='$d_voidsig'
-d_voidtty='$d_voidtty'
-d_vsnprintf='$d_vsnprintf'
-d_wait4='$d_wait4'
-d_waitpid='$d_waitpid'
-d_wcrtomb='$d_wcrtomb'
-d_wcscmp='$d_wcscmp'
-d_wcstombs='$d_wcstombs'
-d_wcsxfrm='$d_wcsxfrm'
-d_wctomb='$d_wctomb'
-d_writev='$d_writev'
-d_xenix='$d_xenix'
-date='$date'
-db_hashtype='$db_hashtype'
-db_prefixtype='$db_prefixtype'
-db_version_major='$db_version_major'
-db_version_minor='$db_version_minor'
-db_version_patch='$db_version_patch'
-default_inc_excludes_dot='$default_inc_excludes_dot'
-direntrytype='$direntrytype'
-dlext='$dlext'
-dlsrc='$dlsrc'
-doubleinfbytes='$doubleinfbytes'
-doublekind='$doublekind'
-doublemantbits='$doublemantbits'
-doublenanbytes='$doublenanbytes'
-doublesize='$doublesize'
-drand01='$drand01'
-drand48_r_proto='$drand48_r_proto'
-dtrace='$dtrace'
-dtraceobject='$dtraceobject'
-dtracexnolibs='$dtracexnolibs'
-dynamic_ext='$dynamic_ext'
-eagain='$eagain'
-ebcdic='$ebcdic'
-echo='$echo'
-egrep='$egrep'
-emacs='$emacs'
-endgrent_r_proto='$endgrent_r_proto'
-endhostent_r_proto='$endhostent_r_proto'
-endnetent_r_proto='$endnetent_r_proto'
-endprotoent_r_proto='$endprotoent_r_proto'
-endpwent_r_proto='$endpwent_r_proto'
-endservent_r_proto='$endservent_r_proto'
-eunicefix='$eunicefix'
-exe_ext='$exe_ext'
-expr='$expr'
-extensions='$extensions'
-extern_C='$extern_C'
-extras='$extras'
-fflushNULL='$fflushNULL'
-fflushall='$fflushall'
-find='$find'
-firstmakefile='$firstmakefile'
-flex='$flex'
-fpossize='$fpossize'
-fpostype='$fpostype'
-freetype='$freetype'
-from='$from'
-full_ar='$full_ar'
-full_csh='$full_csh'
-full_sed='$full_sed'
-gccansipedantic='$gccansipedantic'
-gccosandvers='$gccosandvers'
-gccversion='$gccversion'
-getgrent_r_proto='$getgrent_r_proto'
-getgrgid_r_proto='$getgrgid_r_proto'
-getgrnam_r_proto='$getgrnam_r_proto'
-gethostbyaddr_r_proto='$gethostbyaddr_r_proto'
-gethostbyname_r_proto='$gethostbyname_r_proto'
-gethostent_r_proto='$gethostent_r_proto'
-getlogin_r_proto='$getlogin_r_proto'
-getnetbyaddr_r_proto='$getnetbyaddr_r_proto'
-getnetbyname_r_proto='$getnetbyname_r_proto'
-getnetent_r_proto='$getnetent_r_proto'
-getprotobyname_r_proto='$getprotobyname_r_proto'
-getprotobynumber_r_proto='$getprotobynumber_r_proto'
-getprotoent_r_proto='$getprotoent_r_proto'
-getpwent_r_proto='$getpwent_r_proto'
-getpwnam_r_proto='$getpwnam_r_proto'
-getpwuid_r_proto='$getpwuid_r_proto'
-getservbyname_r_proto='$getservbyname_r_proto'
-getservbyport_r_proto='$getservbyport_r_proto'
-getservent_r_proto='$getservent_r_proto'
-getspnam_r_proto='$getspnam_r_proto'
-gidformat='$gidformat'
-gidsign='$gidsign'
-gidsize='$gidsize'
-gidtype='$gidtype'
-glibpth='$glibpth'
-gmake='$gmake'
-gmtime_r_proto='$gmtime_r_proto'
-gnulibc_version='$gnulibc_version'
-grep='$grep'
-groupcat='$groupcat'
-groupstype='$groupstype'
-gzip='$gzip'
-h_fcntl='$h_fcntl'
-h_sysfile='$h_sysfile'
-hint='$hint'
-hostcat='$hostcat'
-hostgenerate='$hostgenerate'
-hostosname='$hostosname'
-hostperl='$hostperl'
-html1dir='$html1dir'
-html1direxp='$html1direxp'
-html3dir='$html3dir'
-html3direxp='$html3direxp'
-i16size='$i16size'
-i16type='$i16type'
-i32size='$i32size'
-i32type='$i32type'
-i64size='$i64size'
-i64type='$i64type'
-i8size='$i8size'
-i8type='$i8type'
-i_arpainet='$i_arpainet'
-i_bfd='$i_bfd'
-i_bsdioctl='$i_bsdioctl'
-i_crypt='$i_crypt'
-i_db='$i_db'
-i_dbm='$i_dbm'
-i_dirent='$i_dirent'
-i_dlfcn='$i_dlfcn'
-i_execinfo='$i_execinfo'
-i_fcntl='$i_fcntl'
-i_fenv='$i_fenv'
-i_fp='$i_fp'
-i_fp_class='$i_fp_class'
-i_gdbm='$i_gdbm'
-i_gdbm_ndbm='$i_gdbm_ndbm'
-i_gdbmndbm='$i_gdbmndbm'
-i_grp='$i_grp'
-i_ieeefp='$i_ieeefp'
-i_inttypes='$i_inttypes'
-i_langinfo='$i_langinfo'
-i_libutil='$i_libutil'
-i_locale='$i_locale'
-i_machcthr='$i_machcthr'
-i_malloc='$i_malloc'
-i_mallocmalloc='$i_mallocmalloc'
-i_mntent='$i_mntent'
-i_ndbm='$i_ndbm'
-i_netdb='$i_netdb'
-i_neterrno='$i_neterrno'
-i_netinettcp='$i_netinettcp'
-i_niin='$i_niin'
-i_poll='$i_poll'
-i_prot='$i_prot'
-i_pthread='$i_pthread'
-i_pwd='$i_pwd'
-i_quadmath='$i_quadmath'
-i_rpcsvcdbm='$i_rpcsvcdbm'
-i_sgtty='$i_sgtty'
-i_shadow='$i_shadow'
-i_socks='$i_socks'
-i_stdbool='$i_stdbool'
-i_stdint='$i_stdint'
-i_stdlib='$i_stdlib'
-i_sunmath='$i_sunmath'
-i_sysaccess='$i_sysaccess'
-i_sysdir='$i_sysdir'
-i_sysfile='$i_sysfile'
-i_sysfilio='$i_sysfilio'
-i_sysin='$i_sysin'
-i_sysioctl='$i_sysioctl'
-i_syslog='$i_syslog'
-i_sysmman='$i_sysmman'
-i_sysmode='$i_sysmode'
-i_sysmount='$i_sysmount'
-i_sysndir='$i_sysndir'
-i_sysparam='$i_sysparam'
-i_syspoll='$i_syspoll'
-i_sysresrc='$i_sysresrc'
-i_syssecrt='$i_syssecrt'
-i_sysselct='$i_sysselct'
-i_syssockio='$i_syssockio'
-i_sysstat='$i_sysstat'
-i_sysstatfs='$i_sysstatfs'
-i_sysstatvfs='$i_sysstatvfs'
-i_systime='$i_systime'
-i_systimek='$i_systimek'
-i_systimes='$i_systimes'
-i_systypes='$i_systypes'
-i_sysuio='$i_sysuio'
-i_sysun='$i_sysun'
-i_sysutsname='$i_sysutsname'
-i_sysvfs='$i_sysvfs'
-i_syswait='$i_syswait'
-i_termio='$i_termio'
-i_termios='$i_termios'
-i_time='$i_time'
-i_unistd='$i_unistd'
-i_ustat='$i_ustat'
-i_utime='$i_utime'
-i_vfork='$i_vfork'
-i_wchar='$i_wchar'
-i_wctype='$i_wctype'
-i_xlocale='$i_xlocale'
-ignore_versioned_solibs='$ignore_versioned_solibs'
-inc_version_list='$inc_version_list'
-inc_version_list_init='$inc_version_list_init'
-incpath='$incpath'
-incpth='$incpth'
-inews='$inews'
-initialinstalllocation='$initialinstalllocation'
-installarchlib='$installarchlib'
-installbin='$installbin'
-installhtml1dir='$installhtml1dir'
-installhtml3dir='$installhtml3dir'
-installman1dir='$installman1dir'
-installman3dir='$installman3dir'
-installprefix='$installprefix'
-installprefixexp='$installprefixexp'
-installprivlib='$installprivlib'
-installscript='$installscript'
-installsitearch='$installsitearch'
-installsitebin='$installsitebin'
-installsitehtml1dir='$installsitehtml1dir'
-installsitehtml3dir='$installsitehtml3dir'
-installsitelib='$installsitelib'
-installsiteman1dir='$installsiteman1dir'
-installsiteman3dir='$installsiteman3dir'
-installsitescript='$installsitescript'
-installstyle='$installstyle'
-installusrbinperl='$installusrbinperl'
-installvendorarch='$installvendorarch'
-installvendorbin='$installvendorbin'
-installvendorhtml1dir='$installvendorhtml1dir'
-installvendorhtml3dir='$installvendorhtml3dir'
-installvendorlib='$installvendorlib'
-installvendorman1dir='$installvendorman1dir'
-installvendorman3dir='$installvendorman3dir'
-installvendorscript='$installvendorscript'
-intsize='$intsize'
-issymlink='$issymlink'
-ivdformat='$ivdformat'
-ivsize='$ivsize'
-ivtype='$ivtype'
-known_extensions='$known_extensions'
-ksh='$ksh'
-ld='$ld'
-ld_can_script='$ld_can_script'
-lddlflags='$lddlflags'
-ldflags='$ldflags'
-ldflags_uselargefiles='$ldflags_uselargefiles'
-ldlibpthname='$ldlibpthname'
-less='$less'
-lib_ext='$lib_ext'
-libc='$libc'
-libperl='$libperl'
-libpth='$libpth'
-libs='$libs'
-libsdirs='$libsdirs'
-libsfiles='$libsfiles'
-libsfound='$libsfound'
-libspath='$libspath'
-libswanted='$libswanted'
-libswanted_uselargefiles='$libswanted_uselargefiles'
-line='$line'
-lint='$lint'
-lkflags='$lkflags'
-ln='$ln'
-lns='$lns'
-localtime_r_proto='$localtime_r_proto'
-locincpth='$locincpth'
-loclibpth='$loclibpth'
-longdblinfbytes='$longdblinfbytes'
-longdblkind='$longdblkind'
-longdblmantbits='$longdblmantbits'
-longdblnanbytes='$longdblnanbytes'
-longdblsize='$longdblsize'
-longlongsize='$longlongsize'
-longsize='$longsize'
-lp='$lp'
-lpr='$lpr'
-ls='$ls'
-lseeksize='$lseeksize'
-lseektype='$lseektype'
-mail='$mail'
-mailx='$mailx'
-make='$make'
-make_set_make='$make_set_make'
-mallocobj='$mallocobj'
-mallocsrc='$mallocsrc'
-malloctype='$malloctype'
-man1dir='$man1dir'
-man1direxp='$man1direxp'
-man1ext='$man1ext'
-man3dir='$man3dir'
-man3direxp='$man3direxp'
-man3ext='$man3ext'
-mips_type='$mips_type'
-mistrustnm='$mistrustnm'
-mkdir='$mkdir'
-mmaptype='$mmaptype'
-modetype='$modetype'
-more='$more'
-multiarch='$multiarch'
-mv='$mv'
-myarchname='$myarchname'
-mydomain='$mydomain'
-myhostname='$myhostname'
-myuname='$myuname'
-n='$n'
-need_va_copy='$need_va_copy'
-netdb_hlen_type='$netdb_hlen_type'
-netdb_host_type='$netdb_host_type'
-netdb_name_type='$netdb_name_type'
-netdb_net_type='$netdb_net_type'
-nm='$nm'
-nm_opt='$nm_opt'
-nm_so_opt='$nm_so_opt'
-nonxs_ext='$nonxs_ext'
-nroff='$nroff'
-nvEUformat='$nvEUformat'
-nvFUformat='$nvFUformat'
-nvGUformat='$nvGUformat'
-nv_overflows_integers_at='$nv_overflows_integers_at'
-nv_preserves_uv_bits='$nv_preserves_uv_bits'
-nveformat='$nveformat'
-nvfformat='$nvfformat'
-nvgformat='$nvgformat'
-nvmantbits='$nvmantbits'
-nvsize='$nvsize'
-nvtype='$nvtype'
-o_nonblock='$o_nonblock'
-obj_ext='$obj_ext'
-old_pthread_create_joinable='$old_pthread_create_joinable'
-optimize='$optimize'
-orderlib='$orderlib'
-osname='$osname'
-osvers='$osvers'
-otherlibdirs='$otherlibdirs'
-package='$package'
-pager='$pager'
-passcat='$passcat'
-patchlevel='$patchlevel'
-path_sep='$path_sep'
-perl5='$perl5'
-perl='$perl'
-perl_patchlevel='$perl_patchlevel'
-perl_static_inline='$perl_static_inline'
-perl_thread_local='$perl_thread_local'
-perladmin='$perladmin'
-perllibs='$perllibs'
-perlpath='$perlpath'
-pg='$pg'
-phostname='$phostname'
-pidtype='$pidtype'
-plibpth='$plibpth'
-pmake='$pmake'
-pr='$pr'
-prefix='$prefix'
-prefixexp='$prefixexp'
-privlib='$privlib'
-privlibexp='$privlibexp'
-procselfexe='$procselfexe'
-ptrsize='$ptrsize'
-quadkind='$quadkind'
-quadtype='$quadtype'
-randbits='$randbits'
-randfunc='$randfunc'
-random_r_proto='$random_r_proto'
-randseedtype='$randseedtype'
-ranlib='$ranlib'
-rd_nodata='$rd_nodata'
-readdir64_r_proto='$readdir64_r_proto'
-readdir_r_proto='$readdir_r_proto'
-revision='$revision'
-rm='$rm'
-rm_try='$rm_try'
-rmail='$rmail'
-run='$run'
-runnm='$runnm'
-sGMTIME_max='$sGMTIME_max'
-sGMTIME_min='$sGMTIME_min'
-sLOCALTIME_max='$sLOCALTIME_max'
-sLOCALTIME_min='$sLOCALTIME_min'
-sPRIEUldbl='$sPRIEUldbl'
-sPRIFUldbl='$sPRIFUldbl'
-sPRIGUldbl='$sPRIGUldbl'
-sPRIXU64='$sPRIXU64'
-sPRId64='$sPRId64'
-sPRIeldbl='$sPRIeldbl'
-sPRIfldbl='$sPRIfldbl'
-sPRIgldbl='$sPRIgldbl'
-sPRIi64='$sPRIi64'
-sPRIo64='$sPRIo64'
-sPRIu64='$sPRIu64'
-sPRIx64='$sPRIx64'
-sSCNfldbl='$sSCNfldbl'
-sched_yield='$sched_yield'
-scriptdir='$scriptdir'
-scriptdirexp='$scriptdirexp'
-sed='$sed'
-seedfunc='$seedfunc'
-selectminbits='$selectminbits'
-selecttype='$selecttype'
-sendmail='$sendmail'
-setgrent_r_proto='$setgrent_r_proto'
-sethostent_r_proto='$sethostent_r_proto'
-setlocale_r_proto='$setlocale_r_proto'
-setnetent_r_proto='$setnetent_r_proto'
-setprotoent_r_proto='$setprotoent_r_proto'
-setpwent_r_proto='$setpwent_r_proto'
-setservent_r_proto='$setservent_r_proto'
-sh='$sh'
-shar='$shar'
-sharpbang='$sharpbang'
-shmattype='$shmattype'
-shortsize='$shortsize'
-shrpenv='$shrpenv'
-shsharp='$shsharp'
-sig_count='$sig_count'
-sig_name='$sig_name'
-sig_name_init='$sig_name_init'
-sig_num='$sig_num'
-sig_num_init='$sig_num_init'
-sig_size='$sig_size'
-signal_t='$signal_t'
-sitearch='$sitearch'
-sitearchexp='$sitearchexp'
-sitebin='$sitebin'
-sitebinexp='$sitebinexp'
-sitehtml1dir='$sitehtml1dir'
-sitehtml1direxp='$sitehtml1direxp'
-sitehtml3dir='$sitehtml3dir'
-sitehtml3direxp='$sitehtml3direxp'
-sitelib='$sitelib'
-sitelib_stem='$sitelib_stem'
-sitelibexp='$sitelibexp'
-siteman1dir='$siteman1dir'
-siteman1direxp='$siteman1direxp'
-siteman3dir='$siteman3dir'
-siteman3direxp='$siteman3direxp'
-siteprefix='$siteprefix'
-siteprefixexp='$siteprefixexp'
-sitescript='$sitescript'
-sitescriptexp='$sitescriptexp'
-sizesize='$sizesize'
-sizetype='$sizetype'
-sleep='$sleep'
-smail='$smail'
-so='$so'
-sockethdr='$sockethdr'
-socketlib='$socketlib'
-socksizetype='$socksizetype'
-sort='$sort'
-spackage='$spackage'
-spitshell='$spitshell'
-srand48_r_proto='$srand48_r_proto'
-srandom_r_proto='$srandom_r_proto'
-src='$src'
-ssizetype='$ssizetype'
-st_dev_sign='$st_dev_sign'
-st_dev_size='$st_dev_size'
-st_ino_sign='$st_ino_sign'
-st_ino_size='$st_ino_size'
-startperl='$startperl'
-startsh='$startsh'
-static_ext='$static_ext'
-stdchar='$stdchar'
-stdio_base='$stdio_base'
-stdio_bufsiz='$stdio_bufsiz'
-stdio_cnt='$stdio_cnt'
-stdio_filbuf='$stdio_filbuf'
-stdio_ptr='$stdio_ptr'
-stdio_stream_array='$stdio_stream_array'
-strerror_r_proto='$strerror_r_proto'
-submit='$submit'
-subversion='$subversion'
-sysman='$sysman'
-sysroot='$sysroot'
-tail='$tail'
-tar='$tar'
-targetarch='$targetarch'
-targetdir='$targetdir'
-targetenv='$targetenv'
-targethost='$targethost'
-targetmkdir='$targetmkdir'
-targetport='$targetport'
-targetsh='$targetsh'
-tbl='$tbl'
-tee='$tee'
-test='$test'
-timeincl='$timeincl'
-timetype='$timetype'
-tmpnam_r_proto='$tmpnam_r_proto'
-to='$to'
-touch='$touch'
-tr='$tr'
-trnl='$trnl'
-troff='$troff'
-ttyname_r_proto='$ttyname_r_proto'
-u16size='$u16size'
-u16type='$u16type'
-u32size='$u32size'
-u32type='$u32type'
-u64size='$u64size'
-u64type='$u64type'
-u8size='$u8size'
-u8type='$u8type'
-uidformat='$uidformat'
-uidsign='$uidsign'
-uidsize='$uidsize'
-uidtype='$uidtype'
-uname='$uname'
-uniq='$uniq'
-uquadtype='$uquadtype'
-use64bitall='$use64bitall'
-use64bitint='$use64bitint'
-usecbacktrace='$usecbacktrace'
-usecrosscompile='$usecrosscompile'
-usedefaultstrict='$usedefaultstrict'
-usedevel='$usedevel'
-usedl='$usedl'
-usedtrace='$usedtrace'
-usefaststdio='$usefaststdio'
-useithreads='$useithreads'
-usekernprocpathname='$usekernprocpathname'
-uselanginfo='$uselanginfo'
-uselargefiles='$uselargefiles'
-uselongdouble='$uselongdouble'
-usemallocwrap='$usemallocwrap'
-usemorebits='$usemorebits'
-usemultiplicity='$usemultiplicity'
-usemymalloc='$usemymalloc'
-usenm='$usenm'
-usensgetexecutablepath='$usensgetexecutablepath'
-useopcode='$useopcode'
-useperlio='$useperlio'
-useposix='$useposix'
-usequadmath='$usequadmath'
-usereentrant='$usereentrant'
-userelocatableinc='$userelocatableinc'
-useshrplib='$useshrplib'
-usesitecustomize='$usesitecustomize'
-usesocks='$usesocks'
-usethreads='$usethreads'
-usevendorprefix='$usevendorprefix'
-useversionedarchname='$useversionedarchname'
-usevfork='$usevfork'
-usrinc='$usrinc'
-uuname='$uuname'
-uvXUformat='$uvXUformat'
-uvoformat='$uvoformat'
-uvsize='$uvsize'
-uvtype='$uvtype'
-uvuformat='$uvuformat'
-uvxformat='$uvxformat'
-vendorarch='$vendorarch'
-vendorarchexp='$vendorarchexp'
-vendorbin='$vendorbin'
-vendorbinexp='$vendorbinexp'
-vendorhtml1dir='$vendorhtml1dir'
-vendorhtml1direxp='$vendorhtml1direxp'
-vendorhtml3dir='$vendorhtml3dir'
-vendorhtml3direxp='$vendorhtml3direxp'
-vendorlib='$vendorlib'
-vendorlib_stem='$vendorlib_stem'
-vendorlibexp='$vendorlibexp'
-vendorman1dir='$vendorman1dir'
-vendorman1direxp='$vendorman1direxp'
-vendorman3dir='$vendorman3dir'
-vendorman3direxp='$vendorman3direxp'
-vendorprefix='$vendorprefix'
-vendorprefixexp='$vendorprefixexp'
-vendorscript='$vendorscript'
-vendorscriptexp='$vendorscriptexp'
-version='$version'
-version_patchlevel_string='$version_patchlevel_string'
-versiononly='$versiononly'
-vi='$vi'
-xlibpth='$xlibpth'
-xlocale_needed='$xlocale_needed'
-yacc='$yacc'
-yaccflags='$yaccflags'
-zcat='$zcat'
-zip='$zip'
-EOT
-
-: add special variables
-$test -f $src/patchlevel.h && \
-awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
-echo "PERL_PATCHLEVEL='$perl_patchlevel'" >>config.sh
-echo "PERL_CONFIG_SH=true" >>config.sh
-
-: propagate old symbols
-if $test -f UU/config.sh; then
- <UU/config.sh $sort | $uniq >UU/oldconfig.sh
- $sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' \
- config.sh config.sh UU/oldconfig.sh |\
- $sort | $uniq -u >UU/oldsyms
- set X `$cat UU/oldsyms`
- shift
- case $# in
- 0) ;;
- *)
- $cat <<EOM
-Hmm...You had some extra variables I don't know about...I'll try to keep 'em...
-EOM
- echo ": Variables propagated from previous config.sh file." >>config.sh
- for sym in `$cat UU/oldsyms`; do
- echo " Propagating $hint variable "'$'"$sym..."
- eval 'tmp="$'"${sym}"'"'
- echo "$tmp" | \
- sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh
- done
- ;;
- esac
-fi
-
-: preserve RCS keywords in files with variable substitution, grrr
-Id='$Id'
-
-: Finish up by extracting the .SH files
-case "$alldone" in
-exit)
- echo "Stopping at your request, leaving temporary files around."
- exit 0
- ;;
-cont)
- ;;
-'')
- dflt=''
- nostick=true
- $cat <<EOM
-
-If you'd like to make any changes to the config.sh file before I begin
-to configure things, do it as a shell escape now (e.g. !vi config.sh).
-
-EOM
- rp="Press return or use a shell escape to edit config.sh:"
- . UU/myread
- nostick=''
- case "$ans" in
- '') ;;
- *) : in case they cannot read
- sh 1>&4 -c "$ans";;
- esac
- ;;
-esac
-
-: if this fails, just run all the .SH files by hand
-. ./config.sh
-
-echo " "
-exec 1>&4
-pwd=`pwd`
-. ./UU/extract
-cd "$pwd"
-
-if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
- dflt=y
- case "$silent" in
- true) ;;
- *)
- $cat <<EOM
-
-Now you need to generate make dependencies by running "$make depend".
-You might prefer to run it in background: "$make depend > makedepend.out &"
-It can take a while, so you might not want to run it right now.
-
-EOM
- ;;
- esac
- rp="Run $make depend now?"
- . UU/myread
- case "$ans" in
- y*)
- $make depend && echo "Now you must run '$make'."
- ;;
- *)
- echo "You must run '$make depend' then '$make'."
- ;;
- esac
-elif test -f [Mm]akefile; then
- echo " "
- echo "Now you must run a $make."
-else
- echo "Configure done."
-fi
-
-if $test -f Policy.sh; then
- $cat <<EOM
-
-If you compile $package on a different machine or from a different object
-directory, copy the Policy.sh file from this object directory to the
-new one before you run Configure -- this will help you with most of
-the policy defaults.
-
-EOM
-fi
-if $test -f UU/config.msg; then
- echo "Hmm. I also noted the following information while running:"
- echo " "
- $cat UU/config.msg >&4
-fi
-$rm -f kit*isdone ark*isdone
-$rm -rf UU
-
-: End of Configure
-
Property changes on: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new/Configure
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/perl-5.36.0-new
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/create.patch.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/create.patch.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=5.36.0
-
-tar --files-from=file.list -xJvf ../perl-$VERSION.tar.xz
-mv perl-$VERSION perl-$VERSION-orig
-
-cp -rf ./perl-$VERSION-new ./perl-$VERSION
-
-diff -b --unified -Nr perl-$VERSION-orig perl-$VERSION > perl-$VERSION-multilib.patch
-
-mv perl-$VERSION-multilib.patch ../patches
-
-rm -rf ./perl-$VERSION
-rm -rf ./perl-$VERSION-orig
Property changes on: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/perl/create-5.36.0-multilib-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/perl
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/perl
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/dialog/patches/README
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/patches/README (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/patches/README (nonexistent)
@@ -1,6 +0,0 @@
-
-/* begin *
-
- dialog-1.3-20210621.patch - Some enhance the appearance of dialogs.
-
- * end */
Index: build-system-1.10.x/3pp/sources/packages/dialog/patches
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/patches (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/patches (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/dialog/patches
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/file.list
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/file.list (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/file.list (nonexistent)
@@ -1,7 +0,0 @@
-dialog-1.3-20210621/buildlist.c
-dialog-1.3-20210621/checklist.c
-dialog-1.3-20210621/dialog-config.in
-dialog-1.3-20210621/fselect.c
-dialog-1.3-20210621/menubox.c
-dialog-1.3-20210621/treeview.c
-dialog-1.3-20210621/util.c
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/create.patch.sh
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/create.patch.sh (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=1.3-20210621
-
-tar --files-from=file.list -xzvf ../dialog-$VERSION.tgz
-mv dialog-$VERSION dialog-$VERSION-orig
-
-cp -rf ./dialog-$VERSION-new ./dialog-$VERSION
-
-diff --unified -Nr dialog-$VERSION-orig dialog-$VERSION > dialog-$VERSION.patch
-
-mv dialog-$VERSION.patch ../patches
-
-rm -rf ./dialog-$VERSION
-rm -rf ./dialog-$VERSION-orig
Property changes on: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/buildlist.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/buildlist.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/buildlist.c (nonexistent)
@@ -1,1267 +0,0 @@
-/*
- * $Id: buildlist.c,v 1.95 2021/03/05 00:51:16 tom Exp $
- *
- * buildlist.c -- implements the buildlist dialog
- *
- * Copyright 2012-2020,2021 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License, version 2.1
- * as published by the Free Software Foundation.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- */
-
-#include <dlg_internals.h>
-#include <dlg_keys.h>
-
-/*
- * Visually like menubox, but two columns.
- */
-
-#define sLEFT (-2)
-#define sRIGHT (-1)
-
-#define KEY_LEFTCOL '^'
-#define KEY_RIGHTCOL '$'
-
-#define MIN_HIGH (1 + (5 * MARGIN))
-
-typedef struct {
- WINDOW *win;
- int box_y;
- int box_x;
- int top_index;
- int cur_index;
- DIALOG_LISTITEM **ip; /* pointers to items in this list */
-} MY_DATA;
-
-#if 0
-#define TRACE(p) dlg_trace_msg p
-#else
-#define TRACE(p) /* nothing */
-#endif
-
-#define okIndex(all,index) ((index) >= 0 && (index) < (all)->item_no)
-
-#define myItem(p,n) ((p)->ip)[n]
-#define mySide(n) ((n)?"right":"left")
-
-typedef struct {
- DIALOG_LISTITEM *items; /* all items in the widget */
- int base_y; /* base for mouse coordinates */
- int base_x;
- int use_height; /* actual size of column box */
- int use_width;
- int item_no;
- int check_x;
- int item_x;
- MY_DATA list[2];
-} ALL_DATA;
-
-/*
- * Translate a choice from items[] to a row-number in an unbounded column,
- * starting at zero.
- */
-static int
-index2row(ALL_DATA * all, int choice, int selected)
-{
- MY_DATA *data = all->list + selected;
- int result = -1;
-
- if (okIndex(all, choice)) {
- int row;
-
- for (row = 0; row < all->item_no; ++row) {
- TRACE(("!... choice %d: %p vs row %d: %p\n",
- choice, all->items + choice,
- row, myItem(data, row)));
- if (myItem(data, row) == all->items + choice) {
- result = row;
- break;
- }
- }
- }
- TRACE(("! index2row(choice %d, %s) = %d\n", choice, mySide(selected), result));
- return result;
-}
-
-/*
- * Convert a row-number back to an item number, i.e., index into items[].
- */
-static int
-row2index(ALL_DATA * all, int row, int selected)
-{
- MY_DATA *data = all->list + selected;
- int result = -1;
- int n;
- for (n = 0; n < all->item_no; ++n) {
- TRACE(("!... row %d: %p vs choice %d: %p\n",
- row, myItem(data, row),
- n, all->items + n));
- if (myItem(data, row) == all->items + n) {
- result = n;
- break;
- }
- }
- TRACE(("! row2index(row %d, %s) = %d\n", row, mySide(selected), result));
- return result;
-}
-
-/*
- * Print list item. The 'selected' parameter is true if 'choice' is the
- * current item. That one is colored differently from the other items.
- */
-static void
-print_item(ALL_DATA * all,
- WINDOW *win,
- DIALOG_LISTITEM * item,
- int row,
- int selected)
-{
- chtype save = dlg_get_attrs(win);
- int i;
- bool both = (!dialog_vars.no_tags && !dialog_vars.no_items);
- bool first = TRUE;
- int climit = (all->item_x - all->check_x - 1);
- const char *show = (dialog_vars.no_items
- ? item->name
- : item->text);
-
- /* Clear 'residue' of last item */
- dlg_attrset(win, menubox_attr);
- (void) wmove(win, row, 0);
- for (i = 0; i < getmaxx(win); i++)
- (void) waddch(win, ' ');
-
- (void) wmove(win, row, all->check_x);
- dlg_attrset(win, menubox_attr);
-
- if (both) {
- dlg_print_listitem(win, item->name, climit, first, selected);
- (void) waddch(win, ' ');
- first = FALSE;
- }
-
- (void) wmove(win, row, all->item_x);
- climit = (getmaxx(win) - all->item_x + 1);
- dlg_print_listitem(win, show, climit, first, selected);
-
- if (selected) {
- dlg_item_help(item->help);
- }
- dlg_attrset(win, save);
-}
-
-/*
- * Prints either the left (unselected) or right (selected) list.
- */
-static void
-print_1_list(ALL_DATA * all,
- int choice,
- int selected)
-{
- MY_DATA *data = all->list + selected;
- DIALOG_LISTITEM *target = (okIndex(all, choice)
- ? all->items + choice
- : 0);
- WINDOW *win = data->win;
- int i, j;
- int last = 0;
- int top_row = index2row(all, data->top_index, selected);
- int max_rows = getmaxy(win);
-
- TRACE(("! print_1_list %d %s, top %d\n", choice, mySide(selected), top_row));
- for (i = j = 0; j < max_rows; i++) {
- int ii = i + top_row;
- if (ii < 0) {
- continue;
- } else if (myItem(data, ii)) {
- print_item(all,
- win,
- myItem(data, ii),
- j, myItem(data, ii) == target);
- last = ++j;
- } else {
- break;
- }
- }
- if (wmove(win, last, 0) != ERR) {
- while (waddch(win, ' ') != ERR) {
- ;
- }
- }
- (void) wnoutrefresh(win);
-}
-
-/*
- * Return the previous item from the list, staying in the same column. If no
- * further movement is possible, return the same choice as given.
- */
-static int
-prev_item(ALL_DATA * all, int choice, int selected)
-{
- int result = choice;
- int row = index2row(all, choice, selected);
- if (row > 0) {
- row--;
- result = row2index(all, row, selected);
- }
- TRACE(("! prev_item choice %d, %s = %d\n", choice, mySide(selected), result));
- return result;
-}
-
-/*
- * Return true if the given choice is on the first page in the current column.
- */
-static bool
-stop_prev(ALL_DATA * all, int choice, int selected)
-{
- return (prev_item(all, choice, selected) == choice);
-}
-
-static bool
-check_hotkey(DIALOG_LISTITEM * items, int choice, int selected)
-{
- bool result = FALSE;
-
- if ((items[choice].state != 0) == selected) {
- if (dlg_match_char(dlg_last_getc(),
- (dialog_vars.no_tags
- ? items[choice].text
- : items[choice].name))) {
- result = TRUE;
- }
- }
- return result;
-}
-
-/*
- * Return the next item from the list, staying in the same column. If no
- * further movement is possible, return the same choice as given.
- */
-static int
-next_item(ALL_DATA * all, int choice, int selected)
-{
- MY_DATA *data = all->list + selected;
- int result = choice;
- int row = index2row(all, choice, selected);
- TRACE(("! given item %d, testing next-item on row %d\n", choice, row + 1));
- if (myItem(data, row + 1)) {
- result = row2index(all, row + 1, selected);
- }
- TRACE(("! next_item(%d, %s) ->%d\n", choice, mySide(selected), result));
- return result;
-}
-
-/*
- * Return the first choice from items[] for the given column.
- */
-static int
-first_item(ALL_DATA * all, int selected)
-{
- MY_DATA *data = all->list + selected;
- int result = -1;
-
- if (myItem(data, 0) != 0) {
- int n;
-
- for (n = 0; n < all->item_no; ++n) {
- if (myItem(data, 0) == &all->items[n]) {
- result = n;
- break;
- }
- }
- }
- TRACE(("! first_item %s = %d\n", mySide(selected), result));
- return result;
-}
-
-/*
- * Return the last choice from items[] for the given column.
- */
-static int
-last_item(ALL_DATA * all, int selected)
-{
- MY_DATA *data = all->list + selected;
- int result = -1;
- int n;
-
- for (n = 0; myItem(data, n) != 0; ++n) {
- result = n;
- }
- if (result >= 0) {
- result = row2index(all, result, selected);
- }
- TRACE(("! last_item %s = %d\n", mySide(selected), result));
- return result;
-}
-
-static int
-skip_rows(ALL_DATA * all, int row, int skip, int selected)
-{
- MY_DATA *data = all->list + selected;
- int result = row;
-
- if (skip > 0) {
- int n;
-
- for (n = row + 1; (n < all->item_no) && (n <= row + skip); ++n) {
- if (myItem(data, n) == 0)
- break;
- result = n;
- }
- } else if (skip < 0) {
- result -= skip;
- if (result < 0)
- result = 0;
- }
- TRACE(("! skip_rows row %d, skip %d, %s = %d\n",
- row, skip, mySide(selected), result));
- return result;
-}
-
-/*
- * Find the closest item in the given column starting with the given choice.
- */
-static int
-closest_item(ALL_DATA * all, int choice, int selected)
-{
- int prev = choice;
- int next = choice;
- int result = choice;
- int n;
-
- for (n = choice; n >= 0; --n) {
- if ((all->items[n].state != 0) == selected) {
- prev = n;
- break;
- }
- }
- for (n = choice; n < all->item_no; ++n) {
- if ((all->items[n].state != 0) == selected) {
- next = n;
- break;
- }
- }
- if (prev != choice) {
- result = prev;
- if (next != choice) {
- if ((choice - prev) > (next - choice)) {
- result = next;
- }
- }
- } else if (next != choice) {
- result = next;
- }
- TRACE(("! XXX closest item choice %d, %s = %d\n",
- choice, mySide(selected), result));
- return result;
-}
-
-static void
-print_both(ALL_DATA * all,
- int choice)
-{
- int selected;
- int cur_y, cur_x;
- WINDOW *dialog = wgetparent(all->list[0].win);
-
- TRACE(("! print_both %d\n", choice));
- getyx(dialog, cur_y, cur_x);
- for (selected = 0; selected < 2; ++selected) {
- MY_DATA *data = all->list + selected;
- WINDOW *win = data->win;
- int thumb_top = index2row(all, data->top_index, selected);
- int thumb_max = index2row(all, -1, selected);
- int thumb_end = thumb_top + getmaxy(win);
-
- print_1_list(all, choice, selected);
-
- dlg_mouse_setcode(selected * KEY_MAX);
- dlg_draw_scrollbar(dialog,
- (long) (data->top_index),
- (long) (thumb_top),
- (long) MIN(thumb_end, thumb_max),
- (long) thumb_max,
- data->box_x + all->check_x,
- data->box_x + getmaxx(win),
- data->box_y,
- data->box_y + getmaxy(win) + 1,
- menubox_border2_attr,
- menubox_border_attr);
- }
- (void) wmove(dialog, cur_y, cur_x);
- dlg_mouse_setcode(0);
-}
-
-static void
-set_top_item(ALL_DATA * all, int choice, int selected)
-{
- if (choice != all->list[selected].top_index) {
- DLG_TRACE(("# set top of %s column to %d\n",
- mySide(selected),
- choice));
- all->list[selected].top_index = choice;
- }
-}
-
-/*
- * Adjust the top-index as needed to ensure that it and the given item are
- * visible.
- */
-static void
-fix_top_item(ALL_DATA * all, int cur_item, int selected)
-{
- int top_item = all->list[selected].top_index;
- int cur_row = index2row(all, cur_item, selected);
- int top_row = index2row(all, top_item, selected);
-
- if (cur_row < top_row) {
- top_item = cur_item;
- } else if ((cur_row - top_row) >= all->use_height) {
- top_item = row2index(all, cur_row + 1 - all->use_height, selected);
- }
- if (cur_row < all->use_height) {
- top_item = row2index(all, 0, selected);
- }
- DLG_TRACE(("# fix_top_item(cur_item %d, %s) ->top_item %d\n",
- cur_item, mySide(selected), top_item));
- set_top_item(all, top_item, selected);
-}
-
-static void
-append_right_side(ALL_DATA * all, int choice)
-{
- MY_DATA *data = &all->list[1];
- int j;
- for (j = 0; j < all->item_no; ++j) {
- if (myItem(data, j) == 0) {
- myItem(data, j) = &all->items[choice];
- break;
- }
- }
-}
-
-static void
-amend_right_side(ALL_DATA * all, int choice)
-{
- MY_DATA *data = &all->list[1];
- int j, k;
- for (j = 0; j < all->item_no; ++j) {
- if (myItem(data, j) == &all->items[choice]) {
- for (k = j; k < all->item_no; ++k) {
- if ((myItem(data, k) = myItem(data, k + 1)) == 0)
- break;
- }
- break;
- }
- }
-}
-
-static void
-fill_one_side(ALL_DATA * all, int selected)
-{
- int i, j;
- MY_DATA *data = all->list + selected;
-
- for (i = j = 0; j < all->item_no; ++j) {
- myItem(data, i) = 0;
- if ((all->items[j].state != 0) == selected) {
- myItem(data, i) = all->items + j;
- TRACE(("! %s item[%d] %p = all[%d] %p\n",
- mySide(selected),
- i, myItem(data, i),
- j, all->items + j));
- ++i;
- }
- }
- myItem(data, i) = 0;
-}
-
-static void
-fill_both_sides(ALL_DATA * all)
-{
- int k;
-
- for (k = 0; k < 2; ++k) {
- fill_one_side(all, k);
- }
-}
-
-/*
- * This is an alternate interface to 'buildlist' which allows the application
- * to read the list item states back directly without putting them in the
- * output buffer.
- */
-int
-dlg_buildlist(const char *title,
- const char *cprompt,
- int height,
- int width,
- int list_height,
- int item_no,
- DIALOG_LISTITEM * items,
- const char *states,
- int order_mode,
- int *current_item)
-{
-#define THIS_FUNC "dlg_buildlist"
- /* *INDENT-OFF* */
- static DLG_KEYS_BINDING binding[] = {
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ),
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ),
- DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME ),
- DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END ),
- DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE+KEY_MAX) ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE+KEY_MAX) ),
- DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFTCOL ),
- DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHTCOL ),
- TOGGLEKEY_BINDINGS,
- END_KEYS_BINDING
- };
- /* *INDENT-ON* */
-
-#ifdef KEY_RESIZE
- int old_height = height;
- int old_width = width;
-#endif
- ALL_DATA all;
- MY_DATA *data = all.list;
- int i, j, k, key2, found, x, y, cur_x, cur_y;
- int key, fkey;
- bool save_visit = dialog_state.visit_items;
- int button;
- int cur_item;
- int name_width, text_width, full_width, list_width;
- int result = DLG_EXIT_UNKNOWN;
- int num_states;
- bool first = TRUE;
- WINDOW *dialog;
- char *prompt;
- const char **buttons = dlg_ok_labels();
- const char *widget_name = "buildlist";
-
- dialog_state.plain_buttons = TRUE;
-
- /*
- * Unlike other uses of --visit-items, we have two windows to visit.
- */
- if (dialog_state.visit_cols)
- dialog_state.visit_cols = 2;
-
- memset(&all, 0, sizeof(all));
- all.items = items;
- all.item_no = item_no;
- for (k = 0; k < 2; ++k) {
- data[k].ip = dlg_calloc(DIALOG_LISTITEM *, (item_no + 2));
- }
- fill_both_sides(&all);
-
- if (dialog_vars.default_item != 0) {
- cur_item = dlg_default_listitem(items);
- } else {
- if ((cur_item = first_item(&all, 0)) < 0)
- cur_item = first_item(&all, 1);
- }
- button = (dialog_state.visit_items
- ? (items[cur_item].state ? sRIGHT : sLEFT)
- : dlg_default_button());
-
- dlg_does_output();
-
-#ifdef KEY_RESIZE
- retry:
-#endif
-
- prompt = dlg_strclone(cprompt);
- dlg_tab_correct_str(prompt);
-
- all.use_height = list_height;
- all.use_width = (2 * (dlg_calc_list_width(item_no, items)
- + 4
- + 2 * MARGIN)
- + 1);
- all.use_width = MAX(26, all.use_width);
- if (all.use_height == 0) {
- /* calculate height without items (4) */
- dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, all.use_width);
- dlg_calc_listh(&height, &all.use_height, item_no);
- } else {
- dlg_auto_size(title, prompt,
- &height, &width,
- MIN_HIGH + all.use_height, all.use_width);
- }
- dlg_button_layout(buttons, &width);
- dlg_print_size(height, width);
- dlg_ctl_size(height, width);
-
- /* we need at least two states */
- if (states == 0 || strlen(states) < 2)
- states = " *";
- num_states = (int) strlen(states);
-
- x = dlg_box_x_ordinate(width);
- y = dlg_box_y_ordinate(height);
-
- dialog = dlg_new_window(height, width, y, x);
- dlg_register_window(dialog, widget_name, binding);
- dlg_register_buttons(dialog, widget_name, buttons);
-
- dlg_mouse_setbase(all.base_x = x, all.base_y = y);
-
- dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr);
- dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr);
- dlg_draw_title(dialog, title);
-
- dlg_attrset(dialog, dialog_attr);
- dlg_print_autowrap(dialog, prompt, height, width);
-
- list_width = (width - 6 * MARGIN - 2) / 2;
- getyx(dialog, cur_y, cur_x);
- data[0].box_y = cur_y + 1;
- data[0].box_x = MARGIN + 1;
- data[1].box_y = cur_y + 1;
- data[1].box_x = data[0].box_x + 1 + 2 * MARGIN + list_width;
-
- /*
- * After displaying the prompt, we know how much space we really have.
- * Limit the list to avoid overwriting the ok-button.
- */
- if (all.use_height + MIN_HIGH > height - cur_y)
- all.use_height = height - MIN_HIGH - cur_y;
- if (all.use_height <= 0)
- all.use_height = 1;
-
- for (k = 0; k < 2; ++k) {
- /* create new window for the list */
- data[k].win = dlg_sub_window(dialog, all.use_height, list_width,
- y + data[k].box_y + 1,
- x + data[k].box_x + 1);
-
- /* draw a box around the list items */
- dlg_draw_box(dialog, data[k].box_y, data[k].box_x,
- all.use_height + 2 * MARGIN,
- list_width + 2 * MARGIN,
- menubox_border_attr, menubox_border2_attr);
- }
-
- text_width = 0;
- name_width = 0;
- /* Find length of longest item to center buildlist */
- for (i = 0; i < item_no; i++) {
- text_width = MAX(text_width, dlg_count_columns(items[i].text));
- name_width = MAX(name_width, dlg_count_columns(items[i].name));
- }
-
- /* If the name+text is wider than the list is allowed, then truncate
- * one or both of them. If the name is no wider than 1/4 of the list,
- * leave it intact.
- */
- all.use_width = (list_width - 6 * MARGIN);
- if (dialog_vars.no_tags && !dialog_vars.no_items) {
- full_width = MIN(all.use_width, text_width);
- } else if (dialog_vars.no_items) {
- full_width = MIN(all.use_width, name_width);
- } else {
- if (text_width >= 0
- && name_width >= 0
- && all.use_width > 0
- && text_width + name_width > all.use_width) {
- int need = (int) (0.25 * all.use_width);
- if (name_width > need) {
- int want = (int) (all.use_width * ((double) name_width) /
- (text_width + name_width));
- name_width = (want > need) ? want : need;
- }
- text_width = all.use_width - name_width;
- }
- full_width = text_width + name_width;
- }
-
- all.check_x = (all.use_width - full_width) / 2;
- all.item_x = ((dialog_vars.no_tags
- ? 0
- : (dialog_vars.no_items
- ? 0
- : (name_width + 2)))
- + all.check_x);
-
- /* ensure we are scrolled to show the current choice */
- j = MIN(all.use_height, item_no);
- for (i = 0; i < 2; ++i) {
- if ((items[cur_item].state != 0) == i) {
- int top_item = cur_item - j + 1;
- if (top_item < 0)
- top_item = 0;
- while ((items[top_item].state != 0) != i)
- ++top_item;
- set_top_item(&all, top_item, i);
- } else {
- set_top_item(&all, 0, i);
- }
- }
-
- /* register the new window, along with its borders */
- for (i = 0; i < 2; ++i) {
- dlg_mouse_mkbigregion(data[i].box_y + 1,
- data[i].box_x,
- all.use_height,
- list_width + 2,
- 2 * KEY_MAX + (i * (1 + all.use_height)),
- 1, 1, 1 /* by lines */ );
- }
-
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width);
-
- while (result == DLG_EXIT_UNKNOWN) {
- int which = (items[cur_item].state != 0);
- MY_DATA *moi = data + which;
- int at_top = index2row(&all, moi->top_index, which);
- int at_end = index2row(&all, -1, which);
- int at_bot = skip_rows(&all, at_top, all.use_height, which);
- int was_mouse;
-
- DLG_TRACE(("# ** state %d:%d top %d (%d:%d:%d) %s\n",
- cur_item, item_no - 1,
- moi->top_index,
- at_top, at_bot, at_end,
- mySide(which)));
-
- if (first) {
- print_both(&all, cur_item);
- dlg_trace_win(dialog);
- first = FALSE;
- }
-
- if (button < 0) { /* --visit-items */
- int cur_row = index2row(&all, cur_item, which);
- cur_y = (data[which].box_y
- + cur_row
- + 1);
- if (at_top > 0)
- cur_y -= at_top;
- cur_x = (data[which].box_x
- + all.check_x + 1);
- DLG_TRACE(("# ...visit row %d (%d,%d)\n", cur_row, cur_y, cur_x));
- wmove(dialog, cur_y, cur_x);
- }
-
- key = dlg_mouse_wgetch(dialog, &fkey);
- if (dlg_result_key(key, fkey, &result)) {
- if (!dlg_button_key(result, &button, &key, &fkey))
- break;
- }
-
- was_mouse = (fkey && is_DLGK_MOUSE(key));
- if (was_mouse)
- key -= M_EVENT;
-
- if (!was_mouse) {
- ;
- } else if (key >= 2 * KEY_MAX) {
- i = (key - 2 * KEY_MAX) % (1 + all.use_height);
- j = (key - 2 * KEY_MAX) / (1 + all.use_height);
- k = row2index(&all, i + at_top, j);
- DLG_TRACE(("# MOUSE column %d, row %d ->item %d\n", j, i, k));
- if (k >= 0 && j < 2) {
- if (j != which) {
- /*
- * Mouse click was in the other column.
- */
- moi = data + j;
- fix_top_item(&all, k, j);
- }
- which = j;
- at_top = index2row(&all, moi->top_index, which);
- at_bot = skip_rows(&all, at_top, all.use_height, which);
- cur_item = k;
- print_both(&all, cur_item);
- key = DLGK_TOGGLE; /* force the selected item to toggle */
- } else {
- beep();
- continue;
- }
- fkey = FALSE;
- } else if (key >= KEY_MIN) {
- if (key > KEY_MAX) {
- if (which == 0) {
- key = KEY_RIGHTCOL; /* switch to right-column */
- fkey = FALSE;
- } else {
- key -= KEY_MAX;
- }
- } else {
- if (which == 1) {
- key = KEY_LEFTCOL; /* switch to left-column */
- fkey = FALSE;
- }
- }
- key = dlg_lookup_key(dialog, key, &fkey);
- }
-
- /*
- * A space toggles the item status. Normally we put the cursor on
- * the next available item in the same column. But if there are no
- * more items in the column, move the cursor to the other column.
- */
- if (key == DLGK_TOGGLE) {
- int new_choice;
- int new_state = items[cur_item].state + 1;
-
- if ((new_choice = next_item(&all, cur_item, which)) == cur_item) {
- new_choice = prev_item(&all, cur_item, which);
- }
- DLG_TRACE(("# cur_item %d, new_choice:%d\n", cur_item, new_choice));
- /* FIXME - how to test and handle multiple states? */
- if (new_state >= num_states)
- new_state = 0;
-
- items[cur_item].state = new_state;
- if (order_mode) {
- fill_one_side(&all, 0);
- if (new_state) {
- append_right_side(&all, cur_item);
- } else {
- amend_right_side(&all, cur_item);
- }
- } else {
- fill_both_sides(&all);
- }
- if (cur_item == moi->top_index) {
- set_top_item(&all, new_choice, which);
- }
-
- if (new_choice >= 0) {
- fix_top_item(&all, cur_item, !which);
- cur_item = new_choice;
- }
- print_both(&all, cur_item);
- dlg_trace_win(dialog);
- continue; /* wait for another key press */
- }
-
- /*
- * Check if key pressed matches first character of any item tag in
- * list. If there is more than one match, we will cycle through
- * each one as the same key is pressed repeatedly.
- */
- found = FALSE;
- if (!fkey) {
- if (button < 0 || !dialog_state.visit_items) {
- for (j = cur_item + 1; j < item_no; j++) {
- if (check_hotkey(items, j, which)) {
- found = TRUE;
- i = j;
- break;
- }
- }
- if (!found) {
- for (j = 0; j <= cur_item; j++) {
- if (check_hotkey(items, j, which)) {
- found = TRUE;
- i = j;
- break;
- }
- }
- }
- if (found)
- dlg_flush_getc();
- } else if ((j = dlg_char_to_button(key, buttons)) >= 0) {
- button = j;
- ungetch('\n');
- continue;
- }
- }
-
- /*
- * A single digit (1-9) positions the selection to that line in the
- * current screen.
- */
- if (!found
- && (key <= '9')
- && (key > '0')
- && (key - '1' < at_bot)) {
- found = TRUE;
- i = key - '1';
- }
-
- if (!found && fkey) {
- switch (key) {
- case DLGK_FIELD_PREV:
- if ((button == sRIGHT) && dialog_state.visit_items) {
- key = DLGK_GRID_LEFT;
- button = sLEFT;
- } else {
- button = dlg_prev_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- if (button == sRIGHT) {
- key = DLGK_GRID_RIGHT;
- } else {
- continue;
- }
- }
- break;
- case DLGK_FIELD_NEXT:
- if ((button == sLEFT) && dialog_state.visit_items) {
- key = DLGK_GRID_RIGHT;
- button = sRIGHT;
- } else {
- button = dlg_next_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- if (button == sLEFT) {
- key = DLGK_GRID_LEFT;
- } else {
- continue;
- }
- }
- break;
- }
-
- i = cur_item;
- found = TRUE;
- switch (key) {
- case DLGK_GRID_LEFT:
- i = closest_item(&all, cur_item, 0);
- fix_top_item(&all, i, 0);
- break;
- case DLGK_GRID_RIGHT:
- if (order_mode) {
- i = last_item(&all, 1);
- } else {
- i = closest_item(&all, cur_item, 1);
- }
- fix_top_item(&all, i, 1);
- break;
- case DLGK_PAGE_PREV:
- if (cur_item > moi->top_index) {
- i = moi->top_index;
- } else if (moi->top_index != 0) {
- int temp = at_top;
- if ((temp -= all.use_height) < 0)
- temp = 0;
- i = row2index(&all, temp, which);
- }
- break;
- case DLGK_PAGE_NEXT:
- if ((at_end - at_bot) < all.use_height) {
- i = next_item(&all,
- row2index(&all, at_end, which),
- which);
- } else {
- i = next_item(&all,
- row2index(&all, at_bot, which),
- which);
- at_top = at_bot;
- set_top_item(&all,
- next_item(&all,
- row2index(&all, at_top, which),
- which),
- which);
- at_bot = skip_rows(&all, at_top, all.use_height, which);
- at_bot = MIN(at_bot, at_end);
- }
- break;
- case DLGK_ITEM_FIRST:
- i = first_item(&all, which);
- break;
- case DLGK_ITEM_LAST:
- i = last_item(&all, which);
- break;
- case DLGK_ITEM_PREV:
- i = prev_item(&all, cur_item, which);
- if (stop_prev(&all, cur_item, which))
- continue;
- break;
- case DLGK_ITEM_NEXT:
- i = next_item(&all, cur_item, which);
- break;
- default:
- found = FALSE;
- break;
- }
- }
-
- if (found) {
- if (i != cur_item) {
- int now_at = index2row(&all, i, which);
- int oops = item_no;
- int old_item;
-
- DLG_TRACE(("# <--CHOICE %d\n", i));
- DLG_TRACE(("# <--topITM %d\n", moi->top_index));
- DLG_TRACE(("# <--now_at %d\n", now_at));
- DLG_TRACE(("# <--at_top %d\n", at_top));
- DLG_TRACE(("# <--at_bot %d\n", at_bot));
-
- if (now_at >= at_bot) {
- while (now_at >= at_bot) {
- if ((at_bot - at_top) >= all.use_height) {
- set_top_item(&all,
- next_item(&all, moi->top_index, which),
- which);
- }
- at_top = index2row(&all, moi->top_index, which);
- at_bot = skip_rows(&all, at_top, all.use_height, which);
-
- DLG_TRACE(("# ...at_bot %d (now %d vs %d)\n",
- at_bot, now_at, at_end));
- DLG_TRACE(("# ...topITM %d\n", moi->top_index));
- DLG_TRACE(("# ...at_top %d (diff %d)\n", at_top,
- at_bot - at_top));
-
- if (at_bot >= at_end) {
- /*
- * If we bumped into the end, move the top-item
- * down by one line so that we can display the
- * last item in the list.
- */
- if ((at_bot - at_top) > all.use_height) {
- set_top_item(&all,
- next_item(&all, moi->top_index, which),
- which);
- } else if (at_top > 0 &&
- (at_bot - at_top) >= all.use_height) {
- set_top_item(&all,
- next_item(&all, moi->top_index, which),
- which);
- }
- break;
- }
- if (--oops < 0) {
- DLG_TRACE(("# OOPS-forward\n"));
- break;
- }
- }
- } else if (now_at < at_top) {
- while (now_at < at_top) {
- old_item = moi->top_index;
- set_top_item(&all,
- prev_item(&all, moi->top_index, which),
- which);
- at_top = index2row(&all, moi->top_index, which);
-
- DLG_TRACE(("# ...at_top %d (now %d)\n", at_top, now_at));
- DLG_TRACE(("# ...topITM %d\n", moi->top_index));
-
- if (moi->top_index >= old_item)
- break;
- if (at_top <= now_at)
- break;
- if (--oops < 0) {
- DLG_TRACE(("# OOPS-backward\n"));
- break;
- }
- }
- }
- DLG_TRACE(("# -->now_at %d\n", now_at));
- cur_item = i;
- print_both(&all, cur_item);
- }
- dlg_trace_win(dialog);
- continue; /* wait for another key press */
- }
-
- if (fkey) {
- switch (key) {
- case DLGK_ENTER:
- result = dlg_enter_buttoncode(button);
- break;
- case DLGK_LEAVE:
- result = dlg_ok_buttoncode(button);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
- dlg_will_resize(dialog);
- /* reset data */
- height = old_height;
- width = old_width;
- free(prompt);
- _dlg_resize_cleanup(dialog);
- /* repaint */
- first = TRUE;
- goto retry;
-#endif
- default:
- if (was_mouse) {
- if ((key2 = dlg_ok_buttoncode(key)) >= 0) {
- result = key2;
- break;
- }
- beep();
- }
- }
- } else if (key > 0) {
- beep();
- }
- }
-
- /*
- * If told to re-order the list, update it to reflect the current display:
- * a) The left-side will be at the beginning, without gaps.
- * b) The right-side will follow, in display-order.
- */
- if (order_mode) {
- DIALOG_LISTITEM *redo;
- int row;
- int choice;
- int new_item = cur_item;
-
- redo = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1);
- assert_ptr(redo, THIS_FUNC);
-
- j = 0;
- for (k = 0; k < 2; ++k) {
- for (row = 0; row < item_no; ++row) {
- if (myItem(all.list + k, row) == 0)
- break;
- choice = row2index(&all, row, k);
- if (choice == cur_item)
- new_item = j;
- redo[j++] = items[choice];
- }
- }
-
- cur_item = new_item;
- memcpy(items, redo, sizeof(DIALOG_LISTITEM) * (size_t) (item_no + 1));
-
- free(redo);
- }
-
- for (k = 0; k < 2; ++k) {
- free(data[k].ip);
- }
-
- dialog_state.visit_cols = save_visit;
- dlg_del_window(dialog);
- dlg_mouse_free_regions();
- free(prompt);
-
- *current_item = cur_item;
- return result;
-#undef THIS_FUNC
-}
-
-/*
- * Display a dialog box with a list of options that can be turned on or off
- */
-int
-dialog_buildlist(const char *title,
- const char *cprompt,
- int height,
- int width,
- int list_height,
- int item_no,
- char **items,
- int order_mode)
-{
-#define THIS_FUNC "dialog_buildlist"
- int result;
- int i, j;
- DIALOG_LISTITEM *listitems;
- bool separate_output = dialog_vars.separate_output;
- bool show_status = FALSE;
- int current = 0;
- char *help_result;
-
- DLG_TRACE(("# buildlist args:\n"));
- DLG_TRACE2S("title", title);
- DLG_TRACE2S("message", cprompt);
- DLG_TRACE2N("height", height);
- DLG_TRACE2N("width", width);
- DLG_TRACE2N("lheight", list_height);
- DLG_TRACE2N("llength", item_no);
- /* FIXME dump the items[][] too */
- DLG_TRACE2N("order", order_mode != 0);
-
- listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1);
- assert_ptr(listitems, THIS_FUNC);
-
- for (i = j = 0; i < item_no; ++i) {
- listitems[i].name = items[j++];
- listitems[i].text = (dialog_vars.no_items
- ? dlg_strempty()
- : items[j++]);
- listitems[i].state = !dlg_strcmp(items[j++], "on");
- listitems[i].help = ((dialog_vars.item_help)
- ? items[j++]
- : dlg_strempty());
- }
- dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
-
- result = dlg_buildlist(title,
- cprompt,
- height,
- width,
- list_height,
- item_no,
- listitems,
- NULL,
- order_mode,
- ¤t);
-
- switch (result) {
- case DLG_EXIT_OK: /* FALLTHRU */
- case DLG_EXIT_EXTRA:
- show_status = TRUE;
- break;
- case DLG_EXIT_HELP:
- dlg_add_help_listitem(&result, &help_result, &listitems[current]);
- if ((show_status = dialog_vars.help_status)) {
- if (separate_output) {
- dlg_add_string(help_result);
- } else {
- dlg_add_quoted(help_result);
- }
- } else {
- dlg_add_string(help_result);
- }
- break;
- }
-
- if (show_status) {
- for (i = 0; i < item_no; i++) {
- if (listitems[i].state) {
- if (dlg_need_separator())
- dlg_add_separator();
- if (separate_output) {
- dlg_add_string(listitems[i].name);
- } else {
- dlg_add_quoted(listitems[i].name);
- }
- }
- }
- AddLastKey();
- }
-
- dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
- free(listitems);
- return result;
-#undef THIS_FUNC
-}
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/menubox.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/menubox.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/menubox.c (nonexistent)
@@ -1,815 +0,0 @@
-/*
- * $Id: menubox.c,v 1.171 2020/11/23 21:03:11 tom Exp $
- *
- * menubox.c -- implements the menu box
- *
- * Copyright 2000-2019,2020 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public Licens, version 2.1e
- * as published by the Free Software Foundation.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- *
- * An earlier version of this program lists as authors
- * Savio Lam (lam836@cs.cuhk.hk)
- */
-
-#include <dlg_internals.h>
-#include <dlg_keys.h>
-
-typedef enum {
- Unselected = 0,
- Selected,
- Editing
-} Mode;
-
-typedef struct {
- /* the outer-window */
- WINDOW *dialog;
- int box_y;
- int box_x;
- int tag_x;
- int item_x;
- int menu_height;
- int menu_width;
- /* the inner-window */
- WINDOW *menu;
- DIALOG_LISTITEM *items;
- int item_no;
-} ALL_DATA;
-
-#define MIN_HIGH 4
-
-#define INPUT_ROWS 3 /* rows per inputmenu entry */
-
-#define RowHeight(i) (is_inputmenu ? ((i) * INPUT_ROWS) : ((i) * 1))
-#define ItemToRow(i) (is_inputmenu ? ((i) * INPUT_ROWS + 1) : (i))
-#define RowToItem(i) (is_inputmenu ? ((i) / INPUT_ROWS + 0) : (i))
-
-/*
- * Print menu item
- */
-static void
-print_item(ALL_DATA * data,
- WINDOW *win,
- DIALOG_LISTITEM * item,
- int choice,
- Mode selected,
- bool is_inputmenu)
-{
- chtype save = dlg_get_attrs(win);
- int climit = (data->item_x - data->tag_x - GUTTER);
- int my_width = data->menu_width;
- int my_x = data->item_x;
- int my_y = ItemToRow(choice);
- bool both = (!dialog_vars.no_tags && !dialog_vars.no_items);
- bool first = TRUE;
- chtype bordchar;
- const char *show = (dialog_vars.no_items
- ? item->name
- : item->text);
-
- switch (selected) {
- default:
- case Unselected:
- bordchar = item_attr;
- break;
- case Selected:
- bordchar = item_selected_attr;
- break;
- case Editing:
- bordchar = dialog_attr;
- break;
- }
-
- /* Clear 'residue' of last item and mark current current item */
- if (is_inputmenu) {
- int n;
-
- dlg_attrset(win, (selected != Unselected) ? item_selected_attr : item_attr);
- for (n = my_y - 1; n < my_y + INPUT_ROWS - 1; n++) {
- wmove(win, n, 0);
- wprintw(win, "%*s", my_width, " ");
- }
- } else {
- dlg_attrset(win, menubox_attr);
- wmove(win, my_y, 0);
- wprintw(win, "%*s", my_width, " ");
- }
-
- /* highlight first char of the tag to be special */
- if (both) {
- (void) wmove(win, my_y, data->tag_x);
- dlg_print_listitem(win, item->name, climit, first, selected);
- first = FALSE;
- }
-
- /* Draw the input field box (only for inputmenu) */
- (void) wmove(win, my_y, my_x);
- if (is_inputmenu) {
- my_width -= 1;
- dlg_draw_box(win, my_y - 1, my_x, INPUT_ROWS, my_width - my_x - data->tag_x,
- bordchar,
- bordchar);
- my_width -= 1;
- ++my_x;
- }
-
- /* print actual item */
- wmove(win, my_y, my_x);
- dlg_print_listitem(win, show, my_width - my_x, first, selected);
-
- if (selected) {
- dlg_item_help(item->help);
- }
- dlg_attrset(win, save);
-}
-
-/*
- * Allow the user to edit the text of a menu entry.
- */
-static int
-input_menu_edit(ALL_DATA * data,
- DIALOG_LISTITEM * items,
- int choice,
- char **resultp)
-{
- chtype save = dlg_get_attrs(data->menu);
- char *result;
- int offset = 0;
- int key = 0, fkey = 0;
- bool first = TRUE;
- /* see above */
- bool is_inputmenu = TRUE;
- int y = ItemToRow(choice);
- int code = TRUE;
- int max_len = dlg_max_input(MAX((int) strlen(items->text) + 1, MAX_LEN));
-
- result = dlg_malloc(char, (size_t) max_len);
- assert_ptr(result, "input_menu_edit");
-
- /* original item is used to initialize the input string. */
- result[0] = '\0';
- strcpy(result, items->text);
-
- print_item(data, data->menu, items, choice, Editing, TRUE);
-
- /* taken out of inputbox.c - but somewhat modified */
- for (;;) {
- if (!first) {
- int check = DLG_EXIT_UNKNOWN;
- key = dlg_mouse_wgetch(data->menu, &fkey);
- if (dlg_result_key(key, fkey, &check)) {
- if (check == DLG_EXIT_CANCEL) {
- code = FALSE;
- break;
- } else {
- flash();
- }
- }
- }
- if (dlg_edit_string(result, &offset, key, fkey, first)) {
- dlg_show_string(data->menu, result, offset, inputbox_attr,
- y,
- data->item_x + 1,
- data->menu_width - data->item_x - 3,
- FALSE, first);
- first = FALSE;
- } else if (key == ESC || key == TAB) {
- code = FALSE;
- break;
- } else {
- break;
- }
- }
- print_item(data, data->menu, items, choice, Selected, TRUE);
- dlg_attrset(data->menu, save);
-
- *resultp = result;
- return code;
-}
-
-static int
-handle_button(int code, DIALOG_LISTITEM * items, int choice)
-{
- char *help_result;
-
- switch (code) {
- case DLG_EXIT_OK: /* FALLTHRU */
- case DLG_EXIT_EXTRA:
- dlg_add_string(items[choice].name);
- break;
- case DLG_EXIT_HELP:
- dlg_add_help_listitem(&code, &help_result, &items[choice]);
- dlg_add_string(help_result);
- break;
- }
- AddLastKey();
- return code;
-}
-
-int
-dlg_renamed_menutext(DIALOG_LISTITEM * items, int current, char *newtext)
-{
- if (dialog_vars.input_result)
- dialog_vars.input_result[0] = '\0';
- dlg_add_result("RENAMED ");
- dlg_add_string(items[current].name);
- dlg_add_result(" ");
- dlg_add_string(newtext);
- AddLastKey();
- return DLG_EXIT_EXTRA;
-}
-
-int
-dlg_dummy_menutext(DIALOG_LISTITEM * items, int current, char *newtext)
-{
- (void) items;
- (void) current;
- (void) newtext;
- return DLG_EXIT_ERROR;
-}
-
-static void
-print_menu(ALL_DATA * data, int choice, int scrollamt, int max_choice, bool is_inputmenu)
-{
- int i;
-
- for (i = 0; i < max_choice; i++) {
- print_item(data,
- data->menu,
- &data->items[i + scrollamt],
- i,
- (i == choice) ? Selected : Unselected,
- is_inputmenu);
- }
-
- /* Clean bottom lines */
- if (is_inputmenu) {
- int spare_lines, x_count;
- spare_lines = data->menu_height % INPUT_ROWS;
- dlg_attrset(data->menu, menubox_attr);
- for (; spare_lines; spare_lines--) {
- wmove(data->menu, data->menu_height - spare_lines, 0);
- for (x_count = 0; x_count < data->menu_width;
- x_count++) {
- waddch(data->menu, ' ');
- }
- }
- }
-
- (void) wnoutrefresh(data->menu);
-
- dlg_draw_scrollbar(data->dialog,
- scrollamt,
- scrollamt,
- scrollamt + max_choice,
- data->item_no,
- data->box_x,
- data->box_x + data->menu_width,
- data->box_y,
- data->box_y + data->menu_height + 1,
- menubox_border2_attr,
- menubox_border_attr);
-}
-
-static bool
-check_hotkey(DIALOG_LISTITEM * items, int choice)
-{
- bool result = FALSE;
-
- if (dlg_match_char(dlg_last_getc(),
- (dialog_vars.no_tags
- ? items[choice].text
- : items[choice].name))) {
- result = TRUE;
- }
- return result;
-}
-
-/*
- * This is an alternate interface to 'menu' which allows the application
- * to read the list item states back directly without putting them in the
- * output buffer.
- */
-int
-dlg_menu(const char *title,
- const char *cprompt,
- int height,
- int width,
- int menu_height,
- int item_no,
- DIALOG_LISTITEM * items,
- int *current_item,
- DIALOG_INPUTMENU rename_menutext)
-{
- /* *INDENT-OFF* */
- static DLG_KEYS_BINDING binding[] = {
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- TOGGLEKEY_BINDINGS,
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ),
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ),
- DLG_KEYS_DATA( DLGK_PAGE_FIRST, KEY_HOME ),
- DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_END ),
- DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_LL ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ),
- END_KEYS_BINDING
- };
- static DLG_KEYS_BINDING binding2[] = {
- INPUTSTR_BINDINGS,
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- END_KEYS_BINDING
- };
- /* *INDENT-ON* */
-
-#ifdef KEY_RESIZE
- int old_LINES = LINES;
- int old_COLS = COLS;
- int old_height = height;
- int old_width = width;
-#endif
- ALL_DATA all;
- int i, j, x, y, cur_x, cur_y;
- int fkey;
- int button = dialog_state.visit_items ? -1 : dlg_default_button();
- int choice = dlg_default_listitem(items);
- int result = DLG_EXIT_UNKNOWN;
- int scrollamt = 0;
- int max_choice;
- int use_width, name_width, text_width, list_width;
- WINDOW *dialog, *menu;
- char *prompt = 0;
- const char **buttons = dlg_ok_labels();
- bool is_inputmenu = ((rename_menutext != 0)
- && (rename_menutext != dlg_dummy_menutext));
-
- DLG_TRACE(("# menubox args:\n"));
- DLG_TRACE2S("title", title);
- DLG_TRACE2S("message", cprompt);
- DLG_TRACE2N("height", height);
- DLG_TRACE2N("width", width);
- DLG_TRACE2N("lheight", menu_height);
- DLG_TRACE2N("llength", item_no);
- /* FIXME dump the items[][] too */
- DLG_TRACE2N("rename", rename_menutext != 0);
-
- dialog_state.plain_buttons = TRUE;
-
- all.items = items;
- all.item_no = item_no;
-
- dlg_does_output();
-
-#ifdef KEY_RESIZE
- retry:
-#endif
-
- prompt = dlg_strclone(cprompt);
- dlg_tab_correct_str(prompt);
-
- all.menu_height = menu_height;
- use_width = dlg_calc_list_width(item_no, items) + 10;
- use_width = MAX(26, use_width);
- if (all.menu_height == 0) {
- /* calculate height without items (4) */
- dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width);
- dlg_calc_listh(&height, &all.menu_height, item_no);
- } else {
- dlg_auto_size(title, prompt,
- &height, &width,
- MIN_HIGH + all.menu_height, use_width);
- }
- dlg_button_layout(buttons, &width);
- dlg_print_size(height, width);
- dlg_ctl_size(height, width);
-
- x = dlg_box_x_ordinate(width);
- y = dlg_box_y_ordinate(height);
-
- dialog = dlg_new_window(height, width, y, x);
- all.dialog = dialog;
-
- dlg_register_window(dialog, "menubox", binding);
- dlg_register_buttons(dialog, "menubox", buttons);
-
- dlg_mouse_setbase(x, y);
-
- dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr);
- dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr);
- dlg_draw_title(dialog, title);
-
- dlg_attrset(dialog, dialog_attr);
- dlg_print_autowrap(dialog, prompt, height, width);
-
- all.menu_width = width - 6;
- getyx(dialog, cur_y, cur_x);
- all.box_y = cur_y + 1;
- all.box_x = (width - all.menu_width) / 2 - 1;
-
- /*
- * After displaying the prompt, we know how much space we really have.
- * Limit the list to avoid overwriting the ok-button.
- */
- if (all.menu_height + MIN_HIGH > height - cur_y)
- all.menu_height = height - MIN_HIGH - cur_y;
- if (all.menu_height <= 0)
- all.menu_height = 1;
-
- /* Find out maximal number of displayable items at once. */
- max_choice = MIN(all.menu_height,
- RowHeight(item_no));
- if (is_inputmenu)
- max_choice /= INPUT_ROWS;
-
- /* create new window for the menu */
- menu = dlg_sub_window(dialog, all.menu_height, all.menu_width,
- y + all.box_y + 1,
- x + all.box_x + 1);
- all.menu = menu;
-
- dlg_register_window(menu, "menu", binding2);
- dlg_register_buttons(menu, "menu", buttons);
-
- /* draw a box around the menu items */
- dlg_draw_box(dialog,
- all.box_y, all.box_x,
- all.menu_height + 2, all.menu_width + 2,
- menubox_border_attr, menubox_border2_attr);
-
- name_width = 0;
- text_width = 0;
-
- /* Find length of longest item to center menu *
- * only if --menu was given, using --inputmenu *
- * won't be centered. */
- for (i = 0; i < item_no; i++) {
- name_width = MAX(name_width, dlg_count_columns(items[i].name));
- text_width = MAX(text_width, dlg_count_columns(items[i].text));
- }
-
- /* If the name+text is wider than the list is allowed, then truncate
- * one or both of them. If the name is no wider than 30% of the list,
- * leave it intact.
- *
- * FIXME: the gutter width and name/list ratio should be configurable.
- */
- use_width = (all.menu_width - GUTTER);
- if (dialog_vars.no_tags) {
- list_width = MIN(use_width, text_width);
- } else if (dialog_vars.no_items) {
- list_width = MIN(use_width, name_width);
- } else {
- if (text_width >= 0
- && name_width >= 0
- && use_width > 0
- && text_width + name_width > use_width) {
- int need = (int) (0.30 * use_width);
- if (name_width > need) {
- int want = (int) (use_width
- * ((double) name_width)
- / (text_width + name_width));
- name_width = (want > need) ? want : need;
- }
- text_width = use_width - name_width;
- }
- list_width = (text_width + name_width);
- }
-
- all.tag_x = (is_inputmenu
- ? 0
- : (use_width - list_width) / 2);
- all.item_x = ((dialog_vars.no_tags
- ? 0
- : (dialog_vars.no_items
- ? 0
- : (GUTTER + name_width)))
- + all.tag_x);
-
- if (choice - scrollamt >= max_choice) {
- scrollamt = choice - (max_choice - 1);
- choice = max_choice - 1;
- }
-
- print_menu(&all, choice, scrollamt, max_choice, is_inputmenu);
-
- /* register the new window, along with its borders */
- dlg_mouse_mkbigregion(all.box_y + 1, all.box_x,
- all.menu_height + 2, all.menu_width + 2,
- KEY_MAX, 1, 1, 1 /* by lines */ );
-
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width);
-
- dlg_trace_win(dialog);
-
- while (result == DLG_EXIT_UNKNOWN) {
- int key, found;
-
- if (button < 0) /* --visit-items */
- wmove(dialog,
- all.box_y + ItemToRow(choice) + 1,
- all.box_x + all.tag_x + 1);
-
- key = dlg_mouse_wgetch(dialog, &fkey);
- if (dlg_result_key(key, fkey, &result)) {
- if (!dlg_button_key(result, &button, &key, &fkey))
- break;
- }
-
- found = FALSE;
- if (fkey) {
- /*
- * Allow a mouse-click on a box to switch selection to that box.
- * Handling a button click is a little more complicated, since we
- * push a KEY_ENTER back onto the input stream so we'll put the
- * cursor at the right place before handling the "keypress".
- */
- if (key >= DLGK_MOUSE(KEY_MAX)) {
- key -= DLGK_MOUSE(KEY_MAX);
- i = RowToItem(key);
- if (i < max_choice) {
- found = TRUE;
- } else {
- beep();
- continue;
- }
- } else if (is_DLGK_MOUSE(key)
- && dlg_ok_buttoncode(key - M_EVENT) >= 0) {
- button = (key - M_EVENT);
- ungetch('\n');
- continue;
- }
- } else {
- /*
- * Check if key pressed matches first character of any item tag in
- * list. If there is more than one match, we will cycle through
- * each one as the same key is pressed repeatedly.
- */
- if (button < 0 || !dialog_state.visit_items) {
- for (j = scrollamt + choice + 1; j < item_no; j++) {
- if (check_hotkey(items, j)) {
- found = TRUE;
- i = j - scrollamt;
- break;
- }
- }
- if (!found) {
- for (j = 0; j <= scrollamt + choice; j++) {
- if (check_hotkey(items, j)) {
- found = TRUE;
- i = j - scrollamt;
- break;
- }
- }
- }
- if (found)
- dlg_flush_getc();
- } else if ((j = dlg_char_to_button(key, buttons)) >= 0) {
- button = j;
- ungetch('\n');
- continue;
- }
-
- /*
- * A single digit (1-9) positions the selection to that line in the
- * current screen.
- */
- if (!found
- && (key <= '9')
- && (key > '0')
- && (key - '1' < max_choice)) {
- found = TRUE;
- i = key - '1';
- }
- }
-
- if (!found && fkey) {
- found = TRUE;
- switch (key) {
- case DLGK_PAGE_FIRST:
- i = -scrollamt;
- break;
- case DLGK_PAGE_LAST:
- i = item_no - 1 - scrollamt;
- break;
- case DLGK_MOUSE(KEY_PPAGE):
- case DLGK_PAGE_PREV:
- if (choice)
- i = 0;
- else if (scrollamt != 0)
- i = -MIN(scrollamt, max_choice);
- else
- continue;
- break;
- case DLGK_MOUSE(KEY_NPAGE):
- case DLGK_PAGE_NEXT:
- i = MIN(choice + max_choice, item_no - scrollamt - 1);
- break;
- case DLGK_ITEM_PREV:
- i = choice - 1;
- if (choice == 0 && scrollamt == 0)
- continue;
- break;
- case DLGK_ITEM_NEXT:
- i = choice + 1;
- if (scrollamt + choice >= item_no - 1)
- continue;
- break;
- default:
- found = FALSE;
- break;
- }
- }
-
- if (found) {
- if (i != choice) {
- getyx(dialog, cur_y, cur_x);
- if (i < 0 || i >= max_choice) {
- if (i < 0) {
- scrollamt += i;
- choice = 0;
- } else {
- choice = max_choice - 1;
- scrollamt += (i - max_choice + 1);
- }
- print_menu(&all, choice, scrollamt, max_choice, is_inputmenu);
- } else {
- choice = i;
- print_menu(&all, choice, scrollamt, max_choice, is_inputmenu);
- (void) wmove(dialog, cur_y, cur_x);
- wrefresh(dialog);
- }
- }
- continue; /* wait for another key press */
- }
-
- if (fkey) {
- switch (key) {
- case DLGK_FIELD_PREV:
- button = dlg_prev_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- break;
-
- case DLGK_FIELD_NEXT:
- button = dlg_next_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- break;
-
- case DLGK_TOGGLE:
- case DLGK_ENTER:
- case DLGK_LEAVE:
- result = ((key == DLGK_LEAVE)
- ? dlg_ok_buttoncode(button)
- : dlg_enter_buttoncode(button));
-
- /*
- * If dlg_menu() is called from dialog_menu(), we want to
- * capture the results into dialog_vars.input_result.
- */
- if (result == DLG_EXIT_ERROR) {
- result = DLG_EXIT_UNKNOWN;
- } else if (is_inputmenu
- || rename_menutext == dlg_dummy_menutext) {
- result = handle_button(result,
- items,
- scrollamt + choice);
- }
-
- /*
- * If we have a rename_menutext function, interpret the Extra
- * button as a request to rename the menu's text. If that
- * function doesn't return "Unknown", we will exit from this
- * function. Usually that is done for dialog_menu(), so the
- * shell script can use the updated value. If it does return
- * "Unknown", update the list item only. A direct caller of
- * dlg_menu() can free the renamed value - we cannot.
- */
- if (is_inputmenu && result == DLG_EXIT_EXTRA) {
- char *tmp;
-
- if (input_menu_edit(&all,
- &items[scrollamt + choice],
- choice,
- &tmp)) {
- result = rename_menutext(items, scrollamt + choice, tmp);
- if (result == DLG_EXIT_UNKNOWN) {
- items[scrollamt + choice].text = tmp;
- } else {
- free(tmp);
- }
- } else {
- result = DLG_EXIT_UNKNOWN;
- print_item(&all,
- menu,
- &items[scrollamt + choice],
- choice,
- Selected,
- is_inputmenu);
- (void) wnoutrefresh(menu);
- free(tmp);
- }
-
- if (result == DLG_EXIT_UNKNOWN) {
- dlg_draw_buttons(dialog, height - 2, 0,
- buttons, button, FALSE, width);
- }
- }
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
- dlg_will_resize(dialog);
- /* reset data */
- resizeit(height, LINES);
- resizeit(width, COLS);
- free(prompt);
- _dlg_resize_cleanup(dialog);
- /* repaint */
- goto retry;
-#endif
- default:
- flash();
- break;
- }
- }
- }
-
- dlg_mouse_free_regions();
- dlg_unregister_window(menu);
- dlg_del_window(dialog);
- free(prompt);
-
- *current_item = scrollamt + choice;
-
- DLG_TRACE2N("current", *current_item);
- return result;
-}
-
-/*
- * Display a menu for choosing among a number of options
- */
-int
-dialog_menu(const char *title,
- const char *cprompt,
- int height,
- int width,
- int menu_height,
- int item_no,
- char **items)
-{
- int result;
- int choice;
- int i, j;
- DIALOG_LISTITEM *listitems;
-
- listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1);
- assert_ptr(listitems, "dialog_menu");
-
- for (i = j = 0; i < item_no; ++i) {
- listitems[i].name = items[j++];
- listitems[i].text = (dialog_vars.no_items
- ? dlg_strempty()
- : items[j++]);
- listitems[i].help = ((dialog_vars.item_help)
- ? items[j++]
- : dlg_strempty());
- }
- dlg_align_columns(&listitems[0].text, sizeof(DIALOG_LISTITEM), item_no);
-
- result = dlg_menu(title,
- cprompt,
- height,
- width,
- menu_height,
- item_no,
- listitems,
- &choice,
- (dialog_vars.input_menu
- ? dlg_renamed_menutext
- : dlg_dummy_menutext));
-
- dlg_free_columns(&listitems[0].text, sizeof(DIALOG_LISTITEM), item_no);
- free(listitems);
- return result;
-}
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/dialog-config.in
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/dialog-config.in (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/dialog-config.in (nonexistent)
@@ -1,265 +0,0 @@
-#!@SHELL@
-# $Id: dialog-config.in,v 1.14 2021/03/05 23:48:36 tom Exp $
-##############################################################################
-# Copyright (c) 2007-2019,2021 Thomas E. Dickey #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-
-prefix="@prefix@"
-exec_prefix="@exec_prefix@"
-datarootdir="@datarootdir@"
-
-same_prefix=yes
-same_exec_prefix=yes
-
-THIS="@PACKAGE@"
-
-test $# = 0 && exec @SHELL@ "$0" --error
-
-while test $# -gt 0; do
-
- # (re)evaluate symbols that may depend upon $prefix
- if [ "x$same_prefix" != "xyes" ]
- then
- eval exec_prefix='@exec_prefix@'
- eval datarootdir='@datarootdir@'
- elif [ "x$same_exec_prefix" != "xyes" ]
- then
- eval datarootdir='@datarootdir@'
- fi
-
- eval bindir='"@bindir@"'
- eval includedir='"@includedir@"'
- eval libdir='"@libdir@"'
- eval datadir='"@datadir@"'
- eval mandir='"@mandir@"'
-
- [ -z "$includedir" ] && includedir="${prefix}/include"
-
- eval LDFLAGS='"@LDFLAGS@"'
- eval LIBS='"@LIBS@"'
- LIBS="-l${THIS} $LIBS"
-
- # If the directory given by --libdir is not in the LDFLAGS+LIBS set,
- # prepend it to LDFLAGS to help link this application's library.
- found=no
- for opt in $LDFLAGS $LIBS
- do
- if [ "x$-L${libdir}" = "x$opt" ]
- then
- found=yes
- break
- fi
- done
- if [ $found = no ]
- then
- [ -n "$LFLAGS" ] && LDFLAGS=" $LFDLAGS"
- LDFLAGS="-L${libdir}$LDFLAGS"
- fi
- [ -z "$LDFLAGS" ] && LDFLAGS="-L${libdir}"
-
- # Ignore -L options which do not correspond to an actual directory,
- # or which are standard library directories (i.e., the linker is
- # supposed to search those directories).
- #
- # There is no portable way to find the list of standard library
- # directories. Require a POSIX shell anyway, to keep this simple.
- lib_flags=
- for opt in $LDFLAGS $LIBS
- do
- case $opt in
- -L*)
- opt_lib=`echo "x$opt" | sed -e 's/^x-L//'`
- [ -d "$opt_lib" ] || continue
- case "$opt_lib" in
- @LD_SEARCHPATH@) # skip standard libdir
- continue
- ;;
- *)
- ;;
- esac
- ;;
- esac
- lib_flags="$lib_flags $opt"
- done
-
- case "$1" in
- -*=*)
- ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
- ;;
- *)
- ARG=
- ;;
- esac
-
- case "$1" in
- # basic configuration
- --prefix=*)
- prefix="$ARG"
- test -z "$exec_prefix" && exec_prefix="$ARG"
- same_prefix=no
- ;;
- --prefix)
- echo "$prefix"
- ;;
- --exec-prefix=*)
- exec_prefix="$ARG"
- same_exec_prefix=no
- ;;
- --exec-prefix)
- echo "$exec_prefix"
- ;;
- # compile/link
- --cflags|--cflags-only-I)
- INCS="-I$includedir"
- sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
- $INCS
-ENDECHO
- ;;
- --cflags-only-other)
- # no -D/-U options should be needed
- echo
- ;;
- --ldflags)
- OPTS=
- for opt in $LDFLAGS $LIBS
- do
- case "x$opt" in
- x-[^l]*)
- OPTS="$OPTS $opt"
- ;;
- esac
- done
- printf "%s\n" "$OPTS"
- ;;
- --libs)
- OPTS=
- for opt in $lib_flags
- do
- [ -n "$OPTS" ] && OPTS="$OPTS "
- OPTS="${OPTS}${opt}"
- done
- printf "%s\n" "$OPTS"
- ;;
- --libs-only-L)
- OPTS=
- for opt in $lib_flags
- do
- case "x$opt" in
- x-L*)
- [ -n "$OPTS" ] && OPTS="$OPTS "
- OPTS="${OPTS}${opt}"
- ;;
- esac
- done
- printf "%s\n" "$OPTS"
- ;;
- --libs-only-l)
- OPTS=
- for opt in $lib_flags
- do
- case "x$opt" in
- x-l*)
- [ -n "$OPTS" ] && OPTS="$OPTS "
- OPTS="${OPTS}${opt}"
- ;;
- esac
- done
- printf "%s\n" "$OPTS"
- ;;
- --libs-only-other)
- OPTS=
- for opt in $lib_flags
- do
- case "x$opt" in
- x-[lL]*)
- ;;
- *)
- [ -n "$OPTS" ] && OPTS="$OPTS "
- OPTS="${OPTS}${opt}"
- ;;
- esac
- done
- printf "%s\n" "$OPTS"
- ;;
- # identification
- --version)
- echo "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@"
- ;;
- --abi-version)
- echo "@VERSION@" | sed -e 's/:/./g'
- ;;
- # locations
- --bindir)
- echo "${bindir}"
- ;;
- --datadir)
- echo "${datadir}"
- ;;
- --libdir)
- echo "${libdir}"
- ;;
- --mandir)
- echo "${mandir}"
- ;;
- # general info
- --help)
- cat <<ENDHELP
-Usage: ${THIS}-config [options]
-
-Options:
- --prefix echos the package-prefix of ${THIS}
- --prefix=ARG sets the package-prefix of ${THIS}
- --exec-prefix echos the executable-prefix of ${THIS}
- --exec-prefix=ARG sets the executable-prefix of ${THIS}
-
- --cflags echos the C compiler flags needed to compile with ${THIS}
- --ldflags echos the linker flags needed to link with ${THIS}
-
- --libs echos the libraries needed to link with ${THIS}
- --libs-only-L echos -L linker options (search path) for ${THIS}
- --libs-only-l echos -l linker options (libraries) for ${THIS}
- --libs-only-other echos linker options other than -L/-l
-
- --version echos the release+patchdate version of ${THIS}
- --abi-version echos the ABI version of ${THIS}
-
- --bindir echos the directory containing ${THIS} programs
- --datadir echos the directory containing ${THIS} data
- --libdir echos the directory containing ${THIS} libraries
- --mandir echos the directory containing ${THIS} manual pages
-
- --help prints this message
-ENDHELP
- ;;
- --error|*)
- @SHELL@ "$0" --help 1>&2
- exit 1
- ;;
- esac
- shift
-done
-# vile:shmode
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/checklist.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/checklist.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/checklist.c (nonexistent)
@@ -1,703 +0,0 @@
-/*
- * $Id: checklist.c,v 1.167 2020/11/23 00:37:47 tom Exp $
- *
- * checklist.c -- implements the checklist box
- *
- * Copyright 2000-2019,2020 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License, version 2.1
- * as published by the Free Software Foundation.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- *
- * An earlier version of this program lists as authors:
- * Savio Lam (lam836@cs.cuhk.hk)
- * Stuart Herbert - S.Herbert@sheffield.ac.uk: radiolist extension
- * Alessandro Rubini - rubini@ipvvis.unipv.it: merged the two
- */
-
-#include <dialog.h>
-#include <dlg_keys.h>
-
-#define MIN_HIGH 4
-
-typedef struct {
- /* the outer-window */
- WINDOW *dialog;
- int box_y;
- int box_x;
- int check_x;
- int item_x;
- int checkflag;
- int use_height;
- int use_width;
- /* the inner-window */
- WINDOW *list;
- DIALOG_LISTITEM *items;
- int item_no;
- const char *states;
-} ALL_DATA;
-
-/*
- * Print list item. The 'selected' parameter is true if 'choice' is the
- * current item. That one is colored differently from the other items.
- */
-static void
-print_item(ALL_DATA * data,
- WINDOW *win,
- DIALOG_LISTITEM * item,
- const char *states,
- int choice,
- int selected)
-{
- chtype save = dlg_get_attrs(win);
- int i;
- bool both = (!dialog_vars.no_tags && !dialog_vars.no_items);
- bool first = TRUE;
- int climit = (getmaxx(win) - data->check_x + 1);
- const char *show = (dialog_vars.no_items
- ? item->name
- : item->text);
-
- /* Clear 'residue' of last item */
- dlg_attrset(win, menubox_attr);
- (void) wmove(win, choice, 0);
- for (i = 0; i < data->use_width; i++)
- (void) waddch(win, ' ');
-
- (void) wmove(win, choice, data->check_x);
- dlg_attrset(win, selected ? check_selected_attr : check_attr);
- (void) wprintw(win,
- (data->checkflag == FLAG_CHECK) ? "[%c]" : "(%c)",
- states[item->state]);
- dlg_attrset(win, menubox_attr);
- (void) waddch(win, ' ');
-
- if (both) {
- dlg_print_listitem(win, item->name, climit, first, selected);
- first = FALSE;
- }
-
- (void) wmove(win, choice, data->item_x);
- dlg_print_listitem(win, show, climit, first, selected);
-
- if (selected) {
- dlg_item_help(item->help);
- }
- dlg_attrset(win, save);
-}
-
-static void
-print_list(ALL_DATA * data, int choice, int scrollamt, int max_choice)
-{
- int i;
- int cur_y, cur_x;
-
- getyx(data->dialog, cur_y, cur_x);
- for (i = 0; i < max_choice; i++) {
- print_item(data,
- data->list,
- &data->items[i + scrollamt],
- data->states,
- i, i == choice);
- }
- (void) wnoutrefresh(data->list);
-
- dlg_draw_scrollbar(data->dialog,
- (long) (scrollamt),
- (long) (scrollamt),
- (long) (scrollamt + max_choice),
- (long) (data->item_no),
- data->box_x + data->check_x,
- data->box_x + data->use_width,
- data->box_y,
- data->box_y + data->use_height + 1,
- menubox_border2_attr,
- menubox_border_attr);
-
- (void) wmove(data->dialog, cur_y, cur_x);
-}
-
-static bool
-check_hotkey(DIALOG_LISTITEM * items, int choice)
-{
- bool result = FALSE;
-
- if (dlg_match_char(dlg_last_getc(),
- (dialog_vars.no_tags
- ? items[choice].text
- : items[choice].name))) {
- result = TRUE;
- }
- return result;
-}
-
-/*
- * This is an alternate interface to 'checklist' which allows the application
- * to read the list item states back directly without putting them in the
- * output buffer. It also provides for more than two states over which the
- * check/radio box can display.
- */
-int
-dlg_checklist(const char *title,
- const char *cprompt,
- int height,
- int width,
- int list_height,
- int item_no,
- DIALOG_LISTITEM * items,
- const char *states,
- int flag,
- int *current_item)
-{
- /* *INDENT-OFF* */
- static DLG_KEYS_BINDING binding[] = {
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ),
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ),
- DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME ),
- DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END ),
- DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ),
- TOGGLEKEY_BINDINGS,
- END_KEYS_BINDING
- };
- /* *INDENT-ON* */
-
-#ifdef KEY_RESIZE
- int old_height = height;
- int old_width = width;
-#endif
- ALL_DATA all;
- int i, j, key2, found, x, y, cur_x, cur_y;
- int key, fkey;
- int button = dialog_state.visit_items ? -1 : dlg_default_button();
- int choice = dlg_default_listitem(items);
- int scrollamt = 0;
- int max_choice;
- int use_width, list_width, name_width, text_width;
- int result = DLG_EXIT_UNKNOWN;
- int num_states;
- WINDOW *dialog;
- char *prompt;
- const char **buttons = dlg_ok_labels();
- const char *widget_name;
-
- DLG_TRACE(("# %s args:\n", flag ? "checklist" : "radiolist"));
- DLG_TRACE2S("title", title);
- DLG_TRACE2S("message", cprompt);
- DLG_TRACE2N("height", height);
- DLG_TRACE2N("width", width);
- DLG_TRACE2N("lheight", list_height);
- DLG_TRACE2N("llength", item_no);
- /* FIXME dump the items[][] too */
- DLG_TRACE2S("states", states);
- DLG_TRACE2N("flag", flag);
- DLG_TRACE2N("current", *current_item);
-
- dialog_state.plain_buttons = TRUE;
-
- memset(&all, 0, sizeof(all));
- all.items = items;
- all.item_no = item_no;
-
- dlg_does_output();
-
- /*
- * If this is a radiobutton list, ensure that no more than one item is
- * selected initially. Allow none to be selected, since some users may
- * wish to provide this flavor.
- */
- if (flag == FLAG_RADIO) {
- bool first = TRUE;
-
- for (i = 0; i < item_no; i++) {
- if (items[i].state) {
- if (first) {
- first = FALSE;
- } else {
- items[i].state = 0;
- }
- }
- }
- widget_name = "radiolist";
- } else {
- widget_name = "checklist";
- }
-#ifdef KEY_RESIZE
- retry:
-#endif
-
- prompt = dlg_strclone(cprompt);
- dlg_tab_correct_str(prompt);
-
- all.use_height = list_height;
- use_width = dlg_calc_list_width(item_no, items) + 10;
- use_width = MAX(26, use_width);
- if (all.use_height == 0) {
- /* calculate height without items (4) */
- dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width);
- dlg_calc_listh(&height, &all.use_height, item_no);
- } else {
- dlg_auto_size(title, prompt,
- &height, &width,
- MIN_HIGH + all.use_height, use_width);
- }
- dlg_button_layout(buttons, &width);
- dlg_print_size(height, width);
- dlg_ctl_size(height, width);
-
- /* we need at least two states */
- if (states == 0 || strlen(states) < 2)
- states = " *";
- num_states = (int) strlen(states);
- all.states = states;
-
- all.checkflag = flag;
-
- x = dlg_box_x_ordinate(width);
- y = dlg_box_y_ordinate(height);
-
- dialog = dlg_new_window(height, width, y, x);
- all.dialog = dialog;
- dlg_register_window(dialog, widget_name, binding);
- dlg_register_buttons(dialog, widget_name, buttons);
-
- dlg_mouse_setbase(x, y);
-
- dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr);
- dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr);
- dlg_draw_title(dialog, title);
-
- dlg_attrset(dialog, dialog_attr);
- dlg_print_autowrap(dialog, prompt, height, width);
-
- all.use_width = width - 6;
- getyx(dialog, cur_y, cur_x);
- all.box_y = cur_y + 1;
- all.box_x = (width - all.use_width) / 2 - 1;
-
- /*
- * After displaying the prompt, we know how much space we really have.
- * Limit the list to avoid overwriting the ok-button.
- */
- if (all.use_height + MIN_HIGH > height - cur_y)
- all.use_height = height - MIN_HIGH - cur_y;
- if (all.use_height <= 0)
- all.use_height = 1;
-
- max_choice = MIN(all.use_height, item_no);
- max_choice = MAX(max_choice, 1);
-
- /* create new window for the list */
- all.list = dlg_sub_window(dialog, all.use_height, all.use_width,
- y + all.box_y + 1, x + all.box_x + 1);
-
- /* draw a box around the list items */
- dlg_draw_box(dialog, all.box_y, all.box_x,
- all.use_height + 2 * MARGIN,
- all.use_width + 2 * MARGIN,
- menubox_border_attr, menubox_border2_attr);
-
- text_width = 0;
- name_width = 0;
- /* Find length of longest item to center checklist */
- for (i = 0; i < item_no; i++) {
- text_width = MAX(text_width, dlg_count_columns(items[i].text));
- name_width = MAX(name_width, dlg_count_columns(items[i].name));
- }
-
- /* If the name+text is wider than the list is allowed, then truncate
- * one or both of them. If the name is no wider than 1/4 of the list,
- * leave it intact.
- */
- use_width = (all.use_width - 6);
- if (dialog_vars.no_tags) {
- list_width = MIN(all.use_width, text_width);
- } else if (dialog_vars.no_items) {
- list_width = MIN(all.use_width, name_width);
- } else {
- if (text_width >= 0
- && name_width >= 0
- && use_width > 0
- && text_width + name_width > use_width) {
- int need = (int) (0.25 * use_width);
- if (name_width > need) {
- int want = (int) (use_width * ((double) name_width) /
- (text_width + name_width));
- name_width = (want > need) ? want : need;
- }
- text_width = use_width - name_width;
- }
- list_width = (text_width + name_width);
- }
-
- all.check_x = (use_width - list_width) / 2;
- all.item_x = ((dialog_vars.no_tags
- ? 0
- : (dialog_vars.no_items
- ? 0
- : (2 + name_width)))
- + all.check_x + 4);
-
- /* ensure we are scrolled to show the current choice */
- scrollamt = MIN(scrollamt, max_choice + item_no - 1);
- if (choice >= (max_choice + scrollamt - 1)) {
- scrollamt = MAX(0, choice - max_choice + 1);
- choice = max_choice - 1;
- }
- print_list(&all, choice, scrollamt, max_choice);
-
- /* register the new window, along with its borders */
- dlg_mouse_mkbigregion(all.box_y + 1, all.box_x,
- all.use_height, all.use_width + 2,
- KEY_MAX, 1, 1, 1 /* by lines */ );
-
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width);
-
- dlg_trace_win(dialog);
-
- while (result == DLG_EXIT_UNKNOWN) {
- int was_mouse;
-
- if (button < 0) /* --visit-items */
- wmove(dialog, all.box_y + choice + 1, all.box_x + all.check_x + 2);
-
- key = dlg_mouse_wgetch(dialog, &fkey);
- if (dlg_result_key(key, fkey, &result)) {
- if (!dlg_button_key(result, &button, &key, &fkey))
- break;
- }
-
- was_mouse = (fkey && is_DLGK_MOUSE(key));
- if (was_mouse)
- key -= M_EVENT;
-
- if (was_mouse && (key >= KEY_MAX)) {
- getyx(dialog, cur_y, cur_x);
- i = (key - KEY_MAX);
- if (i < max_choice) {
- choice = (key - KEY_MAX);
- print_list(&all, choice, scrollamt, max_choice);
-
- key = DLGK_TOGGLE; /* force the selected item to toggle */
- } else {
- beep();
- continue;
- }
- fkey = FALSE;
- } else if (was_mouse && key >= KEY_MIN) {
- key = dlg_lookup_key(dialog, key, &fkey);
- }
-
- /*
- * A space toggles the item status. We handle either a checklist
- * (any number of items can be selected) or radio list (zero or one
- * items can be selected).
- */
- if (key == DLGK_TOGGLE) {
- int current = scrollamt + choice;
- int next = items[current].state + 1;
-
- if (next >= num_states)
- next = 0;
-
- if (flag == FLAG_CHECK) { /* checklist? */
- getyx(dialog, cur_y, cur_x);
- items[current].state = next;
- print_item(&all, all.list,
- &items[scrollamt + choice],
- states,
- choice, TRUE);
- (void) wnoutrefresh(all.list);
- (void) wmove(dialog, cur_y, cur_x);
- } else { /* radiolist */
- for (i = 0; i < item_no; i++) {
- if (i != current) {
- items[i].state = 0;
- }
- }
- if (items[current].state) {
- getyx(dialog, cur_y, cur_x);
- items[current].state = next ? next : 1;
- print_item(&all, all.list,
- &items[current],
- states,
- choice, TRUE);
- (void) wnoutrefresh(all.list);
- (void) wmove(dialog, cur_y, cur_x);
- } else {
- items[current].state = 1;
- print_list(&all, choice, scrollamt, max_choice);
- }
- }
- continue; /* wait for another key press */
- }
-
- /*
- * Check if key pressed matches first character of any item tag in
- * list. If there is more than one match, we will cycle through
- * each one as the same key is pressed repeatedly.
- */
- found = FALSE;
- if (!fkey) {
- if (button < 0 || !dialog_state.visit_items) {
- for (j = scrollamt + choice + 1; j < item_no; j++) {
- if (check_hotkey(items, j)) {
- found = TRUE;
- i = j - scrollamt;
- break;
- }
- }
- if (!found) {
- for (j = 0; j <= scrollamt + choice; j++) {
- if (check_hotkey(items, j)) {
- found = TRUE;
- i = j - scrollamt;
- break;
- }
- }
- }
- if (found)
- dlg_flush_getc();
- } else if ((j = dlg_char_to_button(key, buttons)) >= 0) {
- button = j;
- ungetch('\n');
- continue;
- }
- }
-
- /*
- * A single digit (1-9) positions the selection to that line in the
- * current screen.
- */
- if (!found
- && (key <= '9')
- && (key > '0')
- && (key - '1' < max_choice)) {
- found = TRUE;
- i = key - '1';
- }
-
- if (!found) {
- if (fkey) {
- found = TRUE;
- switch (key) {
- case DLGK_ITEM_FIRST:
- i = -scrollamt;
- break;
- case DLGK_ITEM_LAST:
- i = item_no - 1 - scrollamt;
- break;
- case DLGK_PAGE_PREV:
- if (choice)
- i = 0;
- else if (scrollamt != 0)
- i = -MIN(scrollamt, max_choice);
- else
- continue;
- break;
- case DLGK_PAGE_NEXT:
- i = MIN(choice + max_choice, item_no - scrollamt - 1);
- break;
- case DLGK_ITEM_PREV:
- i = choice - 1;
- if (choice == 0 && scrollamt == 0)
- continue;
- break;
- case DLGK_ITEM_NEXT:
- i = choice + 1;
- if (scrollamt + choice >= item_no - 1)
- continue;
- break;
- default:
- found = FALSE;
- break;
- }
- }
- }
-
- if (found) {
- if (i != choice) {
- getyx(dialog, cur_y, cur_x);
- if (i < 0 || i >= max_choice) {
- if (i < 0) {
- scrollamt += i;
- choice = 0;
- } else {
- choice = max_choice - 1;
- scrollamt += (i - max_choice + 1);
- }
- print_list(&all, choice, scrollamt, max_choice);
- } else {
- choice = i;
- print_list(&all, choice, scrollamt, max_choice);
- }
- }
- continue; /* wait for another key press */
- }
-
- if (fkey) {
- switch (key) {
- case DLGK_ENTER:
- result = dlg_enter_buttoncode(button);
- break;
- case DLGK_LEAVE:
- result = dlg_ok_buttoncode(button);
- break;
- case DLGK_FIELD_PREV:
- button = dlg_prev_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- break;
- case DLGK_FIELD_NEXT:
- button = dlg_next_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
- dlg_will_resize(dialog);
- /* reset data */
- height = old_height;
- width = old_width;
- free(prompt);
- _dlg_resize_cleanup(dialog);
- /* repaint */
- goto retry;
-#endif
- default:
- if (was_mouse) {
- if ((key2 = dlg_ok_buttoncode(key)) >= 0) {
- result = key2;
- break;
- }
- beep();
- }
- }
- } else if (key > 0) {
- beep();
- }
- }
-
- dlg_del_window(dialog);
- dlg_mouse_free_regions();
- free(prompt);
- *current_item = (scrollamt + choice);
- return result;
-}
-
-/*
- * Display a dialog box with a list of options that can be turned on or off
- * The `flag' parameter is used to select between radiolist and checklist.
- */
-int
-dialog_checklist(const char *title,
- const char *cprompt,
- int height,
- int width,
- int list_height,
- int item_no,
- char **items,
- int flag)
-{
- int result;
- int i, j;
- DIALOG_LISTITEM *listitems;
- bool separate_output = ((flag == FLAG_CHECK)
- && (dialog_vars.separate_output));
- bool show_status = FALSE;
- int current = 0;
- char *help_result;
-
- listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1);
- assert_ptr(listitems, "dialog_checklist");
-
- for (i = j = 0; i < item_no; ++i) {
- listitems[i].name = items[j++];
- listitems[i].text = (dialog_vars.no_items
- ? dlg_strempty()
- : items[j++]);
- listitems[i].state = !dlg_strcmp(items[j++], "on");
- listitems[i].help = ((dialog_vars.item_help)
- ? items[j++]
- : dlg_strempty());
- }
- dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
-
- result = dlg_checklist(title,
- cprompt,
- height,
- width,
- list_height,
- item_no,
- listitems,
- NULL,
- flag,
- ¤t);
-
- switch (result) {
- case DLG_EXIT_OK: /* FALLTHRU */
- case DLG_EXIT_EXTRA:
- show_status = TRUE;
- break;
- case DLG_EXIT_HELP:
- dlg_add_help_listitem(&result, &help_result, &listitems[current]);
- if ((show_status = dialog_vars.help_status)) {
- if (separate_output) {
- dlg_add_string(help_result);
- dlg_add_separator();
- } else {
- dlg_add_quoted(help_result);
- }
- } else {
- dlg_add_string(help_result);
- }
- break;
- }
-
- if (show_status) {
- for (i = 0; i < item_no; i++) {
- if (listitems[i].state) {
- if (separate_output) {
- dlg_add_string(listitems[i].name);
- dlg_add_separator();
- } else {
- if (dlg_need_separator())
- dlg_add_separator();
- if (flag == FLAG_CHECK)
- dlg_add_quoted(listitems[i].name);
- else
- dlg_add_string(listitems[i].name);
- }
- }
- }
- dlg_add_last_key(separate_output);
- }
-
- dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
- free(listitems);
- return result;
-}
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/fselect.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/fselect.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/fselect.c (nonexistent)
@@ -1,971 +0,0 @@
-/*
- * $Id: fselect.c,v 1.117 2021/06/21 19:50:35 tom Exp $
- *
- * fselect.c -- implements the file-selector box
- *
- * Copyright 2000-2020,2021 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License, version 2.1
- * as published by the Free Software Foundation.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- */
-
-#include <dlg_internals.h>
-#include <dlg_keys.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-# if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64)
-# if !defined(_LP64) && (_FILE_OFFSET_BITS == 64)
-# define DIRENT struct dirent64
-# else
-# define DIRENT struct dirent
-# endif
-# else
-# define DIRENT struct dirent
-# endif
-
-#define EXT_WIDE 1
-#define HDR_HIGH 1
-#define BTN_HIGH (1 + 2 * MARGIN) /* Ok/Cancel, also input-box */
-#define MIN_HIGH (HDR_HIGH - MARGIN + (BTN_HIGH * 2) + 4 * MARGIN)
-#define MIN_WIDE (2 * MAX(dlg_count_columns(d_label), dlg_count_columns(f_label)) + 6 * MARGIN + 2 * EXT_WIDE)
-
-#define MOUSE_D (KEY_MAX + 0)
-#define MOUSE_F (KEY_MAX + 10000)
-#define MOUSE_T (KEY_MAX + 20000)
-
-typedef enum {
- sDIRS = -3
- ,sFILES = -2
- ,sTEXT = -1
-} STATES;
-
-typedef struct {
- WINDOW *par; /* parent window */
- WINDOW *win; /* this window */
- int length; /* length of the data[] array */
- int offset; /* index of first item on screen */
- int choice; /* index of the selection */
- int mousex; /* base of mouse-code return-values */
- unsigned allocd;
- char **data;
-} LIST;
-
-typedef struct {
- int length;
- char **data;
-} MATCH;
-
-static void
-init_list(LIST * list, WINDOW *par, WINDOW *win, int mousex)
-{
- list->par = par;
- list->win = win;
- list->length = 0;
- list->offset = 0;
- list->choice = 0;
- list->mousex = mousex;
- list->allocd = 0;
- list->data = 0;
- dlg_mouse_mkbigregion(getbegy(win), getbegx(win),
- getmaxy(win), getmaxx(win),
- mousex, 1, 1, 1 /* by lines */ );
-}
-
-static char *
-leaf_of(char *path)
-{
- char *leaf = strrchr(path, '/');
- if (leaf != 0)
- leaf++;
- else
- leaf = path;
- return leaf;
-}
-
-static char *
-data_of(LIST * list)
-{
- if (list != 0
- && list->data != 0)
- return list->data[list->choice];
- return 0;
-}
-
-static void
-free_list(LIST * list, int reinit)
-{
- if (list->data != 0) {
- int n;
-
- for (n = 0; list->data[n] != 0; n++)
- free(list->data[n]);
- free(list->data);
- list->data = 0;
- }
- if (reinit)
- init_list(list, list->par, list->win, list->mousex);
-}
-
-static void
-add_to_list(LIST * list, char *text)
-{
- unsigned need;
-
- need = (unsigned) (list->length + 1);
- if (need + 1 > list->allocd) {
- list->allocd = 2 * (need + 1);
- if (list->data == 0) {
- list->data = dlg_malloc(char *, list->allocd);
- } else {
- list->data = dlg_realloc(char *, list->allocd, list->data);
- }
- assert_ptr(list->data, "add_to_list");
- }
- list->data[list->length++] = dlg_strclone(text);
- list->data[list->length] = 0;
-}
-
-static void
-keep_visible(LIST * list)
-{
- int high = getmaxy(list->win);
-
- if (list->choice < list->offset) {
- list->offset = list->choice;
- }
- if (list->choice - list->offset >= high)
- list->offset = list->choice - high + 1;
-}
-
-#define Value(c) (int)((c) & 0xff)
-
-static int
-find_choice(char *target, LIST * list)
-{
- int choice = list->choice;
-
- if (*target == 0) {
- list->choice = 0;
- } else {
- int n;
- int len_1, cmp_1;
-
- /* find the match with the longest length. If more than one has the
- * same length, choose the one with the closest match of the final
- * character.
- */
- len_1 = 0;
- cmp_1 = 256;
- for (n = 0; n < list->length; n++) {
- char *a = target;
- char *b = list->data[n];
- int len_2, cmp_2;
-
- len_2 = 0;
- while ((*a != 0) && (*b != 0) && (*a == *b)) {
- a++;
- b++;
- len_2++;
- }
- cmp_2 = Value(*a) - Value(*b);
- if (cmp_2 < 0)
- cmp_2 = -cmp_2;
- if ((len_2 > len_1)
- || (len_1 == len_2 && cmp_2 < cmp_1)) {
- len_1 = len_2;
- cmp_1 = cmp_2;
- list->choice = n;
- }
- }
- }
- if (choice != list->choice) {
- keep_visible(list);
- }
- return (choice != list->choice);
-}
-
-static void
-display_list(LIST * list)
-{
- if (list->win != 0) {
- int n;
- int x;
- int y;
- int top;
- int bottom;
-
- dlg_attr_clear(list->win, getmaxy(list->win), getmaxx(list->win), item_attr);
- for (n = list->offset; n < list->length && list->data[n]; n++) {
- y = n - list->offset;
- if (y >= getmaxy(list->win))
- break;
- (void) wmove(list->win, y, 0);
- if (n == list->choice)
- dlg_attrset(list->win, item_selected_attr);
- (void) waddstr(list->win, list->data[n]);
- dlg_attrset(list->win, item_attr);
- }
- dlg_attrset(list->win, item_attr);
-
- getparyx(list->win, y, x);
-
- top = y - 1;
- bottom = y + getmaxy(list->win);
- dlg_draw_scrollbar(list->par,
- (long) list->offset,
- (long) list->offset,
- (long) (list->offset + getmaxy(list->win)),
- (long) (list->length),
- x + 1,
- x + getmaxx(list->win),
- top,
- bottom,
- menubox_border2_attr,
- menubox_border_attr);
-
- (void) wmove(list->win, list->choice - list->offset, 0);
- (void) wnoutrefresh(list->win);
- }
-}
-
-/* FIXME: see arrows.c
- * This workaround is used to allow two lists to have scroll-tabs at the same
- * time, by reassigning their return-values to be different. Just for
- * readability, we use the names of keys with similar connotations, though all
- * that is really required is that they're distinct, so we can put them in a
- * switch statement.
- */
-#if USE_MOUSE
-static void
-fix_arrows(LIST * list)
-{
- if (list->win != 0) {
- int x;
- int y;
- int top;
- int right;
- int bottom;
-
- getparyx(list->win, y, x);
- top = y - 1;
- right = getmaxx(list->win);
- bottom = y + getmaxy(list->win);
-
- mouse_mkbutton(top, x, right,
- ((list->mousex == MOUSE_D)
- ? KEY_PREVIOUS
- : KEY_PPAGE));
- mouse_mkbutton(bottom, x, right,
- ((list->mousex == MOUSE_D)
- ? KEY_NEXT
- : KEY_NPAGE));
- }
-}
-
-#else
-#define fix_arrows(list) /* nothing */
-#endif
-
-static bool
-show_list(char *target, LIST * list, bool keep)
-{
- bool changed = keep || find_choice(target, list);
- display_list(list);
- return changed;
-}
-
-/*
- * Highlight the closest match to 'target' in the given list, setting offset
- * to match.
- */
-static bool
-show_both_lists(char *input, LIST * d_list, LIST * f_list, bool keep)
-{
- char *leaf = leaf_of(input);
-
- return show_list(leaf, d_list, keep) || show_list(leaf, f_list, keep);
-}
-
-/*
- * Move up/down in the given list
- */
-static bool
-change_list(int choice, LIST * list)
-{
- if (data_of(list) != 0) {
- int last = list->length - 1;
-
- choice += list->choice;
- if (choice < 0)
- choice = 0;
- if (choice > last)
- choice = last;
- list->choice = choice;
- keep_visible(list);
- display_list(list);
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-scroll_list(int direction, LIST * list)
-{
- if (data_of(list) != 0) {
- int length = getmaxy(list->win);
- if (change_list(direction * length, list))
- return;
- }
- beep();
-}
-
-static int
-compar(const void *a, const void *b)
-{
- return strcmp(*(const char *const *) a, *(const char *const *) b);
-}
-
-static void
-match(char *name, LIST * d_list, LIST * f_list, MATCH * match_list)
-{
- char *test = leaf_of(name);
- size_t test_len = strlen(test);
- char **matches = dlg_malloc(char *, (size_t) (d_list->length + f_list->length));
- size_t data_len = 0;
-
- if (matches != 0) {
- int i;
- char **new_ptr;
-
- for (i = 2; i < d_list->length; i++) {
- if (strncmp(test, d_list->data[i], test_len) == 0) {
- matches[data_len++] = d_list->data[i];
- }
- }
- for (i = 0; i < f_list->length; i++) {
- if (strncmp(test, f_list->data[i], test_len) == 0) {
- matches[data_len++] = f_list->data[i];
- }
- }
- if ((new_ptr = dlg_realloc(char *, data_len + 1, matches)) != 0) {
- matches = new_ptr;
- } else {
- free(matches);
- matches = 0;
- data_len = 0;
- }
- }
- match_list->data = matches;
- match_list->length = (int) data_len;
-}
-
-static void
-free_match(MATCH * match_list)
-{
- free(match_list->data);
- match_list->length = 0;
-}
-
-static int
-complete(char *name, LIST * d_list, LIST * f_list, char **buff_ptr)
-{
- MATCH match_list;
- char *test;
- size_t test_len;
- size_t i;
- char *buff;
-
- match(name, d_list, f_list, &match_list);
- if (match_list.length == 0) {
- free(match_list.data);
- *buff_ptr = NULL;
- return 0;
- }
-
- test = match_list.data[0];
- test_len = strlen(test);
- buff = dlg_malloc(char, test_len + 2);
- if (match_list.length == 1) {
- strcpy(buff, test);
- i = test_len;
- if (test == data_of(d_list)) {
- buff[test_len] = '/';
- i++;
- }
- } else {
- int j;
- char *next;
-
- for (i = 0; i < test_len; i++) {
- char test_char = test[i];
- if (test_char == '\0')
- break;
- for (j = 0; j < match_list.length; j++) {
- if (match_list.data[j][i] != test_char) {
- break;
- }
- }
- if (j == match_list.length) {
- (buff)[i] = test_char;
- } else
- break;
- }
- next = dlg_realloc(char, i + 1, buff);
- if (next == NULL) {
- free(buff);
- *buff_ptr = NULL;
- return 0;
- }
- buff = next;
- }
- free_match(&match_list);
- buff[i] = '\0';
- *buff_ptr = buff;
- return (i != 0);
-}
-
-static bool
-fill_lists(char *current, char *input, LIST * d_list, LIST * f_list, bool keep)
-{
- bool result = TRUE;
- bool rescan = FALSE;
- struct stat sb;
- int n;
- char path[MAX_LEN + 1];
-
- /* check if we've updated the lists */
- for (n = 0; current[n] && input[n]; n++) {
- if (current[n] != input[n])
- break;
- }
-
- if (current[n] == input[n]) {
- result = FALSE;
- rescan = (n == 0 && d_list->length == 0);
- } else if (strchr(current + n, '/') == 0
- && strchr(input + n, '/') == 0) {
- result = show_both_lists(input, d_list, f_list, keep);
- } else {
- rescan = TRUE;
- }
-
- if (rescan) {
- DIR *dp;
- size_t have = strlen(input);
- char *leaf;
-
- if (have > MAX_LEN)
- have = MAX_LEN;
- memcpy(current, input, have);
- current[have] = '\0';
-
- /* refill the lists */
- free_list(d_list, TRUE);
- free_list(f_list, TRUE);
- memcpy(path, current, have);
- path[have] = '\0';
- if ((leaf = strrchr(path, '/')) != 0) {
- *++leaf = 0;
- } else {
- strcpy(path, "./");
- leaf = path + strlen(path);
- }
- DLG_TRACE(("opendir '%s'\n", path));
- if ((dp = opendir(path)) != 0) {
- DIRENT *de;
-
- while ((de = readdir(dp)) != 0) {
- size_t len = NAMLEN(de);
- if (len == 0 || (len + have + 2) >= MAX_LEN)
- continue;
- memcpy(leaf, de->d_name, len);
- leaf[len] = '\0';
- if (stat(path, &sb) == 0) {
- if ((sb.st_mode & S_IFMT) == S_IFDIR)
- add_to_list(d_list, leaf);
- else if (f_list->win)
- add_to_list(f_list, leaf);
- }
- }
- (void) closedir(dp);
- /* sort the lists */
- if (d_list->data != 0 && d_list->length > 1) {
- qsort(d_list->data,
- (size_t) d_list->length,
- sizeof(d_list->data[0]),
- compar);
- }
- if (f_list->data != 0 && f_list->length > 1) {
- qsort(f_list->data,
- (size_t) f_list->length,
- sizeof(f_list->data[0]),
- compar);
- }
- }
-
- (void) show_both_lists(input, d_list, f_list, FALSE);
- d_list->offset = d_list->choice;
- f_list->offset = f_list->choice;
- result = TRUE;
- }
- return result;
-}
-
-static bool
-usable_state(int state, LIST * dirs, LIST * files)
-{
- bool result;
-
- switch (state) {
- case sDIRS:
- result = (dirs->win != 0) && (data_of(dirs) != 0);
- break;
- case sFILES:
- result = (files->win != 0) && (data_of(files) != 0);
- break;
- default:
- result = TRUE;
- break;
- }
- return result;
-}
-
-#define which_list() ((state == sFILES) \
- ? &f_list \
- : ((state == sDIRS) \
- ? &d_list \
- : 0))
-#define NAVIGATE_BINDINGS \
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), \
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), \
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), \
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), \
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), \
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_NEXT ), \
- DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), \
- DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), \
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), \
- DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE )
-
-/*
- * Display a dialog box for entering a filename
- */
-static int
-dlg_fselect(const char *title, const char *path, int height, int width, int dselect)
-{
- /* *INDENT-OFF* */
- static DLG_KEYS_BINDING binding[] = {
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- NAVIGATE_BINDINGS,
- TOGGLEKEY_BINDINGS,
- END_KEYS_BINDING
- };
- static DLG_KEYS_BINDING binding2[] = {
- INPUTSTR_BINDINGS,
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- NAVIGATE_BINDINGS,
- TOGGLEKEY_BINDINGS,
- END_KEYS_BINDING
- };
- /* *INDENT-ON* */
-
-#ifdef KEY_RESIZE
- int old_height = height;
- int old_width = width;
- bool resized = FALSE;
-#endif
- int tbox_y, tbox_x, tbox_width, tbox_height;
- int dbox_y, dbox_x, dbox_width, dbox_height;
- int fbox_y, fbox_x, fbox_width, fbox_height;
- int show_buttons = TRUE;
- int offset = 0;
- int key = 0;
- int fkey = FALSE;
- int code;
- int result = DLG_EXIT_UNKNOWN;
- int state = dialog_vars.default_button >= 0 ? dlg_default_button() : sTEXT;
- int button;
- bool first = (state == sTEXT);
- bool first_trace = TRUE;
- char *input;
- char *completed;
- char current[MAX_LEN + 1];
- WINDOW *dialog = 0;
- WINDOW *w_text = 0;
- WINDOW *w_work = 0;
- const char **buttons = dlg_ok_labels();
- const char *d_label = _("Directories");
- const char *f_label = _("Files");
- char *partial = 0;
- int min_wide = MIN_WIDE;
- int min_items = height ? 0 : 4;
- LIST d_list, f_list;
-
- DLG_TRACE(("# %s args:\n", dselect ? "dselect" : "fselect"));
- DLG_TRACE2S("title", title);
- DLG_TRACE2S("path", path);
- DLG_TRACE2N("height", height);
- DLG_TRACE2N("width", width);
-
- dlg_does_output();
-
- /* Set up the initial value */
- input = dlg_set_result(path);
- offset = (int) strlen(input);
- *current = 0;
-
- dlg_button_layout(buttons, &min_wide);
-
-#ifdef KEY_RESIZE
- retry:
-#endif
- if (height > 0)
- height += MIN_HIGH;
- dlg_auto_size(title, "", &height, &width, MIN_HIGH + min_items, min_wide);
-
- dlg_print_size(height, width);
- dlg_ctl_size(height, width);
-
- dialog = dlg_new_window(height + 1, width,
- dlg_box_y_ordinate(height),
- dlg_box_x_ordinate(width));
- dlg_register_window(dialog, "fselect", binding);
- dlg_register_buttons(dialog, "fselect", buttons);
-
- dlg_mouse_setbase(0, 0);
-
- dlg_draw_box2(dialog, 0, 0, height + 1, width, dialog_attr, border_attr, border2_attr);
- dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr);
- dlg_draw_title(dialog, title);
-
- dlg_attrset(dialog, dialog_attr);
-
- /* Draw the input field box */
- tbox_height = 1;
- tbox_width = width - (4 * MARGIN + 2);
- tbox_y = height - (BTN_HIGH * 2) + MARGIN + 1;
- tbox_x = (width - tbox_width) / 2;
-
- w_text = dlg_der_window(dialog, tbox_height, tbox_width, tbox_y, tbox_x);
- if (w_text == 0) {
- result = DLG_EXIT_ERROR;
- goto finish;
- }
-
- dlg_draw_box(dialog, tbox_y - MARGIN, tbox_x - MARGIN,
- (2 * MARGIN + 1), tbox_width + (MARGIN + EXT_WIDE),
- menubox_border_attr, menubox_border2_attr);
- dlg_mouse_mkbigregion(getbegy(dialog) + tbox_y - MARGIN,
- getbegx(dialog) + tbox_x - MARGIN,
- 1 + (2 * MARGIN),
- tbox_width + (MARGIN + EXT_WIDE),
- MOUSE_T, 1, 1, 3 /* doesn't matter */ );
-
- dlg_register_window(w_text, "fselect2", binding2);
-
- /* Draw the directory listing box */
- if (dselect)
- dbox_width = (width - (6 * MARGIN));
- else
- dbox_width = (width - (6 * MARGIN + 2 * EXT_WIDE)) / 2;
- dbox_height = height - MIN_HIGH;
- dbox_y = (2 * MARGIN + 2);
- dbox_x = tbox_x;
-
- w_work = dlg_der_window(dialog, dbox_height, dbox_width, dbox_y, dbox_x);
- if (w_work == 0) {
- result = DLG_EXIT_ERROR;
- goto finish;
- }
-
- (void) mvwaddstr(dialog, dbox_y - (MARGIN + 1), dbox_x - MARGIN, d_label);
- dlg_draw_box(dialog,
- dbox_y - MARGIN, dbox_x - MARGIN,
- dbox_height + (MARGIN + 1), dbox_width + (MARGIN + 1),
- menubox_border_attr, menubox_border2_attr);
- init_list(&d_list, dialog, w_work, MOUSE_D);
-
- if (!dselect) {
- /* Draw the filename listing box */
- fbox_height = dbox_height;
- fbox_width = dbox_width;
- fbox_y = dbox_y;
- fbox_x = tbox_x + dbox_width + (2 * MARGIN);
-
- w_work = dlg_der_window(dialog, fbox_height, fbox_width, fbox_y, fbox_x);
- if (w_work == 0) {
- result = DLG_EXIT_ERROR;
- goto finish;
- }
-
- (void) mvwaddstr(dialog, fbox_y - (MARGIN + 1), fbox_x - MARGIN, f_label);
- dlg_draw_box(dialog,
- fbox_y - MARGIN, fbox_x - MARGIN,
- fbox_height + (MARGIN + 1), fbox_width + (MARGIN + 1),
- menubox_border_attr, menubox_border2_attr);
- init_list(&f_list, dialog, w_work, MOUSE_F);
- } else {
- memset(&f_list, 0, sizeof(f_list));
- }
-
- while (result == DLG_EXIT_UNKNOWN) {
-
- if (fill_lists(current, input, &d_list, &f_list, state < sTEXT))
- show_buttons = TRUE;
-
-#ifdef KEY_RESIZE
- if (resized) {
- resized = FALSE;
- dlg_show_string(w_text, input, offset, inputbox_attr,
- 0, 0, tbox_width, FALSE, first);
- }
-#endif
-
- /*
- * The last field drawn determines where the cursor is shown:
- */
- if (show_buttons) {
- show_buttons = FALSE;
- button = (state < 0) ? 0 : state;
- dlg_draw_buttons(dialog, height - 1, 0, buttons, button, FALSE, width);
- }
-
- if (first_trace) {
- first_trace = FALSE;
- dlg_trace_win(dialog);
- }
-
- if (state < 0) {
- switch (state) {
- case sTEXT:
- dlg_set_focus(dialog, w_text);
- break;
- case sFILES:
- dlg_set_focus(dialog, f_list.win);
- break;
- case sDIRS:
- dlg_set_focus(dialog, d_list.win);
- break;
- }
- }
-
- if (first) {
- (void) wrefresh(dialog);
- } else {
- fix_arrows(&d_list);
- fix_arrows(&f_list);
- key = dlg_mouse_wgetch((state == sTEXT) ? w_text : dialog, &fkey);
- if (dlg_result_key(key, fkey, &result)) {
- if (!dlg_button_key(result, &button, &key, &fkey))
- break;
- }
- }
-
- if (key == DLGK_TOGGLE) {
- key = DLGK_SELECT;
- fkey = TRUE;
- }
-
- if (fkey) {
- switch (key) {
- case DLGK_MOUSE(KEY_PREVIOUS):
- state = sDIRS;
- scroll_list(-1, which_list());
- continue;
- case DLGK_MOUSE(KEY_NEXT):
- state = sDIRS;
- scroll_list(1, which_list());
- continue;
- case DLGK_MOUSE(KEY_PPAGE):
- state = sFILES;
- scroll_list(-1, which_list());
- continue;
- case DLGK_MOUSE(KEY_NPAGE):
- state = sFILES;
- scroll_list(1, which_list());
- continue;
- case DLGK_PAGE_PREV:
- scroll_list(-1, which_list());
- continue;
- case DLGK_PAGE_NEXT:
- scroll_list(1, which_list());
- continue;
- case DLGK_ITEM_PREV:
- if (change_list(-1, which_list()))
- continue;
- /* FALLTHRU */
- case DLGK_FIELD_PREV:
- show_buttons = TRUE;
- do {
- state = dlg_prev_ok_buttonindex(state, sDIRS);
- } while (!usable_state(state, &d_list, &f_list));
- continue;
- case DLGK_ITEM_NEXT:
- if (change_list(1, which_list()))
- continue;
- /* FALLTHRU */
- case DLGK_FIELD_NEXT:
- show_buttons = TRUE;
- do {
- state = dlg_next_ok_buttonindex(state, sDIRS);
- } while (!usable_state(state, &d_list, &f_list));
- continue;
- case DLGK_SELECT:
- completed = 0;
- if (partial != 0) {
- free(partial);
- partial = 0;
- }
- if (state == sFILES && !dselect) {
- completed = data_of(&f_list);
- } else if (state == sDIRS) {
- completed = data_of(&d_list);
- } else {
- if (complete(input, &d_list, &f_list, &partial)) {
- completed = partial;
- }
- }
- if (completed != 0) {
- state = sTEXT;
- show_buttons = TRUE;
- strcpy(leaf_of(input), completed);
- offset = (int) strlen(input);
- dlg_show_string(w_text, input, offset, inputbox_attr,
- 0, 0, tbox_width, 0, first);
- if (partial != NULL) {
- free(partial);
- partial = 0;
- }
- continue;
- } else { /* if (state < sTEXT) */
- (void) beep();
- continue;
- }
- /* FALLTHRU */
- case DLGK_ENTER:
- result = (state > 0) ? dlg_enter_buttoncode(state) : DLG_EXIT_OK;
- continue;
- case DLGK_LEAVE:
- if (state >= 0)
- result = dlg_ok_buttoncode(state);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
- dlg_will_resize(dialog);
- /* reset data */
- height = old_height;
- width = old_width;
- show_buttons = TRUE;
- *current = 0;
- resized = TRUE;
- /* repaint */
- free_list(&d_list, FALSE);
- free_list(&f_list, FALSE);
- _dlg_resize_cleanup(dialog);
- goto retry;
-#endif
- default:
- if (key >= DLGK_MOUSE(MOUSE_T)) {
- state = sTEXT;
- continue;
- } else if (key >= DLGK_MOUSE(MOUSE_F)) {
- if (f_list.win != 0) {
- state = sFILES;
- f_list.choice = (key - DLGK_MOUSE(MOUSE_F)) + f_list.offset;
- display_list(&f_list);
- }
- continue;
- } else if (key >= DLGK_MOUSE(MOUSE_D)) {
- if (d_list.win != 0) {
- state = sDIRS;
- d_list.choice = (key - DLGK_MOUSE(MOUSE_D)) + d_list.offset;
- display_list(&d_list);
- }
- continue;
- } else if (is_DLGK_MOUSE(key)
- && (code = dlg_ok_buttoncode(key - M_EVENT)) >= 0) {
- result = code;
- continue;
- }
- break;
- }
- }
-
- if (state < 0) { /* Input box selected if we're editing */
- int edit = dlg_edit_string(input, &offset, key, fkey, first);
-
- if (edit) {
- dlg_show_string(w_text, input, offset, inputbox_attr,
- 0, 0, tbox_width, 0, first);
- first = FALSE;
- state = sTEXT;
- }
- } else if ((code = dlg_char_to_button(key, buttons)) >= 0) {
- result = dlg_ok_buttoncode(code);
- break;
- }
- }
- AddLastKey();
-
- dlg_unregister_window(w_text);
- dlg_del_window(dialog);
- dlg_mouse_free_regions();
- free_list(&d_list, FALSE);
- free_list(&f_list, FALSE);
-
- finish:
- if (partial != 0)
- free(partial);
- return result;
-}
-
-/*
- * Display a dialog box for entering a filename
- */
-int
-dialog_fselect(const char *title, const char *path, int height, int width)
-{
- return dlg_fselect(title, path, height, width, FALSE);
-}
-
-/*
- * Display a dialog box for entering a directory
- */
-int
-dialog_dselect(const char *title, const char *path, int height, int width)
-{
- return dlg_fselect(title, path, height, width, TRUE);
-}
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/util.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/util.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/util.c (nonexistent)
@@ -1,3031 +0,0 @@
-/*
- * $Id: util.c,v 1.303 2021/06/15 00:10:11 tom Exp $
- *
- * util.c -- miscellaneous utilities for dialog
- *
- * Copyright 2000-2020,2021 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License, version 2.1
- * as published by the Free Software Foundation.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- *
- * An earlier version of this program lists as authors
- * Savio Lam (lam836@cs.cuhk.hk)
- */
-
-#include <dialog.h>
-#include <dlg_keys.h>
-#include <dlg_internals.h>
-
-#include <sys/time.h>
-
-#ifdef HAVE_SETLOCALE
-#include <locale.h>
-#endif
-
-#ifdef NEED_WCHAR_H
-#include <wchar.h>
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#if defined(NCURSES_VERSION)
-#define CAN_KEEP_TITE 1
-#elif defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 800000000)
-#define CAN_KEEP_TITE 1
-#else
-#define CAN_KEEP_TITE 0
-#endif
-
-#if CAN_KEEP_TITE
-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-#include <ncursesw/term.h>
-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-#include <ncurses/term.h>
-#else
-#include <term.h>
-#endif
-#endif
-
-#if defined(HAVE_WCHGAT)
-# if defined(NCURSES_VERSION_PATCH)
-# if NCURSES_VERSION_PATCH >= 20060715
-# define USE_WCHGAT 1
-# else
-# define USE_WCHGAT 0
-# endif
-# else
-# define USE_WCHGAT 1
-# endif
-#else
-# define USE_WCHGAT 0
-#endif
-
-/* globals */
-DIALOG_STATE dialog_state;
-DIALOG_VARS dialog_vars;
-
-#if !(defined(HAVE_WGETPARENT) && defined(HAVE_WINDOW__PARENT))
-#define NEED_WGETPARENT 1
-#else
-#undef NEED_WGETPARENT
-#endif
-
-#define concat(a,b) a##b
-
-#ifdef HAVE_RC_FILE
-#define RC_DATA(name,comment) , #name "_color", comment " color"
-#else
-#define RC_DATA(name,comment) /*nothing */
-#endif
-
-#ifdef HAVE_COLOR
-#include <dlg_colors.h>
-#ifdef HAVE_RC_FILE2
-#define COLOR_DATA(upr) , \
- concat(DLGC_FG_,upr), \
- concat(DLGC_BG_,upr), \
- concat(DLGC_HL_,upr), \
- concat(DLGC_UL_,upr), \
- concat(DLGC_RV_,upr)
-#else /* HAVE_RC_FILE2 */
-#define COLOR_DATA(upr) , \
- concat(DLGC_FG_,upr), \
- concat(DLGC_BG_,upr), \
- concat(DLGC_HL_,upr)
-#endif /* HAVE_RC_FILE2 */
-#else /* HAVE_COLOR */
-#define COLOR_DATA(upr) /*nothing */
-#endif /* HAVE_COLOR */
-
-#define UseShadow(dw) ((dw) != 0 && (dw)->normal != 0 && (dw)->shadow != 0)
-
-/*
- * Table of color and attribute values, default is for mono display.
- * The order matches the DIALOG_ATR() values.
- */
-#define DATA(atr,upr,lwr,cmt) { atr COLOR_DATA(upr) RC_DATA(lwr,cmt) }
-/* *INDENT-OFF* */
-DIALOG_COLORS dlg_color_table[] =
-{
- DATA(A_NORMAL, SCREEN, screen, "Screen"),
- DATA(A_NORMAL, SHADOW, shadow, "Shadow"),
- DATA(A_REVERSE, DIALOG, dialog, "Dialog box"),
- DATA(A_REVERSE, TITLE, title, "Dialog box title"),
- DATA(A_REVERSE, BORDER, border, "Dialog box border"),
- DATA(A_BOLD, BUTTON_ACTIVE, button_active, "Active button"),
- DATA(A_DIM, BUTTON_INACTIVE, button_inactive, "Inactive button"),
- DATA(A_UNDERLINE, BUTTON_KEY_ACTIVE, button_key_active, "Active button key"),
- DATA(A_UNDERLINE, BUTTON_KEY_INACTIVE, button_key_inactive, "Inactive button key"),
- DATA(A_NORMAL, BUTTON_LABEL_ACTIVE, button_label_active, "Active button label"),
- DATA(A_NORMAL, BUTTON_LABEL_INACTIVE, button_label_inactive, "Inactive button label"),
- DATA(A_REVERSE, INPUTBOX, inputbox, "Input box"),
- DATA(A_REVERSE, INPUTBOX_BORDER, inputbox_border, "Input box border"),
- DATA(A_REVERSE, SEARCHBOX, searchbox, "Search box"),
- DATA(A_REVERSE, SEARCHBOX_TITLE, searchbox_title, "Search box title"),
- DATA(A_REVERSE, SEARCHBOX_BORDER, searchbox_border, "Search box border"),
- DATA(A_REVERSE, POSITION_INDICATOR, position_indicator, "File position indicator"),
- DATA(A_REVERSE, MENUBOX, menubox, "Menu box"),
- DATA(A_REVERSE, MENUBOX_BORDER, menubox_border, "Menu box border"),
- DATA(A_REVERSE, ITEM, item, "Item"),
- DATA(A_NORMAL, ITEM_SELECTED, item_selected, "Selected item"),
- DATA(A_REVERSE, TAG, tag, "Tag"),
- DATA(A_REVERSE, TAG_SELECTED, tag_selected, "Selected tag"),
- DATA(A_NORMAL, TAG_KEY, tag_key, "Tag key"),
- DATA(A_BOLD, TAG_KEY_SELECTED, tag_key_selected, "Selected tag key"),
- DATA(A_REVERSE, CHECK, check, "Check box"),
- DATA(A_REVERSE, CHECK_SELECTED, check_selected, "Selected check box"),
- DATA(A_REVERSE, UARROW, uarrow, "Up arrow"),
- DATA(A_REVERSE, DARROW, darrow, "Down arrow"),
- DATA(A_NORMAL, ITEMHELP, itemhelp, "Item help-text"),
- DATA(A_BOLD, FORM_ACTIVE_TEXT, form_active_text, "Active form text"),
- DATA(A_REVERSE, FORM_TEXT, form_text, "Form text"),
- DATA(A_NORMAL, FORM_ITEM_READONLY, form_item_readonly, "Readonly form item"),
- DATA(A_REVERSE, GAUGE, gauge, "Dialog box gauge"),
- DATA(A_REVERSE, BORDER2, border2, "Dialog box border2"),
- DATA(A_REVERSE, INPUTBOX_BORDER2, inputbox_border2, "Input box border2"),
- DATA(A_REVERSE, SEARCHBOX_BORDER2, searchbox_border2, "Search box border2"),
- DATA(A_REVERSE, MENUBOX_BORDER2, menubox_border2, "Menu box border2")
-};
-#undef DATA
-/* *INDENT-ON* */
-
-/*
- * Maintain a list of subwindows so that we can delete them to cleanup.
- * More important, this provides a fallback when wgetparent() is not available.
- */
-static void
-add_subwindow(WINDOW *parent, WINDOW *child)
-{
- DIALOG_WINDOWS *p = dlg_calloc(DIALOG_WINDOWS, 1);
-
- if (p != 0) {
- p->normal = parent;
- p->shadow = child;
- p->getc_timeout = WTIMEOUT_OFF;
- p->next = dialog_state.all_subwindows;
- dialog_state.all_subwindows = p;
- }
-}
-
-static void
-del_subwindows(WINDOW *parent)
-{
- DIALOG_WINDOWS *p = dialog_state.all_subwindows;
- DIALOG_WINDOWS *q = 0;
- DIALOG_WINDOWS *r;
-
- while (p != 0) {
- if (p->normal == parent) {
- delwin(p->shadow);
- r = p->next;
- if (q == 0) {
- dialog_state.all_subwindows = r;
- } else {
- q->next = r;
- }
- free(p);
- p = r;
- } else {
- q = p;
- p = p->next;
- }
- }
-}
-
-/*
- * Display background title if it exists ...
- */
-void
-dlg_put_backtitle(void)
-{
-
- if (dialog_vars.backtitle != NULL) {
- chtype attr = A_NORMAL;
- int backwidth = dlg_count_columns(dialog_vars.backtitle);
- int i;
-
- dlg_attrset(stdscr, screen_attr);
- (void) wmove(stdscr, 0, 1);
- dlg_print_text(stdscr, dialog_vars.backtitle, COLS - 2, &attr);
- for (i = 0; i < COLS - backwidth; i++)
- (void) waddch(stdscr, ' ');
- (void) wmove(stdscr, 1, 1);
- for (i = 0; i < COLS - 2; i++)
- (void) waddch(stdscr, dlg_boxchar(ACS_HLINE));
- }
-
- (void) wnoutrefresh(stdscr);
-}
-
-/*
- * Set window to attribute 'attr'. There are more efficient ways to do this,
- * but will not work on older/buggy ncurses versions.
- */
-void
-dlg_attr_clear(WINDOW *win, int height, int width, chtype attr)
-{
- int i, j;
-
- dlg_attrset(win, attr);
- for (i = 0; i < height; i++) {
- (void) wmove(win, i, 0);
- for (j = 0; j < width; j++)
- (void) waddch(win, ' ');
- }
- (void) touchwin(win);
-}
-
-void
-dlg_clear(void)
-{
- dlg_attr_clear(stdscr, LINES, COLS, screen_attr);
-}
-
-#ifdef KEY_RESIZE
-void
-_dlg_resize_cleanup(WINDOW *w)
-{
- dlg_clear();
- dlg_put_backtitle();
- dlg_del_window(w);
- dlg_mouse_free_regions();
-}
-#endif /* KEY_RESIZE */
-
-#define isprivate(s) ((s) != 0 && strstr(s, "\033[?") != 0)
-
-#define TTY_DEVICE "/dev/tty"
-
-/*
- * If $DIALOG_TTY exists, allow the program to try to open the terminal
- * directly when stdout is redirected. By default we require the "--stdout"
- * option to be given, but some scripts were written making use of the
- * behavior of dialog which tried opening the terminal anyway.
- */
-#define dialog_tty() (dlg_getenv_num("DIALOG_TTY", (int *)0) > 0)
-
-/*
- * Open the terminal directly. If one of stdin, stdout or stderr really points
- * to a tty, use it. Otherwise give up and open /dev/tty.
- */
-static int
-open_terminal(char **result, int mode)
-{
- const char *device = TTY_DEVICE;
- if (!isatty(fileno(stderr))
- || (device = ttyname(fileno(stderr))) == 0) {
- if (!isatty(fileno(stdout))
- || (device = ttyname(fileno(stdout))) == 0) {
- if (!isatty(fileno(stdin))
- || (device = ttyname(fileno(stdin))) == 0) {
- device = TTY_DEVICE;
- }
- }
- }
- *result = dlg_strclone(device);
- return open(device, mode);
-}
-
-#if CAN_KEEP_TITE
-static int
-my_putc(int ch)
-{
- char buffer[2];
- int fd = fileno(dialog_state.screen_output);
-
- buffer[0] = (char) ch;
- return (int) write(fd, buffer, (size_t) 1);
-}
-#endif
-
-/*
- * Do some initialization for dialog.
- *
- * 'input' is the real tty input of dialog. Usually it is stdin, but if
- * --input-fd option is used, it may be anything.
- *
- * 'output' is where dialog will send its result. Usually it is stderr, but
- * if --stdout or --output-fd is used, it may be anything. We are concerned
- * mainly with the case where it happens to be the same as stdout.
- */
-void
-init_dialog(FILE *input, FILE *output)
-{
- int fd1, fd2;
- char *device = 0;
-
- setlocale(LC_ALL, "");
-
- dialog_state.output = output;
- if (dialog_state.tab_len == 0)
- dialog_state.tab_len = TAB_LEN;
- if (dialog_state.aspect_ratio == 0)
- dialog_state.aspect_ratio = DEFAULT_ASPECT_RATIO;
-#ifdef HAVE_COLOR
- dialog_state.use_colors = USE_COLORS; /* use colors by default? */
- dialog_state.use_shadow = USE_SHADOW; /* shadow dialog boxes by default? */
-#endif
-
-#ifdef HAVE_RC_FILE
- if (dlg_parse_rc() == -1) /* Read the configuration file */
- dlg_exiterr("init_dialog: dlg_parse_rc");
-#endif
-
- /*
- * Some widgets (such as gauge) may read from the standard input. Pipes
- * only connect stdout/stdin, so there is not much choice. But reading a
- * pipe would get in the way of curses' normal reading stdin for getch.
- *
- * As in the --stdout (see below), reopening the terminal does not always
- * work properly. dialog provides a --pipe-fd option for this purpose. We
- * test that case first (differing fileno's for input/stdin). If the
- * fileno's are equal, but we're not reading from a tty, see if we can open
- * /dev/tty.
- */
- dialog_state.pipe_input = stdin;
- if (fileno(input) != fileno(stdin)) {
- if ((fd1 = dup(fileno(input))) >= 0
- && (fd2 = dup(fileno(stdin))) >= 0) {
- (void) dup2(fileno(input), fileno(stdin));
- dialog_state.pipe_input = fdopen(fd2, "r");
- if (fileno(stdin) != 0) /* some functions may read fd #0 */
- (void) dup2(fileno(stdin), 0);
- } else {
- dlg_exiterr("cannot open tty-input");
- }
- close(fd1);
- } else if (!isatty(fileno(stdin))) {
- if ((fd1 = open_terminal(&device, O_RDONLY)) >= 0) {
- if ((fd2 = dup(fileno(stdin))) >= 0) {
- dialog_state.pipe_input = fdopen(fd2, "r");
- if (freopen(device, "r", stdin) == 0)
- dlg_exiterr("cannot open tty-input");
- if (fileno(stdin) != 0) /* some functions may read fd #0 */
- (void) dup2(fileno(stdin), 0);
- }
- close(fd1);
- }
- free(device);
- }
-
- /*
- * If stdout is not a tty and dialog is called with the --stdout option, we
- * have to provide for a way to write to the screen.
- *
- * The curses library normally writes its output to stdout, leaving stderr
- * free for scripting. Scripts are simpler when stdout is redirected. The
- * newterm function is useful; it allows us to specify where the output
- * goes. Reopening the terminal is not portable since several
- * configurations do not allow this to work properly:
- *
- * a) some getty implementations (and possibly broken tty drivers, e.g., on
- * HPUX 10 and 11) cause stdin to act as if it is still in cooked mode
- * even though results from ioctl's state that it is successfully
- * altered to raw mode. Broken is the proper term.
- *
- * b) the user may not have permissions on the device, e.g., if one su's
- * from the login user to another non-privileged user.
- */
- if (!isatty(fileno(stdout))
- && (fileno(stdout) == fileno(output) || dialog_tty())) {
- if ((fd1 = open_terminal(&device, O_WRONLY)) >= 0
- && (dialog_state.screen_output = fdopen(fd1, "w")) != 0) {
- if (newterm(NULL, dialog_state.screen_output, stdin) == 0) {
- dlg_exiterr("cannot initialize curses");
- }
- free(device);
- } else {
- dlg_exiterr("cannot open tty-output");
- }
- } else {
- dialog_state.screen_output = stdout;
- (void) initscr();
- }
- dlg_keep_tite(dialog_state.screen_output);
-#ifdef HAVE_FLUSHINP
- (void) flushinp();
-#endif
- (void) keypad(stdscr, TRUE);
- (void) cbreak();
- (void) noecho();
-
- if (!dialog_state.no_mouse) {
- mouse_open();
- }
-
- dialog_state.screen_initialized = TRUE;
-
-#ifdef HAVE_COLOR
- if (dialog_state.use_colors || dialog_state.use_shadow)
- dlg_color_setup(); /* Set up colors */
-#endif
-
- /* Set screen to screen attribute */
- dlg_clear();
-}
-
-void
-dlg_keep_tite(FILE *output)
-{
- if (!dialog_vars.keep_tite) {
-#if CAN_KEEP_TITE
- /*
- * Cancel xterm's alternate-screen mode.
- */
- if ((fileno(output) != fileno(stdout)
- || isatty(fileno(output)))
- && key_mouse != 0 /* xterm and kindred */
- && isprivate(enter_ca_mode)
- && isprivate(exit_ca_mode)) {
- FILE *save = dialog_state.screen_output;
-
- /*
- * initscr() or newterm() already wrote enter_ca_mode as a side
- * effect of initializing the screen. It would be nice to not even
- * do that, but we do not really have access to the correct copy of
- * the terminfo description until those functions have been
- * invoked.
- */
- (void) refresh();
- dialog_state.screen_output = output;
- (void) tputs(exit_ca_mode, 0, my_putc);
- (void) tputs(clear_screen, 0, my_putc);
- dialog_state.screen_output = save;
-
- /*
- * Prevent ncurses from switching "back" to the normal screen when
- * exiting from dialog. That would move the cursor to the original
- * location saved in xterm. Normally curses sets the cursor
- * position to the first line after the display, but the alternate
- * screen switching is done after that point.
- *
- * Cancelling the strings altogether also works around the buggy
- * implementation of alternate-screen in rxvt, etc., which clear
- * more of the display than they should.
- */
- enter_ca_mode = 0;
- exit_ca_mode = 0;
- }
-#else
- /*
- * For other implementations, there are no useful answers:
- * + SVr4 curses "could" support a similar approach, but the clue about
- * xterm is absent from its terminal database.
- * + PDCurses does not provide terminfo.
- */
- (void) output;
-#endif
- }
-}
-
-#ifdef HAVE_COLOR
-static int defined_colors = 1; /* pair-0 is reserved */
-/*
- * Setup for color display
- */
-void
-dlg_color_setup(void)
-{
- if (has_colors()) { /* Terminal supports color? */
- unsigned i;
-
- (void) start_color();
-
-#if defined(HAVE_USE_DEFAULT_COLORS)
- use_default_colors();
-#endif
-
-#if defined(__NetBSD__) && defined(_CURSES_)
-#define C_ATTR(x,y) (((x) != 0 ? A_BOLD : 0) | COLOR_PAIR((y)))
- /* work around bug in NetBSD curses */
- for (i = 0; i < sizeof(dlg_color_table) /
- sizeof(dlg_color_table[0]); i++) {
-
- /* Initialize color pairs */
- (void) init_pair(i + 1,
- dlg_color_table[i].fg,
- dlg_color_table[i].bg);
-
- /* Setup color attributes */
- dlg_color_table[i].atr = C_ATTR(dlg_color_table[i].hilite, i + 1);
- }
- defined_colors = i + 1;
-#else
- for (i = 0; i < sizeof(dlg_color_table) /
- sizeof(dlg_color_table[0]); i++) {
-
- /* Initialize color pairs */
- chtype atr = dlg_color_pair(dlg_color_table[i].fg,
- dlg_color_table[i].bg);
-
- atr |= (dlg_color_table[i].hilite ? A_BOLD : 0);
-#ifdef HAVE_RC_FILE2
- atr |= (dlg_color_table[i].ul ? A_UNDERLINE : 0);
- atr |= (dlg_color_table[i].rv ? A_REVERSE : 0);
-#endif /* HAVE_RC_FILE2 */
-
- dlg_color_table[i].atr = atr;
- }
-#endif
- } else {
- dialog_state.use_colors = FALSE;
- dialog_state.use_shadow = FALSE;
- }
-}
-
-int
-dlg_color_count(void)
-{
- return TableSize(dlg_color_table);
-}
-
-/*
- * Wrapper for getattrs(), or the more cumbersome X/Open wattr_get().
- */
-chtype
-dlg_get_attrs(WINDOW *win)
-{
- chtype result;
-#ifdef HAVE_GETATTRS
- result = (chtype) getattrs(win);
-#else
- attr_t my_result;
- short my_pair;
- wattr_get(win, &my_result, &my_pair, NULL);
- result = my_result;
-#endif
- return result;
-}
-
-/*
- * Reuse color pairs (they are limited), returning a COLOR_PAIR() value if we
- * have (or can) define a pair with the given color as foreground on the
- * window's defined background.
- */
-chtype
-dlg_color_pair(int foreground, int background)
-{
- chtype result = 0;
- int pair;
- short fg, bg;
- bool found = FALSE;
-
- for (pair = 1; pair < defined_colors; ++pair) {
- if (pair_content((short) pair, &fg, &bg) != ERR
- && fg == foreground
- && bg == background) {
- result = (chtype) COLOR_PAIR(pair);
- found = TRUE;
- break;
- }
- }
- if (!found && (defined_colors + 1) < COLOR_PAIRS) {
- pair = defined_colors++;
- (void) init_pair((short) pair, (short) foreground, (short) background);
- result = (chtype) COLOR_PAIR(pair);
- }
- return result;
-}
-
-/*
- * Reuse color pairs (they are limited), returning a COLOR_PAIR() value if we
- * have (or can) define a pair with the given color as foreground on the
- * window's defined background.
- */
-static chtype
-define_color(WINDOW *win, int foreground)
-{
- short fg, bg, background;
- if (dialog_state.text_only) {
- background = COLOR_BLACK;
- } else {
- chtype attrs = dlg_get_attrs(win);
- int pair;
-
- if ((pair = PAIR_NUMBER(attrs)) != 0
- && pair_content((short) pair, &fg, &bg) != ERR) {
- background = bg;
- } else {
- background = COLOR_BLACK;
- }
- }
- return dlg_color_pair(foreground, background);
-}
-#endif
-
-/*
- * End using dialog functions.
- */
-void
-end_dialog(void)
-{
- if (dialog_state.screen_initialized) {
- dialog_state.screen_initialized = FALSE;
- if (dialog_vars.erase_on_exit) {
- /*
- * Clear the screen to the native background color, and leave the
- * terminal cursor at the lower-left corner of the screen.
- */
- werase(stdscr);
- wrefresh(stdscr);
- }
- mouse_close();
- (void) endwin();
- (void) fflush(stdout);
- }
-}
-
-#define ESCAPE_LEN 3
-#define isOurEscape(p) (((p)[0] == '\\') && ((p)[1] == 'Z') && ((p)[2] != 0))
-
-int
-dlg_count_real_columns(const char *text)
-{
- int result = 0;
- if (*text) {
- result = dlg_count_columns(text);
- if (result && dialog_vars.colors) {
- int hidden = 0;
- while (*text) {
- if (isOurEscape(text)) {
- hidden += ESCAPE_LEN;
- text += ESCAPE_LEN;
- } else {
- ++text;
- }
- }
- result -= hidden;
- }
- }
- return result;
-}
-
-static int
-centered(int width, const char *string)
-{
- int need = dlg_count_real_columns(string);
- int left;
-
- left = (width - need) / 2 - 1;
- if (left < 0)
- left = 0;
- return left;
-}
-
-#ifdef USE_WIDE_CURSES
-static bool
-is_combining(const char *txt, int *combined)
-{
- bool result = FALSE;
-
- if (*combined == 0) {
- if (UCH(*txt) >= 128) {
- wchar_t wch;
- mbstate_t state;
- size_t given = strlen(txt);
- size_t len;
-
- memset(&state, 0, sizeof(state));
- len = mbrtowc(&wch, txt, given, &state);
- if ((int) len > 0 && wcwidth(wch) == 0) {
- *combined = (int) len - 1;
- result = TRUE;
- }
- }
- } else {
- result = TRUE;
- *combined -= 1;
- }
- return result;
-}
-#endif
-
-/*
- * Print the name (tag) or text from a DIALOG_LISTITEM, highlighting the
- * first character if selected.
- */
-void
-dlg_print_listitem(WINDOW *win,
- const char *text,
- int climit,
- bool first,
- int selected)
-{
- chtype attr = A_NORMAL;
- int limit;
- chtype attrs[4];
-
- if (text == 0)
- text = "";
-
- if (first && !dialog_vars.no_hot_list) {
- const int *indx = dlg_index_wchars(text);
- attrs[3] = tag_key_selected_attr;
- attrs[2] = tag_key_attr;
- attrs[1] = tag_selected_attr;
- attrs[0] = tag_attr;
-
- dlg_attrset(win, selected ? attrs[3] : attrs[2]);
- if (*text != '\0') {
- (void) waddnstr(win, text, indx[1]);
-
- if ((int) strlen(text) > indx[1]) {
- limit = dlg_limit_columns(text, climit, 1);
- if (limit > 1) {
- dlg_attrset(win, selected ? attrs[1] : attrs[0]);
- (void) waddnstr(win,
- text + indx[1],
- indx[limit] - indx[1]);
- }
- }
- }
- } else {
- const int *cols;
-
- attrs[1] = item_selected_attr;
- attrs[0] = item_attr;
-
- cols = dlg_index_columns(text);
- limit = dlg_limit_columns(text, climit, 0);
-
- if (limit > 0) {
- dlg_attrset(win, selected ? attrs[1] : attrs[0]);
- dlg_print_text(win, text, cols[limit], &attr);
- }
- }
-}
-
-/*
- * Print up to 'cols' columns from 'text', optionally rendering our escape
- * sequence for attributes and color.
- */
-void
-dlg_print_text(WINDOW *win, const char *txt, int cols, chtype *attr)
-{
- int y_origin, x_origin;
- int y_before, x_before = 0;
- int y_after, x_after;
- int tabbed = 0;
- bool ended = FALSE;
-#ifdef USE_WIDE_CURSES
- int combined = 0;
-#endif
-
- if (dialog_state.text_only) {
- y_origin = y_after = 0;
- x_origin = x_after = 0;
- } else {
- y_after = 0;
- x_after = 0;
- getyx(win, y_origin, x_origin);
- }
- while (cols > 0 && (*txt != '\0')) {
- bool thisTab;
- chtype useattr;
-
- if (dialog_vars.colors) {
- while (isOurEscape(txt)) {
- int code;
-
- txt += 2;
- switch (code = CharOf(*txt)) {
-#ifdef HAVE_COLOR
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- *attr &= ~A_COLOR;
- *attr |= define_color(win, code - '0');
- break;
-#endif
- case 'B':
- *attr &= ~A_BOLD;
- break;
- case 'b':
- *attr |= A_BOLD;
- break;
- case 'R':
- *attr &= ~A_REVERSE;
- break;
- case 'r':
- *attr |= A_REVERSE;
- break;
- case 'U':
- *attr &= ~A_UNDERLINE;
- break;
- case 'u':
- *attr |= A_UNDERLINE;
- break;
- case 'n':
- *attr = A_NORMAL;
- break;
- default:
- break;
- }
- ++txt;
- }
- }
- if (ended || *txt == '\n' || *txt == '\0')
- break;
- useattr = (*attr) & A_ATTRIBUTES;
-#ifdef HAVE_COLOR
- /*
- * Prevent this from making text invisible when the foreground and
- * background colors happen to be the same, and there's no bold
- * attribute.
- */
- if ((useattr & A_COLOR) != 0 && (useattr & A_BOLD) == 0) {
- short pair = (short) PAIR_NUMBER(useattr);
- short fg, bg;
- if (pair_content(pair, &fg, &bg) != ERR
- && fg == bg) {
- useattr &= ~A_COLOR;
- useattr |= dlg_color_pair(fg, ((bg == COLOR_BLACK)
- ? COLOR_WHITE
- : COLOR_BLACK));
- }
- }
-#endif
- /*
- * Write the character, using curses to tell exactly how wide it
- * is. If it is a tab, discount that, since the caller thinks
- * tabs are nonprinting, and curses will expand tabs to one or
- * more blanks.
- */
- thisTab = (CharOf(*txt) == TAB);
- if (dialog_state.text_only) {
- x_before = x_after;
- } else {
- if (thisTab) {
- getyx(win, y_before, x_before);
- (void) y_before;
- }
- }
- if (dialog_state.text_only) {
- int ch = CharOf(*txt++);
- if (thisTab) {
- while ((x_after++) % 8) {
- fputc(' ', dialog_state.output);
- }
- } else {
- fputc(ch, dialog_state.output);
- x_after++; /* FIXME: handle meta per locale */
- }
- } else {
- (void) waddch(win, CharOf(*txt++) | useattr);
- getyx(win, y_after, x_after);
- }
- if (thisTab && (y_after == y_origin))
- tabbed += (x_after - x_before);
- if ((y_after != y_origin) ||
- (x_after >= (cols + tabbed + x_origin)
-#ifdef USE_WIDE_CURSES
- && !is_combining(txt, &combined)
-#endif
- )) {
- ended = TRUE;
- }
- }
- if (dialog_state.text_only) {
- fputc('\n', dialog_state.output);
- }
-}
-
-/*
- * Print one line of the prompt in the window within the limits of the
- * specified right margin. The line will end on a word boundary and a pointer
- * to the start of the next line is returned, or a NULL pointer if the end of
- * *prompt is reached.
- */
-const char *
-dlg_print_line(WINDOW *win,
- chtype *attr,
- const char *prompt,
- int lm, int rm, int *x)
-{
- const char *wrap_ptr;
- const char *test_ptr;
- const char *hide_ptr = 0;
- const int *cols = dlg_index_columns(prompt);
- const int *indx = dlg_index_wchars(prompt);
- int wrap_inx = 0;
- int test_inx = 0;
- int cur_x = lm;
- int hidden = 0;
- int limit = dlg_count_wchars(prompt);
- int n;
- int tabbed = 0;
-
- *x = 1;
-
- /*
- * Set *test_ptr to the end of the line or the right margin (rm), whichever
- * is less, and set wrap_ptr to the end of the last word in the line.
- */
- for (n = 0; n < limit; ++n) {
- int ch = *(test_ptr = prompt + indx[test_inx]);
- if (ch == '\n' || ch == '\0' || cur_x >= (rm + hidden))
- break;
- if (ch == TAB && n == 0) {
- tabbed = 8; /* workaround for leading tabs */
- } else if (isblank(UCH(ch))
- && n != 0
- && !isblank(UCH(prompt[indx[n - 1]]))) {
- wrap_inx = n;
- *x = cur_x;
- } else if (dialog_vars.colors && isOurEscape(test_ptr)) {
- hide_ptr = test_ptr;
- hidden += ESCAPE_LEN;
- n += (ESCAPE_LEN - 1);
- }
- cur_x = lm + tabbed + cols[n + 1];
- if (cur_x > (rm + hidden))
- break;
- test_inx = n + 1;
- }
-
- /*
- * If the line doesn't reach the right margin in the middle of a word, then
- * we don't have to wrap it at the end of the previous word.
- */
- test_ptr = prompt + indx[test_inx];
- if (*test_ptr == '\n' || isblank(UCH(*test_ptr)) || *test_ptr == '\0') {
- wrap_inx = test_inx;
- while (wrap_inx > 0 && isblank(UCH(prompt[indx[wrap_inx - 1]]))) {
- wrap_inx--;
- }
- *x = lm + indx[wrap_inx];
- } else if (*x == 1 && cur_x >= rm) {
- /*
- * If the line has no spaces, then wrap it anyway at the right margin
- */
- *x = rm;
- wrap_inx = test_inx;
- }
- wrap_ptr = prompt + indx[wrap_inx];
-#ifdef USE_WIDE_CURSES
- if (UCH(*wrap_ptr) >= 128) {
- int combined = 0;
- while (is_combining(wrap_ptr, &combined)) {
- ++wrap_ptr;
- }
- }
-#endif
-
- /*
- * If we found hidden text past the last point that we will display,
- * discount that from the displayed length.
- */
- if ((hide_ptr != 0) && (hide_ptr >= wrap_ptr)) {
- hidden -= ESCAPE_LEN;
- test_ptr = wrap_ptr;
- while (test_ptr < wrap_ptr) {
- if (dialog_vars.colors && isOurEscape(test_ptr)) {
- hidden -= ESCAPE_LEN;
- test_ptr += ESCAPE_LEN;
- } else {
- ++test_ptr;
- }
- }
- }
-
- /*
- * Print the line if we have a window pointer. Otherwise this routine
- * is just being called for sizing the window.
- */
- if (dialog_state.text_only || win) {
- dlg_print_text(win, prompt, (cols[wrap_inx] - hidden), attr);
- }
-
- /* *x tells the calling function how long the line was */
- if (*x == 1) {
- *x = rm;
- }
-
- *x -= hidden;
-
- /* Find the start of the next line and return a pointer to it */
- test_ptr = wrap_ptr;
- while (isblank(UCH(*test_ptr)))
- test_ptr++;
- if (*test_ptr == '\n')
- test_ptr++;
- dlg_finish_string(prompt);
- return (test_ptr);
-}
-
-static void
-justify_text(WINDOW *win,
- const char *prompt,
- int limit_y,
- int limit_x,
- int *high, int *wide)
-{
- chtype attr = A_NORMAL;
- int x;
- int y = MARGIN;
- int max_x = 2;
- int lm = (2 * MARGIN); /* left margin (box-border plus a space) */
- int rm = limit_x; /* right margin */
- int bm = limit_y; /* bottom margin */
- int last_y = 0, last_x = 0;
-
- dialog_state.text_height = 0;
- dialog_state.text_width = 0;
- if (dialog_state.text_only || win) {
- rm -= (2 * MARGIN);
- bm -= (2 * MARGIN);
- }
- if (prompt == 0)
- prompt = "";
-
- if (win != 0)
- getyx(win, last_y, last_x);
- while (y <= bm && *prompt) {
- x = lm;
-
- if (*prompt == '\n') {
- while (*prompt == '\n' && y < bm) {
- if (*(prompt + 1) != '\0') {
- ++y;
- if (win != 0)
- (void) wmove(win, y, lm);
- }
- prompt++;
- }
- } else if (win != 0)
- (void) wmove(win, y, lm);
-
- if (*prompt) {
- prompt = dlg_print_line(win, &attr, prompt, lm, rm, &x);
- if (win != 0)
- getyx(win, last_y, last_x);
- }
- if (*prompt) {
- ++y;
- if (win != 0)
- (void) wmove(win, y, lm);
- }
- max_x = MAX(max_x, x);
- }
- /* Move back to the last position after drawing prompt, for msgbox. */
- if (win != 0)
- (void) wmove(win, last_y, last_x);
-
- /* Set the final height and width for the calling function */
- if (high != 0)
- *high = y;
- if (wide != 0)
- *wide = max_x;
-}
-
-/*
- * Print a string of text in a window, automatically wrap around to the next
- * line if the string is too long to fit on one line. Note that the string may
- * contain embedded newlines.
- */
-void
-dlg_print_autowrap(WINDOW *win, const char *prompt, int height, int width)
-{
- justify_text(win, prompt,
- height,
- width,
- (int *) 0, (int *) 0);
-}
-
-/*
- * Display the message in a scrollable window. Actually the way it works is
- * that we create a "tall" window of the proper width, let the text wrap within
- * that, and copy a slice of the result to the dialog.
- *
- * It works for ncurses. Other curses implementations show only blanks (Tru64)
- * or garbage (NetBSD).
- */
-int
-dlg_print_scrolled(WINDOW *win,
- const char *prompt,
- int offset,
- int height,
- int width,
- int pauseopt)
-{
- int oldy, oldx;
- int last = 0;
-
- (void) pauseopt; /* used only for ncurses */
-
- getyx(win, oldy, oldx);
-#ifdef NCURSES_VERSION
- if (pauseopt) {
- int wide = width - (2 * MARGIN);
- int high = LINES;
- int len;
- WINDOW *dummy;
-
-#if defined(NCURSES_VERSION_PATCH) && NCURSES_VERSION_PATCH >= 20040417
- /*
- * If we're not limited by the screensize, allow text to possibly be
- * one character per line.
- */
- if ((len = dlg_count_columns(prompt)) > high)
- high = len;
-#endif
- dummy = newwin(high, width, 0, 0);
- if (dummy == 0) {
- dlg_attrset(win, dialog_attr);
- dlg_print_autowrap(win, prompt, height + 1 + (3 * MARGIN), width);
- last = 0;
- } else {
- int y, x;
-
- wbkgdset(dummy, dialog_attr | ' ');
- dlg_attrset(dummy, dialog_attr);
- werase(dummy);
- dlg_print_autowrap(dummy, prompt, high, width);
- getyx(dummy, y, x);
- (void) x;
-
- copywin(dummy, /* srcwin */
- win, /* dstwin */
- offset + MARGIN, /* sminrow */
- MARGIN, /* smincol */
- MARGIN, /* dminrow */
- MARGIN, /* dmincol */
- height, /* dmaxrow */
- wide, /* dmaxcol */
- FALSE);
-
- delwin(dummy);
-
- /* if the text is incomplete, or we have scrolled, show the percentage */
- if (y > 0 && wide > 4) {
- int percent = (int) ((height + offset) * 100.0 / y);
-
- if (percent < 0)
- percent = 0;
- if (percent > 100)
- percent = 100;
-
- if (offset != 0 || percent != 100) {
- char buffer[5];
-
- dlg_attrset(win, position_indicator_attr);
- (void) wmove(win, MARGIN + height, wide - 4);
- (void) sprintf(buffer, "%d%%", percent);
- (void) waddstr(win, buffer);
- if ((len = (int) strlen(buffer)) < 4) {
- dlg_attrset(win, border_attr);
- whline(win, dlg_boxchar(ACS_HLINE), 4 - len);
- }
- }
- }
- last = (y - height);
- }
- } else
-#endif
- {
- (void) offset;
- dlg_attrset(win, dialog_attr);
- dlg_print_autowrap(win, prompt, height + 1 + (3 * MARGIN), width);
- last = 0;
- }
- wmove(win, oldy, oldx);
- return last;
-}
-
-int
-dlg_check_scrolled(int key, int last, int page, bool * show, int *offset)
-{
- int code = 0;
-
- *show = FALSE;
-
- switch (key) {
- case DLGK_PAGE_FIRST:
- if (*offset > 0) {
- *offset = 0;
- *show = TRUE;
- }
- break;
- case DLGK_PAGE_LAST:
- if (*offset < last) {
- *offset = last;
- *show = TRUE;
- }
- break;
- case DLGK_GRID_UP:
- if (*offset > 0) {
- --(*offset);
- *show = TRUE;
- }
- break;
- case DLGK_GRID_DOWN:
- if (*offset < last) {
- ++(*offset);
- *show = TRUE;
- }
- break;
- case DLGK_PAGE_PREV:
- if (*offset > 0) {
- *offset -= page;
- if (*offset < 0)
- *offset = 0;
- *show = TRUE;
- }
- break;
- case DLGK_PAGE_NEXT:
- if (*offset < last) {
- *offset += page;
- if (*offset > last)
- *offset = last;
- *show = TRUE;
- }
- break;
- default:
- code = -1;
- break;
- }
- return code;
-}
-
-/*
- * Calculate the window size for preformatted text. This will calculate box
- * dimensions that are at or close to the specified aspect ratio for the prompt
- * string with all spaces and newlines preserved and additional newlines added
- * as necessary.
- */
-static void
-auto_size_preformatted(const char *prompt, int *height, int *width)
-{
- int high = 0, wide = 0;
- float car; /* Calculated Aspect Ratio */
- int max_y = SLINES - 1;
- int max_x = SCOLS - 2;
- int max_width = max_x;
- int ar = dialog_state.aspect_ratio;
-
- /* Get the initial dimensions */
- justify_text((WINDOW *) 0, prompt, max_y, max_x, &high, &wide);
- car = (float) (wide / high);
-
- *height = high;
- *width = wide;
-}
-
-/*
- * Find the length of the longest "word" in the given string. By setting the
- * widget width at least this long, we can avoid splitting a word on the
- * margin.
- */
-static int
-longest_word(const char *string)
-{
- int result = 0;
-
- while (*string != '\0') {
- int length = 0;
- while (*string != '\0' && !isspace(UCH(*string))) {
- length++;
- string++;
- }
- result = MAX(result, length);
- if (*string != '\0')
- string++;
- }
- return result;
-}
-
-/*
- * if (height or width == -1) Maximize()
- * if (height or width == 0), justify and return actual limits.
- */
-static void
-real_auto_size(const char *title,
- const char *prompt,
- int *height, int *width,
- int boxlines, int mincols)
-{
- int x = (dialog_vars.begin_set ? dialog_vars.begin_x : 2);
- int y = (dialog_vars.begin_set ? dialog_vars.begin_y : 1);
- int title_length = title ? dlg_count_columns(title) : 0;
- int high;
- int save_high = *height;
- int save_wide = *width;
- int max_high;
- int max_wide;
-
- if (prompt == 0) {
- if (*height == 0)
- *height = -1;
- if (*width == 0)
- *width = -1;
- }
-
- max_high = (*height < 0);
- max_wide = (*width < 0);
-
- if (*height > 0) {
- high = *height;
- } else {
- high = SLINES - y;
- }
-
- if (*width <= 0) {
- int wide;
-
- if (prompt != 0) {
- wide = MAX(title_length, mincols);
- if (strchr(prompt, '\n') == 0) {
- double val = (dialog_state.aspect_ratio *
- dlg_count_real_columns(prompt));
- double xxx = sqrt(val);
- int tmp = (int) xxx;
- wide = MAX(wide, tmp);
- wide = MAX(wide, longest_word(prompt));
- justify_text((WINDOW *) 0, prompt, high, wide, height, width);
- } else {
- auto_size_preformatted(prompt, height, width);
- }
- } else {
- wide = SCOLS - x;
- justify_text((WINDOW *) 0, prompt, high, wide, height, width);
- }
- }
-
- if (*width < title_length) {
- justify_text((WINDOW *) 0, prompt, high, title_length, height, width);
- *width = title_length;
- }
-
- dialog_state.text_height = *height;
- dialog_state.text_width = *width;
-
- if (*width < mincols && save_wide == 0)
- *width = mincols;
- if (prompt != 0) {
- *width += ((2 * MARGIN) + SHADOW_COLS);
- *height += boxlines + (2 * MARGIN);
- }
-
- if (save_high > 0)
- *height = save_high;
- if (save_wide > 0)
- *width = save_wide;
-
- if (max_high)
- *height = SLINES - (dialog_vars.begin_set ? dialog_vars.begin_y : 0);
- if (max_wide)
- *width = SCOLS - (dialog_vars.begin_set ? dialog_vars.begin_x : 0);
-}
-
-/* End of real_auto_size() */
-
-void
-dlg_auto_size(const char *title,
- const char *prompt,
- int *height,
- int *width,
- int boxlines,
- int mincols)
-{
- DLG_TRACE(("# dlg_auto_size(%d,%d) limits %d,%d\n",
- *height, *width,
- boxlines, mincols));
-
- real_auto_size(title, prompt, height, width, boxlines, mincols);
-
- if (*width > SCOLS) {
- (*height)++;
- *width = SCOLS;
- }
-
- if (*height > SLINES) {
- *height = SLINES;
- }
- DLG_TRACE(("# ...dlg_auto_size(%d,%d) also %d,%d\n",
- *height, *width,
- dialog_state.text_height, dialog_state.text_width));
-}
-
-/*
- * if (height or width == -1) Maximize()
- * if (height or width == 0)
- * height=MIN(SLINES, num.lines in fd+n);
- * width=MIN(SCOLS, MAX(longer line+n, mincols));
- */
-void
-dlg_auto_sizefile(const char *title,
- const char *file,
- int *height,
- int *width,
- int boxlines,
- int mincols)
-{
- int count = 0;
- int len = title ? dlg_count_columns(title) : 0;
- int nc = 4;
- int numlines = 2;
- FILE *fd;
-
- /* Open input file for reading */
- if ((fd = fopen(file, "rb")) == NULL)
- dlg_exiterr("dlg_auto_sizefile: Cannot open input file %s", file);
-
- if ((*height == -1) || (*width == -1)) {
- *height = SLINES - (dialog_vars.begin_set ? dialog_vars.begin_y : 0);
- *width = SCOLS - (dialog_vars.begin_set ? dialog_vars.begin_x : 0);
- }
- if ((*height != 0) && (*width != 0)) {
- (void) fclose(fd);
- if (*width > SCOLS)
- *width = SCOLS;
- if (*height > SLINES)
- *height = SLINES;
- return;
- }
-
- while (!feof(fd)) {
- int ch;
- long offset;
-
- if (ferror(fd))
- break;
-
- offset = 0;
- while (((ch = getc(fd)) != '\n') && !feof(fd)) {
- if ((ch == TAB) && (dialog_vars.tab_correct)) {
- offset += dialog_state.tab_len - (offset % dialog_state.tab_len);
- } else {
- offset++;
- }
- }
-
- if (offset > len)
- len = (int) offset;
-
- count++;
- }
-
- /* now 'count' has the number of lines of fd and 'len' the max length */
-
- *height = MIN(SLINES, count + numlines + boxlines);
- *width = MIN(SCOLS, MAX((len + nc), mincols));
- /* here width and height can be maximized if > SCOLS|SLINES because
- textbox-like widgets don't put all <file> on the screen.
- Msgbox-like widget instead have to put all <text> correctly. */
-
- (void) fclose(fd);
-}
-
-/*
- * Draw a rectangular box with line drawing characters.
- *
- * borderchar is used to color the upper/left edges.
- *
- * boxchar is used to color the right/lower edges. It also is fill-color used
- * for the box contents.
- *
- * Normally, if you are drawing a scrollable box, use menubox_border_attr for
- * boxchar, and menubox_attr for borderchar since the scroll-arrows are drawn
- * with menubox_attr at the top, and menubox_border_attr at the bottom. That
- * also (given the default color choices) produces a recessed effect.
- *
- * If you want a raised effect (and are not going to use the scroll-arrows),
- * reverse this choice.
- */
-void
-dlg_draw_box2(WINDOW *win, int y, int x, int height, int width,
- chtype boxchar, chtype borderchar, chtype borderchar2)
-{
- int i, j;
- chtype save = dlg_get_attrs(win);
-
- dlg_attrset(win, 0);
- for (i = 0; i < height; i++) {
- (void) wmove(win, y + i, x);
- for (j = 0; j < width; j++)
- if (!i && !j)
- (void) waddch(win, borderchar | dlg_boxchar(ACS_ULCORNER));
- else if (i == height - 1 && !j)
- (void) waddch(win, borderchar | dlg_boxchar(ACS_LLCORNER));
- else if (!i && j == width - 1)
- (void) waddch(win, borderchar2 | dlg_boxchar(ACS_URCORNER));
- else if (i == height - 1 && j == width - 1)
- (void) waddch(win, borderchar2 | dlg_boxchar(ACS_LRCORNER));
- else if (!i)
- (void) waddch(win, borderchar | dlg_boxchar(ACS_HLINE));
- else if (i == height - 1)
- (void) waddch(win, borderchar2 | dlg_boxchar(ACS_HLINE));
- else if (!j)
- (void) waddch(win, borderchar | dlg_boxchar(ACS_VLINE));
- else if (j == width - 1)
- (void) waddch(win, borderchar2 | dlg_boxchar(ACS_VLINE));
- else
- (void) waddch(win, boxchar | ' ');
- }
- dlg_attrset(win, save);
-}
-
-void
-dlg_draw_box(WINDOW *win, int y, int x, int height, int width,
- chtype boxchar, chtype borderchar)
-{
- dlg_draw_box2(win, y, x, height, width, boxchar, borderchar, boxchar);
-}
-
-/*
- * Search the given 'list' for the given window 'win'. Typically 'win' is an
- * input-window, i.e., a window where we might use wgetch.
- *
- * The all-windows list has normal- and shadow-windows. Since we never use the
- * shadow as an input window, normally we just look for the normal-window.
- *
- * However, the all-subwindows list stores parent/child windows rather than
- * normal/shadow windows. When searching that list, we look for the child
- * window (in the .shadow field).
- */
-static DIALOG_WINDOWS *
-find_window(DIALOG_WINDOWS * list, WINDOW *win, bool normal)
-{
- DIALOG_WINDOWS *result = 0;
- DIALOG_WINDOWS *p;
-
- for (p = list; p != 0; p = p->next) {
- WINDOW *check = normal ? p->normal : p->shadow;
- if (check == win) {
- result = p;
- break;
- }
- }
- return result;
-}
-
-#define SearchTopWindows(win) find_window(dialog_state.all_windows, win, TRUE)
-#define SearchSubWindows(win) find_window(dialog_state.all_subwindows, win, FALSE)
-
-/*
- * Check for the existence of a window, e.g., when used for input or updating
- * the display. This is used in dlg_getc() and related functions, to guard
- * against an asynchronous window-deletion that might invalidate the input
- * window used in dlg_getc().
- */
-DIALOG_WINDOWS *
-_dlg_find_window(WINDOW *win)
-{
- DIALOG_WINDOWS *result = 0;
-
- if ((result = SearchTopWindows(win)) == NULL)
- result = SearchSubWindows(win);
- return result;
-}
-
-#ifdef HAVE_COLOR
-/*
- * If we have wchgat(), use that for updating shadow attributes, to work with
- * wide-character data.
- */
-
-/*
- * Check if the given point is "in" the given window. If so, return the window
- * pointer, otherwise null.
- */
-static WINDOW *
-in_window(WINDOW *win, int y, int x)
-{
- WINDOW *result = 0;
- int y_base = getbegy(win);
- int x_base = getbegx(win);
- int y_last = getmaxy(win) + y_base;
- int x_last = getmaxx(win) + x_base;
-
- if (y >= y_base && y <= y_last && x >= x_base && x <= x_last)
- result = win;
- return result;
-}
-
-static WINDOW *
-window_at_cell(DIALOG_WINDOWS * dw, int y, int x)
-{
- WINDOW *result = 0;
- DIALOG_WINDOWS *p;
- int y_want = y + getbegy(dw->shadow);
- int x_want = x + getbegx(dw->shadow);
-
- for (p = dialog_state.all_windows; p != 0; p = p->next) {
- if (dw->normal != p->normal
- && dw->shadow != p->normal
- && (result = in_window(p->normal, y_want, x_want)) != 0) {
- break;
- }
- }
- if (result == 0) {
- result = stdscr;
- }
- return result;
-}
-
-static bool
-in_shadow(WINDOW *normal, WINDOW *shadow, int y, int x)
-{
- bool result = FALSE;
- int ybase = getbegy(normal);
- int ylast = getmaxy(normal) + ybase;
- int xbase = getbegx(normal);
- int xlast = getmaxx(normal) + xbase;
-
- y += getbegy(shadow);
- x += getbegx(shadow);
-
- if (y >= ybase + SHADOW_ROWS
- && y < ylast + SHADOW_ROWS
- && x >= xlast
- && x < xlast + SHADOW_COLS) {
- /* in the right-side */
- result = TRUE;
- } else if (y >= ylast
- && y < ylast + SHADOW_ROWS
- && x >= ybase + SHADOW_COLS
- && x < ylast + SHADOW_COLS) {
- /* check the bottom */
- result = TRUE;
- }
-
- return result;
-}
-
-/*
- * When erasing a shadow, check each cell to make sure that it is not part of
- * another box's shadow. This is a little complicated since most shadows are
- * merged onto stdscr.
- */
-static bool
-last_shadow(DIALOG_WINDOWS * dw, int y, int x)
-{
- DIALOG_WINDOWS *p;
- bool result = TRUE;
-
- for (p = dialog_state.all_windows; p != 0; p = p->next) {
- if (p->normal != dw->normal
- && in_shadow(p->normal, dw->shadow, y, x)) {
- result = FALSE;
- break;
- }
- }
- return result;
-}
-
-static void
-repaint_cell(DIALOG_WINDOWS * dw, bool draw, int y, int x)
-{
- WINDOW *win = dw->shadow;
- WINDOW *cellwin;
- int y2, x2;
-
- if ((cellwin = window_at_cell(dw, y, x)) != 0
- && (draw || last_shadow(dw, y, x))
- && (y2 = (y + getbegy(win) - getbegy(cellwin))) >= 0
- && (x2 = (x + getbegx(win) - getbegx(cellwin))) >= 0
- && wmove(cellwin, y2, x2) != ERR) {
- chtype the_cell = dlg_get_attrs(cellwin);
- chtype the_attr = (draw ? shadow_attr : the_cell);
-
- if (winch(cellwin) & A_ALTCHARSET) {
- the_attr |= A_ALTCHARSET;
- }
-#if USE_WCHGAT
- wchgat(cellwin, 1,
- the_attr & (chtype) (~A_COLOR),
- (short) PAIR_NUMBER(the_attr),
- NULL);
-#else
- {
- chtype the_char = ((winch(cellwin) & A_CHARTEXT) | the_attr);
- (void) waddch(cellwin, the_char);
- }
-#endif
- wnoutrefresh(cellwin);
- }
-}
-
-#define RepaintCell(dw, draw, y, x) repaint_cell(dw, draw, y, x)
-
-static void
-repaint_shadow(DIALOG_WINDOWS * dw, bool draw, int y, int x, int height, int width)
-{
- if (UseShadow(dw)) {
- int i, j;
-
-#if !USE_WCHGAT
- chtype save = dlg_get_attrs(dw->shadow);
- dlg_attrset(dw->shadow, draw ? shadow_attr : screen_attr);
-#endif
- for (i = 0; i < SHADOW_ROWS; ++i) {
- for (j = 0; j < width; ++j) {
- RepaintCell(dw, draw, i + y + height, j + x + SHADOW_COLS);
- }
- }
- for (i = 0; i < height; i++) {
- for (j = 0; j < SHADOW_COLS; ++j) {
- RepaintCell(dw, draw, i + y + SHADOW_ROWS, j + x + width);
- }
- }
- (void) wnoutrefresh(dw->shadow);
-#if !USE_WCHGAT
- dlg_attrset(dw->shadow, save);
-#endif
- }
-}
-
-/*
- * Draw a shadow on the parent window corresponding to the right- and
- * bottom-edge of the child window, to give a 3-dimensional look.
- */
-static void
-draw_childs_shadow(DIALOG_WINDOWS * dw)
-{
- if (UseShadow(dw)) {
- repaint_shadow(dw,
- TRUE,
- getbegy(dw->normal) - getbegy(dw->shadow),
- getbegx(dw->normal) - getbegx(dw->shadow),
- getmaxy(dw->normal),
- getmaxx(dw->normal));
- }
-}
-
-/*
- * Erase a shadow on the parent window corresponding to the right- and
- * bottom-edge of the child window.
- */
-static void
-erase_childs_shadow(DIALOG_WINDOWS * dw)
-{
- if (UseShadow(dw)) {
- repaint_shadow(dw,
- FALSE,
- getbegy(dw->normal) - getbegy(dw->shadow),
- getbegx(dw->normal) - getbegx(dw->shadow),
- getmaxy(dw->normal),
- getmaxx(dw->normal));
- }
-}
-
-/*
- * Draw shadows along the right and bottom edge to give a more 3D look
- * to the boxes.
- */
-void
-dlg_draw_shadow(WINDOW *win, int y, int x, int height, int width)
-{
- repaint_shadow(SearchTopWindows(win), TRUE, y, x, height, width);
-}
-#endif /* HAVE_COLOR */
-
-/*
- * Allow shell scripts to remap the exit codes so they can distinguish ESC
- * from ERROR.
- */
-void
-dlg_exit(int code)
-{
- /* *INDENT-OFF* */
- static const struct {
- int code;
- const char *name;
- } table[] = {
- { DLG_EXIT_CANCEL, "DIALOG_CANCEL" },
- { DLG_EXIT_ERROR, "DIALOG_ERROR" },
- { DLG_EXIT_ESC, "DIALOG_ESC" },
- { DLG_EXIT_EXTRA, "DIALOG_EXTRA" },
- { DLG_EXIT_HELP, "DIALOG_HELP" },
- { DLG_EXIT_OK, "DIALOG_OK" },
- { DLG_EXIT_ITEM_HELP, "DIALOG_ITEM_HELP" },
- { DLG_EXIT_TIMEOUT, "DIALOG_TIMEOUT" },
- };
- /* *INDENT-ON* */
-
- unsigned n;
- bool overridden = FALSE;
-
- retry:
- for (n = 0; n < TableSize(table); n++) {
- if (table[n].code == code) {
- if (dlg_getenv_num(table[n].name, &code)) {
- overridden = TRUE;
- }
- break;
- }
- }
-
- /*
- * Prior to 2004/12/19, a widget using --item-help would exit with "OK"
- * if the help button were selected. Now we want to exit with "HELP",
- * but allow the environment variable to override.
- */
- if (code == DLG_EXIT_ITEM_HELP && !overridden) {
- code = DLG_EXIT_HELP;
- goto retry;
- }
-#ifdef HAVE_DLG_TRACE
- dlg_trace((const char *) 0); /* close it */
-#endif
-
-#ifdef NO_LEAKS
- _dlg_inputstr_leaks();
-#if defined(NCURSES_VERSION) && (defined(HAVE_EXIT_CURSES) || defined(HAVE__NC_FREE_AND_EXIT))
- exit_curses(code);
-#endif
-#endif
-
- if (dialog_state.input == stdin) {
- exit(code);
- } else {
- /*
- * Just in case of using --input-fd option, do not
- * call atexit functions of ncurses which may hang.
- */
- if (dialog_state.input) {
- fclose(dialog_state.input);
- dialog_state.input = 0;
- }
- if (dialog_state.pipe_input) {
- if (dialog_state.pipe_input != stdin) {
- fclose(dialog_state.pipe_input);
- dialog_state.pipe_input = 0;
- }
- }
- _exit(code);
- }
-}
-
-#define DATA(name) { DLG_EXIT_ ## name, #name }
-/* *INDENT-OFF* */
-static struct {
- int code;
- const char *name;
-} exit_codenames[] = {
- DATA(ESC),
- DATA(UNKNOWN),
- DATA(ERROR),
- DATA(OK),
- DATA(CANCEL),
- DATA(HELP),
- DATA(EXTRA),
- DATA(ITEM_HELP),
-};
-#undef DATA
-/* *INDENT-ON* */
-
-const char *
-dlg_exitcode2s(int code)
-{
- const char *result = "?";
- size_t n;
-
- for (n = 0; n < TableSize(exit_codenames); ++n) {
- if (exit_codenames[n].code == code) {
- result = exit_codenames[n].name;
- break;
- }
- }
- return result;
-}
-
-int
-dlg_exitname2n(const char *name)
-{
- int result = DLG_EXIT_UNKNOWN;
- size_t n;
-
- for (n = 0; n < TableSize(exit_codenames); ++n) {
- if (!dlg_strcmp(exit_codenames[n].name, name)) {
- result = exit_codenames[n].code;
- break;
- }
- }
- return result;
-}
-
-/* quit program killing all tailbg */
-void
-dlg_exiterr(const char *fmt, ...)
-{
- int retval;
- va_list ap;
-
- end_dialog();
-
- (void) fputc('\n', stderr);
- va_start(ap, fmt);
- (void) vfprintf(stderr, fmt, ap);
- va_end(ap);
- (void) fputc('\n', stderr);
-
-#ifdef HAVE_DLG_TRACE
- va_start(ap, fmt);
- dlg_trace_msg("## Error: ");
- dlg_trace_va_msg(fmt, ap);
- va_end(ap);
-#endif
-
- dlg_killall_bg(&retval);
-
- (void) fflush(stderr);
- (void) fflush(stdout);
- dlg_exit(strcmp(fmt, "timeout") == 0 ? DLG_EXIT_TIMEOUT : DLG_EXIT_ERROR);
-}
-
-/*
- * Get a string from the environment, rejecting those which are entirely blank.
- */
-char *
-dlg_getenv_str(const char *name)
-{
- char *result = getenv(name);
- if (result != NULL) {
- while (*result != '\0' && isspace(UCH(*result)))
- ++result;
- if (*result == '\0')
- result = NULL;
- }
- return result;
-}
-
-/*
- * Get a number from the environment:
- * + If the caller provides a pointer in the second parameter, return
- * success/failure for the function return, and the actual value via the
- * pointer. Use this for decoding arbitrary numbers, e.g., negative or zero.
- * + If the caller does not provide a pointer, return the decoded value for
- * the function-return. Use this when only values greater than zero are
- * useful.
- */
-int
-dlg_getenv_num(const char *name, int *value)
-{
- int result = 0;
- char *data = getenv(name);
- if (data != NULL) {
- char *temp = NULL;
- long check = strtol(data, &temp, 0);
- if (temp != 0 && temp != data && *temp == '\0') {
- result = (int) check;
- if (value != NULL) {
- *value = result;
- result = 1;
- }
- }
- }
- return result;
-}
-
-void
-dlg_beeping(void)
-{
- if (dialog_vars.beep_signal) {
- (void) beep();
- dialog_vars.beep_signal = 0;
- }
-}
-
-void
-dlg_print_size(int height, int width)
-{
- if (dialog_vars.print_siz) {
- fprintf(dialog_state.output, "Size: %d, %d\n", height, width);
- DLG_TRACE(("# print size: %dx%d\n", height, width));
- }
-}
-
-void
-dlg_ctl_size(int height, int width)
-{
- if (dialog_vars.size_err) {
- if ((width > COLS) || (height > LINES)) {
- dlg_exiterr("Window too big. (height, width) = (%d, %d). Max allowed (%d, %d).",
- height, width, LINES, COLS);
- }
-#ifdef HAVE_COLOR
- else if ((dialog_state.use_shadow)
- && ((width > SCOLS || height > SLINES))) {
- if ((width <= COLS) && (height <= LINES)) {
- /* try again, without shadows */
- dialog_state.use_shadow = 0;
- } else {
- dlg_exiterr("Window+Shadow too big. (height, width) = (%d, %d). Max allowed (%d, %d).",
- height, width, SLINES, SCOLS);
- }
- }
-#endif
- }
-}
-
-/*
- * If the --tab-correct was not selected, convert tabs to single spaces.
- */
-void
-dlg_tab_correct_str(char *prompt)
-{
- char *ptr;
-
- if (dialog_vars.tab_correct) {
- while ((ptr = strchr(prompt, TAB)) != NULL) {
- *ptr = ' ';
- prompt = ptr;
- }
- }
-}
-
-void
-dlg_calc_listh(int *height, int *list_height, int item_no)
-{
- /* calculate new height and list_height */
- int rows = SLINES - (dialog_vars.begin_set ? dialog_vars.begin_y : 0);
- if (rows - (*height) > 0) {
- if (rows - (*height) > item_no)
- *list_height = item_no;
- else
- *list_height = rows - (*height);
- }
- (*height) += (*list_height);
-}
-
-/* obsolete */
-int
-dlg_calc_listw(int item_no, char **items, int group)
-{
- int i, len1 = 0, len2 = 0;
-
- for (i = 0; i < (item_no * group); i += group) {
- int n;
-
- if ((n = dlg_count_columns(items[i])) > len1)
- len1 = n;
- if ((n = dlg_count_columns(items[i + 1])) > len2)
- len2 = n;
- }
- return len1 + len2;
-}
-
-int
-dlg_calc_list_width(int item_no, DIALOG_LISTITEM * items)
-{
- int n, i, len1 = 0, len2 = 0;
- int bits = ((dialog_vars.no_tags ? 1 : 0)
- + (dialog_vars.no_items ? 2 : 0));
-
- for (i = 0; i < item_no; ++i) {
- switch (bits) {
- case 0:
- /* FALLTHRU */
- case 1:
- if ((n = dlg_count_columns(items[i].name)) > len1)
- len1 = n;
- if ((n = dlg_count_columns(items[i].text)) > len2)
- len2 = n;
- break;
- case 2:
- /* FALLTHRU */
- case 3:
- if ((n = dlg_count_columns(items[i].name)) > len1)
- len1 = n;
- break;
- }
- }
- return len1 + len2;
-}
-
-char *
-dlg_strempty(void)
-{
- static char empty[] = "";
- return empty;
-}
-
-char *
-dlg_strclone(const char *cprompt)
-{
- char *prompt = 0;
- if (cprompt != 0) {
- prompt = dlg_malloc(char, strlen(cprompt) + 1);
- assert_ptr(prompt, "dlg_strclone");
- strcpy(prompt, cprompt);
- }
- return prompt;
-}
-
-chtype
-dlg_asciibox(chtype ch)
-{
- chtype result = 0;
-
- if (ch == ACS_ULCORNER)
- result = '+';
- else if (ch == ACS_LLCORNER)
- result = '+';
- else if (ch == ACS_URCORNER)
- result = '+';
- else if (ch == ACS_LRCORNER)
- result = '+';
- else if (ch == ACS_HLINE)
- result = '-';
- else if (ch == ACS_VLINE)
- result = '|';
- else if (ch == ACS_LTEE)
- result = '+';
- else if (ch == ACS_RTEE)
- result = '+';
- else if (ch == ACS_UARROW)
- result = '^';
- else if (ch == ACS_DARROW)
- result = 'v';
-
- return result;
-}
-
-chtype
-dlg_boxchar(chtype ch)
-{
- chtype result = dlg_asciibox(ch);
-
- if (result != 0) {
- if (dialog_vars.ascii_lines)
- ch = result;
- else if (dialog_vars.no_lines)
- ch = ' ';
- }
- return ch;
-}
-
-int
-dlg_box_x_ordinate(int width)
-{
- int x;
-
- if (dialog_vars.begin_set == 1) {
- x = dialog_vars.begin_x;
- } else {
- /* center dialog box on screen unless --begin-set */
- x = (SCOLS - width) / 2;
- }
- return x;
-}
-
-int
-dlg_box_y_ordinate(int height)
-{
- int y;
-
- if (dialog_vars.begin_set == 1) {
- y = dialog_vars.begin_y;
- } else {
- /* center dialog box on screen unless --begin-set */
- y = (SLINES - height) / 2;
- }
- return y;
-}
-
-void
-dlg_draw_title(WINDOW *win, const char *title)
-{
- if (title != NULL) {
- chtype attr = A_NORMAL;
- chtype save = dlg_get_attrs(win);
- int x = centered(getmaxx(win), title);
-
- dlg_attrset(win, title_attr);
- wmove(win, 0, x);
- dlg_print_text(win, title, getmaxx(win) - x, &attr);
- dlg_attrset(win, save);
- dlg_finish_string(title);
- }
-}
-
-void
-dlg_draw_bottom_box2(WINDOW *win, chtype on_left, chtype on_right, chtype on_inside)
-{
- int width = getmaxx(win);
- int height = getmaxy(win);
- int i;
-
- dlg_attrset(win, on_left);
- (void) wmove(win, height - 3, 0);
- (void) waddch(win, dlg_boxchar(ACS_LTEE));
- for (i = 0; i < width - 2; i++)
- (void) waddch(win, dlg_boxchar(ACS_HLINE));
- dlg_attrset(win, on_right);
- (void) waddch(win, dlg_boxchar(ACS_RTEE));
- dlg_attrset(win, on_inside);
- (void) wmove(win, height - 2, 1);
- for (i = 0; i < width - 2; i++)
- (void) waddch(win, ' ');
-}
-
-void
-dlg_draw_bottom_box(WINDOW *win)
-{
- dlg_draw_bottom_box2(win, border_attr, dialog_attr, dialog_attr);
-}
-
-/*
- * Remove a window, repainting everything else. This would be simpler if we
- * used the panel library, but that is not _always_ available.
- */
-void
-dlg_del_window(WINDOW *win)
-{
- DIALOG_WINDOWS *p, *q, *r;
-
- /*
- * If --keep-window was set, do not delete/repaint the windows.
- */
- if (dialog_vars.keep_window)
- return;
-
- /* Leave the main window untouched if there are no background windows.
- * We do this so the current window will not be cleared on exit, allowing
- * things like the infobox demo to run without flicker.
- */
- if (dialog_state.getc_callbacks != 0) {
- touchwin(stdscr);
- wnoutrefresh(stdscr);
- }
-
- for (p = dialog_state.all_windows, q = r = 0; p != 0; r = p, p = p->next) {
- if (p->normal == win) {
- q = p; /* found a match - should be only one */
- if (r == 0) {
- dialog_state.all_windows = p->next;
- } else {
- r->next = p->next;
- }
- } else {
- if (p->shadow != 0) {
- touchwin(p->shadow);
- wnoutrefresh(p->shadow);
- }
- touchwin(p->normal);
- wnoutrefresh(p->normal);
- }
- }
-
- if (q) {
- if (dialog_state.all_windows != 0)
- erase_childs_shadow(q);
- del_subwindows(q->normal);
- dlg_unregister_window(q->normal);
- delwin(q->normal);
- free(q);
- }
- doupdate();
-}
-
-/*
- * Create a window, optionally with a shadow.
- */
-WINDOW *
-dlg_new_window(int height, int width, int y, int x)
-{
- return dlg_new_modal_window(stdscr, height, width, y, x);
-}
-
-/*
- * "Modal" windows differ from normal ones by having a shadow in a window
- * separate from the standard screen.
- */
-WINDOW *
-dlg_new_modal_window(WINDOW *parent, int height, int width, int y, int x)
-{
- WINDOW *win;
- DIALOG_WINDOWS *p = dlg_calloc(DIALOG_WINDOWS, 1);
-
- (void) parent;
- if (p == 0
- || (win = newwin(height, width, y, x)) == 0) {
- dlg_exiterr("Can't make new window at (%d,%d), size (%d,%d).\n",
- y, x, height, width);
- }
- p->next = dialog_state.all_windows;
- p->normal = win;
- p->getc_timeout = WTIMEOUT_OFF;
- dialog_state.all_windows = p;
-#ifdef HAVE_COLOR
- if (dialog_state.use_shadow) {
- p->shadow = parent;
- draw_childs_shadow(p);
- }
-#endif
-
- (void) keypad(win, TRUE);
- return win;
-}
-
-/*
- * dlg_getc() uses the return-value to determine how to handle an ERR return
- * from a non-blocking read:
- * a) if greater than zero, there was an expired timeout (blocking for a short
- * time), or
- * b) if zero, it was a non-blocking read, or
- * c) if negative, an error occurred on a blocking read.
- */
-int
-dlg_set_timeout(WINDOW *win, bool will_getc)
-{
- DIALOG_WINDOWS *p;
- int result = 0;
-
- if ((p = SearchTopWindows(win)) != NULL) {
- int interval = (dialog_vars.timeout_secs * 1000);
-
- if (will_getc || dialog_vars.pause_secs) {
- interval = WTIMEOUT_VAL;
- } else {
- result = interval;
- if (interval <= 0) {
- interval = WTIMEOUT_OFF;
- }
- }
- wtimeout(win, interval);
- p->getc_timeout = interval;
- }
- return result;
-}
-
-void
-dlg_reset_timeout(WINDOW *win)
-{
- DIALOG_WINDOWS *p;
-
- if ((p = SearchTopWindows(win)) != NULL) {
- wtimeout(win, p->getc_timeout);
- } else {
- wtimeout(win, WTIMEOUT_OFF);
- }
-}
-
-/*
- * Move/Resize a window, optionally with a shadow.
- */
-#ifdef KEY_RESIZE
-void
-dlg_move_window(WINDOW *win, int height, int width, int y, int x)
-{
- if (win != 0) {
- DIALOG_WINDOWS *p;
-
- dlg_ctl_size(height, width);
-
- if ((p = SearchTopWindows(win)) != 0) {
- (void) wresize(win, height, width);
- (void) mvwin(win, y, x);
-#ifdef HAVE_COLOR
- if (p->shadow != 0) {
- if (dialog_state.use_shadow) {
- (void) mvwin(p->shadow, y + SHADOW_ROWS, x + SHADOW_COLS);
- } else {
- p->shadow = 0;
- }
- }
-#endif
- (void) refresh();
-
-#ifdef HAVE_COLOR
- draw_childs_shadow(p);
-#endif
- }
- }
-}
-
-/*
- * Having just received a KEY_RESIZE, wait a short time to ignore followup
- * KEY_RESIZE events.
- */
-void
-dlg_will_resize(WINDOW *win)
-{
- int n, base;
- int caught = 0;
-
- dialog_state.had_resize = TRUE;
- dlg_trace_win(win);
- wtimeout(win, WTIMEOUT_VAL * 5);
-
- for (n = base = 0; n < base + 10; ++n) {
- int ch;
-
- if ((ch = wgetch(win)) != ERR) {
- if (ch == KEY_RESIZE) {
- base = n;
- ++caught;
- } else if (ch != ERR) {
- ungetch(ch);
- break;
- }
- }
- }
- dlg_reset_timeout(win);
- DLG_TRACE(("# caught %d KEY_RESIZE key%s\n",
- 1 + caught,
- caught == 1 ? "" : "s"));
-}
-#endif /* KEY_RESIZE */
-
-WINDOW *
-dlg_der_window(WINDOW *parent, int height, int width, int y, int x)
-{
- WINDOW *win;
-
- /* existing uses of derwin are (almost) guaranteed to succeed, and the
- * caller has to allow for failure.
- */
- if ((win = derwin(parent, height, width, y, x)) != 0) {
- add_subwindow(parent, win);
- (void) keypad(win, TRUE);
- }
- return win;
-}
-
-WINDOW *
-dlg_sub_window(WINDOW *parent, int height, int width, int y, int x)
-{
- WINDOW *win;
-
- if ((win = subwin(parent, height, width, y, x)) == 0) {
- dlg_exiterr("Can't make sub-window at (%d,%d), size (%d,%d).\n",
- y, x, height, width);
- }
-
- add_subwindow(parent, win);
- (void) keypad(win, TRUE);
- return win;
-}
-
-/* obsolete */
-int
-dlg_default_item(char **items, int llen)
-{
- int result = 0;
-
- if (dialog_vars.default_item != 0) {
- int count = 0;
- while (*items != 0) {
- if (!strcmp(dialog_vars.default_item, *items)) {
- result = count;
- break;
- }
- items += llen;
- count++;
- }
- }
- return result;
-}
-
-int
-dlg_default_listitem(DIALOG_LISTITEM * items)
-{
- int result = 0;
-
- if (dialog_vars.default_item != 0) {
- int count = 0;
- while (items->name != 0) {
- if (!strcmp(dialog_vars.default_item, items->name)) {
- result = count;
- break;
- }
- ++items;
- count++;
- }
- }
- return result;
-}
-
-/*
- * Draw the string for item_help
- */
-void
-dlg_item_help(const char *txt)
-{
- if (USE_ITEM_HELP(txt)) {
- chtype attr = A_NORMAL;
-
- dlg_attrset(stdscr, itemhelp_attr);
- (void) wmove(stdscr, LINES - 1, 0);
- (void) wclrtoeol(stdscr);
- (void) addch(' ');
- dlg_print_text(stdscr, txt, COLS - 1, &attr);
-
- if (itemhelp_attr & A_COLOR) {
- int y, x;
- /* fill the remainder of the line with the window's attributes */
- getyx(stdscr, y, x);
- (void) y;
- while (x < COLS) {
- (void) addch(' ');
- ++x;
- }
- }
- (void) wnoutrefresh(stdscr);
- }
-}
-
-#ifndef HAVE_STRCASECMP
-int
-dlg_strcmp(const char *a, const char *b)
-{
- int ac, bc, cmp;
-
- for (;;) {
- ac = UCH(*a++);
- bc = UCH(*b++);
- if (isalpha(ac) && islower(ac))
- ac = _toupper(ac);
- if (isalpha(bc) && islower(bc))
- bc = _toupper(bc);
- cmp = ac - bc;
- if (ac == 0 || bc == 0 || cmp != 0)
- break;
- }
- return cmp;
-}
-#endif
-
-/*
- * Returns true if 'dst' points to a blank which follows another blank which
- * is not a leading blank on a line.
- */
-static bool
-trim_blank(char *base, char *dst)
-{
- int count = !!isblank(UCH(*dst));
-
- while (dst-- != base) {
- if (*dst == '\n') {
- break;
- } else if (isblank(UCH(*dst))) {
- count++;
- } else {
- break;
- }
- }
- return (count > 1);
-}
-
-/*
- * Change embedded "\n" substrings to '\n' characters and tabs to single
- * spaces. If there are no "\n"s, it will strip all extra spaces, for
- * justification. If it has "\n"'s, it will preserve extra spaces. If cr_wrap
- * is set, it will preserve '\n's.
- */
-void
-dlg_trim_string(char *s)
-{
- char *base = s;
- char *p1;
- char *p = s;
- int has_newlines = !dialog_vars.no_nl_expand && (strstr(s, "\\n") != 0);
-
- while (*p != '\0') {
- if (*p == TAB && !dialog_vars.nocollapse)
- *p = ' ';
-
- if (has_newlines) { /* If prompt contains "\n" strings */
- if (*p == '\\' && *(p + 1) == 'n') {
- *s++ = '\n';
- p += 2;
- p1 = p;
- /*
- * Handle end of lines intelligently. If '\n' follows "\n"
- * then ignore the '\n'. This eliminates the need to escape
- * the '\n' character (no need to use "\n\").
- */
- while (isblank(UCH(*p1)))
- p1++;
- if (*p1 == '\n')
- p = p1 + 1;
- } else if (*p == '\n') {
- if (dialog_vars.cr_wrap)
- *s++ = *p++;
- else {
- /* Replace the '\n' with a space if cr_wrap is not set */
- if (!trim_blank(base, p))
- *s++ = ' ';
- p++;
- }
- } else /* If *p != '\n' */
- *s++ = *p++;
- } else if (dialog_vars.trim_whitespace) {
- if (isblank(UCH(*p))) {
- if (!isblank(UCH(*(s - 1)))) {
- *s++ = ' ';
- p++;
- } else
- p++;
- } else if (*p == '\n') {
- if (dialog_vars.cr_wrap)
- *s++ = *p++;
- else if (!isblank(UCH(*(s - 1)))) {
- /* Strip '\n's if cr_wrap is not set. */
- *s++ = ' ';
- p++;
- } else
- p++;
- } else
- *s++ = *p++;
- } else { /* If there are no "\n" strings */
- if (isblank(UCH(*p)) && !dialog_vars.nocollapse) {
- if (!trim_blank(base, p))
- *s++ = *p;
- p++;
- } else
- *s++ = *p++;
- }
- }
-
- *s = '\0';
-}
-
-void
-dlg_set_focus(WINDOW *parent, WINDOW *win)
-{
- if (win != 0) {
- (void) wmove(parent,
- getpary(win) + getcury(win),
- getparx(win) + getcurx(win));
- (void) wnoutrefresh(win);
- (void) doupdate();
- }
-}
-
-/*
- * Returns the nominal maximum buffer size.
- */
-int
-dlg_max_input(int max_len)
-{
- if (dialog_vars.max_input != 0 && dialog_vars.max_input < MAX_LEN)
- max_len = dialog_vars.max_input;
-
- return max_len;
-}
-
-/*
- * Free storage used for the result buffer.
- */
-void
-dlg_clr_result(void)
-{
- if (dialog_vars.input_length) {
- dialog_vars.input_length = 0;
- if (dialog_vars.input_result)
- free(dialog_vars.input_result);
- }
- dialog_vars.input_result = 0;
-}
-
-/*
- * Setup a fixed-buffer for the result.
- */
-char *
-dlg_set_result(const char *string)
-{
- unsigned need = string ? (unsigned) strlen(string) + 1 : 0;
-
- /* inputstr.c needs a fixed buffer */
- if (need < MAX_LEN)
- need = MAX_LEN;
-
- /*
- * If the buffer is not big enough, allocate a new one.
- */
- if (dialog_vars.input_length != 0
- || dialog_vars.input_result == 0
- || need > MAX_LEN) {
-
- dlg_clr_result();
-
- dialog_vars.input_length = need;
- dialog_vars.input_result = dlg_malloc(char, need);
- assert_ptr(dialog_vars.input_result, "dlg_set_result");
- }
-
- strcpy(dialog_vars.input_result, string ? string : "");
-
- return dialog_vars.input_result;
-}
-
-/*
- * Accumulate results in dynamically allocated buffer.
- * If input_length is zero, it is a MAX_LEN buffer belonging to the caller.
- */
-void
-dlg_add_result(const char *string)
-{
- unsigned have = (dialog_vars.input_result
- ? (unsigned) strlen(dialog_vars.input_result)
- : 0);
- unsigned want = (unsigned) strlen(string) + 1 + have;
-
- if ((want >= MAX_LEN)
- || (dialog_vars.input_length != 0)
- || (dialog_vars.input_result == 0)) {
-
- if (dialog_vars.input_length == 0
- || dialog_vars.input_result == 0) {
-
- char *save_result = dialog_vars.input_result;
-
- dialog_vars.input_length = want * 2;
- dialog_vars.input_result = dlg_malloc(char, dialog_vars.input_length);
- assert_ptr(dialog_vars.input_result, "dlg_add_result malloc");
- dialog_vars.input_result[0] = '\0';
- if (save_result != 0)
- strcpy(dialog_vars.input_result, save_result);
- } else if (want >= dialog_vars.input_length) {
- dialog_vars.input_length = want * 2;
- dialog_vars.input_result = dlg_realloc(char,
- dialog_vars.input_length,
- dialog_vars.input_result);
- assert_ptr(dialog_vars.input_result, "dlg_add_result realloc");
- }
- }
- strcat(dialog_vars.input_result, string);
-}
-
-/*
- * These are characters that (aside from the quote-delimiter) will have to
- * be escaped in a single- or double-quoted string.
- */
-#define FIX_SINGLE "\n\\"
-#define FIX_DOUBLE FIX_SINGLE "[]{}?*;`~#$^&()|<>"
-
-/*
- * Returns the quote-delimiter.
- */
-static const char *
-quote_delimiter(void)
-{
- return dialog_vars.single_quoted ? "'" : "\"";
-}
-
-/*
- * Returns true if we should quote the given string.
- */
-static bool
-must_quote(char *string)
-{
- bool code = FALSE;
-
- if (*string != '\0') {
- size_t len = strlen(string);
- if (strcspn(string, quote_delimiter()) != len)
- code = TRUE;
- else if (strcspn(string, "\n\t ") != len)
- code = TRUE;
- else
- code = (strcspn(string, FIX_DOUBLE) != len);
- } else {
- code = TRUE;
- }
-
- return code;
-}
-
-/*
- * Add a quoted string to the result buffer.
- */
-void
-dlg_add_quoted(char *string)
-{
- char temp[2];
- const char *my_quote = quote_delimiter();
- const char *must_fix = (dialog_vars.single_quoted
- ? FIX_SINGLE
- : FIX_DOUBLE);
-
- if (must_quote(string)) {
- temp[1] = '\0';
- dlg_add_result(my_quote);
- while (*string != '\0') {
- temp[0] = *string++;
- if ((strchr) (my_quote, *temp) || (strchr) (must_fix, *temp))
- dlg_add_result("\\");
- dlg_add_result(temp);
- }
- dlg_add_result(my_quote);
- } else {
- dlg_add_result(string);
- }
-}
-
-/*
- * When adding a result, make that depend on whether "--quoted" is used.
- */
-void
-dlg_add_string(char *string)
-{
- if (dialog_vars.quoted) {
- dlg_add_quoted(string);
- } else {
- dlg_add_result(string);
- }
-}
-
-bool
-dlg_need_separator(void)
-{
- bool result = FALSE;
-
- if (dialog_vars.output_separator) {
- result = TRUE;
- } else if (dialog_vars.input_result && *(dialog_vars.input_result)) {
- result = TRUE;
- }
- return result;
-}
-
-void
-dlg_add_separator(void)
-{
- const char *separator = (dialog_vars.separate_output) ? "\n" : " ";
-
- if (dialog_vars.output_separator)
- separator = dialog_vars.output_separator;
-
- dlg_add_result(separator);
-}
-
-#define HELP_PREFIX "HELP "
-
-void
-dlg_add_help_listitem(int *result, char **tag, DIALOG_LISTITEM * item)
-{
- dlg_add_result(HELP_PREFIX);
- if (USE_ITEM_HELP(item->help)) {
- *tag = dialog_vars.help_tags ? item->name : item->help;
- *result = DLG_EXIT_ITEM_HELP;
- } else {
- *tag = item->name;
- }
-}
-
-void
-dlg_add_help_formitem(int *result, char **tag, DIALOG_FORMITEM * item)
-{
- dlg_add_result(HELP_PREFIX);
- if (USE_ITEM_HELP(item->help)) {
- *tag = dialog_vars.help_tags ? item->name : item->help;
- *result = DLG_EXIT_ITEM_HELP;
- } else {
- *tag = item->name;
- }
-}
-
-/*
- * Some widgets support only one value of a given variable - save/restore the
- * global dialog_vars so we can override it consistently.
- */
-void
-dlg_save_vars(DIALOG_VARS * vars)
-{
- *vars = dialog_vars;
-}
-
-/*
- * Most of the data in DIALOG_VARS is normally set by command-line options.
- * The input_result member is an exception; it is normally set by the dialog
- * library to return result values.
- */
-void
-dlg_restore_vars(DIALOG_VARS * vars)
-{
- char *save_result = dialog_vars.input_result;
- unsigned save_length = dialog_vars.input_length;
-
- dialog_vars = *vars;
- dialog_vars.input_result = save_result;
- dialog_vars.input_length = save_length;
-}
-
-/*
- * Called each time a widget is invoked which may do output, increment a count.
- */
-void
-dlg_does_output(void)
-{
- dialog_state.output_count += 1;
-}
-
-/*
- * Compatibility for different versions of curses.
- */
-#if !(defined(HAVE_GETBEGX) && defined(HAVE_GETBEGY))
-int
-dlg_getbegx(WINDOW *win)
-{
- int y, x;
- getbegyx(win, y, x);
- (void) y;
- return x;
-}
-int
-dlg_getbegy(WINDOW *win)
-{
- int y, x;
- getbegyx(win, y, x);
- (void) x;
- return y;
-}
-#endif
-
-#if !(defined(HAVE_GETCURX) && defined(HAVE_GETCURY))
-int
-dlg_getcurx(WINDOW *win)
-{
- int y, x;
- getyx(win, y, x);
- (void) y;
- return x;
-}
-int
-dlg_getcury(WINDOW *win)
-{
- int y, x;
- getyx(win, y, x);
- (void) x;
- return y;
-}
-#endif
-
-#if !(defined(HAVE_GETMAXX) && defined(HAVE_GETMAXY))
-int
-dlg_getmaxx(WINDOW *win)
-{
- int y, x;
- getmaxyx(win, y, x);
- (void) y;
- return x;
-}
-int
-dlg_getmaxy(WINDOW *win)
-{
- int y, x;
- getmaxyx(win, y, x);
- (void) x;
- return y;
-}
-#endif
-
-#if !(defined(HAVE_GETPARX) && defined(HAVE_GETPARY))
-int
-dlg_getparx(WINDOW *win)
-{
- int y, x;
- getparyx(win, y, x);
- (void) y;
- return x;
-}
-int
-dlg_getpary(WINDOW *win)
-{
- int y, x;
- getparyx(win, y, x);
- (void) x;
- return y;
-}
-#endif
-
-#ifdef NEED_WGETPARENT
-WINDOW *
-dlg_wgetparent(WINDOW *win)
-{
-#undef wgetparent
- WINDOW *result = 0;
- DIALOG_WINDOWS *p;
-
- for (p = dialog_state.all_subwindows; p != 0; p = p->next) {
- if (p->shadow == win) {
- result = p->normal;
- break;
- }
- }
- return result;
-}
-#endif
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/dialog.m4
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/dialog.m4 (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/dialog.m4 (nonexistent)
@@ -1,324 +0,0 @@
-dnl #
-dnl # /usr/share/aclocal/dialog.m4
-dnl #
-dnl # Configure paths for dialog
-dnl # Andrew V.Kosteltsev
-
-dnl ============================================================
-dnl
-dnl Synopsis:
-dnl AC_CHECK_DIALOG([MIN-VERSION [, # minimum dialog version, e.g. 1.3-20190211
-dnl DEFAULT-WITH-DIALOG [, # default value for --with-dialog option
-dnl DEFAULT-WITH-DIALOG-TEST [,# default value for --with-dialog-test option
-dnl EXTEND-VARS [, # whether CFLAGS/LDFLAGS/etc are extended
-dnl ACTION-IF-FOUND [, # action to perform if dialog was found
-dnl ACTION-IF-NOT-FOUND # action to perform if dialog was not found
-dnl ]]]]]])
-dnl Examples:
-dnl AC_CHECK_DIALOG(1.3-20210621)
-dnl AC_CHECK_DIALOG(1.3-20210621,,,no,CFLAGS="$CFLAGS -DHAVE_DIALOG $DIALOG_CFLAGS")
-dnl AC_CHECK_DIALOG(1.3-20210621,yes,yes,yes,CFLAGS="$CFLAGS -DHAVE_DIALOG")
-dnl
-dnl
-dnl If you have to change prefix returned by dialog-config script or change
-dnl location of dialog-config, you may set environment variable DIALOG_CONFIG,
-dnl for example:
-dnl
-dnl # export DIALOG_CONFIG="dialog-config --prefix=/usr/local"
-dnl # export DIALOG_CONFIG="/usr/bin/dialog-config --prefix=/usr/local"
-dnl
-dnl ============================================================
-dnl
-dnl ============================================================
-dnl auxilliary macros
-dnl ============================================================
-AC_DEFUN([_AC_DIALOG_ERROR], [dnl
-AC_MSG_RESULT([*FAILED*])
-cat <<EOT | sed -e 's/^[[ ]]*/ | /' -e 's/>>/ /' 1>&2
-$1
-EOT
-exit 1
-])
-
-AC_DEFUN([_AC_DIALOG_VERBOSE], [dnl
-if test ".$verbose" = .yes; then
- AC_MSG_RESULT([ $1])
-fi
-])
-
-dnl ============================================================
-dnl the user macro
-dnl ============================================================
-AC_DEFUN([AC_CHECK_DIALOG], [dnl
-dnl
-dnl ============================================================
-dnl prerequisites
-dnl ============================================================
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_CPP])dnl
-dnl
-dnl ============================================================
-dnl set DIALOG_CONFIG variable
-dnl ============================================================
-if test -z "$DIALOG_CONFIG"; then
- DIALOG_CONFIG='dialog-config'
-fi
-dnl
-DIALOG_CFLAGS=''
-DIALOG_LDFLAGS=''
-DIALOG_LIBS=''
-AC_SUBST(DIALOG_CFLAGS)
-AC_SUBST(DIALOG_LDFLAGS)
-AC_SUBST(DIALOG_LIBS)
-dnl
-dnl ============================================================
-dnl command line options
-dnl ============================================================
-_AC_DIALOG_VERBOSE([])
-AC_ARG_WITH(dialog,dnl
-[ --with-dialog[=ARG] Build with dialog Library (default=]ifelse([$2],,yes,$2)[)],dnl
-,dnl
-with_dialog="ifelse([$2],,yes,$2)"
-)dnl
-AC_ARG_WITH(dialog-test,dnl
-[ --with-dialog-test Perform dialog Sanity Test (default=]ifelse([$3],,yes,$3)[)],dnl
-,dnl
-with_dialog_test="ifelse([$3],,yes,$3)"
-)dnl
-_AC_DIALOG_VERBOSE([+ Command Line Options:])
-_AC_DIALOG_VERBOSE([ o --with-dialog=$with_dialog])
-_AC_DIALOG_VERBOSE([ o --with-dialog-test=$with_dialog_test])
-dnl
-dnl ============================================================
-dnl configuration
-dnl ============================================================
-if test ".$with_dialog" != .no; then
- dialog_subdir=no
- dialog_subdir_opts=''
- case "$with_dialog" in
- subdir:* )
- dialog_subdir=yes
- changequote(, )dnl
- dialog_subdir_opts=`echo $with_dialog | sed -e 's/^subdir:[^ ]*[ ]*//'`
- with_dialog=`echo $with_dialog | sed -e 's/^subdir:\([^ ]*\).*$/\1/'`
- changequote([, ])dnl
- ;;
- esac
- dialog_version=""
- dialog_location=""
- dialog_type=""
- dialog_cflags=""
- dialog_ldflags=""
- dialog_libs=""
- if test ".$with_dialog" = .yes; then
- # via config script in $PATH
- changequote(, )dnl
- dialog_version=`($DIALOG_CONFIG --version) 2>/dev/null |\
- sed -e 's/^.*\([0-9]\.[0-9]*[-][0-9]*\).*$/\1/'`
- changequote([, ])dnl
- if test ".$dialog_version" != .; then
- dialog_location=`$DIALOG_CONFIG --prefix`
- dialog_type='installed'
- dialog_cflags=`$DIALOG_CONFIG --cflags`
- dialog_ldflags=`$DIALOG_CONFIG --ldflags`
- dialog_libs=`$DIALOG_CONFIG --libs`
- fi
- elif test -d "$with_dialog"; then
- with_dialog=`echo $with_dialog | sed -e 's;/*$;;'`
- dialog_found=no
- # via config script under a specified directory
- # (a standard installation, but not a source tree)
- if test ".$dialog_found" = .no; then
- for _dir in $with_dialog/bin $with_dialog; do
- if test -f "$_dir/dialog-config"; then
- test -f "$_dir/dialog-config.in" && continue # dialog-config in source tree!
- changequote(, )dnl
- dialog_version=`($_dir/dialog-config --version) 2>/dev/null |\
- sed -e 's/^.*\([0-9]\.[0-9]*[.][0-9]*\).*$/\1/'`
- changequote([, ])dnl
- if test ".$dialog_version" != .; then
- dialog_location=`$_dir/dialog-config --prefix`
- dialog_type="installed"
- dialog_cflags=`$_dir/dialog-config --cflags`
- dialog_ldflags=`$_dir/dialog-config --ldflags`
- dialog_libs=`$_dir/dialog-config --libs`
- dialog_found=yes
- break
- fi
- fi
- done
- fi
- fi
- _AC_DIALOG_VERBOSE([+ Determined Location:])
- _AC_DIALOG_VERBOSE([ o path: $dialog_location])
- _AC_DIALOG_VERBOSE([ o type: $dialog_type])
- if test ".$dialog_version" = .; then
- if test ".$with_dialog" != .yes; then
- _AC_DIALOG_ERROR([dnl
- Unable to locate dialog under $with_dialog.
- Please specify the correct path to either a dialog installation tree
- (use --with-dialog=DIR if you used --prefix=DIR for installing dialog in
- the past).])
- else
- _AC_DIALOG_ERROR([dnl
- Unable to locate dialog in any system-wide location (see \$PATH).
- Please specify the correct path to either a dialog installation tree
- (use --with-dialog=DIR if you used --prefix=DIR for installing dialog in
- the past, or set the DIALOG_CONFIG environment variable to the full path
- to dialog-config).])
- fi
- fi
- dnl ========================================================
- dnl Check whether the found version is sufficiently new
- dnl ========================================================
- _req_version="ifelse([$1],,1.0.0,$1)"
- for _var in dialog_version _req_version; do
- eval "_val=\"\$${_var}\""
- _major=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[.]]\)\([[0-9]]*\)/\1/'`
- _minor=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[.]]\)\([[0-9]]*\)/\2/'`
- _micro=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[.]]\)\([[0-9]]*\)/\4/'`
- _hex=`echo dummy | awk '{ printf("%d%02d%02d", major, minor, micro); }' \
- "major=$_major" "minor=$_minor" "micro=$_micro"`
- eval "${_var}_hex=\"\$_hex\""
- done
- _AC_DIALOG_VERBOSE([+ Determined Versions:])
- _AC_DIALOG_VERBOSE([ o existing: $dialog_version -> 0x$dialog_version_hex])
- _AC_DIALOG_VERBOSE([ o required: $_req_version -> 0x$_req_version_hex])
- _ok=0
- if test ".$dialog_version_hex" != .; then
- if test ".$_req_version_hex" != .; then
- if test $dialog_version_hex -ge $_req_version_hex; then
- _ok=1
- fi
- fi
- fi
- if test ".$_ok" = .0; then
- _AC_DIALOG_ERROR([dnl
- Found dialog version $dialog_version, but required at least version $_req_version.
- Upgrade dialog under $dialog_location to $_req_version or higher first, please.])
- fi
- dnl ========================================================
- dnl Perform dialog Sanity Compile Check
- dnl ========================================================
- if test ".$with_dialog_test" = .yes; then
- _ac_save_CFLAGS="$CFLAGS"
- _ac_save_LDFLAGS="$LDFLAGS"
- _ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $dialog_cflags"
- LDFLAGS="$LDFLAGS $dialog_ldflags"
- LIBS="$LIBS $dialog_libs"
- _AC_DIALOG_VERBOSE([+ Test Build Environment:])
- _AC_DIALOG_VERBOSE([ o CFLAGS="$CFLAGS"])
- _AC_DIALOG_VERBOSE([ o LDFLAGS="$LDFLAGS"])
- _AC_DIALOG_VERBOSE([ o LIBS="$LIBS"])
- cross_compile=no
- define([_code1], [
-#include <stdlib.h>
-#include <stdio.h>
-#include <strings.h> /* index(3) */
-
-#include <dialog.h>
-#include <dlg_colors.h>
-#include <dlg_keys.h>
- ])
- define([_code2], [
- int status = 0;
-
- bzero( (void *)&dialog_vars, sizeof(DIALOG_VARS) );
-
- init_dialog(stdin, stdout);
-
- dialog_vars.colors = 1;
- dialog_vars.backtitle = "Test dialog Library";
- dialog_vars.dlg_clear_screen = 1;
- dialog_vars.sleep_secs = 1;
-
-
- dlg_put_backtitle();
-
- /*************************************************
- Ruler: 68 characters + 2 spaces left and right:
-
- | ----handy-ruler----------------------------------------------------- | */
- status = dialog_msgbox( " Dialog ==>libdialog<== [required] ",
- "\nPackage is installed and corect.\n",
- 5, 72, 0 );
-
- if( dialog_vars.sleep_secs )
- (void)napms(dialog_vars.sleep_secs * 1000);
-
- if( dialog_vars.dlg_clear_screen )
- {
- dlg_clear();
- (void)refresh();
- }
- end_dialog();
- ])
- _AC_DIALOG_VERBOSE([+ Performing Sanity Checks:])
- _AC_DIALOG_VERBOSE([ o pre-processor test])
- AC_PREPROC_IFELSE([AC_LANG_PROGRAM([_code1], [_code2])], [_ok=yes], [_ok=no])
- if test ".$_ok" != .yes; then
- _AC_DIALOG_ERROR([dnl
- Found dialog $dialog_version under $dialog_location, but
- was unable to perform a sanity pre-processor check. This means
- the dialog header dialog.h was not found.
- We used the following build environment:
- >> CPP="$CPP"
- See config.log for possibly more details.])
- fi
- _AC_DIALOG_VERBOSE([ o link check])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([_code1], [_code2])], [_ok=yes], [_ok=no])
- if test ".$_ok" != .yes; then
- _AC_DIALOG_ERROR([dnl
- Found dialog $dialog_version under $dialog_location, but
- was unable to perform a sanity linker check. This means
- the dialog library libdialog.a was not found.
- We used the following build environment:
- >> CC="$CC"
- >> CFLAGS="$CFLAGS"
- >> LDFLAGS="$LDFLAGS"
- >> LIBS="$LIBS"
- See config.log for possibly more details.])
- fi
- _extendvars="ifelse([$4],,yes,$4)"
- if test ".$_extendvars" != .yes; then
- CFLAGS="$_ac_save_CFLAGS"
- LDFLAGS="$_ac_save_LDFLAGS"
- LIBS="$_ac_save_LIBS"
- fi
- else
- _extendvars="ifelse([$4],,yes,$4)"
- if test ".$_extendvars" = .yes; then
- if test ".$dialog_subdir" = .yes; then
- CFLAGS="$CFLAGS $dialog_cflags"
- LDFLAGS="$LDFLAGS $dialog_ldflags"
- LIBS="$LIBS $dialog_libs"
- fi
- fi
- fi
- DIALOG_CFLAGS="$dialog_cflags"
- DIALOG_LDFLAGS="$dialog_ldflags"
- DIALOG_LIBS="$dialog_libs"
- AC_SUBST(DIALOG_CFLAGS)
- AC_SUBST(DIALOG_LDFLAGS)
- AC_SUBST(DIALOG_LIBS)
-
- AC_SUBST(HAVE_DIALOG, [1])
-
- AC_CHECK_HEADERS(dialog.h dlg_colors.h dlg_keys.h)
-
- _AC_DIALOG_VERBOSE([+ Final Results:])
- _AC_DIALOG_VERBOSE([ o DIALOG_CFLAGS="$DIALOG_CFLAGS"])
- _AC_DIALOG_VERBOSE([ o DIALOG_LDFLAGS="$DIALOG_LDFLAGS"])
- _AC_DIALOG_VERBOSE([ o DIALOG_LIBS="$DIALOG_LIBS"])
-fi
-if test ".$with_dialog" != .no; then
- AC_MSG_CHECKING(for libdialog)
- AC_MSG_RESULT([version $dialog_version, $dialog_type under $dialog_location])
- ifelse([$5], , :, [$5])
-else
- AC_MSG_CHECKING(for libdialog)
- AC_MSG_RESULT([no])
- ifelse([$6], , :, [$6])
-fi
-])
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/treeview.c
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/treeview.c (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new/treeview.c (nonexistent)
@@ -1,675 +0,0 @@
-/*
- * $Id: treeview.c,v 1.43 2020/11/23 00:38:31 tom Exp $
- *
- * treeview.c -- implements the treeview dialog
- *
- * Copyright 2012-2019,2020 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License, version 2.1
- * as published by the Free Software Foundation.
- *
- * 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- */
-
-#include <dlg_internals.h>
-#include <dlg_keys.h>
-
-#define INDENT 3
-#define MIN_HIGH (1 + (5 * MARGIN))
-
-typedef struct {
- /* the outer-window */
- WINDOW *dialog;
- bool is_check;
- int box_y;
- int box_x;
- int check_x;
- int item_x;
- int use_height;
- int use_width;
- /* the inner-window */
- WINDOW *list;
- DIALOG_LISTITEM *items;
- int item_no;
- int *depths;
- const char *states;
-} ALL_DATA;
-
-/*
- * Print list item. The 'selected' parameter is true if 'choice' is the
- * current item. That one is colored differently from the other items.
- */
-static void
-print_item(ALL_DATA * data,
- DIALOG_LISTITEM * item,
- const char *states,
- int depths,
- int choice,
- int selected)
-{
- WINDOW *win = data->list;
- chtype save = dlg_get_attrs(win);
- int i;
- bool first = TRUE;
- int climit = (getmaxx(win) - data->check_x + 1);
- const char *show = (dialog_vars.no_items
- ? item->name
- : item->text);
-
- /* Clear 'residue' of last item */
- dlg_attrset(win, menubox_attr);
- (void) wmove(win, choice, 0);
- for (i = 0; i < data->use_width; i++)
- (void) waddch(win, ' ');
-
- (void) wmove(win, choice, data->check_x);
- dlg_attrset(win, selected ? check_selected_attr : check_attr);
- (void) wprintw(win,
- data->is_check ? "[%c]" : "(%c)",
- states[item->state]);
- dlg_attrset(win, menubox_attr);
-
- dlg_attrset(win, selected ? item_selected_attr : item_attr);
- for (i = 0; i < depths; ++i) {
- int j;
- (void) wmove(win, choice, data->item_x + INDENT * i);
- (void) waddch(win, ACS_VLINE);
- for (j = INDENT - 1; j > 0; --j)
- (void) waddch(win, ' ');
- }
- (void) wmove(win, choice, data->item_x + INDENT * depths);
-
- dlg_print_listitem(win, show, climit, first, selected);
-
- if (selected) {
- dlg_item_help(item->help);
- }
- dlg_attrset(win, save);
-}
-
-static void
-print_list(ALL_DATA * data,
- int choice,
- int scrollamt,
- int max_choice)
-{
- int i;
- int cur_y, cur_x;
-
- getyx(data->dialog, cur_y, cur_x);
-
- for (i = 0; i < max_choice; i++) {
- print_item(data,
- &data->items[scrollamt + i],
- data->states,
- data->depths[scrollamt + i],
- i, i == choice);
- }
- (void) wnoutrefresh(data->list);
-
- dlg_draw_scrollbar(data->dialog,
- (long) (scrollamt),
- (long) (scrollamt),
- (long) (scrollamt + max_choice),
- (long) (data->item_no),
- data->box_x + data->check_x,
- data->box_x + data->use_width,
- data->box_y,
- data->box_y + data->use_height + 1,
- menubox_border2_attr,
- menubox_border_attr);
-
- (void) wmove(data->dialog, cur_y, cur_x);
-}
-
-static bool
-check_hotkey(DIALOG_LISTITEM * items, int choice)
-{
- bool result = FALSE;
-
- if (dlg_match_char(dlg_last_getc(),
- (dialog_vars.no_tags
- ? items[choice].text
- : items[choice].name))) {
- result = TRUE;
- }
- return result;
-}
-
-/*
- * This is an alternate interface to 'treeview' which allows the application
- * to read the list item states back directly without putting them in the
- * output buffer.
- */
-int
-dlg_treeview(const char *title,
- const char *cprompt,
- int height,
- int width,
- int list_height,
- int item_no,
- DIALOG_LISTITEM * items,
- const char *states,
- int *depths,
- int flag,
- int *current_item)
-{
- /* *INDENT-OFF* */
- static DLG_KEYS_BINDING binding[] = {
- HELPKEY_BINDINGS,
- ENTERKEY_BINDINGS,
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ),
- DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ),
- DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ),
- DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME ),
- DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END ),
- DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ),
- DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ),
- DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ),
- DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ),
- TOGGLEKEY_BINDINGS,
- END_KEYS_BINDING
- };
- /* *INDENT-ON* */
-
-#ifdef KEY_RESIZE
- int old_height = height;
- int old_width = width;
-#endif
- ALL_DATA all;
- int i, j, key2, found, x, y, cur_y, box_x, box_y;
- int key, fkey;
- int button = dialog_state.visit_items ? -1 : dlg_default_button();
- int choice = dlg_default_listitem(items);
- int scrollamt = 0;
- int max_choice;
- int use_height;
- int use_width, name_width, text_width, tree_width;
- int result = DLG_EXIT_UNKNOWN;
- int num_states;
- WINDOW *dialog, *list;
- char *prompt = dlg_strclone(cprompt);
- const char **buttons = dlg_ok_labels();
- const char *widget_name;
-
- /* we need at least two states */
- if (states == 0 || strlen(states) < 2)
- states = " *";
- num_states = (int) strlen(states);
-
- dialog_state.plain_buttons = TRUE;
-
- memset(&all, 0, sizeof(all));
- all.items = items;
- all.item_no = item_no;
- all.states = states;
- all.depths = depths;
-
- dlg_does_output();
- dlg_tab_correct_str(prompt);
-
- /*
- * If this is a radiobutton list, ensure that no more than one item is
- * selected initially. Allow none to be selected, since some users may
- * wish to provide this flavor.
- */
- if (flag == FLAG_RADIO) {
- bool first = TRUE;
-
- for (i = 0; i < item_no; i++) {
- if (items[i].state) {
- if (first) {
- first = FALSE;
- } else {
- items[i].state = 0;
- }
- }
- }
- } else {
- all.is_check = TRUE;
- }
- widget_name = "treeview";
-#ifdef KEY_RESIZE
- retry:
-#endif
-
- use_height = list_height;
- use_width = dlg_calc_list_width(item_no, items) + 10;
- use_width = MAX(26, use_width);
- if (use_height == 0) {
- /* calculate height without items (4) */
- dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width);
- dlg_calc_listh(&height, &use_height, item_no);
- } else {
- dlg_auto_size(title, prompt, &height, &width, MIN_HIGH + use_height, use_width);
- }
- dlg_button_layout(buttons, &width);
- dlg_print_size(height, width);
- dlg_ctl_size(height, width);
-
- x = dlg_box_x_ordinate(width);
- y = dlg_box_y_ordinate(height);
-
- dialog = dlg_new_window(height, width, y, x);
- dlg_register_window(dialog, widget_name, binding);
- dlg_register_buttons(dialog, widget_name, buttons);
-
- dlg_mouse_setbase(x, y);
-
- dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr);
- dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr);
- dlg_draw_title(dialog, title);
-
- dlg_attrset(dialog, dialog_attr);
- dlg_print_autowrap(dialog, prompt, height, width);
-
- all.use_width = width - 4;
- cur_y = getcury(dialog);
- box_y = cur_y + 1;
- box_x = (width - all.use_width) / 2 - 1;
-
- /*
- * After displaying the prompt, we know how much space we really have.
- * Limit the list to avoid overwriting the ok-button.
- */
- if (use_height + MIN_HIGH > height - cur_y)
- use_height = height - MIN_HIGH - cur_y;
- if (use_height <= 0)
- use_height = 1;
-
- max_choice = MIN(use_height, item_no);
-
- /* create new window for the list */
- list = dlg_sub_window(dialog, use_height, all.use_width,
- y + box_y + 1, x + box_x + 1);
-
- /* draw a box around the list items */
- dlg_draw_box(dialog, box_y, box_x,
- use_height + 2 * MARGIN,
- all.use_width + 2 * MARGIN,
- menubox_border_attr, menubox_border2_attr);
-
- text_width = 0;
- name_width = 0;
- tree_width = 0;
- /* Find length of longest item to center treeview */
- for (i = 0; i < item_no; i++) {
- tree_width = MAX(tree_width, INDENT * depths[i]);
- text_width = MAX(text_width, dlg_count_columns(items[i].text));
- name_width = MAX(name_width, dlg_count_columns(items[i].name));
- }
- if (dialog_vars.no_tags && !dialog_vars.no_items) {
- tree_width += text_width;
- } else if (dialog_vars.no_items) {
- tree_width += name_width;
- } else {
- tree_width += (text_width + name_width);
- }
-
- use_width = (all.use_width - 4);
- tree_width = MIN(tree_width, all.use_width);
-
- all.check_x = (use_width - tree_width) / 2;
- all.item_x = ((dialog_vars.no_tags
- ? 0
- : (dialog_vars.no_items
- ? 0
- : (2 + name_width)))
- + all.check_x + 4);
-
- /* ensure we are scrolled to show the current choice */
- if (choice >= (max_choice + scrollamt)) {
- scrollamt = choice - max_choice + 1;
- choice = max_choice - 1;
- }
-
- /* register the new window, along with its borders */
- dlg_mouse_mkbigregion(box_y + 1, box_x,
- use_height, all.use_width + 2,
- KEY_MAX, 1, 1, 1 /* by lines */ );
-
- all.dialog = dialog;
- all.box_x = box_x;
- all.box_y = box_y;
- all.use_height = use_height;
- all.list = list;
- print_list(&all, choice, scrollamt, max_choice);
-
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width);
-
- dlg_trace_win(dialog);
-
- while (result == DLG_EXIT_UNKNOWN) {
- int was_mouse;
-
- if (button < 0) /* --visit-items */
- wmove(dialog, box_y + choice + 1, box_x + all.check_x + 2);
-
- key = dlg_mouse_wgetch(dialog, &fkey);
- if (dlg_result_key(key, fkey, &result)) {
- if (!dlg_button_key(result, &button, &key, &fkey))
- break;
- }
-
- was_mouse = (fkey && is_DLGK_MOUSE(key));
- if (was_mouse)
- key -= M_EVENT;
-
- if (was_mouse && (key >= KEY_MAX)) {
- i = (key - KEY_MAX);
- if (i < max_choice) {
- choice = (key - KEY_MAX);
- print_list(&all, choice, scrollamt, max_choice);
-
- key = DLGK_TOGGLE; /* force the selected item to toggle */
- } else {
- beep();
- continue;
- }
- fkey = FALSE;
- } else if (was_mouse && key >= KEY_MIN) {
- key = dlg_lookup_key(dialog, key, &fkey);
- }
-
- /*
- * A space toggles the item status.
- */
- if (key == DLGK_TOGGLE) {
- int current = scrollamt + choice;
- int next = items[current].state + 1;
-
- if (next >= num_states)
- next = 0;
-
- if (flag == FLAG_CHECK) { /* checklist? */
- items[current].state = next;
- } else {
- for (i = 0; i < item_no; i++) {
- if (i != current) {
- items[i].state = 0;
- }
- }
- if (items[current].state) {
- items[current].state = next ? next : 1;
- } else {
- items[current].state = 1;
- }
- }
- print_list(&all, choice, scrollamt, max_choice);
- continue; /* wait for another key press */
- }
-
- /*
- * Check if key pressed matches first character of any item tag in
- * list. If there is more than one match, we will cycle through
- * each one as the same key is pressed repeatedly.
- */
- found = FALSE;
- if (!fkey) {
- if (button < 0 || !dialog_state.visit_items) {
- for (j = scrollamt + choice + 1; j < item_no; j++) {
- if (check_hotkey(items, j)) {
- found = TRUE;
- i = j - scrollamt;
- break;
- }
- }
- if (!found) {
- for (j = 0; j <= scrollamt + choice; j++) {
- if (check_hotkey(items, j)) {
- found = TRUE;
- i = j - scrollamt;
- break;
- }
- }
- }
- if (found)
- dlg_flush_getc();
- } else if ((j = dlg_char_to_button(key, buttons)) >= 0) {
- button = j;
- ungetch('\n');
- continue;
- }
- }
-
- /*
- * A single digit (1-9) positions the selection to that line in the
- * current screen.
- */
- if (!found
- && (key <= '9')
- && (key > '0')
- && (key - '1' < max_choice)) {
- found = TRUE;
- i = key - '1';
- }
-
- if (!found) {
- if (fkey) {
- found = TRUE;
- switch (key) {
- case DLGK_ITEM_FIRST:
- i = -scrollamt;
- break;
- case DLGK_ITEM_LAST:
- i = item_no - 1 - scrollamt;
- break;
- case DLGK_PAGE_PREV:
- if (choice)
- i = 0;
- else if (scrollamt != 0)
- i = -MIN(scrollamt, max_choice);
- else
- continue;
- break;
- case DLGK_PAGE_NEXT:
- i = MIN(choice + max_choice, item_no - scrollamt - 1);
- break;
- case DLGK_ITEM_PREV:
- i = choice - 1;
- if (choice == 0 && scrollamt == 0)
- continue;
- break;
- case DLGK_ITEM_NEXT:
- i = choice + 1;
- if (scrollamt + choice >= item_no - 1)
- continue;
- break;
- default:
- found = FALSE;
- break;
- }
- }
- }
-
- if (found) {
- if (i != choice) {
- if (i < 0 || i >= max_choice) {
- if (i < 0) {
- scrollamt += i;
- choice = 0;
- } else {
- choice = max_choice - 1;
- scrollamt += (i - max_choice + 1);
- }
- print_list(&all, choice, scrollamt, max_choice);
- } else {
- choice = i;
- print_list(&all, choice, scrollamt, max_choice);
- }
- }
- continue; /* wait for another key press */
- }
-
- if (fkey) {
- switch (key) {
- case DLGK_ENTER:
- result = dlg_enter_buttoncode(button);
- break;
- case DLGK_LEAVE:
- result = dlg_ok_buttoncode(button);
- break;
- case DLGK_FIELD_PREV:
- button = dlg_prev_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- break;
- case DLGK_FIELD_NEXT:
- button = dlg_next_button(buttons, button);
- dlg_draw_buttons(dialog, height - 2, 0, buttons, button,
- FALSE, width);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
- dlg_will_resize(dialog);
- /* reset data */
- height = old_height;
- width = old_width;
- /* repaint */
- _dlg_resize_cleanup(dialog);
- goto retry;
-#endif
- default:
- if (was_mouse) {
- if ((key2 = dlg_ok_buttoncode(key)) >= 0) {
- result = key2;
- break;
- }
- beep();
- }
- }
- } else if (key > 0) {
- beep();
- }
- }
-
- dlg_del_window(dialog);
- dlg_mouse_free_regions();
- free(prompt);
- *current_item = (scrollamt + choice);
- return result;
-}
-
-/*
- * Display a set of items as a tree.
- */
-int
-dialog_treeview(const char *title,
- const char *cprompt,
- int height,
- int width,
- int list_height,
- int item_no,
- char **items,
- int flag)
-{
- int result;
- int i, j;
- DIALOG_LISTITEM *listitems;
- int *depths;
- bool show_status = FALSE;
- int current = 0;
- char *help_result;
-
- DLG_TRACE(("# treeview args:\n"));
- DLG_TRACE2S("title", title);
- DLG_TRACE2S("message", cprompt);
- DLG_TRACE2N("height", height);
- DLG_TRACE2N("width", width);
- DLG_TRACE2N("lheight", list_height);
- DLG_TRACE2N("llength", item_no);
- /* FIXME dump the items[][] too */
- DLG_TRACE2N("flag", flag);
-
- listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1);
- assert_ptr(listitems, "dialog_treeview");
-
- depths = dlg_calloc(int, (size_t) item_no + 1);
- assert_ptr(depths, "dialog_treeview");
-
- for (i = j = 0; i < item_no; ++i) {
- listitems[i].name = items[j++];
- listitems[i].text = (dialog_vars.no_items
- ? dlg_strempty()
- : items[j++]);
- listitems[i].state = !dlg_strcmp(items[j++], "on");
- depths[i] = atoi(items[j++]);
- listitems[i].help = ((dialog_vars.item_help)
- ? items[j++]
- : dlg_strempty());
- }
- dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
-
- result = dlg_treeview(title,
- cprompt,
- height,
- width,
- list_height,
- item_no,
- listitems,
- NULL,
- depths,
- flag,
- ¤t);
-
- switch (result) {
- case DLG_EXIT_OK: /* FALLTHRU */
- case DLG_EXIT_EXTRA:
- show_status = TRUE;
- break;
- case DLG_EXIT_HELP:
- dlg_add_help_listitem(&result, &help_result, &listitems[current]);
- if ((show_status = dialog_vars.help_status)) {
- if (dialog_vars.separate_output) {
- dlg_add_string(help_result);
- dlg_add_separator();
- } else {
- dlg_add_quoted(help_result);
- }
- } else {
- dlg_add_string(help_result);
- }
- break;
- }
-
- if (show_status) {
- for (i = 0; i < item_no; i++) {
- if (listitems[i].state) {
- if (dlg_need_separator())
- dlg_add_separator();
- if (dialog_vars.separate_output) {
- dlg_add_string(listitems[i].name);
- } else {
- if (flag == FLAG_CHECK)
- dlg_add_quoted(listitems[i].name);
- else
- dlg_add_string(listitems[i].name);
- }
- }
- }
- AddLastKey();
- }
-
- dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
- free(depths);
- free(listitems);
- return result;
-}
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch/dialog-1.3-20210621-new
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/dialog/create-1.3-20210621-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/dialog/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog/Makefile (nonexistent)
@@ -1,56 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/dialog
-
-versions = 1.3-20210621
-pkgname = dialog
-suffix = tgz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-patches = $(CURDIR)/patches/dialog-1.3-20210621.patch
-
-.NOTPARALLEL: $(patches)
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-$(patches): $(sha1s)
- @echo -e "\n======= Create Patches =======\n" ; \
- ( cd create-1.3-20210621-patch ; ./create.patch.sh ) ; \
- echo -e "\n"
-
-download_clean:
- @rm -f $(tarballs) $(sha1s) $(patches)
Index: build-system-1.10.x/3pp/sources/packages/dialog
===================================================================
--- build-system-1.10.x/3pp/sources/packages/dialog (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/dialog (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/dialog
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/po4a/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/po4a/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/po4a/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/po4a
-
-
-versions = 0.68
-pkgname = po4a
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/po4a
===================================================================
--- build-system-1.10.x/3pp/sources/packages/po4a (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/po4a (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/po4a
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/jsmin/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/jsmin/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/jsmin/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/a/jsmin
-
-
-versions = 0.0.1
-pkgname = jsmin
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/jsmin
===================================================================
--- build-system-1.10.x/3pp/sources/packages/jsmin (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/jsmin (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/jsmin
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/python-modules/m2crypto
-
-
-versions = 0.38.0
-pkgname = m2crypto
-suffix = tar.gz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/python-modules/m2crypto
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/python-modules/setuptools/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/setuptools/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/setuptools/Makefile (nonexistent)
@@ -1,49 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/python-modules/setuptools
-
-
-versions = 44.0.0
-versions += 65.5.0
-pkgname = setuptools
-suffix = tar.gz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/python-modules/setuptools
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/setuptools (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/setuptools (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/python-modules/setuptools
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/python-modules/pip/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/pip/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/pip/Makefile (nonexistent)
@@ -1,49 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/python-modules/pip
-
-
-versions = 20.3
-versions += 22.2.2
-pkgname = pip
-suffix = tar.gz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/python-modules/pip
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/pip (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/pip (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/python-modules/pip
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/python-modules/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules/Makefile (nonexistent)
@@ -1,13 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-SOURCE_REQUIRES += ALL_DIRS
-
-
-include ../../../../../build-system/core.mk
-
-
-download_clean:
- @true
-
-.PHONY: download_clean
Index: build-system-1.10.x/3pp/sources/packages/python-modules
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python-modules (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python-modules (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/python-modules
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/perl-SGMLS/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl-SGMLS/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl-SGMLS/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d//perl-modules/perl-SGMLS
-
-
-versions = 1.1
-pkgname = perl-SGMLS
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/perl-SGMLS
===================================================================
--- build-system-1.10.x/3pp/sources/packages/perl-SGMLS (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/perl-SGMLS (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/perl-SGMLS
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/python2/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python2/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python2/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/python2
-
-
-versions = 2.7.18
-pkgname = Python
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/python2
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python2 (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python2 (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/python2
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/python3/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python3/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python3/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/packages/d/python3
-
-
-versions = 3.10.8
-pkgname = Python
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/python3
===================================================================
--- build-system-1.10.x/3pp/sources/packages/python3 (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/python3 (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/python3
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/automake/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/automake/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/automake/Makefile (nonexistent)
@@ -1,48 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../../build-system/constants.mk
-
-
-url = $(DOWNLOAD_SERVER)/sources/GNU/automake
-
-
-versions = 1.16.5
-pkgname = automake
-suffix = tar.xz
-
-tarballs = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
-sha1s = $(addsuffix .sha1sum, $(tarballs))
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s)
-
-
-include ../../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
- @echo -e "\n======= Downloading source tarballs =======\n" ; \
- for tarball in $(tarballs) ; do \
- echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
- done ; wait
-
-$(sha1s): $(tarballs)
- @for sha in $@ ; do \
- echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
- echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
- touch $$sha ; \
- echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
- sha1sum --check $$sha ; ret="$$?" ; \
- if [ "$$ret" == "1" ]; then \
- echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
- exit 1 ; \
- fi ; \
- done
-
-download_clean:
- @rm -f $(tarballs) $(sha1s)
Index: build-system-1.10.x/3pp/sources/packages/automake
===================================================================
--- build-system-1.10.x/3pp/sources/packages/automake (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/automake (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages/automake
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/packages/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/packages/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/packages/Makefile (nonexistent)
@@ -1,13 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-SOURCE_REQUIRES += ALL_DIRS
-
-
-include ../../../../build-system/core.mk
-
-
-download_clean:
- @true
-
-.PHONY: download_clean
Index: build-system-1.10.x/3pp/sources/packages
===================================================================
--- build-system-1.10.x/3pp/sources/packages (revision 57)
+++ build-system-1.10.x/3pp/sources/packages (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources/packages
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp/sources/Makefile
===================================================================
--- build-system-1.10.x/3pp/sources/Makefile (revision 57)
+++ build-system-1.10.x/3pp/sources/Makefile (nonexistent)
@@ -1,13 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-SOURCE_REQUIRES += ALL_DIRS
-
-
-include ../../../build-system/core.mk
-
-
-download_clean:
- @true
-
-.PHONY: download_clean
Index: build-system-1.10.x/3pp/sources
===================================================================
--- build-system-1.10.x/3pp/sources (revision 57)
+++ build-system-1.10.x/3pp/sources (nonexistent)
Property changes on: build-system-1.10.x/3pp/sources
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/3pp
===================================================================
--- build-system-1.10.x/3pp (revision 57)
+++ build-system-1.10.x/3pp (nonexistent)
Property changes on: build-system-1.10.x/3pp
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/LICENSE
===================================================================
--- build-system-1.10.x/LICENSE (revision 57)
+++ build-system-1.10.x/LICENSE (nonexistent)
@@ -1,268 +0,0 @@
-
-
- Radix.pro License
- Version 1.0, March 2016
- http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-
-
-1. Definitions
-
- 1.1. "License"
-
- means the terms and conditions for use, reproduction, and distribution
- as defined by this document.
-
-
- 1.2. "Licensor"
-
- means the copyright owner or entity authorized by the copyright owner that is
- granting the License.
-
-
- 1.3. "Legal Entity"
-
- means the union of the acting entity and all other entities that control, are
- controlled by, or are under common control with that entity. For the purposes
- of this definition, "control" means:
- a. the power, direct or indirect, to cause the direction or management of such
- entity, whether by contract or otherwise, or
- b. ownership of fifty percent (50%) or more of the outstanding shares, or
- c. beneficial ownership of such entity.
-
-
- 1.4. "You" (or "Your")
-
- means an individual or Legal Entity exercising permissions granted by this License.
-
-
- 1.5. “Licensable”
-
- means having the right to grant, to the maximum extent possible, whether at the
- time of the initial grant or subsequently, any and all of the rights conveyed
- by this License.
-
-
- 1.6. "Source Form"
-
- means the form of the Work preferred for making Modifications, including but not limited
- to software source code, documentation source, and configuration files.
-
-
- 1.7. "Object Form"
-
- means any form resulting from mechanical transformation or translation of a Source form,
- including but not limited to compiled object code, generated documentation, and conversions
- to other media types.
-
-
- 1.8. "Work"
-
- means the work of authorship, whether in Source or Object Form, made available under
- the License, as indicated by a copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
-
- 1.9. "Derivative Works"
-
- means any work, whether in Source or Object Form, that is based on (or derived from) the Work
- and for which the editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes of this License,
- Derivative Works shall not include works that remain separable from, or merely link
- (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-
- 1.10. "Contribution"
-
- means any work of authorship, including the original version of the Work and any modifications
- or additions to that Work or Derivative Works thereof, that is intentionally submitted to
- Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity
- authorized to submit on behalf of the copyright owner. For the purposes of this definition,
- "submitted" means any form of electronic, verbal, or written communication sent to the Licensor
- or its representatives, including but not limited to communication on electronic mailing lists,
- source code control systems, and issue tracking systems that are managed by, or on behalf of,
- the Licensor for the purpose of discussing and improving the Work, but excluding communication
- that is conspicuously marked or otherwise designated in writing by the copyright owner
- as "Not a Contribution."
-
-
- 1.11. "Contributor"
-
- means Licensor and any individual or Legal Entity on behalf of whom a Contribution has been
- received by Licensor and subsequently incorporated within the Work.
-
-
- 1.12. “Patent Claims” of a Contributor
-
- means any patent claim(s), including without limitation, method, process, and apparatus claims,
- in any patent Licensable by such Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having made, import, or transfer
- of either its Contributions or its Contributor Version.
-
-
-
-2. Grant of Copyright License
-
- Subject to the terms and conditions of this License, each Contributor hereby grants to You
- a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license
- to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense,
- and distribute the Work and such Derivative Works in Source or Object Form.
-
-
-3. Grant of Patent License
-
- Subject to the terms and conditions of this License, each Contributor hereby grants
- to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made, use, offer to
- sell, sell, import, and otherwise transfer the Work, where such license applies only
- to those patent claims Licensable by such Contributor that are necessarily infringed
- by their Contribution(s) alone or by combination of their Contribution(s) with the
- Work to which such Contribution(s) was submitted. If You institute patent litigation
- against any entity (including a cross-claim or counterclaim in a lawsuit) alleging
- that the Work or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses granted to You under
- this License for that Work shall terminate as of the date such litigation is filed.
-
-
-4. Redistribution
-
- You may reproduce and distribute copies of the Work or Derivative Works thereof
- in any medium, with or without modifications, and in Source or Object Form, provided
- that You meet the following conditions:
-
- a. You must give any other recipients of the Work or Derivative Works
- a copy of this License; and
- b. You must cause any modified files to carry prominent notices stating that
- You changed the files; and
- c. You must retain, in the Source form of any Derivative Works that You distribute,
- all copyright, patent, trademark, and attribution notices from the Source form
- of the Work, excluding those notices that do not pertain to any part of the
- Derivative Works; and
- d. If the Work includes a "PRINCIPLE" text file as part of its distribution, then
- any Derivative Works that You distribute must include a readable copy of the
- fundamental ideas, truths or propositions contained within such PRINCIPLE file.
- You may add Your own fundamental ideas, truths or propositions that serves as
- the foundation for understanding the internal structure and principles of
- Derivative works or Contributions.
-
- You may add Your own copyright statement to Your modifications and may provide additional
- or different license terms and conditions for use, reproduction, or distribution of Your
- modifications, or for any such Derivative Works as a whole, provided Your use, reproduction,
- and distribution of the Work otherwise complies with the conditions stated in this License.
-
-
-5. Submission of Contributions
-
- Unless You explicitly state otherwise, any Contribution intentionally submitted for
- inclusion in the Work by You to the Licensor shall be under the terms and conditions
- of this License, without any additional terms or conditions. Notwithstanding the above,
- nothing herein shall supersede or modify the terms of any separate license agreement
- you may have executed with Licensor regarding such Contributions.
-
-
-6. Trademarks
-
- This License does not grant permission to use the trade names, trademarks, service marks,
- or product names of the Licensor, except as required for reasonable and customary use in
- describing the origin of the Work and reproducing the content of the PRINCIPLE file.
-
-
-7. Disclaimer of Warranty
-
- Unless required by applicable law or agreed to in writing, Licensor provides the Work
- (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES
- OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any
- warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of
- using or redistributing the Work and assume any risks associated with Your exercise of
- permissions under this License.
-
-
-8. Limitation of Liability
-
- In no event and under no legal theory, whether in tort (including negligence), contract,
- or otherwise, unless required by applicable law (such as deliberate and grossly negligent
- acts) or agreed to in writing, shall any Contributor be liable to You for damages, including
- any direct, indirect, special, incidental, or consequential damages of any character arising
- as a result of this License or out of the use or inability to use the Work (including but not
- limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or
- any and all other commercial damages or losses), even if such Contributor has been advised
- of the possibility of such damages.
-
-
-9. Accepting Warranty or Additional Liability
-
- While redistributing the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity, or other liability
- obligations and/or rights consistent with this License. However, in accepting such
- obligations, You may act only on Your own behalf and on Your sole responsibility, not
- on behalf of any other Contributor, and only if You agree to indemnify, defend, and
- hold each Contributor harmless for any liability incurred by, or claims asserted
- against, such Contributor by reason of your accepting any such warranty or additional
- liability.
-
-
-APPENDICES
-
-APPENDIX 1: How to apply the Radix.pro License to your work
-
- To apply the Radix.pro License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Radix.pro License, Version 1.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied.
-
-
-APPENDIX 2: Examples of comments
-
-/**********************************************************************
-
- Copyright 2016 Andrey V.Kosteltsev
-
- Licensed under the Radix.pro License, Version 1.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied.
-
- **********************************************************************/
-
-
-#!/bin/sh
-#######################################################################
-#
-# Copyright 2016 Andrey V.Kosteltsev
-#
-# Licensed under the Radix.pro License, Version 1.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-#
-#######################################################################
-
Index: build-system-1.10.x/build_ext4fs
===================================================================
--- build-system-1.10.x/build_ext4fs (revision 57)
+++ build-system-1.10.x/build_ext4fs (nonexistent)
@@ -1,567 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use POSIX;
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-use Getopt::Long;
-
-use _kxLab;
-
-#
-# Generate $(TARGET_BUILD_DIR)/HW.ext4fs file
-#
-# usage:
-# $0 [options] topdir toolchain hardware flavour
-#
-# where:
-# 'topdir' - is a absolute path to the top directory of checked out branch
-# 'toolchain' - is a TOOLCHAIN name
-# 'hardware' - is a HARDWARE name
-# 'flavour' - is a HARDWARE variant
-#
-
-my ($rootfs_dest_dir, $products_dest_dir, $devices_file);
-my ($top_dir, $toolchain, $hardware, $flavour, $target_build_dir);
-my ($size, $rootfs_base_dir, $products_base_dir);
-
-#
-# Default values:
-#
-my $default_requested_size = "4.1G";
-my $reserved_space_coeff = 0.4;
-#
-# Constants:
-#
-my $SDHC_blksz = 524288;
-my $SDHC_min_blks = 4224;
-my $GiB = 1073741824;
-my $MiB = 1048576;
-my $KiB = 1024;
-
-#
-# File systems UUIDs:
-# ==================
-#
-# prep : 'кросс:prep :парт' : eaf0eef1-f13a-7072-6570-203aefe0f0f2
-# uefi : 'кросс:uefi :парт' : eaf0eef1-f13a-7565-6669-203aefe0f0f2
-# boot : 'кросс:boot :парт' : eaf0eef1-f13a-626F-6F74-203aefe0f0f2
-# boot0 : 'кросс:boot0:парт' : eaf0eef1-f13a-626F-6F74-303aefe0f0f2
-# boot1 : 'кросс:boot1:парт' : eaf0eef1-f13a-626F-6F74-313aefe0f0f2
-# root : 'кросс:root :парт' : eaf0eef1-f13a-726F-6F74-203aefe0f0f2
-# root0 : 'кросс:root0:парт' : eaf0eef1-f13a-726F-6F74-303aefe0f0f2
-# root1 : 'кросс:root1:парт' : eaf0eef1-f13a-726F-6F74-313aefe0f0f2
-# home : 'кросс:home :парт' : eaf0eef1-f13a-686F-6D65-203aefe0f0f2
-# opt : 'кросс:opt :парт' : eaf0eef1-f13a-6F70-7420-203aefe0f0f2
-# usr : 'кросс:usr :парт' : eaf0eef1-f13a-7573-7220-203aefe0f0f2
-# var : 'кросс:var :парт' : eaf0eef1-f13a-7661-7220-203aefe0f0f2
-# swap : 'кросс:swap :парт' : eaf0eef1-f13a-7376-6170-203aefe0f0f2
-#
-my $BOOT_UUID = "eaf0eef1-f13a-626F-6F74-203aefe0f0f2";
-my $ROOT_UUID = "eaf0eef1-f13a-726F-6F74-203aefe0f0f2";
-my $HOME_UUID = "eaf0eef1-f13a-686F-6D65-203aefe0f0f2";
-
-#
-# NOTE:
-# ====
-# Вообще размер создаваемой файловой системы выбирается кратным
-# величине SDHC блока. Это позволяет не задумываться о геометрии
-# целевого носителя, а также, о выравнивании разделов по границе
-# 4096 байтов.
-#
-
-#
-# To be calculated:
-#
-my $rootfs_in_bytes;
-my ($size_in_bytes, $size_in_1K_blks, $size_in_SDHC_blks);
-
-
-sub usage
-{
- print <<EOF;
-
-Usage: build_ext4fs [options] topdir toolchain hardware [flavour]
-Options:
- -s, --size=<size{K|M|G}>
- - where <size> is a number of GiB, MiB, or KiB
- (Note that {K|M|G} shoud follow without spaces);
-
- -r, --rootfs-dir=<DIR>
- - base name of rootfs dir default value is 'rootfs';
-
-Args:
- topdir - is a absolute path to the top of checked out branch;
- toolchain - is a TOOLCHAIN name;
- hardware - is a HARDWARE name.
- flavour - is a HARDWARE variant.
-
-EOF
- exit;
-}
-
-#
-# returns directory size in bytes:
-#
-sub directory_size
-{
- my $dir = shift;
- my $size;
-
- if( ! defined $dir or $dir eq "" ) { $dir = "."; }
-
- $size = `du -s -B 1 $dir | cut -f1 -d'\t'`; chomp( $size );
-
- return $size;
-}
-
-#
-# Calculate dest rootfs image size according to
-# requested size (argument) and size of rootfs.
-#
-# size_arg - requested size;
-# src_size - the size of rootfs directory.
-#
-sub calculate_sizes
-{
- my $size_arg = shift;
- my $src_size = shift;
-
- my ($min_size, $z, $m);
-
- #
- # Initial Size = source rootfs size + reserved space:
- #
- $min_size = floor( $src_size + $src_size * $reserved_space_coeff );
- $z = $min_size;
-
- #
- # File System Size:
- #
- if( $size_arg =~ m!^([0-9.]+)([GKM]{0,1})!gm )
- {
- my ($rsz, $mul) = ($1, $2);
-
- if( defined $mul )
- {
- if ( $mul eq "G" ) { $m = $GiB; }
- elsif( $mul eq "M" ) { $m = $MiB; }
- elsif( $mul eq "K" ) { $m = $KiB; }
- else { $m = 1; }
- }
- else
- {
- $m = 1;
- }
- $z = $rsz * $m;
- $z = floor( $z );
-
- if( $z < $min_size ) { $z = $min_size; }
- }
-
- if( $z > $SDHC_blksz ) { $size_in_SDHC_blks = ceil( $z / $SDHC_blksz ); }
- else { $size_in_SDHC_blks = 1; }
-
- if( $size_in_SDHC_blks < $SDHC_min_blks ) { $size_in_SDHC_blks = $SDHC_min_blks; }
-
- $size_in_bytes = $size_in_SDHC_blks * $SDHC_blksz;
- $size_in_1K_blks = $size_in_bytes / $KiB;
-}
-
-
-#
-# Parse the command line options
-#
-$size = $default_requested_size;
-if( ! GetOptions( 's=s' => \$size,
- 'size=s' => \$size,
- 'r=s' => \$rootfs_base_dir,
- 'rootfs-dir=s' => \$rootfs_base_dir,
- 'p=s' => \$products_base_dir,
- 'products-dir=s' => \$products_base_dir,
- 'help|h|?' => sub { usage() }
- )
- )
-{
- usage();
-}
-
-# Get the rest of the command line
-my $topdir = shift;
-
-$toolchain = shift;
-$hardware = shift;
-$flavour = shift;
-
-if( ! defined $size or $size eq "" ) { $size = $default_requested_size; }
-
-if( ! defined $rootfs_base_dir or $rootfs_base_dir eq "" ) { $rootfs_base_dir = "rootfs"; }
-if( ! defined $products_base_dir or $products_base_dir eq "" ) { $products_base_dir = "products"; }
-
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-
-
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
- $rootfs_dest_dir = $topdir . "/dist/" . $rootfs_base_dir . "/" . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
- $rootfs_dest_dir = $topdir . "/dist/" . $rootfs_base_dir . "/" . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-$products_dest_dir = $topdir . "/dist/" . $products_base_dir . "/" . $toolchain . "/" . $hardware;
-
-# setup $top_build_dir
-$top_dir = $topdir;
-my $build_system = $top_dir . "/build-system";
-
-_kxLab::system( "mkdir -p $target_build_dir" );
-
-#
-# The .DEVTABLE shoul be created in TARGET_BUILD_DIR.
-#
-$devices_file = $target_build_dir . "/" . ".DEVTABLE";
-
-_kxLab::error( "build_ext4fs: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "build_ext4fs: .DEVTABLE missing: $devices_file" ) if ( ! -f $devices_file );
-
-
-$rootfs_in_bytes = directory_size( $rootfs_dest_dir );
-calculate_sizes( $size, $rootfs_in_bytes);
-
-################ debug ################
-#
-# root_src - only for log messages:
-#
-my $root_src = $rootfs_dest_dir;
-if( $rootfs_dest_dir =~ m!$top_dir/(.+)! )
-{
- $root_src = $1;
-}
-print "####### requested size = '" . $size . "';\n";
-print "#######\n";
-print "####### SOURCE:\n";
-print "####### ------\n";
-print "####### rootfs source = '" . $root_src . "';\n";
-print "####### rootfs size_in_bytes = '" . $rootfs_in_bytes . "';\n";
-print "#######\n";
-print "####### TARGET:\n";
-print "####### ------\n";
-print "####### image size_in_bytes = '" . $size_in_bytes . "';\n";
-print "####### image size_in_1K_blks = '" . $size_in_1K_blks . "';\n";
-print "####### image size_in_SDHC_blks = '" . $size_in_SDHC_blks . "';\n";
-############# end of debug ############
-
-my $ext4fs_file = $target_build_dir . "/" . $hardware . ".ext4fs";
-my $ext2fs_file = $target_build_dir . "/" . $hardware . ".ext2fs";
-
-my $MKE4FS = $ENV{MKE4FS};
-if( ! defined $MKE4FS or $MKE4FS eq "" )
-{
- $MKE4FS = "/sbin/mkfs.ext4";
-}
-my $E4FSCK = $ENV{E4FSCK};
-if( ! defined $E4FSCK or $E4FSCK eq "" )
-{
- $E4FSCK = "/sbin/fsck.ext4";
-}
-my $POPULATEFS = $ENV{POPULATEFS};
-if( ! defined $POPULATEFS or $POPULATEFS eq "" )
-{
- $POPULATEFS = $build_system . "/sbin/populatefs";
-}
-my $GENEXT2FS = $ENV{GENEXT2FS};
-if( ! defined $GENEXT2FS or $GENEXT2FS eq "" )
-{
- $GENEXT2FS = $build_system . "/sbin/genext2fs";
-}
-
-
-my $label = $hardware;
-
-#my $rootfs_maxnode_arg = "-N 1073741824";
-my $rootfs_maxnode_arg = "";
-
-my $rootfs_reserved_pst_arg = "-m 5";
-
-_kxLab::system( "dd if=/dev/zero of=$ext4fs_file" .
- " seek=$size_in_1K_blks count=0 bs=1k" .
- " 1> /dev/null 2> /dev/null" );
-
-_kxLab::system( $MKE4FS .
- " -F -E root_owner=0:0 -L $label -U $ROOT_UUID" .
- " $rootfs_maxnode_arg" .
- " -O has_journal,ext_attr,resize_inode," .
- "dir_index,filetype,extent,flex_bg," .
- "sparse_super,large_file,uninit_bg," .
- "dir_nlink,extra_isize,64bit" .
- " $rootfs_reserved_pst_arg $ext4fs_file" );
-
-_kxLab::system( $POPULATEFS .
- " -U -d $rootfs_dest_dir -D $devices_file" .
- " $ext4fs_file" );
-
-#######
-####### skip message that the file system was modified:
-#######
-_kxLab::system( $E4FSCK .
- " -fy" .
- " $ext4fs_file 1>/dev/null 2>/dev/null ; exit 0" );
-
-
-#################################################################################
-#######
-####### Also the Ext2 Root FS image can be created by `genext2fs' utility.
-#######
-# _kxLab::system( $GENEXT2FS .
-# " -U -B 1024 -b $size_in_1K_blks $rootfs_reserved_pst_arg" .
-# " -d $rootfs_dest_dir -D $devices_file $ext2fs_file" );
-#######
-#######
-#################################################################################
-
-
-#################################################################################
-#######
-####### Simple MBR for SDHC cards with one primary Linux partition:
-#######
-sub partition_record
-{
- my $type = shift;
- my $active = shift;
- my $sector_size = shift;
- my $track_size = shift;
- my $cylinder_size = shift;
- my $skip_size = shift;
- my $disk_size = shift;
-
- my ($part0, $part1, $part2, $part3);
-
- my ($c, $h, $s, $p, $q);
-
- ################ debug ################
- if( $type == 0x0C ) { print "####### === Primary W95 FAT32 (LBA) Partition:\n"; }
- else { print "####### === Primary Linux Partition:\n"; }
- ############# end of debug ############
-
- #
- # Calculate CHS Start Address (assume 1Mib offset):
- #
- $c = floor( $skip_size / $cylinder_size );
- $p = $skip_size % $cylinder_size;
- $h = floor( $p / $track_size );
- $q = $p % $track_size;
- $s = floor( $q / $sector_size ) + 1;
-
- $part0 = $active; # if 0x80 then the partition is active
- $part0 = $part0 | ( $h & 0x000000ff ) << 8;
- $part0 = $part0 | ( $s & 0x0000003f ) << 16;
- $part0 = $part0 | ( ( $c & 0x00000030 ) >> 8 ) << 22;
- $part0 = $part0 | ( $c & 0x000000ff ) << 24;
-
- ################ debug ################
- print "####### CHS Start Address = ($c/$h/$s);\n";
- ############# end of debug ############
-
- #
- # Calculate CHS End Address (assume 1Mib offset):
- #
- $c = floor( ($disk_size - $sector_size) / $cylinder_size );
- $p = ($disk_size - $sector_size) % $cylinder_size;
- $h = floor( $p / $track_size );
- $q = $p % $track_size;
- $s = floor( $q / $sector_size ) + 1;
-
- $part1 = $type; # Partition type [0x83 - Linux; 0x0C - W95 FAT32 (LBA)]
- $part1 = $part1 | ( $h & 0x000000ff ) << 8;
- $part1 = $part1 | ( $s & 0x0000003f ) << 16;
- $part1 = $part1 | ( ( $c & 0x00000300 ) >> 8 ) << 22;
- $part1 = $part1 | ( $c & 0x000000ff ) << 24;
-
- ################ debug ################
- print "####### CHS End Address = ($c/$h/$s);\n";
- ############# end of debug ############
-
- my $lba;
- #
- # Calculate LBA Start Address [assume 1048576 byte (2048 sectors) offset]:
- #
- $lba = floor( $skip_size / $sector_size );
- $part2 = $lba;
- ################ debug ################
- print "####### LBA Start Address = $lba;\n";
- ############# end of debug ############
-
- #
- # calculate LBA numbers (1Mib offset):
- #
- $lba = floor( ($disk_size - $skip_size) / $sector_size );
- $part3 = $lba;
- ################ debug ################
- print "####### LBA sectors = $lba;\n";
- ############# end of debug ############
-
- return ( $part0, $part1, $part2, $part3 );
-}
-
-#
-# Check if the boot-records and may be FAT32 partition are created by U-Boot:
-#
-my $fat32_size = 0;
-my $records_size = 0;
-my $FAT32_file = $products_dest_dir . "/" . $hardware . ".fat32fs";
-my $records_file = $products_dest_dir . "/" . $hardware . ".boot-records";
-if( -f $FAT32_file ) { $fat32_size = -s $FAT32_file; }
-if( -f $records_file ) { $records_size = -s $records_file; }
-
-
-my $MBR_file = $target_build_dir . "/" . $hardware . ".SD.MBR";
-
-my $heads = 4;
-my $sectors_per_track = 16;
-my $sector_size = 512;
-my $track_size = $sector_size * $sectors_per_track;
-
-my $cylinder_size = $heads * $sectors_per_track * $sector_size;
-my $cylinders = $size_in_bytes / $cylinder_size;
-my $skip_size = $MiB;
-my $disk_size;
-
-if( $records_size > $skip_size ) { $skip_size = $records_size; }
-
-################ debug ################
-print "#######\n";
-print "####### Master Boot Record:\n";
-print "####### ------------------\n";
-############# end of debug ############
-
-my ($part0, $part1, $part2, $part3);
-
-#
-# The first partition is always active
-#
-if( $fat32_size > 0 )
-{
- $disk_size = $skip_size + $fat32_size;
-
- ($part0, $part1, $part2, $part3) =
- partition_record( 0x0C,
- 0x80,
- $sector_size,
- $track_size,
- $cylinder_size,
- $skip_size,
- $disk_size );
-
- $skip_size = $skip_size + $fat32_size;
-}
-else
-{
- $disk_size = $skip_size + $size_in_bytes;
-
- ($part0, $part1, $part2, $part3) =
- partition_record( 0x83,
- 0x80,
- $sector_size,
- $track_size,
- $cylinder_size,
- $skip_size,
- $disk_size );
-}
-
-my $zero = 0;
-my $sign = 0xaa55;
-
-#
-# The documentation about packing binary date is available at:
-#
-# http://perldoc.perl.org/functions/pack.html
-#
-# We are using Little endian 16-bit and 32-bit data.
-#
-# MBR Info can be found, for example at:
-# -------------------------------------
-# https://en.wikipedia.org/wiki/Master_boot_record
-# https://en.wikipedia.org/wiki/Master_boot_record#PTE
-#
-open( MBR, '>', $MBR_file) or _kxLab::error( "build_ext4fs: Could not open $MBR_file file: $!" );
-binmode( MBR );
-
-#
-# Fill first 446 bytes of MBR:
-#
-for ( my $n = 0; $n < 111; ++$n ) { print MBR pack( 'L<', $zero ); }
-print MBR pack( 'S<', $zero );
-
-#
-# First primary partition:
-#
-print MBR pack( 'L<', $part0 );
-print MBR pack( 'L<', $part1 );
-print MBR pack( 'L<', $part2 );
-print MBR pack( 'L<', $part3 );
-
-if( $fat32_size > 0 )
-{
- $disk_size = $skip_size + $size_in_bytes;
-
- ($part0, $part1, $part2, $part3) =
- partition_record( 0x83,
- 0x00,
- $sector_size,
- $track_size,
- $cylinder_size,
- $skip_size,
- $disk_size );
- #
- # Second primary partition:
- #
- print MBR pack( 'L<', $part0 );
- print MBR pack( 'L<', $part1 );
- print MBR pack( 'L<', $part2 );
- print MBR pack( 'L<', $part3 );
-
-}
-else
-{
- #
- # There is no Second Partition
- #
- for ( my $n = 0; $n < 4; ++$n )
- {
- print MBR pack( 'L<', $zero );
- }
-}
-
-#
-# Two zero primary partitions:
-#
-for ( my $n = 0; $n < 8; ++$n )
-{
- print MBR pack( 'L<', $zero );
-}
-
-#
-# Boot Signature:
-#
-print MBR pack( 'S<', $sign );
-
-close( MBR );
-
-#######
-####### End of Simple MBR writing.
-#######
-#################################################################################
Property changes on: build-system-1.10.x/build_ext4fs
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/doc/LICENSE-1.0-ru_RU.txt
===================================================================
--- build-system-1.10.x/doc/LICENSE-1.0-ru_RU.txt (revision 57)
+++ build-system-1.10.x/doc/LICENSE-1.0-ru_RU.txt (nonexistent)
@@ -1,280 +0,0 @@
-
-
- Radix.pro License
- Версия 1.0, март 2016 г.
- http://radix.pro/licenses/LICENSE-1.0-ru_RU.txt
-
-
-1. Определения
-
- 1.1. «Лицензия»
-
- это настоящий документ, пердставляющий собой Лицензионный договор, определяющий
- условия использования, воспроизведения и распространения Работы, заключаемый
- в упрощенном порядке и являющийся договором присоединения, вступающим в силу
- в момент начала использования Работы.
-
-
- 1.2. «Лицензиар»
-
- это владелец авторского права или лицо, уполномоченное владельцем авторских прав,
- предоставляющие Лицензию.
-
-
- 1.3. «Юридическое лицо»
-
- это объединение действующих лиц и остальных лиц, которые контролируют,
- контролируются или находятся под общим контролем с действующими лицами.
- Для целей данного определения, «контроль» означает:
- a) силу, прямую или косвенную, определяющую развитие или управление такого лица
- согласно договорённостям или иным образом, или
- b) собственность пятидесяти процентов (50%) или более находящихся в обращении
- акций, или
- c) доверительное управление этим лицом.
-
-
- 1.4. «Вы»
-
- это физическое или юридическое лицо, использующее права, предоставленные настоящей Лицензией.
-
-
- 1.5. «Лицензируемый»
-
- это Работа или Производные работы передаваемые под настоящей Лицензией физическим
- или Юридическим лицом, имеющим все права для предоставления, в максимально возможной
- степени, как в момент первичного предоставления, так и в последствии.
-
-
- 1.6. «Исходная форма»
-
- это форма представления Работы, предпочтительная для внесения изменений, включая исходный
- код, исходные формы документации, конфигурационные файлы и не ограничиваясь таковыми.
-
-
- 1.7. «Объектная форма»
-
- это результат автоматического преобразования Исходной формы, включающий исходный код,
- откомпилированный в объектный, сгенерированную документацию и формы, полученные в результате
- преобразования в другие форматы, предназначенные для массового распространения,
- но не ограничивающийся таковыми.
-
-
- 1.8. «Работа»
-
- это объект авторского права в Исходной или Объектной форме, доступный на условиях настоящей
- Лицензии, о чём свидетельствует уведомление об авторстве, которое входит в Работу или прилагается
- к ней (см. примеры, показанные в Приложениях).
-
-
- 1.9. «Производные работы»
-
- это любые работы в Исходной или Объектной форме, основанные на Работе или полученные из неё,
- для которых редакционные изменения, аннотации, развитие или иные изменения, имеют, в целом,
- независимое авторство. Для целей настоящей Лицензии, Производные работы не включают работы,
- которые отделимы от Работы и её производных, например, связываются по имени или ссылке
- с интерфейсом Работы.
-
-
- 1.10. «Вклад»
-
- это любое авторское произведение, в том числе оригинальная версия Работы, все изменения и
- дополнения Работы и Производных работ, умышленно представленные Лицензиару для включения
- в Работу владельцем авторского права или лицом (в том числе, юридическим лицом), уполномоченным
- представлять владельца авторских прав. Для целей данного определения, «представление» означает
- любую форму электронного, словесного или письменного сообщения, направленного Лицензиару или
- его представителям, включая, но не ограничиваясь электронными списками рассылки, системами
- управления исходным кодом и дефектами, управляемыми Лицензиаром или от его имени с целью
- обсуждения и улучшения Работы, за исключением сообщений, помеченных владельцем авторских прав,
- как «не вклад».
-
-
- 1.11. «Участник»
-
- means Licensor and any individual or Legal Entity on behalf of whom a Contribution has been
- received by Licensor and subsequently incorporated within the Work.
-
- это Лицензиар, а также любое физическое или юридическое лицо, от имени которого Лицензиаром
- был получен Вклад, впоследствии включенный в Работу.
-
-
- 1.12. «Патентные права» Участника
-
- это любые патентные права Участника, включая Метод, Процесс, Устройство или Изделие, но не
- ограничиваясь ими, Лицензируемые Участником, которые будут нарушены, но только в целях
- представления Вклада под настоящей Лицензией, производством, использованием, продажей,
- предложенем продажи, импортом и иным способом передачи Вклада.
-
-
-
-2. Предоставление прав
-
- В соответствии с условиями настоящей Лицензии, каждый Участник настоящим предоставляет
- Вам вечную, простую (неисключительную), бесплатную, безвозмездную, безотзывную лицензию прав
- на воспроизведение, изменение, публичный показ, публичное исполнение, сублицензирование
- и распространение Работы и Производных работ в Исходной и Объектной формах по всему миру.
-
-
-3. Предоставление патентных прав
-
- В соответствии с условиями настоящей Лицензии, каждый Участник настоящим предоставляет
- Вам вечную, простую (неисключительную), бесплатную, безвозмездную, безотзывную (кроме
- случаев, перечисленных в этом разделе) патентную лицензию производить, произвести,
- использовать, предлагать продать, продавать, импортировать и иным образом передавать
- Работу по всему миру. Эта Лицензия относится только к таким патентным правам,
- Лицензированным каким-либо Участником, которые неизбежно нарушаются (но лишь для того,
- чтобы предоставить настоящую Лицензию) из-за представления этим Участником Вклада(Вкладов)
- в отдельности, либо его Вкладом(Вкладами) в купе с Работой, в которую сделан данный
- Вклад(Вклады). Если Вы начинаете патентный спор в отношении любого лица (включая
- встречный иск), утверждая, что Работа или Вклад, включенный в работу, являются прямым
- или частичным нарушением патентных прав, то все патентные права, предоставленные Вам
- настоящей Лицензией, заканчиваются в день соответствующего судебного иска.
-
-
-4. Распространение
-
- Вы можете воспроизводить и распространять копии Работы или Производных работ на любом
- носителе, с изменениями или без, в Исходной или Объектной форме, при условии, что Вы
- выполняете следующие условия:
-
- a. Вы должны предоставить всем другим получателям Работы и Производных работ,
- копию этой лицензии, и
-
- b. Вы должны снабдить все модифицированные файлы явными уведомлениями, что Вы
- изменили файлы, и
-
- c. Вы должны сохранить в Исходной форме любых Производных работ, которые вы
- распространяете, авторские права, патенты, торговые марки, а также
- соответствующие уведомления из Исходной формы Работы, за исключением тех,
- что не имеют отношения к какой-либо части Производной работы; и
-
- d. Если Работа включает в себя текстовый файл «PRINCIPLE», как часть пакета, то любые
- Производные работы, распространяемые Вами, должны включать читаемую копию этого
- файла. Вы можете добавить в файл PRINCIPLE свои собственные фундаментальные
- идеи, утверждения или предположения, которые служат основой понимания внутренней
- структуры и принципов Производной Работы или Вклада.
-
- Вы можете добавить свои собственные заявления об авторских правах на изменения, сделанные
- вами. Кроме того, Вы можете предоставить дополнительные или иные лицензионные условия и
- условия использования, воспроизведения или распространения Ваших модификаций или Производных
- работ, как и работы в целом. Если Вы не представили собственных условий использования,
- воспроизведения или растространения Работы, то указанные условия будут соответствовать
- настоящей Лицензии.
-
-
-5. Предоставление вкладов
-
- Если Вы явно не указали иное, любые материалы, намеренно представленные Вами для включения
- в Работу Лицензиаром должны соответствовать положениям и условиям данной Лицензии без каких-либо
- дополнительных условий или ограничений. Вышесказанное никаким образом не заменяет и не изменяет
- условия любого отдельного лицензионного соглашения, заключённого Вами и Лицензиаром в отношении
- таких Вкладов.
-
-
-6. Товарные знаки
-
- Эта лицензия не дает разрешения на использование торговых наименований, товарных знаков,
- знаков обслуживания или названий продуктов Лицензиара, за исключением случаев разумного
- и обычного использования при описании происхождения Работы и воспроизведении содержания
- файла PRINCIPLE.
-
-
-7. Отказ от гарантий
-
- Если это не предусмотрено применимыми законами или не согласовано в письменной форме,
- Лицензиар предоставляет Работу (и каждый Участник предоставляет свои Вклады) «КАК ЕСТЬ»,
- БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых, включая, без ограничений,
- любые условия или гарантии ПРАВ СОБСТВЕННОСТИ, ПАТЕНТНЫХ ПРАВ, КОММЕРЧЕСКОЙ ЦЕННОСТИ
- и ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ. Вы несете полную ответственность за определение
- целесообразности использования или распространения Работы и несёте риски, связанные
- с осуществлением прав в соответствии с настоящей Лицензией.
-
-
-8. Ограничение ответственности
-
- Ни в каком случае и ни на каком правовом поле, будь то в результате гражданского
- правонарушения (включая халатность), по соглашению, или в других случаях, если только
- это не требуется действующим законодательством (например, в случае преднамеренных
- действий и грубой небрежности) или согласовано в письменной форме, никакой Участник
- не будет нести ответственность перед Вами за убытки, в том числе любые прямые, косвенные,
- специальные, случайные или последующие убытки любого характера, возникающие в результате
- этой Лицензии или в связи с использованием или невозможностью использования Работы
- (включая возмещение ущерба за потерю репутации, прекращение работы, компьютерный сбой
- или неисправность, любые другие коммерческие убытки или потери, но не ограничиваясь ими),
- даже если такой Участник был уведомлен о возможности таких убытков.
-
-
-9. Принятие ответственности по гарантиям
-
- При распространении работы Вы можете предложить и взимать плату за гарантии, поддержку,
- поручительство, компенсации и другие обязательства по ответственности или правам
- в соответствии с настоящей Лицензией. Тем не менее, при принятии таких обязательств,
- Вы действуете только от своего имени и под Вашу исключительную ответственность,
- а не от имени какого-либо другого Участника, и только тогда, когда Вы согласны
- компенсировать убытки, защищать и поддерживать каждого Участника от какой-либо
- ответственности или претензий, заявленных по причине Вашего принятия таких гарантий
- или дополнительной ответственности.
-
-
-ПРИЛОЖЕНИЯ
-
-ПРИЛОЖЕНИЕ 1: Как применить Лицензию Radix.pro к вашей работе
-
- Чтобы применить Лицензию Radix.pro к вашей Работе, необходимо приложить следующее
- уведомление, заменив поля, заключенные в скобки "[]" вашей собственной идентификационной
- информацией (Не включая сами скобки!). Текст должен быть заключен в комментарий,
- соответствующий синтаксису формата файла. Мы также рекомендуем, чтобы имя файла или
- имя класса, а также описание назначения Работы были включены в ту же "печатную страницу",
- как уведомление об авторских правах для упрощения идентификации сторонних архивов.
-
- Copyright [год] [имя владельца авторских прав]
-
- Лицензировано согласно Лицензии Radix.pro, Версия 1.0 ("Лицензия");
- Вы можете использовать этот файл только в соответствии с Лицензией.
- Вы можете найти копию Лицензии по адресу
-
- http://radix.pro/licenses/LICENSE-1.0-ru_RU.txt
-
- Если это не предусмотрено применимыми законами или не согласовано
- в письменной форме, программное обеспечение, распространяемое на
- условиях данной Лицензии, предоставляется «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ
- И УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
-
-
-ПРИЛОЖЕНИЕ 2: Примеры комментариев
-
-/**********************************************************************
-
- Copyright 2016 Андрей В.Костельцев
-
- Лицензировано согласно Лицензии Radix.pro, Версия 1.0 ("Лицензия");
- Вы можете использовать этот файл только в соответствии с Лицензией.
- Вы можете найти копию Лицензии по адресу
-
- http://radix.pro/licenses/LICENSE-1.0-ru_RU.txt
-
- Если это не предусмотрено применимыми законами или не согласовано
- в письменной форме, программное обеспечение, распространяемое на
- условиях данной Лицензии, предоставляется «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ
- И УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
-
- **********************************************************************/
-
-
-#!/bin/sh
-#######################################################################
-#
-# Copyright 2016 Андрей В.Костельцев
-#
-# Лицензировано согласно Лицензии Radix.pro, Версия 1.0 ("Лицензия").
-# Вы можете использовать этот файл только в соответствии с Лицензией.
-# Вы можете найти копию Лицензии по адресу:
-#
-# http://radix.pro/licenses/LICENSE-1.0-ru_RU.txt
-#
-# Если это не предусмотрено применимыми законами или не согласовано
-# в письменной форме, программное обеспечение, распространяемое на
-# условиях данной Лицензии, предоставляется «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ
-# И УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
-#
-#######################################################################
-
Index: build-system-1.10.x/doc/PRINCIPLE.md
===================================================================
--- build-system-1.10.x/doc/PRINCIPLE.md (revision 57)
+++ build-system-1.10.x/doc/PRINCIPLE.md (nonexistent)
@@ -1,97 +0,0 @@
-
-
-The fundamental principle of the build system
-=============================================
-
-Assume that we need to build the program or alienated package for working
-on the three devices with names **ci20**, **bt01** and **dm64**. The first two devices
-(**ci20**, **bt01**) are based on the **MIPS** architecture, and the third device (**dm64**)
-is built on **ARM**-based processor. Toolchains for building our program, for
-simplicity, let's call **mips** and **arm**, respectively.
-
-The build script of the source program is the same for each of our devices
-and is written on **GNU Make**.
-
-If we present all available combinations of command line calls, required for
-building the program for our devices, we get:
-
-```bash
- $ TOOLCHAIN=mips HARDWARE=ci20 make
- $ TOOLCHAIN=mips HARDWARE=bt01 make
- $ TOOLCHAIN=arm HARDWARE=dm64 make
-```
-
-or (in case when the **TOOLCHAIN-HARDWARE** pairs are transmitted as arguments):
-
-```bash
- $ make TOOLCHAIN=mips HARDWARE=ci20
- $ make TOOLCHAIN=mips HARDWARE=bt01
- $ make TOOLCHAIN=arm HARDWARE=dm64
-```
-
-Thus, the **build system** must receive a **TOOLCHAIN-HARDWARE** pair, and then the
-**build system** has to determine which toolchain must be used for a particular
-device.
-
-Let us now consider how to organize the sequence of command calls (on the
-**build system** level) in such way that the user can do these actions by
-applying only one call:
-
-```bash
- $ make
-```
-
-without specifying additional arguments which are responsible for selection
-of the target device and applicable toolchain.
-
-If we describe the list of valid terget devices at the beginning of our script,
-for example, as follows:
-
-```make
-COMPONENT_TARGETS = $(HARDWARE_CI20)
-COMPONENT_TARGETS += $(HARDWARE_BT01)
-COMPONENT_TARGETS += $(HARDWARE_DM64)
-```
-
-then the **build system** can automatically construct a list of possible
-**TOOLCHAIN-HARDWARE** combinations for a given build script, which will looks
-like following:
-
-```make
- targets = target_mips_ci20 target_mips_bt01 target_arm_dm64
-```
-
-With such list, the **build system** can restore arguments which are needed for
-each of three our calls. It is very simple to do. On the **GNU Make** language we can
-do it as shown by following lines:
-
-```make
-target_%: TOOLCHAIN = $(shell echo $(word 2, $(subst _, , $@)))
-target_%: HARDWARE = $(shell echo $(word 3, $(subst _, , $@)))
-target_%:
- $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE)
-```
-
-Thus, if we call the **Make** utility without arguments then **TOOLCHAIN** and **HARDWARE**
-variables will be undefined. In this case the **build system** starts to collect the
-targets list. When the **targets** list will be complete the **build system** can do the
-call
-
-```make
- $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE)
-```
-
-with valid arguments.
-
-When (at the next call) the system will make sure that the **TOOLCHAIN** and
-**HARDWARE** variables are defined, the control of the build process will be passed
-to our build script without additional calculations.
-
-The described mechanism is directly derived from the **GNU Make** documentation.
-
-
-References
-----------
-1. <http://www.gnu.org/software/make/manual/>
-2. <https://radix.pro/build-system/>
-
Index: build-system-1.10.x/doc/LICENSE-1.0-en_US.txt
===================================================================
--- build-system-1.10.x/doc/LICENSE-1.0-en_US.txt (revision 57)
+++ build-system-1.10.x/doc/LICENSE-1.0-en_US.txt (nonexistent)
@@ -1,268 +0,0 @@
-
-
- Radix.pro License
- Version 1.0, March 2016
- http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-
-
-1. Definitions
-
- 1.1. "License"
-
- means the terms and conditions for use, reproduction, and distribution
- as defined by this document.
-
-
- 1.2. "Licensor"
-
- means the copyright owner or entity authorized by the copyright owner that is
- granting the License.
-
-
- 1.3. "Legal Entity"
-
- means the union of the acting entity and all other entities that control, are
- controlled by, or are under common control with that entity. For the purposes
- of this definition, "control" means:
- a. the power, direct or indirect, to cause the direction or management of such
- entity, whether by contract or otherwise, or
- b. ownership of fifty percent (50%) or more of the outstanding shares, or
- c. beneficial ownership of such entity.
-
-
- 1.4. "You" (or "Your")
-
- means an individual or Legal Entity exercising permissions granted by this License.
-
-
- 1.5. “Licensable”
-
- means having the right to grant, to the maximum extent possible, whether at the
- time of the initial grant or subsequently, any and all of the rights conveyed
- by this License.
-
-
- 1.6. "Source Form"
-
- means the form of the Work preferred for making Modifications, including but not limited
- to software source code, documentation source, and configuration files.
-
-
- 1.7. "Object Form"
-
- means any form resulting from mechanical transformation or translation of a Source form,
- including but not limited to compiled object code, generated documentation, and conversions
- to other media types.
-
-
- 1.8. "Work"
-
- means the work of authorship, whether in Source or Object Form, made available under
- the License, as indicated by a copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
-
- 1.9. "Derivative Works"
-
- means any work, whether in Source or Object Form, that is based on (or derived from) the Work
- and for which the editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes of this License,
- Derivative Works shall not include works that remain separable from, or merely link
- (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-
- 1.10. "Contribution"
-
- means any work of authorship, including the original version of the Work and any modifications
- or additions to that Work or Derivative Works thereof, that is intentionally submitted to
- Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity
- authorized to submit on behalf of the copyright owner. For the purposes of this definition,
- "submitted" means any form of electronic, verbal, or written communication sent to the Licensor
- or its representatives, including but not limited to communication on electronic mailing lists,
- source code control systems, and issue tracking systems that are managed by, or on behalf of,
- the Licensor for the purpose of discussing and improving the Work, but excluding communication
- that is conspicuously marked or otherwise designated in writing by the copyright owner
- as "Not a Contribution."
-
-
- 1.11. "Contributor"
-
- means Licensor and any individual or Legal Entity on behalf of whom a Contribution has been
- received by Licensor and subsequently incorporated within the Work.
-
-
- 1.12. “Patent Claims” of a Contributor
-
- means any patent claim(s), including without limitation, method, process, and apparatus claims,
- in any patent Licensable by such Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having made, import, or transfer
- of either its Contributions or its Contributor Version.
-
-
-
-2. Grant of Copyright License
-
- Subject to the terms and conditions of this License, each Contributor hereby grants to You
- a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license
- to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense,
- and distribute the Work and such Derivative Works in Source or Object Form.
-
-
-3. Grant of Patent License
-
- Subject to the terms and conditions of this License, each Contributor hereby grants
- to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made, use, offer to
- sell, sell, import, and otherwise transfer the Work, where such license applies only
- to those patent claims Licensable by such Contributor that are necessarily infringed
- by their Contribution(s) alone or by combination of their Contribution(s) with the
- Work to which such Contribution(s) was submitted. If You institute patent litigation
- against any entity (including a cross-claim or counterclaim in a lawsuit) alleging
- that the Work or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses granted to You under
- this License for that Work shall terminate as of the date such litigation is filed.
-
-
-4. Redistribution
-
- You may reproduce and distribute copies of the Work or Derivative Works thereof
- in any medium, with or without modifications, and in Source or Object Form, provided
- that You meet the following conditions:
-
- a. You must give any other recipients of the Work or Derivative Works
- a copy of this License; and
- b. You must cause any modified files to carry prominent notices stating that
- You changed the files; and
- c. You must retain, in the Source form of any Derivative Works that You distribute,
- all copyright, patent, trademark, and attribution notices from the Source form
- of the Work, excluding those notices that do not pertain to any part of the
- Derivative Works; and
- d. If the Work includes a "PRINCIPLE" text file as part of its distribution, then
- any Derivative Works that You distribute must include a readable copy of the
- fundamental ideas, truths or propositions contained within such PRINCIPLE file.
- You may add Your own fundamental ideas, truths or propositions that serves as
- the foundation for understanding the internal structure and principles of
- Derivative works or Contributions.
-
- You may add Your own copyright statement to Your modifications and may provide additional
- or different license terms and conditions for use, reproduction, or distribution of Your
- modifications, or for any such Derivative Works as a whole, provided Your use, reproduction,
- and distribution of the Work otherwise complies with the conditions stated in this License.
-
-
-5. Submission of Contributions
-
- Unless You explicitly state otherwise, any Contribution intentionally submitted for
- inclusion in the Work by You to the Licensor shall be under the terms and conditions
- of this License, without any additional terms or conditions. Notwithstanding the above,
- nothing herein shall supersede or modify the terms of any separate license agreement
- you may have executed with Licensor regarding such Contributions.
-
-
-6. Trademarks
-
- This License does not grant permission to use the trade names, trademarks, service marks,
- or product names of the Licensor, except as required for reasonable and customary use in
- describing the origin of the Work and reproducing the content of the PRINCIPLE file.
-
-
-7. Disclaimer of Warranty
-
- Unless required by applicable law or agreed to in writing, Licensor provides the Work
- (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES
- OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any
- warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of
- using or redistributing the Work and assume any risks associated with Your exercise of
- permissions under this License.
-
-
-8. Limitation of Liability
-
- In no event and under no legal theory, whether in tort (including negligence), contract,
- or otherwise, unless required by applicable law (such as deliberate and grossly negligent
- acts) or agreed to in writing, shall any Contributor be liable to You for damages, including
- any direct, indirect, special, incidental, or consequential damages of any character arising
- as a result of this License or out of the use or inability to use the Work (including but not
- limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or
- any and all other commercial damages or losses), even if such Contributor has been advised
- of the possibility of such damages.
-
-
-9. Accepting Warranty or Additional Liability
-
- While redistributing the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity, or other liability
- obligations and/or rights consistent with this License. However, in accepting such
- obligations, You may act only on Your own behalf and on Your sole responsibility, not
- on behalf of any other Contributor, and only if You agree to indemnify, defend, and
- hold each Contributor harmless for any liability incurred by, or claims asserted
- against, such Contributor by reason of your accepting any such warranty or additional
- liability.
-
-
-APPENDICES
-
-APPENDIX 1: How to apply the Radix.pro License to your work
-
- To apply the Radix.pro License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Radix.pro License, Version 1.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied.
-
-
-APPENDIX 2: Examples of comments
-
-/**********************************************************************
-
- Copyright 2016 Andrey V.Kosteltsev
-
- Licensed under the Radix.pro License, Version 1.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied.
-
- **********************************************************************/
-
-
-#!/bin/sh
-#######################################################################
-#
-# Copyright 2016 Andrey V.Kosteltsev
-#
-# Licensed under the Radix.pro License, Version 1.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://radix.pro/licenses/LICENSE-1.0-en_US.txt
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-#
-#######################################################################
-
Index: build-system-1.10.x/doc/PRINCIPLE.utf8
===================================================================
--- build-system-1.10.x/doc/PRINCIPLE.utf8 (revision 57)
+++ build-system-1.10.x/doc/PRINCIPLE.utf8 (nonexistent)
@@ -1,83 +0,0 @@
-
-Фундаментальный принцип работы системы сборки
-=============================================
-
-Предположим, что нам необходимо собрать программу или отчуждаемый пакет для
-работы на трех устройствах с именами ci20, bt01 и dm64. Первые два устройства
-ci20 и bt01 основаны на архитектуре MIPS, третье устройство dm64 построенно
-на базе процессора ARM. Toolchain-ы для сборки программ, для простоты, назовем
-mips и arm, соответственно.
-
-Сценарий сборки исходной программы одинаков для всех трех устройств и написан
-на языке GNU Make.
-
-Если представить все комбинации вызовов команды Make, необходимые для сборки
-программы на наши устройства, получим:
-
- $ TOOLCHAIN=mips HARDWARE=ci20 make
- $ TOOLCHAIN=mips HARDWARE=bt01 make
- $ TOOLCHAIN=arm HARDWARE=dm64 make
-
-или, при передаче имен устройств и Toolchain-ов в качестве аргументов:
-
- $ make TOOLCHAIN=mips HARDWARE=ci20
- $ make TOOLCHAIN=mips HARDWARE=bt01
- $ make TOOLCHAIN=arm HARDWARE=dm64
-
-Таким образом, система сборки должна принимать пары TOOLCHAIN-HARDWARE,
-которые определяют какой именно Toolchain необходимо использовать для того
-или иного устройства.
-
-Рассмотрим теперь, как, на уровне системы сборки, организовать последовательность
-вызовов утилиты Make для нашего сценария таким образом, чтобы пользователь мог
-осуществить данные действия с помощью лишь одного вызова:
-
- $ make
-
-без задания дополнительных аргументов, отвечающих за выбор целевого устройства
-и связанного с ним Toolchain-а.
-
-Если включить в начало нашего сценария список допустимых целевых устройств,
-например, следующим образом:
-
-COMPONENT_TARGETS = $(HARDWARE_CI20)
-COMPONENT_TARGETS += $(HARDWARE_BT01)
-COMPONENT_TARGETS += $(HARDWARE_DM64)
-
-то система сборки сможет автоматически построить список возможных, для данного
-сценария, комбинаций TOOLCHAIN-HARDWARE, который будет выглядеть, например,
-следующим образом:
-
- targets = target_mips_ci20 target_mips_bt01 target_arm_dm64
-
-Имея такой список, система сборки может восстановить аргументы, которые
-необходимо передавать при каждом вызове утилиты Make, для нашего сценария.
-Сделать это нетрудно, на языке GNU Make эти действия можно описать так:
-
-target_%: TOOLCHAIN = $(shell echo $(word 2, $(subst _, , $@)))
-target_%: HARDWARE = $(shell echo $(word 3, $(subst _, , $@)))
-target_%:
- $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE)
-
-
-Таким образом, при вызове команды Make без аргументов, переменные TOOLCHAIN и
-HARDWARE будут не определены и, в этом случае, система сборки займется созданием
-списка targets из числа допустимых комбинаций. Когда же список будет составлен,
-система сборки сможет осуществить вызов
-
- $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE)
-
-с действительными аргументами.
-
-Когда же, при очередном вызове, система убедится в том, что переменные
-TOOLCHAIN и HARDWARE определены, управление будет передано нашему сценарию
-без дополнительных вычислений.
-
-Описанный здесь механизм, напрямую вытекает из возможностей утилиты Make.
-
-
-References
-----------
-http://www.gnu.org/software/make/manual/
-http://radix.pro/build-system/
-
Index: build-system-1.10.x/doc/PRINCIPLE.iso88591
===================================================================
--- build-system-1.10.x/doc/PRINCIPLE.iso88591 (revision 57)
+++ build-system-1.10.x/doc/PRINCIPLE.iso88591 (nonexistent)
@@ -1,82 +0,0 @@
-
-The fundamental principle of the build system
-=============================================
-
-Assume that we need to build the program or alienated package for working
-on the three devices with names ci20, bt01 and dm64. The first two devices
-(ci20, bt01) are based on the MIPS architecture, and the third device (dm64)
-is built on ARM-based processor. Toolchains for building our program, for
-simplicity, let's call mips and arm, respectively.
-
-The build script of the source program is the same for each of our devices
-and is written on GNU Make.
-
-If we present all available combinations of command line calls, required for
-building the program for our devices, we get:
-
- $ TOOLCHAIN=mips HARDWARE=ci20 make
- $ TOOLCHAIN=mips HARDWARE=bt01 make
- $ TOOLCHAIN=arm HARDWARE=dm64 make
-
-or (in case when the TOOLCHAIN-HARDWARE pairs are transmitted as arguments):
-
- $ make TOOLCHAIN=mips HARDWARE=ci20
- $ make TOOLCHAIN=mips HARDWARE=bt01
- $ make TOOLCHAIN=arm HARDWARE=dm64
-
-Thus, the build system must receive a TOOLCHAIN-HARDWARE pair, and then the
-build system has to determine which toolchain must be used for a particular
-device.
-
-Let us now consider how to organize the sequence of command calls (on the
-build system level) in such way that the user can do these actions by
-applying only one call:
-
- $ make
-
-without specifying additional arguments which are responsible for selection
-of the target device and applicable toolchain.
-
-If we describe the list of valid terget devices at the beginning of our script,
-for example, as follows:
-
-COMPONENT_TARGETS = $(HARDWARE_CI20)
-COMPONENT_TARGETS += $(HARDWARE_BT01)
-COMPONENT_TARGETS += $(HARDWARE_DM64)
-
-then the build system can automatically construct a list of possible
-TOOLCHAIN-HARDWARE combinations for a given build script, which will looks
-like following:
-
- targets = target_mips_ci20 target_mips_bt01 target_arm_dm64
-
-With such list, the build system can restore arguments which are needed for
-each of three our calls. It is very simple to do. On the Make language we can
-do it as shown by following lines:
-
-target_%: TOOLCHAIN = $(shell echo $(word 2, $(subst _, , $@)))
-target_%: HARDWARE = $(shell echo $(word 3, $(subst _, , $@)))
-target_%:
- $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE)
-
-Thus, if we call the Make utility without arguments then TOOLCHAIN and HARDWARE
-variables will be undefined. In this case the build system starts to collect the
-targets list. When the targets list will be complete the build system can do the
-call
-
- $(MAKE) TOOLCHAIN=$(TOOLCHAIN) HARDWARE=$(HARDWARE)
-
-with valid arguments.
-
-When (at the next call) the system will make sure that the TOOLCHAIN and
-HARDWARE variables are defined, the control of the build process will be passed
-to our build script without additional calculations.
-
-The described mechanism is directly derived from the GNU Make documentation.
-
-
-References
-----------
-http://www.gnu.org/software/make/manual/
-http://radix.pro/build-system/
-
Index: build-system-1.10.x/doc
===================================================================
--- build-system-1.10.x/doc (revision 57)
+++ build-system-1.10.x/doc (nonexistent)
Property changes on: build-system-1.10.x/doc
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/write-efiboot-image
===================================================================
--- build-system-1.10.x/write-efiboot-image (revision 57)
+++ build-system-1.10.x/write-efiboot-image (nonexistent)
@@ -1,786 +0,0 @@
-#!/bin/bash
-
-CWD=`pwd`
-
-program=`basename $0`
-sbindir=`cd $(dirname ${BASH_SOURCE[0]}) >/dev/null 2>&1 && pwd`
-
-# 13 = permission denied (should be root)
-# 14 = required tools is not installed in system
-# 92 = Cannot create '/tmp/...' directory
-EXITSTATUS=0
-
-################################################################
-#
-# TMPDIR & signal handlers:
-#
-if [ -z "${DISTRO_NAME}" ] ; then
- DISTRO_NAME='radix'
-fi
-
-umask 022
-if [ ! -z "${TMPDIR}" ] ; then
- export TMPDIR
-elif [ ! -d "${TMPDIR}" -o ! -w "${TMPDIR}" ] ; then
- if [ -d "${HOME}/tmp" -a -w "${HOME}/tmp" ] ; then
- export TMPDIR="${HOME}/tmp"
- elif [ -d "/tmp" -a -w "/tmp" ] ; then
- export TMPDIR="/tmp"
- fi
-fi
-TMP=$(mkdir -p ${TMPDIR}/${DISTRO_NAME} && mktemp -d -p ${TMPDIR}/${DISTRO_NAME} $program.XXXXXXXX) || { echo "Cannot create '/tmp/...' directory" ; exit 92; }
-MNT=/mnt
-if [ ! -f /etc/system-installer ] ; then
- if [ ! -z "${TMPDIR}" ] ; then
- mkdir -p ${TMPDIR}/${DISTRO_NAME}/mnt
- MNT=${TMPDIR}/${DISTRO_NAME}/mnt
- else
- mkdir -p /tmp/${DISTRO_NAME}/mnt
- MNT=/tmp/${DISTRO_NAME}/mnt
- fi
-fi
-
-trap 'for dir in "`find ${MNT} -type d -mindepth 1 -maxdepth 1`" ; do \
- umount ${dir} 2> /dev/null ; \
- done ; \
- rm -rf ${TMP} ; \
- clear ; \
- head -c 100 /dev/zero | tr "\0" "\n" ; \
- echo "ERROR: $program - has been terminated." ; \
- echo "" ; \
- exit 1' INT TERM
-
-#
-# Normal exit:
-#
-trap 'for dir in "`find ${MNT} -type d -mindepth 1 -maxdepth 1`" ; do \
- umount ${dir} 2> /dev/null ; \
- done ; \
- rm -rf ${TMP} ; \
- exit 0' EXIT
-#
-################################################################
-
-
-DIALOG=
-export DIALOGRC=${CWD}/.dialogrc
-DDOUTPUT=${TMP}/dd-output.$$
-
-VERBOSE=no
-
-FDISK=`PATH=/sbin:/usr/sbin:$PATH which fdisk`
-if [ "`basename ${FDISK}`" != "fdisk" ] ; then
- echo "ERROR: fdisk utility is not found in the system"
- EXITSTATUS=14
- exit $EXITSTATUS
-fi
-
-BC=`PATH=/bin:/usr/bin:$PATH which bc`
-if [ "`basename ${BC}`" != "bc" ] ; then
- echo "ERROR: bc utility is not found in the system"
- EXITSTATUS=14
- exit $EXITSTATUS
-fi
-
-DD=`PATH=/bin:/usr/bin:$PATH which dd`
-if [ "`basename ${DD}`" != "dd" ] ; then
- echo "ERROR: dd utility is not found in the system"
- EXITSTATUS=14
- exit $EXITSTATUS
-fi
-
-PARTPROBE=`PATH=/sbin:/usr/sbin:$PATH which partprobe`
-if [ "`basename ${PARTPROBE}`" != "partprobe" ] ; then
- PARTPROBE=
-fi
-
-usage() {
- cat <<EOF
-
-Usage: ${program} [options] <DEVICE>
-
-options:
- -e, --efifs-image <efi32fs-image> - EFI filesystem image;
- -r, --rootfs-image <ext4fs-image> - ROOT filesystem image;
- -s, --spase <SIZE> - SIZE reserved for other partitions,
- for example, home file system.
- Default SIZE=1G;
- -v, --verbose - Enable verbose output;
- -d, --dialog - Enable DIALOG to show progress;
- -h, --help - Display this information.
-
-DEVICE can be a regular file or block device such as /dev/sda, /dev/loop0, etc...
-
-EOF
-}
-
-check_current_user() {
- msg=$1
- if [ "$EUID" != "0" ] ; then
- if [ "x${msg}" != "x" ] ; then
- echo "ERROR: ${msg}"
- else
- echo "ERROR: ${program} - must be run by superuser"
- fi
- EXITSTATUS=13
- exit $EXITSTATUS
- fi
-}
-
-
-################################################################
-#
-# show_progress() - print progress without DIALOG.
-#
-# arguments:
-# ---------
-# $1 - input stream in following format:
-#
-# XXX
-# $PCT
-# \n\
-# $line
-# XXX
-#
-# where $PCT - persentage [0 ... 100],
-# $line - message printed before progress line.
-#
-show_progress() {
- local printed=no
-
- GAUGE_LENGHT=68
-
- local PCT=
-
- while read line ; do
-
- local message=
- local lines=0
- local lenght=0
- local ctx=0
- local i=0
-
- if [ "${line}" = "XXX" ] ; then
- continue
- fi
- if [[ "${line}" =~ ^[0-9]*$ ]] ; then
- PCT=${line}
- continue
- fi
- while [ "${line:0:1}" = "n" ] ; do
- line=${line:1}
- message="${message}\n"
- let 'lines += 1'
- done
-
- message="${message}${line}"
- let 'lines += 1'
-
- let 'lenght = 3 + GAUGE_LENGHT + 6'
- let 'lines += 3'
-
- if [ "${printed}" = "yes" ] ; then
- while [ ${i} -lt ${lines} ] ; do
- # Return back and cleaning line by line:
- printf "\r\033[K\033[1A"
- let 'i +=1'
- done
- i=0
- fi
-
- echo -e "${message}"
- printf "\n ["
-
- let 'ctx = GAUGE_LENGHT * PCT / 100'
-
- while [ $ctx -gt 0 ] ; do
- printf "\u2588"
- let 'ctx -= 1'
- let 'i += 1'
- done
-
- while [ $i -lt ${GAUGE_LENGHT} ] ; do
- printf " "
- let 'i += 1'
- done
-
- printf "] %3d%%\n\n" $PCT
-
- printed=yes
-
- done < "${1:-/dev/stdin}"
-}
-
-
-################################################################
-#
-# waitdd() - waiting for DD and display progress.
-#
-# arguments:
-# ---------
-# $1 - PID
-# $2 - DD output file
-# $3 - Size of input stream
-# $4 - Dialog title
-#
-waitdd() {
-
- local pid=$1
- local ddout=$2
- local isize=$3
- local title=$4
- local PCT=0
-
- ( while [ "x`ps -eo pid | grep ${pid}`" != "x" ] ; do
- kill -USR1 "${pid}" 2>/dev/null
- line=`tail -n1 ${ddout} | grep "bytes"`
- bytes=`echo "${line}" | cut -f 1 -d ' '`
- if [ "x${bytes}" != "x" ] ; then
- PCT=`echo "${bytes} * 100 / ${isize}" | ${BC}`
- fi
- cat << EOF
-XXX
-$PCT
-\n\
- $line
-XXX
-EOF
- usleep 300
- done
- if [ "x`ps -eo pid | grep ${pid}`" = "x" ] ; then
- cat << EOF
-XXX
-100
-\n\
- Written $isize bytes
-XXX
-EOF
- fi
- ) | if [ "x${DIALOG}" = "x" ] ; then
- show_progress
- else
- ${DIALOG} --colors \
- --backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \
- --title " \Z0${title}\Zn " --gauge "\n" 8 74 0
- fi
-}
-
-
-################################################################
-# Disk Geometry:
-#
-bytes=
-sectors=
-unit_size=
-log_sector_size=
-phy_sector_size=
-alignment=4096
-format="512N"
-#
-# Format | logical sector size | physical sector size
-# --------+---------------------+----------------------
-# 512N | 512 | 512
-# --------+---------------------+----------------------
-# 512E | 512 | 4096
-# --------+---------------------+----------------------
-# 4096N | 4096 | 4096
-# --------+---------------------+----------------------
-#
-
-disk_size_in_bytes() {
- disk=$1
- echo "`LANG=en_US.UTF-8 ${FDISK} -l $disk`" | while read -r line ; do
- found=`echo "$line" | grep "^Disk $disk"`
- if [ "$found" != "" ] ; then
- bytes=`echo $found | sed 's,.* \([0-9]*\) bytes.*,\1,'`
- echo "$bytes"
- break
- fi
- done
-}
-
-disk_size_in_sectors() {
- disk=$1
- echo "`LANG=en_US.UTF-8 ${FDISK} -l $disk`" | while read -r line ; do
- found=`echo "$line" | grep "^Disk $disk"`
- if [ "$found" != "" ] ; then
- sectors=`echo $found | sed 's,.* \([0-9]*\) sectors$,\1,'`
- echo "$sectors"
- break
- fi
- done
-}
-
-disk_unit_size() {
- disk=$1
- echo "`LANG=en_US.UTF-8 ${FDISK} -l $disk`" | while read -r line ; do
- found=`echo "$line" | grep "^Unit"`
- if [ "$found" != "" ] ; then
- unit_size=`echo $found | sed 's,.*= \([0-9]*\) bytes$,\1,'`
- echo "$unit_size"
- break
- fi
- done
-}
-
-disk_log_sector_size() {
- disk=$1
- echo "`LANG=en_US.UTF-8 ${FDISK} -l $disk`" | while read -r line ; do
- found=`echo "$line" | grep '^Sector size'`
- if [ "$found" != "" ] ; then
- log_sector_size=`echo $found | sed 's,.* \([0-9]*\) bytes / \([0-9]*\) bytes$,\1,'`
- echo "$log_sector_size"
- break
- fi
- done
-}
-
-disk_phy_sector_size() {
- disk=$1
- echo "`LANG=en_US.UTF-8 ${FDISK} -l $disk`" | while read -r line ; do
- found=`echo "$line" | grep '^Sector size'`
- if [ "$found" != "" ] ; then
- phy_sector_size=`echo $found | sed 's,.* \([0-9]*\) bytes / \([0-9]*\) bytes$,\2,'`
- echo "$phy_sector_size"
- break
- fi
- done
-}
-
-disk_geometry() {
- disk=$1
-
- bytes=`disk_size_in_bytes $disk`
- sectors=`disk_size_in_sectors $disk`
- unit_size=`disk_unit_size $disk`
- log_sector_size=`disk_log_sector_size $disk`
- phy_sector_size=`disk_phy_sector_size $disk`
-
- if [ $unit_size -eq $alignment ] ; then
- # Copy of GPT at end of disk:
- let "sectors = sectors - 5"
- else
- # Copy of GPT at end of disk:
- let "sectors = sectors - 33"
- fi
-
- if [ $phy_sector_size -eq $alignment ] ; then
- if [ $log_sector_size -lt $phy_sector_size ] ; then
- format="512E"
- else
- format="4096N"
- fi
- else
- format="512N"
- fi
-}
-#
-# End of Disk Geometry:
-################################################################
-
-
-DEVICE=
-EFI32FS_IMAGE=
-EXT4FS_IMAGE=
-
-efi32fs_size_in_bytes=
-ext4fs_size_in_bytes=
-
-#
-# Size reserved for home file system:
-#
-space_size="1G"
-space_size_in_bytes=
-
-disk_size_in_bytes=
-
-#
-# Parse options:
-#
-while [ $# -ne 0 ] ; do
- if [ "$1" = "-h" -o "$1" = "--help" ] ; then
- usage
- exit 0
- elif [ "$1" = "-v" -o "$1" = "--verbose" ] ; then
- VERBOSE=yes
- shift 1
- elif [ "$1" = "-d" -o "$1" = "--dialog" ] ; then
- DIALOG=dialog
- shift 1
- elif [ "$1" = "-e" -o "$1" = "--efifs-image" ] ; then
- if [ "x$2" = "x" ] ; then
- echo "ERROR: EFI filesystem image is not specified"
- exit 1
- fi
- EFI32FS_IMAGE="$2"
- shift 2
- elif [ "$1" = "-r" -o "$1" = "--rootfs-image" ] ; then
- if [ "x$2" = "x" ] ; then
- echo "ERROR: ROOT filesystem image is not specified"
- exit 1
- fi
- EXT4FS_IMAGE="$2"
- shift 2
- elif [ "$1" = "-s" -o "$1" = "--space" ] ; then
- if [ "$2" = "" ] ; then
- echo "ERROR: Space size for additional partitions is not specified"
- usage
- exit 1
- fi
- space_size="$2"
- if [ `echo "${space_size}" | grep '[Mm]'` ] ; then
- size=`echo "${space_size}" | sed 's/^[ \t]*//;s/[ \t]*$//;s/[a-zA-Z]*//g'`
- size=`echo "scale=1; $size * 1048576" | bc`
- prec=`echo "${size}" | cut -f2 -d'.'`
- size=`echo "${size}" | cut -f1 -d'.'`
- if [ $prec -gt 5 ] ; then
- let "size = size + 1"
- fi
- space_size_in_bytes=$size
- elif [ `echo "${space_size}" | grep '[Gg]'` ] ; then
- size=`echo "${space_size}" | sed 's/^[ \t]*//;s/[ \t]*$//;s/[a-zA-Z]*//g'`
- size=`echo "scale=1; $size * 1073741824" | bc`
- prec=`echo "${size}" | cut -f2 -d'.'`
- size=`echo "${size}" | cut -f1 -d'.'`
- if [ $prec -gt 5 ] ; then
- let "size = size + 1"
- fi
- space_size_in_bytes=$size
- else
- space_size_in_bytes=`echo "${space_size}" | sed 's/^[ \t]*//;s/[ \t]*$//;s/[a-zA-Z]*//g'`
- fi
- if [ `echo "${space_size_in_bytes}" | grep "[^0-9]"` ] ; then
- echo "ERROR: Wrong space size for additional partitions"
- usage
- exit 1
- fi
- shift 2
- else
- if [ $# -lt 1 ] ; then
- echo "ERROR: Target DEVICE is not specified"
- exit 1
- fi
- DEVICE="$1"
- break
- fi
-done
-
-
-if [ "x${DEVICE}" = "x" ] ; then
- echo "ERROR: Target DEVICE is not specified"
- exit 1
-fi
-
-if [ "x${EFI32FS_IMAGE}" = "x" ] ; then
- echo "ERROR: EFI filesystem image is not specified"
- exit 1
-fi
-
-if [ "x${EXT4FS_IMAGE}" = "x" ] ; then
- echo "ERROR: ROOT filesystem image is not specified"
- exit 1
-fi
-
-#
-# Calculate space size in bytes if not specified in command line:
-#
-if [ "x${space_size_in_bytes}" = "x" ] ; then
- if [ `echo "${space_size}" | grep '[Mm]'` ] ; then
- size=`echo "${space_size}" | sed 's/^[ \t]*//;s/[ \t]*$//;s/[a-zA-Z]*//g'`
- size=`echo "scale=1; $size * 1048576" | bc`
- prec=`echo "${size}" | cut -f2 -d'.'`
- size=`echo "${size}" | cut -f1 -d'.'`
- if [ $prec -gt 5 ] ; then
- let "size = size + 1"
- fi
- space_size_in_bytes=$size
- elif [ `echo "${space_size}" | grep '[Gg]'` ] ; then
- size=`echo "${space_size}" | sed 's/^[ \t]*//;s/[ \t]*$//;s/[a-zA-Z]*//g'`
- size=`echo "scale=1; $size * 1073741824" | bc`
- prec=`echo "${size}" | cut -f2 -d'.'`
- size=`echo "${size}" | cut -f1 -d'.'`
- if [ $prec -gt 5 ] ; then
- let "size = size + 1"
- fi
- space_size_in_bytes=$size
- else
- space_size_in_bytes=`echo "${space_size}" | sed 's/^[ \t]*//;s/[ \t]*$//;s/[a-zA-Z]*//g'`
- fi
-fi
-
-efi32fs_size_in_bytes=$(stat -c%s "${EFI32FS_IMAGE}")
-ext4fs_size_in_bytes=$(stat -c%s "${EXT4FS_IMAGE}")
-
-#
-# a multiple of 4096:
-#
-let "size = efi32fs_size_in_bytes / alignment * alignment"
-if [ ${size} -ne ${efi32fs_size_in_bytes} ] ; then
- echo "ERROR: EFI filesystem image size must be a multiple of 4096"
- exit 1
-fi
-
-let "size = ext4fs_size_in_bytes / alignment * alignment"
-if [ ${size} -ne ${ext4fs_size_in_bytes} ] ; then
- echo "ERROR: EFI filesystem image size must be a multiple of 4096"
- exit 1
-fi
-
-#
-# Calculate minimal size needed for input images:
-#
-disk_size_in_bytes=$(echo "${efi32fs_size_in_bytes} + ${ext4fs_size_in_bytes} + ${space_size_in_bytes}" | bc)
-disk_size_in_bytes=$(echo "${disk_size_in_bytes} + 512*2048 + 512*33" | bc)
-let "disk_size_in_bytes = disk_size_in_bytes / 512 * 512"
-
-
-if [ -b "${DEVICE}" ] ; then
- check_current_user "${program} should be run by superuser: '${DEVICE}' is not a regular file"
-elif [ ! -f "${DEVICE}" ] ; then
- if [ "x${DIALOG}" = "x" ] ; then
- echo -e "\nCreating an empty disk image..."
- fi
- cnt=$(echo "${disk_size_in_bytes} / 512" | bc)
- rm -f ${DDOUTPUT}
- LANG=en_US.UTF-8 ${DD} if=/dev/zero of=${DEVICE} of=disk bs=512 count=${cnt} >> ${DDOUTPUT} 2>&1 & \
- waitdd $! ${DDOUTPUT} ${disk_size_in_bytes} "Create empty disk image"
- rm -f ${DDOUTPUT}
-fi
-
-
-efi32fs_start_sector=2048
-efi32fs_end_sector=
-ext4fs_start_sector=
-ext4fs_end_sector=
-space_start_sector=
-space_end_sector=
-
-#
-# https://uefi.org/specifications ->
-# -> https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf
-#
-# If the block size is 512, the First Usable LBA must be greater than or equal to 34
-# (allowing 1 block for the Protective MBR, 1 block for the Partition Table Header, and
-# 32 blocks for the GPT Partition Entry Array); if the logical block size is 4096, the
-# First Useable LBA must be greater than or equal to 6 (allowing 1 block for the Protective
-# MBR, 1 block for the GPT Header, and 4 blocks for the GPT Partition Entry Array).
-#
-# Backup Partition Table requires 33 blocks in case block size is 512 bytes and 5 blocks
-# in case block size is 4096 bytes (Protective MBR has no copy at end of disk).
-#
-
-#
-# Get size of disk:
-#
-disk_geometry ${DEVICE}
-
-if [ "${VERBOSE}" = "yes" ] ; then
- if [ "x${DIALOG}" != "x" ] ; then
- clear
- fi
- echo ""
- echo "Disk Geometry:"
- echo "-------------"
- echo " bytes = $bytes"
- if [ $unit_size -eq $alignment ] ; then
- echo " sectors = $sectors + 5"
- else
- echo " sectors = $sectors + 33"
- fi
- echo " unit_size = $unit_size"
- echo " log_sector_size = $log_sector_size"
- echo " phy_sector_size = $phy_sector_size"
- echo " alignment = $alignment"
- echo " format = $format"
- echo ""
-fi
-
-if [ ${disk_size_in_bytes} -gt ${bytes} ] ; then
- echo "ERROR: Not enough space on '${DEVICE}' device"
- exit 1
-fi
-
-if [ $unit_size -eq $alignment ] ; then
- efi32fs_start_sector=256
-fi
-
-let "efi32fs_size_in_sectors = efi32fs_size_in_bytes / unit_size"
-let "ext4fs_size_in_sectors = ext4fs_size_in_bytes / unit_size"
-
-#
-# Calculation of the initial and final sectors of partitions:
-#
-let "efi32fs_end_sector = efi32fs_start_sector + ( efi32fs_size_in_bytes / unit_size - 1 )"
-let "ext4fs_start_sector = efi32fs_end_sector + 1"
-let "ext4fs_end_sector = ext4fs_start_sector + ( ext4fs_size_in_bytes / unit_size - 1 )"
-
-left=
-let "left = sectors - ext4fs_end_sector"
-need=
-let "need = space_size_in_bytes / unit_size"
-
-if [ $left -lt $need ] ; then
- echo "WARNING: Not enough space for additional partitions"
-fi
-
-if [ ${need} -gt 0 ] ; then
- let "space_start_sector = ext4fs_end_sector + 1"
- let "space_end_sector = sectors - 1"
-else
- space_start_sector=-1
- space_end_sector=-1
-fi
-
-if [ "${VERBOSE}" = "yes" ] ; then
- echo ""
- echo "Disk Partioning:"
- echo "---------------"
- echo " efi32fs_size_in_bytes = $efi32fs_size_in_bytes"
- echo " ext4fs_size_in_bytes = $ext4fs_size_in_bytes"
- echo " space_size_in_bytes = $space_size_in_bytes"
- echo ""
- echo " efi32fs_size_in_sectors = $efi32fs_size_in_sectors"
- echo " efi32fs_start_sector = $efi32fs_start_sector"
- echo " efi32fs_end_sector = $efi32fs_end_sector"
- echo ""
- echo " ext4fs_size_in_sectors = $ext4fs_size_in_sectors"
- echo " ext4fs_start_sector = $ext4fs_start_sector"
- echo " ext4fs_end_sector = $ext4fs_end_sector"
- echo ""
- echo " space_start_sector = $space_start_sector"
- echo " space_end_sector = $space_end_sector"
- echo ""
-fi
-
-
-UEFI_TYPE=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
-UEFI_UUID=eaf0eef1-f13a-7565-6669-203aefe0f0f2
-UEFI_NAME=uefi
-ROOT_TYPE=0FC63DAF-8483-4772-8E79-3D69D8477DE4
-ROOT_UUID=eaf0eef1-f13a-726F-6F74-203aefe0f0f2
-ROOT_NAME=root
-
-
-clean_disk() {
- disk=$1
- LANG=en_US.UTF-8 ${FDISK} --wipe=always --wipe-partition=always $disk 2>/dev/null 1>/dev/null <<EOF
-g
-w
-EOF
-}
-
-#
-# NOTE: номер первого (и единственного раздела не запрашивается):
-#
-create_efi_pattition() {
- disk=$1
- LANG=en_US.UTF-8 ${FDISK} --wipe=always --wipe-partition=always $disk 2>/dev/null 1>/dev/null <<EOF
-n
-1
-${efi32fs_start_sector}
-${efi32fs_end_sector}
-t
-${UEFI_TYPE}
-x
-n
-${UEFI_NAME}
-u
-${UEFI_UUID}
-r
-w
-EOF
-}
-
-create_root_pattition() {
- disk=$1
- LANG=en_US.UTF-8 ${FDISK} --wipe=always --wipe-partition=always $disk 2>/dev/null 1>/dev/null <<EOF
-n
-2
-${ext4fs_start_sector}
-${ext4fs_end_sector}
-t
-2
-${ROOT_TYPE}
-x
-n
-2
-${ROOT_NAME}
-u
-2
-${ROOT_UUID}
-r
-w
-EOF
-}
-
-#
-# Move the shell prompt to last line of Terminal:
-#
-if [ "x${DIALOG}" != "x" ] ; then
- echo -en "\033[$(tput lines)B"
-fi
-
-if [ "x${DIALOG}" = "x" ] ; then
- echo -e "\nDisk partitioning..."
-else
- ${DIALOG} --colors \
- --backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \
- --title " \Z0Disk partitioning...\Zn " \
- --infobox "\n Please wait for partitions have been created.\n" 5 74
-fi
-
-clean_disk ${DEVICE}
-if [ "x${PARTPROBE}" != "x" ] ; then
- ${PARTPROBE} ${DEVICE} 1>/dev/null 2>/dev/null
-fi
-
-create_efi_pattition ${DEVICE}
-if [ "x${PARTPROBE}" != "x" ] ; then
- ${PARTPROBE} ${DEVICE} 1>/dev/null 2>/dev/null
-fi
-
-create_root_pattition ${DEVICE}
-if [ "x${PARTPROBE}" != "x" ] ; then
- ${PARTPROBE} ${DEVICE} 1>/dev/null 2>/dev/null
-fi
-
-#
-# Write EFI boot image:
-#
-if [ "x${DIALOG}" = "x" ] ; then
- echo -e "\nRecording the '`basename ${EFI32FS_IMAGE}`' image..."
-fi
-rm -f ${DDOUTPUT}
-LANG=en_US.UTF-8 \
- ${DD} if=${EFI32FS_IMAGE} of=${DEVICE} \
- bs=${unit_size} count=${efi32fs_size_in_sectors} \
- seek=${efi32fs_start_sector} conv=notrunc >> ${DDOUTPUT} 2>&1 & \
- waitdd $! ${DDOUTPUT} ${efi32fs_size_in_bytes} "EFI boot image recording..."
-rm -f ${DDOUTPUT}
-
-sleep 1
-
-#
-# Write EXT4 rootfs image:
-#
-if [ "x${DIALOG}" = "x" ] ; then
- echo -e "\nRecording the '`basename ${EXT4FS_IMAGE}`' image..."
-fi
-rm -f ${DDOUTPUT}
-LANG=en_US.UTF-8 \
- ${DD} if=${EXT4FS_IMAGE} of=${DEVICE} \
- bs=${unit_size} count=${ext4fs_size_in_sectors} \
- seek=${ext4fs_start_sector} conv=notrunc >> ${DDOUTPUT} 2>&1 & \
- waitdd $! ${DDOUTPUT} ${ext4fs_size_in_bytes} "ROOT filesystem image recording..."
-rm -f ${DDOUTPUT}
-
-sleep 1
-
-if [ "x${DIALOG}" = "x" ] ; then
- echo -e "\nEFI boot disk is written.\n"
-else
- ${DIALOG} --colors \
- --backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \
- --title " \Z0EFI Boot Disk is Complete\Zn " \
- --infobox "\n Boot disk is written.\n" 5 74
-fi
Property changes on: build-system-1.10.x/write-efiboot-image
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/.gitignore
===================================================================
--- build-system-1.10.x/.gitignore (revision 57)
+++ build-system-1.10.x/.gitignore (nonexistent)
@@ -1,53 +0,0 @@
-
-# local config & object files
-build-config.mk
-sbin/
-usr/
-var/
-progs/autom4te.cache/
-progs/.config
-progs/config.log
-progs/config.status
-progs/configure
-
-# cpan configure targets
-cpan/.installed
-cpan/CPAN-Config.pm
-cpan/CPAN-install
-cpan/config.log
-cpan/config.status
-cpan/configure
-
-
-# Target build dirs
-.build-machine/
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/rootfs_clean
===================================================================
--- build-system-1.10.x/rootfs_clean (revision 57)
+++ build-system-1.10.x/rootfs_clean (nonexistent)
@@ -1,123 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Basename;
-use Fcntl ':flock';
-use _kxLab;
-
-my $distro = _kxLab::distro_name();
-
-my @arguments;
-my ( $base, $toolchain, $hardware, $flavour );
-my $target_build_dir;
-
-my $curdir = $ENV{CWD};
-my $removepkg = $ENV{REMOVE_PACKAGE};
-my $fname = "";
-my $pkg = "";
-
-my $pkg_name = "";
-my $pkg_group = "";
-my $pkg_dir = "";
-my $rootfs_dir = "";
-
-sub usage
-{
- print <<EOF;
-
-Usage: rootfs_clean [options]
-Options:
- --destination=ROOTFS - where ROOTFS is a destination directory.
- --toolchain=TOOLCHAIN - where TOOLCHAIN ia a toolchain name;
- --hardware=HARDWARE - where HARDWARE ia a HARDWARE name;
- --flavour=FLAVOUR - where FLAVOUR ia a FLAVOUR name.
-
-EOF
- exit;
-}
-
-foreach ( @ARGV )
-{
- if( /--destination=(\S*)/ )
- {
- $base = $1;
- }
- elsif( /--toolchain=(\S*)/ )
- {
- $toolchain = $1;
- }
- elsif( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--help/ )
- {
- usage;
- }
-}
-
-if( ! defined $base or $base eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-if ( $curdir )
-{
- $fname = "$curdir/" . $target_build_dir . "/.rootfs";
-}
-else
-{
- $fname = $target_build_dir . "/.rootfs";
-}
-
-
-open( F, '<', $fname ) or die "Could not open '$fname'";
-
-
-while( <F> )
-{
- chomp;
-
- $pkg = "$base/$_";
- $pkg_group = dirname( $pkg ); # extract GROUP if present:
- $pkg_group =~ s!/.+/var/log/$distro/packages/!!;
- $pkg_name = basename( $pkg );
- $pkg_dir = dirname( $pkg );
- $rootfs_dir = $pkg_dir;
- $rootfs_dir =~ s!/var/log/$distro/packages.*$!!;
-
- #####################
- # LOCK procedure:
- #
- #my $lock_fname = _kxLab::build_system_tmpdir() . "/." . $hardware . ".pkgtool-lock";
- #open( my $lock_fh, '+>', $lock_fname ) or
- # _kxLab::error( "$0: Could not open $lock_fname file: $!" );
- #flock( $lock_fh, LOCK_EX ) or
- # _kxLab::error( "$0: Cannot lock $lock_fname file: $!" );
-
- _kxLab::system( "$removepkg --ignore-chrefs-errors --root=$rootfs_dir $pkg" );
-
- #flock( $lock_fh, LOCK_UN ) or
- # _kxLab::error( "$0: Cannot unlock $lock_fname file: $!" );
- #close( $lock_fh );
- #
- # UN LOCK procedure.
- #####################
-}
Property changes on: build-system-1.10.x/rootfs_clean
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/install_pkgs
===================================================================
--- build-system-1.10.x/install_pkgs (revision 57)
+++ build-system-1.10.x/install_pkgs (nonexistent)
@@ -1,171 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Basename;
-use File::Temp;
-use Fcntl ':flock';
-use _kxLab;
-
-my $distro = _kxLab::distro_name();
-
-# Global variables
-my $header_printed = 0;
-
-my $rootfs_dest_dir;
-my ($toolchain, $hardware, $flavour);
-my $target_build_dir;
-
-my $cleanup = $ENV{DO_CREATE_DIST_FILES} ? 0 : 1;
-my ($tempfd, $tempname);
-
-sub usage
-{
- print <<EOF;
-
-Usage: install_pkgs [options] package[ package]
-Options:
- --destination=ROOTFS - where ROOTFS is a destination directory.
- --toolchain=TOOLCHAIN - where TOOLCHAIN ia a toolchain name;
- --hardware=HARDWARE - where HARDWARE ia a HARDWARE name;
- --flavour=FLAVOUR - where FLAVOUR ia a FLAVOUR name.
-
-EOF
- exit;
-}
-
-# cleanpath( path )
-sub cleanpath
-{
- my $path = shift;
- $path =~ s!/{2,}!/!g;
- $path =~ s!^.*dist/!!;
- return $path;
-}
-
-# rootfs( rootfs_dest_dir, pkg )
-sub rootfs
-{
- my $dest_dir = cleanpath( shift );
- my $target = shift;
-
- my $group = dirname( $target ); # extract GROUP if present:
- $group =~ s!$target_build_dir/!!;
-
- my $file = basename( $target, ".txz" );
- print $tempfd "$dest_dir/var/log/$distro/packages/$group/$file\n";
-}
-
-# install( installpkg, rootfs_dest_dir, verbose, targets )
-sub install
-{
- my $installpkg = shift;
- my $rootfs_dest_dir = shift;
- my $verbose = shift;
- my $targets = shift;
-
- foreach my $target ( @{$targets} )
- {
- my $pkg = basename( $target );
- my $cdir = dirname( $target );
- if( !$header_printed )
- {
- print "\n======= Installing packages =======\n" if ( $verbose );
- $header_printed = 1;
- }
- print "Installing $target ...\n" if ( $verbose );
- _kxLab::system( "mkdir -p $rootfs_dest_dir" );
- _kxLab::system( "cd $cdir; $installpkg --ignore-chrefs-errors --root=$rootfs_dest_dir $pkg" );
- rootfs( $rootfs_dest_dir, $target );
- }
-}
-
-my @targets;
-my $verbose = $ENV{VERBOSE};
-my $curdir = $ENV{CWD};
-my $installpkg = $ENV{INSTALL_PACKAGE};
-my $fname = "";
-my $dest_fname = "";
-
-foreach ( @ARGV )
-{
- if( /--destination=(\S*)/ )
- {
- $rootfs_dest_dir = $1;
- }
- elsif( /--toolchain=(\S*)/ )
- {
- $toolchain = $1;
- }
- elsif( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--help/ )
- {
- usage;
- }
- else
- {
- push @targets, $_;
- }
-}
-
-if( ! defined $rootfs_dest_dir or $rootfs_dest_dir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-if ( $curdir )
-{
- $fname = "$curdir/" . $target_build_dir . "/.rootfs.XXXXXX";
- $dest_fname = "$curdir/" . $target_build_dir . "/.rootfs";
-}
-else
-{
- $fname = $target_build_dir . "/.rootfs.XXXXXX";
- $dest_fname = $target_build_dir . "/.rootfs";
-}
-
-($tempfd, $tempname) = File::Temp::tempfile( $fname, UNLINK => $cleanup );
-
-
-#####################
-# LOCK procedure:
-#
-#my $lock_fname = _kxLab::build_system_tmpdir() . "/." . $hardware . ".pkgtool-lock";
-#open( my $lock_fh, '+>', $lock_fname ) or
-# _kxLab::error( "$0: Could not open $lock_fname file: $!" );
-#flock( $lock_fh, LOCK_EX ) or
-# _kxLab::error( "$0: Cannot lock $lock_fname file: $!" );
-
-
-install( $installpkg, $rootfs_dest_dir, $verbose, \@targets );
-
-
-#flock( $lock_fh, LOCK_UN ) or
-# _kxLab::error( "$0: Cannot unlock $lock_fname file: $!" );
-#close( $lock_fh );
-#
-# UN LOCK procedure.
-#####################
-
-# reverse file line by line:
-_kxLab::system( "tac $tempname >> $dest_fname" );
-_kxLab::system( "rm -f $tempname" );
Property changes on: build-system-1.10.x/install_pkgs
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/Makefile
===================================================================
--- build-system-1.10.x/Makefile (revision 57)
+++ build-system-1.10.x/Makefile (nonexistent)
@@ -1,37 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include constants.mk
-
-REQUIRES = build-system/3pp/app/pkgtools/0.2.2
-REQUIRES += build-system/3pp/app/automake/1.16.5
-REQUIRES += build-system/3pp/app/genext2fs/1.4.1
-REQUIRES += build-system/3pp/app/populatefs/1.1
-REQUIRES += build-system/3pp/app/jsmin/0.0.1
-REQUIRES += build-system/3pp/app/fakeroot/1.31
-REQUIRES += build-system/3pp/app/python3-modules/pip/22.2.2
-REQUIRES += build-system/3pp/app/perl/5.36.0
-REQUIRES += build-system/3pp/app/po4a/0.68
-REQUIRES += build-system/3pp/app/ruby/3.2.0
-REQUIRES += build-system/3pp/app/qemu/8.0.2
-REQUIRES += build-system/progs
-
-# ======= __END_OF_REQUIRES__ =======
-
-config_makefile = build-config.mk
-
-BUILD_TARGETS = $(config_makefile)
-
-CLEANUP_FILES = $(config_makefile)
-CLEANUP_FILES += $(CURDIR)/sbin
-CLEANUP_FILES += $(CURDIR)/usr
-CLEANUP_FILES += $(CURDIR)/var
-
-# CORE Makefile:
-
-include core.mk
-
-$(config_makefile): $(config_makefile).template
- @mkdir -p $(CURDIR)/var/tmp
- @echo "Creating $(config_makefile) ..."
- @cp $(config_makefile).template $@
Index: build-system-1.10.x/html/requires_tree_html.template
===================================================================
--- build-system-1.10.x/html/requires_tree_html.template (revision 57)
+++ build-system-1.10.x/html/requires_tree_html.template (nonexistent)
@@ -1,717 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="owner" content="Andrey V.Kosteltsev">
- <meta name="author" content="Andrey V.Kosteltsev">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <meta http-equiv="Content-script-type" content="text/javascript">
- <meta http-equiv="Content-Style-Type" content="text/css">
-
- <link href="data:image/x-icon;base64,AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAAAABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKysrKyuPKysr2SsrK/grKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr+CsrK9krKyuPKysrKwAAAAAAAAAAAAAAAAAAAAArKysDKysrWSsrK9krKyv+Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv+Kysr2SsrK1krKysDAAAAAAAAAAArKytZKysr7isrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK+4rKytZAAAAACsrKywrKyvYKysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvYKysrLCsrK48rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KysrjysrK9grKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr2CsrK/crKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Ly8v/zIzM/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr9ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf8oKCj/KCgo/ykpKf8rKyv/cnh4/1NWVv8mJib/KCgo/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/ygoKP8oKCj/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/LS0t/05QUf9YW1v/WFtc/0VHSP9UV1f/ho2O/0hKSv9YW1z/V1tb/1FUVP8vLy//Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/PT8//1daW/9XW1v/VFdX/zMzM/8rKyr/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKCj/W15f/9Lf4f/g7e//2ebo/3h+f/+LkpP/RUdH/1NWV//N2dv/4e7w/9nm6P9xdnf/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8zNDT/p7Cy/+Hu8P/h7/H/p7Cx/zQ0NP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv85Ojr/t8HD/+r4+v/q+Pr/pa6v/3uBgv9qb2//KSkp/ysrK/98goP/5PHz/+r4+v/P3N3/UVRU/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf94fn//5PLz/+n4+v/U4eP/U1dX/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/+GjI3/5vT2/+n3+f/M2Nr/cHV2/4aNjv8yMjL/Kioq/yoqKv8xMjL/n6ip/+n3+f/p+Pr/tL7A/zo7O/8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/0xOT//O2tz/6ff5/+b09v+BiIn/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/1ZZWf/W4uT/6ff5/+Px8/+BiIj/iZCR/0pNTf8pKSn/Kysr/ysrK/8pKSn/QUND/7/Ky//q+Pr/5/X3/5GZmv8tLi7/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/MjIy/6avsP/p9/n/6fj6/7K8vv83ODj/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/Njc3/7G7vf/p+Pr/6fj6/6mytP94fn//bnN0/ykpKf8rKyv/Kysr/ysrK/8rKyv/KSgo/1teX//W4+T/6ff5/9/s7v9scXL/KSkp/ysrK/8rKyv/Kysr/ysrK/8pKSn/dHl6/+Pw8v/p9/n/1uPl/1ZaWv8pKCj/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/f4aG/+Xz9f/p9/n/z9vd/3B1dv+Ij5D/NDQ0/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv98goP/4/Hz/+n4+v/M2Nr/TVBQ/ykpKf8rKyv/Kysr/ykpKf9JS0z/zNjZ/+n3+f/m9Pb/hoyN/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf9RVFT/0t/h/+n3+f/k8vT/hIuM/4iPkP9OUVH/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8xMjL/n6ip/+n3+f/p+Pr/sLq7/zg5Of8qKir/Kioq/zExMf+iq6z/6ff5/+n4+v+2wML/OTo6/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zQ0Nf+stbb/6fj6/+n4+v+tt7j/dnt8/3F3d/8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/QUND/7/KzP/q+Pr/5/T2/4yUlf8tLS3/KSgo/3B1dv/h7/H/6ff5/9jl5/9aXV7/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/3l/gP/k8vT/6ff5/9Lf4P9wdXb/ipGS/0JERP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/1tfX//W4+X/6fj6/93q7P9mamv/REZH/8nV1v/p9/n/5/X3/4qRkv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/TE9P/8/b3f/p9/n/5fP1/4eOj/+Ei4z/b3R1/7G7vP9obW7/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv98goP/5PHz/+b09v9+hYX/nKSm/+n3+f/p+Pr/usTG/zs8PP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8zNDT/qLGy/+v6/P/r+fv/sbu9/3N4ef97gYL/n6ip/+v5+//V4eP/XmJj/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8yMjL/oaqr/6q0tf92fH3/3+3v/+n3+f/a5+n/XWFi/ykoKP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf9dYWL/w87Q/8nV1/++ycv/b3R1/4qRkv99hIX/4O3v/+j2+P/q+Pr/ws3P/0BCQv8qKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKSn/PD09/1tfX//E0NL/6ff5/+j2+P+OlZb/LCws/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/80NTX/PD09/zs8PP88PT3/hIuM/2BkZP+zvb7/6vn7/+f19//n9ff/6Pb4/4mQkf8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/LS0t/5mhov/p9/n/6fj6/7vGyP86Ozv/Jycn/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/Kioq/ygnJ/9iZmf/e4GC/ysrK/9iZmf/2OTm/+j2+P/n9ff/6ff5/8jU1f8+QED/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKCj/aGxt/9/s7v/p9/n/2+jq/32Dg/9yd3j/VVhZ/ywsLP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kikp/0BCQv+OlZb/Ozw8/yoqKv8qKir/j5eY/+j2+P/n9ff/5/X3/+Pw8v9kaGn/KCgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf9BQ0P/w87Q/+n3+v/n9ff/oqqs/7vGyP/p9/n/0t7g/1JUVf8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/LS0t/4GHiP9bX1//KSgo/ysrK/8pKCj/UVRV/9rn6f/o9vj/5/X3/+n3+f+GjY7/KCgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/y0uLv+Wnp//6Pb4/+n4+v++ycv/XmFi/9fk5v/q+Pr/5/X3/2lub/8nJyf/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKCj/XmJj/3+Fhv8sLS3/Kysr/ysrK/8qKir/Ojs7/8fS1P/p9/n/5/X3/+r4+v+ZoqP/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/2Roaf/d6uz/6ff5/93r7f9kaWn/Ly8v/5ObnP/T3+H/s72//4qRkv9eYmP/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv89Pz//jpWW/z4/QP8qKir/Kysr/ysrK/8qKir/Nzg4/8LOz//p9/n/5/X3/+r4+/+dpab/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKSn/P0BA/8DLzP/p+Pr/6Pb4/5aen/8uLi7/Kioq/y8wMP9NUFD/o6yt/+Px8//I09X/SEpK/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP9+hIX/X2Nk/ykoKP8rKyv/Kysr/ysrK/8pKSn/REZG/9He3//o9vn/5/X3/+r4+v+Ql5n/KSkp/ysrK/8rKyv/Kysr/ysrK/8tLS3/kZma/+j2+P/p9/n/w8/Q/0FDQ/8pKSn/Kysr/yoqKv8yMzP/qLKz/+r4+v/p9/n/qrO0/zU2Nv8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/1pdXv+CiIn/Li4u/ysrK/8rKyv/Kysr/ysrK/8oKCj/cHV2/+Ty9P/n9ff/5/X3/+f19/9zeXn/KCgo/ysrK/8rKyv/Kysr/ykoKP9gZGX/2+nr/+n3+f/f7O7/aW1u/ykoKP8rKyv/Kysr/ysrK/8pKSn/R0lK/8bS1P/p+Pr/5vP1/4eOj/8sLCz/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/Ojs8/46Vlv9BQ0P/Kikp/ysrK/8rKyv/Kysr/ykpKf8+QED/vsjK/+n3+f/n9ff/6Pb4/9fj5f9NT0//KSkp/ysrK/8rKyv/Kioq/zw+Pv+8x8n/6fj6/+n3+f+ao6T/Li8v/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/2Roaf/b6Or/6ff5/9vo6v9kaWn/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/eoCB/2Roaf8pKSn/Kysr/yoqKv8pKSn/KCgo/z9AQP+mr7H/5/X4/+f19//n9ff/6vj6/6ewsf8vLzD/Kysr/ysrK/8rKyv/LCws/42Vlv/n9ff/6ff5/8bS1P9ERkb/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP+Hjo//5vP1/+n4+v/H09T/SEpK/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf9WWVn/hYyM/y8vL/8qKir/Li4u/zk6Ov9GSEn/cnh5/7/Ky//o9vj/5/X3/+f19//o9vj/2ufp/1peXv8pKCj/Kysr/ysrK/8pKSn/XWFi/9rn6f/p9/r/4O7w/2xxcv8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv81Njb/qrS1/+n3+f/p9/n/qrO0/zU2Nv8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zg5Of+NlJX/RUdH/ykpKf8pKSn/TVBQ/77Jy//U4OL/5fP1/+n3+f/n9ff/5/X3/+j2+P/m9Pb/iZCR/ywsLP8rKyv/Kysr/yoqKv84OTn/r7m6/9/t7//f7O7/nKSm/zAwMP8rKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/SUtL/8jT1f/p+Pr/5vP1/4eOj/8sLCz/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/3Z8ff9obW7/KSkp/ysrK/8oKCj/VVhZ/+Dt7//p9/n/5/X3/+f19//n9ff/6Pb4/+b09v+aoqT/NDU1/yoqKv8rKyv/Kysr/yoqKv80NDX/UlVV/1RXV/9TVlf/OTo6/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/2Zqa//c6ev/6ff5/9vo6v9kaWn/KSkp/ysrK/8rKyv/Kysr/ysrK/8pKSn/UVRV/4eOj/8xMTH/Kyoq/ysrK/8oKCj/VVhY/97r7f/o9vj/5/X3/+j2+P/q+Pr/2ufp/4mQkf80NTX/Kioq/ysrK/8rKyv/Kysr/ysrK/8qKir/KSko/ykoKP8pKCj/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP+JkJH/5vT2/+n4+v/H09T/SEpK/ykpKf8rKyv/Kysr/yoqKv83ODj/jJSV/0hLS/8pKSn/Kysr/ysrK/8oKCj/VVlZ/+Hu8P/q+fv/5/X3/9fk5f+nsLL/Wl5e/ywsLP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv82Nzf/rLa3/+v6/P/s+/3/rbe4/zg5Of8qKir/Kysr/ykpKf9JTEz/XmJj/yoqKv8rKyv/Kysr/ysrK/8pKSn/REZG/5Wcnv+QmJn/dHl6/01PUP8vMDD/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/SEpL/5Wdnv+bpKX/mKCh/09SUv8pKSn/Kysr/ysrK/8rKyv/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8pKSn/KCgo/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/yoqKv8qKir/Kioq/ywsLP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/krKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr+SsrK9wrKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr3CsrK5crKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KysrlysrKzQrKyveKysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyveKysrNAAAAAArKytmKysr9CsrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/QrKytmAAAAAAAAAAArKysFKysraCsrK+QrKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr5CsrK2grKysFAAAAAAAAAAAAAAAAKysrAisrKzorKyulKysr6ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK+srKyulKysrOisrKwIAAAAAAAAAAPAAAAAADwAA4AAAAAAHAADAAAAAAAMAAIAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAADwAAAAAA8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrEisrK30rKyvcKysr/CsrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv8Kysr3CsrK30rKysSAAAAACsrKxIrKyueKysr+ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr+ysrK54rKysSKysrfisrK/orKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr+isrK34rKyvbKysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr2ysrK/srKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/KSkp/ykpKf87PDz/Nzg4/ygoKP8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/KSkp/ykpKf8rKyv/Kysr/ysrK/8rKyv7Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Li4u/0lMTP9QU1P/QUJD/21ycv9TVlb/UFNT/0JERP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zY3N/9PUlL/TE5P/zAwMP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP9hZWb/1ODi/8jU1f+Ahof/U1ZW/2NoaP/U4eP/xM/R/0pNTf8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8uLi7/lJyd/9/s7v+fp6n/MTIy/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/PT4+/73Iyv/o9vj/nKSl/2xxcf8uLi7/Li4u/5OanP/q+Pr/rLa3/zY3N/8qKir/Kysr/ysrK/8rKyv/KSgo/2Vqav/f7e//09/h/1BTU/8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP+NlZb/6vj6/7rFxv96gIH/PkBA/yoqKv8qKir/Ojs7/7S+wP/o9/n/iI+Q/ywsLP8rKyv/Kysr/ykpKf8/QUH/wczO/+f19/99g4T/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8oKCj/XGBg/9vo6v/X5Ob/h46P/1daW/8pKSn/Kysr/ysrK/8pKSn/UFNT/9Dc3v/d6uz/ZGhp/ykoKP8rKyv/LS0t/5ObnP/r+fv/r7i6/zU2Nv8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zk7O/+4w8T/6Pb4/52mp/9tcnL/LzAw/ysrK/8rKyv/Kysr/ysrK/8pKSn/b3R1/+Lv8f/H09X/R0lK/ycmJv9hZmb/3uvt/9Xh4/9TVlb/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/h46P/+n3+f+9yMn/fIKD/0pMTP8pKCj/Kysr/ysrK/8rKyv/Kysr/ysrK/8uLi7/kpqb/+r4+v+nsLH/RkhI/73Iyv/o9vj/gYeI/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/1hcXP/Z5uj/2ufp/4aNjv+DiYr/q7W2/05QUf8pKSn/Kysr/ysrK/8rKyv/Kysr/yoqKv86Ozv/tsDC/7nExf+bo6T/6fj6/7K8vv83ODj/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8xMTH/mKCh/87a3P+ZoaL/fIKD/7bBwv/s+vz/tsDB/zo7O/8qKir/Kysr/ysrK/8rKyv/Kysr/ykpKf9JS0z/g4mK/9rn6f/W4+X/VVhZ/ykoKP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/y0uLv88PT3/P0FB/21yc/9obG3/09/h/+n3+f/n9ff/eoCB/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kioq/zo7O/+5xMX/6Pb4/4yUlf80NTX/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP9RVFX/X2Nj/yoqKv+Ei4z/5/T2/+r4+v+2wML/MjMz/ysqKv8rKyv/Kysr/ysrK/8rKyv/ipGT/+n3+f/Czc//sbu9/7K8vf9CQ0T/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/Ojs7/290df8zMzT/KCgo/0dKSv/U4eL/6vj6/9Hd3/9DRUX/KSkp/ysrK/8rKyv/KSgo/1peXv/a5+n/2OXm/290df/K1tj/3Onr/2JmZ/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP9obG3/SEpL/ykpKf8qKir/Ojw8/8jU1f/q+Pr/1+Tm/0pMTf8pKSn/Kysr/yoqKv85Ojr/t8HD/+r4+v+JkJH/LCws/1ZZWv+bo6T/xM/R/2BkZf8pKCj/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/T1JT/2JmZ/8qKir/Kysr/ykpKf9JS0z/1eLk/+r4+v/Q3N7/QkRE/yopKf8rKyv/Kysr/4aNjv/p9/n/usTG/zo8PP8qKir/Jycn/3B2dv/l8/X/xM/R/0RGR/8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zc4Of9wdXX/NTU2/yoqKv8qKir/Kioq/4mQkf/n9ff/6vj6/7O9v/8yMjL/Kysr/ykoKP9XWlr/1+Tm/9vo6v9dYWH/KCgo/ysrK/8rKir/MDAw/5mhov/q+Pr/pa6v/zM0NP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Zmpr/0tOTv8pKSn/Kysr/zY3N/97gYL/2+jq/+j2+P/m8/X/dnt8/ykoKP8qKir/ODk5/7S+wP/q+fv/jpWW/ywsLP8rKyv/Kysr/ysrK/8pKSn/Pj8//7vFx//n9ff/gYiJ/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/0xPT/9laWr/Kioq/z9BQf+Wnp//vsnK/+Px8v/o9vj/6vj6/7C6u/83ODj/Kioq/yoqKv93fX3/2ufp/7fBw/89Pj7/Kioq/ysrK/8rKyv/Kysr/ysrK/8pKCj/Vlla/9Th4//a5+n/YGNk/ykoKP8rKyv/Kysr/yoqKv81Njb/cHV1/zc4OP8oKCj/TlFR/93q7P/q+fv/6ff5/+n3+f+4wsT/R0lK/ykpKf8rKyv/LCws/0RFRv9OUVH/PkBA/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/d3x9/+Ty9P/Ez9H/RUZH/ykpKf8rKyv/Kysr/2JnZ/9OUVH/KSkp/ykpKf9OUVH/2+jq/+Ty9P/O2tz/jpaX/z5AQP8pKSn/Kysr/ysrK/8rKyv/Kikp/ykpKf8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8wMDD/m6Ok/+r4+v+mr7H/NTU1/yoqKv8wMDD/SkxN/y0tLf8rKyv/Kioq/zo7O/9yd3j/ZWpq/0NFRf8rKyv/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yopKf89Pj7/dXp7/3Z7fP89Pj7/Kioq/ysrK/8qKir/Kysr/ysrK/8rKyv/Kioq/ygoKP8oKCj/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8oKCj/KCgo/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv8Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/CsrK94rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyveKysrhSsrK/wrKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/CsrK4UrKysWKysrqCsrK/0rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/0rKyuoKysrFgAAAAArKysXKysriysrK+grKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvoKysriysrKxcAAAAA4AAAB4AAAAGAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAMoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAKysrTCsrK9QrKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvUKysrTCsrK9QrKyv/Kysr/ysrK/8rKyv/KSkp/yoqKv8qKir/Kioq/ysrK/8rKyv/Kysr/ysqKv8pKSn/Kysr/ysrK9QrKyv9Kysr/ysrK/8rKyv/Li4u/0NFRf9GSUn/SkxM/zY3N/8qKir/Kysr/yoqKv8yMjL/REVG/y4uLv8rKyv9Kysr/ysrK/8rKyv/KSgo/2lubv+0v8D/Wl5e/3l+f/+epqf/MzQ0/yoqKv8qKir/g4qL/5aeoP8vLzD/Kysr/ysrK/8rKyv/KSkp/0FDQ/+7xsf/iI+Q/zIzM/81Njb/pa6w/4GIif8oKCj/Vlla/73Iyf9OUVH/KSkp/ysrK/8rKyv/Kysr/y4uLv+Wnp//sLq7/0pNTf8pKSn/KSkp/0hKSv+1wMH/Z2xt/6u1tv97gYL/KSkp/ysrK/8rKyv/Kysr/ykpKf9UV1j/sry+/5ykpf+ZoqP/NTY2/yoqKv8pKSn/XWFh/7G7vP+kra//MzQ0/yoqKv8rKyv/Kysr/ysrK/8rKyv/Njc3/1hbW/+Bh4j/4O7w/2ltbv8oKCj/KSgo/1FUVf/G0dP/j5eY/zM0NP8qKir/Kysr/ysrK/8rKyv/Kioq/0BBQf9CRET/QUND/9Tg4v+NlZb/KCgn/zQ1Nf+qs7X/i5KT/5mio/9zeHn/Kysr/ysrK/8rKyv/Kioq/zM0NP9NUFD/KSkp/1ZaWv/c6ev/gIaH/ycnJ/9+hIX/rLW3/zM0NP9FR0f/tsDC/11hYf8pKCj/Kysr/ywsLP9KTE3/QUND/3B1df/Ez9H/z9vd/0hLS/9FR0f/sLq8/1RXV/8pKCj/KSkp/2htbf+0v8D/QkRE/ykpKf8/QUH/REZG/0VHSP/N2dv/ws7P/2FlZf8qKir/NTY2/0FDQ/8sLCz/Kysr/ysrK/8sLCz/ipGS/5igof8yMjL/NTY2/y4uLv8yMzP/UFNU/zo7O/8pKSn/Kysr/yoqKv8qKin/Kysr/ysrK/8rKyv/Kioq/zQ1Nf9SVVb/MzM0/yoqKv4rKyv/Kysr/ykpKf8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/KSkp/ysrK/4rKyvXKysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvXKysrUSsrK9orKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvaKysrUYABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAAA=" rel="icon" type="image/x-icon" />
-
- <title>@ROOT@ – Requires Tree</title>
-
- <style>
- @import url(https://fonts.googleapis.com/css?family=Roboto:400,700italic,700,500italic,500,400italic&subset=cyrillic-ext,latin);
- @import url(https://fonts.googleapis.com/css?family=Cousine:400,400italic,700,700italic&subset=cyrillic-ext,latin);
- </style>
-
- <style>
- body, html {
- margin: 0 0 0 0;
- }
-
- #front_wrapper {
- margin: 0 auto;
- height: 100vh;
- position: relative;
- overflow: auto;
- background-color: #ececec;
- }
-
- #spinner {
- margin: 0 auto;
- min-height: 256px;
- text-align: center;
- display: flex;
- align-items: center;
- }
-
- #tree_view {
- margin: 0 auto;
- min-height: 256px;
- width: 2720px;
- border: 0px solid #e7e7e7;
- }
-
- .header-wrapper {
- height: 160px;
- width: 100%;
- margin: 0 auto;
- position: relative;
- background: transparent;
- }
-
- .content-wrapper {
- background-color: #ffffff;
- }
-
- .footer-wrapper {
- background: #ececec;
- }
-
- .content {
- width: 1018px;
- min-height: 256px;
- padding: 18px 3px 12px 3px;
- margin: 0 auto;
- background-color: #fdfdfd;
- position: relative;
- overflow: hidden;
- align: center;
- border: 1px solid #e7e7e7;
- }
-
- .footer {
- width: 1022px;
- height: 48px;
- margin: 0 auto;
-
- -moz-border-radius-topleft: 0px;
- -moz-border-radius-topright: 0px;
- -moz-border-radius-bottomright: 4px;
- -moz-border-radius-bottomleft: 4px;
-
- -webkit-border-top-left-radius: 0px;
- -webkit-border-top-right-radius: 0px;
- -webkit-border-bottom-left-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
-
- border-top-left-radius: 0px;
- border-top-right-radius: 0px;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
-
- border: 1px solid #545454;
- background-color: #4c4c4c;
- background: linear-gradient(288deg, rgb(84, 84, 84), rgb(76, 76, 76));
- }
-
- .footer-top {
- margin: 2px auto 1px auto;
- color: #ffffff;
- text-align: center;
- }
-
- .footer-bottom {
- margin: 0 8px 0 8px;
- min-height: 20px;
- color: #ffffff;
- font-size: 10px;
- }
-
- .logo {
- width: 1024px;
- height: 80px;
- margin: 0 auto;
- background-color: transparent;
- }
-
- .navigator {
- width: 1024px;
- height: 79px;
- margin: 0 auto;
- padding: 1px 0 0;
-
- -moz-border-radius-topleft: 4px;
- -moz-border-radius-topright: 4px;
- -moz-border-radius-bottomright: 0px;
- -moz-border-radius-bottomleft: 0px;
-
- -webkit-border-top-left-radius: 4px;
- -webkit-border-top-right-radius: 4px;
- -webkit-border-bottom-left-radius: 0px;
- -webkit-border-bottom-right-radius: 0px;
-
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- border-bottom-left-radius: 0px;
- border-bottom-right-radius: 0px;
-
- border: 1px solid #545454;
- background-color: #4c4c4c;
- background: linear-gradient(288deg, rgb(84, 84, 84), rgb(76, 76, 76));
- }
-
- .copyright {
- color: #f0f0ea;
- text-decoration: none;
- font-family: 'Roboto', helvetica, arial, sans-serif;
- font-weight: bold;
- font-style: normal;
- font-size: 12px;
- }
-
- .copyright:hover {
- text-decoration: underline;
- }
-
-
- .date-title {
- height: 16px;
- font: 12px 'Roboto', sans-serif;
- font-weight: bold;
- padding-top: 6px;
- margin-bottom: -10px;
- padding-left: 16px;
- color: #c0c0c0;
- }
- .time-title {
- color: #82946f;
- }
- .hardware-title {
- height: 20px;
- float: right;
- text-align: right;
- padding-right: 16px;
- width: 512px; font: 14px 'Roboto', sans-serif;
- font-weight: bold;
- color: #f0f0ea;
- }
- .hw-title {
- font: 10px 'Roboto', sans-serif;
- font-weight: bold;
- color: #cadaba;
- }
- .tree-title {
- height: 42px;
- padding-left: 16px;
- font: 28px 'Roboto', sans-serif;
- font-weight: bold;
- color: #f0f0ea;
- }
- .tree-hw-title {
- color: #cadaba;
- }
-
- /* SVG spinner icon animation */
- .spinner {
- -webkit-animation: rotate 2s linear infinite;
- animation: rotate 2s linear infinite;
- z-index: 2;
- position: relative;
- top: 50%;
- left: 50%;
- margin: -25px 0 0 -25px;
- width: 50px;
- height: 50px;
- }
- .spinner-text {
- z-index: 2;
- position: absolute;
- top: 0;
- left: 0;
- margin: 36px;
- font: 28px 'Roboto', sans-serif;
- color: #c0c0c0;
- }
- .spinner .path {
- stroke: #cccccc;
- stroke-linecap: round;
- -webkit-animation: dash 1.5s ease-in-out infinite;
- animation: dash 1.5s ease-in-out infinite;
- }
-
- @-webkit-keyframes rotate {
- 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
- }
- @keyframes rotate {
- 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
- }
- @-webkit-keyframes dash {
- 0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
- 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
- 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
- }
- @keyframes dash {
- 0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
- 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
- 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
- }
-
-
- .node {
- cursor: pointer;
- }
- .node text {
- font: 14px 'Cousine', monospace;
- }
-
- .tree-tooltip {
- position: absolute;
- text-align: left;
- padding: 16px 16px 8px;
- background-color: #fafafa;
- border: 1px solid #71ad93;
- border-radius: 8px;
- pointer-events: none;
- color: #343434;
- -webkit-box-shadow: 0 0 5px #aaa;
- box-shadow: 0 0 5px #aaa;
- }
- .tooltip-header {
- font: 14px Roboto, sans-serif;
- font-weight: bold;
- color: DarkRed;
-
- white-space: nowrap;
- text-align: left;
- }
- .tooltip-header-not-packaged {
- font: 11px Cousine,monospace;
- font-weight: bold;
- color: DarkRed;
-
- white-space: nowrap;
-
- padding-left: 8px;
- padding-right: 8px;
- padding-bottom: 8px;
- text-align: left;
- }
- .tooltip-description {
- font: 14px Roboto, sans-serif;
- font-style: italic;
- font-weight: bold;
- color: #343434;
-
- white-space: nowrap;
- text-align: left;
- padding-left: 1.5em;
- padding-top: .5em;
- font-style: italic;
- }
- .tooltip-content {
- font: 11px 'Cousine', monospace;
- font-weight: bold;
-
- white-space: pre;
- margin: 12px 0 8px;
- }
- .flavour {
- color: DarkBlue;
- }
-
-
- @media (min-width: 1200px) {
- .navigator { width: 1140px; }
- .logo { width: 1140px; }
- .footer { width: 1140px; }
- .content { width: 1134px; }
- }
- @media (min-width: 992px) and (max-width: 1199px) {
- .navigator { width: 960px; }
- .logo { width: 960px; }
- .footer { width: 960px; }
- .content { width: 954px; }
- }
- @media (min-width: 768px) and (max-width: 991px) {
- .navigator { width: 720px; }
- .logo { width: 720px; }
- .footer { width: 720px; }
- .content { width: 714px; }
- }
- @media (min-width: 576px) and (max-width: 767px) {
- .navigator { width: 540px; }
- .logo { width: 540px; }
- .footer { width: 540px; }
- .content { width: 534px; }
-
- .node text { font-size: 12px; }
-
- .tooltip-header { font-size: 12px; }
- .tooltip-description { font-size: 12px; }
- .tooltip-content { font-size: 10px; }
- }
- @media (max-width: 575px) {
- .navigator { width: 480px; }
- .logo { width: 480px; }
- .footer { width: 480px; }
- .content { width: 474px; }
-
- .node text { font-size: 12px; }
-
- .tooltip-header { font-size: 12px; }
- .tooltip-description { font-size: 12px; }
- .tooltip-content { font-size: 10px; }
- }
- </style>
-
- <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
- <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
- <script src="https://d3js.org/d3.v5.min.js"></script>
- <script>
- !function(o){function t(o,t){if(!(o.originalEvent.touches.length>1)){o.preventDefault();var e=o.originalEvent.changedTouches[0],n=document.createEvent("MouseEvents");n.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),o.target.dispatchEvent(n)}}if(o.support.touch="ontouchend"in document,o.support.touch){var e,n,u=o.ui.mouse.prototype,c=u._mouseInit,i=u._mouseDestroy;u._touchStart=function(o){var u=this;!n&&u._mouseCapture(o.originalEvent.changedTouches[0])&&(n=!0,u._touchMoved=!1,e=o,t(o,"mouseover"),t(o,"mousemove"),t(o,"mousedown"))},u._touchMove=function(o){if(n){var u=e.originalEvent.touches[0].screenX,c=e.originalEvent.touches[0].screenY,i=o.originalEvent.touches[0].screenX,r=o.originalEvent.touches[0].screenY;if(u===i&&c===r)return void(this._touchMoved=!1);this._touchMoved=!0,t(o,"mousemove")}},u._touchEnd=function(o){n&&(t(o,"mouseup"),t(o,"mouseout"),this._touchMoved||t(o,"click"),n=!1)},u._mouseInit=function(){var t=this;t.element.bind({touchstart:o.proxy(t,"_touchStart"),touchmove:o.proxy(t,"_touchMove"),touchend:o.proxy(t,"_touchEnd")}),c.call(t)},u._mouseDestroy=function(){var t=this;t.element.unbind({touchstart:o.proxy(t,"_touchStart"),touchmove:o.proxy(t,"_touchMove"),touchend:o.proxy(t,"_touchEnd")}),i.call(t)}}}(jQuery);
- $(function() {
- $( "#tree_view" ).draggable();
- });
- </script>
- <script>
- function load_json( url, callback ) {
- var xobj = new XMLHttpRequest();
- xobj.overrideMimeType("application/json");
- xobj.open('GET', url, true);
- xobj.onreadystatechange = function () {
- if (xobj.readyState == 4 && xobj.status == "200") {
- callback(xobj.responseText);
- }
- };
- xobj.send(null);
- }
-
- var pkgs;
-
- $(document).ready(function() {
- load_json( '@JSON_PKGS_FILE@', function(response) {
- pkgs = JSON.parse(response);
- });
-
- $('#tree_view')
- .mousedown(function() { $(this).css( 'cursor', 'grab' ); })
- .mouseup( function() { $(this).css( 'cursor', 'auto' ); });
- });
- </script>
- </head>
- <body>
- <div id="front_wrapper">
- <div class="header-wrapper">
- <div class="logo"></div>
- <div class="navigator">
- <div style="height: 36px;">
- <div class="date-title">@YEAR@-@MONTH@-@DAY@ <span class="time-title">@HOUR@:@MINUTE@:@SECOND@</span></div>
- <div class="hardware-title">
- <span class="hw-title">HARDWARE:</span> @HARDWARE@
- </div>
- </div>
- <div class="tree-title">
- <span class="tree-hw-title">@ROOT@</span> – Requires Tree
- </div>
- </div> <!-- "navigator" -->
- </div> <!-- "header_wrapper" -->
-
- <div class="content-wrapper">
- <div class="content">
- <div id="spinner">
- <svg class="spinner" viewBox="0 0 50 50"><circle class="path" cx="25" cy="25" r="20" fill="none" stroke-width="5"></circle></svg>
- <div class="spinner-text">Loading ...</div>
- </div>
- <div id="tree_view" class="ui-widget-content">
- </div>
- </div> <!-- "content" -->
- </div> <!-- "content_wrapper" -->
-
- <div class="footer-wrapper">
- <div class="footer">
- <div class="footer-top">
- <a class="copyright" target="_blank" href="@BUG_URL@">© @COPYING@</a>
- </div>
- <div class="footer-bottom">
- </div>
- </div> <!-- "footer" -->
- </div> <!-- "footer_wrapper" -->
- </div> <!-- "front_wrapper" -->
-
- <script>
- var margin = {top: 20, right: 120, bottom: 20, left: 220},
- width = @SVG_WIDTH@ - margin.right - margin.left,
- height = @SVG_HEIGHT@ - margin.top - margin.bottom;
-
- var i = 0,
- duration = 750,
- root = 0;
-
- var treemap = d3.tree()
- .size([height, width]);
-
- var svg = d3.select(document.getElementById( 'tree_view' )).append("svg")
- .attr("width", width + margin.right + margin.left)
- .attr("height", height + margin.top + margin.bottom)
- .append("g")
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
-
- var div = d3.select(document.getElementById( 'front_wrapper' )).append("div")
- .attr("class", "tree-tooltip")
- .style("display", "none")
- .style("opacity", 0);
-
-
- load_json( '@JSON_TREE_FILE@', function(response) {
- var treeData = JSON.parse(response);
-
- /* Assigns parent, children, height, depth: */
- root = d3.hierarchy(treeData, function(d) { return d.children; });
-
- root.x0 = height / 2;
- root.y0 = 0;
-
- function collapse(d) {
- if( d.children ) {
- d._children = d.children;
- d._children.forEach(collapse);
- d.children = null;
- }
- }
-
- document.getElementById('spinner').remove();
- root.children.forEach(collapse);
- update(root);
- });
-
-
- function update(source) {
-
- var tree = treemap( root );
-
- /* Compute the new tree layout. */
- var nodes = tree.descendants(),
- links = tree.descendants().slice(1);
-
- /* Normalize for fixed-depth. */
- nodes.forEach(function(d) { d.y = d.depth * 220; });
-
- /* Update the nodes . . . */
- var node = svg.selectAll("g.node")
- .data(nodes, function(d) { return d.id || (d.id = ++i); });
-
- /* Enter any new nodes at the parent's previous position. */
- var nodeEnter = node.enter().append("g")
- .attr("class", "node")
- .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; })
- .on("click", click)
- .on("mouseover", function(d) {
- div.transition()
- .duration(200)
- .style("opacity", .92);
- {
- var content = '<div class="tooltip-header-not-packaged">' + 'void' + '</div>';
-
- if( d.name === "void" ) {
- /* draw div.tree-tooltip to get actual size */
- div.html( content )
- .style("left", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + 12) + "px")
- .style("top", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + 12) + "px");
- }
- else
- {
- /* find package in the pkgs array: */
- var pkg = pkgs.find(obj => { return obj.id === d.data.name; });
-
- if( pkg === undefined )
- {
- content = '<div class="tooltip-header-not-packaged">' + 'not packaged collection' + '</div>';
- /* draw div.tree-tooltip to get actual size */
- div.html( content )
- .style("left", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + 12) + "px")
- .style("top", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + 12) + "px");
- }
- else
- {
- content = '<div class="tooltip-header">' + pkg.name + '</div>' +
- '<div class="tooltip-description">' + pkg.description + '</div>' +
- '<div class="tooltip-content">' +
- ' group: ' + pkg.group + '\n' +
- ' architecture: ' + pkg.arch + '\n' +
- ' hardware: ' + pkg.hardware + '\n';
- if( pkg.flavour !== undefined )
- {
- content += ' <span class="flavour">edition</span>: ' + pkg.flavour + '\n';
- }
- content += ' license: ' + pkg.license + '\n' +
- ' bug report url: ' + root.data.distro[2] + '\n' +
- ' distribution: ' + root.data.distro[0] + '-' + root.data.distro[1] + '\n' +
- ' package tarball: ' + pkg.name + '-' + pkg.version + '-' + pkg.arch + '-' + root.data.distro[0] + '-' + root.data.distro[1] + '.' + '@TARBALL_SUFFIX@' + '\n' +
- ' uncompressed size: ' + pkg.uncompressed_size + '\n' +
- ' number of files: ' + pkg.total_files + '\n' +
- '</div>' +
- '</div>' +
- '</div>';
-
- /* draw div.tree-tooltip to get actual size */
- div.html( content )
- .style("left", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + 12) + "px")
- .style("top", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + 12) + "px");
- }
- }
-
- /* draw div.tree-tooltip at actual position */
-
- var cW = $( window ).width();
- var cH = $( window ).height();
- var cX = d3.event.pageX;
- var cY = d3.event.pageY;
- var tW = $('div.tree-tooltip').width();
- var tH = $('div.tree-tooltip').height();
- var oX;
- var oY;
- var dX = ( cW - cX ) - ( tW + 12 );
- var dY = ( cH - cY ) - ( tH + 12 );
-
- /* shift left to according to width=16 of browser vertical scroll bar */
- if( dX <= 24 ) { dX = 24 - dX; }
- else { dX = 0; }
-
- /* shift top to according to width=16 of browser horizontal scroll bar */
- if( dY <= 24 ) { dY = 24 - dY; }
- else { dY = 0; }
-
- if( ( cW - cX ) < ( tW + 12 ) ) { oX = - 12 - tW; } else { oX = 12 - dX; }
- if( ( cH - cY ) < ( tH + 12 ) ) { oY = - 12 - tH; } else { oY = 12 - dY; }
-
- if( (( cW - cX ) < ( tW + 12 )) && (cX < ( tW + 12 )) )
- {
- /* in this case we have to center tooltip */
- oX = - (tW + 12) / 2 + (cW/2 - cX);
- }
-
- div.html( content )
- .style("left", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + oX) + "px")
- .style("top", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + oY) + "px")
- .style("display","block");
- }
- })
- .on("mouseout", function(d) {
- div.transition()
- .duration(500)
- .style("opacity", 0);
- });
-
- nodeEnter.append("circle")
- .attr('class', 'node')
- /* Additional attributes (see the 'style' section) */
- .attr("stroke", "#5d5d5d")
- .attr("stroke-width", "1.0")
- /* End of additional attributes */
- .attr("r", 1e-6)
- .style("fill", function(d) { return d._children ? "#abd8d4" : "#fff"; });
-
- nodeEnter.append("text")
- .attr("x", function(d) { return d.children || d._children ? -10 : 10; })
- .attr("dy", "-.35em")
- .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
- .text(function(d) { return (d.data.name.indexOf(":",0) > 0 ) ? d.data.name.substr(d.data.name.indexOf(":",0) + 1) : d.data.name; })
- .style("fill-opacity", 1);
-
- /* Update */
- var nodeUpdate = nodeEnter.merge(node);
-
- /* Transition nodes to their new position. */
- nodeUpdate.transition()
- .duration(duration)
- .attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; });
-
- nodeUpdate.select("circle.node")
- .attr("r", 4.5)
- .style("fill", function(d) {
- if( d._children )
- {
- return "#abd8d4";
- }
- else
- {
- if( d.children == undefined )
- {
- if( d.name == "void" )
- {
- return "#c9c9c9";
- }
- else
- {
- return "#fff";
- }
- }
- else
- {
- return "#d2ebd8";
- }
- }
- })
- .attr('cursor', 'pointer');
-
- /* Transition exiting nodes to the parent's new position. */
- var nodeExit = node.exit().transition()
- .duration(duration)
- .attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; })
- .remove();
-
- nodeExit.select("circle")
- .attr("r", 1e-6);
-
- nodeExit.select("text")
- .style("fill-opacity", 1e-6);
-
- /* Update the links . . . */
- var link = svg.selectAll('path.link')
- .data(links, function(d) { return d.id; });
-
- /* Enter any new links at the parent's previous position. */
- var linkEnter = link.enter().insert('path', 'g')
- .attr("class", "link")
- .attr("d", function(d) {
- var o = {x: source.x0, y: source.y0};
- return diagonal(o, o);
- });
-
- /* Update */
- var linkUpdate = linkEnter.merge(link);
-
- /* Transition links to their new position. */
- linkUpdate.transition()
- .duration(duration)
- /* Additional attributes (see the 'style' section) */
- .style("fill", "none")
- .attr("stroke", "DarkGray")
- .attr("stroke-width", "1.5")
- /* End of additional attributes */
- .attr("d", function(d){ return diagonal(d, d.parent) });
-
- /* Transition exiting nodes to the parent's new position. */
- var linkExit = link.exit().transition()
- .duration(duration)
- .attr("d", function(d) {
- var o = {x: source.x, y: source.y};
- return diagonal(o, o);
- })
- .remove();
-
- /* Stash the old positions for transition. */
- nodes.forEach(function(d) {
- d.x0 = d.x;
- d.y0 = d.y;
- });
-
- /* Creates a curved (diagonal) path from parent to the child nodes. */
- function diagonal(s, d) {
- path = `M ${s.y} ${s.x}
- C ${(s.y + d.y) / 2} ${s.x},
- ${(s.y + d.y) / 2} ${d.x},
- ${d.y} ${d.x}`;
- return path;
- }
-
- /* Toggle children on click. */
- function click(d) {
- if (d.children) {
- d._children = d.children;
- d.children = null;
- } else {
- d.children = d._children;
- d._children = null;
- }
- update(d);
- }
- }
- </script>
- </body>
-</html>
Index: build-system-1.10.x/html
===================================================================
--- build-system-1.10.x/html (revision 57)
+++ build-system-1.10.x/html (nonexistent)
Property changes on: build-system-1.10.x/html
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/_kxLab.pm
===================================================================
--- build-system-1.10.x/_kxLab.pm (revision 57)
+++ build-system-1.10.x/_kxLab.pm (nonexistent)
@@ -1,72 +0,0 @@
-
-use File::Basename;
-
-use strict;
-use warnings FATAL => 'all';
-
-my $path = dirname( __FILE__ );
-
-package _kxLab;
-
-
-sub distro_name
-{
- my $name = "kxLab";
-
- open( FILE, "< $path/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub build_system_tmpdir
-{
- return $path . "/var/tmp";
-}
-
-sub build_system_path
-{
- return $path;
-}
-
-sub error
-{
- my $message = shift;
- my $func = shift;
-
- print STDERR "Error: $message\n";
- if( defined( $func ) )
- {
- &$func();
- }
- exit 1;
-}
-
-sub command_error
-{
- my $command = shift;
- my $context = shift;
-
- error( "$command failed at @{$context}[1] line @{$context}[2]" );
-}
-
-sub system
-{
- my $command = shift;
-
- if( system( $command ) )
- {
- my @context = caller;
- command_error($command, \@context);
- }
-}
-
-1;
Index: build-system-1.10.x/.svnignore
===================================================================
--- build-system-1.10.x/.svnignore (revision 57)
+++ build-system-1.10.x/.svnignore (nonexistent)
@@ -1,51 +0,0 @@
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x/build-pkglist
===================================================================
--- build-system-1.10.x/build-pkglist (revision 57)
+++ build-system-1.10.x/build-pkglist (nonexistent)
@@ -1,491 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-
-use List::MoreUtils qw(uniq);
-use Data::Dumper qw(Dumper);
-
-use _kxLab;
-
-#
-# Generate $(HARDWARE).pkglist file for current directory
-#
-# usage:
-# $0 format topdir toolchain hardware [flavour]
-#
-# where:
-# 'format' - the output format: list or tree
-# 'topdir' - is a absolute path to the top directory of checked out branch
-# 'toolchain' - is a TOOLCHAIN name
-# 'hardware' - is a HARDWARE variant
-# 'flavour' - is a FLAVOUR variant
-#
-
-# global variables
-my ($build_system);
-my ($format, $topdir, $toolchain, $hardware, $flavour);
-my ($target_build_dir, $srclist_file);
-my ($system_version, $distro_name, $distro_version, $url);
-my @tarballs = ();
-
-sub usage
-{
- print <<EOF;
-
-Usage: $0 format topdir toolchain hardware [flavour]
-Where:
- format - the output format: list or tree
- topdir - is a absolute path to the top of checked out branch;
- toolchain - is a TOOLCHAIN name;
- hardware - is a HARDWARE variant;
- flavour - is a FLAVOUR variant.
-
-EOF
- exit;
-}
-
-#
-# Getting information from build-system/constants.mk
-#
-sub system_version
-{
- my $build_system = shift;
- my $version;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^SYSTEM_VERSION(.+= +)(.+)/ )
- {
- $version = $2;
- }
- }
- close( FILE );
-
- return $version;
-}
-
-sub distro_name
-{
- my $build_system = shift;
- my $name;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub distro_version
-{
- my $build_system = shift;
- my $name;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_VERSION(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub bug_url
-{
- my $build_system = shift;
- my $url;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^BUG_URL(.+= +)(.+)/ )
- {
- $url = $2;
- }
- }
- close( FILE );
-
- return $url;
-}
-
-#
-# value_from_makefile( $makefile, $variable_name, $stop_line ):
-# ------------------------------------------------------------
-# This function returns the value of variable defined in the
-# Makefile on global level before od REQUIRES declaration.
-#
-# The optional $stop_line argument presents the start of the
-# line which terminates the analized part of Makefile.
-#
-sub value_from_makefile
-{
- my $makefile = shift;
- my $vname = shift;
- my $stop_line = shift;
- my $value = "";
-
- if( !defined $stop_line || $stop_line eq '' )
- {
- $stop_line = "__END_OF_REQUIRES__";
- }
- else
- {
- $stop_line = "^" . $stop_line;
- }
-
- my $cdir = dirname( $makefile );
-
- my $shell_output = <<`SHELL`;
-cd $cdir
-head -n `cat Makefile | grep -n "$stop_line" | cut -f 1 -d ':'` Makefile | \
- make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f - -p __build_requires__ 2>/dev/null | grep "$vname"
-exit 0
-SHELL
-
- if( $shell_output =~ m/^$vname(.+= +)(.+)/gm )
- {
- $value = $2;
- }
-
- return $value;
-}
-
-#
-# Getting information from Makefile:
-#
-sub pkg_group
-{
- my $makefile = shift;
- my $group;
-
- open( FILE, '<', $makefile );
-
- while( <FILE> )
- {
- if( /^PKG_GROUP(.+= +)(.+)/ )
- {
- $group = $2;
- }
- }
- close( FILE );
-
- return $group;
-}
-
-sub pkg_name
-{
- my $makefile = shift;
- my $name = "";
-
- open( FILE, '<', $makefile );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub pkg_version
-{
- my $makefile = shift;
- my $version;
-
- my $stop_line;
-
- open( FILE, '<', $makefile );
-
- while( <FILE> )
- {
- if( /^([A-Z_0-9]*_PKG_VERSION)(.+= +)(.+)/ )
- {
- $stop_line = $1;
- $version = $3;
- }
- }
- close( FILE );
-
- # check if version is present as a reference to some variable:
- if( $version =~ m/^\$\((.+)\)/ )
- {
- my $vname = $1;
-
- # get value of referenced variable
- $version = value_from_makefile( $makefile, $vname, $stop_line );
- }
-
- return $version;
-}
-
-#
-# Getting information from .requires and .dist files:
-#
-sub built_gcc_libs
-{
- my $makefile = shift;
- my $stop_line;
- my $vname = $hardware;
- my $libs;
-
- $vname =~ tr/a-z-/A-Z_/;
- $vname .= "_USE_BUILT_GCC_LIBS";
-
- $libs = value_from_makefile( $makefile, $vname, $stop_line );
-
- return $libs;
-}
-
-sub get_root
-{
- my $requires = $target_build_dir . "/.requires";
- my $root = "";
-
- if( -f $requires )
- {
- open( FILE, '<', $requires ) or
- _kxLab::error( "$0: Could not open $requires file: $!" );
- while( <FILE> )
- {
- if( /^# ROOT(=)(.+)/ )
- {
- $root = $2;
- }
- }
- close FILE;
- }
-
- return $root;
-}
-
-sub get_deps
-{
- my $dir = shift;
-
- my $requires = $topdir . "/" . $dir . "/" . $target_build_dir . "/.requires";
- my @deps = ();
-
- if( -f $requires )
- {
- open( FILE, '<', $requires ) or
- _kxLab::error( "$0: Could not open $requires file: $!" );
- while( <FILE> )
- {
- if( /all(: +)(.+)/ )
- {
- @deps = split( ' ', $2 );
- }
- }
- close FILE;
- }
-
- return @deps;
-}
-
-sub get_tarball
-{
- my $dir = shift;
-
- my $package = "";
- my $proddir = $topdir . "/dist/products/" . $toolchain . "/" . $hardware;
- my $dist = $topdir . "/" . $dir . "/" . $target_build_dir . "/.dist";
- my $patern;
-
- if( $flavour eq "" ) {
- $patern = "^products/" . $toolchain . "/" . $hardware . "/(.+\.t?z)";
- } else {
- $patern = "^products/" . $toolchain . "/" . $hardware . "/" . $flavour . "/(.+\.t?z)";
- }
-
- if( -f $dist )
- {
- open( FILE, '<', $dist ) or
- _kxLab::error( "$0: Could not open $dist file: $!" );
- foreach my $line ( <FILE> )
- {
- if( $line =~ /$patern/ )
- {
- # Existing packages only:
- if( -f $proddir . "/" . $1 ) { $package = $1; }
- }
- }
- close FILE;
- }
-
- return $package;
-}
-
-sub get_tarballs
-{
- my $dir = shift;
- my @deps = get_deps( $dir );
-
- foreach ( @deps )
- {
- my $tarball = get_tarball( $_ );
- if( defined $tarball && $tarball ne "" )
- {
- push @tarballs, $tarball;
- }
-
- get_tarballs( $_ );
- }
-}
-
-sub print_result
-{
- my $format = shift;
- my $out_string = "";
-
- if( $format eq "list" ) {
- $out_string = sprintf( "####### Packages Install List: done\n" );
- } else {
- $out_string = sprintf( "####### Required Packages Tree: done\n" );
- }
-
- print $out_string;
-}
-
-
-#
-# Parse the command line options
-#
-
-# Get the rest arguments of the command line
-$format = shift;
-$topdir = shift;
-$toolchain = shift;
-$hardware = shift;
-$flavour = shift;
-
-$format =~ tr/A-Z/a-z/;
-
-my $cmd = "";
-my $srclist_suffix = "";
-
-my $makefile = "Makefile";
-
-if( ! defined $format or $format eq "" ) { usage; }
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" ) { $flavour = ""; }
-
-_kxLab::error( "$0: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "$0: Makefile missing: $makefile" ) if ( ! -f $makefile );
-
-$build_system = $topdir . "/build-system";
-
-$system_version = system_version( $build_system );
-$distro_name = distro_name( $build_system );
-$distro_version = distro_version( $build_system );
-$url = bug_url( $build_system );
-
-if( $flavour eq "" ) {
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-} else {
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-if( $format eq "list" ) {
- $srclist_suffix = ".srclist";
-} else {
- $srclist_suffix = ".srctree";
-}
-
-if( $flavour eq "" ) {
- $srclist_file = $target_build_dir . "/." . $hardware . $srclist_suffix;
-} else {
- $srclist_file = $target_build_dir . "/." . $hardware . "-" . $flavour . $srclist_suffix;
-}
-
-
-# open the output file:
-open( SRCLIST_FILE, '>', $srclist_file ) or
- _kxLab::error( "$0: Could not open $srclist_file file: $!" );
-
-
-my $exclude = "";
-if( pkg_name( $makefile ) ne "init-devices" ) {
- $exclude = " -e init-devices";
- if( built_gcc_libs( $makefile ) eq "yes" && pkg_name( $makefile ) ne "gcc-runtime" ) {
- $exclude .= ",gcc-runtime";
- }
-}
-my $tree_format = " -t bin";
-
-my $root = get_root();
-my $rpkg = get_tarball( $root );
-
-get_tarballs( $root );
-@tarballs = uniq( @tarballs );
-
-
-my $tmpdir = $build_system . "/var/tmp";
-my $srcdir = $topdir . "/dist/products/" . $toolchain . "/" . $hardware;
-my $head = $hardware;
-
-
-if( defined $rpkg && $rpkg ne "" ) {
- $head = pkg_group( $makefile ) . "/" . pkg_name( $makefile ) . "-" . pkg_version( $makefile );
- print SRCLIST_FILE $rpkg . "\n";
-}
-foreach ( @tarballs ) {
- print SRCLIST_FILE $_ . "\n";
-}
-
-if( $format eq "list" ) {
- $cmd = "TMP=" . $tmpdir . " " . $build_system . "/sbin/make-pkglist" .
- " -w " . $hardware . " -H " . $head . $exclude .
- " -i pkg -o list -s " . $srcdir .
- " -F " . $srclist_file . " " . $target_build_dir . "/";
-} else {
- $cmd = "TMP=" . $tmpdir . " " . $build_system . "/sbin/make-pkglist" .
- " -w " . $hardware . " -H " . $head . $exclude .
- " -i pkg" . $tree_format . " -o json -m -s " . $srcdir .
- " -F " . $srclist_file . " " . $target_build_dir . "/";
-}
-
-# close output file:
-close SRCLIST_FILE;
-
-_kxLab::system( "$cmd" );
-
-#
-# Copy Packages List to the TARGET_BUILD_DIR (for release compatibility):
-#
-if( $format eq "list" && $head ne $hardware ) {
- $cmd = "cp -a " . $target_build_dir . "/" . $head . ".pkglist " . $target_build_dir . "/" . $hardware . ".pkglist";
- _kxLab::system( "$cmd" );
-}
-
-print "#######\n";
-print_result( $format );
-print "#######\n";
Property changes on: build-system-1.10.x/build-pkglist
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/dist_clean
===================================================================
--- build-system-1.10.x/dist_clean (revision 57)
+++ build-system-1.10.x/dist_clean (nonexistent)
@@ -1,81 +0,0 @@
-#!/bin/env perl
-
-use File::Basename;
-
-my $base;
-my ($toolchain, $hardware, $flavour);
-my $target_build_dir;
-my $fname = "";
-
-sub usage
-{
- print <<EOF;
-
-Usage: dist_clean [options]
-Options:
- --destination=DEST - where DEST is a destination directory.
- --toolchain=TOOLCHAIN - where TOOLCHAIN ia a toolchain name;
- --hardware=HARDWARE - where HARDWARE ia a HARDWARE name;
- --flavour=FLAVOUR - where FLAVOUR ia a FLAVOUR name.
-
-EOF
- exit;
-}
-
-
-foreach ( @ARGV )
-{
- if( /--destination=(\S*)/ )
- {
- $base = $1;
- }
- elsif( /--toolchain=(\S*)/ )
- {
- $toolchain = $1;
- }
- elsif( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--help/ )
- {
- usage;
- }
-}
-
-if( ! defined $base or $base eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-$fname = $target_build_dir . "/.dist";
-
-open( F, '<', $fname ) or die "Could not open $fname";
-
-while( <F> )
-{
- chomp;
- $f = "$base/$_";
- unlink $f;
- $dirs{dirname($f)}++;
-}
-
-foreach ( sort { length($b) <=> length($a) } keys %dirs )
-{
- while( rmdir )
- {
- $_ = dirname( $_ );
- }
-}
Property changes on: build-system-1.10.x/dist_clean
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/README
===================================================================
--- build-system-1.10.x/README (revision 57)
+++ build-system-1.10.x/README (nonexistent)
@@ -1,3 +0,0 @@
-
-see README.md instead
-
Index: build-system-1.10.x/apply_patches
===================================================================
--- build-system-1.10.x/apply_patches (revision 57)
+++ build-system-1.10.x/apply_patches (nonexistent)
@@ -1,49 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-use _kxLab;
-
-my $filename = shift or die "Error: Need a patch file";
-my $arg2 = shift;
-my $depmode = 0;
-my $dir = ".";
-if( defined( $arg2 ) )
-{
- if( $arg2 eq "-dep-" )
- {
- $depmode = 1;
- }
- else
- {
- $dir = $arg2;
- }
-}
-
-open( PATCH, "<$filename" ) or die "Error: Could not open patch file: $filename: $!";
-while( <PATCH> )
-{
- next if /^#/;
- if (/(\S+)\s*(.*)/)
- {
- if( $depmode )
- {
- print "$1 ";
- }
- else
- {
- my $arg = $2 || "-p0";
- print "======= Applying $1 =======\n";
- _kxLab::system( "patch -d $dir $arg < $1" );
- }
- }
-}
-close PATCH;
-if( $depmode )
-{
- print "$filename\n";
-}
-
Property changes on: build-system-1.10.x/apply_patches
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/build_packages_list
===================================================================
--- build-system-1.10.x/build_packages_list (revision 57)
+++ build-system-1.10.x/build_packages_list (nonexistent)
@@ -1,752 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-
-use _kxLab;
-
-#
-# Generate $(HARDWARE).pkglist file for current directory
-#
-# usage:
-# $0 topdir pkgarch toolchain hardware
-#
-# where:
-# 'topdir' - is a absolute path to the top directory of checked out branch
-# 'pkgarch' - is a ARCHITECTURE name
-# 'toolchain' - is a TOOLCHAIN name
-# 'hardware' - is a HARDWARE variant
-#
-
-# global variables
-my ($build_system);
-my ($topdir, $pkgarch, $toolchain, $hardware, $flavour);
-my ($target_build_dir, $requires_file);
-my ($pkglist_file);
-my ($system_version, $distro_name, $distro_version, $url);
-my $tarball_suffix = "txz";
-
-my %sub_trees;
-my %tree;
-
-
-sub usage
-{
- print <<EOF;
-
-Usage: $0 topdir toolchain hardware
-Where:
- topdir - is a absolute path to the top of checked out branch;
- pkgarch - is a ARCHITECTURE name;
- toolchain - is a TOOLCHAIN name;
- hardware - is a HARDWARE variant.
-
-EOF
- exit;
-}
-
-#
-# Getting information from build-system/constants.mk
-#
-sub system_version
-{
- my $build_system = shift;
- my $version;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^SYSTEM_VERSION(.+= +)(.+)/ )
- {
- $version = $2;
- }
- }
- close( FILE );
-
- return $version;
-}
-
-sub distro_name
-{
- my $build_system = shift;
- my $name;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub distro_version
-{
- my $build_system = shift;
- my $name;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^DISTRO_VERSION(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub bug_url
-{
- my $build_system = shift;
- my $url;
-
- open( FILE, "< $build_system/constants.mk" );
-
- while( <FILE> )
- {
- if( /^BUG_URL(.+= +)(.+)/ )
- {
- $url = $2;
- }
- }
- close( FILE );
-
- return $url;
-}
-
-#
-# value_from_makefile( $makefile, $variable_name, $stop_line ):
-# ------------------------------------------------------------
-# This function returns the value of variable defined in the
-# Makefile on global level before od REQUIRES declaration.
-#
-# The optional $stop_line argument presents the start of the
-# line which terminates the analized part of Makefile.
-#
-sub value_from_makefile
-{
- my $makefile = shift;
- my $vname = shift;
- my $stop_line = shift;
- my $value = "";
-
- if( !defined $stop_line || $stop_line eq '' )
- {
- $stop_line = "__END_OF_REQUIRES__";
- }
- else
- {
- $stop_line = "^" . $stop_line;
- }
-
- my $cdir = dirname( $makefile );
-
- my $shell_output = <<`SHELL`;
-cd $cdir
-head -n `cat Makefile | grep -n "$stop_line" | cut -f 1 -d ':'` Makefile | \
- make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f - -p __build_requires__ 2>/dev/null | grep "$vname"
-exit 0
-SHELL
-
- if( $shell_output =~ m/^$vname(.+= +)(.+)/gm )
- {
- $value = $2;
- }
-
- return $value;
-}
-
-#
-# Getting information from Makefile
-#
-sub pkg_rootfs_target
-{
- my $makefile = shift;
- my $install = "";
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^ROOTFS_TARGETS(.+= +)(.+)/ )
- {
- if( $2 ne "" ) { $install = "install"; }
- }
- elsif( /^ROOTFS_UPDATE_TARGETS(.+= +)(.+)/ )
- {
- if( $2 ne "" ) { $install = "update"; }
- }
- }
- close( FILE );
-
- if( $install eq "" ) { $install = "no"; }
-
- return $install;
-}
-
-sub pkg_group
-{
- my $makefile = shift;
- my $group;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^PKG_GROUP(.+= +)(.+)/ )
- {
- $group = $2;
- }
- }
- close( FILE );
-
- return $group;
-}
-
-sub pkg_name
-{
- my $makefile = shift;
- my $name = "";
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_NAME(.+= +)(.+)/ )
- {
- $name = $2;
- }
- }
- close( FILE );
-
- return $name;
-}
-
-sub pkg_version
-{
- my $makefile = shift;
- my $version;
-
- my $stop_line;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^([A-Z_0-9]*_PKG_VERSION)(.+= +)(.+)/ )
- {
- $stop_line = $1;
- $version = $3;
- }
- }
- close( FILE );
-
- # check if version is present as a reference to some variable:
- if( $version =~ m/^\$\((.+)\)/ )
- {
- my $vname = $1;
-
- # get value of referenced variable
- $version = value_from_makefile( $makefile, $vname, $stop_line );
- }
-
- return $version;
-}
-
-sub pkg_license
-{
- my $makefile = shift;
- my $license;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_LICENSE(.+= +)(.+)/ )
- {
- $license = $2;
- }
- }
- close( FILE );
-
- return $license;
-}
-
-sub pkg_short_description
-{
- my $makefile = shift;
- my $description;
-
- open( FILE, "< $makefile" );
-
- while( <FILE> )
- {
- if( /^[A-Z_0-9]*_PKG_SHORT_DESCRIPTION(.+= +)(.+)/ )
- {
- $description = $2;
- }
- }
- close( FILE );
-
- #
- # In Makefiles we have to mask characters '\', '&', '*', '(', ')' inside
- # the new value in the assignment operator with backslash. So, for axample,
- # the value "name & \ * ( ) end" we have to assign as follow
- #
- # ..._SHORT_DESCRIPTION = name \& \\ \* \( \) end
- #
- # Here we have to remove backslashes and fill escaped symbols as is:
- #
- $description =~ s/\\(.?)/$1/g;
-
- return $description;
-}
-
-
-sub get_treedirs
-{
- my @list;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /^TREEDIRS(.+= +)(.+)/ )
- {
- @list = split( ' ', $2 );
- }
- }
-
- return @list;
-}
-
-sub get_root
-{
- my $root;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /^# ROOT(=)(.+)/ )
- {
- $root = $2;
- }
- }
-
- return $root;
-}
-
-sub get_deps
-{
- my %deps;
-
- seek( REQUIRES_FILE, 0, SEEK_SET );
-
- while( <REQUIRES_FILE> )
- {
- if( /(.+)(: +)(.+)/ )
- {
- $deps{$1} = $3;
- }
- }
- return %deps;
-}
-
-my $root_node = 1;
-
-#
-# PACKAGE HASH:
-# ============
-#
-# name => $(PKG_NAME) from Makefile
-# version => $(PKG_VERSION) from Makefile
-# group => $(PKG_GROUP) from Makefile {app,base,dev,libs,net,...}
-#
-# arch => $pkgarch from comandline args
-# hardware => $hardware from comandline args
-# flavour => $flavour from comandline args for ROOT pkg, from REQUIRES for dependencies
-# tarball => "$name-$version-$arch-$distro_name-$distro_version.$tarball_suffix"
-#
-# distro_name => $(DISTRO_NAME) from build-system/constants.mk
-# distro_version => $(DISTRO_VERSION) from build-system/constants.mk
-# url => $(BUG_URL) from build-system/constants.mk
-# license => from Makefile
-# short_description => from Makefile
-# description => first line from .DESCRIPTION
-# uncompressed_size => from .PKGINFO
-# total_files => from .PKGINFO
-#
-# dir => path to Makefile from .$(HW)_requires
-# children =>
-#
-sub fill_package_info
-{
- my $base_dir = shift;
- my $makefile = shift;
- my $flavour = shift;
- my ( $product_path, $tarball_file );
- my %pkg;
-
- $pkg{'dir'} = $base_dir;
- $pkg{'install'} = pkg_rootfs_target( $makefile );
-
- $pkg{'name'} = pkg_name( $makefile );
- if( $pkg{'name'} eq "" )
- {
- # There is no package for this Makefile
- $pkg{'name'} = $pkg{'dir'};
- return %pkg;
- }
-
- $pkg{'version'} = pkg_version( $makefile );
- $pkg{'arch'} = $pkgarch;
- $pkg{'hardware'} = $hardware;
- $pkg{'flavour'} = $flavour;
- $pkg{'group'} = pkg_group( $makefile );
- $pkg{'distro_name'} = $distro_name;
- $pkg{'distro_version'} = $distro_version;
- $pkg{'url'} = $url;
- $pkg{'license'} = pkg_license( $makefile );
- $pkg{'short_description'} = pkg_short_description( $makefile );
-
- $pkg{'tarball'} = $pkg{'name'} . "-" .
- $pkg{'version'} . "-" .
- $pkg{'arch'} . "-" .
- $distro_name . "-" .
- $distro_version . "." .
- $tarball_suffix;
-
- return %pkg;
-}
-
-
-
-#
-# Parse the command line options
-#
-
-# Get the rest arguments of the command line
-$topdir = shift;
-$pkgarch = shift;
-$toolchain = shift;
-$hardware = shift;
-$flavour = shift;
-
-my $makefile = "Makefile";
-
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-if( ! defined $pkgarch or $pkgarch eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" ) { $flavour = ""; }
-
-_kxLab::error( "$0: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "$0: Makefile missing: $makefile" ) if ( ! -f $makefile );
-
-$build_system = $topdir . "/build-system";
-
-$system_version = system_version( $build_system );
-$distro_name = distro_name( $build_system );
-$distro_version = distro_version( $build_system );
-$url = bug_url( $build_system );
-
-
-if( $flavour eq "" )
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-$requires_file = $target_build_dir . "/.requires";
-
-if( $flavour eq "" )
-{
- $pkglist_file = $target_build_dir . "/" . $hardware . ".pkglist";
-}
-else
-{
- $pkglist_file = $target_build_dir . "/" . $hardware . "-" . $flavour . ".pkglist";
-}
-
-
-# open the intput file
-open(REQUIRES_FILE, "< $requires_file") or
- _kxLab::error( "$0: Could not open $requires_file file: $!" );
-# open the output files
-open(PKGLIST_FILE, "> $pkglist_file") or
- _kxLab::error( "$0: Could not open $pkglist_file file: $!" );
-
-
-my $root = get_root();
-my @treedirs = get_treedirs();
-my %deps = get_deps();
-
-#
-# This is the root package
-#
-%tree = fill_package_info( $root, $makefile, $flavour );
-
-my %sequence;
-my $order = 0;
-
-#################################################################
-# if( there is any dependencies )
-#
-if( %deps )
-{
- my @dep_keys = keys %deps;
-
- my $count = scalar( keys %deps );
-
- foreach my $dir ( @treedirs )
- {
- if( ! grep { $_ eq $dir } @dep_keys )
- {
- my $key = $dir;
- $sequence{$key} = ++$order;
- @treedirs = grep { $_ ne $key } @treedirs;
-
- # Split dir^flavour:
- my ($d, $f);
- $d = `echo $dir | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
- if( $dir =~ m/\^/ )
- {
- $f = `echo $dir | cut -f 2 -d '^'`;
- $f =~ s/^\s+|\s+$//;
- }
- else
- {
- $f = "";
- }
-
- # Insert into sub_trees:
- my %pkg = fill_package_info( $d, $topdir . "/" . $d . "/Makefile", $f );
- $sub_trees{$dir} = \%pkg;
-
- delete $deps{$dir};
- }
- }
-
-
- for( my $i = 0; $i < $count; ++$i )
- {
- my @installed = keys %sequence;
-
- foreach my $key (sort keys %deps)
- {
- my $ok = 1;
- my @dirs = split( ' ', $deps{$key} );
-
- if( $key ne "all" )
- {
- foreach my $dir ( @dirs )
- {
- if( ! grep { $_ eq $dir } @installed )
- {
- $ok = 0;
- }
- }
-
- if( $ok == 1 )
- {
- $sequence{$key} = ++$order;
-
- # Split dir^flavour:
- my ($d, $f);
- $d = `echo $key | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
- if( $key =~ m/\^/ )
- {
- $f = `echo $key | cut -f 2 -d '^'`;
- $f =~ s/^\s+|\s+$//;
- }
- else
- {
- $f = "";
- }
-
- # create package node:
- my %pkg = fill_package_info( $d, $topdir . "/" . $d . "/Makefile", $f );
- # add children:
- foreach my $dir ( @dirs )
- {
- my $child = $sub_trees{$dir};
- push( @{$pkg{'children'}}, $child );
- }
-
- # insert new sub tree into $sub_tree:
- $sub_trees{$key} = \%pkg;
-
- delete $deps{$key};
- }
- }
- }
- }
-
- #
- # The root node children
- #
- my @dirs = split( ' ', $deps{'all'} );
- foreach my $dir ( @dirs )
- {
- my $child = $sub_trees{$dir};
- push( @{$tree{'children'}}, $child );
- }
-
-}
-else
-{
- my %pkg;
-
- $pkg{'dir'} = "void";
- $pkg{'name'} = "void";
-
- push( @{$tree{'children'}}, \%pkg );
-}
-#
-# End if( there is any dependencies )
-#################################################################
-
-
-#################################################################
-# Building Required Packages List:
-#
-sub compare_order
-{
- $sequence{$a} <=> $sequence{$b};
-}
-
-print PKGLIST_FILE "#\n";
-print PKGLIST_FILE "# file format:\n";
-print PKGLIST_FILE "# ===========\n";
-print PKGLIST_FILE "#\n";
-print PKGLIST_FILE "# Each line contains six fields separated by colon symbol ':' like following.\n";
-print PKGLIST_FILE "#\n";
-print PKGLIST_FILE "# pkgname:version:description:tarball:procedure:priority\n";
-print PKGLIST_FILE "#\n";
-print PKGLIST_FILE "# where:\n";
-print PKGLIST_FILE "#\n";
-print PKGLIST_FILE "# pkgname - should be the same as the value of pkgname in the '.DESCRIPTION' file;\n";
-print PKGLIST_FILE "# version - package version for showing in check list dialog box if this file is\n";
-print PKGLIST_FILE "# used to complete common check dialog for installing group of packages;\n";
-print PKGLIST_FILE "# description - short description for showing in check list dialog box if this file is\n";
-print PKGLIST_FILE "# used to complete common check dialog for installing group of packages;\n";
-print PKGLIST_FILE "# tarball - should end in '." . $tarball_suffix . "';\n";
-print PKGLIST_FILE "# procedure - installation procedure {install | update}:\n";
-print PKGLIST_FILE "# * 'install' - if package requires normal installation,\n";
-print PKGLIST_FILE "# * 'update' - if already installed package should be updated by this\n";
-print PKGLIST_FILE "# package archive;\n";
-print PKGLIST_FILE "# priority - { REQUIRED|RECOMMENDED|OPTIONAL|SKIP }\n";
-print PKGLIST_FILE "# synonims:\n";
-print PKGLIST_FILE "# { REQUIRED | required | REQ | req }\n";
-print PKGLIST_FILE "# { RECOMMENDED | recommended | REC | rec }\n";
-print PKGLIST_FILE "# { OPTIONAL | optional | OPT | opt }\n";
-print PKGLIST_FILE "# { SKIP | skip | SKP | skp }\n";
-print PKGLIST_FILE "#\n";
-
-
-my $packages_done = 0;
-
-sub print_result
-{
- my $out_string = sprintf( "####### Packages Install List (done: %4d packages)\n", $packages_done );
-
- print $out_string;
-}
-
-print "#######\n";
-
-foreach my $dir (sort compare_order( (keys %sequence) ))
-{
- my $package;
-
- if( $dir ne "all" )
- {
- $package = $sub_trees{$dir};
- #
- # Currently gcc-runtime has not ROOTFS_TARGET and not all packages requires GCC.
- # We will not add GCC in this procedure forcibly. But developers have to care about
- # competing packages GCC and gcc-runtime.
- #
- if( $package->{'install'} ne "no" )
- {
- if( $package->{'flavour'} eq "" )
- {
- print PKGLIST_FILE $package->{'name'} . ":" .
- $package->{'version'} . ":" .
- $package->{'short_description'} . ":" .
- $package->{'group'} . "/" .
- $package->{'tarball'} . ":" .
- $package->{'install'} . ":REQUIRED\n";
- }
- else
- {
- print PKGLIST_FILE $package->{'name'} . ":" .
- $package->{'version'} . ":" .
- $package->{'short_description'} . ":" .
- $package->{'group'} . "/" .
- $package->{'flavour'} . "/" .
- $package->{'tarball'} . ":" .
- $package->{'install'} . ":REQUIRED\n";
- }
- ++$packages_done;
- }
- }
-}
-
-if( $tree{'install'} ne "no" )
-{
- if( $tree{'flavour'} eq "" )
- {
- print PKGLIST_FILE $tree{'name'} . ":" .
- $tree{'version'} . ":" .
- $tree{'short_description'} . ":" .
- $tree{'group'} . "/" .
- $tree{'tarball'} . ":" .
- $tree{'install'} . ":REQUIRED\n";
- }
- else
- {
- print PKGLIST_FILE $tree{'name'} . ":" .
- $tree{'version'} . ":" .
- $tree{'short_description'} . ":" .
- $tree{'group'} . "/" .
- $tree{'flavour'} . "/" .
- $tree{'tarball'} . ":" .
- $tree{'install'} . ":REQUIRED\n";
- }
- ++$packages_done;
-}
-
-print_result();
-print "#######\n";
-#
-# End of Building Required Packages List.
-#################################################################
-
-# close input files
-close REQUIRES_FILE;
-# close output files
-close PKGLIST_FILE;
Property changes on: build-system-1.10.x/build_packages_list
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/build-version
===================================================================
--- build-system-1.10.x/build-version (revision 57)
+++ build-system-1.10.x/build-version (nonexistent)
@@ -1,202 +0,0 @@
-#!/bin/env perl
-
-use strict;
-use warnings FATAL => 'all';
-
-use Cwd 'abs_path';
-use File::Basename;
-
-my ( $program, $path, $argpath, $system, $branch, $repo );
-
-$program = basename( $0 );
-$path = dirname( abs_path(__FILE__) );
-
-$system = "no";
-$branch = "no";
-$repo = "no";
-
-$argpath = "";
-
-sub usage
-{
- print <<EOF;
-
-Usage: $program [options] [PATH]
-Options:
- --system - get system info othervise get build-system info;
-
- --branch - get branch name;
- --repo - get reposytory URL;
-
- --help - print this help message and exit.
-
-Args:
- PATH - path to the root directory of SCM repository
- or the path to a file located in the root directory
- of the repository.
-
- If options `--branch' and `--repo' are not specified then '$program'
- returns the SCM revision.
-
-EOF
- exit;
-}
-
-foreach ( @ARGV )
-{
- if ( /--system/ )
- {
- $system = "yes";
- next;
- }
- elsif ( /--branch/ )
- {
- $repo = "no";
- $branch = "yes";
- next;
- }
- elsif ( /--repo/ )
- {
- $branch = "no";
- $repo = "yes";
- next;
- }
- elsif( /--help/ )
- {
- usage;
- }
- else
- {
- if( $_ )
- {
- if ( -d "$_" )
- {
- $argpath = abs_path( $_ );
- }
- elsif ( -f "$_" )
- {
- $argpath = dirname( abs_path( $_ ) );
- }
- else
- {
- usage;
- }
- }
- }
-}
-
-if( $argpath eq "" )
-{
- if ( $system eq "yes" )
- {
- $path = $path . "/..";
- }
-}
-else
-{
- $path = $argpath;
-}
-
-
-sub get_svn_release
-{
- my $dir = shift;
- my $info = `svn info $dir`;
- $info =~ m!Revision: (.*)!;
- return ( "$1" );
-}
-
-sub get_svn_branch
-{
- my $dir = shift;
- my $info = `svn info $dir`;
- $info =~ m!URL: (.*)!;
- my $url = $1;
-
- if ( $url =~ m!branches/([^/]*)/?! )
- {
- return ( "branches/" . "$1" );
- }
- elsif ( $url =~ m!tags/([^/]*)/?! )
- {
- return ( "tags/" . "$1" );
- }
- else {
- return ( "trunk" );
- }
-}
-
-sub get_svn_repo
-{
- my $dir = shift;
- my $info = `svn info $dir`;
- $info =~ m!Repository Root: (.*)!;
- return ( "$1" );
-}
-
-
-sub get_git_release
-{
- my $dir = shift;
- my $info = `cd $dir && if \$(git rev-parse --is-inside-work-tree 2>/dev/null) ; then echo -n "\$(git rev-list --count HEAD)" ; else echo -n "0" ; fi`;
- return ( "$info" );
-}
-
-sub get_git_branch
-{
- my $dir = shift;
- my $info = `cd $dir && if \$(git rev-parse --is-inside-work-tree 2>/dev/null) ; then echo -n "\$(git rev-parse --abbrev-ref HEAD)" ; else echo -n "unknown" ; fi`;
- return ( "$info" );
-}
-
-sub get_git_repo
-{
- my $dir = shift;
- my $info = `cd $dir && if \$(git rev-parse --is-inside-work-tree 2>/dev/null) ; then echo -n "\$(git config --get remote.origin.url)" ; else echo -n "unknown" ; fi`;
- return ( "$info" );
-}
-
-
-if( -d "$path/.svn" )
-{
- #
- # Subversion SCM:
- #
- if ( $branch eq "yes" )
- {
- print get_svn_branch( $path ) . "\n";
- }
- elsif ( $repo eq "yes" )
- {
- print get_svn_repo( $path ) . "\n";
- }
- else
- {
- print get_svn_release( $path ) . "\n";
- }
-}
-elsif ( -d "$path/.git" )
-{
- #
- # Git SCM:
- #
- if ( $branch eq "yes" )
- {
- print get_git_branch( $path ) . "\n";
- }
- elsif ( $repo eq "yes" )
- {
- print get_git_repo( $path ) . "\n";
- }
- else
- {
- print get_git_release( $path ) . "\n";
- }
-}
-else
-{
- #
- # Unknown SCM:
- #
- print "Unknown\n";
-}
Property changes on: build-system-1.10.x/build-version
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/build_src_requires
===================================================================
--- build-system-1.10.x/build_src_requires (revision 57)
+++ build-system-1.10.x/build_src_requires (nonexistent)
@@ -1,300 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-use Getopt::Long;
-
-use _kxLab;
-
-#
-# Generate .src_requires file for current directory
-#
-# usage:
-# $0 [options] topdir
-#
-# where:
-# 'topdir' - is a absolute path to the top directory of checked out branch
-#
-
-
-# global variables
-my (%all_requires, $top_dir, $opt_max_depth, %requires_depend, $requires_file, %skip_dirs);
-
-my %all_src_requires;
-
-
-sub usage
-{
- print <<EOF;
-
-Usage: build_requires [options] topdir
-Options:
- --max-depth=i - where 'i' is a maximal directory depth for finding requires;
- --skip-dir - directory to be skipped (such as dist or TARGET_BUILD_DIR);
- topdir - is a absolute path to the top of checked out branch.
-
-EOF
- exit;
-}
-
-
-sub requires_depend
-{
- my $makefile = shift;
-
- if( ! exists $requires_depend{$makefile} )
- {
- print REQUIRES_DEPEND_FILE "$requires_file: $makefile\n\n";
- print REQUIRES_DEPEND_FILE "$makefile:\n\n";
- $requires_depend{$makefile} = "";
- }
-}
-
-sub read_src_requires
-{
- my $makefile = shift;
-
- # add a dependency to the Makefile
- requires_depend($makefile);
-
- my %requires;
-
- my $shell_output = `cat $makefile`;
-
- while( $shell_output =~ m/^SOURCE_REQUIRES(.+= +)(.+)/gm )
- {
- my @n = split( " ", $2 );
- foreach my $d ( @n )
- {
- if( $d eq "ALL_DIRS" )
- {
- my $dirname = dirname($makefile);
-
- opendir( DIR, "$dirname" ) or
- _kxLab::error( "build_src_requires: Could not open directory: $dirname: $!" );
- my @dirs = grep { ! /^\./ && -d "$_" && -f "$_/Makefile" } readdir( DIR );
- closedir DIR;
-
- foreach my $dir (@dirs)
- {
- requires_depend("$dirname/$dir/Makefile");
- "$dirname/$dir" =~ m!$top_dir/(.+)!;
- $requires{$1} = "";
- }
- }
- else
- {
- # Print a nice error message if the SOURCE_REQUIRES statement points to a missing directory
- _kxLab::error( "build_src_requires: SOURCE_REQUIRES '$d' in $makefile not found. Exit" ) if( ! -d "$top_dir/$d" );
-
- if( -f "$top_dir/$d/Makefile" )
- {
- $requires{$d} = "";
- requires_depend("$top_dir/$d/Makefile");
- }
- }
- }
- }
- return %requires;
-}
-
-sub read_requires
-{
- my $makefile = shift;
-
- # add a dependency to the Makefile
- requires_depend($makefile);
-
- my %requires;
-
- my $shell_output = `cat $makefile`;
-
- while( $shell_output =~ m/^REQUIRES(.+= +)(.+)/gm )
- {
- my @n = split( " ", $2 );
- foreach my $req ( @n )
- {
- my $d = `echo $req | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
-
- if( $d eq "ALL_DIRS" )
- {
- my $dirname = dirname($makefile);
-
- opendir( DIR, "$dirname" ) or
- _kxLab::error( "build_src_requires: Could not open directory: $dirname: $!" );
- my @dirs = grep { ! /^\./ && -d "$_" && -f "$_/Makefile" } readdir( DIR );
- closedir DIR;
-
- foreach my $dir (@dirs)
- {
- requires_depend( "$dirname/$dir/Makefile" );
- "$dirname/$dir" =~ m!$top_dir/(.+)!;
- $requires{$1} = "";
-
- my %src_requires = read_src_requires( "$dirname/$dir/Makefile" );
- my @sort_src_requires = sort(keys %src_requires);
- foreach my $req ( @sort_src_requires )
- {
- $all_src_requires{$req} = "";
- }
- }
- }
- else
- {
- # Print a nice error message if the REQUIRES statement points to a missing directory
- _kxLab::error( "build_src_requires: REQUIRES '$d' in $makefile not found. Exit" ) if( ! -d "$top_dir/$d" );
-
- if( -f "$top_dir/$d/Makefile" )
- {
- $requires{$d} = "";
-
- my %src_requires = read_src_requires( "$top_dir/$d/Makefile" );
- my @sort_src_requires = sort(keys %src_requires);
- foreach my $req ( @sort_src_requires )
- {
- $all_src_requires{$req} = "";
- }
- }
- }
- }
- }
- return %requires;
-}
-
-sub start_depend
-{
- my $req = shift;
-
- print REQUIRES_FILE "$req:";
-}
-
-sub depend
-{
- my $req = shift;
-
- print REQUIRES_FILE " $req";
-}
-
-sub end_depend
-{
- print REQUIRES_FILE "\n\n";
-}
-
-sub make_sub_requires
-{
- my $req = shift;
-
- if( ! exists $all_requires{$req} )
- {
- $all_requires{$req} = "";
-
- my $d = `echo $req | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
-
- # Read sub requires
- my $makefile = "$top_dir/$d/Makefile";
- my %sub_requires = read_requires( $makefile );
- if( scalar(%sub_requires) )
- {
- # Make sub sub requires
- my @sorted_sub_requires = sort(keys %sub_requires);
- foreach my $sub_req ( @sorted_sub_requires )
- {
- make_sub_requires( $sub_req );
- }
- }
- }
-}
-
-
-#
-# Parse the command line options
-#
-$opt_max_depth = 10;
-my @opt_skip_dirs;
-GetOptions( "max-depth=i" => \$opt_max_depth, "skip-dir=s" => \@opt_skip_dirs );
-%skip_dirs = map { $_ => "" } @opt_skip_dirs;
-
-# get the rest of the command line
-my $topdir = shift;
-my $makefile = "Makefile";
-
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-
-_kxLab::error( "build_requires: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "build_requires: Makefile missing: $makefile" ) if ( ! -f $makefile );
-
-# setup $top_build_dir
-$top_dir = $topdir;
-
-$requires_file = ".src_requires";
-my $requires_depend_file = $requires_file . "_depend";
-
-
-# open the output files
-open(REQUIRES_FILE, "> $requires_file") or
- _kxLab::error( "build_requires: Could not open $requires_file file: $!" );
-open(REQUIRES_DEPEND_FILE, "> $requires_depend_file") or
- _kxLab::error( "build_requires: Could not open $requires_depend_file file: $!" );
-
-
-# root component
-my $pwd = `pwd`;
-chomp $pwd;
-$pwd =~ m!$top_dir(.*)!;
-my $root;
-if( $1 eq "" )
-{
- $root = "all";
-}
-else
-{
- $1 =~ m!/(.+)!;
- $root = $1;
-}
-
-print REQUIRES_FILE "# ROOT=$root\n\n";
-print REQUIRES_DEPEND_FILE "\n";
-
-# read the makefile
-%all_src_requires = read_src_requires( "$pwd/$makefile" );
-my %requires = read_requires( "$pwd/$makefile" );
-
-
-# check the "build-system" sub dependencies implicitly (excluding sources directories)
-#$requires{"build-system"} = "";
-
-
-# build sub dependencies
-my @sorted_requires = sort(keys %requires);
-foreach my $req ( @sorted_requires )
-{
- make_sub_requires( $req );
-}
-
-# build the all: rule
-start_depend( "all" );
-my @sorted_src_requires = sort(keys %all_src_requires);
-foreach my $req ( @sorted_src_requires )
-{
- depend( $req );
-}
-end_depend();
-
-
-# Finish by including tree.mk
-print REQUIRES_FILE "TREEDIRS = ", join(" ", sort(keys %all_src_requires)), "\n\n";
-print REQUIRES_FILE "include \$(BUILDSYSTEM)/tree-src.mk\n";
-
-
-# close output files
-close REQUIRES_FILE;
-close REQUIRES_DEPEND_FILE;
Property changes on: build-system-1.10.x/build_src_requires
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/constants.mk
===================================================================
--- build-system-1.10.x/constants.mk (revision 57)
+++ build-system-1.10.x/constants.mk (nonexistent)
@@ -1,1398 +0,0 @@
-# include once
-ifndef CONSTANTS_MK
-
-#######
-####### Constants:
-#######
-
-SYSTEM_VERSION = 1.10.0
-
-#
-# Distribution:
-#
-DISTRO_NAME = radix
-
-DISTRO_CAPTION = Radix
-
-DISTRO_SPEC = Radix cross Linux
-
-DISTRO_VERSION = 1.10
-
-BUG_URL = https://radix.pro
-
-
-#
-# Download Sources:
-#
-DOWNLOAD_SERVER = https://ftp.radix.pro
-
-WGET_OPTIONS = -q -N
-
-TOOLCHAINS_FTP_BASE = toolchains/x86_64
-TARBALL_SUFFIX = tar.gz
-
-
-CACHED_CC_OUTPUT = /opt/extra/ccache
-
-TOOLCHAINS_BASE_PATH = /opt/toolchains
-
-
-#
-# GnuPG options for make-package:
-# ==============================
-#
-# Usage:
-# -----
-# GNUPG_OPTIONS = -g ~/.gnupg
-# GNUPG_OPTIONS += -p ~/.gnupg/.pkgtool-passphrase
-# GNUPG_OPTIONS += -k 0xC99BA24F786312EE
-#
-# where:
-# -g,--gnupghome=<DIR> Set the name of the GnuPG home directory
-# to <DIR>. If this option is not used it
-# defaults to '~/.gnupg'. This also overrides
-# the environment variable 'GNUPGHOME'.
-# -p,--passphrase=<FILE> File with passphrase of private certificate
-# for signing package. For example:
-# ~/.gnupg/.passphrase
-# Passphrase should be placed in the first
-# line of the file (the new-line symbol at
-# end of passphrase is allowed). File must
-# have access mode 600.
-# -k,--key-id=<USER-ID> Use USER-ID to sign package, for example,
-# --key-id=0xC99BA24F786312EE
-#
-# [see OpenPGP options of make-package utility].
-#
-# To verify signatures users can download public key using the direct URL:
-#
-# https://keys.radix.pro/vks/v1/by-fingerprint/FFB754DE9A3B1C7BA9D4082EDD442A75F5B94216
-#
-# Also this key can be found at https://keys.radix.pro/ by support@radix.pro e-mail.
-#
-GNUPG_OPTIONS =
-
-
-################################################################
-#######
-####### Target Package suffixes & functions:
-#######
-
-# pkgtool/make-package script creates three files:
-# - package tarball,
-# - package signature,
-# - package description.
-# extensions of these files are depend on pkgtool.
-
-pkg_arch_suffix = txz
-pkg_cert_suffix = asc
-pkg_sign_suffix = sha
-pkg_desc_suffix = txt
-
-#
-# functions:
-#
-cert-name = $(if $(GNUPG_OPTIONS),$(subst .$(pkg_arch_suffix),.$(pkg_cert_suffix),$1),)
-sign-name = $(subst .$(pkg_arch_suffix),.$(pkg_sign_suffix),$1)
-desc-name = $(subst .$(pkg_arch_suffix),.$(pkg_desc_suffix),$1)
-pkg-files = $1 $(call cert-name,$1) $(call sign-name,$1) $(call desc-name,$1)
-
-#
-# usage:
-#
-# pkg_archive = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
-# pkg_signature = $(call sign-name,$(pkg_archive))
-# pkg_description = $(call desc-name,$(pkg_archive))
-# products = $(call pkg-files,$(pkg_archive))
-#
-# PRODUCT_TARGETS = $(products)
-# ROOTFS_TARGETS = $(pkg_archive)
-#
-# $(pkg_signature) : $(pkg_archive) ;
-# $(pkg_description) : $(pkg_archive) ;
-#
-# $(pkg_archive): '''dependencies'''
-# ```package creation procedure'''
-
-#######
-####### End of Target Package suffixes & functions.
-#######
-################################################################
-
-
-#
-# NOTE:
-# ====
-# Hardware names defined by 'HARDWARE_...' variables.
-# Hardware IDs variable names such as ..._ID_STD should have prefix
-# which is equal to $(HARDWARE_...) in upper case letters and symbol '-' should be replaced with '_'.
-# In other words the PREFIX is equal to PREFIX = $(shell echo $(HARDWARE_...) | tr '[a-z-]' '[A-Z_]').
-#
-
-#######
-####### Hardware names and specific attributes:
-#######
-
-####### noarch:
-HARDWARE_NOARCH = none
-####### Host Build:
-HARDWARE_BUILD = build
-
-#
-# NOTE:
-# ====
-# $(HARDWARE)_USE_BUILT_GCC_LIBS - defines that the system is based on GCC Runtime Libraries
-# which built in the platform instead of Libraries which
-# are taken from TOOLCHAIN.
-#
-# These variables give their values to the global variable named as __USE_BUILT_GCC_LIBS__
-# and defined in the target-setup.mk file. Variable __USE_BUILT_GCC_LIBS__ can be used in
-# user's Makefile to deside do we need to wait gcc built or we can to set dependencies from
-# GNU Libc which based on GCC Runtime Libs taken from toolchain.
-#
-# [see: app/inputattach/1.4.7/Makefile, for example].
-#
-
-####### x86 Personal Computer:
-HARDWARE_INTEL_PC32 = intel-pc32
-### |---HW-spec-handy-ruler-----------------------|
-INTEL_PC32_SPEC = Intel x86_32 generic Linux machine
-INTEL_PC32_USE_BUILT_GCC_LIBS = yes
-INTEL_PC32_ENABLE_STATIC = no
-
-####### {x86|x86_64} Personal Computer:
-HARDWARE_INTEL_PC64 = intel-pc64
-### |---HW-spec-handy-ruler-----------------------|
-INTEL_PC64_SPEC = Intel x86_64 generic Linux machine
-INTEL_PC64_USE_BUILT_GCC_LIBS = yes
-INTEL_PC64_ENABLE_STATIC = no
-
-####### x86 micro Linux:
-HARDWARE_INTEL_PC32M = intel-pc32m
-### |---HW-spec-handy-ruler-----------------------|
-INTEL_PC32M_SPEC = x86_32 micro Linux
-INTEL_PC32M_USE_BUILT_GCC_LIBS = no
-INTEL_PC32M_ENABLE_STATIC = no
-
-####### x86_64 micro Linux:
-HARDWARE_INTEL_PC64M = intel-pc64m
-### |---HW-spec-handy-ruler-----------------------|
-INTEL_PC64M_SPEC = x86_64 micro Linux
-INTEL_PC64M_USE_BUILT_GCC_LIBS = no
-INTEL_PC64M_ENABLE_STATIC = no
-
-
-####### i586 devices:
-####### ------------
-
-####### DMP Electronics Inc. EBOX-3350DX2-AP [https://www.compactpc.com.tw]:
-HARDWARE_EBOX_3350DX2 = ebox-3350dx2
-### |---HW-spec-handy-ruler-----------------------|
-EBOX_3350DX2_SPEC = EBOX 3350DX2 \(Linux, GNU Libc based\)
-EBOX_3350DX2_USE_BUILT_GCC_LIBS = yes
-EBOX_3350DX2_ENABLE_STATIC = no
-
-HARDWARE_EBOX_3350DX2M = ebox-3350dx2m
-### |---HW-spec-handy-ruler-----------------------|
-EBOX_3350DX2M_SPEC = EBOX 3350DX2M \(micro Linux, GNU Libc based\)
-EBOX_3350DX2M_USE_BUILT_GCC_LIBS = no
-EBOX_3350DX2M_ENABLE_STATIC = no
-
-
-####### Allwinner devices:
-####### -----------------
-
-####### A1N newlib devices (cubieboard 1):
-HARDWARE_CB1N = cb1n
-### |---HW-spec-handy-ruler-----------------------|
-CB1N_SPEC = Cubieboard A10 \(Newlib based\)
-CB1N_USE_BUILT_GCC_LIBS = no
-CB1N_ENABLE_STATIC = yes
-
-####### A1X devices (cubieboard 1 glibc):
-HARDWARE_CB1X = cb1x
-### |---HW-spec-handy-ruler-----------------------|
-CB1X_SPEC = Cubieboard A10 \(Linux, GNU Libc based\)
-CB1X_USE_BUILT_GCC_LIBS = yes
-CB1X_ENABLE_STATIC = no
-
-####### A2N newlib devices (cubieboard 2):
-HARDWARE_CB2N = cb2n
-### |---HW-spec-handy-ruler-----------------------|
-CB2N_SPEC = Cubieboard A20 \(Newlib based\)
-CB2N_USE_BUILT_GCC_LIBS = no
-CB2N_ENABLE_STATIC = yes
-
-####### A2X devices (cubieboard 2 glibc):
-HARDWARE_CB2X = cb2x
-### |---HW-spec-handy-ruler-----------------------|
-CB2X_SPEC = Cubieboard A20 \(Linux, GNU Libc based\)
-CB2X_USE_BUILT_GCC_LIBS = yes
-CB2X_ENABLE_STATIC = no
-
-####### A3N newlib devices (cubieboard 3):
-HARDWARE_CB3N = cb3n
-### |---HW-spec-handy-ruler-----------------------|
-CB3N_SPEC = Cubietrack A20 \(Newlib based\)
-CB3N_USE_BUILT_GCC_LIBS = no
-CB3N_ENABLE_STATIC = yes
-
-####### A3X devices (cubieboard 3 glibc):
-HARDWARE_CB3X = cb3x
-### |---HW-spec-handy-ruler-----------------------|
-CB3X_SPEC = Cubietrack A20 \(Linux, GNU Libc based\)
-CB3X_USE_BUILT_GCC_LIBS = yes
-CB3X_ENABLE_STATIC = no
-
-
-####### H3 devices:
-####### ----------
-
-####### Orange Pi Plus 2E [http://www.orangepi.org/orangepiplus2e]:
-HARDWARE_ORANGE_PP2E = orange-pp2e
-### |---HW-spec-handy-ruler-----------------------|
-ORANGE_PP2E_SPEC = Orange Pi Plus 2E \(Linux, GNU Libc based\)
-ORANGE_PP2E_USE_BUILT_GCC_LIBS = yes
-ORANGE_PP2E_ENABLE_STATIC = no
-
-####### NanoPi NEO Air [http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Air]:
-HARDWARE_NANOPI_NEO = nanopi-neo
-### |---HW-spec-handy-ruler-----------------------|
-NANOPI_NEO_SPEC = NanoPi NEO Air \(Linux, GNU Libc based\)
-NANOPI_NEO_USE_BUILT_GCC_LIBS = yes
-NANOPI_NEO_ENABLE_STATIC = no
-
-####### H5 devices:
-####### ----------
-
-####### Orange Pi Prime [http://www.orangepi.org/OrangePiPrime]:
-HARDWARE_ORANGE_PP = orange-pp
-### |---HW-spec-handy-ruler-----------------------|
-ORANGE_PP_SPEC = Orange Pi Prime \(Linux, GNU Libc based\)
-ORANGE_PP_USE_BUILT_GCC_LIBS = yes
-ORANGE_PP_ENABLE_STATIC = no
-
-####### Orange Pi Lite 2 [http://www.orangepi.org/Orange Pi Lite 2/]:
-HARDWARE_ORANGE_PL2 = orange-pl2
-### |---HW-spec-handy-ruler-----------------------|
-ORANGE_PL2_SPEC = Orange Pi Lite 2 \(Linux, GNU Libc based\)
-ORANGE_PL2_USE_BUILT_GCC_LIBS = yes
-ORANGE_PL2_ENABLE_STATIC = no
-
-####### Wechip TX6 [https://aliexpress.com]:
-HARDWARE_WECHIP_TX6 = wechip-tx6
-### |---HW-spec-handy-ruler-----------------------|
-WECHIP_TX6_SPEC = WeChip TX6 OTT Box \(Linux, GNU Libc based\)
-WECHIP_TX6_USE_BUILT_GCC_LIBS = yes
-WECHIP_TX6_ENABLE_STATIC = no
-
-####### Repka Pi 3 [https://repka-pi.ru]:
-HARDWARE_REPKA_PI3 = repka-pi3
-### |---HW-spec-handy-ruler-----------------------|
-REPKA_PI3_SPEC = Repka Pi 3 SBC \(Linux, GNU Libc based\)
-REPKA_PI3_USE_BUILT_GCC_LIBS = yes
-REPKA_PI3_ENABLE_STATIC = no
-
-
-
-####### Microcontrollers:
-####### ----------------
-
-####### AT91SAM7S devices:
-HARDWARE_AT91S = at91s
-### |---HW-spec-handy-ruler-----------------------|
-AT91S_SPEC = Atmel at91sam7s \(Newlib based\)
-AT91S_USE_BUILT_GCC_LIBS = no
-AT91S_ENABLE_STATIC = yes
-
-
-
-####### i.MX6 devices:
-####### -------------
-
-####### Nitrogen6X [https://boundarydevices.com/product/nitrogen6x]:
-HARDWARE_NIT6Q = nit6q
-### |---HW-spec-handy-ruler-----------------------|
-NIT6Q_SPEC = Nitrogen6X Nit6Q \(Linux, GNU Libc based\)
-NIT6Q_USE_BUILT_GCC_LIBS = yes
-NIT6Q_ENABLE_STATIC = no
-
-####### OKMX6DL-C [http://www.forlinx.net/products_detail/productId=69.html]:
-HARDWARE_OKMX6DL_C = okmx6dl-c
-### |---HW-spec-handy-ruler-----------------------|
-OKMX6DL_C_SPEC = Forlinx OKMX6DL-C \(Linux, GNU Libc based\)
-OKMX6DL_C_USE_BUILT_GCC_LIBS = yes
-OKMX6DL_C_ENABLE_STATIC = no
-
-####### OKMX6Q-C [http://www.forlinx.net/products_detail/productId=69.html]:
-HARDWARE_OKMX6Q_C = okmx6q-c
-### |---HW-spec-handy-ruler-----------------------|
-OKMX6Q_C_SPEC = Forlinx OKMX6Q-C \(Linux, GNU Libc based\)
-OKMX6Q_C_USE_BUILT_GCC_LIBS = yes
-OKMX6Q_C_ENABLE_STATIC = no
-
-####### SK6ULL [http://starterkit.ru/html/index.php?name=shop&op=view&id=154]:
-HARDWARE_SK6ULL = sk6ull
-### |---HW-spec-handy-ruler-----------------------|
-SK6ULL_SPEC = SK-iMX6ULL-NANO \(Linux, GNU Libc based\)
-SK6ULL_USE_BUILT_GCC_LIBS = yes
-SK6ULL_ENABLE_STATIC = no
-
-
-####### AM335X devices:
-####### --------------
-
-HARDWARE_BONE_BLACK = bone-black
-### |---HW-spec-handy-ruler-----------------------|
-BONE_BLACK_SPEC = BeagleBone Black \(Linux, GNU Libc based\)
-BONE_BLACK_USE_BUILT_GCC_LIBS = yes
-BONE_BLACK_ENABLE_STATIC = no
-
-
-####### OMAP543X devices:
-####### ----------------
-
-HARDWARE_OMAP5UEVM = omap5uevm
-### |---HW-spec-handy-ruler-----------------------|
-OMAP5UEVM_SPEC = Texas OMAP5 uEVM \(Linux, GNU Libc based\)
-OMAP5UEVM_USE_BUILT_GCC_LIBS = yes
-OMAP5UEVM_ENABLE_STATIC = no
-
-HARDWARE_DRA7XXEVM = dra7xxevm
-### |---HW-spec-handy-ruler-----------------------|
-DRA7XXEVM_SPEC = Texas DRA7xx EVM \(Linux, GNU Libc based\)
-DRA7XXEVM_USE_BUILT_GCC_LIBS = yes
-DRA7XXEVM_ENABLE_STATIC = no
-
-
-####### JZ47XX devices:
-####### --------------
-
-####### MIPS Creator CI20 [http://www.elinux.org/MIPS_Creator_CI20]:
-HARDWARE_CI20 = ci20
-### |---HW-spec-handy-ruler-----------------------|
-CI20_SPEC = MIPS Creator CI20 \(Linux, GNU Libc based\)
-CI20_USE_BUILT_GCC_LIBS = yes
-CI20_ENABLE_STATIC = no
-
-
-####### MIPS Warrior P-class P5600 devices:
-####### ----------------------------------
-
-####### Baikal T1 based boards [https://baikalelectronics.com/products/168]:
-HARDWARE_BAIKAL_T1 = baikal-t1
-### |---HW-spec-handy-ruler-----------------------|
-BAIKAL_T1_SPEC = MIPS Baikal T1 \(Linux, GNU Libc based\)
-BAIKAL_T1_USE_BUILT_GCC_LIBS = yes
-BAIKAL_T1_ENABLE_STATIC = no
-
-####### BE-M1000 devices:
-####### ----------------
-
-####### Baikal M1 based boards [https://baikalelectronics.com/products/238]:
-HARDWARE_BAIKAL_M1 = baikal-m1
-### |---HW-spec-handy-ruler-----------------------|
-BAIKAL_M1_SPEC = ARM64 Baikal M1 \(Linux, GNU Libc based\)
-BAIKAL_M1_USE_BUILT_GCC_LIBS = yes
-BAIKAL_M1_ENABLE_STATIC = no
-
-
-####### RK328X devices:
-####### --------------
-
-####### Firefly-RK3288 [http://en.t-firefly.com/en/firenow/firefly_rk3288]:
-HARDWARE_FFRK3288 = ffrk3288
-### |---HW-spec-handy-ruler-----------------------|
-FFRK3288_SPEC = Firefly RK3288 \(Linux, GNU Libc based\)
-FFRK3288_USE_BUILT_GCC_LIBS = yes
-FFRK3288_ENABLE_STATIC = no
-
-####### Poin2 RK3288 Chromebook [https://poin2.com/chromebook11]:
-HARDWARE_POIN2 = poin2
-### |---HW-spec-handy-ruler-----------------------|
-POIN2_SPEC = Poin2 RK3288 \(Linux, GNU Libc based\)
-POIN2_USE_BUILT_GCC_LIBS = yes
-POIN2_ENABLE_STATIC = no
-
-
-####### RK33XX devices:
-####### --------------
-
-####### ROC-RK3328-CC [http://en.t-firefly.com/doc/product/index/id/34.html]:
-HARDWARE_RK3328_CC = rk3328-cc
-### |---HW-spec-handy-ruler-----------------------|
-RK3328_CC_SPEC = ROC RK3328 CC \(Linux, GNU Libc based\)
-RK3328_CC_USE_BUILT_GCC_LIBS = yes
-RK3328_CC_ENABLE_STATIC = no
-
-
-####### RK339X devices:
-####### --------------
-
-####### KHADAS EDGE [https://www.khadas.com/edge]:
-HARDWARE_KHADAS_EDGE = khadas-edge
-### |---HW-spec-handy-ruler-----------------------|
-KHADAS_EDGE_SPEC = Khadas Edge RK3399 \(Linux, GNU Libc based\)
-KHADAS_EDGE_USE_BUILT_GCC_LIBS = yes
-KHADAS_EDGE_ENABLE_STATIC = no
-
-####### LENOVO Leez SBC P710/PR710 [https://github.com/leezsbc/resources/wiki]:
-HARDWARE_LEEZ_P710 = leez-p710
-### |---HW-spec-handy-ruler-----------------------|
-LEEZ_P710_SPEC = Lenovo Leez P710 \(Linux, GNU Libc based\)
-LEEZ_P710_USE_BUILT_GCC_LIBS = yes
-LEEZ_P710_ENABLE_STATIC = no
-
-
-####### RK358X devices:
-####### --------------
-
-####### ORANGE Pi 5 [http://www.orangepi.org/index.html]:
-HARDWARE_ORANGE_PI5 = orange-pi5
-### |---HW-spec-handy-ruler-----------------------|
-ORANGE_PI5_SPEC = Orange Pi 5 \(Linux, GNU Libc based\)
-ORANGE_PI5_USE_BUILT_GCC_LIBS = yes
-ORANGE_PI5_ENABLE_STATIC = no
-
-####### ORANGE Pi 5b [http://www.orangepi.org/index.html]:
-HARDWARE_ORANGE_PI5B = orange-pi5b
-### |---HW-spec-handy-ruler-----------------------|
-ORANGE_PI5B_SPEC = Orange Pi 5b \(Linux, GNU Libc based\)
-ORANGE_PI5B_USE_BUILT_GCC_LIBS = yes
-ORANGE_PI5B_ENABLE_STATIC = no
-
-####### ORANGE Pi 5 Plus [http://www.orangepi.org/index.html]:
-HARDWARE_ORANGE_PI5P = orange-pi5p
-### |---HW-spec-handy-ruler-----------------------|
-ORANGE_PI5P_SPEC = Orange Pi 5 Plus \(Linux, GNU Libc based\)
-ORANGE_PI5P_USE_BUILT_GCC_LIBS = yes
-ORANGE_PI5P_ENABLE_STATIC = no
-
-####### Radxa ROCK 5B [https://wiki.radxa.com/Rock5/hardware/5b]:
-HARDWARE_ROCK_5B = rock-5b
-### |---HW-spec-handy-ruler-----------------------|
-ROCK_5B_SPEC = Radxa ROCK 5B \(Linux, GNU Libc based\)
-ROCK_5B_USE_BUILT_GCC_LIBS = yes
-ROCK_5B_ENABLE_STATIC = no
-
-
-####### S8XX devices:
-####### ------------
-
-####### Amlogic S805 meson8b m201:
-HARDWARE_M201 = m201
-### |---HW-spec-handy-ruler-----------------------|
-M201_SPEC = Amlogic M201 S805 \(Linux, GNU Libc based\)
-M201_USE_BUILT_GCC_LIBS = yes
-M201_ENABLE_STATIC = no
-
-HARDWARE_MXV = mxv
-### |---HW-spec-handy-ruler-----------------------|
-MXV_SPEC = MXV OTT Box S805 \(Linux, GNU Libc based\)
-MXV_USE_BUILT_GCC_LIBS = yes
-MXV_ENABLE_STATIC = no
-
-
-####### S9XX devices:
-####### ------------
-
-####### Amlogic S905 meson-gxbb p201:
-HARDWARE_P201 = p201
-### |---HW-spec-handy-ruler-----------------------|
-P201_SPEC = Amlogic P201 S905 \(Linux, GNU Libc based\)
-P201_USE_BUILT_GCC_LIBS = yes
-P201_ENABLE_STATIC = no
-
-HARDWARE_NEXBOX_A95X = nexbox-a95x
-### |---HW-spec-handy-ruler-----------------------|
-NEXBOX_A95X_SPEC = NEXBOX A95X S905 \(Linux, GNU Libc based\)
-NEXBOX_A95X_USE_BUILT_GCC_LIBS = yes
-NEXBOX_A95X_ENABLE_STATIC = no
-
-HARDWARE_ODROID_C2 = odroid-c2
-### |---HW-spec-handy-ruler-----------------------|
-ODROID_C2_SPEC = ODROID C2 S905 \(Linux, GNU Libc based\)
-ODROID_C2_USE_BUILT_GCC_LIBS = yes
-ODROID_C2_ENABLE_STATIC = no
-
-####### Amlogic S905X meson-gxl p212:
-HARDWARE_P212 = p212
-### |---HW-spec-handy-ruler-----------------------|
-P212_SPEC = Amlogic P212 S905X \(Linux, GNU Libc based\)
-P212_USE_BUILT_GCC_LIBS = yes
-P212_ENABLE_STATIC = no
-
-HARDWARE_KHADAS_VIM = khadas-vim
-### |---HW-spec-handy-ruler-----------------------|
-KHADAS_VIM_SPEC = Khadas Vim S905X \(Linux, GNU Libc based\)
-KHADAS_VIM_USE_BUILT_GCC_LIBS = yes
-KHADAS_VIM_ENABLE_STATIC = no
-
-####### Amlogic S912 meson-gxm q201:
-HARDWARE_Q201 = q201
-### |---HW-spec-handy-ruler-----------------------|
-Q201_SPEC = Amlogic Q201 S912 \(Linux, GNU Libc based\)
-Q201_USE_BUILT_GCC_LIBS = yes
-Q201_ENABLE_STATIC = no
-
-HARDWARE_ENYBOX_X2 = enybox-x2
-### |---HW-spec-handy-ruler-----------------------|
-ENYBOX_X2_SPEC = Enybox X2 S912 \(Linux, GNU Libc based\)
-ENYBOX_X2_USE_BUILT_GCC_LIBS = yes
-ENYBOX_X2_ENABLE_STATIC = no
-
-HARDWARE_KHADAS_VIM2 = khadas-vim2
-### |---HW-spec-handy-ruler-----------------------|
-KHADAS_VIM2_SPEC = Khadas Vim2 S912 \(Linux, GNU Libc based\)
-KHADAS_VIM2_USE_BUILT_GCC_LIBS = yes
-KHADAS_VIM2_ENABLE_STATIC = no
-
-####### Amlogic A311D:
-HARDWARE_KHADAS_VIM3 = khadas-vim3
-### |---HW-spec-handy-ruler-----------------------|
-KHADAS_VIM3_SPEC = Khadas Vim3 A311D \(Linux, GNU Libc based\)
-KHADAS_VIM3_USE_BUILT_GCC_LIBS = yes
-KHADAS_VIM3_ENABLE_STATIC = no
-
-
-####### OpenPOWER (POWER8) devices:
-####### --------------------------
-
-####### IBM Power S824L Server (Most Significant Bit/Byte) [https://www-03.ibm.com/systems/power/hardware/s824l]:
-HARDWARE_S824L = s824l
-### |---HW-spec-handy-ruler-----------------------|
-S824L_SPEC = IBM Power S824L \(Linux, GNU Libc based\)
-S824L_USE_BUILT_GCC_LIBS = yes
-S824L_ENABLE_STATIC = no
-
-####### IBM Power S824L Server (Least Significant Bit/Byte):
-HARDWARE_S824L_LSB = s824l-lsb
-### |---HW-spec-handy-ruler-----------------------|
-S824L_LSB_SPEC = IBM Power S824L LSB \(Linux, GNU Libc based\)
-S824L_LSB_USE_BUILT_GCC_LIBS = yes
-S824L_LSB_ENABLE_STATIC = no
-
-####### VESNIN Server (Most Significant Bit/Byte) [http://yadro.com/products/vesnin]:
-HARDWARE_VESNIN = vesnin
-### |---HW-spec-handy-ruler-----------------------|
-VESNIN_SPEC = Vesnin Server \(Linux, GNU Libc based\)
-VESNIN_USE_BUILT_GCC_LIBS = yes
-VESNIN_ENABLE_STATIC = no
-
-####### VESNIN Server (Least Significant Bit/Byte):
-HARDWARE_VESNIN_LSB = vesnin-lsb
-### |---HW-spec-handy-ruler-----------------------|
-VESNIN_LSB_SPEC = Vesnin Server LSB \(Linux, GNU Libc based\)
-VESNIN_LSB_USE_BUILT_GCC_LIBS = yes
-VESNIN_LSB_ENABLE_STATIC = no
-
-
-####### RAPTOR devices (POWER9) [https://www.raptorcs.com]:
-####### --------------------------------------------------
-
-####### Talos II Secure Workstation [https://www.raptorcs.com/content/TL2WK2/intro.html]:
-HARDWARE_TL2WK2 = tl2wk2
-### |---HW-spec-handy-ruler-----------------------|
-TL2WK2_SPEC = Talos II PC \(Linux, GNU Libc based\)
-TL2WK2_USE_BUILT_GCC_LIBS = yes
-TL2WK2_ENABLE_STATIC = no
-
-####### Talos II Secure Workstation (Least Significant Bit/Byte):
-HARDWARE_TL2WK2_LSB = tl2wk2-lsb
-### |---HW-spec-handy-ruler-----------------------|
-TL2WK2_LSB_SPEC = Talos II PC LSB \(Linux, GNU Libc based\)
-TL2WK2_LSB_USE_BUILT_GCC_LIBS = yes
-TL2WK2_LSB_ENABLE_STATIC = no
-
-####### Talos II Rack Mount Development Platform [https://www.raptorcs.com/content/TL2SV2/intro.html]:
-HARDWARE_TL2SV2 = tl2sv2
-### |---HW-spec-handy-ruler-----------------------|
-TL2SV2_SPEC = Talos II Server \(Linux, GNU Libc based\)
-TL2SV2_USE_BUILT_GCC_LIBS = yes
-TL2SV2_ENABLE_STATIC = no
-
-####### Talos II Rack Mount Development Platform (Least Significant Bit/Byte):
-HARDWARE_TL2SV2_LSB = tl2sv2-lsb
-### |---HW-spec-handy-ruler-----------------------|
-TL2SV2_LSB_SPEC = Talos II Server LSB \(Linux, GNU Libc based\)
-TL2SV2_LSB_USE_BUILT_GCC_LIBS = yes
-TL2SV2_LSB_ENABLE_STATIC = no
-
-
-####### RISC-V devices:
-####### --------------------------------------------------
-
-####### SiFive SBC HiFive Unmatched [https://www.sifive.com/boards/hifive-unmatched]:
-HARDWARE_SIFIVE_U740 = sifive-u740
-### |---HW-spec-handy-ruler-----------------------|
-SIFIVE_U740_SPEC = SiFive U740 SBC \(Linux, GNU Libc based\)
-SIFIVE_U740_USE_BUILT_GCC_LIBS = yes
-SIFIVE_U740_ENABLE_STATIC = no
-
-####### VisionFive 2 SBC StarFive [https://doc-en.rvspace.org/Doc_Center/visionfive_2.html]:
-HARDWARE_VISIONFIVE2 = visionfive2
-### |---HW-spec-handy-ruler-----------------------|
-VISIONFIVE2_SPEC = VisionFive2 SBC \(Linux, GNU Libc based\)
-VISIONFIVE2_USE_BUILT_GCC_LIBS = yes
-VISIONFIVE2_ENABLE_STATIC = no
-
-
-
-HW_SPEC = $(shell echo $($(shell echo $(HARDWARE) | tr '[a-z-]' '[A-Z_]')_SPEC) | sed "s, (.*),,")
-__USE_BUILT_GCC_LIBS__ = $(strip $(shell echo $($(shell echo $(HARDWARE) | tr '[a-z-]' '[A-Z_]')_USE_BUILT_GCC_LIBS)))
-__ENABLE_STATIC__ = $(strip $(shell echo $($(shell echo $(HARDWARE) | tr '[a-z-]' '[A-Z_]')_ENABLE_STATIC)))
-
-
-#######
-####### Hardware IDs:
-#######
- INTEL_PC32_ID_STD = 0001
- INTEL_PC64_ID_STD = 0002
- INTEL_PC32M_ID_STD = 0004
- INTEL_PC64M_ID_STD = 0008
-
- EBOX_3350DX2_ID_STD = 0010
- EBOX_3350DX2M_ID_STD = 0011
-
- CB1N_ID_STD = 0100
- CB1X_ID_STD = 0101
- CB2N_ID_STD = 0200
- CB2X_ID_STD = 0201
- CB3N_ID_STD = 0300
- CB3X_ID_STD = 0301
-
- AT91S_ID_STD = 0400
-
- NIT6Q_ID_STD = 0601
- OKMX6DL_C_ID_STD = 0602
- OKMX6Q_C_ID_STD = 0603
- SK6ULL_ID_STD = 0604
-
- BONE_BLACK_ID_STD = 0700
-
- OMAP5UEVM_ID_STD = 0801
- DRA7XXEVM_ID_STD = 0802
-
- CI20_ID_STD = 0901
- BAIKAL_T1_ID_STD = 0A01
-
- BAIKAL_M1_ID_STD = 0B01
-
- FFRK3288_ID_STD = 0C01
- POIN2_ID_STD = 0C02
- RK3328_CC_ID_STD = 0D01
- KHADAS_EDGE_ID_STD = 0E01
- LEEZ_P710_ID_STD = 0E02
- ORANGE_PP2E_ID_STD = 0F01
- ORANGE_PI5_ID_STD = 0F02
- ORANGE_PI5B_ID_STD = 0F03
- ORANGE_PI5P_ID_STD = 0F04
- ROCK_5B_ID_STD = 0F05
- NANOPI_NEO_ID_STD = 0D02
- ORANGE_PP_ID_STD = 1001
- ORANGE_PL2_ID_STD = 1002
- WECHIP_TX6_ID_STD = 1003
- REPKA_PI3_ID_STD = 1004
- M201_ID_STD = 1101
- MXV_ID_STD = 1102
- P201_ID_STD = 1201
- NEXBOX_A95X_ID_STD = 1202
- ODROID_C2_ID_STD = 1204
- P212_ID_STD = 1401
- KHADAS_VIM_ID_STD = 1402
- Q201_ID_STD = 1501
- ENYBOX_X2_ID_STD = 1502
- KHADAS_VIM2_ID_STD = 1503
-
- KHADAS_VIM3_ID_STD = 1600
-
- S824L_ID_STD = 1700
- S824L_LSB_ID_STD = 1701
- VESNIN_ID_STD = 1800
- VESNIN_LSB_ID_STD = 1801
- TL2WK2_ID_STD = 1900
- TL2WK2_LSB_ID_STD = 1901
- TL2SV2_ID_STD = 1A00
- TL2SV2_LSB_ID_STD = 1A01
-
- SIFIVE_U740_ID_STD = 1B01
- VISIONFIVE2_ID_STD = 1B02
-
-
-
-#######
-####### Available Toolchains:
-#######
-
-#
-# NOTE:
-# ====
-# Toolchain names defined by 'TOOLCHAIN_...' variables.
-# Configuration variable names such as ..._ARCH, ..._DIR, ..._PATH should have prefix
-# which is equal to $(TOOLCHAIN_...) in upper case letters and symbol '-' should be replaced with '_'.
-# In other words the PREFIX is equal to PREFIX = $(shell echo $(TOOLCHAIN_...) | tr '[a-z-]' '[A-Z_]').
-#
-
-# if variable ..._DEST_SYSROOT equal to "yes" then the switch --sysroot=$(TARGET_DEST_DIR)
-# is used to say that cross compiler have to usre $(TARGET_DEST_DIR) as system root instead
-# of compiler default sysroot $(TOOLCHAIN_PATH)/$(TARGET)/sys-root
-# The '...' as usually shoul be equal to suffix of some 'TOOLCHAIN_...' name.
-
-
-
-# NOARCH
-TOOLCHAIN_NOARCH = noarch
-
-NOARCH_ARCH = noarch
-NOARCH_VERSION =
-NOARCH_DIR =
-NOARCH_PATH =
-NOARCH_TARBALL =
-
-NOARCH_HARDWARE_VARIANTS := $(HARDWARE_NOARCH)
-
-
-# BUILD machine
-TOOLCHAIN_BUILD_MACHINE = build-machine
-
-BUILD_MACHINE_ARCH = $(shell $(BUILDSYSTEM)/canonical-build)
-BUILD_MACHINE_VERSION =
-BUILD_MACHINE_DIR =
-BUILD_MACHINE_PATH = /usr
-BUILD_MACHINE_TARBALL =
-
-BUILD_MACHINE_HARDWARE_VARIANTS := $(HARDWARE_BUILD)
-
-
-
-# ======= I686-GLIBC =========================================================
-
-TOOLCHAIN_I686_GLIBC = i686-glibc
-
-I686_GLIBC_ARCH = i686-radix-linux-gnu
-I686_GLIBC_VERSION = 1.10.0
-I686_GLIBC_DIR = i686-PC-linux-glibc
-I686_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(I686_GLIBC_DIR)
-I686_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(I686_GLIBC_VERSION)/$(I686_GLIBC_DIR)-$(I686_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-I686_GLIBC_ARCH_DEFS = -D__I686_GLIBC__=1
-I686_GLIBC_ARCH_FLAGS = -march=i686 -mtune=i686
-
-I686_GLIBC_SYSROOT = sys-root
-I686_GLIBC_DEST_SYSROOT = yes
-
-I686_GLIBC_HAS_PATCHELF = yes
-
-I686_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_INTEL_PC32) $(HARDWARE_INTEL_PC32M)
-
-
-
-# ======= X86_64-GLIBC =======================================================
-
-TOOLCHAIN_X86_64_GLIBC = x86_64-glibc
-
-X86_64_GLIBC_ARCH = x86_64-radix-linux-gnu
-X86_64_GLIBC_VERSION = 1.10.0
-X86_64_GLIBC_DIR = x86_64-PC-linux-glibc
-X86_64_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(X86_64_GLIBC_DIR)
-X86_64_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(X86_64_GLIBC_VERSION)/$(X86_64_GLIBC_DIR)-$(X86_64_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-X86_64_GLIBC_ARCH_DEFS = -D__X86_64_GLIBC__=1
-X86_64_GLIBC_ARCH_FLAGS = -march=x86-64
-
-X86_64_GLIBC_SYSROOT = sys-root
-X86_64_GLIBC_DEST_SYSROOT = yes
-
-X86_64_GLIBC_HAS_PATCHELF = yes
-
-X86_64_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_INTEL_PC64) $(HARDWARE_INTEL_PC64M)
-
-
-
-# ======= I586-GLIBC =========================================================
-
-TOOLCHAIN_I586_GLIBC = i586-glibc
-
-I586_GLIBC_ARCH = i586-radix-linux-gnu
-I586_GLIBC_VERSION = 1.10.0
-I586_GLIBC_DIR = i586-PC-linux-glibc
-I586_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(I586_GLIBC_DIR)
-I586_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(I586_GLIBC_VERSION)/$(I586_GLIBC_DIR)-$(I586_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-I586_GLIBC_ARCH_DEFS = -D__I586_GLIBC__=1
-I586_GLIBC_ARCH_FLAGS = -march=i586 -mtune=i586
-
-I586_GLIBC_SYSROOT = sys-root
-I586_GLIBC_DEST_SYSROOT = yes
-
-I586_GLIBC_HAS_PATCHELF = yes
-
-I586_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_EBOX_3350DX2) $(HARDWARE_EBOX_3350DX2M)
-
-
-
-# ======= A1X-NEWLIB =========================================================
-
-TOOLCHAIN_A1X_NEWLIB = a1x-newlib
-
-A1X_NEWLIB_ARCH = arm-none-eabi
-A1X_NEWLIB_VERSION = 1.10.0
-A1X_NEWLIB_DIR = arm-NONE-eabi-newlib
-A1X_NEWLIB_PATH = $(TOOLCHAINS_BASE_PATH)/$(A1X_NEWLIB_DIR)
-A1X_NEWLIB_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(A1X_NEWLIB_VERSION)/$(A1X_NEWLIB_DIR)-$(A1X_NEWLIB_VERSION).$(TARBALL_SUFFIX)
-
-A1X_NEWLIB_ARCH_DEFS = -D__ALLWINNER_1N__=1
-A1X_NEWLIB_ARCH_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard -mlittle-endian -fomit-frame-pointer
-
-A1X_NEWLIB_HARDWARE_VARIANTS := $(HARDWARE_CB1N)
-
-
-
-# ======= A1X-GLIBC ==========================================================
-
-TOOLCHAIN_A1X_GLIBC = a1x-glibc
-
-A1X_GLIBC_ARCH = arm-a1x-linux-gnueabihf
-A1X_GLIBC_VERSION = 1.10.0
-A1X_GLIBC_DIR = arm-A1X-linux-glibc
-A1X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(A1X_GLIBC_DIR)
-A1X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(A1X_GLIBC_VERSION)/$(A1X_GLIBC_DIR)-$(A1X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-A1X_GLIBC_ARCH_DEFS = -D__ALLWINNER_1X_GLIBC__=1
-A1X_GLIBC_ARCH_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-A1X_GLIBC_SYSROOT = sys-root
-A1X_GLIBC_DEST_SYSROOT = yes
-
-A1X_GLIBC_HAS_PATCHELF = yes
-
-A1X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_CB1X)
-
-
-
-# ======= A2X-NEWLIB =========================================================
-
-TOOLCHAIN_A2X_NEWLIB = a2x-newlib
-
-A2X_NEWLIB_ARCH = arm-none-eabi
-A2X_NEWLIB_VERSION = 1.10.0
-A2X_NEWLIB_DIR = arm-NONE-eabi-newlib
-A2X_NEWLIB_PATH = $(TOOLCHAINS_BASE_PATH)/$(A2X_NEWLIB_DIR)
-A2X_NEWLIB_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(A2X_NEWLIB_VERSION)/$(A2X_NEWLIB_DIR)-$(A2X_NEWLIB_VERSION).$(TARBALL_SUFFIX)
-
-A2X_NEWLIB_ARCH_DEFS = -D__ALLWINNER_2N__=1
-A2X_NEWLIB_ARCH_FLAGS = -march=armv7ve -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mlittle-endian -fomit-frame-pointer
-
-A2X_NEWLIB_HARDWARE_VARIANTS := $(HARDWARE_CB2N) $(HARDWARE_CB3N)
-
-
-
-# ======= A2X-GLIBC =========================================================
-
-TOOLCHAIN_A2X_GLIBC = a2x-glibc
-
-A2X_GLIBC_ARCH = arm-a2x-linux-gnueabihf
-A2X_GLIBC_VERSION = 1.10.0
-A2X_GLIBC_DIR = arm-A2X-linux-glibc
-A2X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(A2X_GLIBC_DIR)
-A2X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(A2X_GLIBC_VERSION)/$(A2X_GLIBC_DIR)-$(A2X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-A2X_GLIBC_ARCH_DEFS = -D__ALLWINNER_2X_GLIBC__=1
-A2X_GLIBC_ARCH_FLAGS = -march=armv7ve -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-A2X_GLIBC_SYSROOT = sys-root
-A2X_GLIBC_DEST_SYSROOT = yes
-
-A2X_GLIBC_HAS_PATCHELF = yes
-
-A2X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_CB2X) $(HARDWARE_CB3X)
-
-
-
-# ======= H3-GLIBC =========================================================
-
-TOOLCHAIN_H3_GLIBC = h3-glibc
-
-H3_GLIBC_ARCH = arm-h3-linux-gnueabihf
-H3_GLIBC_VERSION = 1.10.0
-H3_GLIBC_DIR = arm-H3-linux-glibc
-H3_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(H3_GLIBC_DIR)
-H3_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(H3_GLIBC_VERSION)/$(H3_GLIBC_DIR)-$(H3_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-H3_GLIBC_ARCH_DEFS = -D__ALLWINNER_H3_GLIBC__=1
-H3_GLIBC_ARCH_FLAGS = -march=armv7ve -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-H3_GLIBC_SYSROOT = sys-root
-H3_GLIBC_DEST_SYSROOT = yes
-
-H3_GLIBC_HAS_PATCHELF = yes
-
-H3_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_ORANGE_PP2E) $(HARDWARE_NANOPI_NEO)
-
-
-
-# ======= H5-GLIBC ======================================================
-
-TOOLCHAIN_H5_GLIBC = h5-glibc
-
-H5_GLIBC_ARCH = aarch64-h5-linux-gnu
-H5_GLIBC_VERSION = 1.10.0
-H5_GLIBC_DIR = aarch64-H5-linux-glibc
-H5_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(H5_GLIBC_DIR)
-H5_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(H5_GLIBC_VERSION)/$(H5_GLIBC_DIR)-$(H5_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-H5_GLIBC_ARCH_DEFS = -D__ALLWINNER_H5_GLIBC__=1
-H5_GLIBC_ARCH_FLAGS = -march=armv8-a -mcpu=cortex-a53 -mabi=lp64 -fomit-frame-pointer
-
-H5_GLIBC_SYSROOT = sys-root
-H5_GLIBC_DEST_SYSROOT = yes
-
-H5_GLIBC_HAS_PATCHELF = yes
-
-H5_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_ORANGE_PP) $(HARDWARE_ORANGE_PL2) $(HARDWARE_WECHIP_TX6) $(HARDWARE_REPKA_PI3)
-
-
-
-# ======= RK328X-GLIBC ======================================================
-
-TOOLCHAIN_RK328X_GLIBC = rk328x-glibc
-
-RK328X_GLIBC_ARCH = arm-rk328x-linux-gnueabihf
-RK328X_GLIBC_VERSION = 1.10.0
-RK328X_GLIBC_DIR = arm-RK328X-linux-glibc
-RK328X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(RK328X_GLIBC_DIR)
-RK328X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(RK328X_GLIBC_VERSION)/$(RK328X_GLIBC_DIR)-$(RK328X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-RK328X_GLIBC_ARCH_DEFS = -D__RK328X_GLIBC__=1
-RK328X_GLIBC_ARCH_FLAGS = -march=armv7ve -mtune=cortex-a17 -mfpu=neon-vfpv4 -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-RK328X_GLIBC_SYSROOT = sys-root
-RK328X_GLIBC_DEST_SYSROOT = yes
-
-RK328X_GLIBC_HAS_PATCHELF = yes
-
-RK328X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_FFRK3288) $(HARDWARE_POIN2)
-
-
-
-# ======= RK33XX-GLIBC ======================================================
-
-TOOLCHAIN_RK33XX_GLIBC = rk33xx-glibc
-
-RK33XX_GLIBC_ARCH = aarch64-rk33xx-linux-gnu
-RK33XX_GLIBC_VERSION = 1.10.0
-RK33XX_GLIBC_DIR = aarch64-RK33XX-linux-glibc
-RK33XX_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(RK33XX_GLIBC_DIR)
-RK33XX_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(RK33XX_GLIBC_VERSION)/$(RK33XX_GLIBC_DIR)-$(RK33XX_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-RK33XX_GLIBC_ARCH_DEFS = -D__RK33XX_GLIBC__=1
-RK33XX_GLIBC_ARCH_FLAGS = -march=armv8-a -mcpu=cortex-a53 -mabi=lp64 -fomit-frame-pointer
-
-RK33XX_GLIBC_SYSROOT = sys-root
-RK33XX_GLIBC_DEST_SYSROOT = yes
-
-RK33XX_GLIBC_HAS_PATCHELF = yes
-
-RK33XX_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_RK3328_CC)
-
-
-
-# ======= RK339X-GLIBC ======================================================
-
-TOOLCHAIN_RK339X_GLIBC = rk339x-glibc
-
-RK339X_GLIBC_ARCH = aarch64-rk339x-linux-gnu
-RK339X_GLIBC_VERSION = 1.10.0
-RK339X_GLIBC_DIR = aarch64-RK339X-linux-glibc
-RK339X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(RK339X_GLIBC_DIR)
-RK339X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(RK339X_GLIBC_VERSION)/$(RK339X_GLIBC_DIR)-$(RK339X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-RK339X_GLIBC_ARCH_DEFS = -D__RK339X_GLIBC__=1
-RK339X_GLIBC_ARCH_FLAGS = -march=armv8-a -mcpu=cortex-a72.cortex-a53 -mabi=lp64 -fomit-frame-pointer
-
-RK339X_GLIBC_SYSROOT = sys-root
-RK339X_GLIBC_DEST_SYSROOT = yes
-
-RK339X_GLIBC_HAS_PATCHELF = yes
-
-RK339X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_KHADAS_EDGE) $(HARDWARE_LEEZ_P710)
-
-
-
-# ======= RK358X-GLIBC ======================================================
-
-TOOLCHAIN_RK358X_GLIBC = rk358x-glibc
-
-RK358X_GLIBC_ARCH = aarch64-rk358x-linux-gnu
-RK358X_GLIBC_VERSION = 1.10.0
-RK358X_GLIBC_DIR = aarch64-RK358X-linux-glibc
-RK358X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(RK358X_GLIBC_DIR)
-RK358X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(RK358X_GLIBC_VERSION)/$(RK358X_GLIBC_DIR)-$(RK358X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-RK358X_GLIBC_ARCH_DEFS = -D__RK358X_GLIBC__=1
-RK358X_GLIBC_ARCH_FLAGS = -march=armv8.2-a -mtune=cortex-a76.cortex-a55 -mabi=lp64 -fomit-frame-pointer
-
-RK358X_GLIBC_SYSROOT = sys-root
-RK358X_GLIBC_DEST_SYSROOT = yes
-
-RK358X_GLIBC_HAS_PATCHELF = yes
-
-RK358X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_ORANGE_PI5) $(HARDWARE_ORANGE_PI5B) $(HARDWARE_ORANGE_PI5P) $(HARDWARE_ROCK_5B)
-
-
-
-# ======= S8XX-GLIBC =========================================================
-
-TOOLCHAIN_S8XX_GLIBC = s8xx-glibc
-
-S8XX_GLIBC_ARCH = arm-s8xx-linux-gnueabihf
-S8XX_GLIBC_VERSION = 1.10.0
-S8XX_GLIBC_DIR = arm-S8XX-linux-glibc
-S8XX_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(S8XX_GLIBC_DIR)
-S8XX_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(S8XX_GLIBC_VERSION)/$(S8XX_GLIBC_DIR)-$(S8XX_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-S8XX_GLIBC_ARCH_DEFS = -D__AMLOGIC_S8XX_GLIBC__=1
-S8XX_GLIBC_ARCH_FLAGS = -march=armv7-a -mtune=cortex-a5 -mfpu=neon -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-S8XX_GLIBC_SYSROOT = sys-root
-S8XX_GLIBC_DEST_SYSROOT = yes
-
-S8XX_GLIBC_HAS_PATCHELF = yes
-
-S8XX_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_M201) $(HARDWARE_MXV)
-
-
-
-# ======= S9XX-GLIBC =========================================================
-
-TOOLCHAIN_S9XX_GLIBC = s9xx-glibc
-
-S9XX_GLIBC_ARCH = aarch64-s9xx-linux-gnu
-S9XX_GLIBC_VERSION = 1.10.0
-S9XX_GLIBC_DIR = aarch64-S9XX-linux-glibc
-S9XX_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(S9XX_GLIBC_DIR)
-S9XX_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(S9XX_GLIBC_VERSION)/$(S9XX_GLIBC_DIR)-$(S9XX_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-S9XX_GLIBC_ARCH_DEFS = -D__AMLOGIC_S9XX_GLIBC__=1
-S9XX_GLIBC_ARCH_FLAGS = -march=armv8-a -mcpu=cortex-a53 -mabi=lp64 -fomit-frame-pointer
-
-S9XX_GLIBC_SYSROOT = sys-root
-S9XX_GLIBC_DEST_SYSROOT = yes
-
-S9XX_GLIBC_HAS_PATCHELF = yes
-
-S9XX_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_P201) $(HARDWARE_NEXBOX_A95X) \
- $(HARDWARE_ODROID_C2) \
- $(HARDWARE_P212) $(HARDWARE_KHADAS_VIM) \
- $(HARDWARE_Q201) $(HARDWARE_ENYBOX_X2) \
- $(HARDWARE_KHADAS_VIM2)
-
-
-# ======= A311X-GLIBC ========================================================
-
-TOOLCHAIN_A311X_GLIBC = a311x-glibc
-
-A311X_GLIBC_ARCH = aarch64-a311x-linux-gnu
-A311X_GLIBC_VERSION = 1.10.0
-A311X_GLIBC_DIR = aarch64-A311X-linux-glibc
-A311X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(A311X_GLIBC_DIR)
-A311X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(A311X_GLIBC_VERSION)/$(A311X_GLIBC_DIR)-$(A311X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-A311X_GLIBC_ARCH_DEFS = -D__AMLOGIC_A311X_GLIBC__=1
-A311X_GLIBC_ARCH_FLAGS = -march=armv8-a -mcpu=cortex-a73.cortex-a53 -mabi=lp64 -fomit-frame-pointer
-
-A311X_GLIBC_SYSROOT = sys-root
-A311X_GLIBC_DEST_SYSROOT = yes
-
-A311X_GLIBC_HAS_PATCHELF = yes
-
-A311X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_KHADAS_VIM3)
-
-
-# ======= AT91SAM7S-NEWLIB ===================================================
-
-TOOLCHAIN_AT91SAM7S_NEWLIB = at91sam7s-newlib
-
-AT91SAM7S_NEWLIB_ARCH = arm-at91sam7s-eabi
-AT91SAM7S_NEWLIB_VERSION = 1.10.0
-AT91SAM7S_NEWLIB_DIR = arm-AT91SAM7S-eabi-newlib
-AT91SAM7S_NEWLIB_PATH = $(TOOLCHAINS_BASE_PATH)/$(AT91SAM7S_NEWLIB_DIR)
-AT91SAM7S_NEWLIB_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(AT91SAM7S_NEWLIB_VERSION)/$(AT91SAM7S_NEWLIB_DIR)-$(AT91SAM7S_NEWLIB_VERSION).$(TARBALL_SUFFIX)
-
-AT91SAM7S_NEWLIB_ARCH_DEFS = -D__AT91SAM7S__=1
-AT91SAM7S_NEWLIB_ARCH_FLAGS = -mcpu=arm7tdmi -mbig-endian -fomit-frame-pointer
-
-AT91SAM7S_NEWLIB_HARDWARE_VARIANTS := $(HARDWARE_AT91S)
-
-
-
-# ======= IMX6-GLIBC ======================================================
-
-TOOLCHAIN_IMX6_GLIBC = imx6-glibc
-
-IMX6_GLIBC_ARCH = arm-imx6-linux-gnueabihf
-IMX6_GLIBC_VERSION = 1.10.0
-IMX6_GLIBC_DIR = arm-IMX6-linux-glibc
-IMX6_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(IMX6_GLIBC_DIR)
-IMX6_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(IMX6_GLIBC_VERSION)/$(IMX6_GLIBC_DIR)-$(IMX6_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-IMX6_GLIBC_ARCH_DEFS = -D__IMX6_GLIBC__=1
-IMX6_GLIBC_ARCH_FLAGS = -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-IMX6_GLIBC_SYSROOT = sys-root
-IMX6_GLIBC_DEST_SYSROOT = yes
-
-IMX6_GLIBC_HAS_PATCHELF = yes
-
-IMX6_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_NIT6Q) $(HARDWARE_OKMX6DL_C) $(HARDWARE_OKMX6Q_C)
-
-
-
-# ======= IMX6ULL-GLIBC ======================================================
-
-TOOLCHAIN_IMX6ULL_GLIBC = imx6ull-glibc
-
-IMX6ULL_GLIBC_ARCH = arm-imx6ull-linux-gnueabihf
-IMX6ULL_GLIBC_VERSION = 1.10.0
-IMX6ULL_GLIBC_DIR = arm-IMX6ULL-linux-glibc
-IMX6ULL_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(IMX6ULL_GLIBC_DIR)
-IMX6ULL_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(IMX6ULL_GLIBC_VERSION)/$(IMX6ULL_GLIBC_DIR)-$(IMX6ULL_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-IMX6ULL_GLIBC_ARCH_DEFS = -D__IMX6ULL_GLIBC__=1
-IMX6ULL_GLIBC_ARCH_FLAGS = -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-IMX6ULL_GLIBC_SYSROOT = sys-root
-IMX6ULL_GLIBC_DEST_SYSROOT = yes
-
-IMX6ULL_GLIBC_HAS_PATCHELF = yes
-
-IMX6ULL_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_SK6ULL)
-
-
-
-# ======= AM335X-GLIBC =======================================================
-
-TOOLCHAIN_AM335X_GLIBC = am335x-glibc
-
-AM335X_GLIBC_ARCH = arm-am335x-linux-gnueabihf
-AM335X_GLIBC_VERSION = 1.10.0
-AM335X_GLIBC_DIR = arm-AM335X-linux-glibc
-AM335X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(AM335X_GLIBC_DIR)
-AM335X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(AM335X_GLIBC_VERSION)/$(AM335X_GLIBC_DIR)-$(AM335X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-AM335X_GLIBC_ARCH_DEFS = -D__AM335X_GLIBC__=1
-AM335X_GLIBC_ARCH_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-AM335X_GLIBC_SYSROOT = sys-root
-AM335X_GLIBC_DEST_SYSROOT = yes
-
-AM335X_GLIBC_HAS_PATCHELF = yes
-
-AM335X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_BONE_BLACK)
-
-
-
-# ======= OMAP543X-GLIBC =====================================================
-
-TOOLCHAIN_OMAP543X_GLIBC = omap543x-glibc
-
-OMAP543X_GLIBC_ARCH = arm-omap543x-linux-gnueabihf
-OMAP543X_GLIBC_VERSION = 1.10.0
-OMAP543X_GLIBC_DIR = arm-OMAP543X-linux-glibc
-OMAP543X_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(OMAP543X_GLIBC_DIR)
-OMAP543X_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(OMAP543X_GLIBC_VERSION)/$(OMAP543X_GLIBC_DIR)-$(OMAP543X_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-OMAP543X_GLIBC_ARCH_DEFS = -D__OMAP543X_GLIBC__=1
-OMAP543X_GLIBC_ARCH_FLAGS = -march=armv7ve -mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard -mabi=aapcs-linux -fomit-frame-pointer
-
-OMAP543X_GLIBC_SYSROOT = sys-root
-OMAP543X_GLIBC_DEST_SYSROOT = yes
-
-OMAP543X_GLIBC_HAS_PATCHELF = yes
-
-OMAP543X_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_OMAP5UEVM) $(HARDWARE_DRA7XXEVM)
-
-
-
-# ======= JZ47XX-GLIBC =======================================================
-
-TOOLCHAIN_JZ47XX_GLIBC = jz47xx-glibc
-
-JZ47XX_GLIBC_ARCH = mipsel-jz47xx-linux-gnu
-JZ47XX_GLIBC_VERSION = 1.10.0
-JZ47XX_GLIBC_DIR = mipsel-JZ47XX-linux-glibc
-JZ47XX_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(JZ47XX_GLIBC_DIR)
-JZ47XX_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(JZ47XX_GLIBC_VERSION)/$(JZ47XX_GLIBC_DIR)-$(JZ47XX_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-JZ47XX_GLIBC_ARCH_DEFS = -D__JZ47XX_GLIBC__=1
-JZ47XX_GLIBC_ARCH_FLAGS = -march=mips32r2 -mhard-float
-JZ47XX_GLIBC_OPTIMIZATION = -O2
-
-JZ47XX_GLIBC_SYSROOT = sys-root
-JZ47XX_GLIBC_DEST_SYSROOT = yes
-
-JZ47XX_GLIBC_HAS_PATCHELF = yes
-
-JZ47XX_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_CI20)
-
-
-
-# ======= P5600-GLIBC =======================================================
-
-TOOLCHAIN_P5600_GLIBC = p5600-glibc
-
-P5600_GLIBC_ARCH = mipsel-p5600-linux-gnu
-P5600_GLIBC_VERSION = 1.10.0
-P5600_GLIBC_DIR = mipsel-P5600-linux-glibc
-P5600_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(P5600_GLIBC_DIR)
-P5600_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(P5600_GLIBC_VERSION)/$(P5600_GLIBC_DIR)-$(P5600_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-P5600_GLIBC_ARCH_DEFS = -D__P5600_GLIBC__=1
-P5600_GLIBC_ARCH_FLAGS = -march=mips32r5 -mtune=p5600 -mhard-float
-P5600_GLIBC_OPTIMIZATION = -O2
-
-P5600_GLIBC_SYSROOT = sys-root
-P5600_GLIBC_DEST_SYSROOT = yes
-
-P5600_GLIBC_HAS_PATCHELF = yes
-
-P5600_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_BAIKAL_T1)
-
-
-# ======= M1000-GLIBC =======================================================
-
-TOOLCHAIN_M1000_GLIBC = m1000-glibc
-
-M1000_GLIBC_ARCH = aarch64-m1000-linux-gnu
-M1000_GLIBC_VERSION = 1.10.0
-M1000_GLIBC_DIR = aarch64-M1000-linux-glibc
-M1000_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(M1000_GLIBC_DIR)
-M1000_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(M1000_GLIBC_VERSION)/$(M1000_GLIBC_DIR)-$(M1000_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-M1000_GLIBC_ARCH_DEFS = -D__M1000_GLIBC__=1
-M1000_GLIBC_ARCH_FLAGS = -march=armv8-a -mcpu=cortex-a57 -mabi=lp64 -fomit-frame-pointer
-
-M1000_GLIBC_SYSROOT = sys-root
-M1000_GLIBC_DEST_SYSROOT = yes
-
-M1000_GLIBC_HAS_PATCHELF = yes
-
-M1000_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_BAIKAL_M1)
-
-
-
-# ======= POWER8-GLIBC ======================================================
-
-TOOLCHAIN_POWER8_GLIBC = power8-glibc
-
-POWER8_GLIBC_ARCH = ppc64-power8-linux-gnu
-POWER8_GLIBC_VERSION = 1.10.0
-POWER8_GLIBC_DIR = ppc64-POWER8-linux-glibc
-POWER8_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(POWER8_GLIBC_DIR)
-POWER8_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(POWER8_GLIBC_VERSION)/$(POWER8_GLIBC_DIR)-$(POWER8_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-POWER8_GLIBC_ARCH_DEFS = -D__POWER8_GLIBC__=1
-POWER8_GLIBC_ARCH_FLAGS = -mcpu=power8 -mlong-double-128
-POWER8_GLIBC_OPTIMIZATION = -O3
-
-POWER8_GLIBC_SYSROOT = sys-root
-POWER8_GLIBC_DEST_SYSROOT = yes
-
-POWER8_GLIBC_HAS_PATCHELF = yes
-
-POWER8_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_S824L) $(HARDWARE_VESNIN)
-
-
-# ======= POWER8LE-GLIBC ====================================================
-
-TOOLCHAIN_POWER8LE_GLIBC = power8le-glibc
-
-POWER8LE_GLIBC_ARCH = ppc64le-power8-linux-gnu
-POWER8LE_GLIBC_VERSION = 1.10.0
-POWER8LE_GLIBC_DIR = ppc64le-POWER8-linux-glibc
-POWER8LE_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(POWER8LE_GLIBC_DIR)
-POWER8LE_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(POWER8LE_GLIBC_VERSION)/$(POWER8LE_GLIBC_DIR)-$(POWER8LE_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-POWER8LE_GLIBC_ARCH_DEFS = -D__POWER8LE_GLIBC__=1
-POWER8LE_GLIBC_ARCH_FLAGS = -mcpu=power8 -mlong-double-128
-POWER8LE_GLIBC_OPTIMIZATION = -O3
-
-POWER8LE_GLIBC_SYSROOT = sys-root
-POWER8LE_GLIBC_DEST_SYSROOT = yes
-
-POWER8LE_GLIBC_HAS_PATCHELF = yes
-
-POWER8LE_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_S824L_LSB) $(HARDWARE_VESNIN_LSB)
-
-
-
-# ======= POWER9-GLIBC ======================================================
-
-TOOLCHAIN_POWER9_GLIBC = power9-glibc
-
-POWER9_GLIBC_ARCH = ppc64-power9-linux-gnu
-POWER9_GLIBC_VERSION = 1.10.0
-POWER9_GLIBC_DIR = ppc64-POWER9-linux-glibc
-POWER9_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(POWER9_GLIBC_DIR)
-POWER9_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(POWER9_GLIBC_VERSION)/$(POWER9_GLIBC_DIR)-$(POWER9_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-POWER9_GLIBC_ARCH_DEFS = -D__POWER9_GLIBC__=1
-POWER9_GLIBC_ARCH_FLAGS = -mcpu=power9 -mlong-double-128
-POWER9_GLIBC_OPTIMIZATION = -O3
-
-POWER9_GLIBC_SYSROOT = sys-root
-POWER9_GLIBC_DEST_SYSROOT = yes
-
-POWER9_GLIBC_HAS_PATCHELF = yes
-
-POWER9_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_TL2WK2) $(HARDWARE_TL2SV2)
-
-
-# ======= POWER9LE-GLIBC ====================================================
-
-TOOLCHAIN_POWER9LE_GLIBC = power9le-glibc
-
-POWER9LE_GLIBC_ARCH = ppc64le-power9-linux-gnu
-POWER9LE_GLIBC_VERSION = 1.10.0
-POWER9LE_GLIBC_DIR = ppc64le-POWER9-linux-glibc
-POWER9LE_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(POWER9LE_GLIBC_DIR)
-POWER9LE_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(POWER9LE_GLIBC_VERSION)/$(POWER9LE_GLIBC_DIR)-$(POWER9LE_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-POWER9LE_GLIBC_ARCH_DEFS = -D__POWER9LE_GLIBC__=1
-POWER9LE_GLIBC_ARCH_FLAGS = -mcpu=power9 -mlong-double-128
-POWER9LE_GLIBC_OPTIMIZATION = -O3
-
-POWER9LE_GLIBC_SYSROOT = sys-root
-POWER9LE_GLIBC_DEST_SYSROOT = yes
-
-POWER9LE_GLIBC_HAS_PATCHELF = yes
-
-POWER9LE_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_TL2WK2_LSB) $(HARDWARE_TL2SV2_LSB)
-
-
-
-# ======= RISCV64-GLIBC =====================================================
-
-TOOLCHAIN_RISCV64_GLIBC = riscv64-glibc
-
-RISCV64_GLIBC_ARCH = riscv64-rv64gc-linux-gnu
-RISCV64_GLIBC_VERSION = 1.10.0
-RISCV64_GLIBC_DIR = riscv64-RV64GC-linux-glibc
-RISCV64_GLIBC_PATH = $(TOOLCHAINS_BASE_PATH)/$(RISCV64_GLIBC_DIR)
-RISCV64_GLIBC_TARBALL = $(TOOLCHAINS_FTP_BASE)/$(RISCV64_GLIBC_VERSION)/$(RISCV64_GLIBC_DIR)-$(RISCV64_GLIBC_VERSION).$(TARBALL_SUFFIX)
-
-RISCV64_GLIBC_ARCH_DEFS = -D__RV64GC_GLIBC__=1
-RISCV64_GLIBC_ARCH_FLAGS = -march=rv64gc -mcmodel=medany
-RISCV64_GLIBC_OPTIMIZATION = -O3
-
-RISCV64_GLIBC_SYSROOT = sys-root
-RISCV64_GLIBC_DEST_SYSROOT = yes
-
-RISCV64_GLIBC_HAS_PATCHELF = yes
-
-RISCV64_GLIBC_HARDWARE_VARIANTS := $(HARDWARE_SIFIVE_U740) $(HARDWARE_VISIONFIVE2)
-
-
-
-CONSTANTS_MK=1
-endif
Index: build-system-1.10.x/build_pkg_requires
===================================================================
--- build-system-1.10.x/build_pkg_requires (revision 57)
+++ build-system-1.10.x/build_pkg_requires (nonexistent)
@@ -1,280 +0,0 @@
-#!/bin/env perl
-
-#
-# Generate .REQUIRES file for package.
-#
-# usage:
-# $0 [options] dir dir outfile
-#
-# where: 'dir' - is directory where made required package
-# 'outfile' - output file with following format:
-#
-# _kxLibc=1.0.7
-# pkgtool=0.0.1
-#
-# empty version is allowed:
-#
-# pkg=
-#
-
-my ($toolchain, $hardware, $flavour);
-
-sub read_requires
-{
- my %requires;
- my ( $name, $version, $group );
-
- my ( $file_name, $makefile );
-
- my $ptype = shift;
-
- if( $ptype eq "bin" )
- {
- $name = "BIN_PKG_NAME";
- $version = "BIN_PKG_VERSION";
- $group = "BIN_PKG_GROUP";
- }
- elsif( $ptype eq "dev" )
- {
- $name = "DEV_PKG_NAME";
- $version = "DEV_PKG_VERSION";
- $group = "DEV_PKG_GROUP";
- }
- else
- {
- $name = "PKG_NAME";
- $version = "PKG_VERSION";
- $group = "PKG_GROUP";
- }
-
-
- foreach my $req ( reverse @_ )
- {
- my $d = `echo $req | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
-
- $file_name = "${top_build_dir}/$d/Makefile";
- $makefile = `cat $file_name`;
- if( $makefile =~ m/^ *([_A-Za-z]*[_A-Za-z0-9]*)$name(.+= +)(.+)/gm )
- {
- my ( @p, @n, @v );
- my ( $n, $v, $g );
-
- my $prefix = $1;
-
- my $cdir = "${top_build_dir}/$d";
- my $shell_output = <<`SHELL`;
-cd $cdir
-make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f $file_name print-$prefix$name 2>/dev/null
-exit 0
-SHELL
- while( $shell_output =~ m/^ *$prefix$name(.+= +)(.+)/gm ) { $n = $2; }
-
- $shell_output = <<`SHELL`;
-cd $cdir
-make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f $file_name print-$prefix$version 2>/dev/null
-exit 0
-SHELL
- while( $shell_output =~ m/^ *$prefix$version(.+= +)(.+)/gm ) { $v = $2; }
-
- $shell_output = <<`SHELL`;
-cd $cdir
-make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f $file_name print-$prefix$group 2>/dev/null
-exit 0
-SHELL
- while( $shell_output =~ m/^ *$prefix$group(.+= +)(.+)/gm ) { $g = $2; }
-
- $requires{"$d"} = \@p;
- if( $g ) { @n = split / +/, $g . '/' . $n; }
- else { @n = split / +/, $n; }
- push( @{ $requires{"$d"} }, @n );
- @v = split / +/, $v;
- if( $requires{"$d"} )
- {
- push( @{ $requires{"$d"} }, @v );
- }
- }
- else
- {
- #
- # The ..._PKG_NAME is not found in a Makefile then
- # assume that this Makefile is a collection (depth=1):
- # ---------------------------------------------------
- # NOTE:
- # ----
- # We do not allow flavours in the package .REQUIRES file.
- #
- my $cdir = "${top_build_dir}/$d";
- #
- # We read the head of Makefile until '__END_OF_REQUIRES__' keyword.
- # The 'build-system/constants.mk' should be included before requires.
- #
- my $requires_output = <<`SHELL`;
-cd $cdir
-head -n `cat Makefile | grep -n "__END_OF_REQUIRES__" | cut -f 1 -d ':'` Makefile | \
- make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f - -p __build_requires__ 2>/dev/null | grep "REQUIRES"
-exit 0
-SHELL
-
- while( $requires_output =~ m/^REQUIRES(.+= +)(.+)/gm )
- {
- my @r = split( " ", $2 );
- foreach my $req ( reverse @r )
- {
- $d = `echo $req | cut -f 1 -d '^'`;
- $d =~ s/^\s+|\s+$//;
-
- $file_name = "${top_build_dir}/$d/Makefile";
- $makefile = `cat $file_name`;
- if( $makefile =~ m/^ *([_A-Za-z]*[_A-Za-z0-9]*)$name(.+= +)(.+)/gm )
- {
- my ( @p, @n, @v );
- my ( $n, $v, $g );
-
- my $prefix = $1;
-
- my $cdir = "${top_build_dir}/$d";
- my $shell_output = <<`SHELL`;
-cd $cdir
-make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f $file_name print-$prefix$name 2>/dev/null
-exit 0
-SHELL
- while( $shell_output =~ m/^ *$prefix$name(.+= +)(.+)/gm ) { $n = $2; }
-
- $shell_output = <<`SHELL`;
-cd $cdir
-make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f $file_name print-$prefix$version 2>/dev/null
-exit 0
-SHELL
- while( $shell_output =~ m/^ *$prefix$version(.+= +)(.+)/gm ) { $v = $2; }
-
- $shell_output = <<`SHELL`;
-cd $cdir
-make TOOLCHAIN=$toolchain HARDWARE=$hardware FLAVOUR=$flavour -f $file_name print-$prefix$group 2>/dev/null
-exit 0
-SHELL
- while( $shell_output =~ m/^ *$prefix$group(.+= +)(.+)/gm ) { $g = $2; }
-
- $requires{"$d"} = \@p;
- if( $g ) { @n = split / +/, $g . '/' . $n; }
- else { @n = split / +/, $n; }
- push( @{ $requires{"$d"} }, @n );
- @v = split / +/, $v;
- if( $requires{"$d"} )
- {
- push( @{ $requires{"$d"} }, @v );
- }
- }
-
- } # end of foreach ( req )
-
- } # End of while ( shell_output )
-
- }
-
- }
-
- return %requires;
-}
-
-sub usage
-{
- print <<EOF;
-
-Usage: build_pkg_requires [options] dir ... dir output_file_name
-Options:
- --toolchain={TOOLCHAIN} - actual Toolchain name;
- --hardware={HARDVARE} - actual Hardware name;
- --flavour={FLAVOUR} - actual Flavour name;
- --pkg-type={all|bin|dev} - find required packages of defined type only;
- --all - find required packages of all types;
- --bin - find binary packages only;
- --dev - find development packages only.
-
-EOF
- exit;
-}
-
-
-my $pkg_type;
-
-my @dirs;
-
-foreach ( @ARGV )
-{
- if( /--toolchain=(\S*)/ )
- {
- $toolchain = $1;
- }
- elsif( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--pkg-type=(\S*)/ )
- {
- $pkg_type = $1;
- }
- elsif( /--all/ )
- {
- $pkg_type = "all";
- }
- elsif( /--bin/ )
- {
- $pkg_type = "bin";
- }
- elsif( /--dev/ )
- {
- $pkg_type = "dev";
- }
- elsif( /--help/ )
- {
- usage;
- }
- else
- {
- push @dirs, $_;
- }
-}
-
-$reqfile = pop @dirs;
-
-if( $pkg_type eq "" ) { $pkg_type = "all"; }
-
-# Set up $top_build_dir
-$pwd = `pwd`;
-chomp $pwd;
-
-if( $ENV{TOP_BUILD_DIR_ABS} eq "" )
-{
- $p = $pwd;
- while( ! -f "$p/build-system/core.mk" )
- {
- $p =~ m!(.*)/(.*)!;
- $p = $1;
- }
- $top_build_dir = $p;
-}
-else
-{
- $top_build_dir = $ENV{TOP_BUILD_DIR_ABS};
-}
-
-# Open the output file
-open( REQUIRES_FILE, "> $reqfile" );
-
-
-# Read package names and versions from required Makefiles
-%requires = read_requires( $pkg_type, @dirs );
-
-while( ($pkg, $nv) = each %requires )
-{
- print REQUIRES_FILE "${$nv}[0]=${$nv}[1]\n";
-}
-
-
-# Close output file
-close REQUIRES_FILE;
Property changes on: build-system-1.10.x/build_pkg_requires
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/update_pkgs
===================================================================
--- build-system-1.10.x/update_pkgs (revision 57)
+++ build-system-1.10.x/update_pkgs (nonexistent)
@@ -1,172 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Basename;
-use File::Temp;
-use Fcntl ':flock';
-use _kxLab;
-
-my $distro = _kxLab::distro_name();
-
-# Global variables
-my $header_printed = 0;
-
-my $rootfs_dest_dir;
-my ($toolchain, $hardware, $flavour);
-my $target_build_dir;
-
-my $cleanup = $ENV{DO_CREATE_DIST_FILES} ? 0 : 1;
-my ($tempfd, $tempname);
-
-sub usage
-{
- print <<EOF;
-
-Usage: update_pkgs [options] package[ package]
-Options:
- --destination=ROOTFS - where ROOTFS is a destination directory.
- --toolchain=TOOLCHAIN - where TOOLCHAIN ia a toolchain name;
- --hardware=HARDWARE - where HARDWARE ia a HARDWARE name;
- --flavour=FLAVOUR - where FLAVOUR ia a FLAVOUR name.
-
-EOF
- exit;
-}
-
-
-# cleanpath( path )
-sub cleanpath
-{
- my $path = shift;
- $path =~ s!/{2,}!/!g;
- $path =~ s!^.*dist/!!;
- return $path;
-}
-
-# rootfs( rootfs_dest_dir, pkg )
-sub rootfs
-{
- my $dest_dir = cleanpath( shift );
- my $target = shift;
-
- my $group = dirname( $target ); # extract GROUP if present:
- $group =~ s!$target_build_dir/!!;
-
- my $file = basename( $target, ".txz" );
- print $tempfd "$dest_dir/var/log/$distro/packages/$group/$file\n";
-}
-
-# update( updatepkg, rootfs_dest_dir, verbose, targets )
-sub update
-{
- my $updatepkg = shift;
- my $rootfs_dest_dir = shift;
- my $verbose = shift;
- my $targets = shift;
-
- foreach my $target ( @{$targets} )
- {
- my $pkg = basename( $target );
- my $cdir = dirname( $target );
- if( !$header_printed )
- {
- print "\n======= Update packages =======\n";
- $header_printed = 1;
- }
- print "Update $target ...\n" if ( $verbose );
- _kxLab::system( "mkdir -p $rootfs_dest_dir" );
- _kxLab::system( "cd $cdir; $updatepkg --reinstall --ignore-chrefs-errors --root=$rootfs_dest_dir $pkg" );
- rootfs( $rootfs_dest_dir, $target );
- }
-}
-
-my @targets;
-my $verbose = $ENV{VERBOSE};
-my $curdir = $ENV{CWD};
-my $updatepkg = $ENV{UPDATE_PACKAGE};
-my $fname = "";
-my $dest_fname = "";
-
-foreach ( @ARGV )
-{
- if( /--destination=(\S*)/ )
- {
- $rootfs_dest_dir = $1;
- }
- elsif( /--toolchain=(\S*)/ )
- {
- $toolchain = $1;
- }
- elsif( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--help/ )
- {
- usage;
- }
- else
- {
- push @targets, $_;
- }
-}
-
-if( ! defined $rootfs_dest_dir or $rootfs_dest_dir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-if ( $curdir )
-{
- $fname = "$curdir/" . $target_build_dir . "/.rootfs.XXXXXX";
- $dest_fname = "$curdir/" . $target_build_dir . "/.rootfs";
-}
-else
-{
- $fname = $target_build_dir . "/.rootfs.XXXXXX";
- $dest_fname = $target_build_dir . "/.rootfs";
-}
-
-($tempfd, $tempname) = File::Temp::tempfile( $fname, UNLINK => $cleanup );
-
-
-#####################
-# LOCK procedure:
-#
-#my $lock_fname = _kxLab::build_system_tmpdir() . "/." . $hardware . ".pkgtool-lock";
-#open( my $lock_fh, '+>', $lock_fname ) or
-# _kxLab::error( "$0: Could not open $lock_fname file: $!" );
-#flock( $lock_fh, LOCK_EX ) or
-# _kxLab::error( "$0: Cannot lock $lock_fname file: $!" );
-
-
-update( $updatepkg, $rootfs_dest_dir, $verbose, \@targets );
-
-
-#flock( $lock_fh, LOCK_UN ) or
-# _kxLab::error( "$0: Cannot unlock $lock_fname file: $!" );
-#close( $lock_fh );
-#
-# UN LOCK procedure.
-#####################
-
-# reverse file line by line:
-_kxLab::system( "tac $tempname >> $dest_fname" );
-_kxLab::system( "rm -f $tempname" );
Property changes on: build-system-1.10.x/update_pkgs
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/install_targets
===================================================================
--- build-system-1.10.x/install_targets (revision 57)
+++ build-system-1.10.x/install_targets (nonexistent)
@@ -1,283 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use File::Basename;
-use File::Temp;
-use _kxLab;
-
-
-#
-# Install file(s)
-#
-# usage:
-# $0 [options] source[ source] destination hardware
-#
-# where:
-# 'source' - the list of source files to be installed into dest directory
-# 'destination' - is a destination directory for installation all source files
-# 'hardware' - is a HARDWARE variant
-#
-# options:
-# --preserve-source-dir=true - preserve source directory tree in the dest dir,
-# for example, if source is foo/bar/file then we
-# will have destination such as dest/foo/bar/file.
-#
-# --preserve-source-dir=one - preserve source directory depth is only 1. Its
-# mean that if we have source like foo/bar/file,
-# then destination will be dest/bar/file.
-#
-
-# Global variables
-my $header_printed = 0;
-
-my $cleanup = $ENV{DO_CREATE_DIST_FILES} ? 0 : 1;
-my ($tempfd, $tempname);
-
-sub usage
-{
- print <<EOF;
-
-Usage: install_targets [options] source[ source]
-Options:
- --preserve-source-dir={true|one} - preserve source directory tree in the DEST dir.
- true: If source is foo/bar/file then destination
- file will be DEST/foo/bar/file.
- one: depth is only one directory. If source is
- fo/bar/file then destination will be
- DEST/bar/file.
- --destination=DEST - where DEST is a destination directory.
- --toolchain=TOOLCHAIN - where TOOLCHAIN ia a toolchain name;
- --hardware=HARDWARE - where HARDWARE ia a HARDWARE name;
- --flavour=FLAVOUR - where FLAVOUR ia a FLAVOUR name.
-
-EOF
- exit;
-}
-
-
-# cleanpath( path )
-sub cleanpath
-{
- my $path = shift;
- $path =~ s!/{2,}!/!g;
- return $path;
-}
-
-# dist( file )
-sub dist
-{
- my $file = cleanpath(shift);
- $file =~ s!^.*dist/!!;
- print $tempfd "$file\n";
-}
-
-# newer_than( file1, file2 )
-sub newer_than
-{
- my $file1 = shift;
- my $file2 = shift;
- _kxLab::error( "install_targets: Source file missing: $file1" ) if ( ! -f $file1 );
- return( ! -f $file2 or -M $file1 < -M $file2 );
-}
-
-sub dir_is_empty
-{
- my ($path) = @_;
- opendir DIR, $path;
- while( my $entry = readdir DIR )
- {
- next if( $entry =~ /^\.\.?$/ );
- closedir DIR;
- return 0;
- }
- closedir DIR;
- return 1;
-}
-
-# install_tree( install_dir, file, target, verbose )
-sub install_tree
-{
- my $install_dir = cleanpath(shift);
- my $file = shift;
- my $target = shift;
- my $verbose = shift;
-
- opendir(DIR, "$target");
- my @files = readdir(DIR);
- closedir DIR;
- foreach my $f ( @files )
- {
- next if ($f eq "." or $f eq "..");
- if( -d "$target/$f" )
- {
- install_tree( "$install_dir/$f", "$file/$f", "$target/$f", $verbose );
- }
- elsif( newer_than( "$target/$f", "$install_dir/$f" ) )
- {
- if( !$header_printed )
- {
- print "\n======= Installing files =======\n";
- $header_printed = 1;
- }
- print "Installing $f in $install_dir\n" if ( $verbose );
- _kxLab::system( "mkdir -p \"$install_dir\"" );
- _kxLab::system( "cp -fa \"$target/$f\" \"$install_dir\"" );
- dist( "$install_dir/$f" );
- }
- }
-}
-
-
-
-
-# install( install_dir, preserve_source_dir, verbose, targets )
-sub install
-{
- my $install_dir = cleanpath(shift);
- my $preserve_source_dir = shift;
- my $verbose = shift;
- my $targets = shift;
-
- foreach my $target ( @{$targets} )
- {
- my $file = basename($target);
- my $path = "";
- if( $preserve_source_dir eq "true" )
- {
- $path = dirname( $target );
- }
- elsif( $preserve_source_dir eq "one" )
- {
- $path = dirname( $target );
- $path = basename( $path );
- }
- elsif( $preserve_source_dir eq "two" )
- {
- my ($first, $second);
-
- $path = dirname( $target );
- $second = basename( $path );
- $path = dirname( $path );
- $first = basename( $path );
- $path = $first . "/" . $second;
- }
-
- if( -d $target )
- {
- if( dir_is_empty( $target ) )
- {
- _kxLab::system( "mkdir -p \"$install_dir/$path/$file\"" );
- dist( "$install_dir/$path/$file" );
- }
- else
- {
- install_tree( "$install_dir/$path/$file", "$file", "$target", $verbose );
- }
- }
- elsif( newer_than( $target, "$install_dir/$path/$file" ) )
- {
- if( !$header_printed )
- {
- print "\n======= Installing files =======\n" if ( $verbose );
- $header_printed = 1;
- }
- print "Installing $file in $install_dir/$path\n" if ( $verbose );
- _kxLab::system( "mkdir -p \"$install_dir/$path\"" );
- _kxLab::system( "cp -fa \"$target\" \"$install_dir/$path\"" );
- dist( "$install_dir/$path/$file" );
- }
- }
-}
-
-my $preserve_source_dir = "";
-my $dest_dir;
-my ($toolchain, $hardware, $flavour);
-my $target_build_dir;
-my @targets;
-my $verbose = $ENV{VERBOSE};
-my $curdir = $ENV{CWD};
-my $fname = "";
-
-
-foreach ( @ARGV )
-{
- if( /--preserve-source-dir=(\S*)/ )
- {
- $preserve_source_dir = $1;
- }
- elsif( /--destination=(\S*)/ )
- {
- $dest_dir = $1;
- }
- elsif( /--toolchain=(\S*)/ )
- {
- $toolchain = $1;
- }
- elsif( /--hardware=(\S*)/ )
- {
- $hardware = $1;
- }
- elsif( /--flavour=(\S*)/ )
- {
- $flavour = $1;
- }
- elsif( /--help/ )
- {
- usage;
- }
- elsif( /--/ )
- {
- while( <STDIN> )
- {
- #
- # NOTE: arguments from STDIN should be splitted by '\n'
- #
- my $arg = $_;
-
- chomp $arg; $arg =~ s/\\040/ /g;
-
- push @targets, $arg;
- }
-
- last;
- }
- else
- {
- my $arg = $_;
-
- chomp $arg; $arg =~ s/\\040/ /g;
-
- push @targets, $arg;
- }
-}
-
-if( ! defined $dest_dir or $dest_dir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-if ( $curdir )
-{
- $fname = "$curdir/" . $target_build_dir . "/.dist.XXXXXX";
-}
-else
-{
- $fname = $target_build_dir . "/.dist.XXXXXX";
-}
-
-($tempfd, $tempname) = File::Temp::tempfile( $fname, UNLINK => $cleanup );
-
-install( $dest_dir, $preserve_source_dir, $verbose, \@targets );
Property changes on: build-system-1.10.x/install_targets
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/tree-src.mk
===================================================================
--- build-system-1.10.x/tree-src.mk (revision 57)
+++ build-system-1.10.x/tree-src.mk (nonexistent)
@@ -1,9 +0,0 @@
-
-# Generic rule used for source directories
-
-all $(TREEDIRS):
-
-$(TREEDIRS):
- @$(MAKE) -C $(TOP_BUILD_DIR_ABS)/$@ $(TREE_RULE)
-
-.PHONY: all $(TREEDIRS)
Index: build-system-1.10.x/configure-targets
===================================================================
--- build-system-1.10.x/configure-targets (revision 57)
+++ build-system-1.10.x/configure-targets (nonexistent)
@@ -1,86 +0,0 @@
-#!/bin/sh
-
-CWD=`pwd`
-
-BUILDSYSTEM=${BUILDSYSTEM:-$CWD}
-
-CONFIG=${CONFIG:-build-config.mk}
-CONSTANTS=${CONSTANTS:-constants.mk}
-
-if [ ! -r $CONFIG ] ; then
- echo "$0: ERROR: There is no $CONFIG file for configuring target HW."
- echo ""
- exit 1
-fi
-
-: ${DIALOG=$BUILDSYSTEM/usr/bin/dialog}
-: ${DIALOGRC=$BUILDSYSTEM/usr/share/pkgtools/.dialogrc}
-
-export DIALOGRC
-
-: ${DIALOG_OK=0}
-: ${DIALOG_CANCEL=1}
-: ${DIALOG_HELP=2}
-: ${DIALOG_EXTRA=3}
-: ${DIALOG_ITEM_HELP=4}
-: ${DIALOG_ESC=255}
-
-: ${SIG_NONE=0}
-: ${SIG_HUP=1}
-: ${SIG_INT=2}
-: ${SIG_QUIT=3}
-: ${SIG_KILL=9}
-: ${SIG_TERM=15}
-
-umask 002
-if [ ! -z "$TMPDIR" ] ; then mkdir -p $TMPDIR ; fi
-TMP=$(mkdir -p /tmp/radix && mktemp -d -p /tmp/radix build-system.XXXXXXXX) || { echo "Cannot create '/tmp/...' directory" ; exit 92; }
-trap "rm -rf $TMP" 0 $SIG_NONE $SIG_HUP $SIG_INT $SIG_QUIT $SIG_TERM
-
-
-cat > $TMP/sel$$ << EOF
---colors
---backtitle "\Z7Build System\Zn"
---title " \Z1SELECTING HARDWARE TO BUILD\Zn "
---clear
---checklist "\\n
-\Zb\Z4Please confirm the hardwares you want to build\Zn\ZB.\\n\\n
-Use the UP/DOWN keys to scroll through the list, and the SPACE key\\n
-to deselect any items you don't want to build.\\n\\n
-Press ENTER when you are done."
-21 72 8
-EOF
-
-
-hwlist=`cat $CONFIG | grep "^ENABLE_.*[ \t]*=.*" | sed "s,^ENABLE_\(.*\)[ \t]*=.*,\1," | tr 'A-Z' 'a-z'`
-
-for hw in $hwlist ; do
- hh=`echo $hw | tr 'a-z' 'A-Z'`
- spec=`cat $CONSTANTS | grep "^${hh}_SPEC[ \t]*=.*" | sed "s,^${hh}_SPEC[ \t]*=[ \t]*\(.*\),\1," | sed "s,\\\\\,,g"`
- enabled=`cat $CONFIG | grep "^ENABLE_${hh}[ \t]*=.*" | sed "s,^ENABLE_${hh}[ \t]*=[ \t]*\(.*\),\1,"`
- if [ "$enabled" == "true" ] ; then
- en="on"
- else
- en="off"
- fi
- echo "\"$hw\" \"$spec\" \"$en\"" >> $TMP/sel$$
-done
-
-
-$DIALOG --file $TMP/sel$$ 2> $TMP/ret$$
-
-retval=$?
-
-case $retval in
- $DIALOG_OK)
- enabled="`cat $TMP/ret$$`"
- for hw in $hwlist ; do
- hh=`echo $hw | tr 'a-z' 'A-Z'`
- sed -i "s,^\(ENABLE_${hh}[ \t]*=[ \t]*\).*,\1false," $CONFIG
- done
- for hw in $enabled ; do
- hh=`echo $hw | tr 'a-z' 'A-Z'`
- sed -i "s,^\(ENABLE_${hh}[ \t]*=[ \t]*\).*,\1true," $CONFIG
- done
- ;;
-esac
Property changes on: build-system-1.10.x/configure-targets
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/build_devices_table
===================================================================
--- build-system-1.10.x/build_devices_table (revision 57)
+++ build-system-1.10.x/build_devices_table (nonexistent)
@@ -1,310 +0,0 @@
-#!/bin/env perl
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Handle;
-use File::Basename;
-use File::Temp;
-use Getopt::Long;
-
-use _kxLab;
-
-#
-# Generate $(TARGET_BUILD_DIR)/.DEVLIST file
-#
-# usage:
-# $0 [options] topdir toolchain hardware flavour
-#
-# where:
-# 'topdir' - is a absolute path to the top directory of checked out branch
-# 'toolchain' - is a TOOLCHAIN name
-# 'hardware' - is a HARDWARE name
-# 'flavour' - is a HARDWARE variant
-#
-
-my (%devices, $devices_file);
-my ($products_dest_dir, $pkglist_file);
-my ($top_dir, $toolchain, $hardware, $flavour, $target_build_dir);
-my ($system_version, $distro_version, $distro_name);
-my ($arch, $products_base_dir);
-
-
-sub usage
-{
- print <<EOF;
-
-Usage: build_devices_list [options] topdir toolchain hardware [flavour]
-Options:
- -a, --arch=<z|j|J>
- - where 'z' is gzip, 'j' is bzip2, and 'J' is xz arcive format;
-
- -p, --products-dir=<DIR>
- - base name of products dir default value is 'products';
-
-Args:
- topdir - is a absolute path to the top of checked out branch;
- toolchain - is a TOOLCHAIN name;
- hardware - is a HARDWARE name.
- flavour - is a HARDWARE variant.
-
-EOF
- exit;
-}
-
-
-#
-# http://permissions-calculator.org
-#
-sub text2spec_mode
-{
- my $tmode = shift;
- my $smode = '0';
-
- foreach my $ugo ( $tmode =~ /^.(.{3})(.{3})(.{3})/ )
- {
- $ugo =~ /[SsTt]/ && ($smode += 1);
- }
- return $smode;
-}
-
-sub text2oct_mode
-{
- my $tmode = shift;
- my $omode = '0';
-
- if( $tmode =~ /^.(.{3})(.{3})(.{3})/ )
- {
- my ($u, $g, $o) = ($1, $2, $3);
- my ($sm, $um, $gm, $om) = (0, 0, 0, 0);
-
- $u =~ /r/ && ($um += 4);
- $u =~ /w/ && ($um += 2);
- $u =~ /x/ && ($um += 1);
- if( $u =~ /s/ ) { $um += 1; $sm += 4; }
- $u =~ /S/ && ($sm += 4);
-
- $g =~ /r/ && ($gm += 4);
- $g =~ /w/ && ($gm += 2);
- $g =~ /x/ && ($gm += 1);
- if( $g =~ /s/ ) { $gm += 1; $sm += 2; }
- $g =~ /S/ && ($sm += 2);
-
- $o =~ /r/ && ($om += 4);
- $o =~ /w/ && ($om += 2);
- $o =~ /x/ && ($om += 1);
- if( $o =~ /t/ ) { $om += 1; $sm += 1;}
- $o =~ /T/ && ($sm += 1);
-
- $omode = $sm . $um . $gm . $om;
- }
- return $omode;
-}
-
-
-
-sub read_devices
-{
- my $tarball = shift;
- my $args;
- my %devs;
-
- $args = "--numeric-owner -" . $arch . "tvf " . $tarball;
-
- my $shell_output = <<`SHELL`;
-tar $args
-exit 0
-SHELL
-
-# | permissions | uid/gid | size | date | time | file
-# ---------------------------+---------------------------+----------------------+--------------+------------------+----------------+---------
- while( $shell_output =~ m!^([\-bcpdlrwxSsTt]{10})[ \t]+([0-9]+)/([0-9]+)[ \t]+([0-9,]+)[ \t]+([\-0-9]{10})[ \t]+([:0-9]{5})[ \t]+(.+)$!gm )
- {
- my $perm = $1;
- my $uid = $2;
- my $gid = $3;
- my $size = $4;
- my $dev = $7;
-
- my ($name, $type, $smode, $mode, $owner, $major, $minor, $start, $inc, $count);
-
- $perm =~ s/^\s+|\s+$//g;
- $uid =~ s/^\s+|\s+$//g;
- $gid =~ s/^\s+|\s+$//g;
- $size =~ s/^\s+|\s+$//g;
- $dev =~ s/^\s+|\s+$//g;
-
- $owner = $uid . ":" . $gid;
-
- $name = "/" . $dev;
- $type = substr($perm, 0, 1);
- $mode = text2oct_mode( $perm );
-
- $type =~ tr/-/f/;
- $smode = text2spec_mode( $perm );
-
- if( ($smode or
- $type eq "b" or $type eq "c" or $type eq "s" or
- $type eq "p" or $uid ne "0" or $gid ne "0"
- ) and $type ne "l"
- )
- {
-
- if( $type eq "b" or $type eq "c" )
- {
- ($major, $minor) = split( /,/, $size );
- $devs{$name} = $type . "\t" . $mode . "\t" . $uid . "\t" . $gid . "\t" . $major . "\t" . $minor;
- }
- else
- {
- $devs{$name} = $type . "\t" . $mode . "\t" . $uid . "\t" . $gid;
- }
-
- }
- }
- return %devs;
-
-}
-
-
-sub get_tarballs_list
-{
- my @tarballs;
-
- if( defined $system_version and defined $distro_version and defined $distro_name )
- {
- my $init_dev_package = $products_dest_dir .
- "/base/init-devices-" .
- $system_version . "-" .
- $toolchain . "-" .
- $distro_name . "-" .
- $distro_version . ".txz";
- if( -f $init_dev_package )
- {
- push @tarballs, $init_dev_package;
- }
- }
-
- while( my $line = <PKGLIST_FILE> )
- {
-
- $line =~ /^$/ and next;
- $line =~ /^#/ and next;
-
- if( $line =~ m!^(.+):(.+):(.+):(.+):(.+):(.+)!gm )
- {
- my $pkg = $4;
- my $tarball = $products_dest_dir . "/" . $pkg;
- push @tarballs, $tarball;
- }
- }
- return @tarballs;
-}
-
-
-#
-# Parse the command line options
-#
-$arch = 'J';
-if( ! GetOptions( 'a=s' => \$arch,
- 'arch=s' => \$arch,
- 'p=s' => \$products_base_dir,
- 'products-dir=s' => \$products_base_dir,
- 'help|h|?' => sub { usage() }
- )
- )
-{
- usage();
-}
-
-# Get the rest of the command line
-my $topdir = shift;
-
-$toolchain = shift;
-$hardware = shift;
-$flavour = shift;
-
-if( $arch eq '' )
-{
- $arch = 'J';
-}
-
-
-if( ! defined $products_base_dir or $products_base_dir eq "" ) { $products_base_dir = "products"; }
-
-if( ! defined $topdir or $topdir eq "" ) { usage; }
-if( ! defined $toolchain or $toolchain eq "" ) { usage; }
-if( ! defined $hardware or $hardware eq "" ) { usage; }
-
-
-if( ! defined $flavour or $flavour eq "" )
-{
- $flavour = "";
- $target_build_dir = "." . $toolchain . "/" . $hardware;
- $products_dest_dir = $topdir . "/dist/" . $products_base_dir . "/" . $toolchain . "/" . $hardware;
-}
-else
-{
- $target_build_dir = "." . $toolchain . "/" . $hardware . "/" . $flavour;
- $products_dest_dir = $topdir . "/dist/" . $products_base_dir . "/" . $toolchain . "/" . $hardware . "/" . $flavour;
-}
-
-# setup $top_build_dir
-$top_dir = $topdir;
-my $build_system = $top_dir . "/build-system";
-
-$system_version = $ENV{SYSTEM_VERSION};
-$distro_version = $ENV{DISTRO_VERSION};
-$distro_name = $ENV{DISTRO_NAME};
-
-_kxLab::system( "mkdir -p $target_build_dir" );
-
-#
-# The HW.pkglist shoul be installed into PRODUCTS_DEST_DIR.
-#
-$pkglist_file = $target_build_dir . "/" . $hardware . ".pkglist";
-$devices_file = $target_build_dir . "/" . ".DEVTABLE";
-
-_kxLab::error( "build_devices_list: $topdir is not a directory" ) if( ! -d $topdir );
-_kxLab::error( "build_devices_list: .pkglist missing: $pkglist_file" ) if ( ! -f $pkglist_file );
-
-
-# open the intput file:
-open(PKGLIST_FILE, "< $pkglist_file") or
- _kxLab::error( "$0: Could not open $pkglist_file file: $!" );
-# open the output file:
-open(DEVICES_FILE, "> $devices_file") or
- _kxLab::error( "build_devices_list: Could not open $devices_file file: $!" );
-
-my @pkgs = get_tarballs_list( $pkglist_file );
-
-# close input file:
-close PKGLIST_FILE;
-
-foreach my $pkg ( @pkgs ) { %devices = (%devices, read_devices( $pkg ) ); }
-
-print DEVICES_FILE "# device table\n\n";
-print DEVICES_FILE "# <name>\t\t<type>\t<mode>\t<uid>\t<gid>\t<major>\t<minor>\t<start>\t<inc>\t<count>\n";
-foreach my $dev ( sort keys %devices )
-{
- #
- # Remove the '.new' file extentsion if present:
- #
- my $fname, my @exts = qw(.new);
- my ($name, $dir, $ext) = fileparse( $dev, @exts );
- if( $ext eq ".new" ) {
- $fname = $dir . $name;
- } else {
- $fname = $dev;
- }
-
- print DEVICES_FILE $fname . "\t\t" . $devices{$dev} . "\n";
-}
-
-print sprintf( "####### There are %d inodes to be created or changed.\n", scalar keys %devices );
-
-# close output file:
-close DEVICES_FILE;
Property changes on: build-system-1.10.x/build_devices_table
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/download-toolchain
===================================================================
--- build-system-1.10.x/download-toolchain (revision 57)
+++ build-system-1.10.x/download-toolchain (nonexistent)
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-trap 'echo ""; echo "`basename $0`: interrupted"; killall wget && killall "`basename $0`"; exit' 1 2 3 9 15
-
-TARBALL=$1
-
-if [ -z "$TARBALL" ] ; then
- echo "#"
- echo -e "# ERROR: Toolchain URL is not defined."
- echo "#"
- exit 1
-fi
-
-tarball=`basename $TARBALL`
-
-progress() {
- echo "#"
- echo -n "# wgetting '$tarball': "
- while true ; do
- echo -n "." ; sleep 1 ;
- done
-}
-
-progress &
-PID=$!
-echo "$TARBALL" | xargs -n 1 -P 100 wget -q -N -i
-kill $PID > /dev/null 2>&1
-echo -e "\n#"
-echo -n "# unpack '$tarball': "
-tar --checkpoint=.1000 -xf $tarball
-echo -e "\n#"
Property changes on: build-system-1.10.x/download-toolchain
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: build-system-1.10.x/README.md
===================================================================
--- build-system-1.10.x/README.md (revision 57)
+++ build-system-1.10.x/README.md (nonexistent)
@@ -1,196 +0,0 @@
-
-# [Build System](https://radix.pro/build-system/)
-
-**Build System** is a set of Makefiles and utilities organized within one directory which is mounted
-into the source tree of the developed product.
-
-> The main purpose of the **Build System** is automating all stages of software solution development,
-> from arrangement of source code from third-party developers usage to publication of own deliverable
-> distributive.
-
-The fundamental principle of **Build System** is described in the
-[Build System Internals](https://radix.pro/build-system/internals/#fundamental_principle) section and
-in the [doc/PRINCIPLE*](doc/PRINCIPLE.md) files of this repository.
-
-
-## Table of contents
-
-* [Quick start](#user-content-quick-start)
-* [Documentation](#user-content-documentation)
-* [Community](#user-content-community)
-* [Creators](#user-content-creators)
-
-
-## Quick start
-
-All steps described below are considered in the [Build System in Practice](https://radix.pro/build-system/practice/)
-section on the main [Radix.pro](https://radix.pro) site. To create first package using
-[Build System](https://radix.pro/build-system/) we have to perform following steps:
-
-* [Install CCACHE](#user-content-install-ccache)
-* [Getting Toolchains](#user-content-getting-toolchains)
-* [Create a First Package](#user-content-first-package)
-
-
-### Install CCACHE
-
-To speed up the building process we strongly recommend to set up **CCACHE**(**1**) utility. Almost all **Linux**
-distributions have this utility by default.
-
-We described **CCACHE** setup process in the [Build System Overview](https://radix.pro/build-system/overview/#ccache)
-section and here we have to notice that the directory */opt/extra/ccache* is a default place of the **CCACHE** data.
-If you want to use another directory for **CCACHE** data then you have to change the value of **CACHED_CC_OUTPUT**
-variable in the [constants.mk](constants.mk) file. Of course all developers should to have permissions to access
-this directory.
-
-Before start the first build process you have to create **CCACHE** data directory on behalf of superuser:
-
-```Bash
-$ sudo mkdir -p /opt/extra/ccache
-$ sudo chown -R developer:developers /opt/extra
-```
-
-Where **developers** - is a name your developers group and **developer** - is a name of some user who is
-a member of **developers** group.
-
-
-### Getting Toolchains
-
-First of all we have to create toolchains directory on the developer machine. The default path to toolchains
-is defined by **TOOLCHAINS_BASE_PATH** variable in the [constants.mk](constants.mk) file. The access permissions
-should be given to developers by the superuser:
-
-```Bash
-$ sudo mkdir -p /opt/toolchain
-$ sudo chown -R developer:developers /opt/toolchain
-```
-
-In principle no additional actions from the user is not required. The fact is that if before the start
-of assembly the first package the required toolchain will not be found in the appropriate directory then
-the **build system will** start downloading the needed toolchain from **FTP**-server and at the end of the
-downloading the **build system** unpacks the toolchain to the */opt/toolchain* directory.
-
-Also the toolchains installation can be done manualy. To do this you have to perform a set of commands
-like following:
-
-```Bash
-$ cd /opt/toolchain
-$ wget ftp://ftp.radix.pro/toolchains/x86_64/1.7.0/arm-RK328X-linux-glibc-1.7.0.tar.gz
-$ tar xzf arm-RK328X-linux-glibc-1.7.0.tar.gz
-```
-
-for each needed toolchain.
-
-
-### First Package
-
-Consider the work of the **build system** on the simplest example which despite its simplicity allow us
-to explore all of main stages of creating distributable packages.
-
-Let us create a project directory:
-
-```Bash
-$ mkdir project
-$ cd project
-```
-
-Clone the **build system** repository:
-
-```Bash
-$ git clone https://github.com/radix-platform/build-system.git
-```
-
-At this stage we do not want to create a new package from scratch and consider a complete package from
-[Radix cross Linux](https://csvn.radix.pro/radix/system/) repository. Let it be **pkgtools**. The **pkgtools** -
-is a base package which does not require the downloading any sources as they already present in the
-**build system**. In addition, **pkgtools** does not depend on any packages in the system and we
-already have all needed tools presented on the developer's machine.
-
-So, to obtain the necessary files we have to check out */base* directory from repository:
-
-```Bash
-$ svn co svn://svn.radix.pro/radix/system/trunk/base base
-```
-
-Let's change current directory to *base/pkgtool*:
-
-```Bash
-$ cd base/pkgtool
-```
-
-and create our first package:
-
-
-```Bash
-$ HARDWARE=ffrk3288 make
-```
-
-At the end of build process the **build system** displays a message indicating that the **pkgtool** package
-has been successfully installed into *dist/rootfs/rk328x-glibc/ffrk3288* directory which created especially
-as the working image of the target root file system:
-
-```
-Package creation complete.
-
-#######
-####### Install packages into 'dist/rootfs/rk328x-glibc/ffrk3288/...' file system...
-#######
-
- Installing package pkgtool...
-|======================================================================|
-
- pkgtool 1.1.0 (Package Tools)
-
- This is a set of scripts used for package creation, install, etc.
-
-
-
-
-
-
-
-
- Uncompressed Size: 168K
- Compressed Sise: 24K
-|======================================================================|
-
-make[2]: Leaving directory `project/base/pkgtool'
-make[1]: Leaving directory `project/base/pkgtool'
-$
-```
-
-This process considered in more details in the [Build System in Practice](https://radix.pro/build-system/practice/#first_package)
-section at the main [Radix.pro](https://radix.pro/) site.
-
-
-## Documentation
-
-**Build System**'s documentation is present on the main [Radix.pro](https://radix.pro) site
-in the [Build System](https://radix.pro/build-system) section.
-
-
-## Community
-
-Get updates on **Build System**'s development and chat with the project maintainers and community members.
-
-* Read and subscribe to [The Official Radix.pro Blog](https://radix.pro/blog/).
-* Follow [Radix cross Linux on VKontakte](https://vk.com/rclinux).
-
-
-## Versioning
-
-For transparency into our release cycle and in striving to maintain backward compatibility,
-**Build System** is maintained under [the Semantic Versioning guidelines](http://semver.org/)
-excluding additional labels such as pre-release suffixes.
-
-See [the Versioning section](https://radix.pro/build-system/overview/#versioning) on the main
-[Radix.pro](https://radix.pro) site.
-
-Release announcement posts will be available on [the Official Radix.pro Blog](https://radix.pro/blog/) and
-on the [Community](#user-content-community) sites.
-
-
-## Copyright and license
-
-Code and documentation copyright 2009-2023 Andrey V. Kosteltsev.
-Code and documentation released under [the **Radix.pro** License](LICENSE).
Index: build-system-1.10.x/progs/.config.in
===================================================================
--- build-system-1.10.x/progs/.config.in (revision 57)
+++ build-system-1.10.x/progs/.config.in (nonexistent)
@@ -1,16 +0,0 @@
-
-LN := @LN@
-LN_S := @LN_S@
-PWD_P := @PWD_P@
-SED := @SED@
-TAR := @TAR@
-BASH := @BASH@
-AWK := @AWK@
-BISON := @BISON@
-MKE4FS := @MKE4FS@
-E4FSCK := @E4FSCK@
-MKDOSFS := @MKDOSFS@
-DOSFSCK := @DOSFSCK@
-MCOPY := @MCOPY@
-MMD := @MMD@
-DD := @DD@
Index: build-system-1.10.x/progs/configure.in
===================================================================
--- build-system-1.10.x/progs/configure.in (revision 57)
+++ build-system-1.10.x/progs/configure.in (nonexistent)
@@ -1,103 +0,0 @@
-
-dnl ============================================================
-dnl Process this file with autoconf to produce
-dnl a configure script.
-dnl ============================================================
-
-AC_PREREQ(2.58)dnl dnl Minimum Autoconf version required.
-
-
-AC_INIT([build-system], [1.0.0])
-AC_CONFIG_SRCDIR(acsite.m4)
-
-
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl $$ $$
-dnl $$ PART: Test for Auxiliary (my be version sensitive) $$
-dnl $$ programs $$
-dnl $$ $$
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-AC_MSG_RESULT(=======)
-AC_MSG_RESULT(======= Test for aux programs:)
-AC_MSG_RESULT(=======)
-
-dnl ============================================================
-dnl Locate tools( on build machine! ) .
-dnl =================
-dnl ============================================================
-AC_PATH_PROG_LN_S
-AC_SUBST(LN)
-AC_SUBST(LN_S)
-
-dnl Нам нужен исполняемый файл pwd. Встроенный "pwd -P" нас
-dnl не устраивает( из соображений переносимости ) .
-AC_PATH_PROG(PWD_P, pwd, no)
-if test "$PWD_P" = no; then
- AC_MSG_ERROR(******** A pwd binary could not be found.)
-fi
-
-AC_PATH_PROGS(SED, sed gsed, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROGS(TAR, tar gtar, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROG(BASH, bash, no)
-if test "$BASH" != no &&
- $BASH -c 'test "$BASH_VERSINFO" \
- && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
- parse_conf_cv_have_bash2=yes
-else
- parse_conf_cv_have_bash2=no
-fi
-AC_SUBST(parse_conf_cv_have_bash2)
-
-
-AC_PATH_PROGS(AWK, gawk awk, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROG(BISON, bison, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROG(MKE4FS, mkfs.ext4 mke2fs, no, /usr/local/sbin:/usr/sbin:/sbin:$PATH)
-AC_PATH_PROG(E4FSCK, fsck.ext4 e2fsck, no, /usr/local/sbin:/usr/sbin:/sbin:$PATH)
-
-AC_PATH_PROG(MKDOSFS, mkfs.fat mkdosfs, no, /usr/local/sbin:/usr/sbin:/sbin:$PATH)
-AC_PATH_PROG(DOSFSCK, fsck.fat dosfsck, no, /usr/local/sbin:/usr/sbin:/sbin:$PATH)
-
-AC_PATH_PROG(MCOPY, mcopy, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_PATH_PROG(MMD, mmd, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-AC_PATH_PROG(DD, dd, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-
-
-
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl $$ $$
-dnl $$ PART: OUTPUT Substitution $$
-dnl $$ $$
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-dnl ============================================================
-AC_MSG_RESULT(=======)
-AC_MSG_RESULT(======= OUTPUT:)
-AC_MSG_RESULT(=======)
-
-
-AC_OUTPUT([
-.config
-])
-
-AC_MSG_RESULT(=======)
-AC_MSG_RESULT(======= End of test for aux programs.)
-AC_MSG_RESULT(=======)
Index: build-system-1.10.x/progs/acsite.m4
===================================================================
--- build-system-1.10.x/progs/acsite.m4 (revision 57)
+++ build-system-1.10.x/progs/acsite.m4 (nonexistent)
@@ -1,34 +0,0 @@
-
-dnl ============================================================
-dnl Test for build_host `ln -s' .
-dnl ============================
-dnl
-dnl Usage:
-dnl -----
-dnl AC_PATH_PROG_LN_S
-dnl AC_SUBST(LN)
-dnl AC_SUBST(LN_S)
-dnl
-dnl ============================================================
-AC_DEFUN(AC_PATH_PROG_LN_S,
-[AC_PATH_PROG(LN, ln, no, /usr/local/bin:/usr/bin:/bin:$PATH)
-AC_MSG_CHECKING(whether ln -s works on build host)
-AC_CACHE_VAL(ac_cv_path_prog_LN_S,
-[rm -f conftestdata
-if $LN -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_path_prog_LN_S="$LN -s"
-else
- ac_cv_path_prog_LN_S="$LN"
-fi])dnl
-LN_S="$ac_cv_path_prog_LN_S"
-if test "$ac_cv_path_prog_LN_S" = "$LN -s"; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST(LN)dnl
-AC_SUBST(LN_S)dnl
-])
-
Index: build-system-1.10.x/progs/Makefile
===================================================================
--- build-system-1.10.x/progs/Makefile (revision 57)
+++ build-system-1.10.x/progs/Makefile (nonexistent)
@@ -1,23 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
-
-include ../../build-system/constants.mk
-
-# ======= __END_OF_REQUIRES__ =======
-
-config_target = .config
-
-BUILD_TARGETS = $(config_target)
-
-CLEANUP_FILES += autom4te.cache
-CLEANUP_FILES += $(config_target)
-CLEANUP_FILES += config.log
-CLEANUP_FILES += config.status
-CLEANUP_FILES += configure
-
-include ../../build-system/core.mk
-
-$(config_target):
- @autoconf
- @rm -rf autom4te.cache
- @./configure
Index: build-system-1.10.x/progs
===================================================================
--- build-system-1.10.x/progs (revision 57)
+++ build-system-1.10.x/progs (nonexistent)
Property changes on: build-system-1.10.x/progs
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: build-system-1.10.x
===================================================================
--- build-system-1.10.x (revision 57)
+++ build-system-1.10.x (nonexistent)
Property changes on: build-system-1.10.x
___________________________________________________________________
Deleted: svn:ignore
## -1,51 +0,0 ##
-
-# local config & object files
-build-config.mk
-sbin
-usr
-var
-
-# configure targets
-autom4te.cache
-.config
-config.log
-config.status
-configure
-
-# cpan configure targets
-.installed
-CPAN-Config.pm
-CPAN-install
-
-# Target build dirs
-.build-machine
-
-# Timestamps
-.makefile
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~