]> git.saurik.com Git - wxWidgets.git/blame - build/update-setup-h
Before I forget yet again, here is the Bakefile quickstart for wx projects.
[wxWidgets.git] / build / update-setup-h
CommitLineData
ff3a660b
VZ
1#!/bin/sh
2##############################################################################
3# Name: build/update-setup.h
4# Purpose: run from root wx directory to update wx/*/setup.h files: those
5# having special comment markers in them will be update using
6# include/wx/setup_inc.h contents
7# Created: 2005-01-15
8# RCS-ID: $Id$
9# Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org>
10# Licence: wxWindows licence
11##############################################################################
12
13rc=0
14
15error()
16{
17 echo $* 1>&2
18}
19
8d51d7d2
VZ
20msg()
21{
22 # TODO: only output from here if "quiet" option is not given
23 echo "$*"
24}
25
26# write all the common options to stdout, massaging them specially if they are
27# meant to be included in a configure input file setup.h.in (the name of the
28# file the common options are meant to be included in is the parameter)
29cat_common_options_for()
30{
31 cmd="cat include/wx/setup_inc.h"
32
33 # the file used for configure is special: we need to get rid of C++
34 # comments in it because it is included by some C code and we also have to
35 # set all options to 0 by default as they're put to 1 only by configure
36 # (and hence any #ifdefs setting default values for them become unneeded)
37 if [ $1 = "setup.h.in" ]; then
38 cmd="$cmd | sed -e '/^\/\//d' \
39 -e 's@ *//.*\$@@' \
de1efd2d 40 -e 's/# *define \(.\+\) \+1 *\$/#define \1 0/'"
8d51d7d2
VZ
41 fi
42
43 eval $cmd
44}
45
46# update the single setup.h file passed in as the parameter if it is out of
47# date
ff3a660b
VZ
48update_single_setup_h()
49{
8d51d7d2
VZ
50 if [ include/wx/setup_inc.h -ot $1 ]; then
51 echo "Skipping $1 which is already up to date."
52 return 0
53 fi
54
60b881f7 55 echo -n "Updating $1 ..."
8d51d7d2 56
ff3a660b
VZ
57 tmp=$i.$$.tmp
58 sed -e '/^\/\* --- start common options --- \*\/$/q' $1 > $tmp &&
8d51d7d2 59 cat_common_options_for $1 >> $tmp &&
ff3a660b
VZ
60 sed -n -e '/^\/\* --- end common options --- \*\/$/,$p' $1 >> $tmp &&
61 mv $tmp $1
62
63 if [ $? -ne 0 ]; then
8d51d7d2 64 msg " FAILED"
ff3a660b
VZ
65 error "$0: failed to update file $1"
66 rc=2
8d51d7d2
VZ
67 else
68 msg " ok"
ff3a660b
VZ
69 fi
70}
71
72# entry point
73if [ ! -f wxwin.m4 ]; then
74 error "$0: must be ran from root wx directory"
75 exit 1
76fi
77
78update_single_setup_h include/wx/msw/setup0.h
5e9ccdeb 79update_single_setup_h include/wx/msw/wince/setup.h
8d8f077e 80update_single_setup_h include/wx/mac/setup0.h
2fddf893 81update_single_setup_h setup.h.in
ff3a660b
VZ
82
83exit $rc
8d8f077e 84