blob: 7f972e0703635c0043ead54c133eb03f5f19bcf9 [file] [log] [blame]
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +01001#!/bin/bash
Gilles Peskinedea4c7e2023-09-08 16:34:01 +02002
Gilles Peskine473f6362023-09-08 16:49:14 +02003print_usage()
4{
5 cat <<EOF
6Usage: $0 [OPTION]...
7Prepare the source tree for a release.
8
9Options:
10 -u Prepare for development (undo the release preparation)
11EOF
12}
Gilles Peskinedea4c7e2023-09-08 16:34:01 +020013
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +010014# Copyright The Mbed TLS Contributors
Dave Rodgman16799db2023-11-02 19:47:20 +000015# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +010016
17set -eu
18
Gilles Peskine473f6362023-09-08 16:49:14 +020019if [ $# -ne 0 ] && [ "$1" = "--help" ]; then
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +010020 print_usage
Gilles Peskine473f6362023-09-08 16:49:14 +020021 exit
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +010022fi
23
Gilles Peskine473f6362023-09-08 16:49:14 +020024unrelease= # if non-empty, we're in undo-release mode
25while getopts u OPTLET; do
26 case $OPTLET in
27 u) unrelease=1;;
28 \?)
29 echo 1>&2 "$0: unknown option: -$OPTLET"
30 echo 1>&2 "Try '$0 --help' for more information."
31 exit 3;;
32 esac
33done
34
35
36
37#### .gitignore processing ####
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +010038
39GITIGNORES=$(find . -name ".gitignore")
40for GITIGNORE in $GITIGNORES; do
Gilles Peskine473f6362023-09-08 16:49:14 +020041 if [ -n "$unrelease" ]; then
Agathiyan Bragadeesh3bcff542023-08-04 14:05:28 +010042 sed -i '/###START_COMMENTED_GENERATED_FILES###/,/###END_COMMENTED_GENERATED_FILES###/s/^# //' $GITIGNORE
43 sed -i 's/###START_COMMENTED_GENERATED_FILES###/###START_GENERATED_FILES###/' $GITIGNORE
44 sed -i 's/###END_COMMENTED_GENERATED_FILES###/###END_GENERATED_FILES###/' $GITIGNORE
45 else
46 sed -i '/###START_GENERATED_FILES###/,/###END_GENERATED_FILES###/s/^/# /' $GITIGNORE
47 sed -i 's/###START_GENERATED_FILES###/###START_COMMENTED_GENERATED_FILES###/' $GITIGNORE
48 sed -i 's/###END_GENERATED_FILES###/###END_COMMENTED_GENERATED_FILES###/' $GITIGNORE
49 fi
50done
Gilles Peskine473f6362023-09-08 16:49:14 +020051
52
53
54#### Build scripts ####
55
56# GEN_FILES defaults on (non-empty) in development, off (empty) in releases
57if [ -n "$unrelease" ]; then
58 r=' yes'
59else
60 r=''
61fi
62sed -i 's/^\(GEN_FILES[ ?:]*=\)\([^#]*\)/\1'"$r/" Makefile */Makefile
63
64# GEN_FILES defaults on in development, off in releases
65if [ -n "$unrelease" ]; then
66 r='ON'
67else
68 r='OFF'
69fi
Gilles Peskineeeed74e2023-09-09 21:00:30 +020070sed -i '/[Oo][Ff][Ff] in development/! s/^\( *option *( *GEN_FILES *"[^"]*" *\)\([A-Za-z0-9][A-Za-z0-9]*\)/\1'"$r/" CMakeLists.txt