summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Bermond2018-07-28 00:30:27 +0000
committerDaniel Bermond2018-07-28 00:30:27 +0000
commit9ac9b53047fb61539f3182754779aa3cac0d9b16 (patch)
tree05426c7c77ed6f61c10a710d500209f6bb63bbf2
downloadaur-9ac9b53047fb61539f3182754779aa3cac0d9b16.tar.gz
Initial commit
-rw-r--r--.SRCINFO35
-rw-r--r--PKGBUILD119
-rw-r--r--davs2-1.0-add-linux-support.patch5469
3 files changed, 5623 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..361e670b255d
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,35 @@
+pkgbase = davs2
+ pkgver = 1.0
+ pkgrel = 1
+ url = https://github.com/pkuvcl/davs2/
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = gcc7
+ makedepends = yasm
+ makedepends = l-smash
+ depends = glibc
+ source = davs2-1.0.tar.gz::https://github.com/pkuvcl/davs2/archive/1.0.tar.gz
+ source = davs2-1.0-add-linux-support.patch
+ sha256sums = 1b8bd800f7c4d63e904a4355de0144c55d427d3f1477064b53de1c3e028d9eaa
+ sha256sums = 66166908defadbac7bbaab44a2eaab09af9f6b9ad37c035772e32a6a09c0b605
+
+pkgname = davs2
+ pkgdesc = CLI tool for the open-source decoder of AVS2-P2/IEEE1857.4 video coding standard
+ depends = glibc
+ depends = l-smash
+ provides =
+ provides = davs2-bit
+ provides = davs2-bit
+ conflicts =
+ conflicts = davs2-bit-git
+
+pkgname = libdavs2
+ pkgdesc = Library for the open-source decoder of AVS2-P2/IEEE1857.4 video coding standard (8bit depth)
+ provides = libdavs2-8bit
+ provides = libdavs2
+ provides = libdavs2.so
+ conflicts = libdavs2-8bit-git
+ conflicts = libdavs2-10bit
+ conflicts = libdavs2-10bit-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..f33cfed01ed4
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,119 @@
+# Maintainer : Daniel Bermond < yahoo-com: danielbermond >
+
+# NOTE:
+# - 10-bit depth currently fails to build
+# - 10-bit sections are commented out until it works
+
+pkgbase=davs2
+pkgname=('davs2' 'libdavs2') #'libdavs2-10bit' 'libdavs2-all')
+pkgver=1.0
+pkgrel=1
+arch=('i686' 'x86_64')
+url='https://github.com/pkuvcl/davs2/'
+license=('GPL')
+depends=('glibc')
+makedepends=('gcc7' 'yasm' 'l-smash')
+source=("${pkgbase}-${pkgver}.tar.gz"::"https://github.com/pkuvcl/${pkgname}/archive/${pkgver}.tar.gz"
+ 'davs2-1.0-add-linux-support.patch')
+sha256sums=('1b8bd800f7c4d63e904a4355de0144c55d427d3f1477064b53de1c3e028d9eaa'
+ '66166908defadbac7bbaab44a2eaab09af9f6b9ad37c035772e32a6a09c0b605')
+
+prepare() {
+ cd "${pkgbase}-${pkgver}"
+
+ # add linux support
+ sed -i $'s/\r$//' source/common/vec/intrinsic_sao_avx2.cc
+ patch -Np1 -i "${srcdir}/davs2-1.0-add-linux-support.patch"
+
+ # use gcc7 (it does not build with gcc8)
+ sed -i 's/g++/g++-7/' build/linux/configure
+
+ # must copy the entire source tree for each build or it will not work
+ cd "$srcdir"
+ cp -af "${pkgbase}-${pkgver}" build-8bit
+ #cp -af "${pkgbase}-${pkgver}" build-10bit
+}
+
+build() {
+ for _depth in 8 #10
+ do
+ msg2 "Building for ${_depth}-bit..."
+
+ cd "build-${_depth}bit/build/linux"
+
+ ./configure \
+ --prefix='/usr' \
+ --enable-shared \
+ --bit-depth="$_depth" \
+ --chroma-format='all' \
+ --enable-lto \
+ --enable-pic \
+ --disable-swscale \
+ --disable-lavf \
+ --disable-ffms \
+ --disable-gpac
+
+ make
+
+ cd "$srcdir"
+ done
+}
+
+package_davs2() {
+ pkgdesc='CLI tool for the open-source decoder of AVS2-P2/IEEE1857.4 video coding standard'
+ depends+=('l-smash')
+
+ for _depth in 8 #10
+ do
+ provides+=("davs2-${_depth}bit" "davs2-${_depth}bit")
+ conflicts+=("davs2-${_depth}bit-git")
+
+ msg2 "Installing CLI for ${_depth}-bit..."
+
+ make -C "build-${_depth}bit/build/linux" DESTDIR="$pkgdir" install-cli
+
+ mv "$pkgdir"/usr/bin/davs2 "$pkgdir"/usr/bin/davs2-${_depth}bit
+ done
+
+ ln -sf davs2-8bit "${pkgdir}"/usr/bin/davs2
+}
+
+package_libdavs2() {
+ pkgdesc='Library for the open-source decoder of AVS2-P2/IEEE1857.4 video coding standard (8bit depth)'
+ provides=('libdavs2-8bit' 'libdavs2' 'libdavs2.so')
+ conflicts=('libdavs2-8bit-git' 'libdavs2-10bit' 'libdavs2-10bit-git')
+
+ make -C build-8bit/build/linux DESTDIR="$pkgdir" install-lib-shared
+}
+
+# bash block-comment
+:<<'10-bit-pkgs'
+package_libdavs2-10bit() {
+ pkgdesc='Library for the open-source decoder of AVS2-P2/IEEE1857.4 video coding standard (10bit depth)'
+ provides=('libdavs2' 'libdavs2.so')
+ conflicts=('libdavs2-10bit-git' 'libdavs2-8bit' 'libdavs2-8bit-git' 'libdavs2-git')
+
+ make -C build-8bit/build/linux DESTDIR="$pkgdir" install-lib-shared
+}
+
+package_libdavs2-all() {
+ pkgdesc="Library for the open-source decoder of AVS2-P2/IEEE1857.4 video coding standard (all depths)"
+
+ local _ver="$(grep '^api=[0-9]*$' "${pkgbase}-${pkgver}/version.sh" | awk -F'=' '{ print $2 }')"
+
+ install -d "${pkgdir}/usr/lib/davs2"
+
+ for _depth in 8 10
+ do
+ provides+=("libdavs2-${_depth}bit.so")
+
+ make -C build-${_depth}bit/build/linux DESTDIR="$pkgdir" install-lib-shared
+
+ mv "${pkgdir}"/usr/lib/libdavs2.so.${_ver} "${pkgdir}"/usr/lib/davs2/libdavs2-${_depth}bit.so.${_ver}
+
+ rm -r "${pkgdir}"/usr/{include,lib/libdavs2.so,lib/pkgconfig}
+
+ ln -sfr "${pkgdir}"/usr/lib/davs2/libdavs2-${_depth}bit.so{.${_ver},}
+ done
+}
+10-bit-pkgs
diff --git a/davs2-1.0-add-linux-support.patch b/davs2-1.0-add-linux-support.patch
new file mode 100644
index 000000000000..42627e7e3f82
--- /dev/null
+++ b/davs2-1.0-add-linux-support.patch
@@ -0,0 +1,5469 @@
+From 5dd9bad11be4cde6d965124ee8ba43a7da77cd51 Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Wed, 31 Jan 2018 14:50:46 +0800
+Subject: [PATCH] Add linux Makefile
+
+---
+ build/linux/Makefile | 329 ++++++
+ build/linux/config.guess | 1473 +++++++++++++++++++++++++
+ build/linux/config.sub | 1836 +++++++++++++++++++++++++++++++
+ build/linux/configure | 1531 ++++++++++++++++++++++++++
+ source/common/vec/intrinsic_sao_avx2.cc | 2 +-
+ version.sh | 0
+ 6 files changed, 5170 insertions(+), 1 deletion(-)
+ create mode 100644 build/linux/Makefile
+ create mode 100755 build/linux/config.guess
+ create mode 100755 build/linux/config.sub
+ create mode 100755 build/linux/configure
+ mode change 100644 => 100755 version.sh
+
+diff --git a/build/linux/Makefile b/build/linux/Makefile
+new file mode 100644
+index 0000000..2dde35e
+--- /dev/null
++++ b/build/linux/Makefile
+@@ -0,0 +1,329 @@
++# Makefile
++
++include config.mak
++
++vpath %.cc $(SRCPATH)
++vpath %.c $(SRCPATH)
++vpath %.h $(SRCPATH)
++vpath %.S $(SRCPATH)
++vpath %.asm $(SRCPATH)
++vpath %.rc $(SRCPATH)
++CFLAGS += -I$(SRCPATH) -I$(SRCPATH)/.. \
++ -I$(SRCPATH)/x86 \
++ -I$(SRCPATH)/vec
++
++GENERATED =
++
++all: default
++default:
++
++SRCS = common/aec.cc common/alf.cc \
++ common/bitstream.cc common/block_info.cc \
++ common/common.cc common/davs2.cc common/cpu.cc common/cu.cc \
++ common/deblock.cc common/decoder.cc \
++ common/frame.cc common/header.cc \
++ common/intra.cc common/mc.cc \
++ common/memory.cc \
++ common/pixel.cc common/predict.cc \
++ common/quant.cc \
++ common/sao.cc common/transform.cc \
++ common/primitives.cc \
++ common/threadpool.cc
++
++SRCCLI = test/test.c
++
++SRCSO =
++OBJS =
++OBJAVX =
++OBJSO =
++OBJCLI =
++
++#OBJCHK = tools/checkasm.o
++
++CONFIG: $(shell cat config.h)
++
++ifneq ($(findstring HAVE_THREAD 1, $(CONFIG)),)
++SRCS += common/threadpool.cc
++endif
++
++# MMX/SSE optims
++ifneq ($(AS),)
++# asm --------------------------------------------------------------
++X86SRC = common/x86/const-a.asm \
++ common/x86/blockcopy8.asm \
++ common/x86/cpu-a.asm \
++ common/x86/dct8.asm \
++ common/x86/mc-a2.asm \
++ common/x86/pixeladd8.asm \
++ common/x86/quant8.asm
++
++ifeq ($(SYS_ARCH),X86)
++ARCH_X86 = yes
++ASMSRC = $(X86SRC)
++endif
++
++## Until now, we do not have 64-bit asm
++ifeq ($(SYS_ARCH),X86_64)
++ARCH_X86 = yes
++SRCS += common/vec/intrinsic.cc \
++ common/vec/intrinsic_alf.cc \
++ common/vec/intrinsic_sao.cc \
++ common/vec/intrinsic_deblock.cc \
++ common/vec/intrinsic_intra-filledge.cc \
++ common/vec/intrinsic_intra-pred.cc \
++ common/vec/intrinsic_inter_pred.cc \
++ common/vec/intrinsic_idct.cc \
++ common/vec/intrinsic_pixel.cc
++
++SRCSAVX = common/vec/intrinsic_sao_avx2.cc \
++ common/vec/intrinsic_deblock_avx2.cc \
++ common/vec/intrinsic_intra-pred_avx2.cc \
++ common/vec/intrinsic_inter_pred_avx2.cc \
++ common/vec/intrinsic_pixel_avx.cc \
++ common/vec/intrinsic_idct_avx2.cc
++
++CFLAGS += -mmmx -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -msse4a -mssse3 -mavx
++# ASMSRC = $(X86SRC:-32.asm=-64.asm)
++ASMSRC = $(X86SRC)
++ASFLAGS += -DARCH_X86_64=1
++OBJASM = $(ASMSRC:%.asm=%.o)
++$(OBJASM): common/x86/x86inc.asm common/x86/x86util.asm
++endif
++
++ifdef ARCH_X86
++ASFLAGS += -I$(SRCPATH)/x86/
++#SRCS += x86/mc-c.cc x86/predict-c.cc
++OBJASM = $(ASMSRC:%.asm=%.o)
++$(OBJASM): common/x86/x86inc.asm common/x86/x86util.asm
++endif
++
++# AltiVec optims
++ifeq ($(SYS_ARCH),PPC)
++SRCS += common/ppc/mc.cc common/ppc/pixel.cc common/ppc/dct.cc \
++ common/ppc/quant.cc common/ppc/deblock.cc \
++ common/ppc/predict.cc
++endif
++
++# NEON optims
++ifeq ($(SYS_ARCH),ARM)
++# x264 ARM asm sources
++# ASMSRC += common/arm/cpu-a.S common/arm/pixel-a.S common/arm/mc-a.S \
++# common/arm/dct-a.S common/arm/quant-a.S common/arm/deblock-a.S \
++# common/arm/predict-a.S common/arm/bitstream-a.S
++# SRCS += common/arm/mc-c.cc common/arm/predict-c.cc
++# x265 ARM asm sources
++ASMSRC += common/arm/blockcopy8.S common/arm/cpu-a.S common/arm/dct-a.S \
++ common/arm/ipfilter8.S common/arm/mc-a.S common/arm/pixel-util.S \
++ common/arm/sad-a.S common/arm/ssd-a.S
++OBJASM = $(ASMSRC:%.S=%.o)
++endif
++
++# AArch64 NEON optims
++ifeq ($(SYS_ARCH),AARCH64)
++ASMSRC += common/aarch64/bitstream-a.S \
++ common/aarch64/cabac-a.S \
++ common/aarch64/dct-a.S \
++ common/aarch64/deblock-a.S \
++ common/aarch64/mc-a.S \
++ common/aarch64/pixel-a.S \
++ common/aarch64/predict-a.S \
++ common/aarch64/quant-a.S
++SRCS += common/aarch64/asm-offsets.cc \
++ common/aarch64/mc-c.cc \
++ common/aarch64/predict-c.cc
++OBJASM = $(ASMSRC:%.S=%.o)
++OBJCHK += tools/checkasm-aarch64.o
++endif
++
++# MSA optims
++ifeq ($(SYS_ARCH),MIPS)
++ifneq ($(findstring HAVE_MSA 1, $(CONFIG)),)
++SRCS += common/mips/mc-c.cc common/mips/dct-c.cc \
++ common/mips/deblock-c.cc common/mips/pixel-c.cc \
++ common/mips/predict-c.cc common/mips/quant-c.cc
++endif
++endif
++
++# asm --------------------------------------------------------------
++endif
++# here ends ifneq ($(AS),)
++
++ifneq ($(HAVE_GETOPT_LONG),1)
++SRCS += compat/getopt/getopt.cc
++endif
++
++## Windows Dll
++## ifeq ($(SYS), WINDOWS)
++## # OBJCLI += $(if $(RC), davs2res.o)
++## ifneq ($(SONAME),)
++## SRCSO += davs2dll.cc
++## OBJSO += $(if $(RC), davs2res.dll.o)
++## endif
++## endif
++
++OBJS += $(SRCS:%.cc=%.o)
++OBJAVX += $(SRCSAVX:%.cc=%.o)
++OBJCLI += $(SRCCLI:%.c=%.o)
++OBJSO += $(SRCSO:%.cc=%.o)
++
++.PHONY: all default fprofiled clean distclean install install-* uninstall cli lib-* etags
++
++cli: davs2$(EXE)
++lib-static: $(LIBDAVS2)
++lib-shared: $(SONAME)
++
++$(LIBDAVS2): $(GENERATED) .depend $(OBJS) $(OBJAVX) $(OBJASM)
++ @echo "\033[33m [linking static] $(LIBDAVS2) \033[0m"
++ rm -f $(LIBDAVS2)
++ $(AR)$@ $(OBJS) $(OBJAVX) $(OBJASM)
++ $(if $(RANLIB), $(RANLIB) $@)
++
++$(SONAME): $(GENERATED) .depend $(OBJS) $(OBJAVX) $(OBJASM) $(OBJSO)
++ @echo "\033[33m [linking shared] $(SONAME) \033[0m"
++ $(LD)$@ $(OBJS) $(OBJAVX) $(OBJASM) $(OBJSO) $(SOFLAGS) $(LDFLAGS)
++
++ifneq ($(EXE),)
++.PHONY: davs2 checkasm
++davs2: davs2$(EXE)
++checkasm: checkasm$(EXE)
++endif
++
++davs2$(EXE): $(GENERATED) .depend $(OBJCLI) $(CLI_LIBDAVS2)
++ @echo "\033[33m [linking execution] davs2$(EXE) \033[0m"
++ $(LD)$@ $(OBJCLI) $(CLI_LIBDAVS2) $(LDFLAGSCLI) $(LDFLAGS)
++
++checkasm$(EXE): $(GENERATED) .depend $(OBJCHK) $(LIBDAVS2)
++ @echo "\033[33m [linking checkasm] checkasm$(EXE) \033[0m"
++ $(LD)$@ $(OBJCHK) $(LIBDAVS2) $(LDFLAGS)
++
++$(OBJS) $(OBJAVX) $(OBJASM) $(OBJSO) $(OBJCLI) $(OBJCHK): .depend
++
++%.o: %.asm common/x86/x86inc.asm common/x86/x86util.asm
++ @echo "\033[33m [Compiling asm]: $< \033[0m"
++ $(AS) $(ASFLAGS) -o $@ $<
++ -@ $(if $(STRIP), $(STRIP) -x $@) # delete local/anonymous symbols, so they don't show up in oprofile
++
++%.o: %.S
++ @echo "\033[33m [Compiling asm]: $< \033[0m"
++ $(AS) $(ASFLAGS) -o $@ $<
++ -@ $(if $(STRIP), $(STRIP) -x $@) # delete local/anonymous symbols, so they don't show up in oprofile
++
++%.dll.o: %.rc davs2.h
++ @echo "\033[33m [Compiling dll]: $< \033[0m"
++ $(RC) $(RCFLAGS)$@ -DDLL $<
++
++%.o: %.rc davs2.h
++ @echo "\033[33m [Compiling rc]: $< \033[0m"
++ $(RC) $(RCFLAGS)$@ $<
++
++$(OBJAVX):
++ @echo "\033[33m [Compiling]: $(@:.o=.cc) \033[0m"
++ $(CC) $(CFLAGS) -mavx2 -c -o $@ $(SRCPATH)/$(@:.o=.cc)
++
++%.o: %.cc
++ @echo "\033[33m [Compiling]: $< \033[0m"
++ $(CC) $(CFLAGS) -c -o $@ $<
++
++%.o: %.c
++ @echo "\033[33m [Compiling]: $< \033[0m"
++ $(CC) $(CFLAGS) -c -o $@ $<
++
++.depend: config.mak
++ @rm -f .depend
++ @echo "\033[33m dependency file generation... \033[0m"
++ifeq ($(COMPILER),CL)
++ @$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCS) $(SRCCLI) $(SRCSO)), $(SRCPATH)/tools/msvsdepend.sh "$(CC)" "$(CFLAGS)" "$(SRC)" "$(SRC:$(SRCPATH)/%.cc=%.o)" 1>> .depend;)
++ @$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCSAVX)), $(SRCPATH)/tools/msvsdepend.sh "$(CC)" "$(CFLAGS)" "$(SRC)" "$(SRC:$(SRCPATH)/%.cc=%.o)" 1>> .depend;)
++else
++ @$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCS) $(SRCCLI) $(SRCSO)), $(CC) $(CFLAGS) $(SRC) $(DEPMT) $(SRC:$(SRCPATH)/%.cc=%.o) $(DEPMM) 1>> .depend;)
++ @$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCSAVX)), $(CC) $(CFLAGS) $(SRC) $(DEPMT) $(SRC:$(SRCPATH)/%.cc=%.o) $(DEPMM) 1>> .depend;)
++endif
++
++config.mak:
++ ./configure
++
++depend: .depend
++ifneq ($(wildcard .depend),)
++include .depend
++endif
++
++SRC2 = $(SRCS) $(SRCCLI)
++# These should cover most of the important codepaths
++OPT0 = --crf 30 -b1 -m1 -r1 --me dia --no-cabac --direct temporal --ssim --no-weightb
++OPT1 = --crf 16 -b2 -m3 -r3 --me hex --no-8x8dct --direct spatial --no-dct-decimate -t0 --slice-max-mbs 50
++OPT2 = --crf 26 -b4 -m5 -r2 --me hex --cqm jvt --nr 100 --psnr --no-mixed-refs --b-adapt 2 --slice-max-size 1500
++OPT3 = --crf 18 -b3 -m9 -r5 --me umh -t1 -A all --b-pyramid normal --direct auto --no-fast-pskip --no-mbtree
++OPT4 = --crf 22 -b3 -m7 -r4 --me esa -t2 -A all --psy-rd 1.0:1.0 --slices 4
++OPT5 = --frames 50 --crf 24 -b3 -m10 -r3 --me tesa -t2
++OPT6 = --frames 50 -q0 -m9 -r2 --me hex -Aall
++OPT7 = --frames 50 -q0 -m2 -r1 --me hex --no-cabac
++
++ifeq (,$(VIDS))
++fprofiled:
++ @echo 'usage: make fprofiled VIDS="infile1 infile2 ..."'
++ @echo 'where infiles are anything that davs2 understands,'
++ @echo 'i.e. YUV with resolution in the filename, y4m, or avisynth.'
++else
++fprofiled:
++ $(MAKE) clean
++ $(MAKE) davs2$(EXE) CFLAGS="$(CFLAGS) $(PROF_GEN_CC)" LDFLAGS="$(LDFLAGS) $(PROF_GEN_LD)"
++ $(foreach V, $(VIDS), $(foreach I, 0 1 2 3 4 5 6 7, ./davs2$(EXE) $(OPT$I) --threads 1 $(V) -o $(DEVNULL) ;))
++ifeq ($(COMPILER),CL)
++# Because Visual Studio timestamps the object files within the PGD, it fails to build if they change - only the executable should be deleted
++ rm -f davs2$(EXE)
++else
++ rm -f $(SRC2:%.cc=%.o)
++endif
++ $(MAKE) CFLAGS="$(CFLAGS) $(PROF_USE_CC)" LDFLAGS="$(LDFLAGS) $(PROF_USE_LD)"
++ rm -f $(SRC2:%.cc=%.gcda) $(SRC2:%.cc=%.gcno) *.dyn pgopti.dpi pgopti.dpi.lock *.pgd *.pgc
++endif
++
++clean:
++ rm -f $(OBJS) $(OBJASM) $(OBJCLI) $(OBJSO) $(SONAME)
++ rm -f *.a *.lib *.exp *.pdb libdavs2.so* davs2 davs2.exe .depend TAGS
++ rm -f checkasm checkasm.exe $(OBJCHK) $(GENERATED) davs2_lookahead.cclbin
++ rm -f example example.exe $(OBJEXAMPLE)
++ rm -f $(SRC2:%.cc=%.gcda) $(SRC2:%.cc=%.gcno) *.dyn pgopti.dpi pgopti.dpi.lock *.pgd *.pgc
++
++distclean: clean
++ rm -f config.mak davs2_config.h config.h config.log davs2.pc davs2.def conftest*
++
++install-cli: cli
++ $(INSTALL) -d $(DESTDIR)$(bindir)
++ $(INSTALL) davs2$(EXE) $(DESTDIR)$(bindir)
++
++install-lib-dev:
++ $(INSTALL) -d $(DESTDIR)$(includedir)
++ $(INSTALL) -d $(DESTDIR)$(libdir)
++ $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
++ $(INSTALL) -m 644 $(SRCPATH)/davs2.h $(DESTDIR)$(includedir)
++ $(INSTALL) -m 644 davs2_config.h $(DESTDIR)$(includedir)
++ $(INSTALL) -m 644 davs2.pc $(DESTDIR)$(libdir)/pkgconfig
++
++install-lib-static: lib-static install-lib-dev
++ $(INSTALL) -m 644 $(LIBDAVS2) $(DESTDIR)$(libdir)
++ $(if $(RANLIB), $(RANLIB) $(DESTDIR)$(libdir)/$(LIBDAVS2))
++
++install-lib-shared: lib-shared install-lib-dev
++ifneq ($(IMPLIBNAME),)
++ $(INSTALL) -d $(DESTDIR)$(bindir)
++ $(INSTALL) -m 755 $(SONAME) $(DESTDIR)$(bindir)
++ $(INSTALL) -m 644 $(IMPLIBNAME) $(DESTDIR)$(libdir)
++else ifneq ($(SONAME),)
++ ln -f -s $(SONAME) $(DESTDIR)$(libdir)/libdavs2.$(SOSUFFIX)
++ $(INSTALL) -m 755 $(SONAME) $(DESTDIR)$(libdir)
++endif
++
++uninstall:
++ rm -f $(DESTDIR)$(includedir)/davs2.h $(DESTDIR)$(includedir)/davs2_config.h $(DESTDIR)$(libdir)/libdavs2.a
++ rm -f $(DESTDIR)$(bindir)/davs2$(EXE) $(DESTDIR)$(libdir)/pkgconfig/davs2.pc
++ifneq ($(IMPLIBNAME),)
++ rm -f $(DESTDIR)$(bindir)/$(SONAME) $(DESTDIR)$(libdir)/$(IMPLIBNAME)
++else ifneq ($(SONAME),)
++ rm -f $(DESTDIR)$(libdir)/$(SONAME) $(DESTDIR)$(libdir)/libdavs2.$(SOSUFFIX)
++endif
++
++etags: TAGS
++
++TAGS:
++ etags $(SRCS)
+diff --git a/build/linux/config.guess b/build/linux/config.guess
+new file mode 100755
+index 0000000..2193702
+--- /dev/null
++++ b/build/linux/config.guess
+@@ -0,0 +1,1473 @@
++#! /bin/sh
++# Attempt to guess a canonical system name.
++# Copyright 1992-2017 Free Software Foundation, Inc.
++
++timestamp='2017-05-27'
++
++# This file is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
++#
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
++#
++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
++#
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
++#
++# Please send patches to <config-patches@gnu.org>.
++
++
++me=`echo "$0" | sed -e 's,.*/,,'`
++
++usage="\
++Usage: $0 [OPTION]
++
++Output the configuration name of the system \`$me' is run on.
++
++Operation modes:
++ -h, --help print this help, then exit
++ -t, --time-stamp print date of last modification, then exit
++ -v, --version print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.guess ($timestamp)
++
++Originally written by Per Bothner.
++Copyright 1992-2017 Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions. There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++ case $1 in
++ --time-stamp | --time* | -t )
++ echo "$timestamp" ; exit ;;
++ --version | -v )
++ echo "$version" ; exit ;;
++ --help | --h* | -h )
++ echo "$usage"; exit ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "$me: invalid option $1$help" >&2
++ exit 1 ;;
++ * )
++ break ;;
++ esac
++done
++
++if test $# != 0; then
++ echo "$me: too many arguments$help" >&2
++ exit 1
++fi
++
++trap 'exit 1' 1 2 15
++
++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
++# compiler to aid in system detection is discouraged as it requires
++# temporary files to be created and, as you can see below, it is a
++# headache to deal with in a portable fashion.
++
++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
++# use `HOST_CC' if defined, but it is deprecated.
++
++# Portable tmp directory creation inspired by the Autoconf team.
++
++set_cc_for_build='
++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
++: ${TMPDIR=/tmp} ;
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
++dummy=$tmp/dummy ;
++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
++case $CC_FOR_BUILD,$HOST_CC,$CC in
++ ,,) echo "int x;" > $dummy.c ;
++ for c in cc gcc c89 c99 ; do
++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
++ CC_FOR_BUILD="$c"; break ;
++ fi ;
++ done ;
++ if test x"$CC_FOR_BUILD" = x ; then
++ CC_FOR_BUILD=no_compiler_found ;
++ fi
++ ;;
++ ,,*) CC_FOR_BUILD=$CC ;;
++ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
++esac ; set_cc_for_build= ;'
++
++# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
++# (ghazi@noc.rutgers.edu 1994-08-24)
++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
++ PATH=$PATH:/.attbin ; export PATH
++fi
++
++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_SYSTEM}" in
++Linux|GNU|GNU/*)
++ # If the system lacks a compiler, then just pick glibc.
++ # We could probably try harder.
++ LIBC=gnu
++
++ eval $set_cc_for_build
++ cat <<-EOF > $dummy.c
++ #include <features.h>
++ #if defined(__UCLIBC__)
++ LIBC=uclibc
++ #elif defined(__dietlibc__)
++ LIBC=dietlibc
++ #else
++ LIBC=gnu
++ #endif
++ EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
++ ;;
++esac
++
++# Note: order is significant - the case branches are not exclusive.
++
++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
++ *:NetBSD:*:*)
++ # NetBSD (nbsd) targets should (where applicable) match one or
++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
++ # switched to ELF, *-*-netbsd* would select the old
++ # object file format. This provides both forward
++ # compatibility and a consistent mechanism for selecting the
++ # object file format.
++ #
++ # Note: NetBSD doesn't particularly care about the vendor
++ # portion of the name. We always set it to "unknown".
++ sysctl="sysctl -n hw.machine_arch"
++ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
++ /sbin/$sysctl 2>/dev/null || \
++ /usr/sbin/$sysctl 2>/dev/null || \
++ echo unknown)`
++ case "${UNAME_MACHINE_ARCH}" in
++ armeb) machine=armeb-unknown ;;
++ arm*) machine=arm-unknown ;;
++ sh3el) machine=shl-unknown ;;
++ sh3eb) machine=sh-unknown ;;
++ sh5el) machine=sh5le-unknown ;;
++ earmv*)
++ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
++ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
++ machine=${arch}${endian}-unknown
++ ;;
++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
++ esac
++ # The Operating System including object format, if it has switched
++ # to ELF recently (or will in the future) and ABI.
++ case "${UNAME_MACHINE_ARCH}" in
++ earm*)
++ os=netbsdelf
++ ;;
++ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
++ eval $set_cc_for_build
++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ELF__
++ then
++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
++ # Return netbsd for either. FIX?
++ os=netbsd
++ else
++ os=netbsdelf
++ fi
++ ;;
++ *)
++ os=netbsd
++ ;;
++ esac
++ # Determine ABI tags.
++ case "${UNAME_MACHINE_ARCH}" in
++ earm*)
++ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
++ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
++ ;;
++ esac
++ # The OS release
++ # Debian GNU/NetBSD machines have a different userland, and
++ # thus, need a distinct triplet. However, they do not need
++ # kernel version information, so it can be replaced with a
++ # suitable tag, in the style of linux-gnu.
++ case "${UNAME_VERSION}" in
++ Debian*)
++ release='-gnu'
++ ;;
++ *)
++ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
++ ;;
++ esac
++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
++ # contains redundant information, the shorter form:
++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
++ echo "${machine}-${os}${release}${abi}"
++ exit ;;
++ *:Bitrig:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
++ exit ;;
++ *:OpenBSD:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++ exit ;;
++ *:LibertyBSD:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
++ exit ;;
++ *:ekkoBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
++ exit ;;
++ *:SolidBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
++ exit ;;
++ macppc:MirBSD:*:*)
++ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
++ exit ;;
++ *:MirBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
++ exit ;;
++ *:Sortix:*:*)
++ echo ${UNAME_MACHINE}-unknown-sortix
++ exit ;;
++ alpha:OSF1:*:*)
++ case $UNAME_RELEASE in
++ *4.0)
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
++ ;;
++ *5.*)
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++ ;;
++ esac
++ # According to Compaq, /usr/sbin/psrinfo has been available on
++ # OSF/1 and Tru64 systems produced since 1995. I hope that
++ # covers most systems running today. This code pipes the CPU
++ # types through head -n 1, so we only detect the type of CPU 0.
++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
++ case "$ALPHA_CPU_TYPE" in
++ "EV4 (21064)")
++ UNAME_MACHINE=alpha ;;
++ "EV4.5 (21064)")
++ UNAME_MACHINE=alpha ;;
++ "LCA4 (21066/21068)")
++ UNAME_MACHINE=alpha ;;
++ "EV5 (21164)")
++ UNAME_MACHINE=alphaev5 ;;
++ "EV5.6 (21164A)")
++ UNAME_MACHINE=alphaev56 ;;
++ "EV5.6 (21164PC)")
++ UNAME_MACHINE=alphapca56 ;;
++ "EV5.7 (21164PC)")
++ UNAME_MACHINE=alphapca57 ;;
++ "EV6 (21264)")
++ UNAME_MACHINE=alphaev6 ;;
++ "EV6.7 (21264A)")
++ UNAME_MACHINE=alphaev67 ;;
++ "EV6.8CB (21264C)")
++ UNAME_MACHINE=alphaev68 ;;
++ "EV6.8AL (21264B)")
++ UNAME_MACHINE=alphaev68 ;;
++ "EV6.8CX (21264D)")
++ UNAME_MACHINE=alphaev68 ;;
++ "EV6.9A (21264/EV69A)")
++ UNAME_MACHINE=alphaev69 ;;
++ "EV7 (21364)")
++ UNAME_MACHINE=alphaev7 ;;
++ "EV7.9 (21364A)")
++ UNAME_MACHINE=alphaev79 ;;
++ esac
++ # A Pn.n version is a patched version.
++ # A Vn.n version is a released version.
++ # A Tn.n version is a released field test version.
++ # A Xn.n version is an unreleased experimental baselevel.
++ # 1.2 uses "1.2" for uname -r.
++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++ exitcode=$?
++ trap '' 0
++ exit $exitcode ;;
++ Alpha\ *:Windows_NT*:*)
++ # How do we know it's Interix rather than the generic POSIX subsystem?
++ # Should we change UNAME_MACHINE based on the output of uname instead
++ # of the specific Alpha model?
++ echo alpha-pc-interix
++ exit ;;
++ 21064:Windows_NT:50:3)
++ echo alpha-dec-winnt3.5
++ exit ;;
++ Amiga*:UNIX_System_V:4.0:*)
++ echo m68k-unknown-sysv4
++ exit ;;
++ *:[Aa]miga[Oo][Ss]:*:*)
++ echo ${UNAME_MACHINE}-unknown-amigaos
++ exit ;;
++ *:[Mm]orph[Oo][Ss]:*:*)
++ echo ${UNAME_MACHINE}-unknown-morphos
++ exit ;;
++ *:OS/390:*:*)
++ echo i370-ibm-openedition
++ exit ;;
++ *:z/VM:*:*)
++ echo s390-ibm-zvmoe
++ exit ;;
++ *:OS400:*:*)
++ echo powerpc-ibm-os400
++ exit ;;
++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
++ echo arm-acorn-riscix${UNAME_RELEASE}
++ exit ;;
++ arm*:riscos:*:*|arm*:RISCOS:*:*)
++ echo arm-unknown-riscos
++ exit ;;
++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
++ echo hppa1.1-hitachi-hiuxmpp
++ exit ;;
++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
++ if test "`(/bin/universe) 2>/dev/null`" = att ; then
++ echo pyramid-pyramid-sysv3
++ else
++ echo pyramid-pyramid-bsd
++ fi
++ exit ;;
++ NILE*:*:*:dcosx)
++ echo pyramid-pyramid-svr4
++ exit ;;
++ DRS?6000:unix:4.0:6*)
++ echo sparc-icl-nx6
++ exit ;;
++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
++ case `/usr/bin/uname -p` in
++ sparc) echo sparc-icl-nx7; exit ;;
++ esac ;;
++ s390x:SunOS:*:*)
++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4H:SunOS:5.*:*)
++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
++ echo i386-pc-auroraux${UNAME_RELEASE}
++ exit ;;
++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
++ eval $set_cc_for_build
++ SUN_ARCH=i386
++ # If there is a compiler, see if it is configured for 64-bit objects.
++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
++ # This test works for both compilers.
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ SUN_ARCH=x86_64
++ fi
++ fi
++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4*:SunOS:6*:*)
++ # According to config.sub, this is the proper way to canonicalize
++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
++ # it's likely to be more like Solaris than SunOS4.
++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4*:SunOS:*:*)
++ case "`/usr/bin/arch -k`" in
++ Series*|S4*)
++ UNAME_RELEASE=`uname -v`
++ ;;
++ esac
++ # Japanese Language versions have a version number like `4.1.3-JL'.
++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
++ exit ;;
++ sun3*:SunOS:*:*)
++ echo m68k-sun-sunos${UNAME_RELEASE}
++ exit ;;
++ sun*:*:4.2BSD:*)
++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
++ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
++ case "`/bin/arch`" in
++ sun3)
++ echo m68k-sun-sunos${UNAME_RELEASE}
++ ;;
++ sun4)
++ echo sparc-sun-sunos${UNAME_RELEASE}
++ ;;
++ esac
++ exit ;;
++ aushp:SunOS:*:*)
++ echo sparc-auspex-sunos${UNAME_RELEASE}
++ exit ;;
++ # The situation for MiNT is a little confusing. The machine name
++ # can be virtually everything (everything which is not
++ # "atarist" or "atariste" at least should have a processor
++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
++ # to the lowercase version "mint" (or "freemint"). Finally
++ # the system name "TOS" denotes a system which is actually not
++ # MiNT. But MiNT is downward compatible to TOS, so this should
++ # be no problem.
++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit ;;
++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit ;;
++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit ;;
++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit ;;
++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit ;;
++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit ;;
++ m68k:machten:*:*)
++ echo m68k-apple-machten${UNAME_RELEASE}
++ exit ;;
++ powerpc:machten:*:*)
++ echo powerpc-apple-machten${UNAME_RELEASE}
++ exit ;;
++ RISC*:Mach:*:*)
++ echo mips-dec-mach_bsd4.3
++ exit ;;
++ RISC*:ULTRIX:*:*)
++ echo mips-dec-ultrix${UNAME_RELEASE}
++ exit ;;
++ VAX*:ULTRIX*:*:*)
++ echo vax-dec-ultrix${UNAME_RELEASE}
++ exit ;;
++ 2020:CLIX:*:* | 2430:CLIX:*:*)
++ echo clipper-intergraph-clix${UNAME_RELEASE}
++ exit ;;
++ mips:*:*:UMIPS | mips:*:*:RISCos)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++#ifdef __cplusplus
++#include <stdio.h> /* for printf() prototype */
++ int main (int argc, char *argv[]) {
++#else
++ int main (argc, argv) int argc; char *argv[]; {
++#endif
++ #if defined (host_mips) && defined (MIPSEB)
++ #if defined (SYSTYPE_SYSV)
++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
++ #endif
++ #if defined (SYSTYPE_SVR4)
++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
++ #endif
++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
++ #endif
++ #endif
++ exit (-1);
++ }
++EOF
++ $CC_FOR_BUILD -o $dummy $dummy.c &&
++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++ SYSTEM_NAME=`$dummy $dummyarg` &&
++ { echo "$SYSTEM_NAME"; exit; }
++ echo mips-mips-riscos${UNAME_RELEASE}
++ exit ;;
++ Motorola:PowerMAX_OS:*:*)
++ echo powerpc-motorola-powermax
++ exit ;;
++ Motorola:*:4.3:PL8-*)
++ echo powerpc-harris-powermax
++ exit ;;
++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
++ echo powerpc-harris-powermax
++ exit ;;
++ Night_Hawk:Power_UNIX:*:*)
++ echo powerpc-harris-powerunix
++ exit ;;
++ m88k:CX/UX:7*:*)
++ echo m88k-harris-cxux7
++ exit ;;
++ m88k:*:4*:R4*)
++ echo m88k-motorola-sysv4
++ exit ;;
++ m88k:*:3*:R3*)
++ echo m88k-motorola-sysv3
++ exit ;;
++ AViiON:dgux:*:*)
++ # DG/UX returns AViiON for all architectures
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
++ then
++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
++ [ ${TARGET_BINARY_INTERFACE}x = x ]
++ then
++ echo m88k-dg-dgux${UNAME_RELEASE}
++ else
++ echo m88k-dg-dguxbcs${UNAME_RELEASE}
++ fi
++ else
++ echo i586-dg-dgux${UNAME_RELEASE}
++ fi
++ exit ;;
++ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
++ echo m88k-dolphin-sysv3
++ exit ;;
++ M88*:*:R3*:*)
++ # Delta 88k system running SVR3
++ echo m88k-motorola-sysv3
++ exit ;;
++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
++ echo m88k-tektronix-sysv3
++ exit ;;
++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
++ echo m68k-tektronix-bsd
++ exit ;;
++ *:IRIX*:*:*)
++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
++ exit ;;
++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
++ i*86:AIX:*:*)
++ echo i386-ibm-aix
++ exit ;;
++ ia64:AIX:*:*)
++ if [ -x /usr/bin/oslevel ] ; then
++ IBM_REV=`/usr/bin/oslevel`
++ else
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ fi
++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
++ exit ;;
++ *:AIX:2:3)
++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #include <sys/systemcfg.h>
++
++ main()
++ {
++ if (!__power_pc())
++ exit(1);
++ puts("powerpc-ibm-aix3.2.5");
++ exit(0);
++ }
++EOF
++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
++ then
++ echo "$SYSTEM_NAME"
++ else
++ echo rs6000-ibm-aix3.2.5
++ fi
++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
++ echo rs6000-ibm-aix3.2.4
++ else
++ echo rs6000-ibm-aix3.2
++ fi
++ exit ;;
++ *:AIX:*:[4567])
++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
++ IBM_ARCH=rs6000
++ else
++ IBM_ARCH=powerpc
++ fi
++ if [ -x /usr/bin/lslpp ] ; then
++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
++ else
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ fi
++ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
++ exit ;;
++ *:AIX:*:*)
++ echo rs6000-ibm-aix
++ exit ;;
++ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
++ echo romp-ibm-bsd4.4
++ exit ;;
++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
++ exit ;; # report: romp-ibm BSD 4.3
++ *:BOSX:*:*)
++ echo rs6000-bull-bosx
++ exit ;;
++ DPX/2?00:B.O.S.:*:*)
++ echo m68k-bull-sysv3
++ exit ;;
++ 9000/[34]??:4.3bsd:1.*:*)
++ echo m68k-hp-bsd
++ exit ;;
++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
++ echo m68k-hp-bsd4.4
++ exit ;;
++ 9000/[34678]??:HP-UX:*:*)
++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++ case "${UNAME_MACHINE}" in
++ 9000/31? ) HP_ARCH=m68000 ;;
++ 9000/[34]?? ) HP_ARCH=m68k ;;
++ 9000/[678][0-9][0-9])
++ if [ -x /usr/bin/getconf ]; then
++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++ case "${sc_cpu_version}" in
++ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
++ 532) # CPU_PA_RISC2_0
++ case "${sc_kernel_bits}" in
++ 32) HP_ARCH=hppa2.0n ;;
++ 64) HP_ARCH=hppa2.0w ;;
++ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
++ esac ;;
++ esac
++ fi
++ if [ "${HP_ARCH}" = "" ]; then
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
++
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
++EOF
++ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++ test -z "$HP_ARCH" && HP_ARCH=hppa
++ fi ;;
++ esac
++ if [ ${HP_ARCH} = hppa2.0w ]
++ then
++ eval $set_cc_for_build
++
++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
++ # generating 64-bit code. GNU and HP use different nomenclature:
++ #
++ # $ CC_FOR_BUILD=cc ./config.guess
++ # => hppa2.0w-hp-hpux11.23
++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++ # => hppa64-hp-hpux11.23
++
++ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
++ grep -q __LP64__
++ then
++ HP_ARCH=hppa2.0w
++ else
++ HP_ARCH=hppa64
++ fi
++ fi
++ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
++ exit ;;
++ ia64:HP-UX:*:*)
++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++ echo ia64-hp-hpux${HPUX_REV}
++ exit ;;
++ 3050*:HI-UX:*:*)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #include <unistd.h>
++ int
++ main ()
++ {
++ long cpu = sysconf (_SC_CPU_VERSION);
++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
++ results, however. */
++ if (CPU_IS_PA_RISC (cpu))
++ {
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
++ default: puts ("hppa-hitachi-hiuxwe2"); break;
++ }
++ }
++ else if (CPU_IS_HP_MC68K (cpu))
++ puts ("m68k-hitachi-hiuxwe2");
++ else puts ("unknown-hitachi-hiuxwe2");
++ exit (0);
++ }
++EOF
++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
++ echo unknown-hitachi-hiuxwe2
++ exit ;;
++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
++ echo hppa1.1-hp-bsd
++ exit ;;
++ 9000/8??:4.3bsd:*:*)
++ echo hppa1.0-hp-bsd
++ exit ;;
++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
++ echo hppa1.0-hp-mpeix
++ exit ;;
++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
++ echo hppa1.1-hp-osf
++ exit ;;
++ hp8??:OSF1:*:*)
++ echo hppa1.0-hp-osf
++ exit ;;
++ i*86:OSF1:*:*)
++ if [ -x /usr/sbin/sysversion ] ; then
++ echo ${UNAME_MACHINE}-unknown-osf1mk
++ else
++ echo ${UNAME_MACHINE}-unknown-osf1
++ fi
++ exit ;;
++ parisc*:Lites*:*:*)
++ echo hppa1.1-hp-lites
++ exit ;;
++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
++ echo c1-convex-bsd
++ exit ;;
++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
++ if getsysinfo -f scalar_acc
++ then echo c32-convex-bsd
++ else echo c2-convex-bsd
++ fi
++ exit ;;
++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
++ echo c34-convex-bsd
++ exit ;;
++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
++ echo c38-convex-bsd
++ exit ;;
++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
++ echo c4-convex-bsd
++ exit ;;
++ CRAY*Y-MP:*:*:*)
++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*[A-Z]90:*:*:*)
++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
++ -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*TS:*:*:*)
++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*T3E:*:*:*)
++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*SV1:*:*:*)
++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ *:UNICOS/mp:*:*)
++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
++ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ exit ;;
++ 5000:UNIX_System_V:4.*:*)
++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ exit ;;
++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
++ exit ;;
++ sparc*:BSD/OS:*:*)
++ echo sparc-unknown-bsdi${UNAME_RELEASE}
++ exit ;;
++ *:BSD/OS:*:*)
++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
++ exit ;;
++ *:FreeBSD:*:*)
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ case ${UNAME_PROCESSOR} in
++ amd64)
++ UNAME_PROCESSOR=x86_64 ;;
++ i386)
++ UNAME_PROCESSOR=i586 ;;
++ esac
++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++ exit ;;
++ i*:CYGWIN*:*)
++ echo ${UNAME_MACHINE}-pc-cygwin
++ exit ;;
++ *:MINGW64*:*)
++ echo ${UNAME_MACHINE}-pc-mingw64
++ exit ;;
++ *:MINGW*:*)
++ echo ${UNAME_MACHINE}-pc-mingw32
++ exit ;;
++ *:MSYS*:*)
++ echo ${UNAME_MACHINE}-pc-msys
++ exit ;;
++ i*:windows32*:*)
++ # uname -m includes "-pc" on this system.
++ echo ${UNAME_MACHINE}-mingw32
++ exit ;;
++ i*:PW*:*)
++ echo ${UNAME_MACHINE}-pc-pw32
++ exit ;;
++ *:Interix*:*)
++ case ${UNAME_MACHINE} in
++ x86)
++ echo i586-pc-interix${UNAME_RELEASE}
++ exit ;;
++ authenticamd | genuineintel | EM64T)
++ echo x86_64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ IA64)
++ echo ia64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ esac ;;
++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
++ echo i${UNAME_MACHINE}-pc-mks
++ exit ;;
++ 8664:Windows_NT:*)
++ echo x86_64-pc-mks
++ exit ;;
++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
++ # How do we know it's Interix rather than the generic POSIX subsystem?
++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
++ # UNAME_MACHINE based on the output of uname instead of i386?
++ echo i586-pc-interix
++ exit ;;
++ i*:UWIN*:*)
++ echo ${UNAME_MACHINE}-pc-uwin
++ exit ;;
++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
++ echo x86_64-unknown-cygwin
++ exit ;;
++ p*:CYGWIN*:*)
++ echo powerpcle-unknown-cygwin
++ exit ;;
++ prep*:SunOS:5.*:*)
++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ *:GNU:*:*)
++ # the GNU system
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ exit ;;
++ *:GNU/*:*:*)
++ # other systems with GNU libc and userland
++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
++ exit ;;
++ i*86:Minix:*:*)
++ echo ${UNAME_MACHINE}-pc-minix
++ exit ;;
++ aarch64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ aarch64_be:Linux:*:*)
++ UNAME_MACHINE=aarch64_be
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ alpha:Linux:*:*)
++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++ EV5) UNAME_MACHINE=alphaev5 ;;
++ EV56) UNAME_MACHINE=alphaev56 ;;
++ PCA56) UNAME_MACHINE=alphapca56 ;;
++ PCA57) UNAME_MACHINE=alphapca56 ;;
++ EV6) UNAME_MACHINE=alphaev6 ;;
++ EV67) UNAME_MACHINE=alphaev67 ;;
++ EV68*) UNAME_MACHINE=alphaev68 ;;
++ esac
++ objdump --private-headers /bin/sh | grep -q ld.so.1
++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ arc:Linux:*:* | arceb:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ arm*:Linux:*:*)
++ eval $set_cc_for_build
++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_EABI__
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ else
++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_PCS_VFP
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
++ else
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
++ fi
++ fi
++ exit ;;
++ avr32*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ cris:Linux:*:*)
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
++ exit ;;
++ crisv32:Linux:*:*)
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
++ exit ;;
++ e2k:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ frv:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ hexagon:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ i*86:Linux:*:*)
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
++ exit ;;
++ ia64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ k1om:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ m32r*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ m68*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ mips:Linux:*:* | mips64:Linux:*:*)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #undef CPU
++ #undef ${UNAME_MACHINE}
++ #undef ${UNAME_MACHINE}el
++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++ CPU=${UNAME_MACHINE}el
++ #else
++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++ CPU=${UNAME_MACHINE}
++ #else
++ CPU=
++ #endif
++ #endif
++EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
++ ;;
++ mips64el:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ openrisc*:Linux:*:*)
++ echo or1k-unknown-linux-${LIBC}
++ exit ;;
++ or32:Linux:*:* | or1k*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ padre:Linux:*:*)
++ echo sparc-unknown-linux-${LIBC}
++ exit ;;
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-${LIBC}
++ exit ;;
++ parisc:Linux:*:* | hppa:Linux:*:*)
++ # Look for CPU level
++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
++ *) echo hppa-unknown-linux-${LIBC} ;;
++ esac
++ exit ;;
++ ppc64:Linux:*:*)
++ echo powerpc64-unknown-linux-${LIBC}
++ exit ;;
++ ppc:Linux:*:*)
++ echo powerpc-unknown-linux-${LIBC}
++ exit ;;
++ ppc64le:Linux:*:*)
++ echo powerpc64le-unknown-linux-${LIBC}
++ exit ;;
++ ppcle:Linux:*:*)
++ echo powerpcle-unknown-linux-${LIBC}
++ exit ;;
++ riscv32:Linux:*:* | riscv64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ s390:Linux:*:* | s390x:Linux:*:*)
++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
++ exit ;;
++ sh64*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ sh*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ sparc:Linux:*:* | sparc64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ tile*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ vax:Linux:*:*)
++ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
++ exit ;;
++ x86_64:Linux:*:*)
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
++ exit ;;
++ xtensa*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ i*86:DYNIX/ptx:4*:*)
++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
++ # earlier versions are messed up and put the nodename in both
++ # sysname and nodename.
++ echo i386-sequent-sysv4
++ exit ;;
++ i*86:UNIX_SV:4.2MP:2.*)
++ # Unixware is an offshoot of SVR4, but it has its own version
++ # number series starting with 2...
++ # I am not positive that other SVR4 systems won't match this,
++ # I just have to hope. -- rms.
++ # Use sysv4.2uw... so that sysv4* matches it.
++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
++ exit ;;
++ i*86:OS/2:*:*)
++ # If we were able to find `uname', then EMX Unix compatibility
++ # is probably installed.
++ echo ${UNAME_MACHINE}-pc-os2-emx
++ exit ;;
++ i*86:XTS-300:*:STOP)
++ echo ${UNAME_MACHINE}-unknown-stop
++ exit ;;
++ i*86:atheos:*:*)
++ echo ${UNAME_MACHINE}-unknown-atheos
++ exit ;;
++ i*86:syllable:*:*)
++ echo ${UNAME_MACHINE}-pc-syllable
++ exit ;;
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
++ echo i386-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ i*86:*DOS:*:*)
++ echo ${UNAME_MACHINE}-pc-msdosdjgpp
++ exit ;;
++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
++ else
++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
++ fi
++ exit ;;
++ i*86:*:5:[678]*)
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
++ case `/bin/uname -X | grep "^Machine"` in
++ *486*) UNAME_MACHINE=i486 ;;
++ *Pentium) UNAME_MACHINE=i586 ;;
++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
++ esac
++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
++ exit ;;
++ i*86:*:3.2:*)
++ if test -f /usr/options/cb.name; then
++ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
++ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
++ elif /bin/uname -X 2>/dev/null >/dev/null ; then
++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
++ && UNAME_MACHINE=i586
++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
++ && UNAME_MACHINE=i686
++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
++ && UNAME_MACHINE=i686
++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
++ else
++ echo ${UNAME_MACHINE}-pc-sysv32
++ fi
++ exit ;;
++ pc:*:*:*)
++ # Left here for compatibility:
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i586.
++ # Note: whatever this is, it MUST be the same as what config.sub
++ # prints for the "djgpp" host, or else GDB configure will decide that
++ # this is a cross-build.
++ echo i586-pc-msdosdjgpp
++ exit ;;
++ Intel:Mach:3*:*)
++ echo i386-pc-mach3
++ exit ;;
++ paragon:*:*:*)
++ echo i860-intel-osf1
++ exit ;;
++ i860:*:4.*:*) # i860-SVR4
++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
++ else # Add other i860-SVR4 vendors below as they are discovered.
++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
++ fi
++ exit ;;
++ mini*:CTIX:SYS*5:*)
++ # "miniframe"
++ echo m68010-convergent-sysv
++ exit ;;
++ mc68k:UNIX:SYSTEM5:3.51m)
++ echo m68k-convergent-sysv
++ exit ;;
++ M680?0:D-NIX:5.3:*)
++ echo m68k-diab-dnix
++ exit ;;
++ M68*:*:R3V[5678]*:*)
++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
++ OS_REL=''
++ test -r /etc/.relid \
++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4; exit; } ;;
++ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++ OS_REL='.3'
++ test -r /etc/.relid \
++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
++ echo m68k-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ mc68030:UNIX_System_V:4.*:*)
++ echo m68k-atari-sysv4
++ exit ;;
++ TSUNAMI:LynxOS:2.*:*)
++ echo sparc-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ rs6000:LynxOS:2.*:*)
++ echo rs6000-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
++ echo powerpc-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ SM[BE]S:UNIX_SV:*:*)
++ echo mips-dde-sysv${UNAME_RELEASE}
++ exit ;;
++ RM*:ReliantUNIX-*:*:*)
++ echo mips-sni-sysv4
++ exit ;;
++ RM*:SINIX-*:*:*)
++ echo mips-sni-sysv4
++ exit ;;
++ *:SINIX-*:*:*)
++ if uname -p 2>/dev/null >/dev/null ; then
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
++ echo ${UNAME_MACHINE}-sni-sysv4
++ else
++ echo ns32k-sni-sysv
++ fi
++ exit ;;
++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel@ccMail.Census.GOV>
++ echo i586-unisys-sysv4
++ exit ;;
++ *:UNIX_System_V:4*:FTX*)
++ # From Gerald Hewes <hewes@openmarket.com>.
++ # How about differentiating between stratus architectures? -djm
++ echo hppa1.1-stratus-sysv4
++ exit ;;
++ *:*:*:FTX*)
++ # From seanf@swdc.stratus.com.
++ echo i860-stratus-sysv4
++ exit ;;
++ i*86:VOS:*:*)
++ # From Paul.Green@stratus.com.
++ echo ${UNAME_MACHINE}-stratus-vos
++ exit ;;
++ *:VOS:*:*)
++ # From Paul.Green@stratus.com.
++ echo hppa1.1-stratus-vos
++ exit ;;
++ mc68*:A/UX:*:*)
++ echo m68k-apple-aux${UNAME_RELEASE}
++ exit ;;
++ news*:NEWS-OS:6*:*)
++ echo mips-sony-newsos6
++ exit ;;
++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
++ if [ -d /usr/nec ]; then
++ echo mips-nec-sysv${UNAME_RELEASE}
++ else
++ echo mips-unknown-sysv${UNAME_RELEASE}
++ fi
++ exit ;;
++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
++ echo powerpc-be-beos
++ exit ;;
++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
++ echo powerpc-apple-beos
++ exit ;;
++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
++ echo i586-pc-beos
++ exit ;;
++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
++ echo i586-pc-haiku
++ exit ;;
++ x86_64:Haiku:*:*)
++ echo x86_64-unknown-haiku
++ exit ;;
++ SX-4:SUPER-UX:*:*)
++ echo sx4-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-5:SUPER-UX:*:*)
++ echo sx5-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-6:SUPER-UX:*:*)
++ echo sx6-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-7:SUPER-UX:*:*)
++ echo sx7-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8:SUPER-UX:*:*)
++ echo sx8-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8R:SUPER-UX:*:*)
++ echo sx8r-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-ACE:SUPER-UX:*:*)
++ echo sxace-nec-superux${UNAME_RELEASE}
++ exit ;;
++ Power*:Rhapsody:*:*)
++ echo powerpc-apple-rhapsody${UNAME_RELEASE}
++ exit ;;
++ *:Rhapsody:*:*)
++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
++ exit ;;
++ *:Darwin:*:*)
++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
++ eval $set_cc_for_build
++ if test "$UNAME_PROCESSOR" = unknown ; then
++ UNAME_PROCESSOR=powerpc
++ fi
++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ case $UNAME_PROCESSOR in
++ i386) UNAME_PROCESSOR=x86_64 ;;
++ powerpc) UNAME_PROCESSOR=powerpc64 ;;
++ esac
++ fi
++ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
++ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_PPC >/dev/null
++ then
++ UNAME_PROCESSOR=powerpc
++ fi
++ fi
++ elif test "$UNAME_PROCESSOR" = i386 ; then
++ # Avoid executing cc on OS X 10.9, as it ships with a stub
++ # that puts up a graphical alert prompting to install
++ # developer tools. Any system running Mac OS X 10.7 or
++ # later (Darwin 11 and later) is required to have a 64-bit
++ # processor. This is not true of the ARM version of Darwin
++ # that Apple uses in portable devices.
++ UNAME_PROCESSOR=x86_64
++ fi
++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
++ exit ;;
++ *:procnto*:*:* | *:QNX:[0123456789]*:*)
++ UNAME_PROCESSOR=`uname -p`
++ if test "$UNAME_PROCESSOR" = x86; then
++ UNAME_PROCESSOR=i386
++ UNAME_MACHINE=pc
++ fi
++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
++ exit ;;
++ *:QNX:*:4*)
++ echo i386-pc-qnx
++ exit ;;
++ NEO-*:NONSTOP_KERNEL:*:*)
++ echo neo-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ NSE-*:NONSTOP_KERNEL:*:*)
++ echo nse-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ NSR-*:NONSTOP_KERNEL:*:*)
++ echo nsr-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ NSX-*:NONSTOP_KERNEL:*:*)
++ echo nsx-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ *:NonStop-UX:*:*)
++ echo mips-compaq-nonstopux
++ exit ;;
++ BS2000:POSIX*:*:*)
++ echo bs2000-siemens-sysv
++ exit ;;
++ DS/*:UNIX_System_V:*:*)
++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
++ exit ;;
++ *:Plan9:*:*)
++ # "uname -m" is not consistent, so use $cputype instead. 386
++ # is converted to i386 for consistency with other x86
++ # operating systems.
++ if test "$cputype" = 386; then
++ UNAME_MACHINE=i386
++ else
++ UNAME_MACHINE="$cputype"
++ fi
++ echo ${UNAME_MACHINE}-unknown-plan9
++ exit ;;
++ *:TOPS-10:*:*)
++ echo pdp10-unknown-tops10
++ exit ;;
++ *:TENEX:*:*)
++ echo pdp10-unknown-tenex
++ exit ;;
++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
++ echo pdp10-dec-tops20
++ exit ;;
++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
++ echo pdp10-xkl-tops20
++ exit ;;
++ *:TOPS-20:*:*)
++ echo pdp10-unknown-tops20
++ exit ;;
++ *:ITS:*:*)
++ echo pdp10-unknown-its
++ exit ;;
++ SEI:*:*:SEIUX)
++ echo mips-sei-seiux${UNAME_RELEASE}
++ exit ;;
++ *:DragonFly:*:*)
++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++ exit ;;
++ *:*VMS:*:*)
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
++ case "${UNAME_MACHINE}" in
++ A*) echo alpha-dec-vms ; exit ;;
++ I*) echo ia64-dec-vms ; exit ;;
++ V*) echo vax-dec-vms ; exit ;;
++ esac ;;
++ *:XENIX:*:SysV)
++ echo i386-pc-xenix
++ exit ;;
++ i*86:skyos:*:*)
++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
++ exit ;;
++ i*86:rdos:*:*)
++ echo ${UNAME_MACHINE}-pc-rdos
++ exit ;;
++ i*86:AROS:*:*)
++ echo ${UNAME_MACHINE}-pc-aros
++ exit ;;
++ x86_64:VMkernel:*:*)
++ echo ${UNAME_MACHINE}-unknown-esx
++ exit ;;
++ amd64:Isilon\ OneFS:*:*)
++ echo x86_64-unknown-onefs
++ exit ;;
++esac
++
++cat >&2 <<EOF
++$0: unable to guess system type
++
++This script (version $timestamp), has failed to recognize the
++operating system you are using. If your script is old, overwrite
++config.guess and config.sub with the latest versions from:
++
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
++and
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++
++If $0 has already been updated, send the following data and any
++information you think might be pertinent to config-patches@gnu.org to
++provide the necessary information to handle your system.
++
++config.guess timestamp = $timestamp
++
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
++/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
++
++hostinfo = `(hostinfo) 2>/dev/null`
++/bin/universe = `(/bin/universe) 2>/dev/null`
++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
++/bin/arch = `(/bin/arch) 2>/dev/null`
++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
++
++UNAME_MACHINE = ${UNAME_MACHINE}
++UNAME_RELEASE = ${UNAME_RELEASE}
++UNAME_SYSTEM = ${UNAME_SYSTEM}
++UNAME_VERSION = ${UNAME_VERSION}
++EOF
++
++exit 1
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+diff --git a/build/linux/config.sub b/build/linux/config.sub
+new file mode 100755
+index 0000000..40ea5df
+--- /dev/null
++++ b/build/linux/config.sub
+@@ -0,0 +1,1836 @@
++#! /bin/sh
++# Configuration validation subroutine script.
++# Copyright 1992-2017 Free Software Foundation, Inc.
++
++timestamp='2017-04-02'
++
++# This file is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
++#
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
++
++
++# Please send patches to <config-patches@gnu.org>.
++#
++# Configuration subroutine to validate and canonicalize a configuration type.
++# Supply the specified configuration type as an argument.
++# If it is invalid, we print an error message on stderr and exit with code 1.
++# Otherwise, we print the canonical config type on stdout and succeed.
++
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++
++# This file is supposed to be the same for all GNU packages
++# and recognize all the CPU types, system types and aliases
++# that are meaningful with *any* GNU software.
++# Each package is responsible for reporting which valid configurations
++# it does not support. The user should be able to distinguish
++# a failure to support a valid configuration from a meaningless
++# configuration.
++
++# The goal of this file is to map all the various variations of a given
++# machine specification into a single specification in the form:
++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
++# or in some cases, the newer four-part form:
++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
++# It is wrong to echo any other type of specification.
++
++me=`echo "$0" | sed -e 's,.*/,,'`
++
++usage="\
++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
++
++Canonicalize a configuration name.
++
++Operation modes:
++ -h, --help print this help, then exit
++ -t, --time-stamp print date of last modification, then exit
++ -v, --version print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.sub ($timestamp)
++
++Copyright 1992-2017 Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions. There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++ case $1 in
++ --time-stamp | --time* | -t )
++ echo "$timestamp" ; exit ;;
++ --version | -v )
++ echo "$version" ; exit ;;
++ --help | --h* | -h )
++ echo "$usage"; exit ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "$me: invalid option $1$help"
++ exit 1 ;;
++
++ *local*)
++ # First pass through any local machine types.
++ echo $1
++ exit ;;
++
++ * )
++ break ;;
++ esac
++done
++
++case $# in
++ 0) echo "$me: missing argument$help" >&2
++ exit 1;;
++ 1) ;;
++ *) echo "$me: too many arguments$help" >&2
++ exit 1;;
++esac
++
++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
++# Here we must recognize all the valid KERNEL-OS combinations.
++maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
++case $maybe_os in
++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
++ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
++ kopensolaris*-gnu* | cloudabi*-eabi* | \
++ storm-chaos* | os2-emx* | rtmk-nova*)
++ os=-$maybe_os
++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
++ ;;
++ android-linux)
++ os=-linux-android
++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
++ ;;
++ *)
++ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
++ if [ $basic_machine != $1 ]
++ then os=`echo $1 | sed 's/.*-/-/'`
++ else os=; fi
++ ;;
++esac
++
++### Let's recognize common machines as not being operating systems so
++### that things like config.sub decstation-3100 work. We also
++### recognize some manufacturers as not being operating systems, so we
++### can provide default operating systems below.
++case $os in
++ -sun*os*)
++ # Prevent following clause from handling this invalid input.
++ ;;
++ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
++ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
++ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
++ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
++ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
++ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
++ -apple | -axis | -knuth | -cray | -microblaze*)
++ os=
++ basic_machine=$1
++ ;;
++ -bluegene*)
++ os=-cnk
++ ;;
++ -sim | -cisco | -oki | -wec | -winbond)
++ os=
++ basic_machine=$1
++ ;;
++ -scout)
++ ;;
++ -wrs)
++ os=-vxworks
++ basic_machine=$1
++ ;;
++ -chorusos*)
++ os=-chorusos
++ basic_machine=$1
++ ;;
++ -chorusrdb)
++ os=-chorusrdb
++ basic_machine=$1
++ ;;
++ -hiux*)
++ os=-hiuxwe2
++ ;;
++ -sco6)
++ os=-sco5v6
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco5)
++ os=-sco3.2v5
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco4)
++ os=-sco3.2v4
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco3.2.[4-9]*)
++ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco3.2v[4-9]*)
++ # Don't forget version if it is 3.2v4 or newer.
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco*)
++ os=-sco3.2v2
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -udk*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -isc)
++ os=-isc2.2
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -clix*)
++ basic_machine=clipper-intergraph
++ ;;
++ -isc*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -lynx*178)
++ os=-lynxos178
++ ;;
++ -lynx*5)
++ os=-lynxos5
++ ;;
++ -lynx*)
++ os=-lynxos
++ ;;
++ -ptx*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
++ ;;
++ -windowsnt*)
++ os=`echo $os | sed -e 's/windowsnt/winnt/'`
++ ;;
++ -psos*)
++ os=-psos
++ ;;
++ -mint | -mint[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
++esac
++
++# Decode aliases for certain CPU-COMPANY combinations.
++case $basic_machine in
++ # Recognize the basic CPU types without company name.
++ # Some are omitted here because they have special meanings below.
++ 1750a | 580 \
++ | a29k \
++ | aarch64 | aarch64_be \
++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
++ | am33_2.0 \
++ | arc | arceb \
++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
++ | avr | avr32 \
++ | ba \
++ | be32 | be64 \
++ | bfin \
++ | c4x | c8051 | clipper \
++ | d10v | d30v | dlx | dsp16xx \
++ | e2k | epiphany \
++ | fido | fr30 | frv | ft32 \
++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++ | hexagon \
++ | i370 | i860 | i960 | ia16 | ia64 \
++ | ip2k | iq2000 \
++ | k1om \
++ | le32 | le64 \
++ | lm32 \
++ | m32c | m32r | m32rle | m68000 | m68k | m88k \
++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
++ | mips | mipsbe | mipseb | mipsel | mipsle \
++ | mips16 \
++ | mips64 | mips64el \
++ | mips64octeon | mips64octeonel \
++ | mips64orion | mips64orionel \
++ | mips64r5900 | mips64r5900el \
++ | mips64vr | mips64vrel \
++ | mips64vr4100 | mips64vr4100el \
++ | mips64vr4300 | mips64vr4300el \
++ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
++ | mipsisa32 | mipsisa32el \
++ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r6 | mipsisa32r6el \
++ | mipsisa64 | mipsisa64el \
++ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r6 | mipsisa64r6el \
++ | mipsisa64sb1 | mipsisa64sb1el \
++ | mipsisa64sr71k | mipsisa64sr71kel \
++ | mipsr5900 | mipsr5900el \
++ | mipstx39 | mipstx39el \
++ | mn10200 | mn10300 \
++ | moxie \
++ | mt \
++ | msp430 \
++ | nds32 | nds32le | nds32be \
++ | nios | nios2 | nios2eb | nios2el \
++ | ns16k | ns32k \
++ | open8 | or1k | or1knd | or32 \
++ | pdp10 | pdp11 | pj | pjl \
++ | powerpc | powerpc64 | powerpc64le | powerpcle \
++ | pru \
++ | pyramid \
++ | riscv32 | riscv64 \
++ | rl78 | rx \
++ | score \
++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
++ | sh64 | sh64le \
++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
++ | spu \
++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
++ | ubicom32 \
++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
++ | visium \
++ | wasm32 \
++ | we32k \
++ | x86 | xc16x | xstormy16 | xtensa \
++ | z8k | z80)
++ basic_machine=$basic_machine-unknown
++ ;;
++ c54x)
++ basic_machine=tic54x-unknown
++ ;;
++ c55x)
++ basic_machine=tic55x-unknown
++ ;;
++ c6x)
++ basic_machine=tic6x-unknown
++ ;;
++ leon|leon[3-9])
++ basic_machine=sparc-$basic_machine
++ ;;
++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
++ ;;
++ ms1)
++ basic_machine=mt-unknown
++ ;;
++
++ strongarm | thumb | xscale)
++ basic_machine=arm-unknown
++ ;;
++ xgate)
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ xscaleeb)
++ basic_machine=armeb-unknown
++ ;;
++
++ xscaleel)
++ basic_machine=armel-unknown
++ ;;
++
++ # We use `pc' rather than `unknown'
++ # because (1) that's what they normally are, and
++ # (2) the word "unknown" tends to confuse beginning users.
++ i*86 | x86_64)
++ basic_machine=$basic_machine-pc
++ ;;
++ # Object if more than one company name word.
++ *-*-*)
++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
++ exit 1
++ ;;
++ # Recognize the basic CPU types with company name.
++ 580-* \
++ | a29k-* \
++ | aarch64-* | aarch64_be-* \
++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
++ | avr-* | avr32-* \
++ | ba-* \
++ | be32-* | be64-* \
++ | bfin-* | bs2000-* \
++ | c[123]* | c30-* | [cjt]90-* | c4x-* \
++ | c8051-* | clipper-* | craynv-* | cydra-* \
++ | d10v-* | d30v-* | dlx-* \
++ | e2k-* | elxsi-* \
++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
++ | h8300-* | h8500-* \
++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
++ | hexagon-* \
++ | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
++ | ip2k-* | iq2000-* \
++ | k1om-* \
++ | le32-* | le64-* \
++ | lm32-* \
++ | m32c-* | m32r-* | m32rle-* \
++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
++ | microblaze-* | microblazeel-* \
++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
++ | mips16-* \
++ | mips64-* | mips64el-* \
++ | mips64octeon-* | mips64octeonel-* \
++ | mips64orion-* | mips64orionel-* \
++ | mips64r5900-* | mips64r5900el-* \
++ | mips64vr-* | mips64vrel-* \
++ | mips64vr4100-* | mips64vr4100el-* \
++ | mips64vr4300-* | mips64vr4300el-* \
++ | mips64vr5000-* | mips64vr5000el-* \
++ | mips64vr5900-* | mips64vr5900el-* \
++ | mipsisa32-* | mipsisa32el-* \
++ | mipsisa32r2-* | mipsisa32r2el-* \
++ | mipsisa32r6-* | mipsisa32r6el-* \
++ | mipsisa64-* | mipsisa64el-* \
++ | mipsisa64r2-* | mipsisa64r2el-* \
++ | mipsisa64r6-* | mipsisa64r6el-* \
++ | mipsisa64sb1-* | mipsisa64sb1el-* \
++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
++ | mipsr5900-* | mipsr5900el-* \
++ | mipstx39-* | mipstx39el-* \
++ | mmix-* \
++ | mt-* \
++ | msp430-* \
++ | nds32-* | nds32le-* | nds32be-* \
++ | nios-* | nios2-* | nios2eb-* | nios2el-* \
++ | none-* | np1-* | ns16k-* | ns32k-* \
++ | open8-* \
++ | or1k*-* \
++ | orion-* \
++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
++ | pru-* \
++ | pyramid-* \
++ | riscv32-* | riscv64-* \
++ | rl78-* | romp-* | rs6000-* | rx-* \
++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
++ | sparclite-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
++ | tahoe-* \
++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tile*-* \
++ | tron-* \
++ | ubicom32-* \
++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
++ | vax-* \
++ | visium-* \
++ | wasm32-* \
++ | we32k-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* \
++ | xstormy16-* | xtensa*-* \
++ | ymp-* \
++ | z8k-* | z80-*)
++ ;;
++ # Recognize the basic CPU types without company name, with glob match.
++ xtensa*)
++ basic_machine=$basic_machine-unknown
++ ;;
++ # Recognize the various machine names and aliases which stand
++ # for a CPU type and a company and sometimes even an OS.
++ 386bsd)
++ basic_machine=i386-unknown
++ os=-bsd
++ ;;
++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
++ basic_machine=m68000-att
++ ;;
++ 3b*)
++ basic_machine=we32k-att
++ ;;
++ a29khif)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ abacus)
++ basic_machine=abacus-unknown
++ ;;
++ adobe68k)
++ basic_machine=m68010-adobe
++ os=-scout
++ ;;
++ alliant | fx80)
++ basic_machine=fx80-alliant
++ ;;
++ altos | altos3068)
++ basic_machine=m68k-altos
++ ;;
++ am29k)
++ basic_machine=a29k-none
++ os=-bsd
++ ;;
++ amd64)
++ basic_machine=x86_64-pc
++ ;;
++ amd64-*)
++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ amdahl)
++ basic_machine=580-amdahl
++ os=-sysv
++ ;;
++ amiga | amiga-*)
++ basic_machine=m68k-unknown
++ ;;
++ amigaos | amigados)
++ basic_machine=m68k-unknown
++ os=-amigaos
++ ;;
++ amigaunix | amix)
++ basic_machine=m68k-unknown
++ os=-sysv4
++ ;;
++ apollo68)
++ basic_machine=m68k-apollo
++ os=-sysv
++ ;;
++ apollo68bsd)
++ basic_machine=m68k-apollo
++ os=-bsd
++ ;;
++ aros)
++ basic_machine=i386-pc
++ os=-aros
++ ;;
++ asmjs)
++ basic_machine=asmjs-unknown
++ ;;
++ aux)
++ basic_machine=m68k-apple
++ os=-aux
++ ;;
++ balance)
++ basic_machine=ns32k-sequent
++ os=-dynix
++ ;;
++ blackfin)
++ basic_machine=bfin-unknown
++ os=-linux
++ ;;
++ blackfin-*)
++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
++ bluegene*)
++ basic_machine=powerpc-ibm
++ os=-cnk
++ ;;
++ c54x-*)
++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c55x-*)
++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c6x-*)
++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c90)
++ basic_machine=c90-cray
++ os=-unicos
++ ;;
++ cegcc)
++ basic_machine=arm-unknown
++ os=-cegcc
++ ;;
++ convex-c1)
++ basic_machine=c1-convex
++ os=-bsd
++ ;;
++ convex-c2)
++ basic_machine=c2-convex
++ os=-bsd
++ ;;
++ convex-c32)
++ basic_machine=c32-convex
++ os=-bsd
++ ;;
++ convex-c34)
++ basic_machine=c34-convex
++ os=-bsd
++ ;;
++ convex-c38)
++ basic_machine=c38-convex
++ os=-bsd
++ ;;
++ cray | j90)
++ basic_machine=j90-cray
++ os=-unicos
++ ;;
++ craynv)
++ basic_machine=craynv-cray
++ os=-unicosmp
++ ;;
++ cr16 | cr16-*)
++ basic_machine=cr16-unknown
++ os=-elf
++ ;;
++ crds | unos)
++ basic_machine=m68k-crds
++ ;;
++ crisv32 | crisv32-* | etraxfs*)
++ basic_machine=crisv32-axis
++ ;;
++ cris | cris-* | etrax*)
++ basic_machine=cris-axis
++ ;;
++ crx)
++ basic_machine=crx-unknown
++ os=-elf
++ ;;
++ da30 | da30-*)
++ basic_machine=m68k-da30
++ ;;
++ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
++ basic_machine=mips-dec
++ ;;
++ decsystem10* | dec10*)
++ basic_machine=pdp10-dec
++ os=-tops10
++ ;;
++ decsystem20* | dec20*)
++ basic_machine=pdp10-dec
++ os=-tops20
++ ;;
++ delta | 3300 | motorola-3300 | motorola-delta \
++ | 3300-motorola | delta-motorola)
++ basic_machine=m68k-motorola
++ ;;
++ delta88)
++ basic_machine=m88k-motorola
++ os=-sysv3
++ ;;
++ dicos)
++ basic_machine=i686-pc
++ os=-dicos
++ ;;
++ djgpp)
++ basic_machine=i586-pc
++ os=-msdosdjgpp
++ ;;
++ dpx20 | dpx20-*)
++ basic_machine=rs6000-bull
++ os=-bosx
++ ;;
++ dpx2* | dpx2*-bull)
++ basic_machine=m68k-bull
++ os=-sysv3
++ ;;
++ e500v[12])
++ basic_machine=powerpc-unknown
++ os=$os"spe"
++ ;;
++ e500v[12]-*)
++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=$os"spe"
++ ;;
++ ebmon29k)
++ basic_machine=a29k-amd
++ os=-ebmon
++ ;;
++ elxsi)
++ basic_machine=elxsi-elxsi
++ os=-bsd
++ ;;
++ encore | umax | mmax)
++ basic_machine=ns32k-encore
++ ;;
++ es1800 | OSE68k | ose68k | ose | OSE)
++ basic_machine=m68k-ericsson
++ os=-ose
++ ;;
++ fx2800)
++ basic_machine=i860-alliant
++ ;;
++ genix)
++ basic_machine=ns32k-ns
++ ;;
++ gmicro)
++ basic_machine=tron-gmicro
++ os=-sysv
++ ;;
++ go32)
++ basic_machine=i386-pc
++ os=-go32
++ ;;
++ h3050r* | hiux*)
++ basic_machine=hppa1.1-hitachi
++ os=-hiuxwe2
++ ;;
++ h8300hms)
++ basic_machine=h8300-hitachi
++ os=-hms
++ ;;
++ h8300xray)
++ basic_machine=h8300-hitachi
++ os=-xray
++ ;;
++ h8500hms)
++ basic_machine=h8500-hitachi
++ os=-hms
++ ;;
++ harris)
++ basic_machine=m88k-harris
++ os=-sysv3
++ ;;
++ hp300-*)
++ basic_machine=m68k-hp
++ ;;
++ hp300bsd)
++ basic_machine=m68k-hp
++ os=-bsd
++ ;;
++ hp300hpux)
++ basic_machine=m68k-hp
++ os=-hpux
++ ;;
++ hp3k9[0-9][0-9] | hp9[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hp9k2[0-9][0-9] | hp9k31[0-9])
++ basic_machine=m68000-hp
++ ;;
++ hp9k3[2-9][0-9])
++ basic_machine=m68k-hp
++ ;;
++ hp9k6[0-9][0-9] | hp6[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hp9k7[0-79][0-9] | hp7[0-79][0-9])
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k78[0-9] | hp78[0-9])
++ # FIXME: really hppa2.0-hp
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
++ # FIXME: really hppa2.0-hp
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[0-9][13679] | hp8[0-9][13679])
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[0-9][0-9] | hp8[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hppa-next)
++ os=-nextstep3
++ ;;
++ hppaosf)
++ basic_machine=hppa1.1-hp
++ os=-osf
++ ;;
++ hppro)
++ basic_machine=hppa1.1-hp
++ os=-proelf
++ ;;
++ i370-ibm* | ibm*)
++ basic_machine=i370-ibm
++ ;;
++ i*86v32)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-sysv32
++ ;;
++ i*86v4*)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-sysv4
++ ;;
++ i*86v)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-sysv
++ ;;
++ i*86sol2)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-solaris2
++ ;;
++ i386mach)
++ basic_machine=i386-mach
++ os=-mach
++ ;;
++ i386-vsta | vsta)
++ basic_machine=i386-unknown
++ os=-vsta
++ ;;
++ iris | iris4d)
++ basic_machine=mips-sgi
++ case $os in
++ -irix*)
++ ;;
++ *)
++ os=-irix4
++ ;;
++ esac
++ ;;
++ isi68 | isi)
++ basic_machine=m68k-isi
++ os=-sysv
++ ;;
++ leon-*|leon[3-9]-*)
++ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
++ ;;
++ m68knommu)
++ basic_machine=m68k-unknown
++ os=-linux
++ ;;
++ m68knommu-*)
++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
++ m88k-omron*)
++ basic_machine=m88k-omron
++ ;;
++ magnum | m3230)
++ basic_machine=mips-mips
++ os=-sysv
++ ;;
++ merlin)
++ basic_machine=ns32k-utek
++ os=-sysv
++ ;;
++ microblaze*)
++ basic_machine=microblaze-xilinx
++ ;;
++ mingw64)
++ basic_machine=x86_64-pc
++ os=-mingw64
++ ;;
++ mingw32)
++ basic_machine=i686-pc
++ os=-mingw32
++ ;;
++ mingw32ce)
++ basic_machine=arm-unknown
++ os=-mingw32ce
++ ;;
++ miniframe)
++ basic_machine=m68000-convergent
++ ;;
++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
++ mips3*-*)
++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
++ ;;
++ mips3*)
++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
++ ;;
++ monitor)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
++ morphos)
++ basic_machine=powerpc-unknown
++ os=-morphos
++ ;;
++ moxiebox)
++ basic_machine=moxie-unknown
++ os=-moxiebox
++ ;;
++ msdos)
++ basic_machine=i386-pc
++ os=-msdos
++ ;;
++ ms1-*)
++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++ ;;
++ msys)
++ basic_machine=i686-pc
++ os=-msys
++ ;;
++ mvs)
++ basic_machine=i370-ibm
++ os=-mvs
++ ;;
++ nacl)
++ basic_machine=le32-unknown
++ os=-nacl
++ ;;
++ ncr3000)
++ basic_machine=i486-ncr
++ os=-sysv4
++ ;;
++ netbsd386)
++ basic_machine=i386-unknown
++ os=-netbsd
++ ;;
++ netwinder)
++ basic_machine=armv4l-rebel
++ os=-linux
++ ;;
++ news | news700 | news800 | news900)
++ basic_machine=m68k-sony
++ os=-newsos
++ ;;
++ news1000)
++ basic_machine=m68030-sony
++ os=-newsos
++ ;;
++ news-3600 | risc-news)
++ basic_machine=mips-sony
++ os=-newsos
++ ;;
++ necv70)
++ basic_machine=v70-nec
++ os=-sysv
++ ;;
++ next | m*-next )
++ basic_machine=m68k-next
++ case $os in
++ -nextstep* )
++ ;;
++ -ns2*)
++ os=-nextstep2
++ ;;
++ *)
++ os=-nextstep3
++ ;;
++ esac
++ ;;
++ nh3000)
++ basic_machine=m68k-harris
++ os=-cxux
++ ;;
++ nh[45]000)
++ basic_machine=m88k-harris
++ os=-cxux
++ ;;
++ nindy960)
++ basic_machine=i960-intel
++ os=-nindy
++ ;;
++ mon960)
++ basic_machine=i960-intel
++ os=-mon960
++ ;;
++ nonstopux)
++ basic_machine=mips-compaq
++ os=-nonstopux
++ ;;
++ np1)
++ basic_machine=np1-gould
++ ;;
++ neo-tandem)
++ basic_machine=neo-tandem
++ ;;
++ nse-tandem)
++ basic_machine=nse-tandem
++ ;;
++ nsr-tandem)
++ basic_machine=nsr-tandem
++ ;;
++ nsx-tandem)
++ basic_machine=nsx-tandem
++ ;;
++ op50n-* | op60c-*)
++ basic_machine=hppa1.1-oki
++ os=-proelf
++ ;;
++ openrisc | openrisc-*)
++ basic_machine=or32-unknown
++ ;;
++ os400)
++ basic_machine=powerpc-ibm
++ os=-os400
++ ;;
++ OSE68000 | ose68000)
++ basic_machine=m68000-ericsson
++ os=-ose
++ ;;
++ os68k)
++ basic_machine=m68k-none
++ os=-os68k
++ ;;
++ pa-hitachi)
++ basic_machine=hppa1.1-hitachi
++ os=-hiuxwe2
++ ;;
++ paragon)
++ basic_machine=i860-intel
++ os=-osf
++ ;;
++ parisc)
++ basic_machine=hppa-unknown
++ os=-linux
++ ;;
++ parisc-*)
++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
++ pbd)
++ basic_machine=sparc-tti
++ ;;
++ pbb)
++ basic_machine=m68k-tti
++ ;;
++ pc532 | pc532-*)
++ basic_machine=ns32k-pc532
++ ;;
++ pc98)
++ basic_machine=i386-pc
++ ;;
++ pc98-*)
++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentium | p5 | k5 | k6 | nexgen | viac3)
++ basic_machine=i586-pc
++ ;;
++ pentiumpro | p6 | 6x86 | athlon | athlon_*)
++ basic_machine=i686-pc
++ ;;
++ pentiumii | pentium2 | pentiumiii | pentium3)
++ basic_machine=i686-pc
++ ;;
++ pentium4)
++ basic_machine=i786-pc
++ ;;
++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
++ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentiumpro-* | p6-* | 6x86-* | athlon-*)
++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentium4-*)
++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pn)
++ basic_machine=pn-gould
++ ;;
++ power) basic_machine=power-ibm
++ ;;
++ ppc | ppcbe) basic_machine=powerpc-unknown
++ ;;
++ ppc-* | ppcbe-*)
++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppcle | powerpclittle)
++ basic_machine=powerpcle-unknown
++ ;;
++ ppcle-* | powerpclittle-*)
++ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppc64) basic_machine=powerpc64-unknown
++ ;;
++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppc64le | powerpc64little)
++ basic_machine=powerpc64le-unknown
++ ;;
++ ppc64le-* | powerpc64little-*)
++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ps2)
++ basic_machine=i386-ibm
++ ;;
++ pw32)
++ basic_machine=i586-unknown
++ os=-pw32
++ ;;
++ rdos | rdos64)
++ basic_machine=x86_64-pc
++ os=-rdos
++ ;;
++ rdos32)
++ basic_machine=i386-pc
++ os=-rdos
++ ;;
++ rom68k)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
++ rm[46]00)
++ basic_machine=mips-siemens
++ ;;
++ rtpc | rtpc-*)
++ basic_machine=romp-ibm
++ ;;
++ s390 | s390-*)
++ basic_machine=s390-ibm
++ ;;
++ s390x | s390x-*)
++ basic_machine=s390x-ibm
++ ;;
++ sa29200)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ sb1)
++ basic_machine=mipsisa64sb1-unknown
++ ;;
++ sb1el)
++ basic_machine=mipsisa64sb1el-unknown
++ ;;
++ sde)
++ basic_machine=mipsisa32-sde
++ os=-elf
++ ;;
++ sei)
++ basic_machine=mips-sei
++ os=-seiux
++ ;;
++ sequent)
++ basic_machine=i386-sequent
++ ;;
++ sh)
++ basic_machine=sh-hitachi
++ os=-hms
++ ;;
++ sh5el)
++ basic_machine=sh5le-unknown
++ ;;
++ sh64)
++ basic_machine=sh64-unknown
++ ;;
++ sparclite-wrs | simso-wrs)
++ basic_machine=sparclite-wrs
++ os=-vxworks
++ ;;
++ sps7)
++ basic_machine=m68k-bull
++ os=-sysv2
++ ;;
++ spur)
++ basic_machine=spur-unknown
++ ;;
++ st2000)
++ basic_machine=m68k-tandem
++ ;;
++ stratus)
++ basic_machine=i860-stratus
++ os=-sysv4
++ ;;
++ strongarm-* | thumb-*)
++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ sun2)
++ basic_machine=m68000-sun
++ ;;
++ sun2os3)
++ basic_machine=m68000-sun
++ os=-sunos3
++ ;;
++ sun2os4)
++ basic_machine=m68000-sun
++ os=-sunos4
++ ;;
++ sun3os3)
++ basic_machine=m68k-sun
++ os=-sunos3
++ ;;
++ sun3os4)
++ basic_machine=m68k-sun
++ os=-sunos4
++ ;;
++ sun4os3)
++ basic_machine=sparc-sun
++ os=-sunos3
++ ;;
++ sun4os4)
++ basic_machine=sparc-sun
++ os=-sunos4
++ ;;
++ sun4sol2)
++ basic_machine=sparc-sun
++ os=-solaris2
++ ;;
++ sun3 | sun3-*)
++ basic_machine=m68k-sun
++ ;;
++ sun4)
++ basic_machine=sparc-sun
++ ;;
++ sun386 | sun386i | roadrunner)
++ basic_machine=i386-sun
++ ;;
++ sv1)
++ basic_machine=sv1-cray
++ os=-unicos
++ ;;
++ symmetry)
++ basic_machine=i386-sequent
++ os=-dynix
++ ;;
++ t3e)
++ basic_machine=alphaev5-cray
++ os=-unicos
++ ;;
++ t90)
++ basic_machine=t90-cray
++ os=-unicos
++ ;;
++ tile*)
++ basic_machine=$basic_machine-unknown
++ os=-linux-gnu
++ ;;
++ tx39)
++ basic_machine=mipstx39-unknown
++ ;;
++ tx39el)
++ basic_machine=mipstx39el-unknown
++ ;;
++ toad1)
++ basic_machine=pdp10-xkl
++ os=-tops20
++ ;;
++ tower | tower-32)
++ basic_machine=m68k-ncr
++ ;;
++ tpf)
++ basic_machine=s390x-ibm
++ os=-tpf
++ ;;
++ udi29k)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ ultra3)
++ basic_machine=a29k-nyu
++ os=-sym1
++ ;;
++ v810 | necv810)
++ basic_machine=v810-nec
++ os=-none
++ ;;
++ vaxv)
++ basic_machine=vax-dec
++ os=-sysv
++ ;;
++ vms)
++ basic_machine=vax-dec
++ os=-vms
++ ;;
++ vpp*|vx|vx-*)
++ basic_machine=f301-fujitsu
++ ;;
++ vxworks960)
++ basic_machine=i960-wrs
++ os=-vxworks
++ ;;
++ vxworks68)
++ basic_machine=m68k-wrs
++ os=-vxworks
++ ;;
++ vxworks29k)
++ basic_machine=a29k-wrs
++ os=-vxworks
++ ;;
++ wasm32)
++ basic_machine=wasm32-unknown
++ ;;
++ w65*)
++ basic_machine=w65-wdc
++ os=-none
++ ;;
++ w89k-*)
++ basic_machine=hppa1.1-winbond
++ os=-proelf
++ ;;
++ xbox)
++ basic_machine=i686-pc
++ os=-mingw32
++ ;;
++ xps | xps100)
++ basic_machine=xps100-honeywell
++ ;;
++ xscale-* | xscalee[bl]-*)
++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++ ;;
++ ymp)
++ basic_machine=ymp-cray
++ os=-unicos
++ ;;
++ z8k-*-coff)
++ basic_machine=z8k-unknown
++ os=-sim
++ ;;
++ z80-*-coff)
++ basic_machine=z80-unknown
++ os=-sim
++ ;;
++ none)
++ basic_machine=none-none
++ os=-none
++ ;;
++
++# Here we handle the default manufacturer of certain CPU types. It is in
++# some cases the only manufacturer, in others, it is the most popular.
++ w89k)
++ basic_machine=hppa1.1-winbond
++ ;;
++ op50n)
++ basic_machine=hppa1.1-oki
++ ;;
++ op60c)
++ basic_machine=hppa1.1-oki
++ ;;
++ romp)
++ basic_machine=romp-ibm
++ ;;
++ mmix)
++ basic_machine=mmix-knuth
++ ;;
++ rs6000)
++ basic_machine=rs6000-ibm
++ ;;
++ vax)
++ basic_machine=vax-dec
++ ;;
++ pdp10)
++ # there are many clones, so DEC is not a safe bet
++ basic_machine=pdp10-unknown
++ ;;
++ pdp11)
++ basic_machine=pdp11-dec
++ ;;
++ we32k)
++ basic_machine=we32k-att
++ ;;
++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
++ basic_machine=sh-unknown
++ ;;
++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
++ basic_machine=sparc-sun
++ ;;
++ cydra)
++ basic_machine=cydra-cydrome
++ ;;
++ orion)
++ basic_machine=orion-highlevel
++ ;;
++ orion105)
++ basic_machine=clipper-highlevel
++ ;;
++ mac | mpw | mac-mpw)
++ basic_machine=m68k-apple
++ ;;
++ pmac | pmac-mpw)
++ basic_machine=powerpc-apple
++ ;;
++ *-unknown)
++ # Make sure to match an already-canonicalized machine name.
++ ;;
++ *)
++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++
++# Here we canonicalize certain aliases for manufacturers.
++case $basic_machine in
++ *-digital*)
++ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
++ ;;
++ *-commodore*)
++ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
++ ;;
++ *)
++ ;;
++esac
++
++# Decode manufacturer-specific aliases for certain operating systems.
++
++if [ x"$os" != x"" ]
++then
++case $os in
++ # First match some system type aliases
++ # that might get confused with valid system types.
++ # -solaris* is a basic system type, with this one exception.
++ -auroraux)
++ os=-auroraux
++ ;;
++ -solaris1 | -solaris1.*)
++ os=`echo $os | sed -e 's|solaris1|sunos4|'`
++ ;;
++ -solaris)
++ os=-solaris2
++ ;;
++ -svr4*)
++ os=-sysv4
++ ;;
++ -unixware*)
++ os=-sysv4.2uw
++ ;;
++ -gnu/linux*)
++ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
++ ;;
++ # First accept the basic system types.
++ # The portable systems comes first.
++ # Each alternative MUST END IN A *, to match a version number.
++ # -sysv* is not here because it comes later, after sysvr4.
++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
++ | -sym* | -kopensolaris* | -plan9* \
++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
++ | -aos* | -aros* | -cloudabi* | -sortix* \
++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
++ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
++ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
++ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
++ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
++ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
++ # Remember, each alternative MUST END IN *, to match a version number.
++ ;;
++ -qnx*)
++ case $basic_machine in
++ x86-* | i*86-*)
++ ;;
++ *)
++ os=-nto$os
++ ;;
++ esac
++ ;;
++ -nto-qnx*)
++ ;;
++ -nto*)
++ os=`echo $os | sed -e 's|nto|nto-qnx|'`
++ ;;
++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
++ ;;
++ -mac*)
++ os=`echo $os | sed -e 's|mac|macos|'`
++ ;;
++ -linux-dietlibc)
++ os=-linux-dietlibc
++ ;;
++ -linux*)
++ os=`echo $os | sed -e 's|linux|linux-gnu|'`
++ ;;
++ -sunos5*)
++ os=`echo $os | sed -e 's|sunos5|solaris2|'`
++ ;;
++ -sunos6*)
++ os=`echo $os | sed -e 's|sunos6|solaris3|'`
++ ;;
++ -opened*)
++ os=-openedition
++ ;;
++ -os400*)
++ os=-os400
++ ;;
++ -wince*)
++ os=-wince
++ ;;
++ -osfrose*)
++ os=-osfrose
++ ;;
++ -osf*)
++ os=-osf
++ ;;
++ -utek*)
++ os=-bsd
++ ;;
++ -dynix*)
++ os=-bsd
++ ;;
++ -acis*)
++ os=-aos
++ ;;
++ -atheos*)
++ os=-atheos
++ ;;
++ -syllable*)
++ os=-syllable
++ ;;
++ -386bsd)
++ os=-bsd
++ ;;
++ -ctix* | -uts*)
++ os=-sysv
++ ;;
++ -nova*)
++ os=-rtmk-nova
++ ;;
++ -ns2 )
++ os=-nextstep2
++ ;;
++ -nsk*)
++ os=-nsk
++ ;;
++ # Preserve the version number of sinix5.
++ -sinix5.*)
++ os=`echo $os | sed -e 's|sinix|sysv|'`
++ ;;
++ -sinix*)
++ os=-sysv4
++ ;;
++ -tpf*)
++ os=-tpf
++ ;;
++ -triton*)
++ os=-sysv3
++ ;;
++ -oss*)
++ os=-sysv3
++ ;;
++ -svr4)
++ os=-sysv4
++ ;;
++ -svr3)
++ os=-sysv3
++ ;;
++ -sysvr4)
++ os=-sysv4
++ ;;
++ # This must come after -sysvr4.
++ -sysv*)
++ ;;
++ -ose*)
++ os=-ose
++ ;;
++ -es1800*)
++ os=-ose
++ ;;
++ -xenix)
++ os=-xenix
++ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ os=-mint
++ ;;
++ -aros*)
++ os=-aros
++ ;;
++ -zvmoe)
++ os=-zvmoe
++ ;;
++ -dicos*)
++ os=-dicos
++ ;;
++ -nacl*)
++ ;;
++ -ios)
++ ;;
++ -none)
++ ;;
++ *)
++ # Get rid of the `-' at the beginning of $os.
++ os=`echo $os | sed 's/[^-]*-//'`
++ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++else
++
++# Here we handle the default operating systems that come with various machines.
++# The value should be what the vendor currently ships out the door with their
++# machine or put another way, the most popular os provided with the machine.
++
++# Note that if you're going to try to match "-MANUFACTURER" here (say,
++# "-sun"), then you have to tell the case statement up towards the top
++# that MANUFACTURER isn't an operating system. Otherwise, code above
++# will signal an error saying that MANUFACTURER isn't an operating
++# system, and we'll never get to this point.
++
++case $basic_machine in
++ score-*)
++ os=-elf
++ ;;
++ spu-*)
++ os=-elf
++ ;;
++ *-acorn)
++ os=-riscix1.2
++ ;;
++ arm*-rebel)
++ os=-linux
++ ;;
++ arm*-semi)
++ os=-aout
++ ;;
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
++ c8051-*)
++ os=-elf
++ ;;
++ hexagon-*)
++ os=-elf
++ ;;
++ tic54x-*)
++ os=-coff
++ ;;
++ tic55x-*)
++ os=-coff
++ ;;
++ tic6x-*)
++ os=-coff
++ ;;
++ # This must come before the *-dec entry.
++ pdp10-*)
++ os=-tops20
++ ;;
++ pdp11-*)
++ os=-none
++ ;;
++ *-dec | vax-*)
++ os=-ultrix4.2
++ ;;
++ m68*-apollo)
++ os=-domain
++ ;;
++ i386-sun)
++ os=-sunos4.0.2
++ ;;
++ m68000-sun)
++ os=-sunos3
++ ;;
++ m68*-cisco)
++ os=-aout
++ ;;
++ mep-*)
++ os=-elf
++ ;;
++ mips*-cisco)
++ os=-elf
++ ;;
++ mips*-*)
++ os=-elf
++ ;;
++ or32-*)
++ os=-coff
++ ;;
++ *-tti) # must be before sparc entry or we get the wrong os.
++ os=-sysv3
++ ;;
++ sparc-* | *-sun)
++ os=-sunos4.1.1
++ ;;
++ pru-*)
++ os=-elf
++ ;;
++ *-be)
++ os=-beos
++ ;;
++ *-haiku)
++ os=-haiku
++ ;;
++ *-ibm)
++ os=-aix
++ ;;
++ *-knuth)
++ os=-mmixware
++ ;;
++ *-wec)
++ os=-proelf
++ ;;
++ *-winbond)
++ os=-proelf
++ ;;
++ *-oki)
++ os=-proelf
++ ;;
++ *-hp)
++ os=-hpux
++ ;;
++ *-hitachi)
++ os=-hiux
++ ;;
++ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
++ os=-sysv
++ ;;
++ *-cbm)
++ os=-amigaos
++ ;;
++ *-dg)
++ os=-dgux
++ ;;
++ *-dolphin)
++ os=-sysv3
++ ;;
++ m68k-ccur)
++ os=-rtu
++ ;;
++ m88k-omron*)
++ os=-luna
++ ;;
++ *-next )
++ os=-nextstep
++ ;;
++ *-sequent)
++ os=-ptx
++ ;;
++ *-crds)
++ os=-unos
++ ;;
++ *-ns)
++ os=-genix
++ ;;
++ i370-*)
++ os=-mvs
++ ;;
++ *-next)
++ os=-nextstep3
++ ;;
++ *-gould)
++ os=-sysv
++ ;;
++ *-highlevel)
++ os=-bsd
++ ;;
++ *-encore)
++ os=-bsd
++ ;;
++ *-sgi)
++ os=-irix
++ ;;
++ *-siemens)
++ os=-sysv4
++ ;;
++ *-masscomp)
++ os=-rtu
++ ;;
++ f30[01]-fujitsu | f700-fujitsu)
++ os=-uxpv
++ ;;
++ *-rom68k)
++ os=-coff
++ ;;
++ *-*bug)
++ os=-coff
++ ;;
++ *-apple)
++ os=-macos
++ ;;
++ *-atari*)
++ os=-mint
++ ;;
++ *)
++ os=-none
++ ;;
++esac
++fi
++
++# Here we handle the case where we know the os, and the CPU type, but not the
++# manufacturer. We pick the logical manufacturer.
++vendor=unknown
++case $basic_machine in
++ *-unknown)
++ case $os in
++ -riscix*)
++ vendor=acorn
++ ;;
++ -sunos*)
++ vendor=sun
++ ;;
++ -cnk*|-aix*)
++ vendor=ibm
++ ;;
++ -beos*)
++ vendor=be
++ ;;
++ -hpux*)
++ vendor=hp
++ ;;
++ -mpeix*)
++ vendor=hp
++ ;;
++ -hiux*)
++ vendor=hitachi
++ ;;
++ -unos*)
++ vendor=crds
++ ;;
++ -dgux*)
++ vendor=dg
++ ;;
++ -luna*)
++ vendor=omron
++ ;;
++ -genix*)
++ vendor=ns
++ ;;
++ -mvs* | -opened*)
++ vendor=ibm
++ ;;
++ -os400*)
++ vendor=ibm
++ ;;
++ -ptx*)
++ vendor=sequent
++ ;;
++ -tpf*)
++ vendor=ibm
++ ;;
++ -vxsim* | -vxworks* | -windiss*)
++ vendor=wrs
++ ;;
++ -aux*)
++ vendor=apple
++ ;;
++ -hms*)
++ vendor=hitachi
++ ;;
++ -mpw* | -macos*)
++ vendor=apple
++ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ vendor=atari
++ ;;
++ -vos*)
++ vendor=stratus
++ ;;
++ esac
++ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
++ ;;
++esac
++
++echo $basic_machine$os
++exit
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+diff --git a/build/linux/configure b/build/linux/configure
+new file mode 100755
+index 0000000..0a02d2b
+--- /dev/null
++++ b/build/linux/configure
+@@ -0,0 +1,1531 @@
++#!/bin/bash
++
++if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
++cat <<EOF
++Usage: ./configure [options]
++
++Help:
++ -h, --help print this message
++
++Standard options:
++ --prefix=PREFIX install architecture-independent files in PREFIX
++ [/usr/local]
++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
++ [PREFIX]
++ --bindir=DIR install binaries in DIR [EPREFIX/bin]
++ --libdir=DIR install libs in DIR [EPREFIX/lib]
++ --includedir=DIR install includes in DIR [PREFIX/include]
++ --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS
++ --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS
++ --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS
++ --extra-rcflags=ERCFLAGS add ERCFLAGS to RCFLAGS
++
++Configuration options:
++ --disable-cli disable cli
++ --system-libdavs2 use system libdavs2 instead of internal
++ --enable-shared build shared library
++ --enable-static build static library
++ --disable-opencl disable OpenCL features
++ --disable-gpl disable GPL-only features
++ --disable-thread disable multithreaded encoding
++ --disable-win32thread disable win32threads (windows only)
++ --disable-interlaced disable interlaced encoding support
++ --bit-depth=BIT_DEPTH set output bit depth (8-10) [8]
++ --chroma-format=FORMAT output chroma format (420, 422, 444, all) [all]
++
++Advanced options:
++ --disable-asm disable platform-specific assembly optimizations
++ --enable-lto enable link-time optimization
++ --enable-debug add -g
++ --enable-gprof add -pg
++ --enable-strip add -s
++ --enable-pic build position-independent code
++
++Cross-compilation:
++ --host=HOST build programs to run on HOST
++ --cross-prefix=PREFIX use PREFIX for compilation tools
++ --sysroot=SYSROOT root of cross-build tree
++
++External library support:
++ --disable-avs disable avisynth support
++ --disable-swscale disable swscale support
++ --disable-lavf disable libavformat support
++ --disable-ffms disable ffmpegsource support
++ --disable-gpac disable gpac support
++ --disable-lsmash disable lsmash support
++
++EOF
++exit 1
++fi
++
++log_check() {
++ echo -n "checking $1... " >> config.log
++}
++
++log_ok() {
++ echo "yes" >> config.log
++}
++
++log_fail() {
++ echo "no" >> config.log
++}
++
++log_msg() {
++ echo "$1" >> config.log
++}
++
++cc_cflags() {
++ # several non g++ compilers issue an incredibly large number of warnings on high warning levels,
++ # suppress them by reducing the warning level rather than having to use #pragmas
++ for arg in $*; do
++ [[ "$arg" = -falign-loops* ]] && arg=
++ [ "$arg" = -fno-tree-vectorize ] && arg=
++ [ "$arg" = -Wshadow ] && arg=
++ [ "$arg" = -Wno-maybe-uninitialized ] && arg=
++ [[ "$arg" = -mpreferred-stack-boundary* ]] && arg=
++ [[ "$arg" = -l* ]] && arg=
++ [[ "$arg" = -L* ]] && arg=
++ if [ $compiler_style = MS ]; then
++ [ "$arg" = -ffast-math ] && arg="-fp:fast"
++ [ "$arg" = -Wall ] && arg=
++ [ "$arg" = -Werror ] && arg="-W3 -WX"
++ [ "$arg" = -g ] && arg=-Z7
++ [ "$arg" = -fomit-frame-pointer ] && arg=
++ [ "$arg" = -s ] && arg=
++ [ "$arg" = -fPIC ] && arg=
++ else
++ [ "$arg" = -ffast-math ] && arg=
++ [ "$arg" = -Wall ] && arg=
++ [ "$arg" = -Werror ] && arg="-w3 -Werror"
++ fi
++ [ $compiler = CL -a "$arg" = -O3 ] && arg=-O2
++
++ [ -n "$arg" ] && echo -n "$arg "
++ done
++}
++
++cl_ldflags() {
++ for arg in $*; do
++ arg=${arg/LIBPATH/libpath}
++ [ "${arg#-libpath:}" == "$arg" -a "${arg#-l}" != "$arg" ] && arg=${arg#-l}.lib
++ [ "${arg#-L}" != "$arg" ] && arg=-libpath:${arg#-L}
++ [ "$arg" = -Wl,--large-address-aware ] && arg=-largeaddressaware
++ [ "$arg" = -s ] && arg=
++ [ "$arg" = -Wl,-Bsymbolic ] && arg=
++ [ "$arg" = -fno-tree-vectorize ] && arg=
++ [ "$arg" = -Werror ] && arg=
++ [ "$arg" = -Wshadow ] && arg=
++ [ "$arg" = -Wmaybe-uninitialized ] && arg=
++ [[ "$arg" = -Qdiag-error* ]] && arg=
++
++ arg=${arg/pthreadGC/pthreadVC}
++ [ "$arg" = avifil32.lib ] && arg=vfw32.lib
++ [ "$arg" = gpac_static.lib ] && arg=libgpac_static.lib
++ [ "$arg" = davs2.lib ] && arg=libdavs2.lib
++
++ [ -n "$arg" ] && echo -n "$arg "
++ done
++}
++
++cc_check() {
++ if [ -z "$3" ]; then
++ if [ -z "$1$2" ]; then
++ log_check "whether $CC works"
++ elif [ -z "$1" ]; then
++ log_check "for $2"
++ else
++ log_check "for $1"
++ fi
++ elif [ -z "$1" ]; then
++ if [ -z "$2" ]; then
++ log_check "whether $CC supports $3"
++ else
++ log_check "whether $CC supports $3 with $2"
++ fi
++ else
++ log_check "for $3 in $1";
++ fi
++ rm -f conftest.c
++ for arg in $1; do
++ echo "#include <$arg>" >> conftest.c
++ done
++ echo "int main (void) { $3 return 0; }" >> conftest.c
++ if [ $compiler_style = MS ]; then
++ cc_cmd="$CC conftest.c $(cc_cflags $CFLAGS $CHECK_CFLAGS $2) -link $(cl_ldflags $2 $LDFLAGSCLI $LDFLAGS)"
++ else
++ cc_cmd="$CC conftest.c $CFLAGS $CHECK_CFLAGS $2 $LDFLAGSCLI $LDFLAGS -o conftest"
++ fi
++ if $cc_cmd >conftest.log 2>&1; then
++ res=$?
++ log_ok
++ else
++ res=$?
++ log_fail
++ log_msg "Failed commandline was:"
++ log_msg "--------------------------------------------------"
++ log_msg "$cc_cmd"
++ cat conftest.log >> config.log
++ log_msg "--------------------------------------------------"
++ log_msg "Failed program was:"
++ log_msg "--------------------------------------------------"
++ cat conftest.c >> config.log
++ log_msg "--------------------------------------------------"
++ fi
++ return $res
++}
++
++cpp_check() {
++ log_check "whether $3 is true"
++ rm -f conftest.c
++ for arg in $1; do
++ echo "#include <$arg>" >> conftest.c
++ done
++ echo -e "#if !($3) \n#error $4 \n#endif " >> conftest.c
++ if [ $compiler_style = MS ]; then
++ cpp_cmd="$CC conftest.c $(cc_cflags $CFLAGS $2) -P"
++ else
++ cpp_cmd="$CC conftest.c $CFLAGS $2 -E -o conftest"
++ fi
++ if $cpp_cmd >conftest.log 2>&1; then
++ res=$?
++ log_ok
++ else
++ res=$?
++ log_fail
++ log_msg "--------------------------------------------------"
++ cat conftest.log >> config.log
++ log_msg "--------------------------------------------------"
++ log_msg "Failed program was:"
++ log_msg "--------------------------------------------------"
++ cat conftest.c >> config.log
++ log_msg "--------------------------------------------------"
++ fi
++ return $res
++}
++
++as_check() {
++ log_check "whether $AS supports $1"
++ echo "$1" > conftest$AS_EXT
++ as_cmd="$AS conftest$AS_EXT $ASFLAGS $2 -o conftest.o"
++ if $as_cmd >conftest.log 2>&1; then
++ res=$?
++ log_ok
++ else
++ res=$?
++ log_fail
++ log_msg "Failed commandline was:"
++ log_msg "--------------------------------------------------"
++ log_msg "$as_cmd"
++ cat conftest.log >> config.log
++ log_msg "--------------------------------------------------"
++ log_msg "Failed program was:"
++ log_msg "--------------------------------------------------"
++ cat conftest$AS_EXT >> config.log
++ log_msg "--------------------------------------------------"
++ fi
++ return $res
++}
++
++rc_check() {
++ log_check "whether $RC works"
++ echo "$1" > conftest.rc
++ if [ $compiler = GNU ]; then
++ rc_cmd="$RC $RCFLAGS -o conftest.o conftest.rc"
++ else
++ rc_cmd="$RC $RCFLAGS -foconftest.o conftest.rc"
++ fi
++ if $rc_cmd >conftest.log 2>&1; then
++ res=$?
++ log_ok
++ else
++ res=$?
++ log_fail
++ log_msg "Failed commandline was:"
++ log_msg "--------------------------------------------------"
++ log_msg "$rc_cmd"
++ cat conftest.log >> config.log
++ log_msg "--------------------------------------------------"
++ log_msg "Failed program was:"
++ log_msg "--------------------------------------------------"
++ cat conftest.rc >> config.log
++ log_msg "--------------------------------------------------"
++ fi
++ return $res
++}
++
++define() {
++ echo "#define $1$([ -n "$2" ] && echo " $2" || echo " 1")" >> config.h
++}
++
++die() {
++ log_msg "DIED: $@"
++ echo "$@"
++ exit 1
++}
++
++configure_system_override() {
++ log_check "system libdavs2 configuration"
++ davs2_config_path="$1/davs2_config.h"
++ if [ -e "$davs2_config_path" ]; then
++ res=$?
++ log_ok
++ arg="$(grep '#define DAVS2_GPL ' $davs2_config_path | sed -e 's/#define DAVS2_GPL *//; s/ *$//')"
++ if [ -n "$arg" ]; then
++ [ "$arg" = 0 ] && arg="no" || arg="yes"
++ [ "$arg" != "$gpl" ] && die "Incompatible license with system libdavs2"
++ fi
++ arg="$(grep '#define DAVS2_BIT_DEPTH ' $davs2_config_path | sed -e 's/#define DAVS2_BIT_DEPTH *//; s/ *$//')"
++ if [ -n "$arg" ]; then
++ if [ "$arg" != "$bit_depth" ]; then
++ echo "Override output bit depth with system libdavs2 configuration"
++ bit_depth="$arg"
++ fi
++ fi
++ arg="$(grep '#define DAVS2_CHROMA_FORMAT ' $davs2_config_path | sed -e 's/#define DAVS2_CHROMA_FORMAT *//; s/ *$//')"
++ if [ -n "$arg" ]; then
++ [ "$arg" = 0 ] && arg="all" || arg="${arg#DAVS2_CSP_I}"
++ if [ "$arg" != "$chroma_format" ]; then
++ echo "Override output chroma format with system libdavs2 configuration"
++ chroma_format="$arg"
++ fi
++ fi
++ arg="$(grep '#define DAVS2_INTERLACED ' $davs2_config_path | sed -e 's/#define DAVS2_INTERLACED *//; s/ *$//')"
++ if [ -n "$arg" ]; then
++ [ "$arg" = 0 ] && arg="no" || arg="yes"
++ if [ "$arg" != "$interlaced" ]; then
++ echo "Override interlaced encoding support with system libdavs2 configuration"
++ interlaced="$arg"
++ fi
++ fi
++ else
++ res=$?
++ log_fail
++ log_msg "Failed search path was: $davs2_config_path"
++ fi
++ return $res
++}
++
++rm -f davs2_config.h config.h config.mak config.log davs2.pc davs2.def conftest*
++
++# Construct a path to the specified directory relative to the working directory
++relative_path() {
++ local base="${PWD%/}"
++ local path="$(cd "$1" >/dev/null; printf '%s/.' "${PWD%/}")"
++ local up=''
++
++ while [[ $path != "$base/"* ]]; do
++ base="${base%/*}"
++ up="../$up"
++ done
++
++ dirname "$up${path#"$base/"}"
++}
++
++SRCPATH="$(cd ../../source ; pwd)"
++[ "$SRCPATH" = "$(pwd)" ] && SRCPATH=.
++[ -n "$(echo $SRCPATH | grep ' ')" ] && die "Out of tree builds are impossible with whitespace in source path."
++
++BUILDPATH="$(cd . ; pwd)"
++
++echo "$SRCPATH" | grep -q ' ' && die "Out of tree builds are impossible with whitespace in source path."
++echo "$BUILDPATH" | grep -q ' ' && die "Out of tree builds are impossible with whitespace in source path."
++[ -e "$BUILDPATH/config.h" -o -e "$BUILDPATH/davs2_config.h" ] && die "Out of tree builds are impossible with config.h/davs2_config.h in source dir."
++
++prefix='/usr/local'
++exec_prefix='${prefix}'
++bindir='${exec_prefix}/bin'
++libdir='${exec_prefix}/lib'
++includedir='${prefix}/include'
++DEVNULL='/dev/null'
++
++cli="yes"
++cli_libdavs2="internal"
++shared="no"
++static="yes"
++avs="no"
++lavf="auto"
++ffms="auto"
++gpac="auto"
++lsmash="auto"
++mp4="no"
++gpl="yes"
++thread="auto"
++swscale="auto"
++asm="auto"
++interlaced="yes"
++lto="no"
++debug="no"
++gprof="no"
++strip="no"
++pic="no"
++bit_depth="8"
++chroma_format="all"
++compiler="GNU"
++compiler_style="GNU"
++opencl="no"
++vsx="auto"
++
++CFLAGS="$CFLAGS -Wall -I. -I\$(SRCPATH)"
++LDFLAGS="$LDFLAGS"
++LDFLAGSCLI="$LDFLAGSCLI"
++ASFLAGS="$ASFLAGS -I. -I\$(SRCPATH)"
++RCFLAGS="$RCFLAGS"
++CHECK_CFLAGS=""
++HAVE_GETOPT_LONG=1
++cross_prefix=""
++
++EXE=""
++AS_EXT=".S"
++NL="
++"
++
++# list of all preprocessor HAVE values we can define
++CONFIG_HAVE="MALLOC_H ALTIVEC ALTIVEC_H MMX ARMV6 ARMV6T2 NEON BEOSTHREAD POSIXTHREAD WIN32THREAD THREAD LOG2F SWSCALE \
++ LAVF FFMS GPAC AVS GPL VECTOREXT INTERLACED CPU_COUNT OPENCL THP LSMASH X86_INLINE_ASM AS_FUNC INTEL_DISPATCHER \
++ MSA MMAP WINRT VSX"
++
++# parse options
++
++for opt do
++ optarg="${opt#*=}"
++ case "$opt" in
++ --prefix=*)
++ prefix="$optarg"
++ ;;
++ --exec-prefix=*)
++ exec_prefix="$optarg"
++ ;;
++ --bindir=*)
++ bindir="$optarg"
++ ;;
++ --libdir=*)
++ libdir="$optarg"
++ ;;
++ --includedir=*)
++ includedir="$optarg"
++ ;;
++ --disable-cli)
++ cli="no"
++ ;;
++ --system-libdavs2)
++ cli_libdavs2="system"
++ ;;
++ --enable-shared)
++ shared="yes"
++ ;;
++ --enable-static)
++ static="yes"
++ ;;
++ --disable-asm)
++ asm="no"
++ ;;
++ --disable-interlaced)
++ interlaced="no"
++ ;;
++ --disable-avs)
++ avs="no"
++ ;;
++ --disable-lavf)
++ lavf="no"
++ ;;
++ --disable-ffms)
++ ffms="no"
++ ;;
++ --disable-gpac)
++ gpac="no"
++ ;;
++ --disable-lsmash)
++ lsmash="no"
++ ;;
++ --disable-gpl)
++ gpl="no"
++ ;;
++ --extra-asflags=*)
++ ASFLAGS="$ASFLAGS $optarg"
++ ;;
++ --extra-cflags=*)
++ CFLAGS="$CFLAGS $optarg"
++ ;;
++ --extra-ldflags=*)
++ LDFLAGS="$LDFLAGS $optarg"
++ ;;
++ --extra-rcflags=*)
++ RCFLAGS="$RCFLAGS $optarg"
++ ;;
++ --disable-thread)
++ thread="no"
++ ;;
++ --disable-win32thread)
++ [ "$thread" != "no" ] && thread="posix"
++ ;;
++ --disable-swscale)
++ swscale="no"
++ ;;
++ --enable-lto)
++ lto="auto"
++ ;;
++ --enable-debug)
++ debug="yes"
++ ;;
++ --enable-gprof)
++ CFLAGS="$CFLAGS -pg"
++ LDFLAGS="$LDFLAGS -pg"
++ gprof="yes"
++ ;;
++ --enable-strip)
++ strip="yes"
++ ;;
++ --enable-pic)
++ pic="yes"
++ ;;
++ --host=*)
++ host="$optarg"
++ ;;
++ --disable-vsx)
++ vsx="no"
++ ;;
++ --disable-opencl)
++ opencl="no"
++ ;;
++ --cross-prefix=*)
++ cross_prefix="$optarg"
++ ;;
++ --sysroot=*)
++ CFLAGS="$CFLAGS --sysroot=$optarg"
++ LDFLAGS="$LDFLAGS --sysroot=$optarg"
++ ;;
++ --bit-depth=*)
++ bit_depth="$optarg"
++ if [ "$bit_depth" -lt "8" -o "$bit_depth" -gt "10" ]; then
++ echo "Supplied bit depth must be in range [8,10]."
++ exit 1
++ fi
++ bit_depth=`expr $bit_depth + 0`
++ ;;
++ --chroma-format=*)
++ chroma_format="$optarg"
++ if [ $chroma_format != "420" -a $chroma_format != "422" -a $chroma_format != "444" -a $chroma_format != "all" ]; then
++ echo "Supplied chroma format must be 420, 422, 444 or all."
++ exit 1
++ fi
++ ;;
++ *)
++ echo "Unknown option $opt, ignored"
++ ;;
++ esac
++done
++
++[ "$cli" = "no" -a "$shared" = "no" -a "$static" = "no" ] && die "Nothing to build. Enable cli, shared or static."
++
++CC="${CC-${cross_prefix}g++}"
++STRIP="${STRIP-${cross_prefix}strip}"
++INSTALL="${INSTALL-install}"
++PKGCONFIG="${PKGCONFIG-${cross_prefix}pkg-config}"
++
++# ar and ranlib doesn't load the LTO plugin by default, prefer the g++-prefixed wrappers which does.
++if ${cross_prefix}g++-ar --version >/dev/null 2>&1; then
++ AR="${AR-${cross_prefix}g++-ar}"
++else
++ AR="${AR-${cross_prefix}ar}"
++fi
++if ${cross_prefix}g++-ranlib --version >/dev/null 2>&1; then
++ RANLIB="${RANLIB-${cross_prefix}g++-ranlib}"
++else
++ RANLIB="${RANLIB-${cross_prefix}ranlib}"
++fi
++
++if [ "x$host" = x ]; then
++ host=`${BUILDPATH}/config.guess`
++fi
++# normalize a triplet into a quadruplet
++host=`${BUILDPATH}/config.sub $host`
++
++# split $host
++host_cpu="${host%%-*}"
++host="${host#*-}"
++host_vendor="${host%%-*}"
++host_os="${host#*-}"
++
++trap 'rm -f conftest*' EXIT
++
++# test for use of compilers that require specific handling
++cc_base=`basename "$CC"`
++QPRE="-"
++if [[ $host_os = mingw* || $host_os = cygwin* ]]; then
++ if [[ "$cc_base" = icl || "$cc_base" = icl[\ .]* ]]; then
++ # Windows Intel Compiler creates dependency generation with absolute Windows paths, Cygwin's make does not support Windows paths.
++ [[ $host_os = cygwin* ]] && die "Windows Intel Compiler support requires MSYS"
++ compiler=ICL
++ compiler_style=MS
++ CFLAGS="$CFLAGS -Qstd=c99 -nologo -Qms0 -DHAVE_STRING_H -I\$(SRCPATH)/extras"
++ QPRE="-Q"
++ `$CC 2>&1 | grep -q IA-32` && host_cpu=i486
++ `$CC 2>&1 | grep -q "Intel(R) 64"` && host_cpu=x86_64
++ cpp_check "" "" "_MSC_VER >= 1400" || die "Windows Intel Compiler support requires Visual Studio 2005 or newer"
++ if cc_check '' -Qdiag-error:10006,10157 ; then
++ CHECK_CFLAGS="$CHECK_CFLAGS -Qdiag-error:10006,10157"
++ fi
++ elif [[ "$cc_base" = cl || "$cc_base" = cl[\ .]* ]]; then
++ # Standard Microsoft Visual Studio
++ compiler=CL
++ compiler_style=MS
++ CFLAGS="$CFLAGS -nologo -GS- -DHAVE_STRING_H -I\$(SRCPATH)/extras"
++ `$CC 2>&1 | grep -q 'x86'` && host_cpu=i486
++ `$CC 2>&1 | grep -q 'x64'` && host_cpu=x86_64
++ cpp_check '' '' '_MSC_VER > 1800 || (_MSC_VER == 1800 && _MSC_FULL_VER >= 180030324)' || die "Microsoft Visual Studio support requires Visual Studio 2013 Update 2 or newer"
++ else
++ # MinGW uses broken pre-VS2015 Microsoft printf functions unless it's told to use the POSIX ones.
++ CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112L"
++ fi
++else
++ if [[ "$cc_base" = icc || "$cc_base" = icc[\ .]* ]]; then
++ AR="xiar"
++ compiler=ICC
++ fi
++fi
++
++if [[ "$cc_base" = clang* ]]; then
++ if cc_check '' -Werror=unknown-warning-option ; then
++ CHECK_CFLAGS="$CHECK_CFLAGS -Werror=unknown-warning-option"
++ fi
++fi
++
++libm=""
++case $host_os in
++ beos*)
++ SYS="BEOS"
++ define HAVE_MALLOC_H
++ ;;
++ darwin*)
++ SYS="MACOSX"
++ libm="-lm"
++ if [ "$pic" = "no" ]; then
++ cc_check "" -mdynamic-no-pic && CFLAGS="$CFLAGS -mdynamic-no-pic"
++ fi
++ ;;
++ freebsd*)
++ SYS="FREEBSD"
++ libm="-lm"
++ ;;
++ kfreebsd*-gnu)
++ SYS="FREEBSD"
++ define HAVE_MALLOC_H
++ libm="-lm"
++ ;;
++ netbsd*)
++ SYS="NETBSD"
++ libm="-lm"
++ ;;
++ openbsd*)
++ SYS="OPENBSD"
++ libm="-lm"
++ ;;
++ *linux*)
++ SYS="LINUX"
++ define HAVE_MALLOC_H
++ libm="-lm"
++ ;;
++ gnu*)
++ SYS="HURD"
++ define HAVE_MALLOC_H
++ libm="-lm"
++ ;;
++ cygwin*|mingw*|msys*)
++ EXE=".exe"
++ if [[ $host_os = cygwin* ]] && cpp_check "" "" "defined(__CYGWIN__)" ; then
++ SYS="CYGWIN"
++ define HAVE_MALLOC_H
++ else
++ SYS="WINDOWS"
++ DEVNULL="NUL"
++ LDFLAGSCLI="$LDFLAGSCLI -lshell32"
++ [ $compiler = GNU ] && RC="${RC-${cross_prefix}windres}" || RC="${RC-rc}"
++ fi
++ ;;
++ sunos*|solaris*)
++ SYS="SunOS"
++ define HAVE_MALLOC_H
++ libm="-lm"
++ if cc_check "" /usr/lib/64/values-xpg6.o; then
++ LDFLAGS="$LDFLAGS /usr/lib/64/values-xpg6.o"
++ else
++ LDFLAGS="$LDFLAGS /usr/lib/values-xpg6.o"
++ fi
++ if test -x /usr/ucb/install ; then
++ INSTALL=/usr/ucb/install
++ elif test -x /usr/bin/ginstall ; then
++ # OpenSolaris
++ INSTALL=/usr/bin/ginstall
++ elif test -x /usr/gnu/bin/install ; then
++ # OpenSolaris
++ INSTALL=/usr/gnu/bin/install
++ fi
++ HAVE_GETOPT_LONG=0
++ ;;
++ *qnx*)
++ SYS="QNX"
++ define HAVE_MALLOC_H
++ libm="-lm"
++ HAVE_GETOPT_LONG=0
++ CFLAGS="$CFLAGS -I\$(SRCPATH)/extras"
++ ;;
++ *haiku*)
++ SYS="HAIKU"
++ ;;
++ *)
++ die "Unknown system $host, edit the configure"
++ ;;
++esac
++
++LDFLAGS="$LDFLAGS $libm"
++
++stack_alignment=4
++case $host_cpu in
++ i*86)
++ ARCH="X86"
++ AS="${AS-yasm}"
++ AS_EXT=".asm"
++ CFLAGS="$CFLAGS -DARCH_X86_64=0"
++ ASFLAGS="$ASFLAGS -DARCH_X86_64=0 -I\$(SRCPATH)/common/x86/"
++ if [ $compiler = GNU ]; then
++ if [[ "$asm" == auto && "$CFLAGS" != *-march* ]]; then
++ CFLAGS="$CFLAGS -march=i686"
++ fi
++ if [[ "$asm" == auto && "$CFLAGS" != *-mfpmath* ]]; then
++ CFLAGS="$CFLAGS -mfpmath=sse -msse -msse2"
++ fi
++ CFLAGS="-m32 $CFLAGS"
++ LDFLAGS="-m32 $LDFLAGS"
++ fi
++ if [ "$SYS" = MACOSX ]; then
++ ASFLAGS="$ASFLAGS -f macho32 -DPREFIX"
++ elif [ "$SYS" = WINDOWS -o "$SYS" = CYGWIN ]; then
++ ASFLAGS="$ASFLAGS -f win32 -DPREFIX"
++ LDFLAGS="$LDFLAGS -Wl,--large-address-aware"
++ [ $compiler = GNU ] && LDFLAGS="$LDFLAGS -Wl,--dynamicbase,--nxcompat,--tsaware"
++ [ $compiler = GNU ] && RCFLAGS="--target=pe-i386 $RCFLAGS"
++ else
++ ASFLAGS="$ASFLAGS -f elf32"
++ fi
++ ;;
++ x86_64)
++ ARCH="X86_64"
++ AS="${AS-yasm}"
++ AS_EXT=".asm"
++ CFLAGS="$CFLAGS -DARCH_X86_64=1"
++ ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
++ stack_alignment=16
++ [ $compiler = GNU ] && CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
++ if [ "$SYS" = MACOSX ]; then
++ ASFLAGS="$ASFLAGS -f macho64 -DPIC -DPREFIX"
++ if cc_check '' "-arch x86_64"; then
++ CFLAGS="$CFLAGS -arch x86_64"
++ LDFLAGS="$LDFLAGS -arch x86_64"
++ fi
++ elif [ "$SYS" = WINDOWS -o "$SYS" = CYGWIN ]; then
++ ASFLAGS="$ASFLAGS -f win64"
++ if [ $compiler = GNU ]; then
++ # only the GNU toolchain is inconsistent in prefixing function names with _
++ cc_check "" "-S" && grep -q "_main:" conftest && ASFLAGS="$ASFLAGS -DPREFIX"
++ cc_check "" "-Wl,--high-entropy-va" && LDFLAGS="$LDFLAGS -Wl,--high-entropy-va"
++ LDFLAGS="$LDFLAGS -Wl,--dynamicbase,--nxcompat,--tsaware"
++ LDFLAGSCLI="$LDFLAGSCLI -Wl,--image-base,0x140000000"
++ SOFLAGS="$SOFLAGS -Wl,--image-base,0x180000000"
++ RCFLAGS="--target=pe-x86-64 $RCFLAGS"
++ fi
++ else
++ ASFLAGS="$ASFLAGS -f elf64"
++ fi
++ ;;
++ powerpc*)
++ ARCH="PPC"
++ if [ $asm = auto ] ; then
++ define HAVE_ALTIVEC
++ AS="${AS-${CC}}"
++ AS_EXT=".c"
++ if [ $SYS = MACOSX ] ; then
++ CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
++ else
++ CFLAGS="$CFLAGS -maltivec -mabi=altivec"
++ define HAVE_ALTIVEC_H
++ fi
++ if [ "$vsx" != "no" ] ; then
++ vsx="no"
++ if cc_check "" "-mvsx" ; then
++ CFLAGS="$CFLAGS -mvsx"
++ define HAVE_VSX
++ vsx="yes"
++ fi
++ fi
++ fi
++ ;;
++ sparc)
++ ARCH="SPARC"
++ ;;
++ mips*)
++ ARCH="MIPS"
++ AS="${AS-${CC}}"
++ AS_EXT=".c"
++ ;;
++ arm*)
++ ARCH="ARM"
++ if [ "$SYS" = MACOSX ] ; then
++ AS="${AS-${SRCPATH}/tools/gas-preprocessor.pl -arch arm -- ${CC}}"
++ ASFLAGS="$ASFLAGS -DPREFIX -DPIC" # apple's ld doesn't support movw/movt relocations at all
++ # build for armv7 by default
++ if ! echo $CFLAGS | grep -Eq '\-arch' ; then
++ CFLAGS="$CFLAGS -arch armv7"
++ LDFLAGS="$LDFLAGS -arch armv7"
++ fi
++ else
++ AS="${AS-${CC}}"
++ fi
++ ;;
++ aarch64)
++ ARCH="AARCH64"
++ stack_alignment=16
++ if [ "$SYS" = MACOSX ] ; then
++ AS="${AS-${SRCPATH}/tools/gas-preprocessor.pl -arch aarch64 -- ${CC}}"
++ ASFLAGS="$ASFLAGS -DPREFIX"
++ else
++ AS="${AS-${CC}}"
++ fi
++ ;;
++ s390|s390x)
++ ARCH="S390"
++ ;;
++ hppa*|parisc*)
++ ARCH="PARISC"
++ ;;
++ ia64)
++ ARCH="IA64"
++ ;;
++ alpha*)
++ ARCH="ALPHA"
++ ;;
++ *)
++ ARCH="$(echo $host_cpu | tr a-z A-Z)"
++ ;;
++esac
++
++[ "$vsx" != "yes" ] && vsx="no"
++
++if [ $SYS = WINDOWS ]; then
++ if ! rc_check "0 RCDATA {0}" ; then
++ RC=""
++ fi
++
++ if cpp_check "winapifamily.h" "" "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" ; then
++ [ $compiler = CL ] || die "WinRT requires MSVC"
++ define HAVE_WINRT
++ CFLAGS="$CFLAGS -MD"
++ LDFLAGS="$LDFLAGS -appcontainer"
++ if ! cpp_check "" "" "defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0603" ; then
++ die "_WIN32_WINNT must be defined to at least 0x0603 (Windows 8.1) for WinRT"
++ elif cpp_check "" "" "_WIN32_WINNT >= 0x0A00" ; then
++ # Universal Windows Platform (Windows 10)
++ LDFLAGS="$LDFLAGS -lWindowsApp"
++ fi
++ cli="no"
++ opencl="no"
++ fi
++fi
++
++log_msg "davs2 configure script"
++if [ -n "$*" ]; then
++ msg="Command line options:"
++ for i in $@; do
++ msg="$msg \"$i\""
++ done
++ log_msg "$msg"
++fi
++log_msg ""
++
++# check requirements
++
++cc_check || die "No working C compiler found."
++
++if [ $compiler_style = GNU ]; then
++ if cc_check '' -std=c++11 'for( int i = 0; i < 9; i++ );' ; then
++ CFLAGS="$CFLAGS -std=c++11 -D_GNU_SOURCE"
++ elif ! cc_check '' '' 'for( int i = 0; i < 9; i++ );' ; then
++ die "C99 compiler is needed for compilation."
++ fi
++fi
++
++if [ $shared = yes -a \( $ARCH = "X86_64" -o $ARCH = "PPC" -o $ARCH = "ALPHA" -o $ARCH = "ARM" -o $ARCH = "IA64" -o $ARCH = "PARISC" -o $ARCH = "MIPS" -o $ARCH = "AARCH64" \) ] ; then
++ pic="yes"
++fi
++
++if [ $compiler = GNU -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
++ if cc_check '' -mpreferred-stack-boundary=5 ; then
++ CFLAGS="$CFLAGS -mpreferred-stack-boundary=5"
++ stack_alignment=32
++ elif [ $stack_alignment -lt 16 ] && cc_check '' -mpreferred-stack-boundary=4 ; then
++ CFLAGS="$CFLAGS -mpreferred-stack-boundary=4"
++ stack_alignment=16
++ fi
++elif [ $compiler = ICC -a $ARCH = X86 ]; then
++ # icc on linux has various degrees of mod16 stack support
++ if [ $SYS = LINUX ]; then
++ # >= 12 defaults to a mod16 stack
++ if cpp_check "" "" "__INTEL_COMPILER >= 1200" ; then
++ stack_alignment=16
++ # 11 <= x < 12 is capable of keeping a mod16 stack, but defaults to not doing so.
++ elif cpp_check "" "" "__INTEL_COMPILER >= 1100" ; then
++ CFLAGS="$CFLAGS -falign-stack=assume-16-byte"
++ stack_alignment=16
++ fi
++ # < 11 is completely incapable of keeping a mod16 stack
++ fi
++fi
++
++if [ $asm = auto -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
++ if ! as_check "vpmovzxwd ymm0, xmm0" ; then
++ VER=`($AS --version || echo no assembler) 2>/dev/null | head -n 1`
++ echo "Found $VER"
++ echo "Minimum version is yasm-1.2.0"
++ echo "If you really want to compile without asm, configure with --disable-asm."
++ exit 1
++ fi
++ cc_check '' '' '__asm__("pabsw %xmm0, %xmm0");' && define HAVE_X86_INLINE_ASM
++ ASFLAGS="$ASFLAGS -Worphan-labels"
++ define HAVE_MMX
++fi
++
++if [ $asm = auto -a $ARCH = ARM ] ; then
++ # set flags so neon is built by default
++ echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
++
++ if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6
++ cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2
++ cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON
++ ASFLAGS="$ASFLAGS -c"
++ else
++ echo "You specified a pre-ARMv6 or Thumb-1 CPU in your CFLAGS."
++ echo "If you really want to run on such a CPU, configure with --disable-asm."
++ exit 1
++ fi
++fi
++
++if [ $asm = auto -a $ARCH = AARCH64 ] ; then
++ if cc_check '' '' '__asm__("cmeq v0.8h, v0.8h, #0");' ; then define HAVE_NEON
++ ASFLAGS="$ASFLAGS -c"
++ else
++ echo "no NEON support, try adding -mfpu=neon to CFLAGS"
++ echo "If you really want to run on such a CPU, configure with --disable-asm."
++ exit 1
++ fi
++fi
++
++if [ $asm = auto -a \( $ARCH = ARM -o $ARCH = AARCH64 \) ] ; then
++ # check if the assembler supports '.func' (clang 3.5 does not)
++ as_check ".func test${NL}.endfunc" && define HAVE_AS_FUNC 1
++fi
++
++if [ $asm = auto -a $ARCH = MIPS ] ; then
++ if ! echo $CFLAGS | grep -Eq '(-march|-mmsa|-mno-msa)' ; then
++ cc_check '' '-mmsa -mfp64 -mhard-float' && CFLAGS="-mmsa -mfp64 -mhard-float $CFLAGS"
++ fi
++
++ if cc_check '' '' '__asm__("addvi.b $w0, $w1, 1");' ; then
++ define HAVE_MSA
++ else
++ echo "You specified a pre-MSA CPU in your CFLAGS."
++ echo "If you really want to run on such a CPU, configure with --disable-asm."
++ exit 1
++ fi
++fi
++
++[ $asm = no ] && AS=""
++[ "x$AS" = x ] && asm="no" || asm="yes"
++
++define ARCH_$ARCH
++define SYS_$SYS
++
++define STACK_ALIGNMENT $stack_alignment
++ASFLAGS="$ASFLAGS -DSTACK_ALIGNMENT=$stack_alignment"
++
++# skip endianness check for Intel Compiler and MSVS, as all supported platforms are little. each have flags that will cause the check to fail as well
++CPU_ENDIAN="little-endian"
++if [ $compiler = GNU ]; then
++ echo "int i[2] = {0x42494745,0}; double f[2] = {0x1.0656e6469616ep+102,0};" > conftest.c
++ $CC $CFLAGS conftest.c -c -o conftest.o 2>/dev/null || die "endian test failed"
++ if (${cross_prefix}strings -a conftest.o | grep -q BIGE) && (${cross_prefix}strings -a conftest.o | grep -q FPendian) ; then
++ define WORDS_BIGENDIAN
++ CPU_ENDIAN="big-endian"
++ elif !(${cross_prefix}strings -a conftest.o | grep -q EGIB && ${cross_prefix}strings -a conftest.o | grep -q naidnePF) ; then
++ die "endian test failed"
++ fi
++fi
++
++if [ "$cli_libdavs2" = "system" -a "$shared" != "yes" ] ; then
++ [ "$static" = "yes" ] && die "Option --system-libdavs2 can not be used together with --enable-static"
++ if $PKGCONFIG --exists davs2 2>/dev/null; then
++ DAVS2_LIBS="$($PKGCONFIG --libs davs2)"
++ DAVS2_INCLUDE_DIR="${DAVS2_INCLUDE_DIR-$($PKGCONFIG --variable=includedir davs2)}"
++ configure_system_override "$DAVS2_INCLUDE_DIR" || die "Detection of system libdavs2 configuration failed"
++ else
++ die "Can not find system libdavs2"
++ fi
++fi
++
++# autodetect options that weren't forced nor disabled
++
++libpthread=""
++if [ "$SYS" = "WINDOWS" -a "$thread" = "posix" ] ; then
++ if [ "$gpl" = "no" ] ; then
++ echo "Warning: pthread-win32 is LGPL and is therefore not supported with --disable-gpl"
++ thread="no"
++ elif cc_check pthread.h -lpthread "pthread_create(0,0,0,0);" ; then
++ libpthread="-lpthread"
++ elif cc_check pthread.h -lpthreadGC2 "pthread_create(0,0,0,0);" ; then
++ libpthread="-lpthreadGC2"
++ elif cc_check pthread.h "-lpthreadGC2 -lwsock32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
++ libpthread="-lpthreadGC2 -lwsock32"
++ define PTW32_STATIC_LIB
++ elif cc_check pthread.h "-lpthreadGC2 -lws2_32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
++ libpthread="-lpthreadGC2 -lws2_32"
++ define PTW32_STATIC_LIB
++ else
++ thread="no"
++ fi
++elif [ "$thread" != "no" ] ; then
++ thread="no"
++ case $SYS in
++ BEOS)
++ thread="beos"
++ define HAVE_BEOSTHREAD
++ ;;
++ WINDOWS)
++ thread="win32"
++ define HAVE_WIN32THREAD
++ ;;
++ QNX)
++ cc_check pthread.h -lc "pthread_create(0,0,0,0);" && thread="posix" && libpthread="-lc"
++ ;;
++ *)
++ if cc_check pthread.h -lpthread "pthread_create(0,0,0,0);" ; then
++ thread="posix"
++ libpthread="-lpthread"
++ else
++ cc_check pthread.h "" "pthread_create(0,0,0,0);" && thread="posix" && libpthread=""
++ fi
++ ;;
++ esac
++fi
++if [ "$thread" = "posix" ]; then
++ LDFLAGS="$LDFLAGS $libpthread"
++ define HAVE_POSIXTHREAD
++ if [ "$SYS" = "LINUX" ] && cc_check sched.h "-D_GNU_SOURCE -Werror" "cpu_set_t p_aff; return CPU_COUNT(&p_aff);" ; then
++ define HAVE_CPU_COUNT
++ fi
++fi
++[ "$thread" != "no" ] && define HAVE_THREAD
++
++if cc_check "math.h" "-Werror" "return log2f(2);" ; then
++ define HAVE_LOG2F
++fi
++
++if [ "$SYS" != "WINDOWS" ] && cpp_check "sys/mman.h unistd.h" "" "defined(MAP_PRIVATE)"; then
++ define HAVE_MMAP
++fi
++
++if [ "$SYS" = "LINUX" -a \( "$ARCH" = "X86" -o "$ARCH" = "X86_64" \) ] && cc_check "sys/mman.h" "" "MADV_HUGEPAGE;" ; then
++ define HAVE_THP
++fi
++
++if [ "$cli" = "no" ] ; then
++ avs="no"
++ lavf="no"
++ ffms="no"
++ gpac="no"
++ lsmash="no"
++ mp4="no"
++ swscale="no"
++fi
++
++if [ "$swscale" = "auto" ] ; then
++ swscale="no"
++ if $PKGCONFIG --exists libswscale 2>/dev/null; then
++ SWSCALE_LIBS="$SWSCALE_LIBS $($PKGCONFIG --libs libswscale libavutil)"
++ SWSCALE_CFLAGS="$SWSCALE_CFLAGS $($PKGCONFIG --cflags libswscale libavutil)"
++ fi
++ [ -z "$SWSCALE_LIBS" ] && SWSCALE_LIBS="-lswscale -lavutil"
++
++ if cc_check "libswscale/swscale.h" "$SWSCALE_CFLAGS $SWSCALE_LIBS" "sws_init_context(0,0,0);" ; then
++ if cpp_check "libavutil/pixdesc.h" "$SWSCALE_CFLAGS $SWSCALE_LIBS" "defined(AV_PIX_FMT_FLAG_RGB)" ; then
++ swscale="yes"
++ else
++ echo "Warning: AV_PIX_FMT_FLAG_RGB is missing from libavutil, update for swscale support"
++ fi
++ fi
++fi
++
++if [ "$lavf" = "auto" ] ; then
++ lavf="no"
++ if $PKGCONFIG --exists libavformat libavcodec libswscale 2>/dev/null; then
++ LAVF_LIBS="$LAVF_LIBS $($PKGCONFIG --libs libavformat libavcodec libavutil libswscale)"
++ LAVF_CFLAGS="$LAVF_CFLAGS $($PKGCONFIG --cflags libavformat libavcodec libavutil libswscale)"
++ fi
++ if [ -z "$LAVF_LIBS" -a -z "$LAVF_CFLAGS" ]; then
++ LAVF_LIBS="-lavformat"
++ for lib in -lpostproc -lavcodec -lswscale -lavutil -lm -lz -lbz2 $libpthread -lavifil32 -lws2_32; do
++ cc_check "" $lib && LAVF_LIBS="$LAVF_LIBS $lib"
++ done
++ fi
++ LAVF_LIBS="-L. $LAVF_LIBS"
++ if cc_check libavformat/avformat.h "$LAVF_CFLAGS $LAVF_LIBS" "av_frame_free(0);" ; then
++ if [ "$swscale" = "yes" ]; then
++ lavf="yes"
++ else
++ echo "Warning: libavformat is not supported without swscale support"
++ fi
++ fi
++fi
++
++if [ "$ffms" = "auto" ] ; then
++ ffms_major="2"; ffms_minor="21"; ffms_micro="0"; ffms_bump="0"
++ ffms="no"
++
++ if $PKGCONFIG --exists ffms2 2>/dev/null; then
++ FFMS2_LIBS="$FFMS2_LIBS $($PKGCONFIG --libs ffms2)"
++ FFMS2_CFLAGS="$FFMS2_CFLAGS $($PKGCONFIG --cflags ffms2)"
++ fi
++ [ -z "$FFMS2_LIBS" ] && FFMS2_LIBS="-lffms2"
++
++ if cc_check ffms.h "$FFMS2_CFLAGS $FFMS2_LIBS" "FFMS_DestroyVideoSource(0);" ; then
++ ffms="yes"
++ elif cc_check ffms.h "$FFMS2_CFLAGS $FFMS2_LIBS -lstdc++ $LAVF_LIBS" "FFMS_DestroyVideoSource(0);" ; then
++ ffms="yes"
++ FFMS2_LIBS="$FFMS2_LIBS -lstdc++ $LAVF_LIBS"
++ fi
++
++ error="ffms must be at least version $ffms_major.$ffms_minor.$ffms_micro.$ffms_bump"
++ if [ $ffms = "yes" ] && ! cpp_check "ffms.h" "$FFMS2_CFLAGS" "FFMS_VERSION >= (($ffms_major << 24) | ($ffms_minor << 16) | ($ffms_micro << 8) | $ffms_bump)" "$error"; then
++ ffms="no"
++ echo "Warning: $error"
++ fi
++ if [ "$ffms" = "yes" -a "$swscale" = "no" ]; then
++ echo "Warning: ffms is not supported without swscale support"
++ ffms="no"
++ fi
++fi
++
++if [ "$swscale" = "yes" ]; then
++ LDFLAGSCLI="$SWSCALE_LIBS $LDFLAGSCLI"
++ CFLAGS="$CFLAGS $SWSCALE_CFLAGS"
++ define HAVE_SWSCALE
++ if [ "$lavf" = "yes" ]; then
++ LDFLAGSCLI="$LAVF_LIBS $LDFLAGSCLI"
++ CFLAGS="$CFLAGS $LAVF_CFLAGS"
++ define HAVE_LAVF
++ fi
++ if [ "$ffms" = "yes" ]; then
++ LDFLAGSCLI="$FFMS2_LIBS $LDFLAGSCLI"
++ CFLAGS="$CFLAGS $FFMS2_CFLAGS"
++ define HAVE_FFMS
++ fi
++fi
++
++if [ "$lsmash" = "auto" ] ; then
++ lsmash="no"
++ if $PKGCONFIG --exists liblsmash 2>/dev/null; then
++ LSMASH_LIBS="$LSMASH_LIBS $($PKGCONFIG --libs liblsmash)"
++ LSMASH_CFLAGS="$LSMASH_CFLAGS $($PKGCONFIG --cflags liblsmash)"
++ fi
++ [ -z "$LSMASH_LIBS" ] && LSMASH_LIBS="-llsmash"
++
++ if cc_check lsmash.h "$LSMASH_CFLAGS $LSMASH_LIBS" ; then
++ if cpp_check lsmash.h "$LSMASH_CFLAGS" "LSMASH_VERSION_MAJOR > 1 || (LSMASH_VERSION_MAJOR == 1 && LSMASH_VERSION_MINOR >= 5)" ; then
++ lsmash="yes"
++ else
++ echo "Warning: lsmash is too old, update to rev.895 or later"
++ fi
++ fi
++fi
++
++if [ "$gpac" = "auto" -a "$lsmash" != "yes" ] ; then
++ gpac="no"
++ GPAC_LIBS="-lgpac_static"
++ cc_check "" -lz && GPAC_LIBS="$GPAC_LIBS -lz"
++ if [ "$SYS" = "WINDOWS" ] ; then
++ cc_check "" -lws2_32 && GPAC_LIBS="$GPAC_LIBS -lws2_32"
++ cc_check "" -lwinmm && GPAC_LIBS="$GPAC_LIBS -lwinmm"
++ fi
++ if cc_check gpac/isomedia.h "$GPAC_LIBS" ; then
++ if cc_check gpac/isomedia.h "$GPAC_LIBS" "gf_isom_set_pixel_aspect_ratio(0,0,0,0,0);" ; then
++ gpac="yes"
++ else
++ echo "Warning: gpac is too old, update to 2007-06-21 UTC or later"
++ fi
++ fi
++fi
++
++if [ "$lsmash" = "yes" ] ; then
++ mp4="lsmash"
++ LDFLAGSCLI="$LSMASH_LIBS $LDFLAGSCLI"
++ CFLAGS="$CFLAGS $LSMASH_CFLAGS"
++ define HAVE_LSMASH
++elif [ "$gpac" = "yes" ] ; then
++ mp4="gpac"
++ define HAVE_GPAC
++ LDFLAGSCLI="$GPAC_LIBS $LDFLAGSCLI"
++fi
++
++if [ "$avs" = "auto" ] ; then
++ avs="no"
++ # cygwin can use avisynth if it can use LoadLibrary
++ if [ $SYS = WINDOWS ] || ([ $SYS = CYGWIN ] && cc_check windows.h "" "LoadLibraryW(0);") ; then
++ avs="avisynth"
++ define HAVE_AVS
++ define USE_AVXSYNTH 0
++ elif [ "$SYS" = "LINUX" -o "$SYS" = "MACOSX" ] ; then
++ # AvxSynth currently only supports Linux and OSX
++ avs="avxsynth"
++ define HAVE_AVS
++ define USE_AVXSYNTH 1
++ AVS_LIBS="-ldl"
++ LDFLAGSCLI="$AVS_LIBS $LDFLAGSCLI"
++ fi
++fi
++
++cc_check "stdint.h" "" "uint32_t test_vec __attribute__ ((vector_size (16))) = {0,1,2,3};" && define HAVE_VECTOREXT
++
++if [ "$pic" = "yes" ] ; then
++ [ "$SYS" != WINDOWS -a "$SYS" != CYGWIN ] && CFLAGS="$CFLAGS -fPIC"
++ ASFLAGS="$ASFLAGS -DPIC"
++ # resolve textrels in the x86 asm
++ cc_check stdio.h "-shared -Wl,-Bsymbolic" && SOFLAGS="$SOFLAGS -Wl,-Bsymbolic"
++ [ $SYS = SunOS -a "$ARCH" = "X86" ] && SOFLAGS="$SOFLAGS -mimpure-text"
++fi
++
++if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then
++ CFLAGS="$CFLAGS -fomit-frame-pointer"
++fi
++
++if [ "$strip" = "yes" ]; then
++ LDFLAGS="$LDFLAGS -s"
++fi
++
++if [ "$debug" = "yes" ]; then
++ CFLAGS="-O1 -g $CFLAGS"
++ RCFLAGS="$RCFLAGS -DDEBUG"
++else
++ CFLAGS="-O3 -ffast-math $CFLAGS"
++ if [ "$lto" = "auto" ] && [ $compiler = GNU ] && cc_check "" "-flto" ; then
++ lto="yes"
++ CFLAGS="$CFLAGS -flto"
++ LDFLAGS="$LDFLAGS -O3 -flto"
++ fi
++fi
++[ "$lto" = "auto" ] && lto="no"
++
++if cc_check '' -fno-tree-vectorize ; then
++ CFLAGS="$CFLAGS -fno-tree-vectorize"
++fi
++
++if [ $SYS = WINDOWS -a $ARCH = X86 -a $compiler = GNU ] ; then
++ # workaround g++/ld bug with alignment of static variables/arrays that are initialized to zero
++ cc_check '' -fno-zero-initialized-in-bss && CFLAGS="$CFLAGS -fno-zero-initialized-in-bss"
++fi
++
++if cc_check "stdio.h" "" "fseeko(stdin,0,0);" ; then
++ define fseek fseeko
++ define ftell ftello
++elif cc_check "stdio.h" "" "fseeko64(stdin,0,0);" ; then
++ define fseek fseeko64
++ define ftell ftello64
++elif cc_check "stdio.h" "" "_fseeki64(stdin,0,0);" ; then
++ define fseek _fseeki64
++ define ftell _ftelli64
++fi
++
++if cc_check '' -Wshadow ; then
++ CFLAGS="-Wshadow $CFLAGS"
++fi
++
++if cc_check '' -Wmaybe-uninitialized ; then
++ CFLAGS="-Wno-maybe-uninitialized $CFLAGS"
++fi
++
++if [ $compiler = ICC -o $compiler = ICL ] ; then
++ if cc_check 'extras/intel_dispatcher.h' '' 'davs2_intel_dispatcher_override();' ; then
++ define HAVE_INTEL_DISPATCHER
++ fi
++fi
++
++if [ "$bit_depth" -gt "8" ]; then
++ define HIGH_BIT_DEPTH
++ ASFLAGS="$ASFLAGS -DHIGH_BIT_DEPTH=1"
++ CFLAGS+=" -DHIGH_BIT_DEPTH=1"
++ opencl="no"
++else
++ ASFLAGS="$ASFLAGS -DHIGH_BIT_DEPTH=0"
++ CFLAGS+=" -DHIGH_BIT_DEPTH=0"
++fi
++
++if [ "$chroma_format" != "all" ]; then
++ define CHROMA_FORMAT CHROMA_$chroma_format
++fi
++
++ASFLAGS="$ASFLAGS -DBIT_DEPTH=$bit_depth"
++CFLAGS+=" -DBIT_DEPTH=$bit_depth"
++
++[ $gpl = yes ] && define HAVE_GPL && davs2_gpl=1 || davs2_gpl=0
++
++[ $interlaced = yes ] && define HAVE_INTERLACED && davs2_interlaced=1 || davs2_interlaced=0
++
++libdl=""
++if [ "$opencl" = "yes" ]; then
++ opencl="no"
++ # cygwin can use opencl if it can use LoadLibrary
++ if [ $SYS = WINDOWS ] || ([ $SYS = CYGWIN ] && cc_check windows.h "" "LoadLibraryW(0);") ; then
++ opencl="yes"
++ define HAVE_OPENCL
++ elif [ "$SYS" = "LINUX" -o "$SYS" = "MACOSX" ] ; then
++ opencl="yes"
++ define HAVE_OPENCL
++ libdl="-ldl"
++ fi
++ LDFLAGS="$LDFLAGS $libdl"
++fi
++
++#define undefined vars as 0
++for var in $CONFIG_HAVE; do
++ grep -q "HAVE_$var 1" config.h || define HAVE_$var 0
++done
++
++# generate exported config file
++
++config_chroma_format="DAVS2_CSP_I$chroma_format"
++[ "$config_chroma_format" == "DAVS2_CSP_Iall" ] && config_chroma_format="0"
++cat > davs2_config.h << EOF
++#define DAVS2_BIT_DEPTH $bit_depth
++#define DAVS2_GPL $davs2_gpl
++#define DAVS2_INTERLACED $davs2_interlaced
++#define DAVS2_CHROMA_FORMAT $config_chroma_format
++EOF
++
++# generate version.h
++cd ${SRCPATH}/..
++./version.sh >> ${BUILDPATH}/davs2_config.h
++cd ${BUILDPATH}
++
++if [ "$cli_libdavs2" = "system" ] ; then
++ if [ "$shared" = "yes" ]; then
++ CLI_LIBDAVS2='$(SONAME)'
++ else
++ CLI_LIBDAVS2=
++ LDFLAGSCLI="$DAVS2_LIBS $LDFLAGSCLI"
++ cc_check 'stdint.h davs2.h' '' 'davs2_encoder_open(0);' || die "System libdavs2 can't be used for compilation of this version"
++ fi
++else
++ CLI_LIBDAVS2='$(LIBDAVS2)'
++fi
++
++DEPMM="${QPRE}MM"
++DEPMT="${QPRE}MT"
++if [ $compiler_style = MS ]; then
++ AR="lib -nologo -out:"
++ LD="link -out:"
++ if [ $compiler = ICL ]; then
++ AR="xi$AR"
++ LD="xi$LD"
++ else
++ mslink="$(dirname "$(command -v cl 2>/dev/null)")/link"
++ [ -x "$mslink" ] && LD="\"$mslink\" -out:"
++ fi
++ HAVE_GETOPT_LONG=0
++ LDFLAGS="-nologo -incremental:no $(cl_ldflags $LDFLAGS)"
++ LDFLAGSCLI="$(cl_ldflags $LDFLAGSCLI)"
++ LIBDAVS2=libdavs2.lib
++ RANLIB=
++ [ -n "$RC" ] && RCFLAGS="$RCFLAGS -nologo -I. -I\$(SRCPATH)/extras -fo"
++ STRIP=
++ if [ $debug = yes ]; then
++ LDFLAGS="-debug $LDFLAGS"
++ CFLAGS="-D_DEBUG $CFLAGS"
++ else
++ CFLAGS="-DNDEBUG $CFLAGS"
++ fi
++else # g++/icc
++ DEPMM="$DEPMM -g0"
++ AR="$AR rc "
++ LD="$CC -o "
++ LIBDAVS2=libdavs2.a
++ [ -n "$RC" ] && RCFLAGS="$RCFLAGS -I. -o "
++fi
++[ $compiler != GNU ] && CFLAGS="$(cc_cflags $CFLAGS)"
++if [ $compiler = ICC -o $compiler = ICL ]; then
++ # icc does not define __SSE__ until SSE2 optimization and icl never defines it or _M_IX86_FP
++ [ \( $ARCH = X86_64 -o $ARCH = X86 \) -a $asm = yes ] && ! cpp_check "" "" "defined(__SSE__)" && define __SSE__
++ PROF_GEN_CC="${QPRE}prof-gen ${QPRE}prof-dir."
++ PROF_GEN_LD=
++ PROF_USE_CC="${QPRE}prof-use ${QPRE}prof-dir."
++ PROF_USE_LD=
++elif [ $compiler = CL ]; then
++ # Visual Studio
++ # _M_IX86_FP is only defined on x86
++ [ $ARCH = X86 ] && cpp_check '' '' '_M_IX86_FP >= 1' && define __SSE__
++ [ $ARCH = X86_64 ] && define __SSE__
++ # As long as the cli application can't link against the dll, the dll can not be pgo'd.
++ # pgds are link flag specific and the -dll flag for creating the dll makes it unshareable with the cli
++ PROF_GEN_CC="-GL"
++ PROF_GEN_LD="-LTCG:PGINSTRUMENT"
++ PROF_USE_CC="-GL"
++ PROF_USE_LD="-LTCG:PGOPTIMIZE"
++else
++ PROF_GEN_CC="-fprofile-generate"
++ PROF_GEN_LD="-fprofile-generate"
++ PROF_USE_CC="-fprofile-use"
++ PROF_USE_LD="-fprofile-use"
++fi
++
++# generate config files
++
++cat > config.mak << EOF
++SRCPATH=$SRCPATH
++prefix=$prefix
++exec_prefix=$exec_prefix
++bindir=$bindir
++libdir=$libdir
++includedir=$includedir
++SYS_ARCH=$ARCH
++SYS=$SYS
++CC=$CC
++CFLAGS=$CFLAGS
++COMPILER=$compiler
++COMPILER_STYLE=$compiler_style
++DEPMM=$DEPMM
++DEPMT=$DEPMT
++LD=$LD
++LDFLAGS=$LDFLAGS
++LIBDAVS2=$LIBDAVS2
++AR=$AR
++RANLIB=$RANLIB
++STRIP=$STRIP
++INSTALL=$INSTALL
++AS=$AS
++ASFLAGS=$ASFLAGS
++RC=$RC
++RCFLAGS=$RCFLAGS
++EXE=$EXE
++HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
++DEVNULL=$DEVNULL
++PROF_GEN_CC=$PROF_GEN_CC
++PROF_GEN_LD=$PROF_GEN_LD
++PROF_USE_CC=$PROF_USE_CC
++PROF_USE_LD=$PROF_USE_LD
++HAVE_OPENCL=$opencl
++EOF
++
++if [ $compiler_style = MS ]; then
++ echo '%.o: %.c' >> config.mak
++ echo ' $(CC) $(CFLAGS) -c -Fo$@ $<' >> config.mak
++fi
++
++if [ "$cli" = "yes" ]; then
++ echo 'default: cli' >> config.mak
++ echo 'install: install-cli' >> config.mak
++fi
++
++if [ "$shared" = "yes" ]; then
++ API=$(grep '#define DAVS2_BUILD' < ${SRCPATH}/davs2.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')
++ if [ "$SYS" = "WINDOWS" -o "$SYS" = "CYGWIN" ]; then
++ echo "SONAME=libdavs2-$API.dll" >> config.mak
++ if [ $compiler_style = MS ]; then
++ echo 'IMPLIBNAME=libdavs2.dll.lib' >> config.mak
++ # GNU ld on windows defaults to exporting all global functions if there are no explicit __declspec(dllexport) declarations
++ # MSVC link does not act similarly, so it is required to make an export definition out of davs2.h and use it at link time
++ echo "SOFLAGS=-dll -def:davs2.def -implib:\$(IMPLIBNAME) $SOFLAGS" >> config.mak
++ echo "EXPORTS" > davs2.def
++ # export API functions
++ grep "^\(int\|void\|davs2_t\).*davs2" ${SRCPATH}/davs2.h | sed -e "s/.*\(davs2.*\)(.*/\1/;s/open/open_$API/g" >> davs2.def
++ # export API variables/data. must be flagged with the DATA keyword
++ grep "extern.*davs2" ${SRCPATH}/davs2.h | sed -e "s/.*\(davs2\w*\)\W.*/\1 DATA/;" >> davs2.def
++ else
++ echo 'IMPLIBNAME=libdavs2.dll.a' >> config.mak
++ echo "SOFLAGS=-shared -Wl,--out-implib,\$(IMPLIBNAME) $SOFLAGS" >> config.mak
++ fi
++ elif [ "$SYS" = "MACOSX" ]; then
++ echo "SOSUFFIX=dylib" >> config.mak
++ echo "SONAME=libdavs2.$API.dylib" >> config.mak
++ echo "SOFLAGS=-shared -dynamiclib -Wl,-single_module -Wl,-read_only_relocs,suppress -install_name \$(DESTDIR)\$(libdir)/\$(SONAME) $SOFLAGS" >> config.mak
++ elif [ "$SYS" = "SunOS" ]; then
++ echo "SOSUFFIX=so" >> config.mak
++ echo "SONAME=libdavs2.so.$API" >> config.mak
++ echo "SOFLAGS=-shared -Wl,-h,\$(SONAME) $SOFLAGS" >> config.mak
++ else
++ echo "SOSUFFIX=so" >> config.mak
++ echo "SONAME=libdavs2.so.$API" >> config.mak
++ echo "SOFLAGS=-shared -Wl,-soname,\$(SONAME) $SOFLAGS" >> config.mak
++ fi
++ echo 'default: lib-shared' >> config.mak
++ echo 'install: install-lib-shared' >> config.mak
++fi
++
++if [ "$static" = "yes" ]; then
++ echo 'default: lib-static' >> config.mak
++ echo 'install: install-lib-static' >> config.mak
++fi
++
++echo "LDFLAGSCLI = $LDFLAGSCLI" >> config.mak
++echo "CLI_LIBDAVS2 = $CLI_LIBDAVS2" >> config.mak
++
++cat > davs2.pc << EOF
++prefix=$prefix
++exec_prefix=$exec_prefix
++libdir=$libdir
++includedir=$includedir
++
++Name: davs2
++Description: AVS2 (IEEE 1857.4) decoder library
++Version: $(grep POINTVER < davs2_config.h | sed -e 's/.* "//; s/".*//')
++Libs: -L$libdir -ldavs2 $([ "$shared" = "yes" ] || echo $libpthread $libm $libdl)
++Libs.private: $([ "$shared" = "yes" ] && echo $libpthread $libm $libdl)
++Cflags: -I$includedir
++EOF
++
++filters="crop select_every"
++gpl_filters=""
++[ $swscale = yes ] && filters="resize $filters"
++[ $gpl = yes ] && filters="$filters $gpl_filters"
++
++cat > conftest.log <<EOF
++platform: $ARCH
++byte order: $CPU_ENDIAN
++system: $SYS
++cli: $cli
++libdavs2: $cli_libdavs2
++shared: $shared
++static: $static
++asm: $asm
++interlaced: $interlaced
++avs: $avs
++lavf: $lavf
++ffms: $ffms
++mp4: $mp4
++gpl: $gpl
++thread: $thread
++opencl: $opencl
++filters: $filters
++lto: $lto
++debug: $debug
++gprof: $gprof
++strip: $strip
++PIC: $pic
++bit depth: $bit_depth
++chroma format: $chroma_format
++EOF
++
++echo >> config.log
++cat conftest.log >> config.log
++cat conftest.log
++
++# [ "$SRCPATH" != "." ] && ln -sf ${SRCPATH}/Makefile ./Makefile
++mkdir -p common/{aarch64,arm,ppc,x86,vec} test
++
++echo
++echo "You can run 'make' or 'make fprofiled' now."
++
+diff --git a/source/common/vec/intrinsic_sao_avx2.cc b/source/common/vec/intrinsic_sao_avx2.cc
+index d85cd13..c554b67 100644
+--- a/source/common/vec/intrinsic_sao_avx2.cc
++++ b/source/common/vec/intrinsic_sao_avx2.cc
+@@ -41,6 +41,7 @@
+
+ #ifdef _MSC_VER
+ #pragma warning(disable:4244) // TODO: ÐÞÕý±àÒëwarning
++#endif // _MSC_VER
+
+ /* ---------------------------------------------------------------------------
+ * lcu neighbor
+@@ -653,4 +654,3 @@ void sao_on_block_avx2(pel_t *p_dst, int i_dst, const pel_t *p_src, int i_src, i
+ }
+ }
+ }
+-#endif // _MSC_VER
+diff --git a/version.sh b/version.sh
+old mode 100644
+new mode 100755
+From a3cb25e34847fb813c1888452923f0d6094778b1 Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Sun, 27 May 2018 18:48:58 +0800
+Subject: [PATCH] Fix the version string
+
+---
+ version.sh | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/version.sh b/version.sh
+index ea52187..82df59c 100755
+--- a/version.sh
++++ b/version.sh
+@@ -10,12 +10,10 @@
+
+ # get version of remote and local repository
+ VER_R=`git rev-list --count origin/master`
+-VER_L=`git rev-list --count HEAD`
+ VER_SHA=`git rev-parse HEAD | cut -c -16`
+
+ # get API version from "./source/davs2.h"
+ api=`grep '#define DAVS2_BUILD' < ./source/davs2.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/'`
+-apiver=`grep '#define DAVS2_API_VERSION' < ./source/davs2.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/'`
+ len=`expr length $api`
+ end1=`expr $len - 1`
+ VER_MAJOR=`echo $api | cut -c -$end1`
+@@ -33,23 +31,22 @@ echo "// Author: Falei LUO <falei.luo@gmail.com>"
+ echo "//" >> version.h
+ echo "// ===========================================================================" >> version.h
+ echo "" >> version.h
+-echo "#ifndef __DAVS2_VERSION_H__" >> version.h
+-echo "#define __DAVS2_VERSION_H__" >> version.h
++echo "#ifndef DAVS2_VERSION_H" >> version.h
++echo "#define DAVS2_VERSION_H" >> version.h
+ echo "" >> version.h
+ echo "// version number" >> version.h
+ echo "#define VER_MAJOR $VER_MAJOR // major version number" >> version.h
+ echo "#define VER_MINOR $VER_MINOR // minor version number" >> version.h
+ echo "#define VER_BUILD $VER_R // build number" >> version.h
+-echo "#define VER_TYPE $apiver // api type, 1: callback; 2: non-callback" >> version.h
+-echo "#define VER_SHA_STR \"$VER_SHA\" // commit id" >> version.h
++echo "#define VER_SHA_STR \"$VER_SHA\" // commit id" >> version.h
+ echo "" >> version.h
+ echo "// stringify" >> version.h
+ echo "#define _TOSTR(x) #x // stringify x" >> version.h
+ echo "#define TOSTR(x) _TOSTR(x) // stringify x, perform macro expansion" >> version.h
+ echo "" >> version.h
+-echo "// define XVERSION for resource file(*.rc)" >> version.h
+-echo "#define XVERSION VER_MAJOR, VER_MINOR, VER_BUILD, VER_TYPE" >> version.h
+-echo "#define XVERSION_STR TOSTR(VER_MAJOR) \".\" TOSTR(VER_MINOR) \".\" TOSTR(VER_BUILD) \".\" TOSTR(VER_TYPE) \" \" VER_SHA_STR" >> version.h
++echo "// define XVERSION string" >> version.h
++echo "#define XVERSION VER_MAJOR, VER_MINOR, VER_BUILD" >> version.h
++echo "#define XVERSION_STR TOSTR(VER_MAJOR) \".\" TOSTR(VER_MINOR) \".\" TOSTR(VER_BUILD) \" \" VER_SHA_STR" >> version.h
+ echo "#define XBUILD_TIME \"$BUILD_TIME\"" >> version.h
+ echo "" >> version.h
+ echo "#endif // __VERSION_H__" >> version.h
+@@ -57,5 +54,4 @@ echo "#endif // __VERSION_H__"
+ mv version.h source/version.h
+
+ # show version informations
+-echo "#define DAVS2_VERSION \"r$api\""
+-echo "#define DAVS2_POINTVER \"$VER_MAJOR.$VER_MINOR.$VER_R.$apiver\""
++echo "Defined davs2 version: r$api \"$VER_MAJOR.$VER_MINOR.$VER_R\", BuildTime: $BUILD_TIME"
+From 73987d67857029948b362b195c93d2268c05af08 Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Mon, 28 May 2018 09:32:03 +0800
+Subject: [PATCH] Fix the error of version.sh for version string in davs2.pc
+
+---
+ version.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/version.sh b/version.sh
+index 82df59c..a4bee82 100755
+--- a/version.sh
++++ b/version.sh
+@@ -54,4 +54,5 @@ echo "#endif // __VERSION_H__"
+ mv version.h source/version.h
+
+ # show version informations
+-echo "Defined davs2 version: r$api \"$VER_MAJOR.$VER_MINOR.$VER_R\", BuildTime: $BUILD_TIME"
++echo "#define DAVS2_VERSION \"r$api\", BuildTime: $BUILD_TIME"
++echo "#define DAVS2_POINTVER \"$VER_MAJOR.$VER_MINOR.$VER_R\""
+From d1c2e186000589fa3abd2f24aba9dcacc7450abe Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Mon, 28 May 2018 09:41:29 +0800
+Subject: [PATCH] Move definition of `DAVS2_BUILD` to `version.sh`
+
+---
+ source/davs2.h | 4 ----
+ version.sh | 8 +++++---
+ 2 files changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/version.sh b/version.sh
+index a4bee82..96fed15 100755
+--- a/version.sh
++++ b/version.sh
+@@ -8,12 +8,14 @@
+ # Falei LUO <falei.luo@gmail.com>
+ # ============================================================================
+
++# setting API version
++api=12
++
+ # get version of remote and local repository
+ VER_R=`git rev-list --count origin/master`
+ VER_SHA=`git rev-parse HEAD | cut -c -16`
+
+-# get API version from "./source/davs2.h"
+-api=`grep '#define DAVS2_BUILD' < ./source/davs2.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/'`
++# generate version numbers
+ len=`expr length $api`
+ end1=`expr $len - 1`
+ VER_MAJOR=`echo $api | cut -c -$end1`
+@@ -54,5 +56,5 @@ echo "#endif // __VERSION_H__"
+ mv version.h source/version.h
+
+ # show version informations
+-echo "#define DAVS2_VERSION \"r$api\", BuildTime: $BUILD_TIME"
++echo "#define DAVS2_VERSION \"r$api\""
+ echo "#define DAVS2_POINTVER \"$VER_MAJOR.$VER_MINOR.$VER_R\""
+From 6a1213e6eab9f186daf3449f6d7bea04123085a6 Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Mon, 28 May 2018 10:18:18 +0800
+Subject: [PATCH] Fix version.sh for shared library in Linux
+
+---
+ build/linux/configure | 2 +-
+ version.sh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/build/linux/configure b/build/linux/configure
+index 0a02d2b..b55f6ef 100755
+--- a/build/linux/configure
++++ b/build/linux/configure
+@@ -1431,7 +1431,7 @@ if [ "$cli" = "yes" ]; then
+ fi
+
+ if [ "$shared" = "yes" ]; then
+- API=$(grep '#define DAVS2_BUILD' < ${SRCPATH}/davs2.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')
++ API=$(grep '#define DAVS2_BUILD' < ${BUILDPATH}/davs2_config.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')
+ if [ "$SYS" = "WINDOWS" -o "$SYS" = "CYGWIN" ]; then
+ echo "SONAME=libdavs2-$API.dll" >> config.mak
+ if [ $compiler_style = MS ]; then
+diff --git a/version.sh b/version.sh
+index 96fed15..6ed2525 100755
+--- a/version.sh
++++ b/version.sh
+@@ -56,5 +56,5 @@ echo "#endif // __VERSION_H__"
+ mv version.h source/version.h
+
+ # show version informations
+-echo "#define DAVS2_VERSION \"r$api\""
++echo "#define DAVS2_BUILD $api"
+ echo "#define DAVS2_POINTVER \"$VER_MAJOR.$VER_MINOR.$VER_R\""
+From 794c6d86a0d3eab401969908328045797e01c237 Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Sat, 9 Jun 2018 21:24:28 +0800
+Subject: [PATCH] Remove definition of `ftell` and `fseek` in
+ `build/linux/configure`
+
+---
+ build/linux/configure | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/build/linux/configure b/build/linux/configure
+index 149f00a..574e20b 100755
+--- a/build/linux/configure
++++ b/build/linux/configure
+@@ -1232,17 +1232,6 @@ if [ $SYS = WINDOWS -a $ARCH = X86 -a $compiler = GNU ] ; then
+ cc_check '' -fno-zero-initialized-in-bss && CFLAGS="$CFLAGS -fno-zero-initialized-in-bss"
+ fi
+
+-if cc_check "stdio.h" "" "fseeko(stdin,0,0);" ; then
+- define fseek fseeko
+- define ftell ftello
+-elif cc_check "stdio.h" "" "fseeko64(stdin,0,0);" ; then
+- define fseek fseeko64
+- define ftell ftello64
+-elif cc_check "stdio.h" "" "_fseeki64(stdin,0,0);" ; then
+- define fseek _fseeki64
+- define ftell _ftelli64
+-fi
+-
+ if cc_check '' -Wshadow ; then
+ CFLAGS="-Wshadow $CFLAGS"
+ fi
+From 899d16a342f9c05f082c3d32f1558270f951ca65 Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Tue, 17 Jul 2018 21:34:41 +0800
+Subject: [PATCH] Using `gnu++11` instead of `c++11` to avoid compiling errors
+ in g++
+
+---
+ build/linux/configure | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/build/linux/configure b/build/linux/configure
+index 574e20b..ce1589c 100755
+--- a/build/linux/configure
++++ b/build/linux/configure
+@@ -848,10 +848,10 @@ log_msg ""
+ cc_check || die "No working C compiler found."
+
+ if [ $compiler_style = GNU ]; then
+- if cc_check '' -std=c++11 'for( int i = 0; i < 9; i++ );' ; then
+- CFLAGS="$CFLAGS -std=c++11 -D_GNU_SOURCE"
++ if cc_check '' -std=gnu++11 'for( int i = 0; i < 9; i++ );' ; then
++ CFLAGS="$CFLAGS -std=gnu++11 -D_GNU_SOURCE"
+ elif ! cc_check '' '' 'for( int i = 0; i < 9; i++ );' ; then
+- die "C99 compiler is needed for compilation."
++ die "GNU++11 compiler is needed for compilation."
+ fi
+ fi
+
+From cd7e8e7ffda353c20048287dae5b006c46f0419c Mon Sep 17 00:00:00 2001
+From: luofl <falei.luo@gmail.com>
+Date: Tue, 17 Jul 2018 21:37:25 +0800
+Subject: [PATCH] Make the configure output aligned.
+
+---
+ build/linux/configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/linux/configure b/build/linux/configure
+index ce1589c..bcbf22d 100755
+--- a/build/linux/configure
++++ b/build/linux/configure
+@@ -1492,7 +1492,7 @@ platform: $ARCH
+ byte order: $CPU_ENDIAN
+ system: $SYS
+ cli: $cli
+-libdavs2: $cli_libdavs2
++libdavs2: $cli_libdavs2
+ shared: $shared
+ static: $static
+ asm: $asm