gnuk/src/configure

243 lines
6.6 KiB
Plaintext
Raw Normal View History

2011-01-06 08:27:14 +00:00
#! /bin/bash
2010-10-14 08:08:09 +00:00
#
# This file is *NOT* generated by GNU Autoconf, but written by NIIBE Yutaka
#
2012-05-11 00:23:57 +00:00
# Copyright (C) 2010, 2011, 2012 Free Software Initiative of Japan
2010-10-14 08:08:09 +00:00
#
# This file is a part of Gnuk, a GnuPG USB Token implementation.
# Gnuk 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.
#
# Gnuk 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/>.
# Default settings
help=no
vidpid=none
2010-10-14 08:08:09 +00:00
target=OLIMEX_STM32_H103
verbose=no
2010-10-20 01:14:03 +00:00
with_dfu=default
2010-10-14 08:08:09 +00:00
debug=no
2010-12-15 01:24:39 +00:00
pinpad=no
2011-12-21 05:14:28 +00:00
certdo=no
2010-10-20 04:34:04 +00:00
2010-10-14 08:08:09 +00:00
# Process each option
for option; do
case $option in
*=*) optarg=`expr "X$option" : '[^=]*=\(.*\)'` ;;
*) optarg=yes ;;
esac
case $option in
-h | --help)
help=yes ;;
-v | --verbose)
verbose=yes ;;
--vidpid=*)
vidpid=$optarg ;;
--target=*)
target=$optarg ;;
2010-10-14 08:08:09 +00:00
--enable-debug)
2011-01-06 08:27:14 +00:00
debug=yes ;;
2010-10-14 08:08:09 +00:00
--disable-debug)
2011-01-06 08:27:14 +00:00
debug=no ;;
2010-12-15 01:24:39 +00:00
--enable-pinpad)
2011-01-06 08:27:14 +00:00
pinpad=yes ;;
--enable-pinpad=*)
pinpad=$optarg ;;
2010-12-15 01:24:39 +00:00
--disable-pinpad)
2011-01-06 08:27:14 +00:00
pinpad=no ;;
2011-12-21 05:14:28 +00:00
--enable-certdo)
certdo=yes ;;
--disable-certdo)
certdo=no ;;
2010-10-14 08:08:09 +00:00
--with-dfu)
with_dfu=yes ;;
--without-dfu)
with_dfu=no ;;
*)
echo "Unrecognized option \`$option'" >&2
echo "Try \`$0 --help' for more information." >&2
exit 1
;;
esac
done
if test "$help" = "yes"; then
cat <<EOF
Usage: $0 [OPTION]...
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit [no]
--vidpid=VID:PID specify vendor/product ID [<NONE>]
2010-10-14 08:08:09 +00:00
--target=TARGET specify target [OLIMEX_STM32_H103]
supported targes are:
OLIMEX_STM32_H103
STM32_PRIMER2
2010-10-20 01:14:03 +00:00
CQ_STARM
2010-10-22 03:56:40 +00:00
STBEE_MINI
2011-01-26 02:30:01 +00:00
STM8S_DISCOVERY
STBEE
2012-05-11 00:23:57 +00:00
FST_01
2010-10-14 08:08:09 +00:00
--enable-debug debug with virtual COM port [no]
2011-12-09 08:53:45 +00:00
--enable-pinpad={dnd,cir,dial}
PIN entry support [no]
2011-12-21 05:14:28 +00:00
--enable-certdo support CERT.3 data object [no]
2010-10-20 01:00:37 +00:00
--with-dfu build image for DFU [<target specific>]
2010-10-14 08:08:09 +00:00
EOF
exit 0
fi
if test "$vidpid" = "none"; then
echo "Please specify Vendor ID and Product ID by --vidpid option."
exit 1
fi
if !(IFS=" "
while read VIDPID VERSION PRODUCT VENDOR; do
if test "$vidpid" = "$VIDPID"; then
(echo $VIDPID | sed -n -e "s%^\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\):\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\)$% 0x\2, 0x\1, /* idVendor */\n 0x\4, 0x\3, /* idProduct */%p"
echo $VERSION | sed -n -e "s%^\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\)$% 0x\2, 0x\1, /* bcdDevice */%p"
) > usb-vid-pid-ver.c.inc
(echo 'static const uint8_t gnukStringVendor[] = {'
echo " ${#VENDOR}*2+2, /* bLength */"
echo " USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */"
echo " /* Manufacturer: \"$VENDOR\" */"
echo $VENDOR | sed -n -e "s/\(........\)/\1\n/gp" | sed -n -e "s/\(.\)/'\1', 0, /g" -e "s/^/ /" -e "s/ $//p"
echo '};'
echo
echo 'static const uint8_t gnukStringProduct[] = {'
echo " ${#PRODUCT}*2+2, /* bLength */"
echo " USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */"
echo " /* Product name: \"$PRODUCT\" */"
echo $PRODUCT | sed -n -e "s/\(........\)/\1\n/gp" | sed -n -e "s/\(.\)/'\1', 0, /g" -e "s/^/ /" -e "s/ $//p"
echo '};'
) >usb-string-vendor-product.c.inc
exit 0
fi
done; exit 1) < ../GNUK_USB_DEVICE_ID
then
echo "Please specify valid Vendor ID and Product ID."
echo "Check ../GNUK_USB_DEVICE_ID."
exit 1
fi
2011-02-10 04:57:23 +00:00
BOARD_DIR=../boards/$target
if test -d $BOARD_DIR; then
2010-10-14 08:08:09 +00:00
echo "Configured for target: $target"
else
echo "Unsupported target \`$target'" >&2
exit 1
fi
2010-12-15 01:24:39 +00:00
# Flash page size in byte
FLASH_PAGE_SIZE=1024
# Flash memory size in KB
FLASH_SIZE=128
# Settings for TARGET
2010-10-20 01:14:03 +00:00
case $target in
2010-10-22 03:56:40 +00:00
CQ_STARM|STBEE_MINI)
2010-10-20 01:14:03 +00:00
if test "$with_dfu" = "default"; then
with_dfu=yes;
fi ;;
2010-12-15 01:24:39 +00:00
STM32_PRIMER2)
FLASH_PAGE_SIZE=2048
2011-01-26 02:30:01 +00:00
FLASH_SIZE=512
2010-12-15 01:24:39 +00:00
;;
2011-01-26 02:30:01 +00:00
STBEE)
FLASH_PAGE_SIZE=2048
FLASH_SIZE=512
if test "$with_dfu" = "default"; then
with_dfu=yes;
fi ;;
2010-12-15 01:24:39 +00:00
STM8S_DISCOVERY)
FLASH_SIZE=64
;;
2010-10-20 01:14:03 +00:00
*)
2010-12-15 01:24:39 +00:00
;;
2010-10-20 01:14:03 +00:00
esac
2010-12-15 01:24:39 +00:00
# --enable-debug option
2010-10-14 08:08:09 +00:00
if test "$debug" = "yes"; then
DEBUG_MAKE_OPTION="ENABLE_DEBUG=1"
DEBUG_DEFINE="#define DEBUG 1"
2010-12-07 05:34:25 +00:00
echo "Debug option enabled"
2010-10-14 08:08:09 +00:00
else
DEBUG_MAKE_OPTION="# ENABLE_DEBUG=1"
DEBUG_DEFINE="#undef DEBUG"
2010-12-07 05:34:25 +00:00
echo "Debug option disabled"
2010-10-14 08:08:09 +00:00
fi
2010-12-15 01:24:39 +00:00
# --with-dfu option
2010-10-14 08:08:09 +00:00
if test "$with_dfu" = "yes"; then
echo "Configured for DFU"
ORIGIN=0x08003000
2010-12-15 01:24:39 +00:00
FLASH_SIZE=`expr $FLASH_SIZE - 12`
2010-10-14 08:08:09 +00:00
DFU_DEFINE="#define DFU_SUPPORT 1"
else
echo "Configured for bare system (no-DFU)"
ORIGIN=0x08000000
DFU_DEFINE="#undef DFU_SUPPORT"
fi
2010-12-15 01:24:39 +00:00
# --enable-pinpad option
2011-01-06 08:27:14 +00:00
if test "$pinpad" = "no"; then
PINPAD_MAKE_OPTION="# ENABLE_PINPAD="
2010-12-15 01:24:39 +00:00
PINPAD_DEFINE="#undef PINPAD_SUPPORT"
2011-01-06 08:27:14 +00:00
PINPAD_MORE_DEFINE=""
2010-12-15 01:24:39 +00:00
echo "PIN pad option disabled"
2011-01-06 08:27:14 +00:00
elif test "$pinpad" = "yes"; then
2011-12-09 08:53:45 +00:00
PINPAD_MAKE_OPTION="ENABLE_PINPAD=dnd"
2011-01-06 08:27:14 +00:00
PINPAD_DEFINE="#define PINPAD_SUPPORT 1"
2011-12-09 08:53:45 +00:00
PINPAD_MORE_DEFINE="#define PINPAD_DND_SUPPORT 1"
echo "PIN pad option enabled (dnd)"
2011-01-06 08:27:14 +00:00
else
PINPAD_MAKE_OPTION="ENABLE_PINPAD=$pinpad"
PINPAD_DEFINE="#define PINPAD_SUPPORT 1"
PINPAD_MORE_DEFINE="#define PINPAD_${pinpad^^[a-z]}_SUPPORT 1"
echo "PIN pad option enabled ($pinpad)"
2010-12-14 08:42:38 +00:00
fi
2011-12-21 05:14:28 +00:00
# --enable-certdo option
if test "$certdo" = "yes"; then
CERTDO_DEFINE="#define CERTDO_SUPPORT 1"
echo "CERT.3 Data Object is supported"
2011-12-21 05:14:28 +00:00
else
CERTDO_DEFINE="#undef CERTDO_SUPPORT"
echo "CERT.3 Data Object is not supported"
fi
2011-02-10 04:57:23 +00:00
sed -e "s%@BOARD_DIR@%$BOARD_DIR%" \
2010-10-14 08:08:09 +00:00
-e "s%@DEBUG_MAKE_OPTION@%$DEBUG_MAKE_OPTION%" \
2010-12-15 01:24:39 +00:00
-e "s%@PINPAD_MAKE_OPTION@%$PINPAD_MAKE_OPTION%" \
2010-10-14 08:08:09 +00:00
< Makefile.in > Makefile
2011-12-21 05:14:28 +00:00
if test "$certdo" = "yes"; then
sed -e "/^@CERTDO_SUPPORT_START@$/ d" -e "/^@CERTDO_SUPPORT_END@$/ d" \
-e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
-e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
2010-10-14 08:08:09 +00:00
< gnuk.ld.in > gnuk.ld
2011-12-21 05:14:28 +00:00
else
sed -e "/^@CERTDO_SUPPORT_START@$/,/^@CERTDO_SUPPORT_END@$/ d" \
-e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
-e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
< gnuk.ld.in > gnuk.ld
fi
2010-10-14 08:08:09 +00:00
sed -e "s/@DEBUG_DEFINE@/$DEBUG_DEFINE/" \
2011-12-21 05:14:28 +00:00
-e "s/@DFU_DEFINE@/$DFU_DEFINE/" \
2010-12-15 01:24:39 +00:00
-e "s/@PINPAD_DEFINE@/$PINPAD_DEFINE/" \
2011-01-06 08:27:14 +00:00
-e "s/@PINPAD_MORE_DEFINE@/$PINPAD_MORE_DEFINE/" \
2011-12-21 05:14:28 +00:00
-e "s/@CERTDO_DEFINE@/$CERTDO_DEFINE/" \
2010-10-14 08:08:09 +00:00
< config.h.in > config.h
exit 0