diff options
author | Daniel Bermond | 2018-07-28 00:30:27 +0000 |
---|---|---|
committer | Daniel Bermond | 2018-07-28 00:30:27 +0000 |
commit | 9ac9b53047fb61539f3182754779aa3cac0d9b16 (patch) | |
tree | 05426c7c77ed6f61c10a710d500209f6bb63bbf2 | |
download | aur-9ac9b53047fb61539f3182754779aa3cac0d9b16.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 35 | ||||
-rw-r--r-- | PKGBUILD | 119 | ||||
-rw-r--r-- | davs2-1.0-add-linux-support.patch | 5469 |
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 |