#!/bin/sh # # ODBC2DB2: Create DB2 CLI adaptor from the ODBC example source # The output of this then can be compiled & linked against the DB2 # client libs # # This script is provided 'as is' and is not supported by Apple # # Tested platforms: EOF2.1, Mach, NT, Solaris # if [ `arch` != "i386-nextpdo-winnt3.5" ]; then BIN=/bin NEXT_ROOT= TMP=/tmp else BIN=C:/Apple/NextDeveloper/Executables/Utilities TMP=$TEMP fi SED=$BIN/sed CP=$BIN/cp RM=$BIN/rm MKDIR=$BIN/mkdir MKDIRS=$BIN/mkdirs MV=$BIN/mv ECHO=$BIN/echo # # Set these appropriately # ODBCDIR=$NEXT_ROOT/NextDeveloper/Examples/EnterpriseObjects/ODBCAdaptor DB2DIR=$NEXT_ROOT/NextDeveloper/Examples/EnterpriseObjects/DB2Adaptor SOURCEFILES=`(cd $ODBCDIR; ls *.[hm])` MAKEFILES="Makefile Makefile.preamble Makefile.postamble" OTHERFILES="CustomInfo.plist m.template h.template" LOGINBPROJ=LoginPanel.bproj SEDCMDS=$TMP/_sed_ CONVCMDS=$TMP/_namechanges_ SCRATCH=$DB2DIR/_scratch_ TURDS="$SEDCMDS $CONVCMDS $SCRATCH" if [ ! -d $DB2DIR ]; then $MKDIRS $DB2DIR fi # # modify the sourcefiles & rename # $ECHO "s/odbc/db2/g" >$CONVCMDS $ECHO "s/ODBC/DB2/g" >>$CONVCMDS $ECHO "s/Odbc/Db2/g" >>$CONVCMDS $ECHO "s/HDBC /SQLHDBC /g" >>$CONVCMDS $ECHO "s/DB2private/DB2Private/g" >>$CONVCMDS $ECHO "s/#define HWND void \*/#import /g" >>$CONVCMDS for FILE in $SOURCEFILES do DB2FILE=`$ECHO $FILE | $SED -e "s/ODBC/DB2/"` $SED -f $CONVCMDS $ODBCDIR/$FILE > $DB2DIR/$DB2FILE done # # modify the project & makefiles # $ECHO "s/ODBC/DB2/g" >$SEDCMDS for FILE in $MAKEFILES $OTHERFILES do $SED -f $SEDCMDS $ODBCDIR/$FILE > $DB2DIR/$FILE done $ECHO "s/odbc,//g" >>$SEDCMDS $SED -f $SEDCMDS $ODBCDIR/PB.project > $DB2DIR/PB.project $ECHO "s/ODBC/DB2/g" >$SEDCMDS $SED -f $SEDCMDS $ODBCDIR/Makefile.preamble-solaris > $DB2DIR/Makefile.preamble-solaris $ECHO "s/Lib32/lib/g" >>$SEDCMDS $ECHO "s/Include/include/g" >>$SEDCMDS $ECHO "s/DB232.LIB/db2cli.lib/g" >>$SEDCMDS $ECHO "s/odbc/C:\/SQLLIB/g" >>$SEDCMDS $SED -f $SEDCMDS $ODBCDIR/Makefile.preamble-winnt > $DB2DIR/Makefile.preamble-winnt # # the login panel bundle # LOGINFILES=`(cd $ODBCDIR/$LOGINBPROJ; ls)` $MKDIR $DB2DIR/$LOGINBPROJ for FILE in $LOGINFILES do DB2FILE=`$ECHO $FILE | $SED -e "s/ODBC/DB2/"` $SED -f $CONVCMDS $ODBCDIR/$LOGINBPROJ/$FILE > $DB2DIR/$LOGINBPROJ/$DB2FILE done # # some nits, cases where brute force overdid it.... # FIXFILES="DB2SQLExpression.m DB2Context.m DB2Adaptor.h DB2Adaptor.m" $ECHO "s/DB2_API/ODBC_API/g" >$SEDCMDS $ECHO "s/DB2_VER/ODBC_VER/g" >>$SEDCMDS $ECHO "s/DB2_SQL/ODBC_SQL/g" >>$SEDCMDS $ECHO "s/defaultDB2Type/defaultODBCType/g" >>$SEDCMDS for FILE in $FIXFILES do $MV $DB2DIR/$FILE $SCRATCH $SED -f $SEDCMDS $SCRATCH > $DB2DIR/$FILE $RM -f $SCRATCH done $MV $DB2DIR/PB.project $SCRATCH $SED 's/DB2_LICENSE.rtf/ODBC_LICENSE.rtf/g' $SCRATCH > $DB2DIR/PB.project # # copy the license file intact # $CP $ODBCDIR/ODBC_LICENSE.rtf $DB2DIR/ODBC_LICENSE.rtf # # clean up scratch files # $RM -f $TURDS exit