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: update-setup-h 35915 2005-10-17 17:40:36Z ABX $ 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 (the name of the 28# file the common options are meant to be included in is the parameter) 29cat_common_options_for() 30{ 31 # get rid of the copyright header on top of the file 32 cmd="sed '1,/^$/d' include/wx/setup_inc.h" 33 34 # the file used for configure is special: we need to get rid of C++ 35 # comments in it because it is included by some C code and we also have to 36 # set all options to 0 by default as they're put to 1 only by configure 37 # (and hence any #ifdefs setting default values for them become unneeded) 38 if [ $1 = "setup.h.in" ]; then 39 cmd="$cmd | sed -e '/^\/\//d' \ 40 -e 's@ *//.*\$@@' \ 41 -e 's/# *define \(.\+\) \+1 *\$/#define \1 0/'" 42 fi 43 44 eval $cmd 45} 46 47# update the single setup.h file passed in as the parameter if it is out of 48# date 49update_single_setup_h() 50{ 51 if [ include/wx/setup_inc.h -ot $1 ]; then 52 echo "Skipping $1 which is already up to date." 53 return 0 54 fi 55 56 echo -n "Updating $1 ..." 57 58 tmp=$i.$$.tmp 59 sed -e '/^\/\* --- start common options --- \*\/$/q' $1 > $tmp && 60 cat_common_options_for $1 >> $tmp && 61 sed -n -e '/^\/\* --- end common options --- \*\/$/,$p' $1 >> $tmp && 62 mv $tmp $1 63 64 if [ $? -ne 0 ]; then 65 msg " FAILED" 66 error "$0: failed to update file $1" 67 rc=2 68 else 69 msg " ok" 70 fi 71} 72 73# entry point 74if [ ! -f wxwin.m4 ]; then 75 error "$0: must be ran from root wx directory" 76 exit 1 77fi 78 79update_single_setup_h include/wx/msw/setup0.h 80update_single_setup_h include/wx/msw/wince/setup.h 81update_single_setup_h include/wx/mac/setup0.h 82update_single_setup_h include/wx/palmos/setup0.h 83update_single_setup_h include/wx/os2/setup0.h 84update_single_setup_h include/wx/motif/setup0.h 85update_single_setup_h setup.h.in 86 87exit $rc 88 89