initial commit for source
[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                  [OLIMEX_STM32_H103]
65                         supported targes are:
66                            OLIMEX_STM32_H103
67                            STM32_PRIMER2
68                            CQ_STARM
69                            STBEE_MINI
70                            STM8S_DISCOVERY
71                            STBEE
72   --with-dfu            build image for DFU             [<target specific>]
73 EOF
74   exit 0
75 fi
76
77 BOARD_DIR=../boards/$target
78 if test -d $BOARD_DIR; then
79   echo "Configured for target: $target"
80 else
81   echo "Unsupported target \`$target'" >&2
82   exit 1
83 fi
84
85 # Flash page size in byte
86 FLASH_PAGE_SIZE=1024
87 # Flash memory size in KB
88 FLASH_SIZE=128
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   ;;
100 STBEE)
101   FLASH_PAGE_SIZE=2048
102   FLASH_SIZE=512
103   if test "$with_dfu" = "default"; then
104     with_dfu=yes;
105   fi  ;;
106 STM8S_DISCOVERY)
107   FLASH_SIZE=64
108   ;;
109 *)
110   ;;
111 esac
112
113 # --with-dfu option
114 if test "$with_dfu" = "yes"; then
115   echo "Configured for DFU"
116   ORIGIN=0x08003000
117   FLASH_SIZE=`expr $FLASH_SIZE - 12`
118   DFU_DEFINE="#define DFU_SUPPORT 1"
119 else
120   echo "Configured for bare system (no-DFU)"
121   ORIGIN=0x08000000
122   DFU_DEFINE="#undef DFU_SUPPORT"
123 fi
124
125 sed -e "s%@BOARD_DIR@%$BOARD_DIR%" \
126         < Makefile.in > Makefile
127 sed -e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
128     -e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
129         < neug.ld.in > neug.ld
130 sed -e "s/@DFU_DEFINE@/$DFU_DEFINE/" \
131         < config.h.in > config.h
132 exit 0