diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:31 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:31 -0800 |
commit | 39c3e9d45c422c33aaf85c552a96434f2b9371e2 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /stupidh | |
parent | 15078382e0325b29af4eeb6ec267ad3a8eeaa8b5 (diff) | |
download | netcat-39c3e9d45c422c33aaf85c552a96434f2b9371e2.tar.gz |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'stupidh')
-rwxr-xr-x | stupidh | 464 |
1 files changed, 0 insertions, 464 deletions
diff --git a/stupidh b/stupidh deleted file mode 100755 index 9214102..0000000 --- a/stupidh +++ /dev/null @@ -1,464 +0,0 @@ -#! /bin/sh -## -## Find stupid system include dependencies and account for them. Squirts -## a sample .h file to stdout containing [too many of] the right things. -## If you hose the output into "stupid.h", you will get MORE information. -## This takes a while to run, because it checks so many things. -## -## IF YOU HAVE a system/arch/compiler/whatever that is NOT one of: -## msdos-msc6.x ultrix-vax ultrix-mips sunos4.1.x-sparc solaris2.x-sparc -## aix-rs6k linux1.[01].x-x86 freebsd-x86 netbsd-x86 hpux -## [... hopefully this list will grow very large] -## or even if you aren't sure, you would be doing me and the net in general -## a wonderful service by running this and MAILING me the "full" output, e.g. -## -## chmod +x stupidh -## ./stupidh > stupid.h -## mail hobbit@avian.org < stupid.h -## -## WARNING: You may have to change "cc" to "gcc" below if you don't have -## "cc" [e.g. solaris, thank you very fucking much, Sun]. -## Please note any errors this generates, too... -## -## *Hobbit*, 941122 and previous. VERSION: 1.3 951107 -## -## edits: Use a consistent naming scheme, for easier identification and cleanup. -## accomodate gcc's BOGUS assumptions based on input filename. -## added a few more include-names and try-predefines; some swiped from autoconf. -## added a couple of things commonly done as #defines so we can SEE 'em - -## Here is where to change "cc" to "gcc" if needed: -CC=cc - -if test -z "${INCLUDE}" ; then - INCLUDE=/usr/include -fi - -echo '/* STUPIDH run:' -uname -a -echo '*/' -echo '' - -echo "/* Includes, from ${INCLUDE} */" -for xx in \ -assert ctype cdefs errno file fcntl ioctl malloc stdio stdlib stdarg iostdio \ -stddef dirent direct dir ndir utmp wtmp utmpx wtmpx lastlog login paths \ -getopt string strings signal setjmp io param stat types time timeb utime \ -dos msdos unistd socket netdb varargs sysinfo systeminfo resource ulimit \ -stream stropts pstat sysmacros termio termios sgtty tty ttyent lstat select \ -sockio wait vfork bsdtypes mkdev utsname sysexits \ -; do - - XX='' - if test -f ${INCLUDE}/${xx}.h ; then - echo "#include <${xx}.h>" - XX=`echo $xx | tr '[a-z]' '[A-Z]'` - fi - if test -f ${INCLUDE}/sys/${xx}.h ; then - echo "#include <sys/${xx}.h>" - XX=`echo $xx | tr '[a-z]' '[A-Z]'` - fi - -# everyone seems to have their own conventions; this may not be complete. -# thats why this is so STUPID. -# HAS_xx and USE_xx might indicate functions and available library calls, -# not includes. Deal... - - if test "${XX}" ; then - echo "#define USE_${XX}_H" - echo "#define HAS_${XX}_H" - echo "#define HAS_${XX}" - echo "#define HAS${XX}" - echo "#define HAVE_${XX}_H" - echo "#define HAVE_${XX}" - echo "#define HAVE${XX}H" - echo "#define ${XX}H" - echo '' - fi -# Stupid hack: "dir" and "dirent" might mutually exclusive, a la GNU -# includes. This is to prevent it from biting us. - if test "${xx}" = "dirent" ; then - echo "#ifdef _SYS_DIRENT_H" - echo "#undef _SYS_DIRENT_H" - echo "#endif" - fi - -### To make a DOS batchfile instead, do this [on a unix box!], xfer results, -### and have "xxx.bat" that types out all the cruft for %INCLUDE%\%1. -### WARNING: I might not have gotten the superquoting exactly right here... -# echo "if exist %INCLUDE%\\${xx}.h call xxx ${xx}" -# echo "if exist %INCLUDE%\\sys\\${xx}.h call xxx sys/${xx}" -### You also need to save and manually run the CPP input file, below. -### I've done this for msc6 and would appreciate results for other compilers. - -done -sync -sleep 1 - -### Note: if all the previous output went to "stupid.h", it will be -### reincluded in the second part of this. - -sed -e '/^#/d' -e '/^[ ]*$/d' > st00pid.in << 'EOF' - -### More recently, some of this was swiped from the "gcc" doc. Autoconf is -### worth a harder look for more ideas; havent gotten around to it yet. -# architectures -alpha -dec -ibm -i370 -i960 -i860 -ibm032 -a29k -indigo -iris -mips -mipsel -sparc -sparclite -ncr -sh -harris -apple -vax -x86 -ix86 -i286 -i386 -i486 -i586 -pentium -intel -smp -mpu -mpu8080 -mpu8086 -amiga -hp -hppa -hp400 -hp9000 -snake -decmips -mc68000 -mc68010 -mc68020 -mc68030 -m68000 -m68010 -m68020 -m68030 -m68k -m88k -u3b15 -u3b -u3b2 -u3b5 -u3b15 -u3b20d -we32k -ppc -powerpc -arm -aviion -ns32000 -iapx286 -# minor exception to lc-vs-uc thing? -iAPX286 -rs6000 -rs6k -risc -sun -sun3 -sun4 -sun4c -sun4m -sequent -apollo -solbourne -pyr -pyramid -interdata -intertec -pdp11 -u370 -next -mac -macintosh - -# for completeness; ya never know ... yes, found it!! -- solaris inet/common.h -big_endian -little_endian -lsbfirst -msbfirst - -# vendors/OSes -unix -munix -m_unix -gcos -os -gssc -tss -isc -# *This* pair of imbeciles does *caseified defines*. Pinheads. One of -# these might trigger before the "tr" step. -NetBSD -netbsd -freebsd -FreeBSD -# cant do 386bsd, I dont think, but ... -_386bsd -bsd386 -bsdunix -bsd_2 -bsd_20 -bsd -bsdi -bsd4 -bsd42 -bsd43 -bsd44 -bsd4_2 -bsd4_3 -bsd4_4 -linux -minix -ultrix -ult3 -ult4 -bull -convex -convex_source -res -rt -esix -dg -dgux -encore -osf -osf1 -osf2 -# oops: -# osf/1 -mach -mach386 -mach_386 -nextstep -tahoe -reno -sunos -sunos3 -sunos4 -sunos5 -solaris -sun_src_compat -svr3 -svr4 -svr3_style -svr4_style -sysv -hpux -hp_ux -irix -sgi -sony -news -newsos -news_os -luna -lynxos -riscos -microport -ewsux -ews_ux -mport -dynix -genix -unicos -unixware -msdos -dos -os2 -novell -univel -plan9 -att -att_unix -sco -odt -aix -aux -a_ux -rsx -vms - -# compiler cruft?? -ansi -ansi_source -ansic -stdc -lint -sccs -libc_sccs -ms -msc -microsoft -gcc -gnu -gnuc -gnucc -gnu_source -sabre -saber -cygnus -source -all_source -gprof -prof -posix -posix_source -posix_sources -posix_c_source -xopen_source -args -p -proto -no_proto -prototype -prototypes -reentrant -kernel -str -trace -asm -libcpp -athena -athena_compat -# some preprocessors cant deal with this -# c++ -cxx -cplusplus -borland -turbo -turboc -lattice -highc - -# various defines that pop out of other .h files that we need to know about -index -strchr -rindex -strrchr -bcopy -memcpy -bzero -memset -path_login -path_lastlog -path_utmp -path_utmpx - -EOF - -# FL must be named something.c, so STUPID gcc recognized it as a non-object!! -( FL=st00pid.c - if test -f stupid.h ; then - cp stupid.h $FL - sync - echo '/* Re-including stupid.h */' - sleep 1 - else - echo '/* Skipping stupid.h */' - fi - while read xx ; do - XX=`echo $xx | tr '[a-z]' '[A-Z]'` - echo "#ifdef ${xx}" >> $FL - echo "\"${xx}\" = ${xx}" >> $FL - echo "#endif" >> $FL - echo "#ifdef _${xx}" >> $FL - echo "\"_${xx}\" = _${xx}" >> $FL - echo "#endif" >> $FL - echo "#ifdef _${xx}_" >> $FL - echo "\"_${xx}_\" = _${xx}_" >> $FL - echo "#endif" >> $FL - echo "#ifdef __${xx}" >> $FL - echo "\"__${xx}\" = __${xx}" >> $FL - echo "#endif" >> $FL - echo "#ifdef __${xx}__" >> $FL - echo "\"__${xx}__\" = __${xx}__" >> $FL - echo "#endif" >> $FL - echo "#ifdef ${XX}" >> $FL - echo "\"${XX}\" = ${XX}" >> $FL - echo "#endif" >> $FL - echo "#ifdef _${XX}" >> $FL - echo "\"_${XX}\" = _${XX}" >> $FL - echo "#endif" >> $FL - echo "#ifdef _${XX}_" >> $FL - echo "\"_${XX}_\" = _${XX}_" >> $FL - echo "#endif" >> $FL - echo "#ifdef __${XX}" >> $FL - echo "\"__${XX}\" = __${XX}" >> $FL - echo "#endif" >> $FL - echo "#ifdef __${XX}__" >> $FL - echo "\"__${XX}__\" = __${XX}__" >> $FL - echo "#endif" >> $FL - done -# and pick up a few specials - echo "#ifdef major" >> $FL - echo "\"major\" = major (x)" >> $FL - echo "\"minor\" = minor (x)" >> $FL - echo "#endif" >> $FL - echo "#ifdef FD_SETSIZE" >> $FL - echo "\"FD_SETSIZE\" = FD_SETSIZE" >> $FL - echo "#endif" >> $FL -) < st00pid.in -sync - -echo '/* Compiler predefines:' -${CC} -E st00pid.c | sed -e '/^#/d' -e '/^[ ]*$/d' -echo '*/' -sync - -cat > st00pid.c << 'EOF' -#include <stdio.h> -main() { -union { - char *bletch; - int *i; -} yow; -static char orig[16]; - strcpy (orig, "ABCDEFGHIJK"); - yow.bletch = orig; - printf ("endian thing: %s = 0x%lx, addrbyte = %x -- ", - yow.bletch, *yow.i, *yow.i & 0xFF); - printf (((*yow.i & 0xff) == 0x41) ? "LITTLE\n" : "BIG\n"); - printf ("short %d; int %d; long %d\n", - sizeof (short), sizeof (int), sizeof (long)); -} -EOF - -${CC} -o st00pid.x st00pid.c -echo '/* Architecture:' -./st00pid.x -echo '*/' - -### dont nuke if generating DOS batchfiles -rm -f st00pid.* -sync -exit 0 - -### stuff remaining to deal with: -# maybe take out the slew of HAS_* and HAS* excess predefines, and only use -# our "standardized" scheme [like we were going to generate a real includible -# file outa this??] -# various POSIX_ME_HARDERisms: -# vfork -# lockf/flock/fcntl/euuugh -# signal stuff -# termio/termios/sgtty hair -# strdup and related -# ifdef HAVE_STD_LIB and such nonsense -# auto-sniff cc-vs-gcc somehow? maybe a straight OR with exit statii.. - |