summaryrefslogtreecommitdiff
path: root/stupidh
diff options
context:
space:
mode:
Diffstat (limited to 'stupidh')
-rwxr-xr-xstupidh464
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..
-