Home | History | Annotate | Line # | Download | only in dspgen
do_subst.sh revision 1.3
      1 # $NetBSD: do_subst.sh,v 1.3 2000/08/29 15:10:15 takemura Exp $
      2 #
      3 # Copyright (c) 1999, 2000 Christopher G. Demetriou.  All rights reserved.
      4 #
      5 # Redistribution and use in source and binary forms, with or without
      6 # modification, are permitted provided that the following conditions
      7 # are met:
      8 # 1. Redistributions of source code must retain the above copyright
      9 #    notice, this list of conditions and the following disclaimer.
     10 # 2. Redistributions in binary form must reproduce the above copyright
     11 #    notice, this list of conditions and the following disclaimer in the
     12 #    documentation and/or other materials provided with the distribution.
     13 # 3. All advertising materials mentioning features or use of this software
     14 #    must display the following acknowledgement:
     15 #      This product includes software developed by Christopher G. Demetriou
     16 #      for the NetBSD Project.
     17 # 4. The name of the author may not be used to endorse or promote products
     18 #    derived from this software without specific prior written permission
     19 #
     20 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     21 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     22 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     23 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     24 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     25 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     29 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30 
     31 if [ "X$1" = "X--show-libdeps" ]; then
     32 	if ! expr "X$TYPE" : 'Xconsole_program.*' > /dev/null 2>&1; then
     33 		if ! expr "X$TYPE" : 'Xapplication.*' > /dev/null 2>&1; then
     34 			exit
     35 		fi
     36 	fi
     37 	( for lib in $LIBDEP_LIST; do
     38 		echo $lib
     39 	done ) | sort
     40 	exit
     41 fi
     42 
     43 AWK=awk
     44 if [ `uname` = SunOS ]; then
     45 	AWK=nawk
     46 fi
     47 
     48 STD_CPPDEF_LIST=''
     49 STD_INCDIR_LIST=''
     50 STD_LIBRARY_LIST=''
     51 
     52 export NAME
     53 export SRCFILE_LIST
     54 export CPPDEF_LIST STD_CPPDEF_LIST
     55 export INCDIR_LIST STD_INCDIR_LIST 
     56 export LIBDEP_LIST
     57 export LIBRARY_LIST STD_LIBRARY_LIST
     58 
     59 ${AWK} '
     60 BEGIN {
     61 	NAME=ENVIRON["NAME"]
     62 
     63 	SRCFILES=""
     64 	sz = split(ENVIRON["SRCFILE_LIST"], a, "[ \t\n]+");
     65 	for (i = 1; i <= sz; i++) {
     66 		if (a[i] == "") {
     67 			continue
     68 		}
     69 		if (SRCFILES != "") {
     70 			SRCFILES=SRCFILES "\n"
     71 		}
     72 		SRCFILES=SRCFILES "# Begin Source File\n"
     73 		SRCFILES=SRCFILES "\n"
     74 		SRCFILES=SRCFILES "SOURCE=.\\" a[i] "\n"
     75 		SRCFILES=SRCFILES "# End Source File"
     76 	}
     77 
     78 	CPPDEFS=""
     79 	sz = split(ENVIRON["STD_CPPDEF_LIST"], a, "[ \t\n]+");
     80 	for (i = 1; i <= sz; i++) {
     81 		if (a[i] == "") {
     82 			continue
     83 		}
     84 		if (CPPDEFS != "") {
     85 			CPPDEFS=CPPDEFS " "
     86 		}
     87 		CPPDEFS=CPPDEFS "/D \"" a[i] "\""
     88 	}
     89 	sz = split(ENVIRON["CPPDEF_LIST"], a, "[ \t\n]+");
     90 	for (i = 1; i <= sz; i++) {
     91 		if (a[i] == "") {
     92 			continue
     93 		}
     94 		if (CPPDEFS != "") {
     95 			CPPDEFS=CPPDEFS " "
     96 		}
     97 		CPPDEFS=CPPDEFS "/D \"" a[i] "\""
     98 	}
     99 
    100 	INCDIRS=""
    101 	sz = split(ENVIRON["STD_INCDIR_LIST"], a, "[ \t\n]+");
    102 	for (i = 1; i <= sz; i++) {
    103 		if (a[i] == "") {
    104 			continue
    105 		}
    106 		if (INCDIRS != "") {
    107 			INCDIRS=INCDIRS " "
    108 		}
    109 		INCDIRS=INCDIRS "/I \"" a[i] "\""
    110 	}
    111 	sz = split(ENVIRON["INCDIR_LIST"], a, "[ \t\n]+");
    112 	for (i = 1; i <= sz; i++) {
    113 		if (a[i] == "") {
    114 			continue
    115 		}
    116 		if (INCDIRS != "") {
    117 			INCDIRS=INCDIRS " "
    118 		}
    119 		INCDIRS=INCDIRS "/I \"" a[i] "\""
    120 	}
    121 	sz = split(ENVIRON["LIBDEP_LIST"], a, "[ \t\n]+");
    122 	for (i = 1; i <= sz; i++) {
    123 		if (a[i] == "") {
    124 			continue
    125 		}
    126 		if (INCDIRS != "") {
    127 			INCDIRS=INCDIRS " "
    128 		}
    129 		INCDIRS=INCDIRS "/I \"..\\" a[i] "\""
    130         }
    131 
    132 	LIBRARIES=""
    133 	sz = split(ENVIRON["STD_LIBRARY_LIST"], a, "[ \t\n]+");
    134 	for (i = 1; i <= sz; i++) {
    135 		if (a[i] == "") {
    136 			continue
    137 		}
    138 		if (LIBRARIES != "") {
    139 			LIBRARIES=LIBRARIES " "
    140 		}
    141 		LIBRARIES=LIBRARIES a[i] ".lib"
    142 	}
    143 	sz = split(ENVIRON["LIBRARY_LIST"], a, "[ \t\n]+");
    144 	for (i = 1; i <= sz; i++) {
    145 		if (a[i] == "") {
    146 			continue
    147 		}
    148 		if (LIBRARIES != "") {
    149 			LIBRARIES=LIBRARIES " "
    150 		}
    151 		LIBRARIES=LIBRARIES a[i] ".lib"
    152         }
    153 	sz = split(ENVIRON["LIBDEP_LIST"], a, "[ \t\n]+");
    154 	for (i = 1; i <= sz; i++) {
    155 		if (a[i] == "") {
    156 			continue
    157 		}
    158 		if (LIBRARIES != "") {
    159 			LIBRARIES=LIBRARIES " "
    160 		}
    161 		LIBRARIES=LIBRARIES a[i] ".lib"
    162 	}
    163 
    164 	sz = split(ENVIRON["LIBDEP_LIST"], a, "[ \t\n]+");
    165 	DEBUG_LIBPATH=""
    166 	RELEASE_LIBPATH=""
    167 	for (i = 1; i <= sz; i++) {
    168 		if (a[i] == "") {
    169 			continue
    170 		}
    171 		if (i > 1) {
    172 			DEBUG_LIBPATH=DEBUG_LIBPATH " "
    173 			RELEASE_LIBPATH=RELEASE_LIBPATH " "
    174 		}
    175 		DEBUG_LIBPATH=DEBUG_LIBPATH "/libpath:\"..\\" a[i] "\\WMIPSDbg\""
    176 		RELEASE_LIBPATH=RELEASE_LIBPATH "/libpath:\"..\\" a[i] "\\WMIPSRel\""
    177 	}
    178 }
    179 {
    180 	gsub("%%% NAME %%%", NAME)
    181 	gsub("%%% SRCFILES %%%", SRCFILES)
    182 	gsub("%%% CPPDEFS %%%", CPPDEFS)
    183 	gsub("%%% INCDIRS %%%", INCDIRS)
    184 	gsub("%%% LIBRARIES %%%", LIBRARIES)
    185 	gsub("%%% DEBUG_LIBPATH %%%", DEBUG_LIBPATH)
    186 	gsub("%%% RELEASE_LIBPATH %%%", RELEASE_LIBPATH)
    187 	print $0
    188 }
    189 ' ../dspgen/${TYPE}.tmpl | awk ' { printf "%s\r\n", $0 }' > ${NAME}.dsp
    190