# $NetBSD: gen_template.sh,v 1.4 2008/04/30 13:10:59 martin Exp $ # # Copyright (c) 2001 The NetBSD Foundation, Inc. # All rights reserved. # # This code is derived from software contributed to The NetBSD Foundation # by UCHIYAMA Yasushi. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # # Generate application/static library dsp/vcp template. # TEMPLATE=$TYPE.tmpl DEBUG_VER="Debug" RELEASE_VER="Release" if [ $TYPE != "application" ] ; then PROJECTTYPE="Static Library" else PROJECTTYPE="Application" fi # # Visual C++ version. # vc_ver=$1 case $vc_ver in "vc5") echo "Generate template for Visual C++ 5 Windows CE Embeded ToolKit" ;; "vc6") echo "Generate template for Visual C++ 6 Windows CE ToolKit" ;; "evc3"|"evc4") echo "Generate template for Embeded Visual C++ 3/4" ;; *) echo "Unsupported Visual C++ version." exit 1 esac tmpl_base="tmpl.$vc_ver" header_tmpl="$tmpl_base/header" project_tmpl="$tmpl_base/project" # # Architecture types. # archs="" i=1 n=`expr $#` while [ $i -lt $n ]; do shift 1 archs="$archs $1" i=`expr $i + 1` done echo "Supported architecture [$archs ]" # # DSP/VCP header. # cat $header_tmpl >> $TEMPLATE # # Configuration declare. # echo '!MESSAGE' >> $TEMPLATE for arch in $archs do ARCH_CFG="Win32 (WCE $arch)" CFG="%%% NAME %%% - $ARCH_CFG" echo "!MESSAGE \"$CFG $DEBUG_VER\" (\"$ARCH_CFG $PROJECTTYPE\")" >> $TEMPLATE echo "!MESSAGE \"$CFG $RELEASE_VER\" (\"$ARCH_CFG $PROJECTTYPE\")" >> $TEMPLATE done echo '!MESSAGE' >> $TEMPLATE # # Project define. # cat $project_tmpl >> $TEMPLATE # # Architecture dependent configuration define. # for arch in $archs do ARCH_CFG="Win32 (WCE $arch)" CFG="%%% NAME %%% - $ARCH_CFG" echo "!IF \"\$(CFG)\" == \"$CFG $DEBUG_VER\"" >> $TEMPLATE echo "# PROP BASE Output_Dir \"..\\compile\\$arch$DEBUG_VER\"" >> $TEMPLATE echo "# PROP BASE Intermediate_Dir \"..\\compile\\$arch$DEBUG_VER\"" >> $TEMPLATE echo "# PROP Output_Dir \"..\\compile\\$arch$DEBUG_VER\"" >> $TEMPLATE echo "# PROP Intermediate_Dir \"..\\compile\\$arch$DEBUG_VER\"" >> $TEMPLATE cat $tmpl_base/$TYPE.$arch$DEBUG_VER >> $TEMPLATE cat $tmpl_base/config.defadd >> $TEMPLATE if [ $TYPE = "application" ] ; then echo "# ADD LINK32 /libpath:\"..\\compile\\$arch$DEBUG_VER\"" >> $TEMPLATE fi echo "!ENDIF" >> $TEMPLATE echo "!IF \"\$(CFG)\" == \"$CFG $RELEASE_VER\"" >> $TEMPLATE cat $tmpl_base/config.defprop >> $TEMPLATE echo "# PROP BASE Output_Dir \"..\\compile\\$arch$RELEASE_VER\"" >> $TEMPLATE echo "# PROP BASE Intermediate_Dir \"..\\compile\\$arch$RELEASE_VER\"" >> $TEMPLATE echo "# PROP Output_Dir \"..\\compile\\$arch$RELEASE_VER\"" >> $TEMPLATE echo "# PROP Intermediate_Dir \"..\\compile\\$arch$RELEASE_VER\"" >> $TEMPLATE cat $tmpl_base/$TYPE.$arch$RELEASE_VER >> $TEMPLATE cat $tmpl_base/config.defadd >> $TEMPLATE if [ $TYPE = "application" ] ; then echo "# ADD LINK32 /libpath:\"..\\compile\\$arch$RELEASE_VER\"" >> $TEMPLATE fi echo "!ENDIF" >> $TEMPLATE done # # Target declare # echo >> $TEMPLATE echo "# Begin Target" >> $TEMPLATE for arch in $archs do ARCH_CFG="Win32 (WCE $arch)" CFG="%%% NAME %%% - $ARCH_CFG" echo "# Name \"$CFG $DEBUG_VER\"" >> $TEMPLATE echo "# Name \"$CFG $RELEASE_VER\"" >> $TEMPLATE done # # Source files # # (MI) cat >> $TEMPLATE <> $TEMPLATE done # # Footer. # cat >> $TEMPLATE <