]> git.saurik.com Git - wxWidgets.git/blame_incremental - build/update-setup-h
Simplify the wxWebFileHandler code by using a map to store the query string and manip...
[wxWidgets.git] / build / update-setup-h
... / ...
CommitLineData
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
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
28#
29# usage: cat_common_options_for setup_inc.h setup0.h
30cat_common_options_for()
31{
32 # get rid of the copyright header on top of the file
33 cmd="sed '1,/^\$/d' $1"
34
35 # the file used for configure is special: we need to get rid of C++
36 # comments in it because it is included by some C code and we also have to
37 # set all options to 0 by default as they're put to 1 only by configure
38 # (and hence any #ifdefs setting default values for them become unneeded)
39 if [ $2 = "setup.h.in" ]; then
40 cmd="$cmd | sed -e '/^\/\//d' \
41 -e 's@ *//.*\$@@' \
42 -e 's/# *define \(.\+\) \+1 *\$/#define \1 0/'"
43 fi
44
45 eval $cmd
46}
47
48# update the single setup.h file passed in as the parameter if it is out of
49# date
50#
51# usage: update_single_setup_h {common|MSW} setup_inc.h setup0.h
52update_single_setup_h()
53{
54 section=$1
55 shift
56 setup_inc=$1
57 shift
58
59 if [ $setup_inc -ot $1 ]; then
60 echo "Skipping $1 which is already up to date."
61 return 0
62 fi
63
64 echo -n "Updating $1 ..."
65
66 tmp=$i.$$.tmp
67 sed -e "/^\/\* --- start $section options --- \*\/\$/q" $1 > $tmp &&
68 cat_common_options_for $setup_inc $1 >> $tmp &&
69 sed -n -e "/^\/\* --- end $section options --- \*\/\$/,\$p" $1 >> $tmp &&
70 mv $tmp $1
71
72 if [ $? -ne 0 ]; then
73 msg " FAILED"
74 error "$0: failed to update file $1"
75 rc=2
76 else
77 msg " ok"
78 fi
79}
80
81# wrapper for update_single_setup_h which only updates the common options
82update_common_setup_h()
83{
84 update_single_setup_h common include/wx/setup_inc.h $1
85}
86
87# wrapper for update_single_setup_h which only updates the MSW options
88update_msw_setup_h()
89{
90 update_single_setup_h MSW include/wx/msw/setup_inc.h $1
91}
92
93# entry point
94if [ ! -f wxwin.m4 ]; then
95 error "$0: must be ran from root wx directory"
96 exit 1
97fi
98
99update_common_setup_h include/wx/motif/setup0.h
100update_common_setup_h include/wx/msw/setup0.h
101update_common_setup_h include/wx/msw/wince/setup.h
102update_common_setup_h include/wx/osx/setup0.h
103update_common_setup_h include/wx/os2/setup0.h
104update_common_setup_h include/wx/palmos/setup0.h
105update_common_setup_h include/wx/univ/setup0.h
106update_common_setup_h setup.h.in
107
108update_msw_setup_h include/wx/msw/setup0.h
109update_msw_setup_h setup.h.in
110
111update_single_setup_h wxUniv include/wx/univ/setup_inc.h include/wx/univ/setup0.h
112
113exit $rc
114