876c0eda90371fd29b2aeb3fca86338e1cdc918e
[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 KiB
86 FLASH_SIZE=128
87 # Memory size in KiB
88 MEMORY_SIZE=20
89
90 # Settings for TARGET
91 case $target in
92 CQ_STARM|STBEE_MINI)
93   if test "$with_dfu" = "default"; then
94     with_dfu=yes;
95   fi  ;;
96 STM32_PRIMER2)
97   FLASH_PAGE_SIZE=2048
98   FLASH_SIZE=512
99   MEMORY_SIZE=64
100   ;;
101 STBEE)
102   FLASH_PAGE_SIZE=2048
103   FLASH_SIZE=512
104   MEMORY_SIZE=64
105   if test "$with_dfu" = "default"; then
106     with_dfu=yes;
107   fi  ;;
108 STM8S_DISCOVERY)
109   FLASH_SIZE=64
110   ;;
111 *)
112   ;;
113 esac
114
115 # --with-dfu option
116 if test "$with_dfu" = "yes"; then
117   echo "Configured for DFU"
118   ORIGIN=0x08003000
119   FLASH_SIZE=`expr $FLASH_SIZE - 12`
120   DFU_DEFINE="#define DFU_SUPPORT 1"
121 else
122   echo "Configured for bare system (no-DFU)"
123   ORIGIN=0x08000000
124   DFU_DEFINE="#undef DFU_SUPPORT"
125 fi
126
127 sed -e "s%@BOARD_DIR@%$BOARD_DIR%" \
128         < Makefile.in > Makefile
129 sed -e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
130     -e "s/@MEMORY_SIZE@/$MEMORY_SIZE/" \
131     -e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
132         < neug.ld.in > neug.ld
133 sed -e "s/@DFU_DEFINE@/$DFU_DEFINE/" \
134     -e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
135         < config.h.in > config.h
136 exit 0