amiro-blt / ide / QtCreator / QtCreatorSetup.sh @ 4cce70a8
History | View | Annotate | Download (19.175 KB)
| 1 | 4cce70a8 | Thomas Schöpping | ################################################################################ |
|---|---|---|---|
| 2 | # AMiRo-OS is an operating system designed for the Autonomous Mini Robot # |
||
| 3 | # (AMiRo) platform. # |
||
| 4 | # Copyright (C) 2016..2017 Thomas Schöpping et al. # |
||
| 5 | # # |
||
| 6 | # This program is free software: you can redistribute it and/or modify # |
||
| 7 | # it under the terms of the GNU General Public License as published by # |
||
| 8 | # the Free Software Foundation, either version 3 of the License, or # |
||
| 9 | # (at your option) any later version. # |
||
| 10 | # # |
||
| 11 | # This program is distributed in the hope that it will be useful, # |
||
| 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # |
||
| 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # |
||
| 14 | # GNU General Public License for more details. # |
||
| 15 | # # |
||
| 16 | # You should have received a copy of the GNU General Public License # |
||
| 17 | # along with this program. If not, see <http://www.gnu.org/licenses/>. # |
||
| 18 | # # |
||
| 19 | # This research/work was supported by the Cluster of Excellence Cognitive # |
||
| 20 | # Interaction Technology 'CITEC' (EXC 277) at Bielefeld University, which is # |
||
| 21 | # funded by the German Research Foundation (DFG). # |
||
| 22 | ################################################################################ |
||
| 23 | |||
| 24 | 69661903 | Thomas Schöpping | #!/bin/bash |
| 25 | |||
| 26 | 4cce70a8 | Thomas Schöpping | ################################################################################ |
| 27 | ### HELPER FUNCTIONS ### |
||
| 28 | ################################################################################ |
||
| 29 | 69661903 | Thomas Schöpping | |
| 30 | 4cce70a8 | Thomas Schöpping | #------------------------------------------------------------------------------- |
| 31 | 69661903 | Thomas Schöpping | # toAbsolutePath $1 [$2] |
| 32 | # |
||
| 33 | # Makes a given path absolute and either echos the result or stores it in the |
||
| 34 | # specified variable. |
||
| 35 | # arguments: |
||
| 36 | # $1: the path to be converted |
||
| 37 | # $2: a variable to store the resulting path [optiional] |
||
| 38 | function toAbsolutePath {
|
||
| 39 | # the path that shall be converted if required |
||
| 40 | TARGET_PATH=$1 |
||
| 41 | |||
| 42 | # store the path where the script was called from |
||
| 43 | ORIGIN_PATH="${PWD}/"
|
||
| 44 | |||
| 45 | # check, whether the target is a directory or not |
||
| 46 | if [ -d $TARGET_PATH ]; then |
||
| 47 | cd $TARGET_PATH |
||
| 48 | # special case: the target is the root directory |
||
| 49 | if [ $TARGET_PATH = "/" ]; then |
||
| 50 | ABSOLUTE_PATH="${PWD}"
|
||
| 51 | else |
||
| 52 | ABSOLUTE_PATH="${PWD}/"
|
||
| 53 | fi |
||
| 54 | else |
||
| 55 | cd $(dirname $TARGET_PATH) |
||
| 56 | ABSOLUTE_PATH="${PWD}/$(basename $TARGET_PATH)"
|
||
| 57 | fi |
||
| 58 | cd $ORIGIN_PATH |
||
| 59 | |||
| 60 | # return the result |
||
| 61 | if [ $# -gt 1 ]; then |
||
| 62 | eval $2="$ABSOLUTE_PATH" |
||
| 63 | else |
||
| 64 | echo $ABSOLUTE_PATH |
||
| 65 | fi |
||
| 66 | |||
| 67 | # cleanup |
||
| 68 | unset TARGET_PATH |
||
| 69 | unset ORIGIN_PATH |
||
| 70 | unset ABSOLUTE_PATH |
||
| 71 | } |
||
| 72 | 4cce70a8 | Thomas Schöpping | #------------------------------------------------------------------------------- |
| 73 | 69661903 | Thomas Schöpping | |
| 74 | 4cce70a8 | Thomas Schöpping | #------------------------------------------------------------------------------- |
| 75 | 69661903 | Thomas Schöpping | # getRelativePath $1 $2 [$3] |
| 76 | # |
||
| 77 | # Computes the relative path from one to another location. |
||
| 78 | # The result is then either stored in a specified variable, or just echoed. |
||
| 79 | # arguments: |
||
| 80 | # $1: the path to start from |
||
| 81 | # If this is not a directory, only the path will be used |
||
| 82 | # $2: the target location |
||
| 83 | # $3: a variable to store the resulting path [optional] |
||
| 84 | function getRelativePath {
|
||
| 85 | # make start and target location absolute |
||
| 86 | START_PATH=$(toAbsolutePath $1) |
||
| 87 | if [ ! -d $START_PATH ]; then |
||
| 88 | START_PATH="$(dirname $START_PATH)/" |
||
| 89 | fi |
||
| 90 | TARGET_PATH=$(toAbsolutePath $2) |
||
| 91 | |||
| 92 | # initialize the common prefix and the relative path from START_PATH to TARGET_PATH |
||
| 93 | COMMON_PREFIX=$START_PATH |
||
| 94 | RELATIVE_PATH="./" |
||
| 95 | # while the common prefix is no substring of the target path |
||
| 96 | while [ "${TARGET_PATH#$COMMON_PREFIX}" == "$TARGET_PATH" ]; do
|
||
| 97 | read |
||
| 98 | # reduce the common prefix and record the relative path |
||
| 99 | COMMON_PREFIX="$(dirname $COMMON_PREFIX)/" |
||
| 100 | RELATIVE_PATH="../$RELATIVE_PATH" |
||
| 101 | # special case: if only root is the common prefix, remove the just appended '/' |
||
| 102 | if [ $COMMON_PREFIX == "//" ]; then |
||
| 103 | COMMON_PREFIX="/" |
||
| 104 | fi |
||
| 105 | done |
||
| 106 | |||
| 107 | # if the relative path is more than just the current directory, cut off the trailing './' |
||
| 108 | if [ ! $RELATIVE_PATH == "./" ]; then |
||
| 109 | RELATIVE_PATH=${RELATIVE_PATH::-2}
|
||
| 110 | fi |
||
| 111 | |||
| 112 | # compute the unique part of the target path |
||
| 113 | UNIQUE_POSTFIX=${TARGET_PATH#$COMMON_PREFIX}
|
||
| 114 | |||
| 115 | # append the unique postfix to the relative path |
||
| 116 | RELATIVE_PATH=$RELATIVE_PATH$UNIQUE_POSTFIX |
||
| 117 | |||
| 118 | # return the result |
||
| 119 | if [ $# -gt 2 ]; then |
||
| 120 | eval $3="$RELATIVE_PATH" |
||
| 121 | else |
||
| 122 | echo $RELATIVE_PATH |
||
| 123 | fi |
||
| 124 | |||
| 125 | # clean up |
||
| 126 | unset START_PATH |
||
| 127 | unset TARGET_PATH |
||
| 128 | unset COMMON_PREFIX |
||
| 129 | unset RELATIVE_PATH |
||
| 130 | unset UNIQUE_POSTFIX |
||
| 131 | } |
||
| 132 | 4cce70a8 | Thomas Schöpping | #------------------------------------------------------------------------------- |
| 133 | 69661903 | Thomas Schöpping | |
| 134 | |||
| 135 | |||
| 136 | ############################################################################### |
||
| 137 | ### INITIALIZATION ### |
||
| 138 | ############################################################################### |
||
| 139 | |||
| 140 | 4cce70a8 | Thomas Schöpping | # ignore case when comparing strings |
| 141 | shopt -s nocasematch |
||
| 142 | 69661903 | Thomas Schöpping | |
| 143 | 4cce70a8 | Thomas Schöpping | # detect what exactly should be done |
| 144 | NOINFO_FLAG="NOINFO" |
||
| 145 | HELP_FLAG="HELP" |
||
| 146 | CLEAN_FLAG="CLEAN" |
||
| 147 | WIPE_FLAG="WIPE" |
||
| 148 | LIGHTRING_FLAG="LR" |
||
| 149 | POWERMANAGEMENT_FLAG="PM" |
||
| 150 | DIWHEELDRIVE_FLAG="DWD" |
||
| 151 | |||
| 152 | # start with an empty array |
||
| 153 | ARG_LIST=() |
||
| 154 | # try to interpret all given arguments |
||
| 155 | for ARG in "$@"; do |
||
| 156 | case $ARG in |
||
| 157 | "no_info") |
||
| 158 | ARG_LIST+=( "$NOINFO_FLAG" ) |
||
| 159 | ;; |
||
| 160 | "help") |
||
| 161 | ARG_LIST+=( "$HELP_FLAG" ) |
||
| 162 | ;; |
||
| 163 | "clean") |
||
| 164 | ARG_LIST+=( "$CLEAN_FLAG" ) |
||
| 165 | ;; |
||
| 166 | "wipe") |
||
| 167 | ARG_LIST+=( "$WIPE_FLAG" ) |
||
| 168 | ;; |
||
| 169 | "all") |
||
| 170 | ARG_LIST+=( "$LIGHTRING_FLAG" "$POWERMANAGEMENT_FLAG" "$DIWHEELDRIVE_FLAG" ) |
||
| 171 | ;; |
||
| 172 | "LightRing"|"LR") |
||
| 173 | ARG_LIST+=( "$LIGHTRING_FLAG" ) |
||
| 174 | ;; |
||
| 175 | "PowerManagement"|"PM") |
||
| 176 | ARG_LIST+=( "$POWERMANAGEMENT_FLAG" ) |
||
| 177 | ;; |
||
| 178 | "DiWheelDrive"|"DWD") |
||
| 179 | ARG_LIST+=( "$DIWHEELDRIVE_FLAG" ) |
||
| 180 | ;; |
||
| 181 | esac |
||
| 182 | 69661903 | Thomas Schöpping | done |
| 183 | |||
| 184 | 4cce70a8 | Thomas Schöpping | # evaluate if a help text shall be printed and which further actions to take |
| 185 | PRINT_INFO=true |
||
| 186 | PRINT_HELP=false |
||
| 187 | ACTION_REQUESTED=false |
||
| 188 | for ARG in ${ARG_LIST[@]}; do
|
||
| 189 | case $ARG in |
||
| 190 | $NOINFO_FLAG) |
||
| 191 | PRINT_INFO=false |
||
| 192 | 69661903 | Thomas Schöpping | ;; |
| 193 | 4cce70a8 | Thomas Schöpping | $HELP_FLAG) |
| 194 | PRINT_HELP=true |
||
| 195 | 69661903 | Thomas Schöpping | ;; |
| 196 | 4cce70a8 | Thomas Schöpping | $CLEAN_FLAG|$WIPE_FLAG|$LIGHTRING_FLAG|$POWERMANAGEMENT_FLAG|$DIWHEELDRIVE_FLAG) |
| 197 | ACTION_REQUESTED=true |
||
| 198 | 69661903 | Thomas Schöpping | ;; |
| 199 | *) |
||
| 200 | 4cce70a8 | Thomas Schöpping | PRINT_HELP=true |
| 201 | 69661903 | Thomas Schöpping | ;; |
| 202 | 4cce70a8 | Thomas Schöpping | esac |
| 203 | done |
||
| 204 | 69661903 | Thomas Schöpping | |
| 205 | 4cce70a8 | Thomas Schöpping | # print the info prompt |
| 206 | if [[ $PRINT_INFO = true ]]; then |
||
| 207 | |||
| 208 | ############################################################################## |
||
| 209 | ### PRINT INFO ### |
||
| 210 | ############################################################################## |
||
| 211 | |||
| 212 | printf "######################################################################\n" |
||
| 213 | printf "# #\n" |
||
| 214 | printf "# Welcome to the AMiRo-BLT QtCreator IDE setup #\n" |
||
| 215 | printf "# #\n" |
||
| 216 | printf "######################################################################\n" |
||
| 217 | printf "# #\n" |
||
| 218 | printf "# Copyright (c) 2016..2017 Thomas Schöpping #\n" |
||
| 219 | printf "# #\n" |
||
| 220 | printf "# This is free software; see the source for copying conditions. #\n" |
||
| 221 | printf "# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR #\n" |
||
| 222 | printf "# A PARTICULAR PURPOSE. The development of this software was #\n" |
||
| 223 | printf "# supported by the Excellence Cluster EXC 227 Cognitive Interaction #\n" |
||
| 224 | printf "# Technology. The Excellence Cluster EXC 227 is a grant of the #\n" |
||
| 225 | printf "# Deutsche Forschungsgemeinschaft (DFG) in the context of the German #\n" |
||
| 226 | printf "# Excellence Initiative. #\n" |
||
| 227 | printf "# #\n" |
||
| 228 | printf "######################################################################\n" |
||
| 229 | printf "\n" |
||
| 230 | fi |
||
| 231 | 69661903 | Thomas Schöpping | |
| 232 | 4cce70a8 | Thomas Schöpping | # print setup header |
| 233 | printf "QtCreator projects setup\n" |
||
| 234 | printf "========================\n" |
||
| 235 | printf "\n" |
||
| 236 | |||
| 237 | # print the help text |
||
| 238 | if [[ ${#ARG_LIST[@]} == 0 ||
|
||
| 239 | (${#ARG_LIST[@]} == 1 && ${ARG_LIST[0]} == "$NOINFO_FLAG") ||
|
||
| 240 | $PRINT_HELP = true ]]; then |
||
| 241 | |||
| 242 | ############################################################################## |
||
| 243 | ### PRINT HELP ### |
||
| 244 | ############################################################################## |
||
| 245 | |||
| 246 | printf "The following commands are available: \n" |
||
| 247 | printf " \n" |
||
| 248 | printf " help - Prints this help text. \n" |
||
| 249 | printf " clean - Deletes all files created by this script. \n" |
||
| 250 | printf " wipe - Deletes the .user files, created by QtCreator. \n" |
||
| 251 | printf " LightRing - Creates a project for the LightRing module. \n" |
||
| 252 | printf " PowerManagement - Creates a project for the PowerManagement module. \n" |
||
| 253 | printf " DiWheelDrive - Creates a project for the DiWheelDrive module. \n" |
||
| 254 | printf " all - Creates all three projects. \n" |
||
| 255 | printf " \n" |
||
| 256 | printf "Any of these commands can be combined, e.g. \n" |
||
| 257 | printf " $> ./setup.sh PowerManagement DiWheelDrive \n" |
||
| 258 | printf "will create two projects. \n" |
||
| 259 | printf "\n" |
||
| 260 | printf "Note that this script does not create a project for the SerialBoot \n" |
||
| 261 | printf "application. Since it uses CMAKE, QtCreator can import it directly. \n" |
||
| 262 | 69661903 | Thomas Schöpping | |
| 263 | 4cce70a8 | Thomas Schöpping | fi |
| 264 | 69661903 | Thomas Schöpping | |
| 265 | 4cce70a8 | Thomas Schöpping | # execute action |
| 266 | if [ $ACTION_REQUESTED = true ]; then |
||
| 267 | 69661903 | Thomas Schöpping | |
| 268 | 4cce70a8 | Thomas Schöpping | ############################################################################## |
| 269 | ### CONFIGURATION ### |
||
| 270 | ############################################################################## |
||
| 271 | 69661903 | Thomas Schöpping | |
| 272 | 4cce70a8 | Thomas Schöpping | # the current user dir |
| 273 | USER_DIR="${PWD}/"
|
||
| 274 | 69661903 | Thomas Schöpping | |
| 275 | 4cce70a8 | Thomas Schöpping | # the directory containing this script file |
| 276 | toAbsolutePath $(dirname ${BASH_SOURCE[0]}) SCRIPT_DIR
|
||
| 277 | 69661903 | Thomas Schöpping | |
| 278 | 4cce70a8 | Thomas Schöpping | # the root directory of the project |
| 279 | toAbsolutePath ${SCRIPT_DIR}../.. PROJECT_ROOT_PATH
|
||
| 280 | 69661903 | Thomas Schöpping | |
| 281 | 4cce70a8 | Thomas Schöpping | # the relative path where all project files shall be generated |
| 282 | read -p "path where to create/delete the project files: " -i "$PROJECT_ROOT_PATH" -e QTCREATOR_FILES_PATH |
||
| 283 | toAbsolutePath $QTCREATOR_FILES_PATH QTCREATOR_FILES_PATH |
||
| 284 | 69661903 | Thomas Schöpping | |
| 285 | 4cce70a8 | Thomas Schöpping | # the include path for GCC specific headers |
| 286 | ARM_NONE_EABI_GCC_BIN=$(which arm-none-eabi-gcc) |
||
| 287 | while [ -L $ARM_NONE_EABI_GCC_BIN ]; do |
||
| 288 | ARM_NONE_EABI_GCC_BIN=$(readlink $ARM_NONE_EABI_GCC_BIN) |
||
| 289 | done |
||
| 290 | toAbsolutePath "$(dirname $ARM_NONE_EABI_GCC_BIN)/../arm-none-eabi/include/" ARM_NONE_EABI_GCC_INCLUDE_PATH |
||
| 291 | 69661903 | Thomas Schöpping | |
| 292 | 4cce70a8 | Thomas Schöpping | # a common path for all projects |
| 293 | COMMON_SOURCE_INCLUDE_PATH=${PROJECT_ROOT_PATH}Target/Source
|
||
| 294 | 69661903 | Thomas Schöpping | |
| 295 | 4cce70a8 | Thomas Schöpping | # the paths to the individual projects |
| 296 | POWERMANAGEMENT_PROJECT_ROOT_PATH=${PROJECT_ROOT_PATH}Target/Demo/ARMCM4_STM32F405_Power_Management_GCC/Boot
|
||
| 297 | DIWHEELDRIVE_PROJECT_ROOT_PATH=${PROJECT_ROOT_PATH}Target/Demo/ARMCM3_STM32F103_DiWheelDrive_GCC/Boot
|
||
| 298 | LIGHTRING_PROJECT_ROOT_PATH=${PROJECT_ROOT_PATH}Target/Demo/ARMCM3_STM32F103_LightRing_GCC/Boot
|
||
| 299 | 69661903 | Thomas Schöpping | |
| 300 | 4cce70a8 | Thomas Schöpping | # the prefix names for the projects to be generated |
| 301 | LIGHTRING_PROJECT_PREFIX="LightRing" |
||
| 302 | POWERMANAGEMENT_PROJECT_PREFIX="PowerManagement" |
||
| 303 | DIWHEELDRIVE_PROJECT_PREFIX="DiWheelDrive" |
||
| 304 | 69661903 | Thomas Schöpping | |
| 305 | 4cce70a8 | Thomas Schöpping | printf "\n" |
| 306 | 69661903 | Thomas Schöpping | |
| 307 | 4cce70a8 | Thomas Schöpping | ############################################################################## |
| 308 | ### SETUP ### |
||
| 309 | ############################################################################## |
||
| 310 | |||
| 311 | # move to the project root directory |
||
| 312 | cd $QTCREATOR_FILES_PATH |
||
| 313 | |||
| 314 | for ARG in ${ARG_LIST[@]}; do
|
||
| 315 | case $ARG in |
||
| 316 | 69661903 | Thomas Schöpping | |
| 317 | 4cce70a8 | Thomas Schöpping | ########################################################################## |
| 318 | ### CLEAN STEP ### |
||
| 319 | ########################################################################## |
||
| 320 | 69661903 | Thomas Schöpping | |
| 321 | 4cce70a8 | Thomas Schöpping | $CLEAN_FLAG) |
| 322 | printf "removing project files..." |
||
| 323 | 69661903 | Thomas Schöpping | |
| 324 | 4cce70a8 | Thomas Schöpping | # remove all files |
| 325 | rm ${LIGHTRING_PROJECT_PREFIX}.includes 2> /dev/null
|
||
| 326 | rm ${LIGHTRING_PROJECT_PREFIX}.files 2> /dev/null
|
||
| 327 | rm ${LIGHTRING_PROJECT_PREFIX}.config 2> /dev/null
|
||
| 328 | rm ${LIGHTRING_PROJECT_PREFIX}.creator 2> /dev/null
|
||
| 329 | |||
| 330 | rm ${POWERMANAGEMENT_PROJECT_PREFIX}.includes 2> /dev/null
|
||
| 331 | rm ${POWERMANAGEMENT_PROJECT_PREFIX}.files 2> /dev/null
|
||
| 332 | rm ${POWERMANAGEMENT_PROJECT_PREFIX}.config 2> /dev/null
|
||
| 333 | rm ${POWERMANAGEMENT_PROJECT_PREFIX}.creator 2> /dev/null
|
||
| 334 | |||
| 335 | rm ${DIWHEELDRIVE_PROJECT_PREFIX}.includes 2> /dev/null
|
||
| 336 | rm ${DIWHEELDRIVE_PROJECT_PREFIX}.files 2> /dev/null
|
||
| 337 | rm ${DIWHEELDRIVE_PROJECT_PREFIX}.config 2> /dev/null
|
||
| 338 | rm ${DIWHEELDRIVE_PROJECT_PREFIX}.creator 2> /dev/null
|
||
| 339 | |||
| 340 | printf "\tdone\n" |
||
| 341 | ;; |
||
| 342 | |||
| 343 | ########################################################################## |
||
| 344 | ### WIPE STEP ### |
||
| 345 | ########################################################################## |
||
| 346 | |||
| 347 | $WIPE_FLAG) |
||
| 348 | printf "removing .user project files..." |
||
| 349 | |||
| 350 | # remove all user files |
||
| 351 | rm ${POWERMANAGEMENT_PROJECT_PREFIX}.creator.user 2> /dev/null
|
||
| 352 | rm ${DIWHEELDRIVE_PROJECT_PREFIX}.creator.user 2> /dev/null
|
||
| 353 | rm ${LIGHTRING_PROJECT_PREFIX}.creator.user 2> /dev/null
|
||
| 354 | |||
| 355 | printf "\tdone\n" |
||
| 356 | ;; |
||
| 357 | |||
| 358 | ########################################################################## |
||
| 359 | ### LIGHTRING SETUP ### |
||
| 360 | ########################################################################## |
||
| 361 | |||
| 362 | $LIGHTRING_FLAG) |
||
| 363 | printf "creating project files for ${LIGHTRING_PROJECT_PREFIX} (STM32F103RET6)..."
|
||
| 364 | |||
| 365 | # generate a file that contains all subdirectories as includes (but ignore hidden and documentation directories) |
||
| 366 | find $ARM_NONE_EABI_GCC_INCLUDE_PATH -type d > ${LIGHTRING_PROJECT_PREFIX}.includes
|
||
| 367 | find $COMMON_SOURCE_INCLUDE_PATH -type d | grep -v "ARMCM4_STM32" >> ${LIGHTRING_PROJECT_PREFIX}.includes
|
||
| 368 | find $LIGHTRING_PROJECT_ROOT_PATH -type d | grep -v "uip\|fatfs\|ethernetlib\|cmd\|ide" >> ${LIGHTRING_PROJECT_PREFIX}.includes
|
||
| 369 | |||
| 370 | # generate a file that specifies all files |
||
| 371 | echo -n "" > ${LIGHTRING_PROJECT_PREFIX}.files
|
||
| 372 | for path in `cat ${LIGHTRING_PROJECT_PREFIX}.includes`; do
|
||
| 373 | find $path -maxdepth 1 -type f \( ! -iname ".*" \) | grep -v "/arm-none-eabi/" | grep -E ".*(\.h|\.c|\.x)$" >> ${LIGHTRING_PROJECT_PREFIX}.files
|
||
| 374 | done |
||
| 375 | |||
| 376 | # generate a default project configuration file if none exists so far |
||
| 377 | if [ ! -f ${LIGHTRING_PROJECT_PREFIX}.config ]; then
|
||
| 378 | echo -e "// Add predefined macros for your project here. For example:\n// #define YOUR_CONFIGURATION belongs here\n" > ${LIGHTRING_PROJECT_PREFIX}.config
|
||
| 379 | fi |
||
| 380 | |||
| 381 | # generate a default .creator file if none exists so far |
||
| 382 | if [ ! -f ${LIGHTRING_PROJECT_PREFIX}.creator ]; then
|
||
| 383 | echo -e "[general]\n" > ${LIGHTRING_PROJECT_PREFIX}.creator
|
||
| 384 | fi |
||
| 385 | |||
| 386 | printf "\tdone\n" |
||
| 387 | ;; |
||
| 388 | |||
| 389 | ########################################################################## |
||
| 390 | ### POWERMANAGEMENT SETUP ### |
||
| 391 | ########################################################################## |
||
| 392 | |||
| 393 | $POWERMANAGEMENT_FLAG) |
||
| 394 | printf "creating project files for ${POWERMANAGEMENT_PROJECT_PREFIX} (STM32F405RGT6)..."
|
||
| 395 | |||
| 396 | # generate a file that contains all subdirectories as includes (but ignore hidden and documentation directories) |
||
| 397 | find $ARM_NONE_EABI_GCC_INCLUDE_PATH -type d > ${POWERMANAGEMENT_PROJECT_PREFIX}.includes
|
||
| 398 | find $COMMON_SOURCE_INCLUDE_PATH -type d | grep -v "ARMCM3_STM32" >> ${POWERMANAGEMENT_PROJECT_PREFIX}.includes
|
||
| 399 | find $POWERMANAGEMENT_PROJECT_ROOT_PATH -type d | grep -v "uip\|fatfs\|ethernetlib\|cmd\|ide" >> ${POWERMANAGEMENT_PROJECT_PREFIX}.includes
|
||
| 400 | |||
| 401 | # generate a file that specifies all files |
||
| 402 | echo -n "" > ${POWERMANAGEMENT_PROJECT_PREFIX}.files
|
||
| 403 | for path in `cat ${POWERMANAGEMENT_PROJECT_PREFIX}.includes`; do
|
||
| 404 | find $path -maxdepth 1 -type f \( ! -iname ".*" \) | grep -v "/arm-none-eabi/" | grep -E ".*(\.h|\.c|\.x)$" >> ${POWERMANAGEMENT_PROJECT_PREFIX}.files
|
||
| 405 | done |
||
| 406 | |||
| 407 | # generate a default project configuration file if none exists so far |
||
| 408 | if [ ! -f ${POWERMANAGEMENT_PROJECT_PREFIX}.config ]; then
|
||
| 409 | echo -e "// Add predefined macros for your project here. For example:\n// #define YOUR_CONFIGURATION belongs here\n" > ${POWERMANAGEMENT_PROJECT_PREFIX}.config
|
||
| 410 | fi |
||
| 411 | |||
| 412 | # generate a default .creator file if none exists so far |
||
| 413 | if [ ! -f ${POWERMANAGEMENT_PROJECT_PREFIX}.creator ]; then
|
||
| 414 | echo -e "[general]\n" > ${POWERMANAGEMENT_PROJECT_PREFIX}.creator
|
||
| 415 | fi |
||
| 416 | |||
| 417 | printf "\tdone\n" |
||
| 418 | ;; |
||
| 419 | |||
| 420 | ########################################################################## |
||
| 421 | ### DIWHEELDRIVE SETUP ### |
||
| 422 | ########################################################################## |
||
| 423 | |||
| 424 | $DIWHEELDRIVE_FLAG) |
||
| 425 | printf "creating project files for ${DIWHEELDRIVE_PROJECT_PREFIX} (STM32F103RET6)..."
|
||
| 426 | |||
| 427 | # generate a file that contains all subdirectories as includes (but ignore hidden and documentation directories) |
||
| 428 | find $ARM_NONE_EABI_GCC_INCLUDE_PATH -type d > ${DIWHEELDRIVE_PROJECT_PREFIX}.includes
|
||
| 429 | find $COMMON_SOURCE_INCLUDE_PATH -type d | grep -v "ARMCM4_STM32" >> ${DIWHEELDRIVE_PROJECT_PREFIX}.includes
|
||
| 430 | find $DIWHEELDRIVE_PROJECT_ROOT_PATH -type d | grep -v "uip\|fatfs\|ethernetlib\|cmd\|ide" >> ${DIWHEELDRIVE_PROJECT_PREFIX}.includes
|
||
| 431 | |||
| 432 | # generate a file that specifies all files |
||
| 433 | echo -n "" > ${DIWHEELDRIVE_PROJECT_PREFIX}.files
|
||
| 434 | for path in `cat ${DIWHEELDRIVE_PROJECT_PREFIX}.includes`; do
|
||
| 435 | find $path -maxdepth 1 -type f \( ! -iname ".*" \) | grep -v "/arm-none-eabi/" | grep -E ".*(\.h|\.c|\.x)$" >> ${DIWHEELDRIVE_PROJECT_PREFIX}.files
|
||
| 436 | done |
||
| 437 | |||
| 438 | # generate a default project configuration file if none exists so far |
||
| 439 | if [ ! -f ${DIWHEELDRIVE_PROJECT_PREFIX}.config ]; then
|
||
| 440 | echo -e "// Add predefined macros for your project here. For example:\n// #define YOUR_CONFIGURATION belongs here\n" > ${DIWHEELDRIVE_PROJECT_PREFIX}.config
|
||
| 441 | fi |
||
| 442 | |||
| 443 | # generate a default .creator file if none exists so far |
||
| 444 | if [ ! -f ${DIWHEELDRIVE_PROJECT_PREFIX}.creator ]; then
|
||
| 445 | echo -e "[general]\n" > ${DIWHEELDRIVE_PROJECT_PREFIX}.creator
|
||
| 446 | fi |
||
| 447 | |||
| 448 | printf "\tdone\n" |
||
| 449 | ;; |
||
| 450 | |||
| 451 | esac |
||
| 452 | done |
||
| 453 | fi |
||
| 454 | 69661903 | Thomas Schöpping | |
| 455 | 4cce70a8 | Thomas Schöpping | ################################################################################ |
| 456 | ### OUTRO ### |
||
| 457 | ################################################################################ |