support STBEE
[gnuk/neug.git] / src / configure
1 #! /bin/bash
2
3 #
4 # This file is *NOT* generated by GNU Autoconf, but written by NIIBE Yutaka
5 #
6 # Copyright (C) 2010, 2011 Free Software Initiative of Japan
7 #
8 # This file is a part of NeuG, a Random Number Generator implementation.
9 #
10 # NeuG is free software: you can redistribute it and/or modify it
11 # under the terms of the GNU General Public License as published by
12 # the Free Software Foundation, either version 3 of the License, or
13 # (at your option) any later version.
14 #
15 # NeuG is distributed in the hope that it will be useful, but WITHOUT
16 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
18 # License for more details.
19 #
20 # You should have received a copy of the GNU General Public License
21 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23 # Default settings
24 help=no
25 target=STBEE_MINI
26 verbose=no
27 with_dfu=default
28 debug=no
29
30 # Process each option
31 for option; do
32   case $option in
33   *=*)  optarg=`expr "X$option" : '[^=]*=\(.*\)'` ;;
34   *)    optarg=yes ;;
35   esac
36
37   case $option in
38   -h | --help)
39     help=yes ;;
40   --target=*)
41     target=$optarg ;;
42   -v | --verbose)
43     verbose=yes ;;
44   --with-dfu)
45     with_dfu=yes ;;
46   --without-dfu)
47     with_dfu=no ;;
48   *)
49     echo "Unrecognized option \`$option'" >&2
50     echo "Try \`$0 --help' for more information." >&2
51     exit 1
52     ;;
53   esac
54 done
55
56 if test "$help" = "yes"; then
57   cat <<EOF
58 Usage: $0 [OPTION]...
59
60 Defaults for the options are specified in brackets.
61
62 Configuration:
63   -h, --help            display this help and exit      [no]
64   --target=TARGET       specify target                  [STBEE_MINI]
65                         supported targes are:
66                            OLIMEX_STM32_H103
67                            STBEE_MINI
68                            CQ_STARM
69                            STBEE
70   --with-dfu            build image for DFU             [<target specific>]
71 EOF
72   exit 0
73 fi
74
75 BOARD_DIR=../boards/$target
76 if test -d $BOARD_DIR; then
77   echo "Configured for target: $target"
78 else
79   echo "Unsupported target \`$target'" >&2
80   exit 1
81 fi
82
83 # Flash page size in byte
84 FLASH_PAGE_SIZE=1024
85 # Flash memory size in KB
86 FLASH_SIZE=128
87
88 # Settings for TARGET
89 case $target in
90 CQ_STARM|STBEE_MINI)
91   if test "$with_dfu" = "default"; then
92     with_dfu=yes;
93   fi  ;;
94 STM32_PRIMER2)
95   FLASH_PAGE_SIZE=2048
96   FLASH_SIZE=512
97   ;;
98 STBEE)
99   FLASH_PAGE_SIZE=2048
100   FLASH_SIZE=512
101   if test "$with_dfu" = "default"; then
102     with_dfu=yes;
103   fi  ;;
104 STM8S_DISCOVERY)
105   FLASH_SIZE=64
106   ;;
107 *)
108   ;;
109 esac
110
111 # --with-dfu option
112 if test "$with_dfu" = "yes"; then
113   echo "Configured for DFU"
114   ORIGIN=0x08003000
115   FLASH_SIZE=`expr $FLASH_SIZE - 12`
116   DFU_DEFINE="#define DFU_SUPPORT 1"
117 else
118   echo "Configured for bare system (no-DFU)"
119   ORIGIN=0x08000000
120   DFU_DEFINE="#undef DFU_SUPPORT"
121 fi
122
123 sed -e "s%@BOARD_DIR@%$BOARD_DIR%" \
124         < Makefile.in > Makefile
125 sed -e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
126     -e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
127         < neug.ld.in > neug.ld
128 sed -e "s/@DFU_DEFINE@/$DFU_DEFINE/" \
129         < config.h.in > config.h
130 exit 0