diff options
| author | pierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-11-11 21:41:24 +0000 |
|---|---|---|
| committer | pierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-11-11 21:41:24 +0000 |
| commit | 15882e2f1ad9b8879c9d92ea35d4e8edc65f3ff3 (patch) | |
| tree | 5e3067b30c7ac3983deaad4c31ff63c9fb0d35ee /packages/gdbint | |
| parent | 72d794de73cdc35dcbf5af5ea4cf06fc71619c49 (diff) | |
| download | fpc-15882e2f1ad9b8879c9d92ea35d4e8edc65f3ff3.tar.gz | |
+ Script to generate libgdb directory
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14149 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/gdbint')
| -rwxr-xr-x | packages/gdbint/gen-gdblib-inc.sh | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/packages/gdbint/gen-gdblib-inc.sh b/packages/gdbint/gen-gdblib-inc.sh new file mode 100755 index 0000000000..69de77b001 --- /dev/null +++ b/packages/gdbint/gen-gdblib-inc.sh @@ -0,0 +1,111 @@ +#!/bin/bash + +if [ "$1" != "" ]; then + destdir=$1 +fi +if [ "$PATHEXT" != "" ]; then + EXEEXT=.exe +else + EXEEXT= +fi +rm -f gdb${EXEEXT} +make | tee make.log + +gdb_full_version=`sed -n "s:.*version.*\"\(.*\)\".*:\1:p" version.c` +gdb_version1=`sed -n "s:.*version.*\"\([0-9]*\)\.\([0-9]*\).*:\1:p" version.c` +gdb_version2=`sed -n "s:.*version.*\"\([0-9]*\)\.\([0-9]*\).*:\2:p" version.c` +gdb_version=`sed -n "s:.*version.*\"\([0-9]*\)\.\([0-9]*\).*:\1.\2:p" version.c` + +echo found full version is ${gdb_full_version} +echo found version is ${gdb_version} +if [ ${gdb_version2} -lt 10 ]; then + gdbversion=${gdb_version1}0${gdb_version2} +else + gdbversion=${gdb_version1}${gdb_version2} +fi +if [ "${destdir}" == "" ]; then + destdir=./libgdb +fi + +if ! [ -d ${destdir} ]; then + mkdir ${destdir} +fi + +cat make.log | gawk ' +BEGIN { +doprint=0 +} + +/gcc / { doprint=1; } + +{ +if ( doprint == 1 ) { + print $0 +} +} + +! /\\$/ { doprint=0; } +' | tee comp-cmd.log +# Try to locate all libraries +echo Creating ./copy-libs.sh script +cat comp-cmd.log |gawk -v destdir=${destdir} ' +BEGIN { + print "#!/bin/bash" + print "# copy-libs.sh generated by awk script" + print "cp gdblib.inc " destdir +} + +{ + nb = split ($0,list); + + for (i=1; i<=nb; i++) { + if ( list[i] ~ /lib[^ ]*\.a/ ) { + libs = gensub (/([^ ]*)(lib[^ ]*\.a)/,"\\1\\2 ","g",list[i]); + print "cp " libs destdir; + } + if ( list[i] ~ /-l/ ) { + systemlib = gensub (/-l([^ ]*)/,"lib\\1.a ","g",list[i]); + print "systemlib=`find /lib -name " systemlib "`" ; + print "if [ \"${systemlib}\" != \"\" ]; then"; + print "echo System lib found: ${systemlib}"; + print "cp ${systemlib} " destdir; + print "else"; + print "echo Library " systemlib " not found"; + print "fi"; + } + } +} +' | tee copy-libs.sh +chmod u+x ./copy-libs.sh +# For later + +echo Creating ./gdblib.inc file +# Generate gdblib.inc file +cat comp-cmd.log |gawk -v destdir=${destdir} -v gdbversion=${gdbversion} ' +BEGIN { + print "{ libgdb.inc file generated by awk script }" + print "{$define GDB_V" gdbversion " }" + print "{$ifdef COMPILING_GDBINT_UNIT }" +} + +{ + nb = split ($0,list); + + for (i=1; i<=nb; i++) { + if ( list[i] ~ /lib[^ ]*\.a/ ) { + libs = gensub (/([^ ]*)(lib[^ ]*\.a)/,"{$LINKLIB \\2} { found in \\1 }","g",list[i]); + print libs; + } + if ( list[i] ~ /-l/ ) { + dlibs = gensub (/-l([^ ]*)/,"{$LINKLIB \\1} { with -l gcc option}","g",list[i]); + print dlibs; + } + } +} +END { + print "{$endif COMPILING_GDBINT_UNIT }" + print "{$undef NotImplemented}" +} +' | tee gdblib.inc + + |
