#!/bin/sh # # Copyright (c) 2015 Carsten Larsen # Copyright (c) 2014 Poul-Henning Kamp # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # set -e ################################################# HDRS=' compiler.h platform.h sha1.h sha256.h sha384.h sha512.h ' SRCS=' sha.c sha1.c sha1_amiga.c sha256.c sha256_amiga.c sha384.c sha384_amiga.c sha512.c sha512_amiga.c sha_amiga.c sha_io.c shatest.c ' ################################################# SRCS1=' sha.c sha1.c sha256.c sha384.c sha512.c sha_amiga.c sha_io.c ' SRCS2=' sha1.c sha256.c sha384.c sha512.c sha_io.c shatest.c ' SRCSS1=' sha1.c sha1_amiga.c sha_io.c ' SRCSS256=' sha256.c sha256_amiga.c sha_io.c ' SRCSS384=' sha384.c sha384_amiga.c sha_io.c ' SRCSS512=' sha512.c sha512_amiga.c sha_io.c ' ################################################# if [ -n "$1" ] && [ $1 = "help" ] ; then echo "Usage: sh configure [AMIGA|AROS] [flags]" echo "Example: sh configure AMIGA -mc68020" exit fi if make -v 2>&1 | grep GNU > /dev/null 2>&1 ; then echo "make is GNU make." VALID=true fi if $VALID ; then ( echo '# Portable Makefile generated by configure' echo '' echo 'all: sha sha1 sha256 sha384 sha512 test' echo '' if [ -n "$2" ] ; then ARCH="$2 " else ARCH="" fi if [ -n "$1" ] && [ $1 = "AMIGA" ] ; then echo 'CC = m68k-amigaos-gcc' echo "CFLAGS = -O2 ${ARCH}-DAOS3 -noixemul -I. -Wall -Werror" elif [ -n "$1" ] && [ $1 = "AROS" ] ; then echo 'CC = gcc' echo "CFLAGS = -O2 ${ARCH}-DAROS -I. -Wall -Werror" else echo "CFLAGS = -O2 ${ARCH}-Wall -Werror" fi echo '' ################################################# for f in ${HDRS} do b=`basename $f .h` i=`sed -n -e '/#include.*"/{ s/"$// s/.*"// p }' $f | sort -u` if [ "x${i}" != "x" ] ; then echo "${b}.h: " ${i} echo " touch ${b}.h" echo fi done l="" for f in ${SRCS} do b=`basename $f .c` i=`sed -n -e '/#include.*"/{ s/"$// s/.*"// p }' $f | sort -u` echo "${b}.o: ${b}.c" ${i} echo l="${l} ${b}.o" done ################################################# BIN1="" for f in ${SRCS1} do BIN1="${BIN1} `basename $f .c`.o" done BIN2="" for f in ${SRCS2} do BIN2="${BIN2} `basename $f .c`.o" done ################################################# BINS1="" for f in ${SRCSS1} do BINS1="${BINS1} `basename $f .c`.o" done BINS256="" for f in ${SRCSS256} do BINS256="${BINS256} `basename $f .c`.o" done BINS384="" for f in ${SRCSS384} do BINS384="${BINS384} `basename $f .c`.o" done BINS512="" for f in ${SRCSS512} do BINS512="${BINS512} `basename $f .c`.o" done ################################################# echo echo "sha: ${BIN1}" echo " \${CC} \${CFLAGS} -o sha ${BIN1}" echo echo "sha1: ${BINS1}" echo " \${CC} \${CFLAGS} -o sha1 ${BINS1}" echo echo "sha256: ${BINS256}" echo " \${CC} \${CFLAGS} -o sha256 ${BINS256}" echo echo "sha384: ${BINS384}" echo " \${CC} \${CFLAGS} -o sha384 ${BINS384}" echo echo "sha512: ${BINS512}" echo " \${CC} \${CFLAGS} -o sha512 ${BINS512}" echo echo "test: ${BIN2}" echo " \${CC} \${CFLAGS} -o shatest ${BIN2}" echo echo "clean:" echo " rm -f ${l} sha shatest sha1 sha256 sha384 sha512" echo echo "depend:" echo " @echo Dependencies already done" ) > Makefile echo "Makefile generated" fi