#!/usr/local/bin/bash ############################################################################## # # file : robotgen # created : Mon Jul 29 21:01:37 CEST 2002 # copyright : (C) 2002 by Eric Espié # email : Eric.Espie@torcs.org # version : $Id: robotgen,v 1.4 2004/08/02 08:51:04 berniw Exp $ # ############################################################################## # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # ############################################################################## function usage() { echo "usage: robotgen -n -a -c [-d description] [--gpl]" exit 1 } while [ $# -ne 0 ] do case "$1" in "-n") NAME=$2 shift;; "-a") AUTHOR=$2 shift;; "-c") CAR=$2 shift;; "-d") DESCRIPTION=$2 shift;; "--gpl") GPL=yes ;; esac shift done if [ -z "$NAME" ] || [ -z "$AUTHOR" ] || [ -z "$CAR" ] then usage fi CATEGORY=$(grep category data/cars/models/$CAR/$CAR.xml | sed -e 's/^.*val=\"//' -e 's/\".*$//') if [ -z "$CATEGORY" ] then usage fi echo "Generation of robot $NAME author $AUTHOR" ROBOTDIR=src/drivers/$NAME rm -rf $ROBOTDIR mkdir $ROBOTDIR || exit 1 echo -n "Copying $CAR.rgb ... " cp data/cars/models/$CAR/$CAR.rgb $ROBOTDIR || exit 1 cp data/cars/models/$CAR/$CAR.xcf $ROBOTDIR 2>/dev/null if [ $? == 0 ] then echo -n "and $CAR.xcf ... " fi echo "done" echo -n "Copying logo.rgb ... " cp data/data/textures/logo.rgb $ROBOTDIR || exit 1 echo "done" MAKEFILE=$ROBOTDIR/Makefile echo -n "Generating $MAKEFILE ... " echo '##############################################################################' > $MAKEFILE || exit 1 echo '#' >> $MAKEFILE || exit 1 echo '# file : Makefile' >> $MAKEFILE || exit 1 echo '# created : '`date` >> $MAKEFILE || exit 1 echo '# copyright : (C) 2002 '$AUTHOR >> $MAKEFILE || exit 1 echo '#' >> $MAKEFILE || exit 1 echo '##############################################################################' >> $MAKEFILE || exit 1 if [ -n "$GPL" ] then echo '#' >> $MAKEFILE || exit 1 echo '# This program is free software; you can redistribute it and/or modify' >> $MAKEFILE || exit 1 echo '# it under the terms of the GNU General Public License as published by' >> $MAKEFILE || exit 1 echo '# the Free Software Foundation; either version 2 of the License, or' >> $MAKEFILE || exit 1 echo '# (at your option) any later version.' >> $MAKEFILE || exit 1 echo '#' >> $MAKEFILE || exit 1 echo '##############################################################################' >> $MAKEFILE || exit 1 fi echo >> $MAKEFILE || exit 1 echo "ROBOT = $NAME" >> $MAKEFILE || exit 1 echo 'MODULE = ${ROBOT}.so' >> $MAKEFILE || exit 1 echo 'MODULEDIR = drivers/${ROBOT}' >> $MAKEFILE || exit 1 echo 'SOURCES = ${ROBOT}.cpp' >> $MAKEFILE || exit 1 echo '' >> $MAKEFILE || exit 1 echo 'SHIPDIR = drivers/${ROBOT}' >> $MAKEFILE || exit 1 echo 'SHIP = ${ROBOT}.xml '$CAR'.rgb logo.rgb' >> $MAKEFILE || exit 1 echo 'SHIPSUBDIRS = ' >> $MAKEFILE || exit 1 echo '' >> $MAKEFILE || exit 1 echo 'PKGSUBDIRS = ${SHIPSUBDIRS}' >> $MAKEFILE || exit 1 echo 'src-robots-'$NAME'_PKGFILES = $(shell find * -maxdepth 0 -type f -print)' >> $MAKEFILE || exit 1 echo 'src-robots-'$NAME'_PKGDIR = ${PACKAGE}-${VERSION}/$(subst ${TORCS_BASE},,$(shell pwd))' >> $MAKEFILE || exit 1 echo '' >> $MAKEFILE || exit 1 echo 'include ${MAKE_DEFAULT}' >> $MAKEFILE || exit 1 echo "done" XMLFILE=$ROBOTDIR/$NAME.xml echo -n "Generating $XMLFILE ... " echo '' > $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 if [ -n "$GPL" ] then echo '' >> $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 fi echo '' >> $XMLFILE || exit 1 echo '' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo ' ' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo '
' >> $XMLFILE || exit 1 echo "done" CPPFILE=$ROBOTDIR/$NAME.cpp echo -n "Generating $CPPFILE ... " echo '/***************************************************************************' > $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo ' file : '$NAME.cpp >> $CPPFILE || exit 1 echo ' created : '`date` >> $CPPFILE || exit 1 echo ' copyright : (C) 2002 '$AUTHOR >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo ' ***************************************************************************/' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 if [ -n "$GPL" ] then echo '/***************************************************************************' >> $CPPFILE || exit 1 echo ' * *' >> $CPPFILE || exit 1 echo ' * This program is free software; you can redistribute it and/or modify *' >> $CPPFILE || exit 1 echo ' * it under the terms of the GNU General Public License as published by *' >> $CPPFILE || exit 1 echo ' * the Free Software Foundation; either version 2 of the License, or *' >> $CPPFILE || exit 1 echo ' * (at your option) any later version. *' >> $CPPFILE || exit 1 echo ' * *' >> $CPPFILE || exit 1 echo ' ***************************************************************************/' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 fi echo '#ifdef _WIN32' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#endif' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '#include ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo 'static tTrack *curTrack;' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo 'static void initTrack(int index, tTrack* track, void *carHandle, void **carParmHandle, tSituation *s); ' >> $CPPFILE || exit 1 echo 'static void newrace(int index, tCarElt* car, tSituation *s); ' >> $CPPFILE || exit 1 echo 'static void drive(int index, tCarElt* car, tSituation *s); ' >> $CPPFILE || exit 1 echo 'static void endrace(int index, tCarElt *car, tSituation *s);' >> $CPPFILE || exit 1 echo 'static void shutdown(int index);' >> $CPPFILE || exit 1 echo 'static int InitFuncPt(int index, void *pt); ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* ' >> $CPPFILE || exit 1 echo ' * Module entry point ' >> $CPPFILE || exit 1 echo ' */ ' >> $CPPFILE || exit 1 echo 'extern "C" int ' >> $CPPFILE || exit 1 echo $NAME'(tModInfo *modInfo) ' >> $CPPFILE || exit 1 echo '{' >> $CPPFILE || exit 1 echo ' memset(modInfo, 0, 10*sizeof(tModInfo));' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo ' modInfo->name = "'$NAME'"; /* name of the module (short) */' >> $CPPFILE || exit 1 echo ' modInfo->desc = "'$DESCRIPTION'"; /* description of the module (can be long) */' >> $CPPFILE || exit 1 echo ' modInfo->fctInit = InitFuncPt; /* init function */' >> $CPPFILE || exit 1 echo ' modInfo->gfId = ROB_IDENT; /* supported framework version */' >> $CPPFILE || exit 1 echo ' modInfo->index = 1;' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo ' return 0; ' >> $CPPFILE || exit 1 echo '} ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* Module interface initialization. */' >> $CPPFILE || exit 1 echo 'static int ' >> $CPPFILE || exit 1 echo 'InitFuncPt(int index, void *pt) ' >> $CPPFILE || exit 1 echo '{ ' >> $CPPFILE || exit 1 echo ' tRobotItf *itf = (tRobotItf *)pt; ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo ' itf->rbNewTrack = initTrack; /* Give the robot the track view called */ ' >> $CPPFILE || exit 1 echo ' /* for every track change or new race */ ' >> $CPPFILE || exit 1 echo ' itf->rbNewRace = newrace; /* Start a new race */' >> $CPPFILE || exit 1 echo ' itf->rbDrive = drive; /* Drive during race */' >> $CPPFILE || exit 1 echo ' itf->rbPitCmd = NULL;' >> $CPPFILE || exit 1 echo ' itf->rbEndRace = endrace; /* End of the current race */' >> $CPPFILE || exit 1 echo ' itf->rbShutdown = shutdown; /* Called before the module is unloaded */' >> $CPPFILE || exit 1 echo ' itf->index = index; /* Index used if multiple interfaces */' >> $CPPFILE || exit 1 echo ' return 0; ' >> $CPPFILE || exit 1 echo '} ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* Called for every track change or new race. */' >> $CPPFILE || exit 1 echo 'static void ' >> $CPPFILE || exit 1 echo 'initTrack(int index, tTrack* track, void *carHandle, void **carParmHandle, tSituation *s) ' >> $CPPFILE || exit 1 echo '{ ' >> $CPPFILE || exit 1 echo ' curTrack = track;' >> $CPPFILE || exit 1 echo ' *carParmHandle = NULL; ' >> $CPPFILE || exit 1 echo '} ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* Start a new race. */' >> $CPPFILE || exit 1 echo 'static void ' >> $CPPFILE || exit 1 echo 'newrace(int index, tCarElt* car, tSituation *s) ' >> $CPPFILE || exit 1 echo '{ ' >> $CPPFILE || exit 1 echo '} ' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* Drive during race. */' >> $CPPFILE || exit 1 echo 'static void ' >> $CPPFILE || exit 1 echo 'drive(int index, tCarElt* car, tSituation *s) ' >> $CPPFILE || exit 1 echo '{ ' >> $CPPFILE || exit 1 echo ' memset((void *)&car->ctrl, 0, sizeof(tCarCtrl)); ' >> $CPPFILE || exit 1 echo ' car->ctrl.brakeCmd = 1.0; /* all brakes on ... */ ' >> $CPPFILE || exit 1 echo ' /* ' >> $CPPFILE || exit 1 echo ' * add the driving code here to modify the ' >> $CPPFILE || exit 1 echo ' * car->_steerCmd ' >> $CPPFILE || exit 1 echo ' * car->_accelCmd ' >> $CPPFILE || exit 1 echo ' * car->_brakeCmd ' >> $CPPFILE || exit 1 echo ' * car->_gearCmd ' >> $CPPFILE || exit 1 echo ' * car->_clutchCmd ' >> $CPPFILE || exit 1 echo ' */ ' >> $CPPFILE || exit 1 echo '}' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* End of the current race */' >> $CPPFILE || exit 1 echo 'static void' >> $CPPFILE || exit 1 echo 'endrace(int index, tCarElt *car, tSituation *s)' >> $CPPFILE || exit 1 echo '{' >> $CPPFILE || exit 1 echo '}' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo '/* Called before the module is unloaded */' >> $CPPFILE || exit 1 echo 'static void' >> $CPPFILE || exit 1 echo 'shutdown(int index)' >> $CPPFILE || exit 1 echo '{' >> $CPPFILE || exit 1 echo '}' >> $CPPFILE || exit 1 echo '' >> $CPPFILE || exit 1 echo "done" DEFFILE=$ROBOTDIR/$NAME.def echo -n "Generating $DEFFILE ... " echo ';' > $DEFFILE || exit 1 echo '; file : '$NAME.def >> $DEFFILE || exit 1 echo '; created : '`date` >> $DEFFILE || exit 1 echo '; copyright : (C) 2002 '$AUTHOR >> $DEFFILE || exit 1 echo ';' >> $DEFFILE || exit 1 if [ -n "$GPL" ] then echo ';' >> $DEFFILE || exit 1 echo '; This program is free software; you can redistribute it and/or modify' >> $DEFFILE || exit 1 echo '; it under the terms of the GNU General Public License as published by' >> $DEFFILE || exit 1 echo '; the Free Software Foundation; either version 2 of the License, or ' >> $DEFFILE || exit 1 echo '; (at your option) any later version. ' >> $DEFFILE || exit 1 echo ';' >> $DEFFILE || exit 1 fi echo '' >> $DEFFILE || exit 1 echo 'LIBRARY '$NAME >> $DEFFILE || exit 1 echo '' >> $DEFFILE || exit 1 echo 'SECTIONS .data READ WRITE' >> $DEFFILE || exit 1 echo '' >> $DEFFILE || exit 1 echo 'EXPORTS' >> $DEFFILE || exit 1 echo ' '$NAME >> $DEFFILE || exit 1 echo '' >> $DEFFILE || exit 1 echo "done" DSPFILE=$ROBOTDIR/$NAME.dsp NAME_=$(echo $NAME | tr "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ") echo -n "Generating $DSPFILE ... " echo '# Microsoft Developer Studio Project File - Name="'$NAME'" - Package Owner=<4> ' > $DSPFILE || exit 1 echo '# Microsoft Developer Studio Generated Build File, Format Version 6.00 ' >> $DSPFILE || exit 1 echo '# ** DO NOT EDIT ** ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo 'CFG='$NAME' - Win32 Debug ' >> $DSPFILE || exit 1 echo '!MESSAGE This is not a valid makefile. To build this project using NMAKE, ' >> $DSPFILE || exit 1 echo '!MESSAGE use the Export Makefile command and run ' >> $DSPFILE || exit 1 echo '!MESSAGE ' >> $DSPFILE || exit 1 echo '!MESSAGE NMAKE /f "'$NAME'.mak". ' >> $DSPFILE || exit 1 echo '!MESSAGE ' >> $DSPFILE || exit 1 echo '!MESSAGE You can specify a configuration when running NMAKE ' >> $DSPFILE || exit 1 echo '!MESSAGE by defining the macro CFG on the command line. For example: ' >> $DSPFILE || exit 1 echo '!MESSAGE ' >> $DSPFILE || exit 1 echo '!MESSAGE NMAKE /f "'$NAME'.mak" CFG="'$NAME' - Win32 Debug" ' >> $DSPFILE || exit 1 echo '!MESSAGE ' >> $DSPFILE || exit 1 echo '!MESSAGE Possible choices for configuration are: ' >> $DSPFILE || exit 1 echo '!MESSAGE ' >> $DSPFILE || exit 1 echo '!MESSAGE "'$NAME' - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ' >> $DSPFILE || exit 1 echo '!MESSAGE "'$NAME' - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ' >> $DSPFILE || exit 1 echo '!MESSAGE ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# Begin Project ' >> $DSPFILE || exit 1 echo '# PROP AllowPerConfigDependencies 0 ' >> $DSPFILE || exit 1 echo '# PROP Scc_ProjName "" ' >> $DSPFILE || exit 1 echo '# PROP Scc_LocalPath "" ' >> $DSPFILE || exit 1 echo 'CPP=cl.exe ' >> $DSPFILE || exit 1 echo 'MTL=midl.exe ' >> $DSPFILE || exit 1 echo 'RSC=rc.exe ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '!IF "$(CFG)" == "'$NAME' - Win32 Release" ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# PROP BASE Use_MFC 0 ' >> $DSPFILE || exit 1 echo '# PROP BASE Use_Debug_Libraries 0 ' >> $DSPFILE || exit 1 echo '# PROP BASE Output_Dir "Release" ' >> $DSPFILE || exit 1 echo '# PROP BASE Intermediate_Dir "Release" ' >> $DSPFILE || exit 1 echo '# PROP BASE Target_Dir "" ' >> $DSPFILE || exit 1 echo '# PROP Use_MFC 0 ' >> $DSPFILE || exit 1 echo '# PROP Use_Debug_Libraries 0 ' >> $DSPFILE || exit 1 echo '# PROP Output_Dir "Release" ' >> $DSPFILE || exit 1 echo '# PROP Intermediate_Dir "Release" ' >> $DSPFILE || exit 1 echo '# PROP Ignore_Export_Lib 1 ' >> $DSPFILE || exit 1 echo '# PROP Target_Dir "" ' >> $DSPFILE || exit 1 echo '# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "'$NAME_'_EXPORTS" /YX /FD /c ' >> $DSPFILE || exit 1 echo '# ADD CPP /nologo /G5 /W3 /GX /O2 /I "../../../export/include" /I "../../windows/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "'$NAME_'_EXPORTS" /YX /FD /c ' >> $DSPFILE || exit 1 echo '# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ' >> $DSPFILE || exit 1 echo '# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ' >> $DSPFILE || exit 1 echo '# ADD BASE RSC /l 0x40c /d "NDEBUG" ' >> $DSPFILE || exit 1 echo '# ADD RSC /l 0x40c /d "NDEBUG" ' >> $DSPFILE || exit 1 echo 'BSC32=bscmake.exe ' >> $DSPFILE || exit 1 echo '# ADD BASE BSC32 /nologo ' >> $DSPFILE || exit 1 echo '# ADD BSC32 /nologo ' >> $DSPFILE || exit 1 echo 'LINK32=link.exe ' >> $DSPFILE || exit 1 echo '# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 ' >> $DSPFILE || exit 1 echo '# ADD LINK32 tgf.lib robottools.lib sg.lib ul.lib /nologo /dll /map /machine:I386 /nodefaultlib:"LIBCD" /libpath:"../../../export/lib" /libpath:"../../windows/lib" ' >> $DSPFILE || exit 1 echo '# Begin Special Build Tool ' >> $DSPFILE || exit 1 echo 'WkspDir=. ' >> $DSPFILE || exit 1 echo 'TargetDir=.\Release ' >> $DSPFILE || exit 1 echo 'SOURCE="$(InputPath)" ' >> $DSPFILE || exit 1 echo 'PostBuild_Cmds=copy $(TargetDir)\*.dll $(WkspDir)\runtime\drivers\'$NAME' ' >> $DSPFILE || exit 1 echo '# End Special Build Tool ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '!ELSEIF "$(CFG)" == "'$NAME' - Win32 Debug" ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# PROP BASE Use_MFC 0 ' >> $DSPFILE || exit 1 echo '# PROP BASE Use_Debug_Libraries 1 ' >> $DSPFILE || exit 1 echo '# PROP BASE Output_Dir "Debug" ' >> $DSPFILE || exit 1 echo '# PROP BASE Intermediate_Dir "Debug" ' >> $DSPFILE || exit 1 echo '# PROP BASE Target_Dir "" ' >> $DSPFILE || exit 1 echo '# PROP Use_MFC 0 ' >> $DSPFILE || exit 1 echo '# PROP Use_Debug_Libraries 1 ' >> $DSPFILE || exit 1 echo '# PROP Output_Dir "Debug" ' >> $DSPFILE || exit 1 echo '# PROP Intermediate_Dir "Debug" ' >> $DSPFILE || exit 1 echo '# PROP Ignore_Export_Lib 1 ' >> $DSPFILE || exit 1 echo '# PROP Target_Dir "" ' >> $DSPFILE || exit 1 echo '# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "'$NAME_'_EXPORTS" /YX /FD /GZ /c ' >> $DSPFILE || exit 1 echo '# ADD CPP /nologo /G5 /W3 /Gm /GX /ZI /Od /I "../../../export/include" /I "../../windows/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "'$NAME_'_EXPORTS" /YX /FD /GZ /c ' >> $DSPFILE || exit 1 echo '# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ' >> $DSPFILE || exit 1 echo '# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ' >> $DSPFILE || exit 1 echo '# ADD BASE RSC /l 0x40c /d "_DEBUG" ' >> $DSPFILE || exit 1 echo '# ADD RSC /l 0x40c /d "_DEBUG" ' >> $DSPFILE || exit 1 echo 'BSC32=bscmake.exe ' >> $DSPFILE || exit 1 echo '# ADD BASE BSC32 /nologo ' >> $DSPFILE || exit 1 echo '# ADD BSC32 /nologo ' >> $DSPFILE || exit 1 echo 'LINK32=link.exe ' >> $DSPFILE || exit 1 echo '# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept ' >> $DSPFILE || exit 1 echo '# ADD LINK32 robottools.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib sg.lib ul.lib /nologo /dll /map /debug /machine:I386 /pdbtype:sept /libpath:"../../../export/libd" /libpath:"../../windows/lib" ' >> $DSPFILE || exit 1 echo '# Begin Special Build Tool ' >> $DSPFILE || exit 1 echo 'WkspDir=. ' >> $DSPFILE || exit 1 echo 'TargetDir=.\Debug ' >> $DSPFILE || exit 1 echo 'SOURCE="$(InputPath)" ' >> $DSPFILE || exit 1 echo 'PostBuild_Cmds=copy $(TargetDir)\*.dll $(WkspDir)\runtimed\drivers\'$NAME' ' >> $DSPFILE || exit 1 echo '# End Special Build Tool ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '!ENDIF ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# Begin Target ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# Name "'$NAME' - Win32 Release" ' >> $DSPFILE || exit 1 echo '# Name "'$NAME' - Win32 Debug" ' >> $DSPFILE || exit 1 echo '# Begin Group "Source Files" ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" ' >> $DSPFILE || exit 1 echo '# Begin Source File ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo 'SOURCE=.\'$NAME'.cpp ' >> $DSPFILE || exit 1 echo '# End Source File ' >> $DSPFILE || exit 1 echo '# Begin Source File ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo 'SOURCE=.\'$NAME'.def ' >> $DSPFILE || exit 1 echo '# End Source File ' >> $DSPFILE || exit 1 echo '# End Group ' >> $DSPFILE || exit 1 echo '# Begin Group "Header Files" ' >> $DSPFILE || exit 1 echo ' ' >> $DSPFILE || exit 1 echo '# PROP Default_Filter "h;hpp;hxx;hm;inl" ' >> $DSPFILE || exit 1 echo '# End Group ' >> $DSPFILE || exit 1 echo '# End Target ' >> $DSPFILE || exit 1 echo '# End Project ' >> $DSPFILE || exit 1 echo "done"